diff --git a/ALL_annot_all_pos_spell_g_h_new_phrases_s300_cw10_mc100_w4_negative5-075_mean_e10_shr.bin.gz b/ALL_annot_all_pos_spell_g_h_new_phrases_s300_cw10_mc100_w4_negative5-075_mean_e10_shr.bin.gz new file mode 100644 index 0000000000000000000000000000000000000000..16a97ad9b02d6ee689e5b40a96d17ab2f9382fad --- /dev/null +++ b/ALL_annot_all_pos_spell_g_h_new_phrases_s300_cw10_mc100_w4_negative5-075_mean_e10_shr.bin.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:541101e3adc584da42b6c0680922791d301e82fabddc0c6a0b5cd3b717469356 +size 85284093 diff --git a/LITERATURA_annot_all_pos_spell_g_h_phrases_s300_cw10_mc50_w4_negative_5-075_mean_e20_shr.bin.gz b/LITERATURA_annot_all_pos_spell_g_h_phrases_s300_cw10_mc50_w4_negative_5-075_mean_e20_shr.bin.gz new file mode 100644 index 0000000000000000000000000000000000000000..efdc34f53bf393f125fde7a510c19967c91a6968 --- /dev/null +++ b/LITERATURA_annot_all_pos_spell_g_h_phrases_s300_cw10_mc50_w4_negative_5-075_mean_e20_shr.bin.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab2ec0d8088824fdf0539074d54e71e70ac164a2619c8662099695424b96345f +size 32442385 diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..7d6150954bacc391872467ef7598d46892f64136 --- /dev/null +++ b/app.py @@ -0,0 +1,35 @@ +import warnings +import streamlit as st +from utilities.utils import is_valid_uuid +from utilities_database.user_database_widgets import LogIn + +warnings.filterwarnings('ignore') +st.header('Добро пожаловать!') +st.subheader('Вы используете инструмент по автоматической генерации лексико-грамматических заданий по ' + 'испанскому языку!') +st.write('**Зарегистрируйтесь или войдите в аккаунт**') +__login__obj = LogIn(auth_token=st.secrets['COURIER_AUTH_TOKEN'], + company_name=st.secrets['COMPANY_NAME'], + width=200, height=200, + logout_button_name='Выйти', + hide_menu_bool=False, + hide_footer_bool=False, + lottie_url='https://assets2.lottiefiles.com/packages/lf20_jcikwtux.json') +LOGGED_IN = __login__obj.build_login_ui() +st.session_state['-LOGGED_IN-'] = False +# Check for username in cookies +if '-USER_NAME-' not in st.session_state: + if __login__obj.cookies.get('__streamlit_login_signup_ui_username__'): + if not is_valid_uuid(__login__obj.cookies['__streamlit_login_signup_ui_username__']): + st.session_state['-USER_NAME-'] = __login__obj.cookies['__streamlit_login_signup_ui_username__'] + st.session_state['-LOGGED_IN_BOOL-'] = True + +if LOGGED_IN: + st.session_state['-LOGGED_IN_BOOL-'] = True + # st.session_state['-USER_NAME-'] = + st.success('Можете переходить к следующим вкладкам!') + +st.markdown('*Автор-разработчик: А.В.Белый, кафедра математической лингвистики, филологический факультет СПбГУ,' + ' 3 курс, бакалавриат, "Прикладная, компьютерная и математическая лингвистика (английский язык)"*' + '\n\n*Научный руководитель: канд. филол. наук, доц. О.А.Митрофанова*') +st.markdown('*E-mail: st087202@student.spbu.ru*') diff --git a/language_data/fix_irregular_lemma.json b/language_data/fix_irregular_lemma.json new file mode 100644 index 0000000000000000000000000000000000000000..93a3fc68126238c5d37a37f03b9fd33a47bad1f9 --- /dev/null +++ b/language_data/fix_irregular_lemma.json @@ -0,0 +1,1177 @@ +{ + "abandonar_VERB": [ + "abandon_VERB", + "abanderar_VERB" + ], + "abatir_VERB": [ + "abateír_VERB" + ], + "abrir_VERB": [ + "abriar_VERB" + ], + "acabar_VERB": [ + "acabou_VERB", + "acabár_VERB" + ], + "acentuar_VERB": [ + "acentúar_VERB" + ], + "acertar_VERB": [ + "aciertir_VERB" + ], + "acoger_VERB": [ + "acogeer_VERB" + ], + "acompañar_VERB": [ + "acompaar_VERB", + "acompanhar_VERB", + "acompañasar_VERB" + ], + "actuar_VERB": [ + "actúar_VERB", + "actúir_VERB" + ], + "acudir_VERB": [ + "acudiar_VERB" + ], + "adecuar_VERB": [ + "adecuan_VERB", + "adecúar_VERB" + ], + "adherir_VERB": [ + "adheír_VERB" + ], + "adolecer_VERB": [ + "adoleceír_VERB", + "adolecir_VERB" + ], + "adquirir_VERB": [ + "adquier_VERB" + ], + "advertir_VERB": [ + "aciertir_VERB", + "advertí_VERB" + ], + "afganistán_VERB": [ + "Afganistán_NOUN" + ], + "afirmar_VERB": [ + "afirm_VERB", + "afirmam_VERB", + "afirmir_VERB" + ], + "abaratar_VERB": [ + "abaratacer_VERB" + ], + "abocar_VERB": [ + "abocacer_VERB" + ], + "acaecer_VERB": [ + "acaeceír_VERB", + "acaecir_VERB" + ], + "acordar_VERB": [ + "acogíar_VERB" + ], + "acompasar_VERB": [ + "acompaar_VERB", + "acompañasar_VERB" + ], + "acompanar_VERB": [ + "acompanhar_VERB" + ], + "afganistar_VERB": [ + "afganistán_VERB" + ], + "afligir_VERB": [ + "afligeír_VERB" + ], + "agraviar_VERB": [ + "agraciar_VERB" + ], + "agradecer_VERB": [ + "agradeceer_VERB", + "agradeceré_VERB" + ], + "agradeceriar_VERB": [ + "agradeceríar_VERB" + ], + "agregar_VERB": [ + "agredar_VERB", + "agregir_VERB" + ], + "alzar_VERB": [ + "alizar_VERB", + "alíar_VERB" + ], + "amenazar_VERB": [ + "amenacir_VERB" + ], + "amenizar_VERB": [ + "amenizacer_VERB" + ], + "analizar_VERB": [ + "analicar_VERB" + ], + "asir_VERB": [ + "ansir_VERB", + "véasir_VERB" + ], + "anunciar_VERB": [ + "anunci_VERB", + "anuncié_VERB" + ], + "apercibir_VERB": [ + "apercibeír_VERB" + ], + "apilar_VERB": [ + "apiñar_VERB" + ], + "aplaudir_VERB": [ + "aplaudar_VERB" + ], + "aportar_VERB": [ + "apontar_VERB", + "aportener_VERB" + ], + "aprehender_VERB": [ + "aprehendar_VERB", + "aprehendeír_VERB", + "aprehendir_VERB" + ], + "aprender_VERB": [ + "aprendar_VERB" + ], + "presentar_VERB": [ + "apresentar_VERB", + "presentarir_VERB", + "presentener_VERB" + ], + "apropiar_VERB": [ + "apropeír_VERB" + ], + "arrepentir_VERB": [ + "arrepentier_VERB", + "arrepientir_VERB" + ], + "arreir_VERB": [ + "arriendir_VERB" + ], + "asegurar_VERB": [ + "asegur_VERB", + "asegurarir_VERB", + "asegurasir_VERB" + ], + "asumir_VERB": [ + "assumir_VERB" + ], + "atenuar_VERB": [ + "atenguir_VERB" + ], + "atrever_VERB": [ + "atreveer_VERB", + "atreveír_VERB", + "atrevir_VERB" + ], + "guiar_VERB": [ + "auiar_VERB" + ], + "auspiciar_VERB": [ + "auspiceír_VERB" + ], + "avanzar_VERB": [ + "avancar_VERB" + ], + "avenir_VERB": [ + "avenguir_VERB", + "avienir_VERB" + ], + "aviar_VERB": [ + "aviir_VERB" + ], + "barajar_VERB": [ + "baragir_VERB" + ], + "blandir_VERB": [ + "blandeir_VERB" + ], + "caber_VERB": [ + "cabrir_VERB" + ], + "cazar_VERB": [ + "caia_VERB" + ], + "captar_VERB": [ + "capitar_VERB" + ], + "carcomer_VERB": [ + "carcomir_VERB" + ], + "renacer_VERB": [ + "cejacer_VERB", + "rotacer_VERB" + ], + "cerciorar_VERB": [ + "cercioracer_VERB", + "cerciorir_VERB" + ], + "creer_VERB": [ + "cerer_VERB", + "creímos_VERB" + ], + "ceir_VERB": [ + "ciñendo_VERB" + ], + "vivir_VERB": [ + "ciñir_VERB", + "riñir_VERB", + "tiñir_VERB", + "vidir_VERB", + "viviar_VERB", + "vivís_VERB" + ], + "coadyuvar_VERB": [ + "coadyuir_VERB", + "coadyuvacer_VERB" + ], + "combatir_VERB": [ + "combatar_VERB" + ], + "comenzar_VERB": [ + "comencar_VERB", + "comiencir_VERB" + ], + "comer_VERB": [ + "comenz_VERB" + ], + "copiar_VERB": [ + "comiar_VERB" + ], + "completar_VERB": [ + "competar_VERB" + ], + "complacer_VERB": [ + "compilacer_VERB", + "computacer_VERB" + ], + "conceder_VERB": [ + "concedar_VERB" + ], + "convertir_VERB": [ + "conciertir_VERB", + "convirti_VERB" + ], + "concluir_VERB": [ + "concluer_VERB", + "concluiré_VERB", + "concluy_VERB" + ], + "concurrir_VERB": [ + "concuerdir_VERB" + ], + "conducir_VERB": [ + "conduciar_VERB" + ], + "considerar_VERB": [ + "consideer_VERB", + "considerár_VERB" + ], + "consistir_VERB": [ + "consistar_VERB", + "consistiar_VERB" + ], + "construir_VERB": [ + "construer_VERB" + ], + "contentar_VERB": [ + "conteniar_VERB" + ], + "continuar_VERB": [ + "continar_VERB", + "continuarir_VERB", + "continué_VERB", + "continúar_VERB", + "continúir_VERB" + ], + "convalecer_VERB": [ + "convalecir_VERB" + ], + "convivir_VERB": [ + "conviir_VERB" + ], + "correr_VERB": [ + "corrar_VERB" + ], + "corroer_VERB": [ + "corroir_VERB" + ], + "creanmir_VERB": [ + "créanme_VERB" + ], + "cubrir_VERB": [ + "cubriar_VERB" + ], + "salar_VERB": [ + "dalar_VERB" + ], + "parar_VERB": [ + "darar_VERB", + "phrar_VERB" + ], + "variar_VERB": [ + "dariar_VERB", + "varíar_VERB" + ], + "deber_AUX": [ + "deban_AUX", + "debeer_AUX", + "deberar_AUX", + "deberer_AUX", + "deberiar_AUX", + "deberíar_AUX", + "debia_AUX", + "debiar_AUX", + "debiser_AUX", + "debéis_AUX" + ], + "debatir_VERB": [ + "debatar_VERB" + ], + "desertar_VERB": [ + "deberíar_VERB" + ], + "debitar_VERB": [ + "debiar_VERB" + ], + "decir_VERB": [ + "decair_VERB", + "deciar_VERB", + "devir_VERB", + "digar_VERB", + "dijerar_VERB", + "recir_VERB" + ], + "decidir_VERB": [ + "decidar_VERB", + "decidiu_VERB" + ], + "decrecer_VERB": [ + "decreceir_VERB", + "decreceír_VERB", + "decrecir_VERB" + ], + "definir_VERB": [ + "definar_VERB" + ], + "dejar_VERB": [ + "dej_VERB", + "dejer_VERB", + "dejár_VERB", + "delar_VERB", + "demar_VERB", + "sejar_VERB" + ], + "desarmar_VERB": [ + "dejadmar_VERB" + ], + "dejarar_VERB": [ + "dejarás_VERB" + ], + "deliberar_VERB": [ + "deliberacer_VERB" + ], + "delinear_VERB": [ + "delincar_VERB" + ], + "rendir_VERB": [ + "dendir_VERB" + ], + "departir_VERB": [ + "departeir_VERB", + "departeír_VERB" + ], + "desalentar_VERB": [ + "desalentacer_VERB", + "desalientar_VERB" + ], + "desconfiar_VERB": [ + "desconfeír_VERB", + "desconfíar_VERB" + ], + "describir_VERB": [ + "describar_VERB" + ], + "deshacer_VERB": [ + "deseacer_VERB" + ], + "desesperir_VERB": [ + "desempeñe_VERB" + ], + "desincentivar_VERB": [ + "desincentiir_VERB" + ], + "desistir_VERB": [ + "desistar_VERB" + ], + "desperdiciar_VERB": [ + "desperdiceír_VERB" + ], + "disponer_VERB": [ + "despuser_VERB" + ], + "destacar_VERB": [ + "destac_VERB", + "destaqué_VERB" + ], + "estar_VERB": [ + "estair_VERB", + "estn_VERB" + ], + "estar_AUX": [ + "est_AUX", + "estacer_AUX", + "estario_AUX", + "estn_AUX", + "estuvir_AUX" + ], + "vestir_VERB": [ + "destir_VERB", + "vuestrir_VERB" + ], + "destruir_VERB": [ + "destruer_VERB" + ], + "desvanecer_VERB": [ + "desvaneceir_VERB", + "desvaneceír_VERB", + "desvanecir_VERB" + ], + "reveer_VERB": [ + "deveer_VERB" + ], + "devir_VERB": [ + "devem_VERB" + ], + "devengar_VERB": [ + "devengacer_VERB" + ], + "dear_VERB": [ + "deír_VERB" + ], + "difundir_VERB": [ + "difundar_VERB" + ], + "dicir_VERB": [ + "dijir_VERB", + "dimir_VERB", + "dizir_VERB" + ], + "mirar_VERB": [ + "dirar_VERB", + "diríar_VERB", + "diríase_VERB", + "irar_VERB", + "mirár_VERB" + ], + "dirigir_VERB": [ + "dirigiar_VERB" + ], + "disertar_VERB": [ + "disertacer_VERB" + ], + "discar_VERB": [ + "dissar_VERB" + ], + "disuadir_VERB": [ + "disuadar_VERB" + ], + "dividir_VERB": [ + "dividar_VERB" + ], + "divorciar_VERB": [ + "divorceír_VERB" + ], + "dizeir_VERB": [ + "dizendo_VERB" + ], + "regalar_VERB": [ + "dígalar_VERB" + ], + "ejecutar_VERB": [ + "egecutar_VERB", + "ejecutener_VERB" + ], + "eligir_VERB": [ + "elijir_VERB" + ], + "eliminar_VERB": [ + "elimin_VERB" + ], + "eludir_VERB": [ + "eludar_VERB" + ], + "embistir_VERB": [ + "embisteír_VERB" + ], + "emborrachar_VERB": [ + "emborrachaber_VERB" + ], + "empezar_VERB": [ + "empecar_VERB" + ], + "empobrecer_VERB": [ + "empobreceir_VERB", + "empobrecir_VERB" + ], + "emprender_VERB": [ + "emprendar_VERB" + ], + "enardecer_VERB": [ + "enardeceír_VERB", + "enardecir_VERB" + ], + "encabezar_VERB": [ + "encabecir_VERB" + ], + "encir_VERB": [ + "encom_VERB" + ], + "encontar_VERB": [ + "encontr_VERB" + ], + "encontrarir_VERB": [ + "encontrarer_VERB" + ], + "enmendar_VERB": [ + "enmendacer_VERB", + "enmiendar_VERB", + "enmiendir_VERB" + ], + "ennegrecer_VERB": [ + "ennegrecir_VERB" + ], + "enunciar_VERB": [ + "enunceír_VERB", + "enunciacer_VERB" + ], + "escabullir_VERB": [ + "escabullar_VERB" + ], + "escatimar_VERB": [ + "escatimacer_VERB" + ], + "exclamar_VERB": [ + "esclamar_VERB" + ], + "escribir_VERB": [ + "escribiar_VERB" + ], + "escuchar_VERB": [ + "escuch_VERB", + "escuchár_VERB", + "escuché_VERB" + ], + "escurrir_VERB": [ + "escuecir_VERB" + ], + "expresar_VERB": [ + "espresar_VERB", + "expresé_VERB" + ], + "evitar_VERB": [ + "evit_VERB", + "evitener_VERB" + ], + "exacerbar_VERB": [ + "exacerbacer_VERB" + ], + "examinar_VERB": [ + "examin_VERB", + "examinarir_VERB", + "examinasir_VERB" + ], + "exigir_VERB": [ + "excair_VERB" + ], + "eximir_VERB": [ + "eximar_VERB" + ], + "existir_VERB": [ + "existiar_VERB" + ], + "expandir_VERB": [ + "expandar_VERB", + "expandecir_VERB", + "expandeir_VERB" + ], + "expander_VERB": [ + "expandeír_VERB" + ], + "expedir_VERB": [ + "expedecir_VERB", + "expidir_VERB" + ], + "expirar_VERB": [ + "expidar_VERB" + ], + "expidir_VERB": [ + "expideír_VERB" + ], + "explicar_VERB": [ + "explic_VERB", + "explicir_VERB" + ], + "fakir_VERB": [ + "facir_VERB" + ], + "forjar_VERB": [ + "forjacer_VERB" + ], + "ser_VERB": [ + "segn_VERB", + "seir_VERB", + "vser_VERB" + ], + "ser_AUX": [ + "er_AUX", + "eram_AUX", + "erar_AUX", + "essir_AUX", + "sar_AUX", + "sear_AUX", + "seer_AUX", + "sendo_AUX", + "serar_AUX", + "serem_AUX", + "serer_AUX", + "seriar_AUX", + "serir_AUX", + "seréis_AUX", + "seríar_AUX", + "seáis_AUX", + "sois_AUX", + "sos_AUX", + "són_AUX" + ], + "fungir_VERB": [ + "fungeír_VERB", + "fungier_VERB" + ], + "guarnecer_VERB": [ + "guarnecir_VERB" + ], + "haber_AUX": [ + "habar_AUX", + "haberlas_AUX", + "haberlos_AUX", + "habernos_AUX", + "haberte_AUX", + "habr_AUX", + "habíanse_AUX", + "habíase_AUX" + ], + "hablar_VERB": [ + "habl_VERB", + "hablarar_VERB", + "hablábar_VERB", + "hablár_VERB" + ], + "hacer_VERB": [ + "hariar_VERB", + "haciar_VERB", + "háciar_VERB", + "har_AUX", + "hágalo_VERB" + ], + "vaciar_VERB": [ + "vacíar_VERB" + ], + "partir_VERB": [ + "hartir_VERB", + "partar_VERB" + ], + "pasar_VERB": [ + "hasar_VERB", + "pasarar_VERB", + "pasár_VERB" + ], + "hechar_VERB": [ + "hechaber_VERB" + ], + "herir_VERB": [ + "herar_VERB" + ], + "hear_VERB": [ + "heír_VERB" + ], + "importar_VERB": [ + "impartar_VERB" + ], + "impar_VERB": [ + "impir_VERB" + ], + "impugnar_VERB": [ + "impugnacer_VERB" + ], + "incluir_VERB": [ + "incluer_VERB" + ], + "infligir_VERB": [ + "infligeir_VERB", + "infligeír_VERB" + ], + "inundar_VERB": [ + "infundar_VERB" + ], + "infundir_VERB": [ + "infundeír_VERB" + ], + "ingeniar_VERB": [ + "ingeneír_VERB" + ], + "insistir_VERB": [ + "insistar_VERB", + "insisti_VERB" + ], + "instituir_VERB": [ + "instituier_VERB" + ], + "interceder_VERB": [ + "intercedar_VERB", + "intercedeír_VERB", + "intercedir_VERB" + ], + "ir_AUX": [ + "ibar_AUX", + "irar_AUX", + "vai_AUX", + "vais_AUX", + "var_AUX", + "vaya_AUX", + "vayar_AUX", + "ír_AUX" + ], + "jugar_VERB": [ + "jogar_VERB", + "jugár_VERB" + ], + "juntar_VERB": [ + "juntacer_VERB" + ], + "lavar_VERB": [ + "ladar_VERB" + ], + "llamar_VERB": [ + "llam_VERB", + "llamár_VERB" + ], + "llegar_VERB": [ + "llegacer_VERB", + "llegár_VERB", + "lleuar_VERB" + ], + "llevar_VERB": [ + "llev_VERB", + "llevarar_VERB", + "llevár_VERB" + ], + "lograr_VERB": [ + "logr_VERB" + ], + "salir_VERB": [ + "malir_VERB", + "saliar_VERB", + "señalir_VERB" + ], + "matar_VERB": [ + "maltar_VERB" + ], + "notesar_VERB": [ + "nótese_VERB" + ], + "observar_VERB": [ + "observ_VERB", + "observir_VERB" + ], + "obviar_VERB": [ + "obveír_VERB" + ], + "ocurrir_VERB": [ + "ocurri_VERB" + ], + "ofertar_VERB": [ + "ofertacer_VERB" + ], + "olvidar_VERB": [ + "olvid_VERB", + "olvider_VERB", + "olvidir_VERB" + ], + "omitir_VERB": [ + "omiteir_VERB", + "omiteír_VERB" + ], + "primar_VERB": [ + "oprimíar_VERB" + ], + "otear_VERB": [ + "osear_VERB" + ], + "parir_VERB": [ + "pacir_VERB" + ], + "palidecer_VERB": [ + "palideceir_VERB", + "palideceír_VERB", + "palidecir_VERB" + ], + "partener_VERB": [ + "pattener_VERB" + ], + "pedir_VERB": [ + "pediar_VERB", + "pidi_VERB" + ], + "perder_VERB": [ + "perdar_VERB", + "perderer_VERB" + ], + "perdurar_VERB": [ + "perderar_VERB" + ], + "permitir_VERB": [ + "permitar_VERB", + "permitiar_VERB", + "permitiré_VERB" + ], + "permitanmar_VERB": [ + "permítame_VERB", + "permítanme_VERB" + ], + "persistir_VERB": [ + "persistar_VERB" + ], + "pisar_VERB": [ + "pidar_VERB" + ], + "tocar_VERB": [ + "pocar_VERB", + "tocár_VERB" + ], + "poder_AUX": [ + "podar_AUX", + "podeis_AUX", + "podem_AUX", + "poderio_AUX", + "podia_AUX", + "podian_AUX", + "podiar_AUX", + "podr_AUX", + "podrar_AUX", + "podrer_AUX", + "podriar_AUX", + "podriir_AUX", + "podrn_AUX", + "podríais_AUX", + "podríar_AUX", + "podés_AUX", + "podíar_AUX", + "pudierar_AUX", + "pudiser_AUX", + "pudistir_AUX" + ], + "poseer_VERB": [ + "posear_VERB", + "poseiar_VERB" + ], + "postular_VERB": [ + "postulacer_VERB" + ], + "precisar_VERB": [ + "precisam_VERB", + "precisir_VERB" + ], + "predominar_VERB": [ + "predominacer_VERB" + ], + "presumir_VERB": [ + "presumar_VERB" + ], + "prever_VERB": [ + "prevear_VERB" + ], + "prevenir_VERB": [ + "preveir_VERB" + ], + "priorizar_VERB": [ + "priorizacer_VERB" + ], + "producir_VERB": [ + "produciar_VERB", + "propusir_VERB" + ], + "prorrogar_VERB": [ + "prorrogacer_VERB" + ], + "prorrumpir_VERB": [ + "prorrumpeír_VERB" + ], + "pudrir_VERB": [ + "pudreir_VERB" + ], + "pulir_VERB": [ + "puleir_VERB" + ], + "querer_AUX": [ + "queria_AUX" + ], + "querer_VERB": [ + "quisierar_VERB", + "quisiéramos_VERB" + ], + "racionalizar_VERB": [ + "racionalizacer_VERB" + ], + "realizar_VERB": [ + "realacer_VERB", + "realic_VERB" + ], + "realzar_VERB": [ + "realzacer_VERB" + ], + "reasignar_VERB": [ + "reasignacer_VERB" + ], + "recibir_VERB": [ + "recabir_VERB", + "recibiar_VERB" + ], + "recalcar_VERB": [ + "recalacer_VERB" + ], + "rezar_VERB": [ + "recar_VERB" + ], + "recebir_VERB": [ + "receber_VERB" + ], + "rehacer_VERB": [ + "rechacer_VERB" + ], + "rechazar_VERB": [ + "rechacir_VERB" + ], + "recordar_VERB": [ + "recogíar_VERB" + ], + "recurrir_VERB": [ + "recurer_VERB", + "recurrar_VERB" + ], + "redefinir_VERB": [ + "redefineir_VERB", + "redefineír_VERB" + ], + "redoblar_VERB": [ + "redoblacer_VERB" + ], + "redundar_VERB": [ + "redundacer_VERB", + "redundir_VERB" + ], + "reembolsar_VERB": [ + "reembolsacer_VERB" + ], + "reestructurar_VERB": [ + "reestructuracer_VERB" + ], + "referir_VERB": [ + "referiar_VERB" + ], + "refundir_VERB": [ + "refundecir_VERB" + ], + "registrar_VERB": [ + "registr_VERB" + ], + "reir_VERB": [ + "reier_VERB", + "reír_VERB", + "riir_VERB" + ], + "reiniciar_VERB": [ + "reiniceír_VERB", + "reiniciacer_VERB" + ], + "reintegrar_VERB": [ + "reintegracer_VERB" + ], + "remecer_VERB": [ + "remeceír_VERB" + ], + "requerir_VERB": [ + "renuevir_VERB", + "requeer_VERB", + "requeír_VERB", + "retuercir_VERB" + ], + "repercutir_VERB": [ + "repercutar_VERB" + ], + "reprimir_VERB": [ + "reprimar_VERB", + "reprimeir_VERB", + "reprimeír_VERB" + ], + "resentir_VERB": [ + "resentier_VERB", + "resientir_VERB" + ], + "resistir_VERB": [ + "resistar_VERB" + ], + "responder_VERB": [ + "respondar_VERB", + "respondiar_VERB" + ], + "revelar_VERB": [ + "revear_VERB", + "reveler_VERB" + ], + "revivir_VERB": [ + "reviveir_VERB", + "revivier_VERB" + ], + "rizar_VERB": [ + "riñar_VERB" + ], + "rear_VERB": [ + "ríar_VERB" + ], + "saber_VERB": [ + "sabar_VERB", + "sabés_VERB" + ], + "saciar_VERB": [ + "sabiar_VERB" + ], + "sellar_VERB": [ + "sealar_VERB" + ], + "secreter_VERB": [ + "secretacer_VERB" + ], + "seguir_VERB": [ + "seguiar_VERB", + "seguís_VERB", + "sigar_VERB" + ], + "sentir_VERB": [ + "sentiar_VERB" + ], + "servir_VERB": [ + "serviar_VERB", + "sírvar_VERB" + ], + "sesionar_VERB": [ + "sesionacer_VERB" + ], + "sobrecoger_VERB": [ + "sobrecogir_VERB" + ], + "sobrellevar_VERB": [ + "sobrelleir_VERB" + ], + "soltar_VERB": [ + "soliar_VERB" + ], + "sorber_VERB": [ + "sorbir_VERB" + ], + "subir_VERB": [ + "subiar_VERB", + "subleir_VERB" + ], + "sufrir_VERB": [ + "sufriar_VERB" + ], + "tener_VERB": [ + "teheer_VERB", + "tendr_VERB", + "tuviérar_VERB", + "votener_VERB" + ], + "tomar_VERB": [ + "temar_VERB", + "tómese_VERB" + ], + "tendrar_VERB": [ + "tendrn_VERB" + ], + "terminar_VERB": [ + "termin_VERB" + ], + "tipificar_VERB": [ + "tipificacer_VERB" + ], + "toser_VERB": [ + "toseir_VERB", + "toseír_VERB", + "tosir_VERB" + ], + "trabajar_VERB": [ + "trabaj_VERB", + "trabajár_VERB" + ], + "transitar_VERB": [ + "transitacer_VERB" + ], + "trascurrir_VERB": [ + "trascurreír_VERB" + ], + "tratar_VERB": [ + "traslar_VERB", + "tratarar_VERB", + "tratár_VERB", + "trátese_VERB" + ], + "truncar_VERB": [ + "truecar_VERB" + ], + "traemir_VERB": [ + "tráeme_VERB" + ], + "tremular_VERB": [ + "trémular_VERB" + ], + "untar_VERB": [ + "unitar_VERB" + ], + "ver_VERB": [ + "vear_VERB", + "veir_VERB", + "vierar_VERB", + "vióse_VERB" + ], + "velar_VERB": [ + "veiar_VERB", + "veíar_VERB", + "veíase_VERB" + ], + "venir_VERB": [ + "velir_VERB", + "vetir_VERB", + "vinierar_VERB" + ], + "viendotar_VERB": [ + "viéndome_VERB" + ], + "votar_VERB": [ + "voltar_VERB", + "voté_VERB" + ], + "volver_VERB": [ + "volveer_VERB", + "volvióse_VERB" + ] +} \ No newline at end of file diff --git a/language_data/inflexions.json b/language_data/inflexions.json new file mode 100644 index 0000000000000000000000000000000000000000..de803f2acfd8377fbdc847036790b88add59de3f --- /dev/null +++ b/language_data/inflexions.json @@ -0,0 +1,175 @@ +{ + "Ind": { + "Pres": { + "1": { + "1Sing": "o", + "1Plur": "amos", + "2Sing": "as", + "2Plur": "áis", + "3Sing": "a", + "3Plur": "an" + }, + "2": { + "1Sing": "o", + "1Plur": "emos", + "2Sing": "es", + "2Plur": "éis", + "3Sing": "e", + "3Plur": "en" + }, + "3": { + "1Sing": "o", + "1Plur": "imos", + "2Sing": "es", + "2Plur": "ís", + "3Sing": "e", + "3Plur": "en" + } + }, + "Imp": { + "1": { + "1Sing": "aba", + "1Plur": "ábamos", + "2Sing": "abas", + "2Plur": "abais", + "3Sing": "aba", + "3Plur": "aban" + }, + "2": { + "1Sing": "ía", + "1Plur": "íamos", + "2Sing": "ías", + "2Plur": "íais", + "3Sing": "ía", + "3Plur": "ían" + }, + "3": { + "1Sing": "ía", + "1Plur": "íamos", + "2Sing": "ías", + "2Plur": "íais", + "3Sing": "ía", + "3Plur": "ían" + } + }, + "Past": { + "1": { + "1Sing": "é", + "1Plur": "amos", + "2Sing": "aste", + "2Plur": "asteis", + "3Sing": "ó", + "3Plur": "aron" + }, + "2": { + "1Sing": "í", + "1Plur": "imos", + "2Sing": "iste", + "2Plur": "isteis", + "3Sing": "ió", + "3Plur": "ieron" + }, + "3": { + "1Sing": "í", + "1Plur": "imos", + "2Sing": "iste", + "2Plur": "isteis", + "3Sing": "ió", + "3Plur": "ieron" + } + }, + "Fut": { + "1Sing": "é", + "1Plur": "emos", + "2Sing": "ás", + "2Plur": "éis", + "3Sing": "á", + "3Plur": "án" + } + }, + "Sub": { + "Pres": { + "1": { + "1Sing": "e", + "1Plur": "emos", + "2Sing": "es", + "2Plur": "éis", + "3Sing": "e", + "3Plur": "en" + }, + "2": { + "1Sing": "a", + "1Plur": "amos", + "2Sing": "as", + "2Plur": "áis", + "3Sing": "a", + "3Plur": "an" + }, + "3": { + "1Sing": "a", + "1Plur": "amos", + "2Sing": "as", + "2Plur": "áis", + "3Sing": "a", + "3Plur": "an" + } + }, + "Imp": { + "1": { + "1Sing": "ara", + "1Plur": "áramos", + "2Sing": "aras", + "2Plur": "arais", + "3Sing": "ara", + "3Plur": "aran" + }, + "2": { + "1Sing": "iera", + "1Plur": "iéramos", + "2Sing": "ieras", + "2Plur": "ierais", + "3Sing": "iera", + "3Plur": "ieran" + }, + "3": { + "1Sing": "iera", + "1Plur": "iéramos", + "2Sing": "ieras", + "2Plur": "ierais", + "3Sing": "iera", + "3Plur": "ieran" + } + } + }, + "Cnd": { + "1Sing": "ía", + "1Plur": "íamos", + "2Sing": "ías", + "2Plur": "íais", + "3Sing": "ía", + "3Plur": "ían" + }, + "Imp": { + "1": { + "1Plur": "emos", + "2Sing": "a", + "2Plur": "ad", + "3Sing": "e", + "3Plur": "en" + }, + "2": { + "1Plur": "amos", + "2Sing": "e", + "2Plur": "ed", + "3Sing": "a", + "3Plur": "an" + }, + "3": { + "1Plur": "amos", + "2Sing": "e", + "2Plur": "id", + "3Sing": "a", + "3Plur": "an" + } + } +} diff --git a/language_data/irregular_verbs.json b/language_data/irregular_verbs.json new file mode 100644 index 0000000000000000000000000000000000000000..2d39fa05c8213beea13bf3da6e05ea34e2837245 --- /dev/null +++ b/language_data/irregular_verbs.json @@ -0,0 +1,2319 @@ +{ + "Ind": { + "Pres": { + "1--e--ie": { + "verbs": [ + "acertar", + "adherir", + "advertir", + "alentar", + "apretar", + "arrendar", + "arrepentir", + "arrepentirse", + "ascender", + "asentar", + "atender", + "atravesar", + "calentar", + "cegar", + "cerner", + "cerrar", + "comenzar", + "concernir", + "concertar", + "conferir", + "confesar", + "consentir", + "convertir", + "defender", + "deferir", + "descender", + "desmembrar", + "despertar", + "desterrar", + "diferir", + "discernir", + "divertir", + "empezar", + "encender", + "encomendar", + "enmendar", + "ensangrentar", + "entender", + "enterrar", + "errar", + "extender", + "fregar", + "gobernar", + "helar", + "herir", + "herrar", + "hervir", + "ingerir", + "invertir", + "manifestar", + "mentir", + "merendar", + "negar", + "nevar", + "pensar", + "perder", + "pervertir", + "plegar", + "preferir", + "presentir", + "quebrar", + "recomendar", + "referir", + "regar", + "requerir", + "reventar", + "segar", + "sembrar", + "sentar", + "sentarse", + "sentir", + "sosegar", + "subvertir", + "sugerir", + "tender", + "tentar", + "transferir", + "tropezar", + "verter" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--o--ue": { + "verbs": [ + "absolver", + "acordar", + "acostar", + "almorzar", + "amolar", + "apostar", + "cocer", + "colar", + "colgar", + "concordar", + "conmover", + "consolar", + "contar", + "costar", + "descontar", + "devolver", + "disolver", + "doler", + "dormir", + "encontrar", + "envolver", + "esforzar", + "esforzarse", + "forzar", + "holgar", + "moler", + "morder", + "morir", + "mostrar", + "mover", + "poblar", + "probar", + "recordar", + "reforzar", + "renovar", + "resolver", + "rodar", + "rogar", + "soltar", + "sonar", + "soñar", + "tostar", + "trocar", + "tronar", + "volar", + "volcar", + "volver" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--c--zc": { + "verbs": [ + "abastecer", + "ablandecer", + "aborrecer", + "acaecer", + "acontecer", + "adormecer", + "aducir", + "agradecer", + "amanecer", + "anochecer", + "aparecer", + "atardecer", + "carecer", + "compadecer", + "complacer", + "conducir", + "conocer", + "convalecer", + "crecer", + "deducir", + "deslucir", + "embellecer", + "empobrecer", + "encarecer", + "endurecer", + "enfurecer", + "engrandecer", + "enloquecer", + "enmudecer", + "ennegrecer", + "ennoblecer", + "enorgullecer", + "enrarecer", + "entumecer", + "envanecer", + "envejecer", + "enverdecer", + "establecer", + "estremecer", + "fallecer", + "favorecer", + "florecer", + "fortalecer", + "guarnecer", + "humedecer", + "inducir", + "introducir", + "lucir", + "merecer", + "nacer", + "obedecer", + "obscurecer", + "ofrecer", + "orgullecer", + "oscurecer", + "pacer", + "padecer", + "palidecer", + "parecer", + "perecer", + "permanecer", + "pertenecer", + "placer", + "producir", + "reducir", + "renacer", + "resplandecer", + "restablecer", + "robustecer", + "seducir", + "tardecer", + "traducir", + "verdecer" + ], + "affected_tags": [ + "1Sing" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "ser": { + "1Sing": "soy", + "2Sing": "eres", + "3Sing": "es", + "1Plur": "somos", + "2Plur": "sois", + "3Plur": "son" + }, + "caber": { + "1Sing": "quepo" + }, + "caer": { + "1Sing": "caigo" + }, + "dar": { + "1Sing": "doy" + }, + "decir": { + "1Sing": "digo", + "2Sing": "dices", + "3Sing": "dice", + "3Plur": "dicen" + }, + "estar": { + "1Sing": "estoy", + "2Sing": "estás", + "3Sing": "está", + "3Plur": "están" + }, + "haber": { + "1Sing": "he", + "2Sing": "has", + "3Sing": "ha", + "1Plur": "hemos", + "3Plur": "han" + }, + "hacer": { + "1Sing": "hago" + }, + "ir": { + "1Sing": "voy", + "2Sing": "vas", + "3Sing": "va", + "1Plur": "vamos", + "2Plur": "vais", + "3Plur": "van" + }, + "oír": { + "1Sing": "oigo", + "2Sing": "oyes", + "3Sing": "oye", + "1Plur": "oímos", + "3Plur": "oyen" + }, + "poder": { + "1Sing": "puedo", + "2Sing": "puedes", + "3Sing": "puede", + "3Plur": "pueden" + }, + "poner": { + "1Sing": "pongo" + }, + "querer": { + "1Sing": "quiero", + "2Sing": "quieres", + "3Sing": "quiere", + "3Plur": "quieren" + }, + "saber": { + "1Sing": "sé" + }, + "salir": { + "1Sing": "salgo" + }, + "tener": { + "1Sing": "tengo", + "2Sing": "tienes", + "3Sing": "tiene", + "3Plur": "tienen" + }, + "traer": { + "1Sing": "traigo" + }, + "valer": { + "1Sing": "valgo" + }, + "venir": { + "1Sing": "vengo", + "2Sing": "vienes", + "3Sing": "viene", + "3Plur": "vienen" + }, + "ver": { + "1Sing": "veo" + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Past": { + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "11--e--i": { + "verbs": [ + "adherir", + "advertir", + "arrepentir", + "arrepentirse", + "conferir", + "consentir", + "convertir", + "deferir", + "diferir", + "divertir", + "herir", + "hervir", + "ingerir", + "invertir", + "mentir", + "pervertir", + "preferir", + "presentir", + "referir", + "requerir", + "sentir", + "subvertir", + "sugerir", + "transferir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "1--o--u": { + "verbs": [ + "dormir", + "morir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "8--i": { + "verbs": [ + "atañer", + "bruñir", + "bullir", + "engullir", + "gañir", + "gruñir", + "mullir", + "muñir", + "plañir", + "restriñir", + "tañer", + "tullir", + "zambullir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "7--c--j": { + "verbs": [ + "aducir", + "conducir", + "deducir", + "inducir", + "introducir", + "producir", + "reducir", + "seducir", + "traducir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "andar": { + "1Sing": "anduve", + "2Sing": "anduviste", + "3Sing": "anduvo", + "1Plur": "anduvimos", + "2Plur": "anduvisteis", + "3Plur": "anduvieron" + }, + "ser": { + "1Sing": "fui", + "2Sing": "fuiste", + "3Sing": "fue", + "1Plur": "fuimos", + "2Plur": "fuisteis", + "3Plur": "fueron" + }, + "caber": { + "1Sing": "cupe", + "2Sing": "cupiste", + "3Sing": "cupo", + "1Plur": "cupimos", + "2Plur": "cupisteis", + "3Plur": "cupieron" + }, + "caer": { + "3Sing": "cayó", + "2Plur": "caísteis", + "3Plur": "cayeron" + }, + "dar": { + "1Sing": "di", + "2Sing": "diste", + "3Sing": "dio", + "1Plur": "dimos", + "2Plur": "disteis", + "3Plur": "dieron" + }, + "decir": { + "1Sing": "dije", + "2Sing": "dijiste", + "3Sing": "dijo", + "1Plur": "dijimos", + "2Plur": "dijisteis", + "3Plur": "dijeron" + }, + "estar": { + "1Sing": "estuve", + "2Sing": "estuviste", + "3Sing": "estuvo", + "1Plur": "estuvimos", + "2Plur": "estuvisteis", + "3Plur": "estuvieron" + }, + "haber": { + "1Sing": "hube", + "2Sing": "hubiste", + "3Sing": "hubo", + "1Plur": "hubimos", + "2Plur": "hubisteis", + "3Plur": "hubieron" + }, + "hacer": { + "1Sing": "hice", + "2Sing": "hiciste", + "3Sing": "hizo", + "1Plur": "hicimos", + "2Plur": "hicisteis", + "3Plur": "hicieron" + }, + "ir": { + "1Sing": "fui", + "2Sing": "fuiste", + "3Sing": "fue", + "1Plur": "fuimos", + "2Plur": "fuisteis", + "3Plur": "fueron" + }, + "oír": { + "2Sing": "oíste", + "3Sing": "oyó", + "1Plur": "oímos", + "2Plur": "oísteis", + "3Plur": "oyeron" + }, + "poder": { + "1Sing": "pude", + "2Sing": "pudiste", + "3Sing": "pudo", + "1Plur": "pudimos", + "2Plur": "pudisteis", + "3Plur": "pudieron" + }, + "poner": { + "1Sing": "puse", + "2Sing": "pusiste", + "3Sing": "puso", + "1Plur": "pusimos", + "2Plur": "pusisteis", + "3Plur": "pusieron" + }, + "querer": { + "1Sing": "quise", + "2Sing": "quisiste", + "3Sing": "quiso", + "1Plur": "quisimos", + "2Plur": "quisisteis", + "3Plur": "quisieron" + }, + "saber": { + "1Sing": "supe", + "2Sing": "supiste", + "3Sing": "supo", + "1Plur": "supimos", + "2Plur": "supisteis", + "3Plur": "supieron" + }, + "tener": { + "1Sing": "tuve", + "2Sing": "tuviste", + "3Sing": "tuvo", + "1Plur": "tuvimos", + "2Plur": "tuvisteis", + "3Plur": "tuvieron" + }, + "traer": { + "1Sing": "traje", + "2Sing": "trajiste", + "3Sing": "trajo", + "1Plur": "trajimos", + "2Plur": "trajisteis", + "3Plur": "trajeron" + }, + "venir": { + "1Sing": "vine", + "2Sing": "viniste", + "3Sing": "vino", + "1Plur": "vinimos", + "2Plur": "vinisteis", + "3Plur": "vinieron" + }, + "ver": { + "1Sing": "vi", + "3Sing": "vio" + } + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Imp": {}, + "Fut": { + "10--super--exception": { + "verbs": { + "caber": { + "1Sing": "cabré", + "2Sing": "cabrás", + "3Sing": "cabrá", + "1Plur": "cabremos", + "2Plur": "cabréis", + "3Plur": "cabrán" + }, + "decir": { + "1Sing": "diré", + "2Sing": "dirás", + "3Sing": "dirá", + "1Plur": "diremos", + "2Plur": "diréis", + "3Plur": "dirán" + }, + "haber": { + "1Sing": "habré", + "2Sing": "habrás", + "3Sing": "habrá", + "1Plur": "habremos", + "2Plur": "habréis", + "3Plur": "habrán" + }, + "hacer": { + "1Sing": "haré", + "2Sing": "harás", + "3Sing": "hará", + "1Plur": "haremos", + "2Plur": "haréis", + "3Plur": "harán" + }, + "poder": { + "1Sing": "podré", + "2Sing": "podrás", + "3Sing": "podrá", + "1Plur": "podremos", + "2Plur": "podréis", + "3Plur": "podrán" + }, + "poner": { + "1Sing": "pondré", + "2Sing": "pondrás", + "3Sing": "pondrá", + "1Plur": "pondremos", + "2Plur": "pondréis", + "3Plur": "pondrán" + }, + "querer": { + "1Sing": "querré", + "2Sing": "querrás", + "3Sing": "querrá", + "1Plur": "querremos", + "2Plur": "querréis", + "3Plur": "querrán" + }, + "saber": { + "1Sing": "sabré", + "2Sing": "sabrás", + "3Sing": "sabrá", + "1Plur": "sabremos", + "2Plur": "sabréis", + "3Plur": "sabrán" + }, + "salir": { + "1Sing": "saldré", + "2Sing": "saldrás", + "3Sing": "saldrá", + "1Plur": "saldremos", + "2Plur": "saldréis", + "3Plur": "saldrán" + }, + "tener": { + "1Sing": "tendré", + "2Sing": "tendrás", + "3Sing": "tendrá", + "1Plur": "tendremos", + "2Plur": "tendréis", + "3Plur": "tendrán" + }, + "valer": { + "1Sing": "valdré", + "2Sing": "valdrás", + "3Sing": "valdrá", + "1Plur": "valdremos", + "2Plur": "valdréis", + "3Plur": "valdrán" + }, + "venir": { + "1Sing": "vendré", + "2Sing": "vendrás", + "3Sing": "vendrá", + "1Plur": "vendremos", + "2Plur": "vendréis", + "3Plur": "vendrán" + } + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + } + }, + "Sub": { + "Pres": { + "1--e--ie": { + "verbs": [ + "acertar", + "adherir", + "advertir", + "alentar", + "apretar", + "arrendar", + "arrepentir", + "arrepentirse", + "ascender", + "asentar", + "atender", + "atravesar", + "calentar", + "cegar", + "cerner", + "cerrar", + "comenzar", + "concernir", + "concertar", + "conferir", + "confesar", + "consentir", + "convertir", + "defender", + "deferir", + "descender", + "desmembrar", + "despertar", + "desterrar", + "diferir", + "discernir", + "divertir", + "empezar", + "encender", + "encomendar", + "enmendar", + "ensangrentar", + "entender", + "enterrar", + "errar", + "extender", + "fregar", + "gobernar", + "helar", + "herir", + "herrar", + "hervir", + "ingerir", + "invertir", + "manifestar", + "mentir", + "merendar", + "negar", + "nevar", + "pensar", + "perder", + "pervertir", + "plegar", + "preferir", + "presentir", + "quebrar", + "recomendar", + "referir", + "regar", + "requerir", + "reventar", + "segar", + "sembrar", + "sentar", + "sentarse", + "sentir", + "sosegar", + "subvertir", + "sugerir", + "tender", + "tentar", + "transferir", + "tropezar", + "verter" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--o--ue": { + "verbs": [ + "absolver", + "acordar", + "acostar", + "almorzar", + "amolar", + "apostar", + "cocer", + "colar", + "colgar", + "concordar", + "conmover", + "consolar", + "contar", + "costar", + "descontar", + "devolver", + "disolver", + "doler", + "dormir", + "encontrar", + "envolver", + "esforzar", + "esforzarse", + "forzar", + "holgar", + "moler", + "morder", + "morir", + "mostrar", + "mover", + "poblar", + "probar", + "recordar", + "reforzar", + "renovar", + "resolver", + "rodar", + "rogar", + "soltar", + "sonar", + "soñar", + "tostar", + "trocar", + "tronar", + "volar", + "volcar", + "volver" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "11--e--i": { + "verbs": [ + "adherir", + "advertir", + "arrepentir", + "arrepentirse", + "conferir", + "consentir", + "convertir", + "deferir", + "diferir", + "divertir", + "herir", + "hervir", + "ingerir", + "invertir", + "mentir", + "pervertir", + "preferir", + "presentir", + "referir", + "requerir", + "sentir", + "subvertir", + "sugerir", + "transferir" + ], + "affected_tags": [ + "1Plur", + "2Plur" + ] + }, + "1--o--u": { + "verbs": [ + "dormir", + "morir" + ], + "affected_tags": [ + "1Plur", + "2Plur" + ] + }, + "1--c--zc": { + "verbs": [ + "abastecer", + "ablandecer", + "aborrecer", + "acaecer", + "acontecer", + "adormecer", + "aducir", + "agradecer", + "amanecer", + "anochecer", + "aparecer", + "atardecer", + "carecer", + "compadecer", + "complacer", + "conducir", + "conocer", + "convalecer", + "crecer", + "deducir", + "deslucir", + "embellecer", + "empobrecer", + "encarecer", + "endurecer", + "enfurecer", + "engrandecer", + "enloquecer", + "enmudecer", + "ennegrecer", + "ennoblecer", + "enorgullecer", + "enrarecer", + "entumecer", + "envanecer", + "envejecer", + "enverdecer", + "establecer", + "estremecer", + "fallecer", + "favorecer", + "florecer", + "fortalecer", + "guarnecer", + "humedecer", + "inducir", + "introducir", + "lucir", + "merecer", + "nacer", + "obedecer", + "obscurecer", + "ofrecer", + "orgullecer", + "oscurecer", + "pacer", + "padecer", + "palidecer", + "parecer", + "perecer", + "permanecer", + "pertenecer", + "placer", + "producir", + "reducir", + "renacer", + "resplandecer", + "restablecer", + "robustecer", + "seducir", + "tardecer", + "traducir", + "verdecer" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "ser": { + "1Sing": "sea", + "2Sing": "seas", + "3Sing": "sea", + "1Plur": "seamos", + "2Plur": "seáis", + "3Plur": "sean" + }, + "caber": { + "1Sing": "quepa", + "2Sing": "quepas", + "3Sing": "quepa", + "1Plur": "quepamos", + "2Plur": "quepáis", + "3Plur": "quepan" + }, + "caer": { + "1Sing": "caiga", + "2Sing": "caigas", + "3Sing": "caiga", + "1Plur": "caigamos", + "2Plur": "caigáis", + "3Plur": "caigan" + }, + "dar": { + "1Sing": "dé", + "3Sing": "dé", + "2Plur": "deis" + }, + "decir": { + "1Sing": "diga", + "2Sing": "digas", + "3Sing": "diga", + "1Plur": "digamos", + "2Plur": "digáis", + "3Plur": "digan" + }, + "estar": { + "1Sing": "esté", + "2Sing": "estés", + "3Sing": "esté", + "3Plur": "estén" + }, + "haber": { + "1Sing": "haya", + "2Sing": "hayas", + "3Sing": "haya", + "1Plur": "hayamos", + "2Plur": "hayáis", + "3Plur": "hayan" + }, + "hacer": { + "1Sing": "haga", + "2Sing": "hagas", + "3Sing": "haga", + "1Plur": "hagamos", + "2Plur": "hagáis", + "3Plur": "hagan" + }, + "ir": { + "1Sing": "vaya", + "2Sing": "vayas", + "3Sing": "vaya", + "1Plur": "vayamos", + "2Plur": "vayáis", + "3Plur": "vayan" + }, + "oír": { + "1Sing": "oiga", + "2Sing": "oigas", + "3Sing": "oiga", + "1Plur": "oigamos", + "2Plur": "oigáis", + "3Plur": "oigan" + }, + "poder": { + "1Sing": "pueda", + "2Sing": "puedas", + "3Sing": "pueda", + "3Plur": "puedan" + }, + "poner": { + "1Sing": "ponga", + "2Sing": "pongas", + "3Sing": "ponga", + "1Plur": "pongamos", + "2Plur": "pongáis", + "3Plur": "pongan" + }, + "querer": { + "1Sing": "quiera", + "2Sing": "quieras", + "3Sing": "quiera", + "3Plur": "quieran" + }, + "saber": { + "1Sing": "sepa", + "2Sing": "sepas", + "3Sing": "sepa", + "1Plur": "sepamos", + "2Plur": "sepáis", + "3Plur": "sepan" + }, + "salir": { + "1Sing": "salga", + "2Sing": "salgas", + "3Sing": "salga", + "1Plur": "salgamos", + "2Plur": "salgáis", + "3Plur": "salgan" + }, + "tener": { + "1Sing": "tenga", + "2Sing": "tengas", + "3Sing": "tenga", + "1Plur": "tengamos", + "2Plur": "tengáis", + "3Plur": "tengan" + }, + "traer": { + "1Sing": "traiga", + "2Sing": "traigas", + "3Sing": "traiga", + "1Plur": "traigamos", + "2Plur": "traigáis", + "3Plur": "traigan" + }, + "valer": { + "1Sing": "valga", + "2Sing": "valgas", + "3Sing": "valga", + "1Plur": "valgamos", + "2Plur": "valgáis", + "3Plur": "valgan" + }, + "venir": { + "1Sing": "venga", + "2Sing": "vengas", + "3Sing": "venga", + "1Plur": "vengamos", + "2Plur": "vengáis", + "3Plur": "vengan" + }, + "ver": { + "1Sing": "vea", + "2Sing": "veas", + "3Sing": "vea", + "1Plur": "veamos", + "2Plur": "veáis", + "3Plur": "vean" + } + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Imp": { + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "11--e--i": { + "verbs": [ + "adherir", + "advertir", + "arrepentir", + "arrepentirse", + "conferir", + "consentir", + "convertir", + "deferir", + "diferir", + "divertir", + "herir", + "hervir", + "ingerir", + "invertir", + "mentir", + "pervertir", + "preferir", + "presentir", + "referir", + "requerir", + "sentir", + "subvertir", + "sugerir", + "transferir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "1--o--u": { + "verbs": [ + "dormir", + "morir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "7--c--j": { + "verbs": [ + "aducir", + "conducir", + "deducir", + "inducir", + "introducir", + "producir", + "reducir", + "seducir", + "traducir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "8--i": { + "verbs": [ + "atañer", + "bruñir", + "bullir", + "engullir", + "gañir", + "gruñir", + "mullir", + "muñir", + "plañir", + "restriñir", + "tañer", + "tullir", + "zambullir" + ], + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "andar": { + "1Sing": "anduviera", + "2Sing": "anduvieras", + "3Sing": "anduviera", + "1Plur": "anduviéramos", + "2Plur": "anduvierais", + "3Plur": "anduvieran" + }, + "ser": { + "1Sing": "fuera", + "2Sing": "fueras", + "3Sing": "fuera", + "1Plur": "fuéramos", + "2Plur": "fuerais", + "3Plur": "fueran" + }, + "caber": { + "1Sing": "cupiera", + "2Sing": "cupieras", + "3Sing": "cupiera", + "1Plur": "cupiéramos", + "2Plur": "cupierais", + "3Plur": "cupieran" + }, + "caer": { + "1Sing": "cayera", + "2Sing": "cayeras", + "3Sing": "cayera", + "1Plur": "cayéramos", + "2Plur": "cayerais", + "3Plur": "cayeran" + }, + "dar": { + "1Sing": "diera", + "2Sing": "dieras", + "3Sing": "diera", + "1Plur": "diéramos", + "2Plur": "dierais", + "3Plur": "dieran" + }, + "decir": { + "1Sing": "dijera", + "2Sing": "dijeras", + "3Sing": "dijera", + "1Plur": "dijéramos", + "2Plur": "dijerais", + "3Plur": "dijeran" + }, + "estar": { + "1Sing": "estuviera", + "2Sing": "estuvieras", + "3Sing": "estuviera", + "1Plur": "estuviéramos", + "2Plur": "estuvierais", + "3Plur": "estuvieran" + }, + "haber": { + "1Sing": "hubiera", + "2Sing": "hubieras", + "3Sing": "hubiera", + "1Plur": "hubiéramos", + "2Plur": "hubierais", + "3Plur": "hubieran" + }, + "hacer": { + "1Sing": "hiciera", + "2Sing": "hicieras", + "3Sing": "hiciera", + "1Plur": "hiciéramos", + "2Plur": "hicierais", + "3Plur": "hicieran" + }, + "ir": { + "1Sing": "fuera", + "2Sing": "fueras", + "3Sing": "fuera", + "1Plur": "fuéramos", + "2Plur": "fuerais", + "3Plur": "fueran" + }, + "oír": { + "1Sing": "oyera", + "2Sing": "oyeras", + "3Sing": "oyera", + "1Plur": "oyéramos", + "2Plur": "oyerais", + "3Plur": "oyeran" + }, + "poder": { + "1Sing": "pudiera", + "2Sing": "pudieras", + "3Sing": "pudiera", + "1Plur": "pudiéramos", + "2Plur": "pudierais", + "3Plur": "pudieran" + }, + "poner": { + "1Sing": "pusiera", + "2Sing": "pusieras", + "3Sing": "pusiera", + "1Plur": "pusiéramos", + "2Plur": "pusierais", + "3Plur": "pusieran" + }, + "querer": { + "1Sing": "quisiera", + "2Sing": "quisieras", + "3Sing": "quisiera", + "1Plur": "quisiéramos", + "2Plur": "quisierais", + "3Plur": "quisiera" + }, + "saber": { + "1Sing": "supiera", + "2Sing": "supieras", + "3Sing": "supiera", + "1Plur": "supiéramos", + "2Plur": "supierais", + "3Plur": "supieran" + }, + "tener": { + "1Sing": "tuviera", + "2Sing": "tuvieras", + "3Sing": "tuviera", + "1Plur": "tuviéramos", + "2Plur": "tuvierais", + "3Plur": "tuviera" + }, + "traer": { + "1Sing": "trajera", + "2Sing": "trajeras", + "3Sing": "trajera", + "1Plur": "trajéramos", + "2Plur": "trajerais", + "3Plur": "trajeran" + }, + "venir": { + "1Sing": "viniera", + "2Sing": "vinieras", + "3Sing": "viniera", + "1Plur": "viniéramos", + "2Plur": "vinierais", + "3Plur": "vinieran" + }, + "ver": {} + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + } + }, + "Cnd": { + "10--super--exception": { + "verbs": { + "hacer": "har", + "decir": "dir", + "caber": "cabr", + "haber": "habr", + "poder": "podr", + "querer": "querr", + "saber": "sabr", + "poner": "pondr", + "salir": "saldr", + "tener": "tendr", + "venir": "vendr", + "valer": "valdr", + "satisfacer": "satisfar" + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Imp": { + "1--e--ie": { + "verbs": [ + "acertar", + "adherir", + "advertir", + "alentar", + "apretar", + "arrendar", + "arrepentir", + "arrepentirse", + "ascender", + "asentar", + "atender", + "atravesar", + "calentar", + "cegar", + "cerner", + "cerrar", + "comenzar", + "concernir", + "concertar", + "conferir", + "confesar", + "consentir", + "convertir", + "defender", + "deferir", + "descender", + "desmembrar", + "despertar", + "desterrar", + "diferir", + "discernir", + "divertir", + "empezar", + "encender", + "encomendar", + "enmendar", + "ensangrentar", + "entender", + "enterrar", + "errar", + "extender", + "fregar", + "gobernar", + "helar", + "herir", + "herrar", + "hervir", + "ingerir", + "invertir", + "manifestar", + "mentir", + "merendar", + "negar", + "nevar", + "pensar", + "perder", + "pervertir", + "plegar", + "preferir", + "presentir", + "quebrar", + "recomendar", + "referir", + "regar", + "requerir", + "reventar", + "segar", + "sembrar", + "sentar", + "sentarse", + "sentir", + "sosegar", + "subvertir", + "sugerir", + "tender", + "tentar", + "transferir", + "tropezar", + "verter" + ], + "affected_tags": [ + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--o--ue": { + "verbs": [ + "absolver", + "acordar", + "acostar", + "almorzar", + "amolar", + "apostar", + "cocer", + "colar", + "colgar", + "concordar", + "conmover", + "consolar", + "contar", + "costar", + "descontar", + "devolver", + "disolver", + "doler", + "dormir", + "encontrar", + "envolver", + "esforzar", + "esforzarse", + "forzar", + "holgar", + "moler", + "morder", + "morir", + "mostrar", + "mover", + "poblar", + "probar", + "recordar", + "reforzar", + "renovar", + "resolver", + "rodar", + "rogar", + "soltar", + "sonar", + "soñar", + "tostar", + "trocar", + "tronar", + "volar", + "volcar", + "volver" + ], + "affected_tags": [ + "2Sing", + "3Sing", + "3Plur" + ] + }, + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ], + "affected_tags": [ + "2Sing", + "3Sing", + "1Plur", + "3Plur" + ] + }, + "11--e--i": { + "verbs": [ + "adherir", + "advertir", + "arrepentir", + "arrepentirse", + "conferir", + "consentir", + "convertir", + "deferir", + "diferir", + "divertir", + "herir", + "hervir", + "ingerir", + "invertir", + "mentir", + "pervertir", + "preferir", + "presentir", + "referir", + "requerir", + "sentir", + "subvertir", + "sugerir", + "transferir" + ], + "affected_tags": [ + "1Plur" + ] + }, + "1--o--u": { + "verbs": [ + "dormir", + "morir" + ], + "affected_tags": [ + "1Plur" + ] + }, + "1--c--zc": { + "verbs": [ + "abastecer", + "ablandecer", + "aborrecer", + "acaecer", + "acontecer", + "adormecer", + "aducir", + "agradecer", + "amanecer", + "anochecer", + "aparecer", + "atardecer", + "carecer", + "compadecer", + "complacer", + "conducir", + "conocer", + "convalecer", + "crecer", + "deducir", + "deslucir", + "embellecer", + "empobrecer", + "encarecer", + "endurecer", + "enfurecer", + "engrandecer", + "enloquecer", + "enmudecer", + "ennegrecer", + "ennoblecer", + "enorgullecer", + "enrarecer", + "entumecer", + "envanecer", + "envejecer", + "enverdecer", + "establecer", + "estremecer", + "fallecer", + "favorecer", + "florecer", + "fortalecer", + "guarnecer", + "humedecer", + "inducir", + "introducir", + "lucir", + "merecer", + "nacer", + "obedecer", + "obscurecer", + "ofrecer", + "orgullecer", + "oscurecer", + "pacer", + "padecer", + "palidecer", + "parecer", + "perecer", + "permanecer", + "pertenecer", + "placer", + "producir", + "reducir", + "renacer", + "resplandecer", + "restablecer", + "robustecer", + "seducir", + "tardecer", + "traducir", + "verdecer" + ], + "affected_tags": [ + "3Sing", + "1Plur", + "3Plur" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ], + "affected_tags": [ + "2Sing", + "3Sing", + "1Plur", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "ser": { + "2Sing": "sé", + "3Sing": "sea", + "1Plur": "seamos", + "3Plur": "sean" + }, + "caber": { + "3Sing": "quepa", + "1Plur": "quepamos", + "3Plur": "quepan" + }, + "caer": { + "3Sing": "caiga", + "1Plur": "caigamos", + "3Plur": "caigan" + }, + "dar": { + "3Sing": "dé" + }, + "decir": { + "2Sing": "di", + "3Sing": "diga", + "1Plur": "digamos", + "3Plur": "digan" + }, + "estar": { + "2Sing": "está", + "3Sing": "esté Ud", + "3Plur": "estén Uds" + }, + "hacer": { + "2Sing": "haz", + "3Sing": "haga", + "1Plur": "hagamos", + "3Plur": "hagan" + }, + "ir": { + "2Sing": "ve", + "3Sing": "vaya", + "1Plur": "vayamos", + "3Plur": "vaya Uds" + }, + "oír": { + "2Sing": "oye", + "3Sing": "oiga", + "1Plur": "oigamos", + "3Plur": "oigan Uds" + }, + "poder": { + "2Sing": "puede", + "3Sing": "pueda", + "3Plur": "puedan" + }, + "poner": { + "2Sing": "pon", + "3Sing": "ponga", + "1Plur": "pongamos", + "3Plur": "pongan" + }, + "querer": { + "2Sing": "quiere", + "3Sing": "quiera", + "3Plur": "quieran" + }, + "saber": { + "3Sing": "sepa", + "1Plur": "sepamos", + "3Plur": "sepan" + }, + "salir": { + "2Sing": "sal", + "3Sing": "salga", + "1Plur": "salgamos", + "3Plur": "salgan" + }, + "tener": { + "2Sing": "ten", + "3Sing": "tenga", + "1Plur": "tengamos", + "3Plur": "tengan Ud" + }, + "traer": { + "3Sing": "traiga", + "1Plur": "traigamos", + "3Plur": "traigan" + }, + "valer": { + "3Sing": "valga", + "1Plur": "valgamos", + "3Plur": "valgan" + }, + "venir": { + "2Sing": "ven", + "3Sing": "venga", + "1Plur": "vengamos", + "3Plur": "vengan" + }, + "ver": { + "3Sing": "vea", + "1Plur": "veamos", + "3Plur": "vean Uds" + } + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Gerund": { + "1--e--i": { + "verbs": [ + "ceñir", + "competir", + "concebir", + "conseguir", + "corregir", + "derretir", + "desleír", + "despedir", + "elegir", + "embestir", + "expedir", + "freír", + "gemir", + "henchir", + "impedir", + "investir", + "medir", + "pedir", + "repetir", + "reír", + "reñir", + "seguir", + "servir", + "sonreír", + "teñir" + ] + }, + "11--e--i": { + "verbs": [ + "adherir", + "advertir", + "arrepentir", + "arrepentirse", + "conferir", + "consentir", + "convertir", + "deferir", + "diferir", + "divertir", + "herir", + "hervir", + "ingerir", + "invertir", + "mentir", + "pervertir", + "preferir", + "presentir", + "referir", + "requerir", + "sentir", + "subvertir", + "sugerir", + "transferir" + ] + }, + "1--o--u": { + "verbs": [ + "dormir", + "morir" + ] + }, + "9--y": { + "verbs": [ + "argüir", + "atribuir", + "concluir", + "constituir", + "construir", + "contribuir", + "destituir", + "destruir", + "disminuir", + "distribuir", + "excluir", + "huir", + "incluir", + "influir", + "instituir", + "instruir", + "obstruir", + "restituir", + "retribuir", + "substituir", + "sustituir" + ] + }, + "8--i": { + "verbs": [ + "atañer", + "bruñir", + "bullir", + "engullir", + "gañir", + "gruñir", + "mullir", + "muñir", + "plañir", + "restriñir", + "tañer", + "tullir", + "zambullir" + ], + "affected_tags": [ + "3Sing", + "3Plur" + ] + }, + "10--super--exception": { + "verbs": { + "decir": "diciendo", + "poder": "pudiendo", + "venir": "viniendo" + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + }, + "Participle": { + "10--super--exception": { + "verbs": { + "decir": "dicho", + "hacer": "hecho", + "poner": "puesto", + "ver": "visto", + "morir": "muerto", + "cubrir": "cubierto", + "volver": "vuelto", + "envolver": "envuelto", + "devolver": "devuelto", + "abrir": "abierto", + "romper": "roto", + "proponer": "propuesto", + "disponer": "dispuesto", + "escribir": "escrito", + "describir": "descrito", + "prescribir": "prescrito", + "componer": "compuesto", + "deshacer": "desecho", + "descubrir": "descubierto", + "satisfacer": "satisfecho", + "adscribir": "adscrito", + "inscribir": "inscrito", + "preinscribir": "preinscrito", + "proscribir": "proscrito", + "rescribir": "rescrito", + "subscribir": "subscrito", + "suscribir": "suscrito", + "transcribir": "transcrito", + "trascribir": "trascrito", + "reescribir": "reescrito", + "sobrescribir": "sobrescrito", + "pudrir": "podrido", + "absolver": "absuelto", + "disolver": "disuelto", + "ensolver": "ensuelto", + "resolver": "resuelto", + "bendecir": "bendito", + "elegir": "electo", + "freír": "frito", + "imprimir": "impreso", + "maldecido": "maldicho", + "prender": "preso", + "proveer": "provisto", + "prever": "previsto", + "rever": "revisto" + }, + "affected_tags": [ + "1Sing", + "2Sing", + "3Sing", + "1Plur", + "2Plur", + "3Plur" + ] + } + } +} diff --git a/language_data/irregular_verbs_list.json b/language_data/irregular_verbs_list.json new file mode 100644 index 0000000000000000000000000000000000000000..25b7aabc1cbfa70d5e519161070d6c0a1d7dd9b5 --- /dev/null +++ b/language_data/irregular_verbs_list.json @@ -0,0 +1,313 @@ +[ + "abastecer", + "ablandecer", + "aborrecer", + "abrir", + "absolver", + "acaecer", + "acertar", + "acontecer", + "acordar", + "acostar", + "adherir", + "adormecer", + "adscribir", + "aducir", + "advertir", + "agradecer", + "alentar", + "almorzar", + "amanecer", + "amolar", + "andar", + "anochecer", + "aparecer", + "apostar", + "apretar", + "argüir", + "arrendar", + "arrepentir", + "arrepentirse", + "ascender", + "asentar", + "atardecer", + "atañer", + "atender", + "atravesar", + "atribuir", + "bendecir", + "bruñir", + "bullir", + "caber", + "caer", + "calentar", + "carecer", + "cegar", + "cerner", + "cerrar", + "ceñir", + "cocer", + "colar", + "colgar", + "comenzar", + "compadecer", + "competir", + "complacer", + "componer", + "concebir", + "concernir", + "concertar", + "concluir", + "concordar", + "conducir", + "conferir", + "confesar", + "conmover", + "conocer", + "conseguir", + "consentir", + "consolar", + "constituir", + "construir", + "contar", + "contribuir", + "convalecer", + "convertir", + "corregir", + "costar", + "crecer", + "cubrir", + "dar", + "decir", + "deducir", + "defender", + "deferir", + "derretir", + "descender", + "descontar", + "describir", + "descubrir", + "deshacer", + "desleír", + "deslucir", + "desmembrar", + "despedir", + "despertar", + "desterrar", + "destituir", + "destruir", + "devolver", + "diferir", + "discernir", + "disminuir", + "disolver", + "disponer", + "distribuir", + "divertir", + "doler", + "dormir", + "elegir", + "embellecer", + "embestir", + "empezar", + "empobrecer", + "encarecer", + "encender", + "encontrar", + "encomendar", + "endurecer", + "enfurecer", + "engrandecer", + "engullir", + "enloquecer", + "enmendar", + "enmudecer", + "ennegrecer", + "ennoblecer", + "enorgullecer", + "enrarecer", + "ensangrentar", + "ensolver", + "entender", + "enterrar", + "entumecer", + "envanecer", + "envejecer", + "enverdecer", + "envolver", + "errar", + "escribir", + "esforzar", + "esforzarse", + "establecer", + "estar", + "estremecer", + "excluir", + "expedir", + "extender", + "fallecer", + "favorecer", + "florecer", + "fortalecer", + "forzar", + "fregar", + "freír", + "gañir", + "gemir", + "gobernar", + "gruñir", + "guarnecer", + "haber", + "hacer", + "helar", + "henchir", + "herir", + "herrar", + "hervir", + "holgar", + "huir", + "humedecer", + "impedir", + "imprimir", + "incluir", + "inducir", + "influir", + "ingerir", + "inscribir", + "instituir", + "instruir", + "introducir", + "invertir", + "investir", + "ir", + "lucir", + "maldecido", + "manifestar", + "medir", + "mentir", + "merecer", + "merendar", + "moler", + "morder", + "morir", + "mostrar", + "mover", + "mullir", + "muñir", + "nacer", + "negar", + "nevar", + "obedecer", + "obscurecer", + "obstruir", + "ofrecer", + "orgullecer", + "oscurecer", + "oír", + "pacer", + "padecer", + "palidecer", + "parecer", + "pedir", + "pensar", + "perder", + "perecer", + "permanecer", + "pertenecer", + "pervertir", + "placer", + "plañir", + "plegar", + "poblar", + "poder", + "poner", + "preferir", + "preinscribir", + "prender", + "prescribir", + "presentir", + "prever", + "probar", + "producir", + "proponer", + "proscribir", + "proveer", + "pudrir", + "quebrar", + "querer", + "recomendar", + "recordar", + "reducir", + "reescribir", + "referir", + "reforzar", + "regar", + "renacer", + "renovar", + "repetir", + "requerir", + "rescribir", + "resolver", + "resplandecer", + "restablecer", + "restituir", + "restriñir", + "retribuir", + "reventar", + "rever", + "reír", + "reñir", + "robustecer", + "rodar", + "rogar", + "romper", + "saber", + "salir", + "satisfacer", + "seducir", + "segar", + "seguir", + "sembrar", + "sentar", + "sentarse", + "sentir", + "ser", + "servir", + "sobrescribir", + "soltar", + "sonar", + "sonreír", + "sosegar", + "soñar", + "subscribir", + "substituir", + "subvertir", + "sugerir", + "suscribir", + "sustituir", + "tardecer", + "tañer", + "tender", + "tener", + "tentar", + "teñir", + "tostar", + "traducir", + "traer", + "transcribir", + "transferir", + "trascribir", + "trocar", + "tronar", + "tropezar", + "tullir", + "valer", + "venir", + "ver", + "verdecer", + "verter", + "volar", + "volcar", + "volver", + "zambullir" +] diff --git a/language_data/phrases.json b/language_data/phrases.json new file mode 100644 index 0000000000000000000000000000000000000000..91e4978267d1b4019d6836d15c3529658df3f49e --- /dev/null +++ b/language_data/phrases.json @@ -0,0 +1,20306 @@ +{ + "PHRASES": [ + "a_DET_coruña_PROPN", + "a_NOUN_hrc_NOUN", + "a_NOUN_hrc_PROPN", + "a_NOUN_pc_NOUN", + "a_NOUN_párr_INTJ", + "a_NOUN_párrs_ADJ", + "a_NOUN_párrs_ADV", + "a_PROPN_coruña_PROPN", + "aaron_PROPN_rodgers_PROPN", + "abajo_ADV_arriba_ADV", + "abal_PROPN_medina_PROPN", + "abandono_NOUN_escolar_ADJ", + "abastecimiento_NOUN_energético_ADJ", + "abb_PROPN_lummus_PROPN", + "abb_PROPN_schaltanlagen_PROPN", + "abbey_PROPN_road_PROPN", + "abc_PROPN_news_PROPN", + "abdel_VERB_abdel_VERB", + "abdelaziz_PROPN_bouteflika_PROPN", + "abdelaziz_PROPN_egipto_PROPN", + "abdelfattah_ADJ_amor_NOUN", + "abdelfattah_PROPN_amor_NOUN", + "abdul_PROPN_aziz_PROPN", + "abdul_PROPN_rahman_PROPN", + "abdul_PROPN_wahid_PROPN", + "abel_PROPN_caballero_PROPN", + "abidine_PROPN_ben_PROPN", + "abjasia_PROPN_georgia_PROPN", + "abn_PROPN_amro_PROPN", + "abogado_NOUN_defensor_ADJ", + "abogado_NOUN_notario_NOUN", + "abogado_NOUN_penalista_ADJ", + "abogado_NOUN_querellante_ADJ", + "abordaje_NOUN_integral_ADJ", + "aboriginal_PROPN_and_PROPN", + "aborto_NOUN_clandestino_ADJ", + "aborto_NOUN_espontáneo_ADJ", + "aborto_NOUN_ilegal_ADJ", + "aborto_NOUN_inducido_ADJ", + "aborto_NOUN_practicado_ADJ", + "aborto_NOUN_provocado_ADJ", + "aborto_NOUN_terapéutico_ADJ", + "aboul_AUX_gheit_PROPN", + "about_NOUN_the_PROPN", + "about_PROPN_the_PROPN", + "abr_NOUN_efe_PROPN", + "abraham_PROPN_lincoln_PROPN", + "abrigar_VERB_esperanza_NOUN", + "abril_NOUN_ria_PROPN", + "abrumador_ADJ_mayoría_NOUN", + "absentismo_NOUN_escolar_ADJ", + "absentismo_NOUN_laboral_ADJ", + "absolutamente_ADV_crucial_ADJ", + "absolutamente_ADV_esencial_ADJ", + "absolutamente_ADV_falso_ADJ", + "absolutamente_ADV_imprescindible_ADJ", + "absolutamente_ADV_inaceptable_ADJ", + "absolutamente_ADV_indispensable_ADJ", + "absolutamente_ADV_nada_PRON", + "absoluto_ADJ_certeza_NOUN", + "absoluto_ADJ_normalidad_NOUN", + "absorción_NOUN_antropógena_ADJ", + "absorción_NOUN_antropógén_ADJ", + "absorción_NOUN_neto_ADJ", + "abstención_NOUN_arabia_PROPN", + "abstención_NOUN_quedar_VERB", + "abu_PROPN_dabi_PROPN", + "abu_PROPN_dhabi_PROPN", + "abu_PROPN_ghraib_PROPN", + "abu_PROPN_mazen_PROPN", + "abu_PROPN_musa_PROPN", + "abu_PROPN_sayyaf_PROPN", + "abuela_NOUN_materno_ADJ", + "abuela_NOUN_paterno_ADJ", + "abuelo_NOUN_materno_ADJ", + "abuelo_NOUN_paterno_ADJ", + "abuja_PROPN_nigeria_PROPN", + "abundante_ADJ_lluvia_NOUN", + "abusar_VERB_sexualmente_ADV", + "abuso_NOUN_cometido_ADJ", + "abuso_NOUN_descuido_ADJ", + "abuso_NOUN_deshonesto_ADJ", + "abuso_NOUN_sexual_ADJ", + "ac_PROPN_dc_PROPN", + "ac_PROPN_milan_PROPN", + "ac_PROPN_milán_PROPN", + "academia_NOUN_diplomático_ADJ", + "academia_NOUN_militar_ADJ", + "academia_PROPN_internacional_PROPN", + "academia_PROPN_mexicana_PROPN", + "academia_PROPN_militar_PROPN", + "academia_PROPN_sueca_PROPN", + "academy_PROPN_of_PROPN", + "acalorado_ADJ_debate_NOUN", + "acalorado_ADJ_discusión_NOUN", + "acapulco_PROPN_guerrero_PROPN", + "acatar_VERB_estrictamente_ADV", + "acceder_VERB_fácilmente_ADV", + "acceso_NOUN_carnal_ADJ", + "acceso_NOUN_igualitario_ADJ", + "acceso_NOUN_irrestricto_ADJ", + "acceso_NOUN_preferencial_ADJ", + "acceso_NOUN_universal_ADJ", + "accesorio_NOUN_fijo_ADJ", + "access_PROPN_to_PROPN", + "accidente_NOUN_automovilístico_ADJ", + "accidente_NOUN_cerebrovascular_ADJ", + "accidente_NOUN_fatal_ADJ", + "accidente_NOUN_ferroviario_ADJ", + "accidente_NOUN_mortal_ADJ", + "accidente_NOUN_ocurrido_ADJ", + "accidente_NOUN_vehicular_ADJ", + "accidente_NOUN_vial_ADJ", + "accionista_NOUN_mayoritario_ADJ", + "accionista_NOUN_minoritario_ADJ", + "acción_NOUN_afirmativa_PROPN", + "acción_NOUN_afirmativo_ADJ", + "acción_PROPN_afirmativa_PROPN", + "acción_PROPN_afirmativo_ADJ", + "acción_PROPN_antiminas_PROPN", + "acción_PROPN_contra_PROPN", + "acción_PROPN_diferida_PROPN", + "acción_PROPN_exterior_PROPN", + "acción_PROPN_nacional_PROPN", + "acción_PROPN_social_PROPN", + "according_NOUN_to_PROPN", + "according_PROPN_to_PROPN", + "accra_ADJ_iii_PROPN", + "accra_PROPN_ghana_PROPN", + "aceite_NOUN_mineral_ADJ", + "aceite_NOUN_usado_ADJ", + "aceite_NOUN_vegetal_ADJ", + "aceptación_NOUN_aprobación_NOUN", + "aceptación_NOUN_expreso_ADJ", + "aceptación_NOUN_tácito_ADJ", + "aceptación_NOUN_universal_ADJ", + "aceptado_ADJ_internacionalmente_ADV", + "acerca_ADP_del_DET", + "acerca_ADV_del_DET", + "acercar_VERB_peligrosamente_ADV", + "acero_NOUN_inoxidable_ADJ", + "acervo_NOUN_comunitario_ADJ", + "acervo_NOUN_cultural_ADJ", + "acervo_NOUN_histórico_ADJ", + "acevedo_PROPN_vilá_PROPN", + "acharya_PROPN_nepal_PROPN", + "achim_PROPN_steiner_PROPN", + "aclaración_NOUN_adicional_ADJ", + "acnudh_PROPN_camboya_PROPN", + "acoger_VERB_calurosamente_ADV", + "acoger_VERB_complacido_ADJ", + "acoger_VERB_favorablemente_ADV", + "acoger_VERB_positivamente_ADV", + "acogimiento_NOUN_alternativo_ADJ", + "acogimiento_NOUN_familiar_ADJ", + "acojo_PROPN_favorablemente_ADV", + "acontecimiento_NOUN_acaecido_ADJ", + "acontecimiento_NOUN_alentador_ADJ", + "acontecimiento_NOUN_imprevisto_ADJ", + "acontecimiento_NOUN_ocurrido_ADJ", + "acontecimiento_NOUN_reciente_ADJ", + "acontecimiento_NOUN_trágico_ADJ", + "acordado_ADJ_internacionalmente_ADV", + "acordo_NOUN_com_ADP", + "acordo_NOUN_com_NOUN", + "acordo_PROPN_com_ADP", + "acordo_PROPN_com_NOUN", + "acortar_VERB_distancia_NOUN", + "acosar_VERB_sexualmente_ADV", + "acoso_NOUN_escolar_ADJ", + "acoso_NOUN_sexual_ADJ", + "acreditado_ADJ_ante_ADP", + "acreedor_NOUN_concurrent_ADJ", + "acreedor_NOUN_garantizado_ADJ", + "act_PROPN_of_PROPN", + "acta_NOUN_constitutivo_ADJ", + "acta_NOUN_literal_ADJ", + "acta_NOUN_resumido_ADJ", + "acta_PROPN_única_PROPN", + "action_PROPN_for_PROPN", + "action_PROPN_plan_PROPN", + "actitud_NOUN_agresivo_ADJ", + "actitud_NOUN_discriminatorio_ADJ", + "actitud_NOUN_estereotipada_ADJ", + "actitud_NOUN_hostil_ADJ", + "actitud_NOUN_pasivo_ADJ", + "actitud_NOUN_patriarcal_ADJ", + "actitud_NOUN_racista_ADJ", + "actividad_NOUN_extracurricular_ADJ", + "actividad_NOUN_extraescolar_ADJ", + "actividad_NOUN_extrapresupuestaria_ADJ", + "actividad_NOUN_financiada_ADJ", + "actividad_NOUN_generador_ADJ", + "actividad_NOUN_llevadas_ADJ", + "actividad_NOUN_mercenaria_ADJ", + "actividad_NOUN_operacional_ADJ", + "actividad_NOUN_recreativa_ADJ", + "actividad_PROPN_económica_PROPN", + "actividad_PROPN_física_PROPN", + "activo_ADJ_pasivo_ADJ", + "activo_NOUN_congelado_ADJ", + "activo_NOUN_fijo_ADJ", + "activo_NOUN_ilícitamente_ADV", + "activo_NOUN_inmobiliario_ADJ", + "activo_NOUN_intangibl_ADJ", + "activo_NOUN_pasivo_ADJ", + "activo_NOUN_pasivo_NOUN", + "activo_NOUN_robado_ADJ", + "activo_NOUN_tóxico_ADJ", + "acto_NOUN_conmemorativo_ADJ", + "acto_NOUN_delictivo_ADJ", + "acto_NOUN_doloso_ADJ", + "acto_NOUN_hostil_ADJ", + "acto_NOUN_inaugural_ADJ", + "acto_NOUN_proselitista_ADJ", + "acto_NOUN_protocolar_ADJ", + "acto_NOUN_protocolario_ADJ", + "acto_NOUN_punible_ADJ", + "acto_NOUN_terrorista_ADJ", + "acto_NOUN_unilateral_ADJ", + "acto_NOUN_vandálico_ADJ", + "actor_NOUN_involucrado_ADJ", + "actor_NOUN_protagonista_ADJ", + "actriz_NOUN_porno_ADJ", + "actuación_NOUN_arbitral_ADJ", + "actuación_NOUN_profesional_ADJ", + "actualización_NOUN_periódico_ADJ", + "actualizar_VERB_anualmente_ADV", + "actualizar_VERB_constantemente_ADV", + "actualizar_VERB_continuamente_ADV", + "actualizar_VERB_periódicamente_ADV", + "actualizar_VERB_regularmente_ADV", + "actualmente_ADV_serbia_PROPN", + "actuario_NOUN_consultor_ADJ", + "actuario_NOUN_consultor_NOUN", + "acuerdo_NOUN_antidumping_ADJ", + "acuerdo_NOUN_gubernativo_ADJ", + "acuerdo_NOUN_olsa_PROPN", + "acuerdo_PROPN_comercial_PROPN", + "acuerdo_PROPN_interinstitucional_ADJ", + "acuerdo_PROPN_interinstitucional_PROPN", + "acuerdo_PROPN_marco_PROPN", + "acumulación_NOUN_desestabilizador_ADJ", + "acumulación_NOUN_excesivo_ADJ", + "acusación_NOUN_formal_ADJ", + "acusación_NOUN_infundada_ADJ", + "acusación_NOUN_particular_ADJ", + "acusación_NOUN_vertido_ADJ", + "acusar_VERB_falsamente_ADV", + "acusar_VERB_formalmente_ADV", + "acusar_VERB_recibo_NOUN", + "acuífero_NOUN_transfronterizo_ADJ", + "acérrimo_ADJ_rival_NOUN", + "ad_ADJ_hoc_ADJ", + "ad_ADP_hoc_NOUN", + "ad_ADP_referendum_NOUN", + "ad_ADP_referéndum_NOUN", + "ad_NOUN_hoc_NOUN", + "ad_NOUN_honorem_NOUN", + "ad_NOUN_ref_NOUN", + "ad_NOUN_referendum_NOUN", + "ada_PROPN_colau_PROPN", + "adam_PROPN_smith_PROPN", + "adaptación_NOUN_cinematográfico_ADJ", + "adaptación_NOUN_pna_PROPN", + "addis_PROPN_abeba_ADJ", + "addis_PROPN_abeba_PROPN", + "addis_PROPN_abebir_VERB", + "adelanto_NOUN_alcanzado_ADJ", + "adelanto_NOUN_logrado_ADJ", + "adelanto_NOUN_tecnológico_ADJ", + "adhesión_NOUN_universal_ADJ", + "adiestramiento_NOUN_militar_ADJ", + "aditivo_NOUN_alimentario_ADJ", + "adjuntar_VERB_copia_NOUN", + "adjuntar_VERB_currículo_NOUN", + "adjunto_ADJ_guéhenno_NOUN", + "administraciones_PROPN_públicas_PROPN", + "administración_NOUN_aduanera_ADJ", + "administración_NOUN_fiduciario_ADJ", + "administración_NOUN_grecochipriota_ADJ", + "administración_NOUN_grecochiprioto_ADJ", + "administración_NOUN_postal_ADJ", + "administración_PROPN_autonómico_ADJ", + "administración_PROPN_bush_PROPN", + "administración_PROPN_federal_PROPN", + "administración_PROPN_foro_PROPN", + "administración_PROPN_local_PROPN", + "administración_PROPN_penitenciario_ADJ", + "administración_PROPN_pública_PROPN", + "administración_PROPN_s_NOUN", + "administración_PROPN_tributaria_PROPN", + "administrado_ADJ_separadamente_ADV", + "administrador_NOUN_asociado_ADJ", + "administrador_NOUN_auxiliar_ADJ", + "administrador_NOUN_concursal_ADJ", + "administrador_NOUN_fiduciario_ADJ", + "administrativo_ADJ_impugnado_ADJ", + "adolescente_NOUN_embarazado_ADJ", + "adolescente_NOUN_infractor_ADJ", + "adolf_PROPN_hitler_PROPN", + "adolfo_PROPN_lópez_PROPN", + "adolfo_PROPN_rodríguez_PROPN", + "adolfo_PROPN_suárez_PROPN", + "adoptener_VERB_medida_NOUN", + "adquirido_ADJ_ilícitamente_ADV", + "adquisición_NOUN_transfronteriza_ADJ", + "adrián_PROPN_gonzález_PROPN", + "adrián_PROPN_lópez_PROPN", + "adrián_PROPN_suar_PROPN", + "aduana_NOUN_oma_PROPN", + "aduanas_PROPN_ice_PROPN", + "adulto_NOUN_analfabeto_ADJ", + "adulto_PROPN_mayor_PROPN", + "adultos_PROPN_mayores_PROPN", + "advisory_PROPN_opinion_PROPN", + "adónde_PRON_ir_VERB", + "aedes_PROPN_aegypti_PROPN", + "aelc_ADJ_miembro_NOUN", + "aeroespacial_ADJ_alemán_ADJ", + "aerolíneas_PROPN_argentinas_PROPN", + "aeronave_NOUN_matriculado_ADJ", + "aeronave_NOUN_militar_ADJ", + "aeronáutica_PROPN_civil_PROPN", + "aeropuerto_NOUN_clandestino_ADJ", + "aeropuerto_PROPN_internacional_PROPN", + "afectado_ADJ_negativamente_ADV", + "afectar_VERB_adversamente_ADV", + "afectar_VERB_desfavorablemente_ADV", + "afectar_VERB_desproporcionadamente_ADV", + "afectar_VERB_gravemente_ADV", + "afectar_VERB_negativamente_ADV", + "afganistán_NOUN_asolado_ADJ", + "afganistán_NOUN_unama_NOUN", + "afganistán_PROPN_albania_PROPN", + "afganistán_PROPN_unama_PROPN", + "afganistán_VERB_albania_PROPN", + "afganistán_VERB_alemania_PROPN", + "afganistán_VERB_angola_PROPN", + "afganistán_VERB_arabia_PROPN", + "afganistán_VERB_argelia_PROPN", + "afgano_ADJ_hamid_PROPN", + "afiliación_NOUN_religioso_ADJ", + "afiliación_NOUN_sindical_ADJ", + "afilien_VERB_afilien_VERB", + "afinar_VERB_detalle_NOUN", + "afirmación_NOUN_contenido_ADJ", + "afirmativo_ADJ_sírvar_VERB", + "afluencia_NOUN_masivo_ADJ", + "afluencia_NOUN_turístico_ADJ", + "afp_PROPN_image_PROPN", + "africa_PROPN_recovery_PROPN", + "after_NOUN_the_PROPN", + "after_PROPN_the_PROPN", + "against_PROPN_the_PROPN", + "against_PROPN_torture_PROPN", + "against_PROPN_women_PROPN", + "age_PROPN_of_PROPN", + "agencia_NOUN_afp_PROPN", + "agencia_NOUN_ap_PROPN", + "agencia_NOUN_bloomberg_PROPN", + "agencia_NOUN_dpa_PROPN", + "agencia_NOUN_efe_PROPN", + "agencia_NOUN_espacial_ADJ", + "agencia_NOUN_france_PROPN", + "agencia_NOUN_interfax_PROPN", + "agencia_NOUN_kyodo_PROPN", + "agencia_NOUN_noticiós_ADJ", + "agencia_NOUN_regulador_ADJ", + "agencia_NOUN_reuters_PROPN", + "agencia_NOUN_télam_PROPN", + "agencia_NOUN_xinhua_PROPN", + "agencia_PROPN_andaluza_PROPN", + "agencia_PROPN_central_PROPN", + "agencia_PROPN_efe_PROPN", + "agencia_PROPN_espacial_PROPN", + "agencia_PROPN_española_PROPN", + "agencia_PROPN_estatal_PROPN", + "agencia_PROPN_europea_PROPN", + "agencia_PROPN_federal_PROPN", + "agencia_PROPN_ferroviaria_PROPN", + "agencia_PROPN_internacional_PROPN", + "agencia_PROPN_nova_PROPN", + "agencia_PROPN_tributaria_PROPN", + "agenda_PROPN_digital_PROPN", + "agente_NOUN_antidisturbios_ADJ", + "agente_NOUN_encubierto_ADJ", + "agente_NOUN_investigador_ADJ", + "agente_NOUN_patógeno_ADJ", + "aglomeración_NOUN_urbano_ADJ", + "ago_NOUN_efe_PROPN", + "agosto_NOUN_ria_PROPN", + "agradable_ADJ_sorpresa_NOUN", + "agradecer_VERB_enormemente_ADV", + "agradecer_VERB_profundamente_ADV", + "agradecer_VERB_sinceramente_ADV", + "agradecer_VERB_sobremanera_ADV", + "agravio_NOUN_comparativo_ADJ", + "agredir_VERB_físicamente_ADV", + "agredir_VERB_sexualmente_ADV", + "agresión_NOUN_flagrante_ADJ", + "agresión_NOUN_físico_ADJ", + "agresión_NOUN_israelí_ADJ", + "agresión_NOUN_perpetrado_ADJ", + "agresión_NOUN_sexual_ADJ", + "agresión_NOUN_verbal_ADJ", + "agricultura_NOUN_biológico_ADJ", + "agricultura_NOUN_ecológico_ADJ", + "agricultura_NOUN_ganadería_NOUN", + "agricultura_NOUN_intensivo_ADJ", + "agricultura_PROPN_alimentación_PROPN", + "agricultura_PROPN_familiar_PROPN", + "agricultura_PROPN_fao_PROPN", + "agricultura_PROPN_ganadería_NOUN", + "agricultura_PROPN_ganadería_PROPN", + "agricultura_PROPN_pesca_PROPN", + "agricultura_PROPN_silvicultura_PROPN", + "agrupación_NOUN_musical_ADJ", + "agrícola_ADJ_fida_NOUN", + "agua_NOUN_bendito_ADJ", + "agua_NOUN_caliente_ADJ", + "agua_NOUN_contaminado_ADJ", + "agua_NOUN_corriente_ADJ", + "agua_NOUN_cristalino_ADJ", + "agua_NOUN_dulce_ADJ", + "agua_NOUN_embalsado_ADJ", + "agua_NOUN_embotellado_ADJ", + "agua_NOUN_frío_ADJ", + "agua_NOUN_helado_ADJ", + "agua_NOUN_hirveir_VERB", + "agua_NOUN_jurisdiccional_ADJ", + "agua_NOUN_mineral_ADJ", + "agua_NOUN_pluvial_ADJ", + "agua_NOUN_potable_ADJ", + "agua_NOUN_residual_ADJ", + "agua_NOUN_salado_ADJ", + "agua_NOUN_salubre_ADJ", + "agua_NOUN_servida_ADJ", + "agua_NOUN_subterráneo_ADJ", + "agua_NOUN_superficial_ADJ", + "agua_NOUN_termal_ADJ", + "agua_NOUN_territorial_ADJ", + "agua_NOUN_tibio_ADJ", + "agua_NOUN_turbio_ADJ", + "agua_PROPN_conagua_PROPN", + "agua_PROPN_potable_PROPN", + "aguas_NOUN_abajo_ADV", + "agujero_NOUN_negro_ADJ", + "agustín_PROPN_calleri_PROPN", + "agustín_PROPN_carstens_PROPN", + "agustín_PROPN_rossi_PROPN", + "ah_INTJ_exclamar_VERB", + "ah_INTJ_sí_INTJ", + "ahanhanzo_PROPN_sr_PROPN", + "ahmad_PROPN_pakistán_PROPN", + "ahmed_PROPN_sudán_PROPN", + "ahmed_PROPN_tawfik_PROPN", + "ahora_ADV_mismo_ADV", + "ahora_ADV_occiso_ADJ", + "ahorrar_VERB_coste_NOUN", + "ahorrar_VERB_energía_NOUN", + "ahorro_NOUN_energético_ADJ", + "ahí_ADV_mismo_ADV", + "ai_PROPN_weiwei_PROPN", + "ainda_PROPN_não_PROPN", + "ainda_PROPN_não_SYM", + "air_PROPN_berlin_PROPN", + "air_PROPN_comet_PROPN", + "air_PROPN_force_PROPN", + "air_PROPN_france_PROPN", + "air_PROPN_nostrum_PROPN", + "aire_NOUN_acondicionado_ADJ", + "aire_NOUN_acondicionado_NOUN", + "aire_NOUN_atmosférico_ADJ", + "aire_NOUN_caliente_ADJ", + "aire_NOUN_comprimido_ADJ", + "aire_NOUN_fresco_ADJ", + "aire_NOUN_frío_ADJ", + "aire_NOUN_libre_ADJ", + "aire_NOUN_puro_ADJ", + "aire_PROPN_libre_PROPN", + "aislamiento_NOUN_geográfico_ADJ", + "aislamiento_NOUN_térmico_ADJ", + "ajuria_PROPN_enea_PROPN", + "ajustar_VERB_estrictamente_ADV", + "ajuste_NOUN_cambiario_ADJ", + "ajuste_NOUN_estructural_ADJ", + "ajuste_NOUN_introducido_ADJ", + "ajuste_NOUN_prudente_ADJ", + "akram_NOUN_pakistán_PROPN", + "ala_NOUN_cerrado_ADJ", + "ala_NOUN_defensivo_ADJ", + "ala_NOUN_derecho_ADJ", + "ala_NOUN_izquierdo_ADJ", + "alada_NOUN_palabra_NOUN", + "alain_PROPN_pellet_PROPN", + "alan_PROPN_doss_PROPN", + "alan_PROPN_garcía_PROPN", + "alan_PROPN_greenspan_PROPN", + "alan_PROPN_pulido_PROPN", + "albania_PROPN_alemania_PROPN", + "albania_PROPN_andorra_PROPN", + "albania_PROPN_angola_PROPN", + "albania_PROPN_argelia_PROPN", + "albania_PROPN_armenia_PROPN", + "albania_PROPN_bosnia_PROPN", + "albergue_NOUN_temporal_ADJ", + "albert_PROPN_camus_PROPN", + "albert_PROPN_einstein_PROPN", + "albert_PROPN_pujols_PROPN", + "albert_PROPN_rivera_PROPN", + "alberto_PROPN_belloch_PROPN", + "alberto_PROPN_contador_PROPN", + "alberto_PROPN_fabra_PROPN", + "alberto_PROPN_fernández_PROPN", + "alberto_PROPN_fujimori_PROPN", + "alberto_PROPN_garzón_PROPN", + "alberto_PROPN_nisman_PROPN", + "alberto_PROPN_núñez_PROPN", + "alberto_PROPN_rodríguez_PROPN", + "alberto_PROPN_ruiz_PROPN", + "alberto_PROPN_weretilneck_PROPN", + "alcalde_NOUN_electo_ADJ", + "alcance_NOUN_intermedio_ADJ", + "alcohol_NOUN_tabaco_NOUN", + "alcohólicos_PROPN_anónimos_PROPN", + "alec_PROPN_baldwin_PROPN", + "alegato_NOUN_final_ADJ", + "alejandra_PROPN_barrales_PROPN", + "alejandra_PROPN_guzmán_PROPN", + "alejandro_PROPN_encinas_PROPN", + "alejandro_PROPN_fernández_PROPN", + "alejandro_PROPN_gonzález_PROPN", + "alejandro_PROPN_guillier_PROPN", + "alejandro_PROPN_gómez_PROPN", + "alejandro_PROPN_magno_PROPN", + "alejandro_PROPN_moreno_PROPN", + "alejandro_PROPN_murat_PROPN", + "alejandro_PROPN_navarro_PROPN", + "alejandro_PROPN_sabella_PROPN", + "alejandro_PROPN_sanz_PROPN", + "alejandro_PROPN_toledo_PROPN", + "alejandro_PROPN_valverde_PROPN", + "alejandro_PROPN_vi_PROPN", + "aleksandr_PROPN_lukashenko_PROPN", + "alemania_PROPN_andorra_PROPN", + "alemania_PROPN_arabia_PROPN", + "alemania_PROPN_austria_PROPN", + "alemania_PROPN_bayerisch_NOUN", + "alemania_PROPN_ghana_PROPN", + "alemania_PROPN_nazi_ADJ", + "alemania_PROPN_oberlandesgericht_PROPN", + "alemán_ADJ_dax_PROPN", + "alemán_NOUN_michael_PROPN", + "alemán_NOUN_nico_PROPN", + "alemán_NOUN_sebastian_PROPN", + "alentador_ADJ_observar_VERB", + "alentar_VERB_encarecidamente_ADV", + "alerta_NOUN_amarillo_ADJ", + "alerta_NOUN_anticipado_ADJ", + "alerta_NOUN_meteorológico_ADJ", + "alerta_NOUN_naranja_ADJ", + "alerta_NOUN_rojo_ADJ", + "alerta_NOUN_temprano_ADJ", + "aleta_NOUN_azul_ADJ", + "alex_PROPN_ferguson_PROPN", + "alex_PROPN_rodríguez_PROPN", + "alexey_PROPN_alejandrovich_PROPN", + "alexis_PROPN_sánchez_PROPN", + "alfa_PROPN_romeo_PROPN", + "alfabetización_NOUN_funcional_ADJ", + "alfabeto_NOUN_latino_ADJ", + "alfio_PROPN_basile_PROPN", + "alfombra_NOUN_rojo_ADJ", + "alfonso_PROPN_alonso_PROPN", + "alfonso_PROPN_cano_PROPN", + "alfonso_PROPN_cuarón_PROPN", + "alfonso_PROPN_durazo_PROPN", + "alfonso_PROPN_guerra_PROPN", + "alfonso_PROPN_martínez_PROPN", + "alfonso_PROPN_portillo_PROPN", + "alfonso_PROPN_reyes_PROPN", + "alfonso_PROPN_x_PROPN", + "alfonso_PROPN_xiii_PROPN", + "alfred_PROPN_hitchcock_PROPN", + "alfredo_ADJ_castillero_ADJ", + "alfredo_PROPN_castillero_ADJ", + "alfredo_PROPN_cornejo_PROPN", + "alfredo_PROPN_di_PROPN", + "alfredo_PROPN_moreno_PROPN", + "alfredo_PROPN_palacio_PROPN", + "alfredo_PROPN_pérez_PROPN", + "alfredo_PROPN_stroessner_PROPN", + "alga_NOUN_marino_ADJ", + "algo_PRON_impensable_ADJ", + "algo_PRON_parecido_ADJ", + "algun_DET_dia_NOUN", + "ali_PROPN_benhadj_PROPN", + "ali_PROPN_malasia_PROPN", + "alianza_NOUN_cambiemos_PROPN", + "alianza_NOUN_estratégico_ADJ", + "alianza_NOUN_opositor_ADJ", + "alianza_PROPN_atlántica_PROPN", + "alianza_PROPN_atlético_PROPN", + "alianza_PROPN_bolivariana_PROPN", + "alianza_PROPN_cívica_PROPN", + "alianza_PROPN_francesa_PROPN", + "alianza_PROPN_lima_PROPN", + "alianza_PROPN_mundial_PROPN", + "alianza_PROPN_país_PROPN", + "alianza_PROPN_progresista_PROPN", + "alicia_PROPN_alonso_PROPN", + "alicia_PROPN_keys_PROPN", + "alicia_PROPN_kirchner_PROPN", + "alicia_PROPN_machado_PROPN", + "alimentación_NOUN_adecuado_ADJ", + "alimentación_NOUN_animal_ADJ", + "alimentación_NOUN_fao_PROPN", + "alimentación_NOUN_saludable_ADJ", + "alimentación_NOUN_sano_ADJ", + "alimentación_PROPN_fao_PROPN", + "alimento_NOUN_balanceado_ADJ", + "alimento_NOUN_genéticamente_ADV", + "alimento_NOUN_importado_ADJ", + "alimento_NOUN_nutritivo_ADJ", + "alimento_NOUN_pma_PROPN", + "alimento_NOUN_procesado_ADJ", + "alimentos_PROPN_pma_PROPN", + "alineación_NOUN_titular_ADJ", + "alineado_ADJ_celebrado_ADJ", + "alistamiento_NOUN_voluntario_ADJ", + "aliyev_NOUN_azerbaiyán_ADJ", + "all_PROPN_blacks_PROPN", + "all_PROPN_boys_PROPN", + "all_PROPN_england_PROPN", + "all_PROPN_star_PROPN", + "all_PROPN_the_PROPN", + "alliance_PROPN_for_PROPN", + "allianz_PROPN_arena_PROPN", + "allí_ADV_mismo_ADV", + "alma_NOUN_gemelo_ADJ", + "alma_NOUN_viviente_ADJ", + "alma_PROPN_juniors_PROPN", + "almaty_NOUN_kazajstán_PROPN", + "almirante_NOUN_brown_PROPN", + "almirante_PROPN_brown_PROPN", + "almuñécar_PROPN_digitalbienvenido_PROPN", + "alojamiento_NOUN_temporal_ADJ", + "alojamiento_NOUN_turístico_ADJ", + "alpha_PROPN_oumar_PROPN", + "alquiler_NOUN_pagado_ADJ", + "alta_NOUN_hospitalario_ADJ", + "alta_NOUN_mar_NOUN", + "alta_NOUN_mar_PROPN", + "alta_NOUN_médico_ADJ", + "alta_PROPN_comisionada_PROPN", + "alta_PROPN_gracia_PROPN", + "alta_PROPN_mar_NOUN", + "alta_PROPN_mar_PROPN", + "alta_PROPN_representante_PROPN", + "alta_PROPN_velocidad_PROPN", + "alta_PROPN_verapaz_PROPN", + "altamente_ADV_calificado_ADJ", + "altamente_ADV_capacitado_ADJ", + "altamente_ADV_competitivo_ADJ", + "altamente_ADV_cualificado_ADJ", + "altamente_ADV_endeudado_ADJ", + "altamente_ADV_especializado_ADJ", + "altamente_ADV_migratorio_ADJ", + "altamente_ADV_probable_ADJ", + "altamente_ADV_tóxico_ADJ", + "alter_NOUN_ego_NOUN", + "alternativa_NOUN_viable_ADJ", + "alternativa_PROPN_bolivariana_PROPN", + "alternativa_PROPN_federal_PROPN", + "alteza_NOUN_real_ADJ", + "alteza_NOUN_serenísima_NOUN", + "altitud_NOUN_medio_ADJ", + "alto_ADJ_comisionada_NOUN", + "alto_ADJ_comisionado_ADJ", + "alto_ADJ_comisionado_NOUN", + "alto_ADJ_costura_NOUN", + "alto_ADJ_estima_NOUN", + "alto_ADJ_kodori_PROPN", + "alto_ADJ_nivel_NOUN", + "alto_ADJ_rango_NOUN", + "alto_ADJ_voltaje_NOUN", + "alto_PROPN_comedero_PROPN", + "alto_PROPN_comisionado_PROPN", + "alto_PROPN_hospicio_PROPN", + "alto_PROPN_nivel_PROPN", + "alto_PROPN_paraná_PROPN", + "alto_PROPN_rendimiento_PROPN", + "alto_PROPN_representante_PROPN", + "alto_PROPN_tribunal_PROPN", + "alto_PROPN_valle_PROPN", + "alto_PROPN_verde_PROPN", + "alumbrado_NOUN_público_ADJ", + "alumno_NOUN_matriculado_ADJ", + "alumno_NOUN_romaní_ADJ", + "alusión_NOUN_al_DET", + "alvaro_PROPN_uribe_PROPN", + "além_PROPN_da_ADP", + "além_PROPN_disso_PROPN", + "aló_PROPN_presidente_PROPN", + "amable_ADJ_palabra_NOUN", + "amado_PROPN_boudou_PROPN", + "amancio_PROPN_ortega_PROPN", + "amanecer_PROPN_dorado_PROPN", + "amar_VERB_tú_VERB", + "amara_PROPN_essy_PROPN", + "amazon_PROPN_prime_PROPN", + "ambassador_PROPN_permanent_PROPN", + "ambiental_ADJ_multilateral_ADJ", + "ambiental_PROPN_mundial_PROPN", + "ambientalmente_ADV_preferible_ADJ", + "ambientalmente_ADV_racional_ADJ", + "ambientalmente_ADV_sostenible_ADJ", + "ambiente_NOUN_caluroso_ADJ", + "ambiente_NOUN_festivo_ADJ", + "ambiente_PROPN_pnuma_PROPN", + "ambos_NUM_bando_NOUN", + "ambos_NUM_cámaras_PROPN", + "ambos_NUM_cónyuge_NOUN", + "ambos_NUM_escuadra_NOUN", + "ambos_NUM_progenitor_NOUN", + "ambos_NUM_sexo_NOUN", + "ambulancia_NOUN_medicalizado_ADJ", + "amenaza_NOUN_inminente_ADJ", + "amenazar_VERB_gravemente_ADV", + "amenazar_VERB_seriamente_ADV", + "america_PROPN_latina_PROPN", + "american_PROPN_airlines_PROPN", + "american_PROPN_association_PROPN", + "american_PROPN_bar_NOUN", + "american_PROPN_express_PROPN", + "american_PROPN_idol_PROPN", + "american_PROPN_indian_PROPN", + "american_PROPN_journal_PROPN", + "american_PROPN_society_PROPN", + "american_PROPN_university_PROPN", + "americano_ADJ_oea_PROPN", + "ametralladora_NOUN_pesado_ADJ", + "amianto_NOUN_crisotilo_ADJ", + "amicus_PROPN_curiae_PROPN", + "amiga_NOUN_mío_PRON", + "amigo_NOUN_mío_ADJ", + "amigo_NOUN_mío_DET", + "amigo_NOUN_mío_PRON", + "amigo_NOUN_míos_DET", + "amigo_NOUN_íntimo_ADJ", + "ammán_PROPN_jordania_PROPN", + "amnesty_DET_international_PROPN", + "amnesty_PROPN_international_PROPN", + "amnistir_VERB_internacional_ADJ", + "amnistía_NOUN_fiscal_ADJ", + "amnistía_PROPN_internacional_PROPN", + "among_PROPN_the_PROPN", + "amorós_VERB_núñez_PROPN", + "amparo_NOUN_interpuesto_ADJ", + "ampliamente_ADV_aceptado_ADJ", + "ampliamente_ADV_compartido_ADJ", + "ampliamente_ADV_difundido_ADJ", + "ampliamente_ADV_reconocido_ADJ", + "ampliamente_ADV_representativo_ADJ", + "ampliar_VERB_foto_NOUN", + "amplio_ADJ_abanico_NOUN", + "amplio_ADJ_espectro_NOUN", + "amplio_ADJ_gama_NOUN", + "amplio_ADJ_variedad_NOUN", + "amre_ADJ_moussa_NOUN", + "amrica_PROPN_latina_PROPN", + "amy_PROPN_winehouse_PROPN", + "américa_NOUN_latino_ADJ", + "américa_PROPN_estonia_PROPN", + "américa_PROPN_latina_PROPN", + "américa_PROPN_latino_ADJ", + "américa_PROPN_móvil_PROPN", + "américas_PROPN_alca_PROPN", + "américo_ADJ_latino_ADJ", + "américo_PROPN_gallego_PROPN", + "an_PROPN_assessment_PROPN", + "an_PROPN_international_PROPN", + "ana_PROPN_belén_PROPN", + "ana_PROPN_botella_PROPN", + "ana_PROPN_frank_PROPN", + "ana_PROPN_isabel_PROPN", + "ana_PROPN_julia_PROPN", + "ana_PROPN_laura_PROPN", + "ana_PROPN_maría_PROPN", + "ana_PROPN_mato_PROPN", + "ana_PROPN_pastor_PROPN", + "ana_PROPN_patricia_PROPN", + "ana_PROPN_paula_PROPN", + "ana_PROPN_rosa_PROPN", + "analfabetismo_NOUN_femenino_ADJ", + "analista_NOUN_consultado_ADJ", + "analizar_VERB_cuidadosamente_ADV", + "analizar_VERB_detalladamente_ADV", + "analizar_VERB_detenidamente_ADV", + "analysis_PROPN_of_PROPN", + "and_CCONJ_child_PROPN", + "and_CCONJ_development_PROPN", + "and_CCONJ_other_CCONJ", + "and_CCONJ_relating_VERB", + "and_CCONJ_the_DET", + "and_NOUN_other_PROPN", + "and_NOUN_that_PROPN", + "and_PROPN_category_PROPN", + "and_PROPN_comparative_NOUN", + "and_PROPN_cultural_PROPN", + "and_PROPN_development_PROPN", + "and_PROPN_economic_PROPN", + "and_PROPN_his_PROPN", + "and_PROPN_human_PROPN", + "and_PROPN_its_PROPN", + "and_PROPN_other_PROPN", + "and_PROPN_others_PROPN", + "and_PROPN_policy_PROPN", + "and_PROPN_political_PROPN", + "and_PROPN_related_PROPN", + "and_PROPN_technology_PROPN", + "and_PROPN_the_PROPN", + "and_PROPN_their_PROPN", + "and_PROPN_then_PROPN", + "and_PROPN_was_PROPN", + "andar_VERB_suelto_ADJ", + "andes_PROPN_titel_PROPN", + "andhra_PROPN_pradesh_PROPN", + "andorra_PROPN_angola_PROPN", + "andorra_PROPN_antiguo_ADJ", + "andorra_PROPN_argentino_ADJ", + "andorra_PROPN_armenia_PROPN", + "andorra_PROPN_australia_PROPN", + "andorra_PROPN_austria_PROPN", + "andre_PROPN_agassi_PROPN", + "andrea_PROPN_pirlo_PROPN", + "andreas_PROPN_mavrommatis_PROPN", + "andrés_PROPN_bello_PROPN", + "andrés_PROPN_calamaro_PROPN", + "andrés_PROPN_chadwick_PROPN", + "andrés_PROPN_felipe_PROPN", + "andrés_PROPN_granier_PROPN", + "andrés_PROPN_guardado_PROPN", + "andrés_PROPN_iniesta_PROPN", + "andrés_PROPN_manuel_PROPN", + "andrés_PROPN_nocioni_PROPN", + "andrés_PROPN_pastrana_PROPN", + "andrés_PROPN_velasco_PROPN", + "andy_PROPN_murray_PROPN", + "andy_PROPN_roddick_PROPN", + "andy_PROPN_schleck_PROPN", + "andy_PROPN_warhol_PROPN", + "anexir_VERB_anexir_VERB", + "anexo_NOUN_f_NUM", + "anexo_NOUN_i_CCONJ", + "anexo_NOUN_i_NOUN", + "anexo_NOUN_ii_ADJ", + "anexo_NOUN_ii_NOUN", + "anexo_NOUN_ii_PROPN", + "anexo_NOUN_iii_ADJ", + "anexo_NOUN_iii_PROPN", + "anexo_NOUN_iv_ADJ", + "anexo_NOUN_iv_PROPN", + "anexo_NOUN_ix_PROPN", + "anexo_NOUN_v_CCONJ", + "anexo_NOUN_v_PROPN", + "anexo_NOUN_v_SYM", + "anexo_NOUN_vi_ADJ", + "anexo_NOUN_vii_PROPN", + "anexo_NOUN_viii_PROPN", + "anexo_NOUN_x_PROPN", + "anexo_NOUN_xi_PROPN", + "anexo_NOUN_xiii_PROPN", + "anexo_NOUN_xiv_PROPN", + "anexo_NOUN_xv_NOUN", + "anexo_NOUN_xxii_PROPN", + "anexo_NOUN_xxvi_ADJ", + "anexo_NOUN_xxxi_PROPN", + "anexo_NOUN_xxxvi_ADJ", + "anexo_PROPN_i_CCONJ", + "anexo_PROPN_i_NOUN", + "anexo_PROPN_i_PROPN", + "anexo_PROPN_ii_ADJ", + "anexo_PROPN_ii_PROPN", + "anexo_PROPN_iii_ADJ", + "anexo_PROPN_iii_PROPN", + "anexo_PROPN_iv_PROPN", + "anexo_PROPN_ix_PROPN", + "anexo_PROPN_v_PROPN", + "anexo_PROPN_vii_PROPN", + "anexo_PROPN_viii_PROPN", + "ang_PROPN_lee_PROPN", + "angela_PROPN_kane_PROPN", + "angela_PROPN_king_PROPN", + "angela_PROPN_merkel_PROPN", + "angeles_PROPN_ap_PROPN", + "angeles_PROPN_california_PROPN", + "angeles_PROPN_galaxy_PROPN", + "angeles_PROPN_lakers_PROPN", + "angeles_PROPN_times_PROPN", + "angelina_PROPN_jolie_PROPN", + "anglo_PROPN_american_PROPN", + "angola_PROPN_antigua_PROPN", + "angola_PROPN_antiguo_ADJ", + "angola_PROPN_arabia_PROPN", + "angola_PROPN_argelia_PROPN", + "angola_PROPN_armenia_PROPN", + "angola_PROPN_benin_PROPN", + "angola_PROPN_botswana_NOUN", + "angola_PROPN_burundi_NOUN", + "angola_PROPN_monua_NOUN", + "angola_PROPN_unavem_PROPN", + "angola_PROPN_unita_PROPN", + "angry_PROPN_birds_PROPN", + "angélica_PROPN_vale_PROPN", + "anhídrido_NOUN_acético_ADJ", + "animal_NOUN_clonado_ADJ", + "animal_NOUN_doméstico_ADJ", + "animal_NOUN_exótico_ADJ", + "animal_NOUN_salvaje_ADJ", + "animal_NOUN_silvestr_ADJ", + "animal_NOUN_silvestres_PROPN", + "animal_NOUN_vivo_ADJ", + "ankara_PROPN_penetrar_VERB", + "ann_PROPN_veneman_PROPN", + "anna_PROPN_lindh_PROPN", + "anna_PROPN_nicole_PROPN", + "anne_PROPN_hathaway_PROPN", + "annex_PROPN_i_CCONJ", + "annex_PROPN_ii_PROPN", + "annex_PROPN_iii_PROPN", + "annex_PROPN_iv_PROPN", + "annex_PROPN_vii_PROPN", + "annual_NOUN_digest_PROPN", + "annual_PROPN_report_PROPN", + "ano_NOUN_passado_ADJ", + "anotar_VERB_gol_NOUN", + "antalya_PROPN_turquía_PROPN", + "antanas_PROPN_mockus_PROPN", + "ante_ADP_gotovina_PROPN", + "antecedente_NOUN_penal_ADJ", + "antecedente_NOUN_policial_ADJ", + "antelación_NOUN_suficiente_ADJ", + "anterior_PROPN_siguiente_ADJ", + "anteriormente_ADV_citado_ADJ", + "anteriormente_ADV_descrito_ADJ", + "anteriormente_ADV_mencionado_ADJ", + "anticipo_NOUN_pendiente_ADJ", + "anticonceptivo_NOUN_oral_ADJ", + "antigua_PROPN_república_PROPN", + "antiguo_ADJ_pesetas_NOUN", + "antiguo_ADJ_usanza_NOUN", + "antiguo_ADJ_yugoslavia_PROPN", + "antiguo_PROPN_testamento_PROPN", + "antilla_NOUN_neerlandesa_ADJ", + "antillas_PROPN_neerlandesa_ADJ", + "antoine_PROPN_griezmann_PROPN", + "antonini_PROPN_wilson_PROPN", + "antonio_PROPN_banderas_PROPN", + "antonio_PROPN_basagoiti_PROPN", + "antonio_PROPN_brufau_PROPN", + "antonio_PROPN_cassano_PROPN", + "antonio_PROPN_conte_PROPN", + "antonio_PROPN_guerrero_PROPN", + "antonio_PROPN_guterres_PROPN", + "antonio_PROPN_ledezma_PROPN", + "antonio_PROPN_machado_PROPN", + "antonio_PROPN_mohamed_PROPN", + "antonio_PROPN_molina_PROPN", + "antonio_PROPN_puerta_PROPN", + "antorcha_NOUN_olímpico_ADJ", + "antropología_PROPN_e_CCONJ", + "antártida_PROPN_argentina_PROPN", + "antónio_PROPN_guterres_PROPN", + "anual_ADJ_dip_PROPN", + "anuario_NOUN_estadístico_ADJ", + "anuario_NOUN_ii_PROPN", + "anunciar_VERB_belta_PROPN", + "anuncio_NOUN_publicitario_ADJ", + "anuncio_NOUN_televisivo_ADJ", + "análisis_NOUN_comparativo_ADJ", + "análisis_NOUN_cualitativo_ADJ", + "análisis_NOUN_exhaustivo_ADJ", + "análisis_NOUN_minucioso_ADJ", + "análisis_NOUN_pormenorizado_ADJ", + "aníbal_PROPN_fernández_PROPN", + "aníbal_PROPN_ibarra_PROPN", + "anónimo_PROPN_decir_VERB", + "ao_NOUN_despus_NOUN", + "aos_ADP_minuto_NOUN", + "ap_PROPN_photo_PROPN", + "apagón_NOUN_analógico_ADJ", + "aparato_NOUN_digestivo_ADJ", + "aparato_NOUN_efectuar_VERB", + "aparato_NOUN_eléctrico_ADJ", + "aparato_NOUN_ortopédico_ADJ", + "aparato_NOUN_productivo_ADJ", + "aparato_NOUN_respiratorio_ADJ", + "aparatoso_ADJ_accidente_NOUN", + "aparcamiento_NOUN_subterráneo_ADJ", + "aparente_ADJ_contradicción_NOUN", + "aparente_ADJ_desviación_NOUN", + "apariencia_NOUN_físico_ADJ", + "apartado_ADJ_b_NOUN", + "apartado_ADJ_c_NOUN", + "apartado_ADJ_d_PROPN", + "apartado_ADJ_f_NOUN", + "apartado_ADJ_g_NOUN", + "apartado_ADJ_h_NOUN", + "apartado_NOUN_b_NOUN", + "apartado_NOUN_c_NOUN", + "apartado_NOUN_d_NUM", + "apartado_NOUN_d_PROPN", + "apartado_NOUN_e_NOUN", + "apartado_NOUN_f_NOUN", + "apartado_NOUN_g_PROPN", + "apartado_NOUN_h_NOUN", + "apartado_NOUN_j_PROPN", + "apartado_NOUN_k_PROPN", + "apartamento_NOUN_turístico_ADJ", + "apelación_NOUN_desestimar_VERB", + "apelación_NOUN_interlocutoria_ADJ", + "apelación_NOUN_interpuesto_ADJ", + "apenas_ADV_perceptible_ADJ", + "apenas_NOUN_si_SCONJ", + "aplastante_ADJ_mayoría_NOUN", + "aplicabilidad_NOUN_directo_ADJ", + "aplicable_ADJ_mutatis_PROPN", + "aplicación_NOUN_cabal_PROPN", + "aplicar_VERB_cabalmente_ADV", + "aplicar_VERB_mutatis_NOUN", + "aplicar_VERB_mutatis_PROPN", + "aplicar_VERB_rigurosamente_ADV", + "apoderamiento_NOUN_ilícito_ADJ", + "aportación_NOUN_sustantiva_ADJ", + "aportar_VERB_contingente_NOUN", + "aporte_NOUN_patronal_ADJ", + "apoyar_VERB_decididamente_ADV", + "apoyar_VERB_financieramente_ADV", + "apoyar_VERB_firmemente_ADV", + "apoyar_VERB_incondicionalmente_ADV", + "apoyar_VERB_resueltamente_ADV", + "apoyo_NOUN_brindado_ADJ", + "apoyo_NOUN_logístico_ADJ", + "apoyo_NOUN_psicosocial_ADJ", + "apoyo_PROPN_plenamente_ADV", + "app_PROPN_store_PROPN", + "apple_PROPN_inc_PROPN", + "apple_PROPN_music_PROPN", + "apple_PROPN_store_PROPN", + "apple_PROPN_tv_PROPN", + "apple_PROPN_watch_PROPN", + "application_NOUN_of_ADP", + "application_PROPN_of_PROPN", + "approach_PROPN_to_PROPN", + "approval_PROPN_of_PROPN", + "apreciar_VERB_enormemente_ADV", + "aprendizaje_NOUN_automático_ADJ", + "apretado_ADJ_agenda_NOUN", + "aprobación_NOUN_unánime_ADJ", + "aprobado_ADJ_com_PROPN", + "aprobado_ADJ_provisionalmente_ADV", + "aprobar_VERB_unánimemente_ADV", + "apropiación_NOUN_ilícito_ADJ", + "apropiación_NOUN_indebido_ADJ", + "aprovechamiento_NOUN_eficiente_ADJ", + "aprovechamiento_NOUN_sostenible_ADJ", + "aprovechamiento_NOUN_óptimo_ADJ", + "aptitud_NOUN_lingüístico_ADJ", + "aptitud_NOUN_profesional_ADJ", + "apuesta_NOUN_decidido_ADJ", + "apéndice_NOUN_b_SYM", + "apéndice_NOUN_i_CCONJ", + "apéndice_NOUN_iii_PROPN", + "apéndice_PROPN_d_PROPN", + "apéndice_PROPN_ii_PROPN", + "apéndice_PROPN_vii_PROPN", + "aquel_DET_fatídico_ADJ", + "aquel_DET_sazon_NOUN", + "aquel_DET_época_NOUN", + "aqui_PROPN_adelante_ADV", + "ara_PROPN_san_PROPN", + "arabia_PROPN_saudita_ADJ", + "arabia_PROPN_saudita_PROPN", + "arabia_PROPN_saudito_ADJ", + "arabia_PROPN_saudí_PROPN", + "aracely_PROPN_arámbula_PROPN", + "arancel_NOUN_aduanero_ADJ", + "aras_NOUN_del_DET", + "arbitraje_NOUN_comercial_ADJ", + "arbitraje_PROPN_deportivo_PROPN", + "arbitral_ADJ_awards_PROPN", + "arca_NOUN_municipal_ADJ", + "arca_NOUN_público_ADJ", + "archivo_PROPN_general_PROPN", + "archivo_PROPN_histórico_PROPN", + "arco_NOUN_defendido_ADJ", + "arco_NOUN_iris_ADJ", + "arco_NOUN_rival_ADJ", + "arco_PROPN_iris_PROPN", + "arduo_ADJ_labor_NOUN", + "arduo_ADJ_tarea_NOUN", + "are_PROPN_not_PROPN", + "arellano_PROPN_félix_PROPN", + "arena_NOUN_blanco_ADJ", + "arequipa_PROPN_perú_PROPN", + "argelia_PROPN_andorra_PROPN", + "argelia_PROPN_angola_PROPN", + "argelia_PROPN_argentino_ADJ", + "argelia_PROPN_armenia_PROPN", + "argelia_PROPN_austria_PROPN", + "argelia_PROPN_azerbaiyán_ADJ", + "argelia_PROPN_bahrein_PROPN", + "argelia_PROPN_bangladesh_PROPN", + "argentina_NOUN_armenio_ADJ", + "argentina_NOUN_australia_PROPN", + "argentina_NOUN_austria_PROPN", + "argentina_NOUN_bolivia_PROPN", + "argentina_PROPN_armenia_PROPN", + "argentino_ADJ_armenia_PROPN", + "argentino_ADJ_armenio_ADJ", + "argentino_ADJ_australia_PROPN", + "argentino_ADJ_azerbaiyán_ADJ", + "argentino_NOUN_diego_PROPN", + "argentino_NOUN_gonzalo_PROPN", + "argentino_NOUN_lionel_PROPN", + "argentino_NOUN_sergio_PROPN", + "argentinos_PROPN_juniors_PROPN", + "argumento_NOUN_aducido_ADJ", + "argumento_NOUN_convincente_ADJ", + "argumento_NOUN_esgrimido_ADJ", + "aria_ADJ_presidente_NOUN", + "aria_NOUN_españa_PROPN", + "ariana_PROPN_grande_ADJ", + "arias_PROPN_cañete_PROPN", + "ariel_PROPN_castro_PROPN", + "ariel_PROPN_lijo_PROPN", + "ariel_PROPN_ortega_PROPN", + "ariel_PROPN_shar_VERB", + "ariel_PROPN_sharon_PROPN", + "aritmética_NOUN_elemental_ADJ", + "arjen_PROPN_robben_PROPN", + "arma_NOUN_antisatélite_ADJ", + "arma_NOUN_arrojadizo_ADJ", + "arma_NOUN_bacteriológico_ADJ", + "arma_NOUN_biológico_ADJ", + "arma_NOUN_convencional_ADJ", + "arma_NOUN_decretado_ADJ", + "arma_NOUN_homicida_ADJ", + "arma_NOUN_ligero_ADJ", + "arma_NOUN_láser_ADJ", + "arma_NOUN_nuclear_ADJ", + "arma_NOUN_pequeño_ADJ", + "arma_NOUN_químico_ADJ", + "arma_NOUN_radiológica_ADJ", + "armada_PROPN_argentina_PROPN", + "armada_PROPN_nacional_PROPN", + "armamento_NOUN_pesado_ADJ", + "armando_PROPN_cabada_PROPN", + "armando_PROPN_manzanero_PROPN", + "armando_PROPN_ríos_PROPN", + "armas_PROPN_químicas_PROPN", + "armed_PROPN_conflict_PROPN", + "armed_PROPN_conflicts_PROPN", + "armed_PROPN_forces_PROPN", + "armenia_PROPN_australia_PROPN", + "armenia_PROPN_austria_PROPN", + "armenia_PROPN_azerbaiyán_ADJ", + "armenia_PROPN_azerbaiyán_PROPN", + "armenia_PROPN_belarús_PROPN", + "armenio_ADJ_azerbaiyán_ADJ", + "armenio_ADJ_bahrein_PROPN", + "armonización_NOUN_fiscal_ADJ", + "armonía_PROPN_mundial_ADJ", + "arms_PROPN_control_PROPN", + "arnaldo_PROPN_otegi_PROPN", + "arnold_PROPN_schwarzenegger_PROPN", + "arnoldo_PROPN_alemán_PROPN", + "arquero_NOUN_titular_ADJ", + "arquitectura_NOUN_financiero_ADJ", + "arrecif_NOUN_coralino_ADJ", + "arreglo_NOUN_contractual_ADJ", + "arreglo_NOUN_floral_ADJ", + "arremeter_VERB_contra_ADP", + "arremeteír_VERB_contra_ADP", + "arremetir_VERB_contra_ADP", + "arrendador_NOUN_financiero_ADJ", + "arrendamiento_NOUN_financiero_ADJ", + "arresto_NOUN_arbitrario_ADJ", + "arresto_NOUN_domiciliario_ADJ", + "arriba_ADV_abajo_ADV", + "arriba_ADV_mencionado_ADJ", + "arrojar_VERB_luz_NOUN", + "arrojar_VERB_piedra_NOUN", + "arroyo_PROPN_seco_PROPN", + "arsenal_NOUN_nuclear_ADJ", + "arsene_PROPN_wenger_PROPN", + "art_NOUN_escénico_ADJ", + "art_NOUN_gráfico_ADJ", + "art_NOUN_marcial_ADJ", + "art_NOUN_plástico_ADJ", + "art_NOUN_visual_ADJ", + "arte_NOUN_contemporáneo_ADJ", + "arte_NOUN_dramático_ADJ", + "arte_NOUN_marcial_ADJ", + "arte_PROPN_contemporáneo_PROPN", + "arte_PROPN_dramático_PROPN", + "arte_PROPN_moderno_PROPN", + "artefacto_NOUN_explosivo_ADJ", + "arteria_NOUN_coronario_ADJ", + "artes_NOUN_marciales_NOUN", + "artes_PROPN_escénicas_PROPN", + "artes_PROPN_plásticas_PROPN", + "artes_PROPN_visuales_PROPN", + "article_NOUN_of_PROPN", + "article_PROPN_of_PROPN", + "artillería_NOUN_israelí_ADJ", + "artillería_NOUN_pesado_ADJ", + "artista_NOUN_callejero_ADJ", + "artista_NOUN_invitado_ADJ", + "artista_NOUN_plástico_ADJ", + "artista_NOUN_visual_ADJ", + "artritis_NOUN_reumatoide_ADJ", + "artur_PROPN_mas_PROPN", + "arturo_PROPN_fernández_PROPN", + "arturo_PROPN_núñez_PROPN", + "arturo_PROPN_vidal_PROPN", + "artículo_NOUN_bi_NOUN", + "artículo_NOUN_bis_NOUN", + "artículo_NOUN_bis_PROPN", + "artículo_NOUN_numeral_ADJ", + "artículo_NOUN_quater_NOUN", + "artículo_NOUN_ter_PROPN", + "artículo_NOUN_vi_NUM", + "artículo_PROPN_viii_PROPN", + "as_PROPN_an_PROPN", + "as_PROPN_pontes_PROPN", + "as_PROPN_roma_PROPN", + "as_PROPN_the_PROPN", + "as_PROPN_well_PROPN", + "as_SCONJ_a_DET", + "as_SCONJ_at_ADP", + "asamblea_NOUN_constituyente_ADJ", + "asamblea_NOUN_general_ADJ", + "asamblea_PROPN_constituyente_PROPN", + "asamblea_PROPN_general_ADJ", + "asamblea_PROPN_general_PROPN", + "asamblea_PROPN_legislativa_PROPN", + "asamblea_PROPN_paritaria_PROPN", + "asamblea_PROPN_parlamentaria_PROPN", + "ascendencia_NOUN_africano_ADJ", + "ascendencia_NOUN_u_CCONJ", + "asentamiento_NOUN_humano_ADJ", + "asentamiento_NOUN_ilegal_ADJ", + "asentamiento_NOUN_improvisado_ADJ", + "asentamiento_NOUN_informal_ADJ", + "asentamiento_NOUN_israelí_ADJ", + "asentamiento_NOUN_judío_ADJ", + "asentamiento_NOUN_precario_ADJ", + "asentamiento_NOUN_romaní_ADJ", + "asentamientos_PROPN_humanos_PROPN", + "aseo_NOUN_personal_ADJ", + "asesinato_NOUN_extrajudicial_ADJ", + "asesinato_NOUN_premeditado_ADJ", + "asesinato_NOUN_selectivo_ADJ", + "asesino_NOUN_confeso_ADJ", + "asesino_NOUN_serial_ADJ", + "asesor_NOUN_jurídico_ADJ", + "asesor_NOUN_letrado_ADJ", + "asesora_NOUN_especial_ADJ", + "asesoramiento_NOUN_científico_ADJ", + "asesoramiento_NOUN_letrado_ADJ", + "asesoramiento_NOUN_normativo_ADJ", + "asesoramiento_NOUN_psicosocial_ADJ", + "asesoría_NOUN_jurídico_ADJ", + "asesoría_NOUN_legal_ADJ", + "ashton_PROPN_kutcher_PROPN", + "asia_PROPN_central_ADJ", + "asia_PROPN_central_PROPN", + "asia_PROPN_menor_PROPN", + "asia_PROPN_meridional_ADJ", + "asia_PROPN_meridional_PROPN", + "asia_PROPN_nororiental_ADJ", + "asia_PROPN_occidental_ADJ", + "asia_PROPN_occidental_PROPN", + "asia_PROPN_oriental_ADJ", + "asia_PROPN_oriental_PROPN", + "asia_PROPN_pacific_PROPN", + "asia_PROPN_sudoccidental_ADJ", + "asia_PROPN_sudoriental_ADJ", + "asia_PROPN_sudoriental_PROPN", + "asian_PROPN_indigenous_PROPN", + "asiento_NOUN_contable_ADJ", + "asiento_NOUN_delantero_ADJ", + "asiento_NOUN_trasero_ADJ", + "asignación_NOUN_presupuestaria_ADJ", + "asignación_NOUN_presupuestario_ADJ", + "asignación_PROPN_universal_PROPN", + "asignatura_NOUN_noción_NOUN", + "asignatura_NOUN_obligatorio_ADJ", + "asignatura_NOUN_pendiente_ADJ", + "asilo_NOUN_rechazado_ADJ", + "asistencia_NOUN_humanitario_ADJ", + "asistencia_NOUN_letrado_ADJ", + "asistencia_NOUN_técnico_ADJ", + "asistencia_PROPN_social_PROPN", + "asistente_NOUN_virtual_ADJ", + "asociación_NOUN_delictuós_ADJ", + "asociación_NOUN_euroatlántico_ADJ", + "asociación_NOUN_euromediterráneo_ADJ", + "asociación_NOUN_pro_ADP", + "asociación_NOUN_vecinal_ADJ", + "asociación_PROPN_americana_PROPN", + "asociación_PROPN_amigos_PROPN", + "asociación_PROPN_bancaria_PROPN", + "asociación_PROPN_colombiana_PROPN", + "asociación_PROPN_cultural_PROPN", + "asociación_PROPN_deportiva_PROPN", + "asociación_PROPN_económica_PROPN", + "asociación_PROPN_española_PROPN", + "asociación_PROPN_gremial_PROPN", + "asociación_PROPN_internacional_PROPN", + "asociación_PROPN_latinoamericana_PROPN", + "asociación_PROPN_mexicana_PROPN", + "asociación_PROPN_mundial_PROPN", + "asociación_PROPN_médica_PROPN", + "asociación_PROPN_oriental_PROPN", + "asociación_PROPN_paraguaya_PROPN", + "asociación_PROPN_pro_ADP", + "asociado_ADJ_externo_NOUN", + "asociado_NOUN_bilateral_ADJ", + "asociados_PROPN_bulgaria_PROPN", + "aspecto_NOUN_multidimensional_ADJ", + "aspects_NOUN_of_PROPN", + "aspiración_NOUN_legítimo_ADJ", + "aspirante_NOUN_presidencial_ADJ", + "aspirante_NOUN_republicano_ADJ", + "assembly_NOUN_au_NOUN", + "assessment_PROPN_of_PROPN", + "asset_PROPN_management_PROPN", + "associated_PROPN_press_PROPN", + "association_PROPN_des_ADP", + "association_PROPN_for_PROPN", + "association_PROPN_of_ADP", + "association_PROPN_of_PROPN", + "association_PROPN_pour_PROPN", + "association_PROPN_tunisienne_PROPN", + "astillero_NOUN_naval_ADJ", + "aston_PROPN_martin_PROPN", + "aston_PROPN_villa_PROPN", + "astor_PROPN_piazzolla_PROPN", + "astro_NOUN_argentino_ADJ", + "astro_NOUN_brasileño_ADJ", + "asunción_PROPN_paraguay_PROPN", + "asunto_NOUN_administrativo_ADJ", + "asunto_NOUN_concernient_ADJ", + "asunto_NOUN_conexo_ADJ", + "asunto_NOUN_conexos_PROPN", + "asunto_NOUN_oceánico_ADJ", + "asuntos_PROPN_civiles_PROPN", + "asuntos_PROPN_constitucionales_PROPN", + "asuntos_PROPN_económicos_PROPN", + "asuntos_PROPN_europeos_PROPN", + "asuntos_PROPN_exteriores_PROPN", + "asuntos_PROPN_generales_PROPN", + "asuntos_PROPN_humanitarios_PROPN", + "asuntos_PROPN_indígenas_PROPN", + "asuntos_PROPN_institucionales_PROPN", + "asuntos_PROPN_interiores_PROPN", + "asuntos_PROPN_internacionales_PROPN", + "asuntos_PROPN_internos_PROPN", + "asuntos_PROPN_jurídicos_PROPN", + "asuntos_PROPN_militares_PROPN", + "asuntos_PROPN_municipales_PROPN", + "asuntos_PROPN_políticos_PROPN", + "asuntos_PROPN_públicos_PROPN", + "asuntos_PROPN_religiosos_PROPN", + "asuntos_PROPN_sociales_PROPN", + "así_ADV_mismo_NOUN", + "así_ADV_pues_NOUN", + "así_ADV_sucesivamente_ADV", + "at_ADP_pm_PROPN", + "at_ADP_the_DET", + "at_ADP_the_PROPN", + "at_ADP_this_PROPN", + "at_NOUN_the_PROPN", + "at_PROPN_all_PROPN", + "at_PROPN_its_PROPN", + "at_PROPN_the_PROPN", + "at_PROPN_this_PROPN", + "at_SYM_the_PROPN", + "atacante_NOUN_suicida_ADJ", + "ataque_NOUN_aéreo_ADJ", + "ataque_NOUN_cardiaco_ADJ", + "ataque_NOUN_cardíaco_ADJ", + "ataque_NOUN_cibernético_ADJ", + "ataque_NOUN_deliberado_ADJ", + "ataque_NOUN_especulativo_ADJ", + "ataque_NOUN_indiscriminado_ADJ", + "ataque_NOUN_perpetrado_ADJ", + "ataque_NOUN_suicida_ADJ", + "ataque_NOUN_terrorista_ADJ", + "atención_NOUN_diurno_ADJ", + "atención_NOUN_médico_ADJ", + "atención_NOUN_obstétrico_ADJ", + "atención_NOUN_odontológico_ADJ", + "atención_NOUN_pediátrico_ADJ", + "atención_NOUN_prenatal_ADJ", + "atención_NOUN_primario_ADJ", + "atención_NOUN_sanitario_ADJ", + "atención_PROPN_ciudadana_PROPN", + "atención_PROPN_integral_PROPN", + "atención_PROPN_médica_PROPN", + "atención_PROPN_primaria_PROPN", + "atentado_NOUN_perpetrado_ADJ", + "atentado_NOUN_suicida_ADJ", + "atentado_NOUN_terrorista_ADJ", + "atentar_VERB_contra_ADP", + "atentar_VERB_gravemente_ADV", + "atento_ADJ_mirada_NOUN", + "aterrizaje_NOUN_suave_ADJ", + "atestado_NOUN_policial_ADJ", + "athletic_PROPN_club_PROPN", + "atlanta_PROPN_georgia_PROPN", + "atlantic_PROPN_city_PROPN", + "atlántico_PROPN_nordeste_PROPN", + "atlántico_PROPN_norte_PROPN", + "atlántico_PROPN_sur_ADJ", + "atlántico_PROPN_sur_PROPN", + "atlético_PROPN_junior_PROPN", + "atlético_PROPN_mineiro_PROPN", + "atlético_PROPN_paranaense_PROPN", + "atlético_PROPN_rafaela_PROPN", + "atlético_PROPN_tucumán_PROPN", + "atmósfera_NOUN_propicio_ADJ", + "atmósfera_NOUN_terrestre_ADJ", + "atracción_NOUN_turístico_ADJ", + "atractivo_NOUN_turístico_ADJ", + "atraer_VERB_ied_PROPN", + "atraer_VERB_inversión_NOUN", + "atrocidad_NOUN_cometido_ADJ", + "atrocidad_NOUN_masivo_ADJ", + "atrocidad_NOUN_perpetrado_ADJ", + "atroz_ADJ_crimen_NOUN", + "atún_NOUN_rojo_ADJ", + "audax_PROPN_italiano_PROPN", + "audiencia_NOUN_interactivo_ADJ", + "audiencia_NOUN_oral_ADJ", + "audiencia_NOUN_preliminar_ADJ", + "audiencia_NOUN_provincial_ADJ", + "audiencia_PROPN_nacional_PROPN", + "audiencia_PROPN_provincial_PROPN", + "auditor_NOUN_externo_ADJ", + "auditor_NOUN_residente_ADJ", + "auditorio_PROPN_municipal_PROPN", + "auditorio_PROPN_nacional_PROPN", + "auditoría_NOUN_interno_ADJ", + "auditoría_PROPN_general_PROPN", + "auditoría_PROPN_superior_PROPN", + "augusto_PROPN_fernández_PROPN", + "augusto_PROPN_pinochet_PROPN", + "aula_PROPN_magna_PROPN", + "aumentar_VERB_apreciablemente_ADV", + "aumentar_VERB_considerablemente_ADV", + "aumentar_VERB_drásticamente_ADV", + "aumentar_VERB_espectacularmente_ADV", + "aumentar_VERB_exponencialmente_ADV", + "aumentar_VERB_notablemente_ADV", + "aumentar_VERB_significativamente_ADV", + "aumentar_VERB_sustancialmente_ADV", + "aumento_NOUN_exponencial_ADJ", + "aumento_NOUN_salarial_ADJ", + "aumento_NOUN_tarifario_ADJ", + "aun_NOUN_asi_ADV", + "aun_NOUN_así_ADV", + "aun_NOUN_cuando_ADV", + "aunar_VERB_esfuerzo_NOUN", + "aung_PROPN_san_PROPN", + "aurelio_PROPN_nuño_PROPN", + "aureoles_PROPN_conejo_PROPN", + "aurora_NOUN_boreal_ADJ", + "austeridad_NOUN_fiscal_ADJ", + "austeridad_NOUN_presupuestario_ADJ", + "austin_PROPN_texas_PROPN", + "austral_PROPN_construcciones_PROPN", + "australia_PROPN_austria_PROPN", + "australia_PROPN_azerbaiyán_ADJ", + "australia_PROPN_bélgica_PROPN", + "australiano_NOUN_mark_PROPN", + "austria_PROPN_azerbaiyán_PROPN", + "austria_PROPN_bahamas_PROPN", + "austria_PROPN_bahrein_PROPN", + "austria_PROPN_bangladesh_PROPN", + "austria_PROPN_belarús_PROPN", + "austria_PROPN_bélgica_PROPN", + "aut_PROPN_dedere_PROPN", + "aut_PROPN_judicare_PROPN", + "auto_NOUN_compacto_ADJ", + "auto_NOUN_dictado_ADJ", + "auto_NOUN_estacionado_ADJ", + "auto_NOUN_robado_ADJ", + "auto_NOUN_usado_ADJ", + "autobús_NOUN_escolar_ADJ", + "autobús_NOUN_urbano_ADJ", + "autodefensas_PROPN_unidas_PROPN", + "autodenominado_ADJ_estado_PROPN", + "automóvil_NOUN_volkswagen_PROPN", + "automóvil_PROPN_club_PROPN", + "autonomía_NOUN_contractual_ADJ", + "autonomía_NOUN_logístico_ADJ", + "autonomía_NOUN_sustancial_ADJ", + "autopsia_NOUN_revelar_VERB", + "autor_NOUN_alegar_VERB", + "autora_NOUN_alegar_VERB", + "autoridad_NOUN_aduanera_ADJ", + "autoridad_NOUN_afgana_ADJ", + "autoridad_NOUN_birmana_ADJ", + "autoridad_NOUN_carcelaria_ADJ", + "autoridad_NOUN_competente_ADJ", + "autoridad_NOUN_congoleña_ADJ", + "autoridad_NOUN_contratante_ADJ", + "autoridad_NOUN_eritrea_ADJ", + "autoridad_NOUN_georgiana_ADJ", + "autoridad_NOUN_haitiana_ADJ", + "autoridad_NOUN_investigador_ADJ", + "autoridad_NOUN_libia_ADJ", + "autoridad_NOUN_monegasca_ADJ", + "autoridad_NOUN_nominadoro_ADJ", + "autoridad_NOUN_sudanesa_ADJ", + "autoridad_NOUN_supervisor_ADJ", + "autoridad_NOUN_timorens_ADJ", + "autoridad_NOUN_turcochipriota_ADJ", + "autoridad_PROPN_bancaria_PROPN", + "autoridad_PROPN_judicial_PROPN", + "autoridad_PROPN_nacional_PROPN", + "autoridad_PROPN_palestina_PROPN", + "autoridad_PROPN_portuaria_PROPN", + "autorización_NOUN_concedido_ADJ", + "autorización_NOUN_otorgado_ADJ", + "autorización_NOUN_previo_ADJ", + "autorizar_VERB_expresamente_ADV", + "autosuficiencia_NOUN_alimentario_ADJ", + "auténtica_PROPN_defensa_PROPN", + "autónomo_ADJ_transmitido_ADJ", + "autónomo_NOUN_restante_ADJ", + "auxiliar_NOUN_administrativo_ADJ", + "auxiliar_NOUN_administrativo_PROPN", + "auxiliar_PROPN_administrativo_PROPN", + "auxiliar_VERB_administrativo_PROPN", + "available_ADJ_at_ADP", + "avance_NOUN_conseguido_ADJ", + "avance_NOUN_logrado_ADJ", + "avance_NOUN_significativo_ADJ", + "avance_NOUN_tecnológico_ADJ", + "avanzar_VERB_considerablemente_ADV", + "avanzar_VERB_hacia_ADP", + "avanzar_VERB_lentamente_ADV", + "avdotia_PROPN_romanovna_PROPN", + "ave_NOUN_acuático_ADJ", + "ave_NOUN_marino_ADJ", + "ave_NOUN_migratorio_ADJ", + "ave_PROPN_maría_PROPN", + "avenida_NOUN_juárez_PROPN", + "averiguación_NOUN_previo_ADJ", + "averiguar_VERB_quién_PRON", + "avería_NOUN_grueso_ADJ", + "aviación_NOUN_civil_ADJ", + "aviación_PROPN_civil_PROPN", + "aviso_NOUN_amarillo_ADJ", + "aviso_NOUN_previo_ADJ", + "aviso_NOUN_publicitario_ADJ", + "avión_NOUN_airbus_PROPN", + "avión_NOUN_aterrizar_VERB", + "avión_NOUN_awacs_ADJ", + "avión_NOUN_awacs_PROPN", + "avión_NOUN_boeing_PROPN", + "avión_NOUN_despegar_VERB", + "avión_NOUN_dotado_ADJ", + "avión_NOUN_sobrevolar_VERB", + "avión_NOUN_teledirigido_ADJ", + "avión_NOUN_tornado_NOUN", + "awas_PROPN_tingni_PROPN", + "axel_PROPN_kicillof_PROPN", + "ay_INTJ_dios_INTJ", + "ayer_ADV_mismo_ADV", + "ayrton_PROPN_senna_PROPN", + "ayuda_NOUN_alimentario_ADJ", + "ayuda_NOUN_humanitario_ADJ", + "ayuda_NOUN_macrofinanciero_ADJ", + "ayuda_PROPN_humanitaria_PROPN", + "azerbaiyán_ADJ_bahamas_PROPN", + "azerbaiyán_ADJ_bahrein_PROPN", + "azerbaiyán_ADJ_bangladesh_PROPN", + "azerbaiyán_ADJ_belarús_PROPN", + "azerbaiyán_PROPN_bahamas_PROPN", + "azerbaiyán_PROPN_bahrein_PROPN", + "azerbaiyán_PROPN_bangladesh_PROPN", + "azerbaiyán_PROPN_belarús_PROPN", + "azerbaiyán_PROPN_bélgica_PROPN", + "azerbaiyán_PROPN_georgia_PROPN", + "azerbaiyán_VERB_ante_ADP", + "año_NOUN_heliofísico_ADJ", + "año_NOUN_impar_NOUN", + "año_NOUN_ochenta_NOUN", + "año_NOUN_sabático_ADJ", + "año_NOUN_treinta_NOUN", + "año_PROPN_europeo_PROPN", + "año_PROPN_internacional_PROPN", + "años_NOUN_cincuenta_NOUN", + "años_NOUN_noventa_NUM", + "años_NOUN_ochenta_NOUN", + "años_NOUN_ochenta_NUM", + "años_NOUN_sesenta_NOUN", + "años_NOUN_setenta_NOUN", + "años_NOUN_setenta_NUM", + "aún_NOUN_así_ADV", + "aún_NOUN_cuando_ADV", + "aúnar_VERB_esfuerzo_NOUN", + "b_NOUN_metilcloroformo_PROPN", + "b_NOUN_supra_ADJ", + "b_SYM_cuota_NOUN", + "b_SYM_kiribati_PROPN", + "b_SYM_saldo_NOUN", + "b_SYM_suma_NOUN", + "b_SYM_tetracloruro_NOUN", + "baali_PROPN_argelia_PROPN", + "babelia_PROPN_anterior_ADJ", + "back_PROPN_to_PROPN", + "bad_PROPN_bunny_PROPN", + "badji_PROPN_senegal_PROPN", + "bahama_NOUN_bahrein_PROPN", + "bahama_NOUN_bangladesh_PROPN", + "bahama_NOUN_barbado_ADJ", + "bahamas_PROPN_bahrein_PROPN", + "bahrein_PROPN_bangladesh_PROPN", + "bahrein_PROPN_belarús_PROPN", + "bahrein_PROPN_bhután_ADJ", + "bahía_PROPN_blanca_PROPN", + "baja_PROPN_california_PROPN", + "baja_PROPN_sajonia_PROPN", + "bajar_VERB_centavo_NOUN", + "bajo_ADJ_altitud_NOUN", + "bajo_ADJ_autoestima_NOUN", + "bajo_ADJ_densidad_NOUN", + "bajo_ADJ_estatura_NOUN", + "bajo_ADJ_palau_PROPN", + "bajo_ADJ_panamá_PROPN", + "bajo_ADJ_polonia_PROPN", + "bajo_ADJ_temperatura_NOUN", + "bajo_ADP_arresto_NOUN", + "bajo_ADP_caución_NOUN", + "bajo_ADP_cero_NOUN", + "bajo_ADP_coacción_NOUN", + "bajo_ADP_custodia_NOUN", + "bajo_ADP_dominación_NOUN", + "bajo_ADP_fianza_NOUN", + "bajo_ADP_juramento_NOUN", + "bajo_ADP_resguardo_NOUN", + "bajo_ADP_sospecha_NOUN", + "bakú_NOUN_república_PROPN", + "bala_NOUN_perdido_ADJ", + "balanza_NOUN_comercial_ADJ", + "balanza_NOUN_fiscal_ADJ", + "balarezo_NOUN_perú_PROPN", + "balcanes_PROPN_occidental_ADJ", + "balcanes_PROPN_occidentales_PROPN", + "balcán_NOUN_occidental_ADJ", + "bali_PROPN_indonesia_PROPN", + "ballet_NOUN_clásico_ADJ", + "ballet_PROPN_nacional_PROPN", + "baltasar_PROPN_garzón_PROPN", + "balón_NOUN_parado_ADJ", + "balón_NOUN_suelto_ADJ", + "banca_NOUN_español_ADJ", + "banca_PROPN_cívica_PROPN", + "bancada_NOUN_oficialista_ADJ", + "bancaria_PROPN_frob_PROPN", + "banco_NOUN_asiático_ADJ", + "banco_NOUN_central_ADJ", + "banco_NOUN_depositario_ADJ", + "banco_NOUN_emisor_ADJ", + "banco_NOUN_interamericano_ADJ", + "banco_NOUN_mundial_ADJ", + "banco_NOUN_rafidain_PROPN", + "banco_PROPN_africano_PROPN", + "banco_PROPN_asiático_PROPN", + "banco_PROPN_base_PROPN", + "banco_PROPN_central_PROPN", + "banco_PROPN_europeo_PROPN", + "banco_PROPN_hipotecario_PROPN", + "banco_PROPN_interamericano_PROPN", + "banco_PROPN_macro_PROPN", + "banco_PROPN_mundial_PROPN", + "banco_PROPN_nación_PROPN", + "banco_PROPN_popular_PROPN", + "banco_PROPN_provincia_PROPN", + "banco_PROPN_sabadell_PROPN", + "banco_PROPN_santander_PROPN", + "bancos_PROPN_centrales_PROPN", + "banda_NOUN_ancho_ADJ", + "banda_NOUN_criminal_ADJ", + "banda_NOUN_derecho_ADJ", + "banda_NOUN_izquierdo_ADJ", + "banda_NOUN_rival_ADJ", + "banda_NOUN_sonoro_ADJ", + "banda_NOUN_terrorista_ADJ", + "banda_PROPN_ancha_PROPN", + "banda_PROPN_municipal_PROPN", + "bandera_NOUN_amarillo_ADJ", + "bandera_NOUN_azul_ADJ", + "bandera_NOUN_rojo_ADJ", + "bandera_NOUN_tricolor_ADJ", + "bandera_PROPN_nacional_PROPN", + "bando_NOUN_contrario_ADJ", + "bangalore_PROPN_india_NOUN", + "bangkok_PROPN_tailandia_PROPN", + "bangladesh_PROPN_barbado_ADJ", + "bangladesh_PROPN_barbados_PROPN", + "bangladesh_PROPN_belarús_PROPN", + "bangladesh_PROPN_belice_PROPN", + "bangladesh_PROPN_benin_ADJ", + "bangladesh_PROPN_benin_PROPN", + "bangladesh_PROPN_bhután_ADJ", + "bangladesh_PROPN_bolivia_PROPN", + "bangladesh_PROPN_brunei_NOUN", + "bangladesh_PROPN_bélgica_PROPN", + "bangladesh_PROPN_camboya_PROPN", + "bani_PROPN_walid_PROPN", + "banja_NOUN_luka_PROPN", + "bank_PROPN_of_PROPN", + "bar_NOUN_restaurante_NOUN", + "barack_PROPN_obama_PROPN", + "barak_PROPN_obama_PROPN", + "barba_NOUN_blanco_ADJ", + "barba_NOUN_negro_ADJ", + "barbado_ADJ_belarús_PROPN", + "barbado_ADJ_belice_PROPN", + "barbado_ADJ_bélgica_PROPN", + "barbados_PROPN_belarús_PROPN", + "barbuda_PROPN_arabia_PROPN", + "barbuda_PROPN_argelia_PROPN", + "barbuda_PROPN_argentino_ADJ", + "barbuda_PROPN_bahama_NOUN", + "barcelona_PROPN_traction_PROPN", + "barco_NOUN_pesquero_ADJ", + "baronesa_NOUN_ashton_PROPN", + "baronesa_PROPN_ashton_PROPN", + "barra_NOUN_brava_ADJ", + "barra_NOUN_bravo_ADJ", + "barrera_NOUN_arancelaria_ADJ", + "barrera_NOUN_arquitectónico_ADJ", + "barrera_NOUN_lingüístico_ADJ", + "barrera_NOUN_psicológico_ADJ", + "barrick_PROPN_gold_PROPN", + "barril_NOUN_diario_ADJ", + "barrio_NOUN_marginal_ADJ", + "barrio_NOUN_obrero_ADJ", + "barrio_NOUN_periférico_ADJ", + "barrio_NOUN_porteño_ADJ", + "barrio_NOUN_residencial_ADJ", + "barrio_PROPN_adentro_PROPN", + "barrio_PROPN_alegre_PROPN", + "barrio_PROPN_norte_PROPN", + "barrio_PROPN_parque_PROPN", + "barrios_PROPN_altos_PROPN", + "barros_PROPN_schelotto_PROPN", + "barry_PROPN_bonds_PROPN", + "bartolomé_PROPN_mitre_PROPN", + "barón_PROPN_crespo_PROPN", + "base_NOUN_imponible_ADJ", + "base_NOUN_logístico_ADJ", + "base_NOUN_naval_ADJ", + "base_PROPN_aérea_PROPN", + "base_PROPN_naval_PROPN", + "based_PROPN_on_ADJ", + "bashar_PROPN_asad_PROPN", + "basilea_PROPN_estocolmo_PROPN", + "basis_PROPN_of_PROPN", + "bastante_DET_antelación_NOUN", + "bastante_DET_frecuencia_NOUN", + "bastian_PROPN_schweinsteiger_PROPN", + "bata_NOUN_blanco_ADJ", + "batalla_NOUN_campal_ADJ", + "bateador_NOUN_designado_ADJ", + "bateador_NOUN_emergente_ADJ", + "batir_VERB_récord_NOUN", + "baton_PROPN_rouge_PROPN", + "bayer_PROPN_leverkusen_PROPN", + "bayern_PROPN_munich_PROPN", + "bayern_PROPN_múnich_PROPN", + "bazinas_NOUN_secretaría_NOUN", + "bbc_PROPN_ciencia_PROPN", + "bbc_PROPN_mundo_PROPN", + "bbc_PROPN_news_PROPN", + "bbva_PROPN_bancomer_PROPN", + "bear_PROPN_stearns_PROPN", + "beatriz_PROPN_paredes_PROPN", + "beatriz_PROPN_sánchez_PROPN", + "beber_VERB_alcohol_NOUN", + "beber_VERB_cerveza_NOUN", + "beber_VERB_vino_NOUN", + "bebida_NOUN_alcohólico_ADJ", + "bebida_NOUN_azucarado_ADJ", + "bebida_NOUN_embriagant_ADJ", + "bebida_NOUN_espirituosa_ADJ", + "bebida_NOUN_gaseosa_ADJ", + "bebé_NOUN_prematuro_ADJ", + "bebé_NOUN_recién_ADV", + "beca_NOUN_erasmus_PROPN", + "beca_NOUN_otorgado_ADJ", + "beca_NOUN_universitario_ADJ", + "because_PROPN_of_PROPN", + "before_PROPN_the_PROPN", + "beijing_PROPN_aprobada_ADJ", + "beirut_PROPN_líbano_PROPN", + "beit_PROPN_hanoun_PROPN", + "beit_PROPN_hanun_PROPN", + "beit_PROPN_hanún_PROPN", + "bekaa_PROPN_occidental_ADJ", + "belarús_PROPN_belice_PROPN", + "belarús_PROPN_benin_ADJ", + "belarús_PROPN_bélgica_PROPN", + "belice_PROPN_benin_PROPN", + "belice_PROPN_bhután_PROPN", + "belice_PROPN_bolivia_PROPN", + "believed_PROPN_that_PROPN", + "bella_PROPN_unión_PROPN", + "bella_PROPN_vista_PROPN", + "bellas_PROPN_artes_PROPN", + "bello_ADJ_art_NOUN", + "bello_ADJ_artes_PROPN", + "belo_PROPN_horizonte_PROPN", + "beltrán_PROPN_leyva_PROPN", + "belém_PROPN_do_ADP", + "belén_PROPN_esteban_PROPN", + "ben_PROPN_affleck_PROPN", + "ben_PROPN_ali_PROPN", + "ben_PROPN_alí_PROPN", + "ben_PROPN_bernanke_PROPN", + "ben_PROPN_hur_PROPN", + "ben_PROPN_laden_PROPN", + "ben_PROPN_zayb_PROPN", + "benazir_PROPN_bhutto_PROPN", + "benedicto_PROPN_xvi_PROPN", + "beneficiar_VERB_enormemente_ADV", + "beneficien_VERB_beneficien_VERB", + "beneficio_NOUN_derivado_ADJ", + "beneficio_NOUN_mutuo_ADJ", + "beneficio_NOUN_neto_ADJ", + "beneficio_NOUN_tangible_ADJ", + "benin_ADJ_bhután_ADJ", + "benin_ADJ_bosnia_ADJ", + "benin_ADJ_burkina_PROPN", + "benin_PROPN_bhután_ADJ", + "benin_PROPN_bhután_PROPN", + "benin_PROPN_bolivia_PROPN", + "benin_PROPN_brasil_PROPN", + "benin_PROPN_burkina_PROPN", + "benito_PROPN_juárez_PROPN", + "benjamin_PROPN_netanyahu_PROPN", + "benjamín_PROPN_netanyahu_PROPN", + "benjamín_PROPN_vicuña_PROPN", + "bennouna_NOUN_marruecos_PROPN", + "bermuda_NOUN_guam_NOUN", + "bernard_PROPN_kouchner_PROPN", + "bernardino_PROPN_rivadavia_PROPN", + "bernd_PROPN_schuster_PROPN", + "bernie_PROPN_ecclestone_PROPN", + "bernie_PROPN_sanders_PROPN", + "berta_PROPN_cáceres_PROPN", + "best_NOUN_seller_NOUN", + "best_PROPN_buy_PROPN", + "bestia_NOUN_negro_ADJ", + "between_PROPN_states_PROPN", + "between_PROPN_the_PROPN", + "beverly_PROPN_hills_PROPN", + "bg_PROPN_señor_NOUN", + "bhagwati_PROPN_sr_PROPN", + "bhagwati_PROPN_sra_NOUN", + "bhp_PROPN_billiton_PROPN", + "bhután_ADJ_bolivia_PROPN", + "bhután_PROPN_bolivia_PROPN", + "bhután_PROPN_brasil_PROPN", + "biblioteca_NOUN_audiovisual_ADJ", + "biblioteca_NOUN_dag_ADP", + "biblioteca_NOUN_dag_ADV", + "biblioteca_NOUN_dag_PROPN", + "biblioteca_NOUN_depositaria_ADJ", + "biblioteca_NOUN_virtual_ADJ", + "biblioteca_PROPN_municipal_PROPN", + "biblioteca_PROPN_nacional_PROPN", + "biblioteca_PROPN_popular_PROPN", + "biblioteca_PROPN_pública_PROPN", + "bicampeón_NOUN_mundial_ADJ", + "bicho_NOUN_raro_ADJ", + "bien_ADJ_inmueble_NOUN", + "bien_ADV_acogido_ADJ", + "bien_ADV_conservado_ADJ", + "bien_ADV_documentado_ADJ", + "bien_ADV_entrado_ADJ", + "bien_ADV_fundamentada_ADJ", + "bien_ADV_intencionado_ADJ", + "bien_ADV_librado_ADJ", + "bien_ADV_mirado_ADJ", + "bien_ADV_posicionado_ADJ", + "bien_NOUN_confiscado_ADJ", + "bien_NOUN_congelado_ADJ", + "bien_NOUN_corporal_ADJ", + "bien_NOUN_decomisado_ADJ", + "bien_NOUN_fungibl_ADJ", + "bien_NOUN_ganancial_ADJ", + "bien_NOUN_generador_ADJ", + "bien_NOUN_gravado_ADJ", + "bien_NOUN_incautado_ADJ", + "bien_NOUN_inmaterial_ADJ", + "bien_NOUN_inmuebl_ADJ", + "bien_NOUN_inmueble_ADJ", + "bien_NOUN_inmueble_NOUN", + "bien_NOUN_intangibl_ADJ", + "bien_NOUN_kuwaitíes_PROPN", + "bien_NOUN_manufacturado_ADJ", + "bien_NOUN_material_ADJ", + "bien_NOUN_muebl_ADJ", + "bien_NOUN_mueble_ADJ", + "bien_NOUN_mueble_NOUN", + "bien_NOUN_raíz_ADJ", + "bienal_ADJ_presupuestado_ADJ", + "bienes_NOUN_mueble_NOUN", + "bienes_NOUN_raíces_NOUN", + "bienes_NOUN_raíz_NOUN", + "bienes_PROPN_inmuebles_PROPN", + "bienes_PROPN_nacionales_PROPN", + "bienes_PROPN_personales_PROPN", + "bienestar_NOUN_animal_ADJ", + "bienestar_PROPN_familiar_PROPN", + "bienestar_PROPN_social_ADJ", + "bienestar_PROPN_social_PROPN", + "bienio_NOUN_finalizado_ADJ", + "bienio_NOUN_precedente_ADJ", + "bienio_NOUN_sect_PROPN", + "bienio_NOUN_terminado_ADJ", + "bienio_PROPN_continuación_PROPN", + "bienio_PROPN_terminado_ADJ", + "bifenilo_NOUN_policlorado_ADJ", + "big_NOUN_data_NOUN", + "big_PROPN_band_PROPN", + "big_PROPN_bang_PROPN", + "big_PROPN_ben_PROPN", + "big_PROPN_brother_PROPN", + "big_PROPN_data_PROPN", + "bigas_PROPN_luna_PROPN", + "bildes_PROPN_mit_PROPN", + "bildunterschrift_PROPN_groansicht_PROPN", + "bildunterschrift_PROPN_großansicht_PROPN", + "bill_PROPN_clinton_PROPN", + "bill_PROPN_gates_PROPN", + "billete_NOUN_falso_ADJ", + "billete_NOUN_verde_ADJ", + "bin_PROPN_abdul_PROPN", + "bin_PROPN_abdulaziz_PROPN", + "bin_PROPN_khalifa_PROPN", + "bin_PROPN_ladar_VERB", + "bin_PROPN_laden_PROPN", + "biodiversidad_NOUN_marino_ADJ", + "biodiversidad_PROPN_marina_PROPN", + "biodiversidad_PROPN_marino_ADJ", + "biología_NOUN_molecular_ADJ", + "birmania_PROPN_myanmar_PROPN", + "black_PROPN_friday_PROPN", + "blade_PROPN_runner_PROPN", + "blanquear_VERB_dinero_NOUN", + "blasco_PROPN_ibáñez_PROPN", + "bloch_PROPN_von_PROPN", + "blog_NOUN_twitter_PROPN", + "bloque_NOUN_oficialista_ADJ", + "bloque_NOUN_opositor_ADJ", + "bloque_NOUN_soviético_ADJ", + "bloqueo_NOUN_impuesto_ADJ", + "blum_PROPN_colombia_PROPN", + "bmw_PROPN_sauber_PROPN", + "bmw_PROPN_serie_PROPN", + "bnp_PROPN_paribas_PROPN", + "bo_PROPN_xilai_PROPN", + "board_PROPN_of_PROPN", + "bob_PROPN_dylan_PROPN", + "bob_PROPN_esponja_PROPN", + "bob_PROPN_marley_PROPN", + "boca_NOUN_abajo_NOUN", + "boca_NOUN_arriba_NOUN", + "boca_NOUN_entreabierto_ADJ", + "boca_PROPN_juniors_PROPN", + "bogotá_PROPN_colombia_PROPN", + "bojan_PROPN_krkic_PROPN", + "boko_PROPN_haram_PROPN", + "boleta_NOUN_electoral_ADJ", + "boletín_NOUN_informativo_ADJ", + "boletín_NOUN_mensual_ADJ", + "boletín_NOUN_oficial_ADJ", + "boletín_NOUN_st_PROPN", + "boletín_NOUN_trimestral_ADJ", + "boletín_PROPN_oficial_PROPN", + "bolillo_PROPN_gómez_PROPN", + "bolivariana_PROPN_gnb_PROPN", + "bolivia_PROPN_bosnia_PROPN", + "bolivia_PROPN_botswana_PROPN", + "bolivia_PROPN_brasil_PROPN", + "bolivia_PROPN_burkina_PROPN", + "bolivia_PROPN_evo_PROPN", + "boliviano_ADJ_evo_PROPN", + "bolsa_NOUN_plástico_ADJ", + "bolsa_PROPN_mercantil_PROPN", + "bolsa_PROPN_mexicana_PROPN", + "bolsas_PROPN_europeo_ADJ", + "bolívares_NOUN_fuerte_ADJ", + "bomba_NOUN_atómico_ADJ", + "bomba_NOUN_casero_ADJ", + "bomba_NOUN_colocado_ADJ", + "bomba_NOUN_estallar_VERB", + "bomba_NOUN_explotar_VERB", + "bomba_NOUN_incendiario_ADJ", + "bomba_NOUN_lacrimógeno_ADJ", + "bomba_NOUN_molotov_NOUN", + "bomba_NOUN_perpetrado_ADJ", + "bomba_NOUN_sucio_ADJ", + "bombardeo_NOUN_atómico_ADJ", + "bombardeo_NOUN_aéreo_ADJ", + "bombardeo_NOUN_indiscriminado_ADJ", + "bombardeo_NOUN_israelí_ADJ", + "bombero_NOUN_voluntario_ADJ", + "bomberos_PROPN_voluntarios_PROPN", + "bon_PROPN_jovi_PROPN", + "bonanza_NOUN_económico_ADJ", + "bonificación_NOUN_fiscal_ADJ", + "bonn_PROPN_alemania_PROPN", + "bono_NOUN_alemán_ADJ", + "bono_NOUN_basura_NOUN", + "bono_NOUN_emitido_ADJ", + "bono_NOUN_griego_ADJ", + "bono_NOUN_soberano_ADJ", + "book_PROPN_of_PROPN", + "boom_NOUN_inmobiliario_ADJ", + "boris_PROPN_johnson_PROPN", + "boris_PROPN_tadić_PROPN", + "borussia_PROPN_dortmund_PROPN", + "bosque_NOUN_nativo_ADJ", + "bosque_NOUN_plantado_ADJ", + "bosque_NOUN_tropical_ADJ", + "bossa_NOUN_nova_NOUN", + "boston_PROPN_celtics_PROPN", + "boston_PROPN_globe_PROPN", + "bote_NOUN_salvavidas_NOUN", + "botswana_NOUN_brunei_NOUN", + "botswana_NOUN_burkina_PROPN", + "botswana_PROPN_brasil_PROPN", + "boxeo_PROPN_cmb_PROPN", + "brad_PROPN_pitt_PROPN", + "brasil_PROPN_brunei_PROPN", + "brasil_PROPN_bulgaria_PROPN", + "brasil_PROPN_burkina_PROPN", + "brasil_PROPN_camerún_PROPN", + "brasil_PROPN_dilma_PROPN", + "brasil_PROPN_luiz_PROPN", + "brasileño_ADJ_dilma_PROPN", + "brasileño_ADJ_luiz_PROPN", + "brasileño_NOUN_felipe_PROPN", + "brasileño_NOUN_neymar_PROPN", + "bravo_PROPN_mena_PROPN", + "brawn_PROPN_gp_PROPN", + "brazo_NOUN_caído_ADJ", + "brazo_NOUN_cruzado_ADJ", + "brazo_NOUN_derecho_ADJ", + "brazo_NOUN_desnudo_ADJ", + "brazo_NOUN_ejecutor_ADJ", + "brazo_NOUN_extendido_ADJ", + "brazo_NOUN_izquierdo_ADJ", + "brazo_NOUN_robótico_ADJ", + "breaking_PROPN_bad_PROPN", + "brecha_NOUN_digital_ADJ", + "brecha_NOUN_salarial_ADJ", + "brecha_NOUN_tecnológico_ADJ", + "brett_PROPN_favre_PROPN", + "bretton_NOUN_woods_NOUN", + "bretton_NOUN_woods_PROPN", + "bretton_PROPN_woods_PROPN", + "breve_ADJ_descripción_NOUN", + "breve_ADJ_instante_NOUN", + "breve_ADJ_lapso_NOUN", + "breve_ADJ_pausa_NOUN", + "breve_ADJ_reseña_NOUN", + "breve_ADJ_resumen_NOUN", + "brevedad_NOUN_posible_ADJ", + "brigada_NOUN_multinacional_ADJ", + "brigada_PROPN_provincial_PROPN", + "brindar_VERB_asesoría_NOUN", + "brindisi_PROPN_italia_PROPN", + "british_PROPN_airways_PROPN", + "british_PROPN_columbia_PROPN", + "british_PROPN_council_PROPN", + "british_PROPN_petroleum_PROPN", + "britney_PROPN_spears_PROPN", + "británico_ADJ_bbc_PROPN", + "británico_ADJ_david_PROPN", + "británico_ADJ_gordon_PROPN", + "británico_ADJ_theresa_PROPN", + "británico_ADJ_tony_PROPN", + "británico_ADJ_tornado_NOUN", + "británico_NOUN_andy_PROPN", + "británico_NOUN_lewis_PROPN", + "británico_NOUN_procedente_ADJ", + "broche_NOUN_final_ADJ", + "brokeback_PROPN_mountain_PROPN", + "broma_NOUN_pesado_ADJ", + "brominated_PROPN_flamar_VERB", + "brookings_PROPN_institution_PROPN", + "brote_NOUN_epidémico_ADJ", + "brote_NOUN_verde_ADJ", + "bruce_PROPN_springsteen_PROPN", + "bruce_PROPN_willis_PROPN", + "brunei_NOUN_darussalam_ADJ", + "brunei_PROPN_darussalam_ADJ", + "brunei_PROPN_darussalam_PROPN", + "bruno_PROPN_rodríguez_PROPN", + "bruno_PROPN_simma_PROPN", + "bruselas_PROPN_bélgica_PROPN", + "brutal_ADJ_agresión_NOUN", + "brutal_ADJ_asesinato_NOUN", + "brutal_ADJ_paliza_NOUN", + "brutal_ADJ_represión_NOUN", + "brutalidad_NOUN_policial_ADJ", + "bruto_ADJ_inb_PROPN", + "bruto_NOUN_per_ADP", + "bruto_NOUN_procedente_ADJ", + "bruto_PROPN_pib_PROPN", + "bruto_PROPN_pnb_PROPN", + "bryan_PROPN_ruiz_PROPN", + "bs_PROPN_as_PROPN", + "bs_PROPN_mil_NUM", + "bs_PROPN_s_PROPN", + "budapest_PROPN_hungría_PROPN", + "buen_ADJ_augurio_NOUN", + "buen_ADJ_fe_NOUN", + "buen_ADJ_fin_PROPN", + "buen_ADJ_fé_NOUN", + "buen_ADJ_gobernanza_NOUN", + "buen_ADJ_hacer_NOUN", + "buen_ADJ_humor_NOUN", + "buen_ADJ_modal_NOUN", + "buen_ADJ_nueva_NOUN", + "buen_ADJ_oficio_NOUN", + "buen_ADJ_pinta_NOUN", + "buen_ADJ_predisposición_NOUN", + "buen_ADJ_presagio_NOUN", + "buen_ADJ_recaudo_NOUN", + "buen_ADJ_rollo_NOUN", + "buen_ADJ_trecho_NOUN", + "buen_ADJ_vecindad_NOUN", + "buen_NOUN_grado_NOUN", + "buen_NOUN_recaudo_NOUN", + "buen_NOUN_seguro_NOUN", + "buena_ADJ_costumbre_NOUN", + "buena_ADJ_cualidad_NOUN", + "buena_ADJ_intención_NOUN", + "buena_ADJ_noticia_NOUN", + "buena_ADJ_práctica_NOUN", + "buena_ADJ_sensación_NOUN", + "buena_NOUN_fe_NOUN", + "buena_PROPN_esperanza_PROPN", + "buena_PROPN_vista_PROPN", + "buenas_PROPN_noche_NOUN", + "buenas_PROPN_prácticas_PROPN", + "buenos_PROPN_aires_PROPN", + "buenos_PROPN_ayres_PROPN", + "buenos_PROPN_días_NOUN", + "buenos_PROPN_días_PROPN", + "bujumbura_NOUN_rural_ADJ", + "bujumbura_PROPN_rural_ADJ", + "bulgaria_PROPN_burkina_PROPN", + "bulgaria_PROPN_camerún_PROPN", + "bulgaria_PROPN_canadá_PROPN", + "bulgaria_PROPN_chipre_PROPN", + "bulgaria_PROPN_croacia_PROPN", + "bulgaria_PROPN_eslovaquia_PROPN", + "bulgaria_PROPN_rumania_PROPN", + "buque_NOUN_cisterno_ADJ", + "buque_NOUN_insignia_NOUN", + "buque_NOUN_mercant_ADJ", + "buque_NOUN_pesquero_ADJ", + "buque_NOUN_tanque_NOUN", + "burbuja_NOUN_especulativo_ADJ", + "burbuja_NOUN_inmobiliario_ADJ", + "bureau_PROPN_of_PROPN", + "bureau_PROPN_veritas_PROPN", + "burger_PROPN_king_PROPN", + "burgos_PROPN_digital_PROPN", + "burkina_PROPN_faso_NOUN", + "burkina_PROPN_faso_PROPN", + "burkinar_VERB_faso_PROPN", + "burkín_ADJ_faso_PROPN", + "burman_PROPN_estados_PROPN", + "burundi_NOUN_camboya_ADJ", + "burundi_NOUN_camboya_PROPN", + "burundi_NOUN_camerún_VERB", + "burundi_PROPN_camboya_PROPN", + "burundi_PROPN_onub_NOUN", + "buró_PROPN_federal_PROPN", + "buró_PROPN_político_PROPN", + "buscar_VERB_desesperadamente_ADV", + "buscar_VERB_refugio_NOUN", + "but_PROPN_the_PROPN", + "butagira_VERB_butagira_VERB", + "butagira_VERB_uganda_PROPN", + "by_ADP_the_DET", + "by_ADP_the_PROPN", + "by_PROPN_the_PROPN", + "by_PROPN_uncc_NOUN", + "básica_PROPN_universal_PROPN", + "básico_ADJ_hri_NOUN", + "básico_ADJ_insatisfecho_ADJ", + "béisbol_NOUN_profesional_ADJ", + "bélgica_PROPN_belice_PROPN", + "bélgica_PROPN_benin_PROPN", + "bélgica_PROPN_bolivia_PROPN", + "bélgica_PROPN_bosnio_ADJ", + "bélgica_PROPN_bulgaria_PROPN", + "bélgica_PROPN_burkina_PROPN", + "bélgica_PROPN_dinamarca_PROPN", + "bíceps_NOUN_femoral_ADJ", + "c_SYM_cuota_NOUN", + "cabal_ADJ_cumplimiento_NOUN", + "caballero_NOUN_andante_ADJ", + "caballero_PROPN_bonald_PROPN", + "caballeros_PROPN_templarios_PROPN", + "cabecera_NOUN_departamental_ADJ", + "cabecera_NOUN_municipal_ADJ", + "cabello_NOUN_blanco_ADJ", + "cabello_NOUN_castaño_ADJ", + "cabello_NOUN_corto_ADJ", + "cabello_NOUN_negro_ADJ", + "cabello_NOUN_rubio_ADJ", + "caber_AUX_esperar_VERB", + "caber_AUX_preguntar_VERB", + "caber_VERB_citar_VERB", + "caber_VERB_destacar_VERB", + "caber_VERB_duda_NOUN", + "caber_VERB_inferir_VERB", + "caber_VERB_mencionar_VERB", + "caber_VERB_señalar_VERB", + "cabeza_NOUN_descubierto_ADJ", + "cabeza_NOUN_inclinado_ADJ", + "cabezas_NOUN_rapadas_NOUN", + "cabina_NOUN_telefónico_ADJ", + "cable_NOUN_diplomático_ADJ", + "cable_NOUN_eléctrico_ADJ", + "cable_NOUN_submarino_ADJ", + "cabo_NOUN_verde_ADJ", + "cabo_PROPN_cañaveral_PROPN", + "cabo_PROPN_san_PROPN", + "cabo_PROPN_sudáfrica_PROPN", + "cabo_PROPN_verde_PROPN", + "cac_PROPN_cosp_PROPN", + "cachemira_NOUN_ocupado_ADJ", + "cad_PROPN_ocde_PROPN", + "cada_DET_vez_NOUN", + "cada_NOUN_vez_NOUN", + "cada_NUM_cien_NUM", + "cada_NUM_cinco_NUM", + "cada_NUM_cuatro_NUM", + "cada_NUM_diez_NUM", + "cada_NUM_habitante_NOUN", + "cada_NUM_nacido_ADJ", + "cadel_PROPN_evans_PROPN", + "cadena_NOUN_abc_PROPN", + "cadena_NOUN_alimentario_ADJ", + "cadena_NOUN_alimenticio_ADJ", + "cadena_NOUN_cbs_PROPN", + "cadena_NOUN_cnn_PROPN", + "cadena_NOUN_fox_PROPN", + "cadena_NOUN_hotelero_ADJ", + "cadena_NOUN_minorista_ADJ", + "cadena_NOUN_montañoso_ADJ", + "cadena_NOUN_nbc_PROPN", + "cadena_NOUN_perpetua_NOUN", + "cadena_NOUN_perpetuo_ADJ", + "cadena_NOUN_ser_PROPN", + "cadena_NOUN_televisivo_ADJ", + "cadena_PROPN_cope_PROPN", + "cadena_PROPN_ser_PROPN", + "caer_VERB_abatido_ADJ", + "caer_VERB_derrotado_ADJ", + "caer_VERB_desplomado_ADJ", + "caer_VERB_eliminado_ADJ", + "caer_VERB_rendido_ADJ", + "caetano_PROPN_veloso_PROPN", + "café_PROPN_tacvba_PROPN", + "cai_PROPN_zaragoza_PROPN", + "cairo_PROPN_egipto_PROPN", + "caixa_PROPN_catalunya_PROPN", + "caixa_PROPN_galicia_PROPN", + "caja_NOUN_chico_ADJ", + "caja_NOUN_común_ADJ", + "caja_NOUN_costarricense_ADJ", + "caja_NOUN_negro_ADJ", + "caja_NOUN_registradoro_ADJ", + "caja_PROPN_común_PROPN", + "caja_PROPN_duero_PROPN", + "caja_PROPN_laboral_PROPN", + "caja_PROPN_madrid_PROPN", + "caja_PROPN_mágica_PROPN", + "caja_PROPN_navarra_PROPN", + "caja_PROPN_rural_PROPN", + "cajero_NOUN_automático_ADJ", + "calar_VERB_hondo_ADJ", + "calderón_PROPN_hinojosa_PROPN", + "calendario_NOUN_bienal_ADJ", + "calendario_NOUN_indicativo_ADJ", + "calentamiento_NOUN_atmosférico_ADJ", + "calentamiento_NOUN_global_ADJ", + "calentar_VERB_motor_NOUN", + "caleta_PROPN_olivia_PROPN", + "calibre_NOUN_mediano_ADJ", + "calibre_NOUN_milímetro_NOUN", + "calibre_NOUN_mm_NOUN", + "calidad_PROPN_educativa_PROPN", + "calificación_NOUN_crediticio_ADJ", + "calificación_NOUN_profesional_ADJ", + "california_PROPN_sur_PROPN", + "call_NOUN_center_NOUN", + "call_PROPN_of_PROPN", + "calle_NOUN_adyacente_ADJ", + "calle_NOUN_aledaña_ADJ", + "calle_NOUN_céntrico_ADJ", + "calle_NOUN_génova_PROPN", + "calle_NOUN_mitre_PROPN", + "calle_NOUN_peatonal_ADJ", + "calle_PROPN_concepción_PROPN", + "callejón_NOUN_sin_ADP", + "calor_NOUN_sofocante_ADJ", + "caluroso_ADJ_bienvenida_NOUN", + "caluroso_ADJ_felicitación_NOUN", + "calvin_PROPN_klein_PROPN", + "calzado_NOUN_deportivo_ADJ", + "cambiar_VERB_drásticamente_ADV", + "cambiar_VERB_radicalmente_ADV", + "cambio_NOUN_brusco_ADJ", + "cambio_NOUN_climático_ADJ", + "cambio_NOUN_climático_PROPN", + "cambio_NOUN_generacional_ADJ", + "cambio_NOUN_introducido_ADJ", + "cambio_NOUN_radical_ADJ", + "cambio_PROPN_climático_PROPN", + "cambio_PROPN_democrático_PROPN", + "cambio_PROPN_radical_PROPN", + "camboya_PROPN_apronuc_PROPN", + "camboya_PROPN_camerún_VERB", + "camboya_PROPN_canadá_PROPN", + "camboya_PROPN_unamic_PROPN", + "camboya_PROPN_unmlt_PROPN", + "cambridge_PROPN_analytica_PROPN", + "cambridge_PROPN_reino_PROPN", + "cambridge_PROPN_university_PROPN", + "camerún_NOUN_chino_ADJ", + "camerún_PROPN_canadá_PROPN", + "camerún_PROPN_chile_PROPN", + "camerún_VERB_cabo_NOUN", + "camerún_VERB_canadá_PROPN", + "camerún_VERB_chad_PROPN", + "camerún_VERB_chile_PROPN", + "camerún_VERB_chino_ADJ", + "camilo_PROPN_cienfuegos_PROPN", + "camilo_PROPN_josé_PROPN", + "caminar_VERB_lentamente_ADV", + "caminata_NOUN_espacial_ADJ", + "camino_NOUN_recorrido_ADJ", + "camino_NOUN_trazado_ADJ", + "camino_NOUN_vecinal_ADJ", + "camino_PROPN_real_PROPN", + "camioneta_NOUN_chevrolet_PROPN", + "camioneta_NOUN_ford_PROPN", + "camioneta_NOUN_mitsubishi_PROPN", + "camioneta_NOUN_nissan_PROPN", + "camioneta_NOUN_toyota_PROPN", + "camisa_NOUN_azul_ADJ", + "camisa_NOUN_blanco_ADJ", + "camisa_NOUN_rojo_ADJ", + "camiseta_NOUN_amarillo_ADJ", + "camiseta_NOUN_azul_ADJ", + "camiseta_NOUN_blanco_ADJ", + "camiseta_NOUN_rojo_ADJ", + "camiseta_NOUN_verde_ADJ", + "camión_NOUN_cargado_ADJ", + "camión_NOUN_cisterna_NOUN", + "camión_NOUN_cisterno_ADJ", + "camión_NOUN_recolector_ADJ", + "camp_PROPN_david_PROPN", + "camp_PROPN_nou_NUM", + "campaña_NOUN_electoral_ADJ", + "campaña_NOUN_mediático_ADJ", + "campaña_NOUN_promocional_ADJ", + "campaña_NOUN_proselitista_ADJ", + "campaña_NOUN_publicitario_ADJ", + "campaña_PROPN_nacional_PROPN", + "campeona_NOUN_olímpico_ADJ", + "campeonato_PROPN_argentino_PROPN", + "campeonato_PROPN_mundial_PROPN", + "campeonato_PROPN_nacional_PROPN", + "campeonato_PROPN_panamericano_PROPN", + "campeonato_PROPN_sudamericano_PROPN", + "campeón_NOUN_defensor_ADJ", + "campeón_NOUN_olímpico_ADJ", + "campo_NOUN_electromagnético_ADJ", + "campo_NOUN_magnético_ADJ", + "campo_NOUN_minado_ADJ", + "campo_NOUN_petrolífero_ADJ", + "campos_PROPN_elíseos_PROPN", + "campus_NOUN_universitario_ADJ", + "campus_PROPN_party_PROPN", + "can_PROPN_be_PROPN", + "canadá_PROPN_british_PROPN", + "canadá_PROPN_chad_PROPN", + "canadá_PROPN_chile_PROPN", + "canadá_PROPN_chipre_PROPN", + "canadá_PROPN_croacia_PROPN", + "canadá_PROPN_dinamarca_PROPN", + "canadá_PROPN_ontario_ADJ", + "canal_NOUN_televisivo_ADJ", + "canal_PROPN_once_NUM", + "canal_PROPN_plus_PROPN", + "canal_PROPN_sur_PROPN", + "canasta_NOUN_alimentario_ADJ", + "canasta_NOUN_básico_ADJ", + "canasta_NOUN_familiar_ADJ", + "canasta_PROPN_básica_PROPN", + "cancelar_VERB_vuelo_NOUN", + "cancha_NOUN_sintético_ADJ", + "canciller_NOUN_alemán_ADJ", + "canciller_NOUN_angela_PROPN", + "canciller_NOUN_chileno_ADJ", + "canciller_NOUN_cubano_ADJ", + "canciller_NOUN_jorge_PROPN", + "canciller_NOUN_merkel_PROPN", + "canciller_NOUN_ruso_ADJ", + "canciller_NOUN_venezolano_ADJ", + "canciller_PROPN_merkel_PROPN", + "canción_NOUN_favorito_ADJ", + "canción_NOUN_inédito_ADJ", + "cancún_PROPN_méxico_PROPN", + "cancún_PROPN_quintana_PROPN", + "candidata_NOUN_demócrata_ADJ", + "candidata_NOUN_presidencial_ADJ", + "candidata_NOUN_socialista_ADJ", + "candidato_NOUN_albania_PROPN", + "candidato_NOUN_demócrata_ADJ", + "candidato_NOUN_oficialista_ADJ", + "candidato_NOUN_panista_ADJ", + "candidato_NOUN_potencial_ADJ", + "candidato_NOUN_preseleccionado_ADJ", + "candidato_NOUN_presidencial_ADJ", + "candidato_NOUN_republicano_ADJ", + "candidatura_NOUN_confirmación_NOUN", + "candidatura_NOUN_presidencial_ADJ", + "canon_NOUN_digital_ADJ", + "cantante_NOUN_canadiense_ADJ", + "cantante_NOUN_colombiano_ADJ", + "cantante_NOUN_mexicano_ADJ", + "cantante_NOUN_puertorriqueño_ADJ", + "cantar_VERB_bailar_VERB", + "cantidad_NOUN_adeudado_ADJ", + "cantidad_NOUN_atribuido_ADJ", + "cantidad_NOUN_ingente_ADJ", + "cantidad_NOUN_reclamado_ADJ", + "capacidad_NOUN_productivo_ADJ", + "capacitación_NOUN_impartido_ADJ", + "capilla_NOUN_ardiente_ADJ", + "capilla_PROPN_sixtina_PROPN", + "capital_ADJ_extranjero_NOUN", + "capital_ADJ_riesgo_NOUN", + "capital_NOUN_aragonés_ADJ", + "capital_NOUN_circulante_ADJ", + "capital_NOUN_cordobés_ADJ", + "capital_NOUN_entrerrián_ADJ", + "capital_NOUN_especulativo_ADJ", + "capital_NOUN_gafi_PROPN", + "capital_NOUN_haitián_ADJ", + "capital_NOUN_hispalense_ADJ", + "capital_NOUN_invertido_ADJ", + "capital_NOUN_malagueño_ADJ", + "capital_NOUN_michoacán_ADJ", + "capital_NOUN_navarro_ADJ", + "capital_NOUN_vizcaíno_ADJ", + "capital_PROPN_federal_PROPN", + "capitalismo_NOUN_salvaje_ADJ", + "capitalización_NOUN_bursátil_ADJ", + "capitalización_NOUN_fnudc_NOUN", + "capitan_PROPN_general_PROPN", + "capitán_NOUN_butler_PROPN", + "capitán_NOUN_nemo_PROPN", + "capitán_PROPN_américa_PROPN", + "capitán_PROPN_general_PROPN", + "captura_NOUN_accesorio_ADJ", + "captura_NOUN_accidental_ADJ", + "captura_NOUN_incidental_ADJ", + "capturar_VERB_rebote_NOUN", + "capítulo_NOUN_i_CCONJ", + "capítulo_NOUN_ii_ADJ", + "capítulo_NOUN_ii_PROPN", + "capítulo_NOUN_iii_ADJ", + "capítulo_NOUN_iii_PROPN", + "capítulo_NOUN_iv_ADJ", + "capítulo_NOUN_iv_NUM", + "capítulo_NOUN_iv_PROPN", + "capítulo_NOUN_ix_PROPN", + "capítulo_NOUN_página_PROPN", + "capítulo_NOUN_v_CCONJ", + "capítulo_NOUN_v_NOUN", + "capítulo_NOUN_v_NUM", + "capítulo_NOUN_v_PROPN", + "capítulo_NOUN_v_SYM", + "capítulo_NOUN_vi_NUM", + "capítulo_NOUN_vii_ADJ", + "capítulo_NOUN_vii_NUM", + "capítulo_NOUN_vii_PROPN", + "capítulo_NOUN_viii_NUM", + "capítulo_NOUN_viii_PROPN", + "capítulo_NOUN_x_NOUN", + "capítulo_NOUN_x_PROPN", + "capítulo_NOUN_xi_NOUN", + "capítulo_NOUN_xi_PROPN", + "capítulo_NOUN_xii_PROPN", + "capítulo_NOUN_xiii_PROPN", + "capítulo_PROPN_vii_PROPN", + "cara_NOUN_al_DET", + "cara_NOUN_descubierto_ADJ", + "caracas_PROPN_venezuela_PROPN", + "caracol_PROPN_radio_PROPN", + "característica_NOUN_demográfico_ADJ", + "característica_NOUN_distintiva_ADJ", + "característica_NOUN_distintivo_ADJ", + "característica_NOUN_singular_ADJ", + "carbono_NOUN_almacenado_ADJ", + "carbono_NOUN_equivalente_ADJ", + "carbón_NOUN_vegetal_ADJ", + "cardenal_NOUN_jorge_PROPN", + "care_PROPN_international_PROPN", + "carecer_VERB_manifiestamente_ADV", + "carga_NOUN_burocrático_ADJ", + "carga_NOUN_desproporcionado_ADJ", + "carga_NOUN_excesivo_ADJ", + "carga_NOUN_explosivo_ADJ", + "carga_NOUN_horario_ADJ", + "carga_NOUN_impositivo_ADJ", + "carga_NOUN_pesado_ADJ", + "carga_NOUN_tributario_ADJ", + "cargador_NOUN_documentario_ADJ", + "cargo_NOUN_diferido_ADJ", + "cargo_NOUN_electivo_ADJ", + "caribe_PROPN_caricom_NOUN", + "caribe_PROPN_caricom_PROPN", + "caribe_PROPN_cepal_NOUN", + "caribe_PROPN_cepal_PROPN", + "caribe_PROPN_grulac_PROPN", + "caribe_PROPN_oriental_PROPN", + "caribe_PROPN_tratado_ADJ", + "carl_PROPN_bildt_PROPN", + "carla_PROPN_bruni_PROPN", + "carles_PROPN_puigdemont_PROPN", + "carles_PROPN_puyol_PROPN", + "carlo_PROPN_ancelotti_PROPN", + "carlos_PROPN_alberto_PROPN", + "carlos_PROPN_alvarado_PROPN", + "carlos_PROPN_arroyo_PROPN", + "carlos_PROPN_beltrán_PROPN", + "carlos_PROPN_bianchi_PROPN", + "carlos_PROPN_bilardo_PROPN", + "carlos_PROPN_casares_PROPN", + "carlos_PROPN_delfino_PROPN", + "carlos_PROPN_delgado_PROPN", + "carlos_PROPN_fabra_PROPN", + "carlos_PROPN_floriano_PROPN", + "carlos_PROPN_fuentes_PROPN", + "carlos_PROPN_gardel_PROPN", + "carlos_PROPN_gaviria_PROPN", + "carlos_PROPN_haya_PROPN", + "carlos_PROPN_ischia_PROPN", + "carlos_PROPN_kunkel_PROPN", + "carlos_PROPN_lage_PROPN", + "carlos_PROPN_linares_PROPN", + "carlos_PROPN_lozano_PROPN", + "carlos_PROPN_marx_PROPN", + "carlos_PROPN_menem_PROPN", + "carlos_PROPN_mesa_PROPN", + "carlos_PROPN_monsiváis_PROPN", + "carlos_PROPN_moyá_PROPN", + "carlos_PROPN_navarrete_PROPN", + "carlos_PROPN_paz_PROPN", + "carlos_PROPN_pellegrini_PROPN", + "carlos_PROPN_restrepo_PROPN", + "carlos_PROPN_reutemann_PROPN", + "carlos_PROPN_romero_PROPN", + "carlos_PROPN_ruiz_PROPN", + "carlos_PROPN_sainz_PROPN", + "carlos_PROPN_salcido_PROPN", + "carlos_PROPN_salinas_PROPN", + "carlos_PROPN_santana_PROPN", + "carlos_PROPN_sastre_PROPN", + "carlos_PROPN_saura_PROPN", + "carlos_PROPN_slim_PROPN", + "carlos_PROPN_stornelli_PROPN", + "carlos_PROPN_tevez_PROPN", + "carlos_PROPN_tomada_PROPN", + "carlos_PROPN_tévez_PROPN", + "carlos_PROPN_v_PROPN", + "carlos_PROPN_vela_PROPN", + "carlos_PROPN_villegas_PROPN", + "carlos_PROPN_vives_PROPN", + "carlos_PROPN_zambrano_PROPN", + "carlos_PROPN_zannini_PROPN", + "carme_PROPN_chacón_PROPN", + "carmelo_PROPN_anthony_PROPN", + "carmen_PROPN_aristegui_PROPN", + "carmen_PROPN_barbieri_PROPN", + "carmen_PROPN_calvo_PROPN", + "carmen_PROPN_martínez_PROPN", + "carne_NOUN_asado_ADJ", + "carne_NOUN_bovino_ADJ", + "carne_NOUN_fresco_ADJ", + "carne_NOUN_picado_ADJ", + "carne_NOUN_rojo_ADJ", + "carne_NOUN_vacuno_ADJ", + "carnegie_PROPN_hall_PROPN", + "carol_PROPN_bellamy_PROPN", + "carolina_PROPN_herrera_PROPN", + "carolina_PROPN_stanley_PROPN", + "carolyn_NOUN_mcaskie_PROPN", + "carpeta_NOUN_asfáltico_ADJ", + "carrera_NOUN_anotado_ADJ", + "carrera_NOUN_armamentista_ADJ", + "carrera_NOUN_armamentístico_ADJ", + "carrera_NOUN_empujada_ADJ", + "carrera_NOUN_futbolístico_ADJ", + "carrera_NOUN_remolcado_ADJ", + "carretera_NOUN_ferrocarril_NOUN", + "carretera_NOUN_panamericana_PROPN", + "carril_NOUN_bici_NOUN", + "carril_NOUN_contrario_ADJ", + "carril_NOUN_derecho_ADJ", + "carril_NOUN_izquierdo_ADJ", + "carro_NOUN_alegórico_ADJ", + "carro_NOUN_bomba_NOUN", + "carta_NOUN_credencial_ADJ", + "carta_NOUN_fechado_ADJ", + "carta_NOUN_idéntico_ADJ", + "carta_NOUN_magno_ADJ", + "carta_NOUN_náutico_ADJ", + "carta_PROPN_africana_PROPN", + "carta_PROPN_democrática_PROPN", + "carta_PROPN_magna_PROPN", + "carta_PROPN_orgánica_PROPN", + "carta_PROPN_social_PROPN", + "cartagena_PROPN_colombia_PROPN", + "cartel_NOUN_publicitario_ADJ", + "cartera_NOUN_ministerial_ADJ", + "cartera_NOUN_vencido_ADJ", + "cartucho_NOUN_útil_ADJ", + "cartulina_NOUN_amarillo_ADJ", + "caruso_PROPN_lombardi_PROPN", + "carácter_NOUN_confidencial_ADJ", + "carácter_NOUN_consultivo_ADJ", + "carácter_NOUN_excepcional_ADJ", + "carácter_NOUN_experimental_ADJ", + "carácter_NOUN_extraterritorial_ADJ", + "carácter_NOUN_innovador_NOUN", + "carácter_NOUN_intersectorial_ADJ", + "carácter_NOUN_multidimensional_ADJ", + "carácter_NOUN_multiétnico_ADJ", + "carácter_NOUN_prioritario_ADJ", + "carácter_NOUN_punitivo_ADJ", + "carácter_NOUN_puramente_ADV", + "carácter_NOUN_retroactivo_ADJ", + "carácter_NOUN_temporal_ADJ", + "carácter_NOUN_urgente_ADJ", + "carácter_NOUN_vinculante_ADJ", + "casa_NOUN_matriz_ADJ", + "casa_NOUN_paterno_ADJ", + "casa_NOUN_rodante_ADJ", + "casa_NOUN_solariego_ADJ", + "casa_PROPN_amarilla_PROPN", + "casa_PROPN_blanca_PROPN", + "casa_PROPN_consistorial_PROPN", + "casa_PROPN_gris_PROPN", + "casa_PROPN_presidencial_PROPN", + "casa_PROPN_real_PROPN", + "casa_PROPN_rosada_PROPN", + "casación_PROPN_penal_PROPN", + "casas_PROPN_grandes_PROPN", + "casco_NOUN_antiguo_ADJ", + "casco_NOUN_azul_ADJ", + "casco_NOUN_blanco_ADJ", + "casco_NOUN_histórico_ADJ", + "casco_NOUN_urbano_ADJ", + "casco_PROPN_antiguo_PROPN", + "casco_PROPN_histórico_PROPN", + "casco_PROPN_viejo_PROPN", + "case_PROPN_concerning_PROPN", + "case_PROPN_of_PROPN", + "case_PROPN_study_PROPN", + "casey_PROPN_stoner_PROPN", + "casi_ADV_imperceptible_ADJ", + "casi_ADV_imposible_ADJ", + "casi_ADV_inexistente_ADJ", + "casino_PROPN_royale_PROPN", + "caso_NOUN_afirmativo_ADJ", + "caso_NOUN_cim_PROPN", + "caso_NOUN_clout_PROPN", + "caso_NOUN_gürtel_PROPN", + "caso_NOUN_lma_NOUN", + "caso_NOUN_lma_PROPN", + "caso_NOUN_malaya_PROPN", + "caso_NOUN_nóos_PROPN", + "caso_NOUN_omiso_ADJ", + "caso_PROPN_clout_ADJ", + "caso_PROPN_clout_PROPN", + "casquillo_NOUN_percutido_ADJ", + "castigar_VERB_severamente_ADV", + "castigo_NOUN_colectivo_ADJ", + "castigo_NOUN_corporal_ADJ", + "castigo_NOUN_cruel_ADJ", + "castigo_NOUN_ejemplar_ADJ", + "cat_NOUN_c_NOUN", + "cat_PROPN_c_NOUN", + "cat_PROPN_c_PROPN", + "catalina_PROPN_ivanovna_PROPN", + "catalunya_PROPN_ràdio_PROPN", + "catedral_PROPN_metropolitana_PROPN", + "categoría_NOUN_d_NOUN", + "categoría_NOUN_sub_NOUN", + "categoría_NOUN_superior_ADJ", + "catherine_PROPN_ashton_PROPN", + "catástrofe_NOUN_ecológico_ADJ", + "catástrofe_NOUN_medioambiental_ADJ", + "catástrofe_NOUN_natural_ADJ", + "católico_ADJ_romano_ADJ", + "causa_NOUN_amia_PROPN", + "causa_NOUN_subyacente_ADJ", + "causar_VERB_asombro_NOUN", + "causar_VERB_conmoción_NOUN", + "causar_VERB_daño_NOUN", + "causar_VERB_destrozo_NOUN", + "causar_VERB_estrago_NOUN", + "causar_VERB_furor_NOUN", + "causar_VERB_indignación_NOUN", + "causar_VERB_molestia_NOUN", + "causar_VERB_pánico_NOUN", + "causar_VERB_revuelo_NOUN", + "causar_VERB_sufrimiento_NOUN", + "cayo_PROPN_lara_PROPN", + "caza_NOUN_furtivo_ADJ", + "cazador_NOUN_furtivo_ADJ", + "caída_NOUN_interanual_ADJ", + "cañada_PROPN_real_PROPN", + "cañón_NOUN_antiaéreo_ADJ", + "cb_PROPN_granada_PROPN", + "cc_PROPN_oo_PROPN", + "ccpr_NOUN_c_NOUN", + "ccpr_NOUN_párr_INTJ", + "ccpr_PROPN_c_NOUN", + "ccpr_PROPN_c_PROPN", + "ccpr_PROPN_párr_INTJ", + "ccpr_PROPN_párr_NOUN", + "ccw_PROPN_gge_PROPN", + "ce_PROPN_qui_PROPN", + "cecelia_PROPN_coleman_PROPN", + "cecilia_PROPN_medina_PROPN", + "cedaw_NOUN_c_NOUN", + "cedaw_PROPN_c_NOUN", + "cedaw_PROPN_c_PROPN", + "celda_NOUN_individual_ADJ", + "celebrar_VERB_consulta_NOUN", + "celia_PROPN_cruz_PROPN", + "celso_PROPN_amorim_PROPN", + "cementerio_NOUN_municipal_ADJ", + "cementerio_PROPN_central_PROPN", + "cementerio_PROPN_general_PROPN", + "cementerio_PROPN_municipal_PROPN", + "ceniza_NOUN_volcánica_ADJ", + "ceniza_NOUN_volcánico_ADJ", + "censo_NOUN_electoral_ADJ", + "censos_PROPN_indec_PROPN", + "center_PROPN_for_ADP", + "center_PROPN_for_PROPN", + "central_ADJ_bus_PROPN", + "central_ADJ_ceeac_NOUN", + "central_ADJ_cemac_PROPN", + "central_NOUN_atómico_ADJ", + "central_NOUN_eléctrico_ADJ", + "central_NOUN_hidroeléctrica_ADJ", + "central_NOUN_hidroeléctrico_ADJ", + "central_NOUN_nuclear_ADJ", + "central_NOUN_obrero_ADJ", + "central_NOUN_sindical_ADJ", + "central_NOUN_telefónico_ADJ", + "central_NOUN_térmico_ADJ", + "central_PROPN_park_PROPN", + "central_PROPN_unitaria_PROPN", + "centre_PROPN_for_ADP", + "centre_PROPN_for_PROPN", + "centro_NOUN_asistencial_ADJ", + "centro_NOUN_correccional_ADJ", + "centro_NOUN_hospitalario_ADJ", + "centro_NOUN_neurálgico_ADJ", + "centro_NOUN_penitenciario_ADJ", + "centro_PROPN_carter_PROPN", + "centro_PROPN_comercial_PROPN", + "centro_PROPN_comunitario_PROPN", + "centro_PROPN_común_PROPN", + "centro_PROPN_cultural_PROPN", + "centro_PROPN_cívico_PROPN", + "centro_PROPN_democrático_PROPN", + "centro_PROPN_deportivo_PROPN", + "centro_PROPN_educativo_PROPN", + "centro_PROPN_espacial_PROPN", + "centro_PROPN_histórico_PROPN", + "centro_PROPN_integrador_PROPN", + "centro_PROPN_integral_PROPN", + "centro_PROPN_médico_PROPN", + "centro_PROPN_penitenciario_PROPN", + "centro_PROPN_regional_PROPN", + "centro_PROPN_universitario_PROPN", + "centroamérica_PROPN_onuca_PROPN", + "century_PROPN_fox_PROPN", + "centímetro_NOUN_cúbico_ADJ", + "cepo_NOUN_cambiario_ADJ", + "cerca_PROPN_titel_PROPN", + "cercano_ADJ_oriente_NOUN", + "cercano_ADJ_oriente_PROPN", + "cercano_PROPN_oriente_PROPN", + "cerd_NOUN_c_NOUN", + "cerd_PROPN_c_NOUN", + "cerd_PROPN_c_PROPN", + "ceremonia_NOUN_conmemorativo_ADJ", + "ceremonia_NOUN_inaugural_ADJ", + "ceremonia_NOUN_religioso_ADJ", + "cero_NUM_tolerancia_NOUN", + "cero_NUM_tonelada_NOUN", + "cerrar_VERB_fila_NOUN", + "cerro_PROPN_largo_PROPN", + "cerro_PROPN_porteño_PROPN", + "certamen_NOUN_continental_ADJ", + "certeza_NOUN_absoluto_ADJ", + "certidumbre_NOUN_jurídico_ADJ", + "certificado_NOUN_emitido_ADJ", + "certificado_NOUN_expedido_ADJ", + "certificado_NOUN_médico_ADJ", + "cervantes_PROPN_saavedra_PROPN", + "cerveza_NOUN_artesanal_ADJ", + "cesación_NOUN_inmediato_ADJ", + "cesar_VERB_inmediatamente_ADV", + "cesc_PROPN_fábregas_PROPN", + "cese_NOUN_definitivo_ADJ", + "cese_NOUN_inmediato_ADJ", + "cesión_NOUN_puro_ADJ", + "ceño_NOUN_fruncido_ADJ", + "cfp_PROPN_provisional_ADJ", + "cgt_PROPN_hugo_PROPN", + "chad_PROPN_chile_PROPN", + "chad_PROPN_minurcat_PROPN", + "chaleco_NOUN_amarillo_ADJ", + "chaleco_NOUN_antibala_ADJ", + "chaleco_NOUN_antibalas_ADJ", + "chaleco_NOUN_salvavidas_NOUN", + "champions_PROPN_league_PROPN", + "change_PROPN_and_PROPN", + "chapo_PROPN_guzmán_PROPN", + "charla_NOUN_informativo_ADJ", + "charles_PROPN_darwin_PROPN", + "charles_PROPN_taylor_PROPN", + "charlie_PROPN_sheen_PROPN", + "charlize_PROPN_theron_PROPN", + "charlotte_PROPN_abaka_PROPN", + "charly_PROPN_garcía_PROPN", + "chavela_PROPN_vargas_PROPN", + "che_PROPN_guevara_PROPN", + "checo_ADJ_república_PROPN", + "checo_ADJ_rumania_PROPN", + "checo_NOUN_tomas_PROPN", + "chelín_NOUN_austríaco_ADJ", + "chen_PROPN_guangcheng_PROPN", + "chen_PROPN_shiqiu_PROPN", + "chen_VERB_shiqiu_PROPN", + "cheque_NOUN_británico_ADJ", + "chequeo_NOUN_médico_ADJ", + "cherif_ADJ_bassiouni_NOUN", + "chevrolet_PROPN_corsa_PROPN", + "chiang_PROPN_mai_PROPN", + "chicago_PROPN_bulls_PROPN", + "chicago_PROPN_fire_PROPN", + "chicago_PROPN_illinois_PROPN", + "chicago_PROPN_tribune_PROPN", + "chicharito_PROPN_hernández_PROPN", + "chihuahua_PROPN_coahuila_PROPN", + "child_PROPN_pornography_PROPN", + "children_PROPN_and_PROPN", + "children_PROPN_in_ADP", + "chile_PROPN_chino_ADJ", + "chile_PROPN_chipre_PROPN", + "chile_PROPN_colombia_PROPN", + "chile_PROPN_michelle_PROPN", + "chile_PROPN_vamos_PROPN", + "chileno_ADJ_michelle_PROPN", + "chileno_ADJ_sebastián_PROPN", + "chileno_NOUN_fernando_PROPN", + "china_NOUN_continental_ADJ", + "china_NOUN_meridional_ADJ", + "china_NOUN_national_ADJ", + "china_PROPN_daily_PROPN", + "china_PROPN_india_PROPN", + "china_PROPN_meridional_PROPN", + "china_PROPN_taiwán_PROPN", + "chino_ADJ_chipre_PROPN", + "chino_ADJ_colombia_PROPN", + "chino_ADJ_comoras_PROPN", + "chino_ADJ_hu_PROPN", + "chino_ADJ_metallurgical_ADJ", + "chino_ADJ_state_PROPN", + "chino_ADJ_xi_PROPN", + "chipre_PROPN_colombia_PROPN", + "chipre_PROPN_costa_NOUN", + "chipre_PROPN_croacia_PROPN", + "chipre_PROPN_dinamarca_PROPN", + "chipre_PROPN_eslovaquia_PROPN", + "chipre_PROPN_malta_NOUN", + "chipre_PROPN_septentrional_ADJ", + "chipre_PROPN_unficyp_NOUN", + "chipre_PROPN_unficyp_PROPN", + "chittagong_PROPN_hill_PROPN", + "chivas_PROPN_usa_PROPN", + "chivo_NOUN_expiatorio_ADJ", + "chocar_VERB_frontalmente_ADV", + "chocolate_NOUN_caliente_ADJ", + "choele_PROPN_choel_PROPN", + "choque_NOUN_frontal_ADJ", + "chowdhury_PROPN_bangladesh_PROPN", + "chris_PROPN_bosh_PROPN", + "chris_PROPN_brown_PROPN", + "chris_PROPN_froome_PROPN", + "chris_PROPN_paul_PROPN", + "christian_PROPN_bale_PROPN", + "christian_PROPN_benítez_PROPN", + "christian_PROPN_cueva_PROPN", + "christian_PROPN_dior_PROPN", + "christian_PROPN_domínguez_PROPN", + "christian_PROPN_giménez_PROPN", + "christian_PROPN_wenaweser_PROPN", + "christina_PROPN_aguilera_PROPN", + "christine_PROPN_chanet_PROPN", + "christine_PROPN_lagarde_PROPN", + "christopher_PROPN_nolan_PROPN", + "chubasco_NOUN_débil_ADJ", + "chuck_PROPN_norris_PROPN", + "churkin_PROPN_federación_PROPN", + "chávez_PROPN_jr_PROPN", + "ciclo_NOUN_bienal_ADJ", + "ciclo_NOUN_combinado_ADJ", + "ciclo_NOUN_escolar_ADJ", + "ciclo_NOUN_formativo_ADJ", + "ciclo_NOUN_hidrológico_ADJ", + "ciclo_NOUN_lectivo_ADJ", + "ciclo_NOUN_menstrual_ADJ", + "ciclo_NOUN_presupuestario_ADJ", + "ciclo_NOUN_vital_ADJ", + "ciclón_NOUN_nargis_PROPN", + "ciclón_NOUN_tropical_ADJ", + "cielo_NOUN_abierto_ADJ", + "cielo_NOUN_algo_ADV", + "cielo_NOUN_azul_ADJ", + "cielo_NOUN_cubierto_ADJ", + "cielo_NOUN_despejado_ADJ", + "cielo_NOUN_estrellado_ADJ", + "cielo_NOUN_gris_ADJ", + "cielo_NOUN_mayormente_ADV", + "cielo_NOUN_medio_ADV", + "cielo_NOUN_nocturno_ADJ", + "cielo_NOUN_nublado_ADJ", + "cielo_NOUN_nuboso_ADJ", + "cielo_NOUN_parcialmente_ADV", + "cielo_NOUN_raso_ADJ", + "cien_NUM_años_PROPN", + "cien_NUM_gramo_NOUN", + "cien_NUM_legua_NOUN", + "cien_NUM_metro_NOUN", + "cien_NUM_mil_NUM", + "ciencia_NOUN_cierta_ADJ", + "ciencia_NOUN_cierta_NOUN", + "ciencia_NOUN_ficción_NOUN", + "ciencia_NOUN_forense_ADJ", + "ciencia_PROPN_política_PROPN", + "ciencia_PROPN_tecnología_PROPN", + "ciencias_PROPN_cinematográficas_PROPN", + "ciencias_PROPN_económicas_PROPN", + "ciencias_PROPN_exactas_PROPN", + "ciencias_PROPN_forenses_PROPN", + "ciencias_PROPN_médicas_PROPN", + "ciencias_PROPN_naturales_PROPN", + "ciencias_PROPN_políticas_PROPN", + "ciencias_PROPN_sociales_PROPN", + "científico_ADJ_literario_ADJ", + "cierre_NOUN_patronal_ADJ", + "cierto_DET_plaguicida_NOUN", + "cierto_DET_reticencia_NOUN", + "cifra_NOUN_actualizada_ADJ", + "cifra_NOUN_bruto_ADJ", + "cifra_NOUN_exacto_ADJ", + "cifra_NOUN_indicativo_ADJ", + "cifra_NOUN_neto_ADJ", + "cifra_NOUN_proporcionada_ADJ", + "cifra_NOUN_récord_ADJ", + "cigarrillo_NOUN_electrónico_ADJ", + "cimiento_NOUN_sólido_ADJ", + "cinco_NUM_días_PROPN", + "cine_NOUN_mudo_ADJ", + "cine_PROPN_teatro_PROPN", + "cineasta_NOUN_mexicano_ADJ", + "cineteca_PROPN_nacional_PROPN", + "cinta_NOUN_adhesivo_ADJ", + "cinta_NOUN_asfáltico_ADJ", + "cinu_PROPN_nº_NOUN", + "circuito_NOUN_cerrado_ADJ", + "circuito_NOUN_cerrado_NOUN", + "circuito_NOUN_turístico_ADJ", + "circulación_NOUN_ilícito_ADJ", + "circulación_NOUN_sanguíneo_ADJ", + "circulación_NOUN_vehicular_ADJ", + "circulación_NOUN_vial_ADJ", + "circular_NOUN_informativo_ADJ", + "circular_VERB_libremente_ADV", + "circular_VERB_rumor_NOUN", + "circuncisión_NOUN_femenino_ADJ", + "circunscripción_NOUN_electoral_ADJ", + "circunstancia_NOUN_agravante_ADJ", + "circunstancia_NOUN_atenuant_ADJ", + "circunstancia_NOUN_atenuante_ADJ", + "circunstancia_NOUN_cambiant_ADJ", + "circunstancia_NOUN_excepcional_ADJ", + "circunstancia_NOUN_imperant_ADJ", + "circunstancia_NOUN_imprevista_ADJ", + "ciro_PROPN_gómez_PROPN", + "cirque_PROPN_du_PROPN", + "cirugía_NOUN_estético_ADJ", + "cirugía_NOUN_plástico_ADJ", + "cirujano_NOUN_plástico_ADJ", + "cisco_PROPN_systems_PROPN", + "cit_NOUN_pág_NOUN", + "cita_NOUN_mundialista_ADJ", + "cita_NOUN_olímpico_ADJ", + "citación_NOUN_judicial_ADJ", + "citar_VERB_textualmente_ADV", + "city_PROPN_bell_ADJ", + "ciudad_NOUN_balneario_ADJ", + "ciudad_NOUN_condal_ADJ", + "ciudad_NOUN_natal_ADJ", + "ciudad_NOUN_norteño_ADJ", + "ciudad_NOUN_portuario_ADJ", + "ciudad_NOUN_sureño_ADJ", + "ciudad_PROPN_autónoma_PROPN", + "ciudad_PROPN_bolívar_PROPN", + "ciudad_PROPN_condal_PROPN", + "ciudad_PROPN_deportiva_PROPN", + "ciudad_PROPN_jardín_PROPN", + "ciudad_PROPN_juárez_PROPN", + "ciudad_PROPN_lineal_PROPN", + "ciudad_PROPN_madero_PROPN", + "ciudad_PROPN_obregón_PROPN", + "ciudad_PROPN_real_PROPN", + "ciudad_PROPN_rodrigo_PROPN", + "ciudad_PROPN_universitaria_PROPN", + "ciudad_PROPN_victoria_PROPN", + "ciudad_PROPN_vieja_PROPN", + "ciudadano_NOUN_estonio_ADJ", + "ciudadano_NOUN_georgiano_ADJ", + "ciudadano_NOUN_neozelandés_ADJ", + "ciudadano_NOUN_rumano_ADJ", + "ciudadano_NOUN_rwandés_ADJ", + "ciudadanos_PROPN_albert_PROPN", + "ciudadanos_PROPN_justicia_PROPN", + "ciudadanosmálagamálaga_PROPN_metrop_PROPN", + "ciudadanía_NOUN_estonio_ADJ", + "ciutat_PROPN_vella_PROPN", + "civil_NOUN_afgano_ADJ", + "civil_NOUN_desarmado_ADJ", + "civil_NOUN_indefenso_ADJ", + "civil_NOUN_inocente_ADJ", + "civil_NOUN_israelí_ADJ", + "civil_PROPN_liberties_PROPN", + "civil_PROPN_pnc_PROPN", + "civil_PROPN_society_PROPN", + "claim_PROPN_number_PROPN", + "claimant_PROPN_name_PROPN", + "claimant_VERB_federal_PROPN", + "clamor_NOUN_popular_ADJ", + "clara_PROPN_rojas_PROPN", + "claramente_ADV_definido_ADJ", + "claramente_ADV_demostrado_ADJ", + "claro_NOUN_está_NOUN", + "clase_NOUN_dirigente_ADJ", + "clase_NOUN_dominante_ADJ", + "clase_NOUN_magistral_ADJ", + "clase_NOUN_medio_ADJ", + "clase_NOUN_obrero_ADJ", + "clase_NOUN_trabajador_ADJ", + "clase_NOUN_turista_ADJ", + "claudia_PROPN_ruiz_PROPN", + "claudia_PROPN_sheinbaum_PROPN", + "claudio_PROPN_bonadio_PROPN", + "claudio_PROPN_borghi_PROPN", + "claudio_PROPN_bravo_PROPN", + "claudio_PROPN_frollo_PROPN", + "claudio_PROPN_lozano_PROPN", + "claudio_PROPN_pizarro_PROPN", + "clemente_PROPN_rodríguez_PROPN", + "cleveland_PROPN_cavaliers_PROPN", + "click_NOUN_aquí_ADV", + "clima_NOUN_cálido_ADJ", + "clima_NOUN_favorable_ADJ", + "clima_NOUN_propicio_ADJ", + "clima_NOUN_tropical_ADJ", + "climate_PROPN_change_PROPN", + "clint_PROPN_eastwood_PROPN", + "clonación_NOUN_humano_ADJ", + "clonación_NOUN_terapéutico_ADJ", + "clout_NOUN_caso_NOUN", + "clout_PROPN_caso_NOUN", + "club_NOUN_azulgrana_ADJ", + "club_NOUN_catalán_ADJ", + "club_NOUN_inglés_ADJ", + "club_NOUN_londinense_ADJ", + "club_NOUN_merengue_ADJ", + "club_NOUN_nocturno_ADJ", + "club_NOUN_rojiblanco_ADJ", + "club_PROPN_atlético_PROPN", + "club_PROPN_deportivo_PROPN", + "club_PROPN_náutico_PROPN", + "clásico_PROPN_mundial_PROPN", + "cláusula_NOUN_abusivo_ADJ", + "cláusula_NOUN_calvo_PROPN", + "cláusula_NOUN_compromisorio_ADJ", + "cláusula_NOUN_contractual_ADJ", + "cláusula_NOUN_gatillo_NOUN", + "cláusula_NOUN_nmf_NOUN", + "cláusula_NOUN_nmf_PROPN", + "clínica_NOUN_móvil_ADJ", + "clínica_NOUN_psiquiátrico_ADJ", + "cmw_NOUN_c_NOUN", + "cmw_PROPN_c_PROPN", + "cnuah_PROPN_hábitat_NOUN", + "co_PROPN_economía_PROPN", + "coacción_NOUN_motivado_ADJ", + "coalición_NOUN_aliado_ADJ", + "coalición_NOUN_congoleño_ADJ", + "coalición_NOUN_gobernante_ADJ", + "coalición_NOUN_juntos_PROPN", + "coalición_NOUN_liderado_ADJ", + "coalición_NOUN_opositor_ADJ", + "coalición_NOUN_todos_PROPN", + "coalición_PROPN_canaria_PROPN", + "coalición_PROPN_cívica_PROPN", + "coalición_PROPN_nacional_PROPN", + "coalición_PROPN_radical_PROPN", + "cobertura_NOUN_geográfico_ADJ", + "cobertura_NOUN_mediático_ADJ", + "cobertura_NOUN_periodístico_ADJ", + "cobertura_NOUN_universal_ADJ", + "cobrar_VERB_protagonismo_NOUN", + "cobrar_VERB_relevancia_NOUN", + "cobro_NOUN_dudoso_ADJ", + "coca_PROPN_cola_PROPN", + "coche_NOUN_aparcado_ADJ", + "coche_NOUN_bomba_NOUN", + "coche_NOUN_eléctrico_ADJ", + "coche_NOUN_fúnebre_ADJ", + "coche_NOUN_patrulla_NOUN", + "code_PROPN_of_PROPN", + "codo_NOUN_derecho_ADJ", + "coe_PROPN_ecri_PROPN", + "coeficiente_NOUN_intelectual_ADJ", + "coercitivo_ADJ_unilateral_ADJ", + "coexistencia_NOUN_pacífico_ADJ", + "coexistir_VERB_pacíficamente_ADV", + "cohecho_NOUN_pasivo_ADJ", + "coherencia_NOUN_normativo_ADJ", + "cohesión_NOUN_social_ADJ", + "cohesión_NOUN_territorial_ADJ", + "cohete_NOUN_lanzado_ADJ", + "cohete_NOUN_portador_ADJ", + "cohete_NOUN_qassam_ADJ", + "coincido_ADJ_plenamente_ADV", + "colaborar_VERB_activamente_ADV", + "colaborar_VERB_constructivamente_ADV", + "colaborar_VERB_estrechamente_ADV", + "colectividad_NOUN_local_ADJ", + "colectividad_NOUN_territorial_ADJ", + "colegio_NOUN_electoral_ADJ", + "colegio_NOUN_universitario_ADJ", + "colegio_PROPN_electoral_PROPN", + "colegio_PROPN_militar_PROPN", + "colegio_PROPN_médico_PROPN", + "colegio_PROPN_oficial_PROPN", + "colegio_PROPN_público_PROPN", + "colesterol_NOUN_malo_ADJ", + "colin_PROPN_powell_PROPN", + "colisión_NOUN_frontal_ADJ", + "college_PROPN_of_PROPN", + "colmillo_PROPN_blanco_PROPN", + "colom_PROPN_i_CCONJ", + "colombia_PROPN_auc_PROPN", + "colombia_PROPN_comoras_PROPN", + "colombia_PROPN_congo_NOUN", + "colombia_PROPN_costa_NOUN", + "colombia_PROPN_farc_PROPN", + "colombiano_ADJ_álvaro_PROPN", + "colombo_PROPN_sri_PROPN", + "colonia_NOUN_correccional_ADJ", + "colonia_NOUN_lomas_PROPN", + "colonia_NOUN_valle_PROPN", + "colono_NOUN_israelí_ADJ", + "colono_NOUN_judío_ADJ", + "color_NOUN_amarillo_ADJ", + "color_NOUN_azul_ADJ", + "color_NOUN_azul_NOUN", + "color_NOUN_blanco_ADJ", + "color_NOUN_café_ADJ", + "color_NOUN_crema_NOUN", + "color_NOUN_dorado_ADJ", + "color_NOUN_gris_ADJ", + "color_NOUN_marrón_ADJ", + "color_NOUN_naranja_ADJ", + "color_NOUN_negro_ADJ", + "color_NOUN_rojo_ADJ", + "color_NOUN_rosa_ADJ", + "color_NOUN_verde_ADJ", + "columbia_PROPN_británica_PROPN", + "columbia_PROPN_británico_ADJ", + "columbia_PROPN_university_PROPN", + "columna_NOUN_titulado_ADJ", + "columna_NOUN_vertebral_ADJ", + "com_ADP_a_DET", + "com_ADP_os_DET", + "com_ADP_um_DET", + "com_ADP_uma_DET", + "coma_NOUN_inducido_ADJ", + "comandante_NOUN_hugo_PROPN", + "comandante_PROPN_general_PROPN", + "comando_NOUN_armado_ADJ", + "comando_PROPN_radioeléctrico_PROPN", + "comando_PROPN_sur_PROPN", + "comarca_PROPN_lagunera_PROPN", + "combate_NOUN_israelí_ADJ", + "combatiente_NOUN_desmovilizado_ADJ", + "combatiente_NOUN_enemigo_ADJ", + "combatiente_NOUN_extranjero_ADJ", + "combatiente_NOUN_rebelde_ADJ", + "combatir_VERB_eficazmente_ADV", + "combustible_NOUN_fósil_ADJ", + "combustible_NOUN_gastado_ADJ", + "combustible_NOUN_líquido_ADJ", + "combustión_NOUN_interno_ADJ", + "comedia_NOUN_musical_ADJ", + "comedia_NOUN_romántico_ADJ", + "comedor_NOUN_escolar_ADJ", + "comentar_VERB_brevemente_ADV", + "comentario_NOUN_desactivado_ADJ", + "comentario_NOUN_véasar_VERB", + "comentario_NOUN_últir_VERB", + "comentarista_NOUN_deportivo_ADJ", + "comente_PROPN_comentários_PROPN", + "comer_VERB_carne_NOUN", + "comer_VERB_pescado_NOUN", + "comercial_ADJ_desleal_ADJ", + "comercial_ADJ_multilateral_ADJ", + "comercial_ADJ_restrictivo_ADJ", + "comercialmente_ADV_viable_ADJ", + "comerciante_NOUN_ambulante_ADJ", + "comercien_VERB_comercien_VERB", + "comercio_NOUN_adpic_NOUN", + "comercio_NOUN_aelc_ADJ", + "comercio_NOUN_electrónico_ADJ", + "comercio_NOUN_gatt_PROPN", + "comercio_NOUN_intrarregional_ADJ", + "comercio_NOUN_minorista_ADJ", + "comercio_NOUN_omc_PROPN", + "comercio_PROPN_exterior_PROPN", + "comercio_PROPN_industria_PROPN", + "comercio_PROPN_interior_PROPN", + "comercio_PROPN_internacional_PROPN", + "comercio_PROPN_omc_PROPN", + "cometer_VERB_adulterio_NOUN", + "cometer_VERB_atrocidad_NOUN", + "cometer_VERB_error_NOUN", + "cometer_VERB_intencionalmente_ADV", + "comicio_NOUN_autonómico_ADJ", + "comicio_NOUN_presidencial_ADJ", + "comida_NOUN_caliente_ADJ", + "comida_NOUN_chatarra_NOUN", + "comida_NOUN_rápido_ADJ", + "comida_NOUN_típico_ADJ", + "comienzos_NOUN_del_DET", + "comisaria_NOUN_europeo_ADJ", + "comisaria_PROPN_reding_PROPN", + "comisaria_PROPN_señorías_PROPN", + "comisaria_PROPN_wallström_PROPN", + "comisario_PROPN_almunia_PROPN", + "comisario_PROPN_bangemann_PROPN", + "comisario_PROPN_barnier_PROPN", + "comisario_PROPN_barrot_PROPN", + "comisario_PROPN_bolkestein_PROPN", + "comisario_PROPN_byrne_PROPN", + "comisario_PROPN_dimas_PROPN", + "comisario_PROPN_fischler_PROPN", + "comisario_PROPN_flynn_PROPN", + "comisario_PROPN_frattini_PROPN", + "comisario_PROPN_kinnock_PROPN", + "comisario_PROPN_lamy_PROPN", + "comisario_PROPN_liikanen_PROPN", + "comisario_PROPN_mandelson_PROPN", + "comisario_PROPN_mccreevy_PROPN", + "comisario_PROPN_michel_PROPN", + "comisario_PROPN_monti_PROPN", + "comisario_PROPN_nielson_PROPN", + "comisario_PROPN_patten_PROPN", + "comisario_PROPN_piebalgs_PROPN", + "comisario_PROPN_rehn_PROPN", + "comisario_PROPN_señorías_PROPN", + "comisario_PROPN_solbes_PROPN", + "comisario_PROPN_van_PROPN", + "comisario_PROPN_verheugen_PROPN", + "comisario_PROPN_vitorino_PROPN", + "comisario_PROPN_špidla_PROPN", + "comisaría_PROPN_provincial_PROPN", + "comisiones_PROPN_obreras_PROPN", + "comisiones_PROPN_orgánico_ADJ", + "comisiones_PROPN_regional_ADJ", + "comisiones_PROPN_regionales_PROPN", + "comisión_NOUN_bicameral_ADJ", + "comisión_NOUN_consultivo_ADJ", + "comisión_NOUN_interamericán_ADJ", + "comisión_NOUN_oceanográfico_ADJ", + "comisión_NOUN_rogatorio_ADJ", + "comisión_NOUN_tripartita_ADJ", + "comisión_NOUN_tripartita_PROPN", + "comisión_PROPN_bicameral_PROPN", + "comisión_PROPN_consultiva_PROPN", + "comisión_PROPN_disciplinaria_PROPN", + "comisión_PROPN_económica_PROPN", + "comisión_PROPN_ejecutiva_PROPN", + "comisión_PROPN_interamericana_PROPN", + "comisión_PROPN_jurídica_PROPN", + "comisión_PROPN_mixta_PROPN", + "comisión_PROPN_oceanográfica_PROPN", + "comisión_PROPN_organizadora_PROPN", + "comisión_PROPN_parlamentaria_PROPN", + "comisión_PROPN_permanente_PROPN", + "comisión_PROPN_reguladora_PROPN", + "comisión_PROPN_santer_PROPN", + "comisión_PROPN_temporal_PROPN", + "comisión_PROPN_tripartita_PROPN", + "comité_NOUN_asesor_ADJ", + "comité_NOUN_interafricano_ADJ", + "comité_NOUN_interministerial_ADJ", + "comité_NOUN_mixto_ADJ", + "comité_NOUN_organizador_ADJ", + "comité_NOUN_preparatorio_ADJ", + "comité_NOUN_preparatorio_PROPN", + "comité_PROPN_administrativo_PROPN", + "comité_PROPN_central_PROPN", + "comité_PROPN_científico_PROPN", + "comité_PROPN_consultivo_PROPN", + "comité_PROPN_contra_PROPN", + "comité_PROPN_crc_PROPN", + "comité_PROPN_cívico_PROPN", + "comité_PROPN_directivo_PROPN", + "comité_PROPN_económico_PROPN", + "comité_PROPN_ejecutivo_PROPN", + "comité_PROPN_estatal_PROPN", + "comité_PROPN_interestatal_PROPN", + "comité_PROPN_judicial_PROPN", + "comité_PROPN_mixto_PROPN", + "comité_PROPN_olímpico_PROPN", + "comité_PROPN_organizador_PROPN", + "comité_PROPN_permanente_PROPN", + "comité_PROPN_político_PROPN", + "comité_PROPN_técnico_PROPN", + "comité_PROPN_zangger_PROPN", + "comités_PROPN_locales_PROPN", + "commercial_PROPN_law_PROPN", + "commission_PROPN_for_PROPN", + "commission_PROPN_of_PROPN", + "commission_PROPN_on_PROPN", + "commissioner_PROPN_for_ADP", + "commissioner_PROPN_for_PROPN", + "committee_NOUN_on_ADJ", + "committee_PROPN_for_PROPN", + "committee_PROPN_of_ADP", + "committee_PROPN_on_ADJ", + "committee_PROPN_on_ADP", + "common_NOUN_law_NOUN", + "common_NOUN_law_PROPN", + "common_PROPN_law_NOUN", + "common_PROPN_law_PROPN", + "commonwealth_PROPN_human_PROPN", + "community_PROPN_college_PROPN", + "comodoro_PROPN_py_PROPN", + "comodoro_PROPN_rivadavia_PROPN", + "comoras_PROPN_congo_NOUN", + "comoras_PROPN_congo_PROPN", + "comoras_PROPN_costa_NOUN", + "comoras_PROPN_cuba_PROPN", + "comoras_PROPN_côte_PROPN", + "comoras_PROPN_djibouti_NOUN", + "comoras_PROPN_georgia_PROPN", + "comparación_NOUN_interanual_ADJ", + "comparecencia_NOUN_ante_ADP", + "comparecencia_NOUN_inicial_ADJ", + "comparecer_VERB_ante_ADP", + "compartimento_NOUN_verde_ADJ", + "compañera_NOUN_sentimental_ADJ", + "compañero_NOUN_diputado_ADJ", + "compañero_NOUN_sentimental_ADJ", + "compañía_NOUN_asegurador_ADJ", + "compañía_NOUN_aéreo_ADJ", + "compañía_NOUN_discográfico_ADJ", + "compañía_NOUN_farmacéutico_ADJ", + "compañía_NOUN_naviera_ADJ", + "compañía_NOUN_petrolero_ADJ", + "compañía_PROPN_nacional_PROPN", + "compensar_VERB_parcialmente_ADV", + "competencia_NOUN_desleal_ADJ", + "competencia_NOUN_exclusivo_ADJ", + "competencia_NOUN_leal_ADJ", + "competencia_NOUN_rationar_VERB", + "competición_NOUN_continental_ADJ", + "competición_NOUN_deportivo_ADJ", + "complejo_NOUN_deportivo_ADJ", + "complejo_NOUN_habitacional_ADJ", + "complejo_NOUN_hotelero_ADJ", + "complejo_NOUN_industrial_ADJ", + "complejo_NOUN_residencial_ADJ", + "complejo_NOUN_turístico_ADJ", + "complejo_PROPN_cultural_PROPN", + "complejo_PROPN_deportivo_PROPN", + "complejo_PROPN_hospitalario_PROPN", + "complementar_VERB_mutuamente_ADV", + "complemento_NOUN_alimenticio_ADJ", + "completamente_ADV_desnudo_ADJ", + "completamente_ADV_destruido_ADJ", + "completamente_ADV_diferente_ADJ", + "completamente_ADV_distinto_ADJ", + "completamente_ADV_inaceptable_ADJ", + "completar_VERB_aforo_NOUN", + "complicación_NOUN_derivado_ADJ", + "componente_ADJ_clave_NOUN", + "componente_NOUN_norte_ADJ", + "componente_NOUN_oeste_NOUN", + "comportamiento_NOUN_agresivo_ADJ", + "comportamiento_NOUN_antisocial_ADJ", + "comportamiento_NOUN_ético_ADJ", + "composición_NOUN_abierta_NOUN", + "composición_NOUN_abierto_ADJ", + "composición_NOUN_demográfico_ADJ", + "composition_PROPN_of_ADP", + "compra_NOUN_navideño_ADJ", + "comprender_VERB_mejor_ADV", + "comprender_VERB_perfectamente_ADV", + "comprendido_ADJ_entre_ADP", + "comprensión_NOUN_lector_ADJ", + "comprensión_NOUN_mutuo_ADJ", + "comprobación_NOUN_inicial_ADJ", + "compromiso_NOUN_asumido_ADJ", + "compromiso_NOUN_contraído_ADJ", + "compromiso_NOUN_cuantificado_ADJ", + "compromiso_NOUN_dimanant_ADJ", + "compromiso_NOUN_inequívoco_ADJ", + "compromiso_NOUN_inquebrantable_ADJ", + "compromiso_NOUN_renovado_ADJ", + "compuesto_NOUN_metálico_ADJ", + "compuesto_NOUN_orgánico_ADJ", + "compuesto_NOUN_químico_ADJ", + "computadora_NOUN_personal_ADJ", + "computadora_NOUN_portátil_ADJ", + "comunicación_NOUN_interpersonal_ADJ", + "comunicación_NOUN_nº_NUM", + "comunicación_NOUN_nº_SYM", + "comunicación_PROPN_audiovisual_PROPN", + "comunicación_PROPN_social_PROPN", + "comunicado_NOUN_difundido_ADJ", + "comunicado_NOUN_divulgado_ADJ", + "comunicado_NOUN_emitido_ADJ", + "comunicado_NOUN_enviado_ADJ", + "comunicado_NOUN_remitido_ADJ", + "comunidad_NOUN_afrodescendient_ADJ", + "comunidad_NOUN_andino_ADJ", + "comunidad_NOUN_autónomo_ADJ", + "comunidad_NOUN_lgbt_ADJ", + "comunidad_NOUN_mapuche_ADJ", + "comunidad_NOUN_minoritario_ADJ", + "comunidad_NOUN_nómada_ADJ", + "comunidad_NOUN_nómado_ADJ", + "comunidad_NOUN_romaní_ADJ", + "comunidad_NOUN_turcochiprioto_ADJ", + "comunidad_PROPN_andina_PROPN", + "comunidad_PROPN_autónoma_PROPN", + "comunidad_PROPN_económica_PROPN", + "comunidad_PROPN_europea_PROPN", + "comunidad_PROPN_foral_ADJ", + "comunidad_PROPN_foral_PROPN", + "comunidad_PROPN_valenciana_PROPN", + "comunidades_PROPN_autónomas_PROPN", + "comunidades_PROPN_económicas_PROPN", + "comunidades_PROPN_europeas_PROPN", + "comunitat_PROPN_valenciana_PROPN", + "común_ADJ_denominador_NOUN", + "común_PROPN_pac_PROPN", + "comúnmente_ADV_aceptado_ADJ", + "comúnmente_ADV_conocido_ADJ", + "comúnmente_ADV_utilizado_ADJ", + "concebido_ADJ_específicamente_ADV", + "conceder_VERB_beca_NOUN", + "concejal_NOUN_socialista_ADJ", + "concejo_NOUN_municipal_ADJ", + "concejo_PROPN_deliberante_PROPN", + "concejo_PROPN_municipal_PROPN", + "concentración_NOUN_atmosférico_ADJ", + "concentración_NOUN_nazi_ADJ", + "concepto_NOUN_abstracto_ADJ", + "concepto_NOUN_estereotipado_ADJ", + "concerniente_NOUN_al_DET", + "concerning_PROPN_the_PROPN", + "concerning_VERB_the_DET", + "concertado_ADJ_libremente_ADV", + "concertar_VERB_acuerdo_NOUN", + "concesión_NOUN_minero_ADJ", + "concha_PROPN_velasco_PROPN", + "conciencia_NOUN_tranquilo_ADJ", + "conciertir_VERB_acuerdo_NOUN", + "conciliación_NOUN_bancario_ADJ", + "conciliación_NOUN_obligatorio_ADJ", + "concilio_PROPN_vaticano_PROPN", + "concluding_PROPN_observations_PROPN", + "concluir_VERB_permítaseme_PRON", + "concluir_VERB_satisfactoriamente_ADV", + "conclusión_NOUN_convenida_ADJ", + "conclusión_NOUN_extraído_ADJ", + "concreto_NOUN_hidráulico_ADJ", + "concuerdar_VERB_plenamente_ADV", + "concurso_NOUN_literario_ADJ", + "concurso_NOUN_mercantil_ADJ", + "concurso_PROPN_internacional_PROPN", + "concurso_PROPN_nacional_PROPN", + "conde_PROPN_duque_PROPN", + "condena_NOUN_condicional_ADJ", + "condena_NOUN_dictado_ADJ", + "condena_NOUN_impuesto_ADJ", + "condena_NOUN_inequívoco_ADJ", + "condenar_VERB_categóricamente_ADV", + "condenar_VERB_enérgicamente_ADV", + "condenar_VERB_firmemente_ADV", + "condenar_VERB_inequívocamente_ADV", + "condenar_VERB_rotundamente_ADV", + "condición_NOUN_carcelaria_ADJ", + "condición_NOUN_climatológico_ADJ", + "condición_NOUN_concesionario_ADJ", + "condición_NOUN_deplorabl_ADJ", + "condición_NOUN_estipulada_ADJ", + "condición_NOUN_higiénico_ADJ", + "condición_NOUN_imperant_ADJ", + "condición_NOUN_infrahumano_ADJ", + "condición_NOUN_insalubr_ADJ", + "condición_NOUN_meteorológico_ADJ", + "condición_NOUN_prescrita_ADJ", + "condición_NOUN_sine_NOUN", + "condición_PROPN_jurídica_PROPN", + "condición_PROPN_jurídico_ADJ", + "condoleezza_PROPN_rice_PROPN", + "conducción_NOUN_temerario_ADJ", + "conducir_VERB_ebrio_ADJ", + "conducir_VERB_inevitablemente_ADV", + "conducta_NOUN_antisocial_ADJ", + "conducta_NOUN_delictivo_ADJ", + "conducta_NOUN_impropio_ADJ", + "conducta_NOUN_indebido_ADJ", + "conducta_NOUN_punible_ADJ", + "conducta_NOUN_ético_ADJ", + "conductor_NOUN_ebrio_ADJ", + "conexión_NOUN_ferroviario_ADJ", + "conexión_NOUN_inalámbrico_ADJ", + "confederaciones_PROPN_rurales_PROPN", + "confederación_NOUN_sindical_ADJ", + "confederación_NOUN_suizo_ADJ", + "confederación_PROPN_argentina_PROPN", + "confederación_PROPN_brasileña_PROPN", + "confederación_PROPN_española_PROPN", + "confederación_PROPN_general_PROPN", + "confederación_PROPN_hidrográfica_PROPN", + "confederación_PROPN_nacional_PROPN", + "confederación_PROPN_sudamericana_PROPN", + "conference_PROPN_of_PROPN", + "conference_PROPN_on_PROPN", + "conferencia_NOUN_cartográfico_ADJ", + "conferencia_NOUN_episcopal_ADJ", + "conferencia_NOUN_islámico_ADJ", + "conferencia_NOUN_magistral_ADJ", + "conferencia_NOUN_ministerial_ADJ", + "conferencia_NOUN_panafricán_ADJ", + "conferencia_PROPN_americana_PROPN", + "conferencia_PROPN_episcopal_PROPN", + "conferencia_PROPN_este_PROPN", + "conferencia_PROPN_intergubernamental_PROPN", + "conferencia_PROPN_internacional_PROPN", + "conferencia_PROPN_islámica_PROPN", + "conferencia_PROPN_ministerial_PROPN", + "conferencia_PROPN_mundial_ADJ", + "conferencia_PROPN_mundial_PROPN", + "conferencia_PROPN_oeste_PROPN", + "conferir_VERB_legitimidad_NOUN", + "confesión_NOUN_obtenido_ADJ", + "confesión_NOUN_religioso_ADJ", + "confianza_NOUN_depositado_ADJ", + "confianza_NOUN_mutuo_ADJ", + "confidencial_PROPN_portada_PROPN", + "configuración_NOUN_encargado_ADJ", + "configuración_PROPN_encargado_ADJ", + "confinamiento_NOUN_solitario_ADJ", + "confirmación_NOUN_formal_ADJ", + "conflicto_NOUN_armado_ADJ", + "conflicto_NOUN_bélico_ADJ", + "conflicto_NOUN_interétnico_ADJ", + "conflicto_NOUN_intraestatal_ADJ", + "conforme_NOUN_al_DET", + "conforme_SCONJ_avanzar_VERB", + "congo_NOUN_costa_NOUN", + "congo_NOUN_côte_PROPN", + "congo_PROPN_costa_PROPN", + "congo_PROPN_côte_PROPN", + "congo_PROPN_dinamarca_PROPN", + "congo_PROPN_djibouti_NOUN", + "congo_PROPN_mlc_PROPN", + "congo_PROPN_monuc_PROPN", + "congo_PROPN_rwanda_PROPN", + "congo_PROPN_senegal_NOUN", + "congratular_ADJ_yo_PRON", + "congregación_NOUN_religioso_ADJ", + "congresista_NOUN_demócrata_ADJ", + "congresista_NOUN_republicano_ADJ", + "conjunto_NOUN_azulgrana_ADJ", + "conjunto_NOUN_habitacional_ADJ", + "conjunto_NOUN_rojiblanco_ADJ", + "conjunto_NOUN_visitante_ADJ", + "conmoción_NOUN_cerebral_ADJ", + "conmoción_NOUN_externo_ADJ", + "conmover_VERB_profundamente_ADV", + "connotación_NOUN_negativo_ADJ", + "connotación_NOUN_política_ADJ", + "cono_NOUN_monetario_ADJ", + "cono_NOUN_sur_ADJ", + "cono_PROPN_sur_PROPN", + "conocer_NOUN_públicamente_ADV", + "conocer_VERB_popularmente_ADV", + "conocido_ADJ_popularmente_ADV", + "conocimiento_NOUN_especializado_ADJ", + "conocimiento_NOUN_teórico_ADJ", + "conocimiento_NOUN_tradicional_ADJ", + "conozcais_VERB_conozcais_VERB", + "conquistador_NOUN_español_ADJ", + "consagrar_VERB_campeón_NOUN", + "consecuencia_NOUN_adverso_ADJ", + "consecuencia_NOUN_catastrófico_ADJ", + "consecuencia_NOUN_desastroso_ADJ", + "consecuencia_NOUN_devastador_ADJ", + "consecuencia_NOUN_imprevisible_ADJ", + "consecuencia_NOUN_imprevista_ADJ", + "consecuencia_NOUN_nefasto_ADJ", + "consecuencia_NOUN_negativo_ADJ", + "consecuencia_NOUN_perjudicial_ADJ", + "consejera_NOUN_delegado_ADJ", + "consejero_ADJ_presidente_NOUN", + "consejero_NOUN_delegado_ADJ", + "consejo_PROPN_asesor_PROPN", + "consejo_PROPN_consultivo_PROPN", + "consejo_PROPN_coordinador_PROPN", + "consejo_PROPN_directivo_PROPN", + "consejo_PROPN_ecofin_PROPN", + "consejo_PROPN_económico_PROPN", + "consejo_PROPN_escolar_PROPN", + "consejo_PROPN_interterritorial_PROPN", + "consejo_PROPN_oleícola_PROPN", + "consejo_PROPN_político_PROPN", + "consejo_PROPN_regulador_PROPN", + "consejos_PROPN_europeos_PROPN", + "consentimiento_NOUN_explícito_ADJ", + "consentimiento_NOUN_expreso_ADJ", + "consentimiento_NOUN_fundamentado_ADJ", + "consentimiento_NOUN_informado_ADJ", + "consentimiento_NOUN_previo_ADJ", + "conservador_ADJ_británico_ADJ", + "conservador_ADJ_partido_PROPN", + "conservador_NOUN_británico_ADJ", + "conservar_VERB_intacto_ADJ", + "considerablemente_ADV_inferior_ADJ", + "consideración_NOUN_primordial_ADJ", + "considerar_VERB_oportuna_NOUN", + "consignación_NOUN_adicional_ADJ", + "consignación_NOUN_aprobada_ADJ", + "consignación_NOUN_inicial_ADJ", + "consignación_NOUN_presupuestaria_ADJ", + "consignación_NOUN_presupuestario_ADJ", + "consignación_NOUN_revisado_ADJ", + "consignar_VERB_crédito_NOUN", + "consiguiente_NOUN_insto_VERB", + "consistir_VERB_básicamente_ADV", + "consola_NOUN_portátil_ADJ", + "consolidación_NOUN_patrimonial_ADJ", + "consorcio_PROPN_provincial_PROPN", + "conspirar_VERB_contra_ADP", + "constitución_PROPN_política_PROPN", + "constituir_VERB_quórum_NOUN", + "construcción_NOUN_naval_ADJ", + "constructivo_NOUN_intercambio_NOUN", + "constructora_NOUN_brasileño_ADJ", + "consuetudinaria_ADJ_nocivo_ADJ", + "consul_NOUN_tú_PRON", + "consul_PROPN_tú_PRON", + "consulado_PROPN_general_PROPN", + "consulta_NOUN_oficioso_ADJ", + "consulta_NOUN_prenatal_ADJ", + "consulta_NOUN_previo_ADJ", + "consulta_NOUN_soberanista_ADJ", + "consultivo_PROPN_internacional_PROPN", + "consultivo_PROPN_mixto_PROPN", + "consultor_NOUN_contratado_ADJ", + "consultor_NOUN_experto_ADJ", + "consultor_NOUN_externo_ADJ", + "consultorio_NOUN_médico_ADJ", + "consumidor_PROPN_ipc_PROPN", + "consumidor_PROPN_profeco_PROPN", + "consumir_VERB_alcohol_NOUN", + "consumir_VERB_bebida_NOUN", + "consumir_VERB_cocaína_NOUN", + "consumir_VERB_droga_NOUN", + "consumo_NOUN_excesivo_ADJ", + "contabilidad_NOUN_ambiental_ADJ", + "contabilidad_NOUN_b_PROPN", + "contabilización_NOUN_insuficiente_ADJ", + "contable_ADJ_aplicado_ADJ", + "contacto_NOUN_copresidido_ADJ", + "contacto_NOUN_directo_ADJ", + "contado_ADJ_ocasión_NOUN", + "contaduría_NOUN_general_ADJ", + "contaduría_PROPN_general_ADJ", + "contaminación_NOUN_accidental_ADJ", + "contaminación_NOUN_acústico_ADJ", + "contaminación_NOUN_ambiental_ADJ", + "contaminación_NOUN_atmosférico_ADJ", + "contaminación_NOUN_causado_ADJ", + "contaminación_NOUN_marino_ADJ", + "contaminación_NOUN_medioambiental_ADJ", + "contaminación_NOUN_radiactivo_ADJ", + "contaminant_NOUN_atmosférico_ADJ", + "contaminant_NOUN_orgánico_ADJ", + "contencioso_ADJ_administrativo_ADJ", + "contencioso_NOUN_administrativo_ADJ", + "contencioso_PROPN_administrativo_PROPN", + "contener_VERB_amianto_NOUN", + "contener_VERB_inexactitud_NOUN", + "contener_VERB_mercurio_NOUN", + "contener_VERB_pcb_PROPN", + "contener_VERB_uranio_NOUN", + "contenido_NOUN_audiovisual_ADJ", + "contenido_NOUN_pornográfico_ADJ", + "conteo_NOUN_rápido_ADJ", + "context_PROPN_of_PROPN", + "contextura_NOUN_físico_ADJ", + "contienda_NOUN_electoral_ADJ", + "contienda_NOUN_presidencial_ADJ", + "continente_NOUN_africano_ADJ", + "continente_NOUN_americano_ADJ", + "continente_NOUN_asiático_ADJ", + "contingente_NOUN_arancelario_ADJ", + "contingente_NOUN_efectivo_NOUN", + "contingente_NOUN_militar_ADJ", + "continuación_PROPN_a_NOUN", + "continuación_PROPN_cedaw_PROPN", + "contra_ADP_natura_NOUN", + "contraer_VERB_matrimonio_NOUN", + "contraer_VERB_nupcia_NOUN", + "contraloría_PROPN_general_PROPN", + "contramedida_NOUN_colectivo_ADJ", + "contratación_NOUN_externo_ADJ", + "contratación_NOUN_indefinido_ADJ", + "contratación_NOUN_local_ADJ", + "contratado_ADJ_localmente_ADV", + "contratista_NOUN_individual_ADJ", + "contrato_NOUN_adjudicable_ADJ", + "contrato_NOUN_adjudicado_ADJ", + "contrato_NOUN_indefinido_ADJ", + "contrato_NOUN_interrumpido_ADJ", + "contrato_NOUN_matrimonial_ADJ", + "contrato_NOUN_originario_ADJ", + "contrato_NOUN_suscrito_ADJ", + "contribución_NOUN_aportado_ADJ", + "contribución_NOUN_extrapresupuestaria_ADJ", + "contribución_NOUN_extrapresupuestarias_NOUN", + "contribución_NOUN_multianual_ADJ", + "contribución_NOUN_prometido_ADJ", + "contribución_NOUN_prorrateada_ADJ", + "contribución_NOUN_voluntario_ADJ", + "contribuir_VERB_decisivamente_ADV", + "contribuir_VERB_enormemente_ADV", + "contribuir_VERB_financieramente_ADV", + "contribuir_VERB_generosamente_ADV", + "contribuir_VERB_positivamente_ADV", + "contribuir_VERB_significativamente_ADV", + "contribuir_VERB_sobremanera_ADV", + "contribuir_VERB_sustancialmente_ADV", + "contribuyent_ADJ_neto_ADJ", + "contribuyente_NOUN_neto_ADJ", + "control_NOUN_aduanero_ADJ", + "control_NOUN_antidopaje_ADJ", + "control_NOUN_awacs_ADJ", + "control_NOUN_awacs_PROPN", + "control_NOUN_especificada_ADJ", + "control_NOUN_fronterizo_ADJ", + "control_NOUN_remoto_ADJ", + "control_PROPN_presupuestario_PROPN", + "controlador_NOUN_aéreo_ADJ", + "controversia_NOUN_fronterizo_ADJ", + "controversia_NOUN_territorial_ADJ", + "contundente_ADJ_victoria_NOUN", + "conurbano_NOUN_bonaerense_ADJ", + "convencer_VERB_yo_VERB", + "convención_NOUN_interamericán_ADJ", + "convención_NOUN_marco_PROPN", + "convención_PROPN_americana_PROPN", + "convención_PROPN_marco_PROPN", + "convenida_ADJ_internacionalmente_ADV", + "convenido_ADJ_internacionalmente_ADV", + "convenio_NOUN_colectivo_ADJ", + "convenio_NOUN_constitutivo_ADJ", + "convenio_NOUN_marpol_PROPN", + "convenio_NOUN_nº_NOUN", + "convenio_NOUN_tir_NOUN", + "convenio_PROPN_colectivo_PROPN", + "convenio_PROPN_europeo_PROPN", + "convenio_PROPN_europol_PROPN", + "convenio_PROPN_marco_PROPN", + "convention_NOUN_and_CCONJ", + "convention_PROPN_européenne_PROPN", + "convention_PROPN_no_PART", + "convention_PROPN_on_ADJ", + "convention_PROPN_on_ADP", + "convention_PROPN_on_PROPN", + "convention_PROPN_relating_ADJ", + "convergència_PROPN_i_CCONJ", + "conversación_NOUN_indirecto_ADJ", + "conversación_NOUN_informal_ADJ", + "conversación_NOUN_mantenido_ADJ", + "conversación_NOUN_telefónico_ADJ", + "convicción_NOUN_política_ADJ", + "convicción_NOUN_religioso_ADJ", + "convivencia_NOUN_familiar_ADJ", + "convivencia_NOUN_pacífico_ADJ", + "convoy_NOUN_humanitario_ADJ", + "cony_PROPN_sturm_PROPN", + "cooperación_NOUN_interconfesional_ADJ", + "cooperación_NOUN_triangular_ADJ", + "cooperación_NOUN_técnico_ADJ", + "cooperación_PROPN_económica_PROPN", + "cooperación_PROPN_internacional_PROPN", + "cooperar_VERB_activamente_ADV", + "cooperar_VERB_estrechamente_ADV", + "cooperar_VERB_plenamente_ADV", + "cooperativa_NOUN_agrícola_ADJ", + "cooperativa_PROPN_eléctrica_PROPN", + "coordenada_NOUN_geográfico_ADJ", + "coordinación_NOUN_cpc_PROPN", + "coordinación_NOUN_interinstitucional_ADJ", + "coordinación_PROPN_cac_PROPN", + "coordinación_PROPN_política_PROPN", + "coordinador_NOUN_residente_ADJ", + "coordinadora_NOUN_adjunto_ADJ", + "coordinadora_NOUN_residente_ADJ", + "coordinadora_PROPN_nacional_PROPN", + "coordinar_VERB_estrechamente_ADV", + "copa_PROPN_américa_PROPN", + "copa_PROPN_confederaciones_PROPN", + "copa_PROPN_davis_PROPN", + "copa_PROPN_intercontinental_PROPN", + "copa_PROPN_libertadores_PROPN", + "copa_PROPN_masters_PROPN", + "copa_PROPN_mundial_PROPN", + "copa_PROPN_mx_PROPN", + "copa_PROPN_oro_PROPN", + "copa_PROPN_sudamericana_PROPN", + "copa_PROPN_uefa_PROPN", + "copenhague_PROPN_dinamarca_PROPN", + "copia_NOUN_auténtico_ADJ", + "copia_NOUN_certificada_ADJ", + "copia_NOUN_certificado_ADJ", + "copia_NOUN_impreso_ADJ", + "copia_NOUN_vendido_ADJ", + "copresidente_NOUN_suecia_PROPN", + "corazón_NOUN_latir_VERB", + "corazón_NOUN_roto_ADJ", + "cordial_ADJ_bienvenida_NOUN", + "cordial_ADJ_felicitación_NOUN", + "cordial_ADJ_saludo_NOUN", + "cordón_NOUN_cuneta_NOUN", + "cordón_NOUN_policial_ADJ", + "cordón_NOUN_umbilical_ADJ", + "corea_PROPN_djibouti_PROPN", + "corea_PROPN_república_PROPN", + "corea_PROPN_rumania_PROPN", + "corea_PROPN_senegal_PROPN", + "corear_VERB_consigna_NOUN", + "corona_NOUN_británico_ADJ", + "corona_NOUN_danés_ADJ", + "corona_NOUN_noruego_ADJ", + "corona_NOUN_sueco_ADJ", + "coronar_VERB_campeón_NOUN", + "coronas_NOUN_sueco_ADJ", + "coronel_NOUN_gadafi_PROPN", + "coronel_NOUN_retirado_ADJ", + "coronel_PROPN_dorrego_PROPN", + "coronel_PROPN_suárez_PROPN", + "corporación_NOUN_municipal_ADJ", + "corporación_NOUN_policiaco_ADJ", + "corporación_NOUN_transnacional_ADJ", + "corporación_PROPN_actual_PROPN", + "corporación_PROPN_andina_PROPN", + "corporación_PROPN_municipal_ADJ", + "corporación_PROPN_municipal_PROPN", + "corporate_PROPN_governance_PROPN", + "corpus_PROPN_christi_PROPN", + "correcciones_PROPN_e_CCONJ", + "corrección_NOUN_cap_NOUN", + "corrección_NOUN_recomendado_ADJ", + "corredor_NOUN_ferroviario_ADJ", + "corredor_NOUN_mediterráneo_ADJ", + "corredor_NOUN_vial_ADJ", + "corredor_PROPN_mediterráneo_PROPN", + "corregido_ADJ_oralmente_ADV", + "corregir_VERB_oralmente_ADV", + "correo_NOUN_basura_NOUN", + "correo_NOUN_electrónico_ADJ", + "correo_NOUN_postal_ADJ", + "correo_PROPN_argentino_PROPN", + "correr_VERB_peligro_NOUN", + "corresponsal_NOUN_extranjero_ADJ", + "corrida_NOUN_cambiario_ADJ", + "corriente_NOUN_migratorio_ADJ", + "corriere_PROPN_della_PROPN", + "corrupción_NOUN_urbanístico_ADJ", + "corta_NOUN_distancia_NOUN", + "corte_NOUN_interamericán_ADJ", + "corte_NOUN_marcial_ADJ", + "corte_NOUN_penal_PROPN", + "corte_NOUN_supremo_ADJ", + "corte_PROPN_constitucional_PROPN", + "corte_PROPN_inglés_PROPN", + "corte_PROPN_interamericana_PROPN", + "corte_PROPN_internacional_PROPN", + "corte_PROPN_penal_PROPN", + "corte_PROPN_superior_PROPN", + "corte_PROPN_suprema_PROPN", + "corte_PROPN_supremo_ADJ", + "cortejo_NOUN_fúnebre_ADJ", + "cortes_PROPN_generales_PROPN", + "cortes_PROPN_valencianas_PROPN", + "corteza_NOUN_terrestre_ADJ", + "corto_ADJ_distancia_NOUN", + "corto_ADJ_duración_NOUN", + "corto_ADJ_plazo_ADJ", + "corto_ADJ_plazo_NOUN", + "corto_NOUN_plazo_NOUN", + "corts_PROPN_valencianes_PROPN", + "cosa_NOUN_juzgado_ADJ", + "cosechar_VERB_éxito_NOUN", + "costa_NOUN_atlántico_ADJ", + "costa_NOUN_este_ADJ", + "costa_NOUN_gallego_ADJ", + "costa_NOUN_mediterráneo_ADJ", + "costa_NOUN_norte_ADJ", + "costa_NOUN_oeste_ADJ", + "costa_NOUN_rico_ADJ", + "costa_NOUN_somalí_ADJ", + "costa_NOUN_sur_ADJ", + "costa_PROPN_atlántica_PROPN", + "costa_PROPN_azul_PROPN", + "costa_PROPN_brava_PROPN", + "costa_PROPN_concordia_PROPN", + "costa_PROPN_neves_PROPN", + "costa_PROPN_rica_PROPN", + "costa_PROPN_rico_ADJ", + "costa_PROPN_salguero_PROPN", + "costado_NOUN_derecho_ADJ", + "costado_NOUN_izquierdo_ADJ", + "costar_VERB_caro_ADJ", + "costar_VERB_muchísimo_ADV", + "coste_NOUN_cero_NOUN", + "coste_NOUN_salarial_ADJ", + "coste_PROPN_aproximado_PROPN", + "costo_NOUN_aproximado_ADJ", + "costo_NOUN_estimado_ADJ", + "costo_NOUN_estándar_ADJ", + "costo_NOUN_incremental_ADJ", + "costo_NOUN_unitario_ADJ", + "costra_NOUN_cobáltica_ADJ", + "cotizaciones_PROPN_ipc_PROPN", + "council_ADJ_of_PROPN", + "council_NOUN_of_PROPN", + "council_PROPN_for_PROPN", + "council_PROPN_of_ADP", + "council_PROPN_of_PROPN", + "country_PROPN_club_PROPN", + "court_PROPN_of_PROPN", + "covenant_PROPN_on_PROPN", + "coyuntura_NOUN_crítico_ADJ", + "cp_PROPN_rp_PROPN", + "craso_ADJ_error_NOUN", + "crc_NOUN_c_NOUN", + "crc_NOUN_paras_NOUN", + "crc_NOUN_párr_INTJ", + "crc_NOUN_párrs_ADJ", + "crc_PROPN_c_NOUN", + "crc_PROPN_c_PROPN", + "crc_PROPN_committee_PROPN", + "crc_PROPN_párr_INTJ", + "crc_PROPN_párrs_ADJ", + "creative_PROPN_commons_PROPN", + "crecer_VERB_exponencialmente_ADV", + "creciente_ADJ_complejidad_NOUN", + "creciente_ADJ_demanda_NOUN", + "creciente_ADJ_disparidad_NOUN", + "creciente_ADJ_interdependencia_NOUN", + "crecimiento_NOUN_demográfico_ADJ", + "crecimiento_NOUN_económico_ADJ", + "crecimiento_NOUN_exponencial_ADJ", + "crecimiento_NOUN_interanual_ADJ", + "crecimiento_NOUN_poblacional_ADJ", + "crecimiento_NOUN_sostenido_ADJ", + "credit_PROPN_suisse_PROPN", + "credo_NOUN_religioso_ADJ", + "creencia_NOUN_religioso_ADJ", + "creer_VERB_firmemente_ADV", + "cresta_NOUN_arancelaria_ADJ", + "crime_PROPN_and_PROPN", + "crimen_NOUN_atroz_ADJ", + "crimen_NOUN_cometido_ADJ", + "crimen_NOUN_horrendo_ADJ", + "crimen_NOUN_organizado_ADJ", + "crimen_NOUN_pasional_ADJ", + "crimen_NOUN_perpetrado_ADJ", + "crimen_PROPN_organizado_PROPN", + "criminal_ADJ_court_PROPN", + "criminal_ADJ_interpol_PROPN", + "criminal_ADJ_law_PROPN", + "criminal_PROPN_justice_PROPN", + "criminalidad_NOUN_organizado_ADJ", + "criminalísticas_PROPN_cicpc_PROPN", + "crisis_NOUN_alimentario_ADJ", + "crisis_NOUN_desatado_ADJ", + "crisis_NOUN_sociopolítico_ADJ", + "cristal_NOUN_roto_ADJ", + "cristian_PROPN_castro_PROPN", + "cristian_PROPN_ritondo_PROPN", + "cristiano_ADJ_resignación_NOUN", + "cristiano_ADJ_sepultura_NOUN", + "cristiano_PROPN_ronaldo_PROPN", + "cristina_PROPN_cifuentes_PROPN", + "cristina_PROPN_fernández_PROPN", + "cristina_PROPN_kirchner_PROPN", + "cristina_PROPN_narbona_PROPN", + "cristo_PROPN_redentor_PROPN", + "cristo_PROPN_rey_PROPN", + "cristóbal_PROPN_colón_PROPN", + "cristóbal_PROPN_lópez_PROPN", + "cristóbal_PROPN_montoro_PROPN", + "criterio_NOUN_objetivo_ADJ", + "criticar_VERB_abiertamente_ADV", + "criticar_VERB_duramente_ADV", + "criticar_VERB_fuertemente_ADV", + "croacia_PROPN_chipre_PROPN", + "croacia_PROPN_cuba_PROPN", + "croacia_PROPN_dinamarca_PROPN", + "croacia_PROPN_eslovaquia_PROPN", + "croacia_PROPN_eslovenia_PROPN", + "croacia_PROPN_onurc_PROPN", + "croata_NOUN_ivan_PROPN", + "croata_NOUN_marin_PROPN", + "cronograma_NOUN_electoral_ADJ", + "cruce_NOUN_fronterizo_ADJ", + "crudo_ADJ_realidad_NOUN", + "crudo_NOUN_brent_PROPN", + "cruel_ADJ_inhumano_ADJ", + "cruz_NOUN_fronterizo_ADJ", + "cruz_NOUN_rojo_ADJ", + "cruz_PROPN_azul_PROPN", + "cruz_PROPN_roja_PROPN", + "cruz_PROPN_rojo_ADJ", + "cruz_PROPN_verde_PROPN", + "cruzar_VERB_ilegalmente_ADV", + "crystal_PROPN_palace_PROPN", + "crédito_NOUN_blando_ADJ", + "crédito_NOUN_cedido_ADJ", + "crédito_NOUN_consignado_ADJ", + "crédito_NOUN_contingente_ADJ", + "crédito_NOUN_garantizado_ADJ", + "crédito_NOUN_hipotecario_ADJ", + "crédito_NOUN_otorgado_ADJ", + "crédito_NOUN_transferido_ADJ", + "crédito_PROPN_oficial_PROPN", + "crédito_PROPN_público_PROPN", + "crítica_NOUN_literario_ADJ", + "crítica_NOUN_vertido_ADJ", + "crítico_NOUN_literario_ADJ", + "crónica_NOUN_onu_PROPN", + "cs_PROPN_señor_NOUN", + "cs_PROPN_señorías_PROPN", + "cska_PROPN_moscú_PROPN", + "cta_PROPN_autónoma_PROPN", + "cuadragésimo_ADJ_aniversario_NOUN", + "cuadragésimo_ADJ_cuarto_ADJ", + "cuadragésimo_ADJ_noveno_ADJ", + "cuadragésimo_ADJ_octavo_ADJ", + "cuadragésimo_ADJ_quinto_ADJ", + "cuadragésimo_ADJ_sexto_ADJ", + "cuadragésimo_ADJ_séptimo_ADJ", + "cuadragésimo_ADJ_tercer_ADJ", + "cuadragésimo_NOUN_octavo_ADJ", + "cuadrangular_ADJ_solitario_ADJ", + "cuadro_NOUN_conexo_NOUN", + "cuadro_NOUN_infra_ADV", + "cuadro_NOUN_infra_PROPN", + "cuadro_NOUN_orgánico_ADJ", + "cuadro_NOUN_orgánico_NOUN", + "cuadro_NOUN_orgánico_PROPN", + "cuadro_NOUN_persistente_ADJ", + "cuadro_NOUN_sinóptico_ADJ", + "cuadro_NOUN_tarifario_ADJ", + "cual_PRON_fuerar_AUX", + "cual_PRON_fuerar_VERB", + "cualificación_NOUN_profesional_ADJ", + "cualquier_NOUN_forma_NOUN", + "cualquier_NOUN_manera_NOUN", + "cualquier_NOUN_modo_NOUN", + "cualquiera_DET_atisbo_NOUN", + "cualquiera_DET_eventualidad_NOUN", + "cuando_ADV_menos_ADV", + "cuantioso_ADJ_daño_NOUN", + "cuantioso_ADJ_pérdida_NOUN", + "cuanto_NOUN_al_DET", + "cuanto_PRON_poder_VERB", + "cuartel_NOUN_general_ADJ", + "cuartel_PROPN_general_PROPN", + "cuarto_ADJ_reposición_NOUN", + "cuarto_ADJ_trimestre_ADJ", + "cuarto_ADJ_trimestre_NOUN", + "cuarto_NOUN_intermedio_ADJ", + "cuarto_NOUN_oscuro_ADJ", + "cuasi_PROPN_judicial_ADJ", + "cuatro_NUM_caminos_PROPN", + "cuatro_NUM_cilindro_NOUN", + "cuatro_NUM_decimal_NOUN", + "cuatro_NUM_décima_NOUN", + "cuatro_NUM_vientos_PROPN", + "cuauhtémoc_PROPN_blanco_PROPN", + "cuauhtémoc_PROPN_cárdenas_PROPN", + "cuba_PROPN_dinamarca_PROPN", + "cuba_PROPN_djibouti_NOUN", + "cuba_PROPN_djibouti_PROPN", + "cuba_PROPN_dominico_ADJ", + "cuba_PROPN_ecuador_PROPN", + "cuba_PROPN_egipto_PROPN", + "cubano_ADJ_fidel_PROPN", + "cubano_ADJ_raúl_PROPN", + "cubierta_NOUN_forestal_ADJ", + "cubierta_NOUN_forestales_NOUN", + "cubierta_NOUN_terrestre_ADJ", + "cubierta_NOUN_vegetal_ADJ", + "cuello_NOUN_blanco_ADJ", + "cuello_NOUN_uterino_ADJ", + "cuenca_NOUN_fluvial_ADJ", + "cuenca_NOUN_hidrográfico_ADJ", + "cuenca_NOUN_mediterráneo_ADJ", + "cuenta_NOUN_atrás_NOUN", + "cuenta_NOUN_bancario_ADJ", + "cuenta_NOUN_comprobada_ADJ", + "cuenta_NOUN_mancomunada_ADJ", + "cuenta_NOUN_mancomunado_ADJ", + "cuenta_NOUN_nueva_NOUN", + "cuenta_NOUN_propia_NOUN", + "cuenta_NOUN_regresivo_ADJ", + "cuenta_PROPN_pública_PROPN", + "cuentas_PROPN_europeo_PROPN", + "cuerda_NOUN_flojo_ADJ", + "cuerda_NOUN_vocal_ADJ", + "cuernavaca_PROPN_morelos_PROPN", + "cuero_NOUN_cabelludo_ADJ", + "cuerpo_NOUN_celeste_ADJ", + "cuerpo_NOUN_colegiado_ADJ", + "cuerpo_NOUN_hallado_ADJ", + "cuerpo_NOUN_mutilado_ADJ", + "cuerpo_NOUN_policiaco_ADJ", + "cuerpo_NOUN_quemado_ADJ", + "cuerpo_PROPN_médico_PROPN", + "cuerpo_PROPN_nacional_PROPN", + "cuerpo_PROPN_técnico_PROPN", + "cuesta_NOUN_abajo_ADV", + "cuesta_NOUN_arriba_ADV", + "cuestionario_NOUN_bienal_ADJ", + "cuestionario_NOUN_distribuido_ADJ", + "cuestionario_NOUN_enviado_ADJ", + "cuestión_NOUN_abordada_ADJ", + "cuestión_NOUN_atinent_ADJ", + "cuestión_NOUN_debatida_ADJ", + "cuestión_NOUN_examinada_ADJ", + "cuestión_NOUN_interrelacionada_ADJ", + "cuestión_NOUN_intersectorial_ADJ", + "cuestión_NOUN_intersectoriales_ADJ", + "cuestión_NOUN_planteado_ADJ", + "cuestión_NOUN_sistémica_ADJ", + "cuidado_NOUN_intensivo_ADJ", + "cuidado_NOUN_obstétrico_ADJ", + "cuidado_NOUN_paliativo_ADJ", + "cuidado_NOUN_parental_ADJ", + "cuidado_NOUN_prenatal_ADJ", + "cuidados_PROPN_intensivos_PROPN", + "culiacán_PROPN_sinaloa_PROPN", + "culpa_NOUN_mío_PRON", + "cultivo_NOUN_herbáceo_ADJ", + "cultivo_NOUN_ilícito_ADJ", + "cultivo_NOUN_transgénico_ADJ", + "culto_NOUN_religioso_ADJ", + "cultura_NOUN_pop_ADJ", + "cultura_NOUN_unesco_ADJ", + "cultura_NOUN_unesco_PROPN", + "cultura_PROPN_cubana_PROPN", + "cultura_PROPN_económica_PROPN", + "cultura_PROPN_física_PROPN", + "cultura_PROPN_juventud_PROPN", + "cultura_PROPN_turismo_PROPN", + "cultura_PROPN_unesco_PROPN", + "culturalmente_ADV_adecuado_ADJ", + "culturalmente_ADV_apropiado_ADJ", + "cumbre_NOUN_iberoamericano_ADJ", + "cumbre_NOUN_intercoreano_ADJ", + "cumbre_NOUN_mundial_ADJ", + "cumbre_PROPN_iberoamericana_PROPN", + "cumbre_PROPN_mundial_PROPN", + "cumplimiento_NOUN_cabal_PROPN", + "cumplir_VERB_cabalmente_ADV", + "cumplir_VERB_escrupulosamente_ADV", + "cumplir_VERB_estrictamente_ADV", + "cumplir_VERB_fielmente_ADV", + "cunningham_ADJ_estados_PROPN", + "cuota_NOUN_adeudado_ADJ", + "cuota_NOUN_asignado_ADJ", + "cuota_NOUN_atrasado_ADJ", + "cuota_NOUN_correspondiente_ADJ", + "cuota_NOUN_impagada_ADJ", + "cuota_NOUN_lácteo_ADJ", + "cuota_NOUN_mensual_ADJ", + "cuota_NOUN_pendiente_ADJ", + "cuota_NOUN_prorrateada_ADJ", + "cuota_NOUN_íntegramente_ADV", + "cuota_NOUN_íntegro_ADJ", + "cupo_NOUN_limitado_ADJ", + "currículo_NOUN_escolar_ADJ", + "currículum_NOUN_vitae_ADJ", + "currículum_NOUN_vitae_PROPN", + "cursar_VERB_estudio_NOUN", + "cursar_VERB_invitación_NOUN", + "cursillo_NOUN_práctico_ADJ", + "curso_NOUN_impartido_ADJ", + "curso_NOUN_práctico_ADJ", + "custodia_NOUN_compartido_ADJ", + "custodia_NOUN_policial_ADJ", + "cuyo_PRON_virtud_VERB", + "cuán_ADV_lejos_ADV", + "cuánta_DET_gente_NOUN", + "cuánto_DET_dinero_NOUN", + "cuánto_DET_tiempo_NOUN", + "cuánto_PRON_ascender_VERB", + "cuánto_PRON_costar_VERB", + "cuánto_PRON_durar_VERB", + "cuánto_PRON_tardar_VERB", + "cuánto_PRON_valer_VERB", + "cy_PROPN_young_PROPN", + "cálculo_NOUN_aproximado_ADJ", + "cálida_NOUN_bienvenida_NOUN", + "cálido_ADJ_acogida_NOUN", + "cálido_ADJ_bienvenida_NOUN", + "cálido_ADJ_felicitación_NOUN", + "cámara_NOUN_digital_ADJ", + "cámara_NOUN_empresaria_ADJ", + "cámara_NOUN_fotográfico_ADJ", + "cámara_NOUN_frontal_ADJ", + "cámara_NOUN_lento_ADJ", + "cámara_NOUN_oculto_ADJ", + "cámara_NOUN_trasero_ADJ", + "cámara_PROPN_alta_PROPN", + "cámara_PROPN_baja_PROPN", + "cámara_PROPN_federal_PROPN", + "cámara_PROPN_legislativa_PROPN", + "cáncer_NOUN_cervical_ADJ", + "cáncer_NOUN_colorrectal_ADJ", + "cáncer_NOUN_terminal_ADJ", + "cándido_PROPN_méndez_PROPN", + "cártel_NOUN_mexicano_ADJ", + "cátedra_NOUN_unesco_ADJ", + "cáucaso_NOUN_meridional_ADJ", + "cáucaso_NOUN_septentrional_ADJ", + "cáucaso_PROPN_meridional_ADJ", + "cáucaso_PROPN_meridional_PROPN", + "cédula_NOUN_depositado_ADJ", + "cédula_NOUN_nulo_ADJ", + "cédula_NOUN_válido_ADJ", + "célula_NOUN_canceroso_ADJ", + "célula_NOUN_cancerígeno_ADJ", + "célula_NOUN_madre_NOUN", + "célula_NOUN_madre_PROPN", + "célula_NOUN_nervioso_ADJ", + "célula_NOUN_terrorista_ADJ", + "célula_NOUN_tumoral_ADJ", + "células_NOUN_madre_NOUN", + "céntrico_ADJ_calle_NOUN", + "céntrico_ADJ_plaza_NOUN", + "césar_PROPN_alierta_PROPN", + "césar_PROPN_augusto_PROPN", + "césar_PROPN_duarte_PROPN", + "césar_PROPN_farías_PROPN", + "césar_PROPN_gaviria_PROPN", + "césar_PROPN_mayoral_ADJ", + "césar_PROPN_nava_PROPN", + "césar_PROPN_vallejo_PROPN", + "césped_NOUN_artificial_ADJ", + "césped_NOUN_sintético_ADJ", + "círculo_NOUN_académico_ADJ", + "círculo_NOUN_concéntrico_ADJ", + "círculo_NOUN_empresarial_ADJ", + "círculo_NOUN_vicioso_ADJ", + "círculo_NOUN_virtuoso_ADJ", + "círculo_NOUN_íntimo_ADJ", + "cóctel_NOUN_molotov_NOUN", + "código_NOUN_aduanero_ADJ", + "código_NOUN_deontológico_ADJ", + "código_NOUN_malicioso_ADJ", + "código_NOUN_penal_ADJ", + "código_NOUN_penal_PROPN", + "código_NOUN_procesal_ADJ", + "código_NOUN_qr_PROPN", + "código_NOUN_ético_ADJ", + "código_PROPN_aduanero_PROPN", + "código_PROPN_civil_PROPN", + "código_PROPN_da_PROPN", + "código_PROPN_electoral_PROPN", + "código_PROPN_penal_ADJ", + "código_PROPN_penal_PROPN", + "código_PROPN_procesal_PROPN", + "cómo_ADV_no_PART", + "cónsul_NOUN_honorario_ADJ", + "cónyuge_NOUN_colaborador_ADJ", + "cónyuge_NOUN_supérstite_ADJ", + "córdoba_PROPN_capital_ADJ", + "côte_PROPN_croacia_PROPN", + "côte_PROPN_cuba_PROPN", + "côte_PROPN_minuci_PROPN", + "côte_PROPN_onuci_PROPN", + "cúpula_NOUN_directivo_ADJ", + "da_ADP_bbc_PROPN", + "da_ADP_cidade_PROPN", + "da_ADP_folha_PROPN", + "da_ADP_morte_PROPN", + "da_ADP_onu_PROPN", + "da_ADP_polícia_PROPN", + "da_ADP_região_PROPN", + "da_ADP_silva_PROPN", + "da_ADP_universidade_PROPN", + "da_PROPN_señor_NOUN", + "da_PROPN_silva_PROPN", + "da_PROPN_vinci_PROPN", + "daddy_PROPN_yankee_PROPN", + "daily_PROPN_mail_PROPN", + "daily_PROPN_mirror_PROPN", + "daily_PROPN_news_PROPN", + "daily_PROPN_telegraph_PROPN", + "dakar_PROPN_senegal_PROPN", + "dalai_PROPN_lama_PROPN", + "dallas_PROPN_cowboys_PROPN", + "dallas_PROPN_mavericks_PROPN", + "dallas_PROPN_texas_PROPN", + "dalái_PROPN_lama_PROPN", + "dan_PROPN_brown_PROPN", + "dani_PROPN_alves_PROPN", + "dani_PROPN_pedrosa_PROPN", + "daniel_PROPN_alves_PROPN", + "daniel_PROPN_angelici_PROPN", + "daniel_PROPN_barenboim_PROPN", + "daniel_PROPN_craig_PROPN", + "daniel_PROPN_filmus_PROPN", + "daniel_PROPN_guzmán_PROPN", + "daniel_PROPN_martínez_PROPN", + "daniel_PROPN_ortega_PROPN", + "daniel_PROPN_passarella_PROPN", + "daniel_PROPN_rafecas_PROPN", + "daniel_PROPN_scioli_PROPN", + "danielle_PROPN_tel_NOUN", + "danilo_PROPN_astori_PROPN", + "danilo_PROPN_medina_PROPN", + "danilo_PROPN_türk_PROPN", + "danza_NOUN_clásico_ADJ", + "danza_NOUN_contemporáneo_ADJ", + "dar_VERB_berg_PROPN", + "dar_VERB_bos_PROPN", + "dar_VERB_broek_PROPN", + "dar_VERB_burg_PROPN", + "dar_VERB_cabida_NOUN", + "dar_VERB_carpetazo_NOUN", + "dar_VERB_cobijo_NOUN", + "dar_VERB_pábulo_NOUN", + "dar_VERB_rocha_NOUN", + "dar_VERB_tumbo_NOUN", + "dar_VERB_wyngaert_PROPN", + "darfur_PROPN_meridional_ADJ", + "darfur_PROPN_occidental_ADJ", + "darfur_PROPN_occidental_PROPN", + "darfur_PROPN_septentrional_ADJ", + "darfur_PROPN_septentrional_PROPN", + "darfur_PROPN_unamid_PROPN", + "daria_PROPN_alejandrovna_PROPN", + "darth_PROPN_vader_PROPN", + "darussalam_ADJ_bulgaria_PROPN", + "darussalam_ADJ_burkina_PROPN", + "darussalam_PROPN_bulgaria_PROPN", + "darío_PROPN_benedetto_PROPN", + "das_PROPN_neves_PROPN", + "dato_NOUN_biográfico_ADJ", + "dato_NOUN_biométrico_ADJ", + "dato_NOUN_censal_ADJ", + "dato_NOUN_desagregado_ADJ", + "dato_NOUN_desglosado_ADJ", + "dato_NOUN_empírico_ADJ", + "dato_NOUN_estadístico_ADJ", + "dato_NOUN_fidedigno_ADJ", + "dato_NOUN_geoespacial_ADJ", + "dato_NOUN_identificador_ADJ", + "dato_NOUN_recabado_ADJ", + "dato_NOUN_recopilado_ADJ", + "dato_NOUN_relacional_ADJ", + "dato_NOUN_toponímico_ADJ", + "dauth_PROPN_australia_PROPN", + "david_PROPN_beckham_PROPN", + "david_PROPN_bisbal_PROPN", + "david_PROPN_bowie_PROPN", + "david_PROPN_cameron_PROPN", + "david_PROPN_choquehuanca_PROPN", + "david_PROPN_ferrer_PROPN", + "david_PROPN_kretzmer_PROPN", + "david_PROPN_lynch_PROPN", + "david_PROPN_nalbandian_PROPN", + "david_PROPN_ortiz_PROPN", + "david_PROPN_petraeus_PROPN", + "david_PROPN_silva_PROPN", + "david_PROPN_trezeguet_PROPN", + "david_PROPN_villa_PROPN", + "david_PROPN_weissbrodt_PROPN", + "davos_PROPN_suiza_PROPN", + "daw_PROPN_aung_PROPN", + "dax_PROPN_alemán_ADJ", + "dayton_PROPN_parís_PROPN", + "dañar_VERB_gravemente_ADV", + "dañar_VERB_seriamente_ADV", + "daño_NOUN_causado_ADJ", + "daño_NOUN_cerebral_ADJ", + "daño_NOUN_colateral_ADJ", + "daño_NOUN_infligido_ADJ", + "daño_NOUN_irreparable_ADJ", + "daño_NOUN_irreversible_ADJ", + "daño_NOUN_material_ADJ", + "daño_NOUN_moral_ADJ", + "daño_NOUN_ocasionado_ADJ", + "daño_NOUN_patrimonial_ADJ", + "daño_NOUN_provocado_ADJ", + "daño_NOUN_sensible_ADJ", + "daño_NOUN_sufrido_ADJ", + "daño_NOUN_transfronterizo_ADJ", + "dc_PROPN_comics_PROPN", + "debajo_ADV_del_DET", + "debate_NOUN_interactivo_ADJ", + "debate_NOUN_televisado_ADJ", + "debate_NOUN_temático_ADJ", + "debatir_VERB_ampliamente_ADV", + "debeer_AUX_reflexionar_VERB", + "deber_NOUN_cumplido_ADJ", + "deber_NOUN_cívico_ADJ", + "deber_NOUN_moral_ADJ", + "deber_VERB_fundamentalmente_ADV", + "deber_VERB_principalmente_ADV", + "debidamente_ADV_acreditado_ADJ", + "debidamente_ADV_autorizado_ADJ", + "debidamente_ADV_calificado_ADJ", + "debidamente_ADV_capacitado_ADJ", + "debidamente_ADV_certificado_ADJ", + "debidamente_ADV_cualificado_ADJ", + "debidamente_ADV_documentado_ADJ", + "debidamente_ADV_equipado_ADJ", + "debidamente_ADV_fundamentado_ADJ", + "debidamente_ADV_informado_ADJ", + "debidamente_ADV_justificado_ADJ", + "debidamente_ADV_ratificado_ADJ", + "debidamente_ADV_reflejado_ADJ", + "debido_ADJ_al_DET", + "debido_ADJ_diligencia_NOUN", + "debilidad_NOUN_estructural_ADJ", + "decenio_NOUN_transcurrido_ADJ", + "decidir_VERB_aplazar_VERB", + "decidir_VERB_libre_ADV", + "decidir_VERB_prorratear_VERB", + "decidir_VERB_prorrogar_VERB", + "decimonoveno_ADJ_período_NOUN", + "decimoquinto_ADJ_aniversario_NOUN", + "decimotercer_ADJ_informe_NOUN", + "decimotercero_ADJ_conferencia_NOUN", + "decir_VERB_basta_ADV", + "decir_VERB_basta_NOUN", + "decisión_NOUN_adoptado_ADJ", + "decisión_NOUN_fundamentada_ADJ", + "decisión_NOUN_impugnado_ADJ", + "decisión_NOUN_interlocutoria_ADJ", + "decisión_PROPN_marco_NOUN", + "declaración_NOUN_formulado_ADJ", + "declaración_NOUN_indagatorio_ADJ", + "declaración_NOUN_interpretativa_ADJ", + "declaración_NOUN_interpretativo_ADJ", + "declaración_NOUN_introductoria_ADJ", + "declaración_NOUN_introductorio_ADJ", + "declaración_NOUN_jurado_ADJ", + "declaración_NOUN_representant_ADJ", + "declaración_NOUN_solemne_ADJ", + "declaración_NOUN_testimonial_ADJ", + "declaración_NOUN_universal_PROPN", + "declaración_PROPN_política_PROPN", + "declaración_PROPN_universal_ADJ", + "declaración_PROPN_universal_PROPN", + "declarado_ADJ_culpable_ADJ", + "declarado_ADJ_culpable_NOUN", + "declarado_ADJ_patrimonio_PROPN", + "declarar_VERB_abierto_ADJ", + "declarar_VERB_admisible_ADJ", + "declarar_VERB_clausurado_ADJ", + "declarar_VERB_culpable_ADJ", + "declarar_VERB_culpable_NOUN", + "declarar_VERB_desierto_ADJ", + "declarar_VERB_improcedente_ADJ", + "declarar_VERB_inadmisibl_ADJ", + "declarar_VERB_inadmisible_ADJ", + "declarar_VERB_incompetente_ADJ", + "declarar_VERB_inconstitucional_ADJ", + "declarar_VERB_infundado_ADJ", + "declarar_VERB_inocente_ADJ", + "declarar_VERB_insolvente_ADJ", + "declarar_VERB_inválido_ADJ", + "declarar_VERB_nulo_ADJ", + "declarar_VERB_solemnemente_ADV", + "declinar_VERB_comentar_VERB", + "decreto_NOUN_legislativo_ADJ", + "decreto_NOUN_nº_NOUN", + "decreto_NOUN_nº_NUM", + "decreto_NOUN_nº_PROPN", + "decreto_NOUN_nº_SYM", + "decreto_NOUN_presidencial_ADJ", + "decreto_NOUN_reglamentario_ADJ", + "decreto_NOUN_supremo_ADJ", + "decreto_PROPN_ley_PROPN", + "decreto_PROPN_supremo_PROPN", + "dedere_PROPN_aut_PROPN", + "dedicación_NOUN_exclusivo_ADJ", + "dedicación_NOUN_parcial_ADJ", + "dedicado_ADJ_específicamente_ADV", + "dedicado_ADJ_exclusivamente_ADV", + "dedo_NOUN_acusador_ADJ", + "dedo_NOUN_gordo_ADJ", + "dedo_NOUN_índice_NOUN", + "deducción_NOUN_fiscal_ADJ", + "defecto_NOUN_congénito_ADJ", + "defensa_NOUN_antiaéreo_ADJ", + "defensa_NOUN_antimisil_ADJ", + "defensa_NOUN_rival_ADJ", + "defensa_PROPN_civil_PROPN", + "defensa_PROPN_nacional_PROPN", + "defensor_PROPN_sporting_PROPN", + "deficiencia_NOUN_detectado_ADJ", + "deficiencia_NOUN_estructural_ADJ", + "deficiencia_NOUN_observado_ADJ", + "deficiencia_NOUN_señalada_ADJ", + "deficiencia_NOUN_visual_ADJ", + "definar_VERB_claramente_ADV", + "definir_VERB_claramente_ADV", + "degradación_NOUN_ambiental_ADJ", + "degradación_NOUN_forestal_ADJ", + "degradación_NOUN_medioambiental_ADJ", + "deir_PROPN_ezzor_PROPN", + "dejar_VERB_boquiabierto_ADJ", + "dejar_VERB_constancia_NOUN", + "dejar_VERB_entrever_VERB", + "dejar_VERB_perplejo_ADJ", + "dejar_VERB_traslucir_VERB", + "dejem_NOUN_tú_PRON", + "dejemir_VERB_yo_VERB", + "dejemo_NOUN_yo_PRON", + "del_DET_cincuentenario_NOUN", + "del_DET_grupo_PROPN", + "delantero_NOUN_argentino_ADJ", + "delantero_NOUN_brasileño_ADJ", + "delantero_NOUN_chileno_ADJ", + "delantero_NOUN_colombiano_ADJ", + "delantero_NOUN_portugués_ADJ", + "delantero_NOUN_uruguayo_ADJ", + "delcy_PROPN_rodríguez_PROPN", + "delegación_NOUN_cuauhtémoc_PROPN", + "delegación_NOUN_iztapalapa_PROPN", + "delegación_NOUN_patrocinador_ADJ", + "delegado_NOUN_sindical_ADJ", + "deliberación_NOUN_mantenido_ADJ", + "deliberación_NOUN_sustantiva_ADJ", + "deliberar_VERB_acerca_ADV", + "delicado_ADJ_equilibrio_NOUN", + "delictivo_ADJ_organizado_ADJ", + "delictivo_ADJ_transnacional_ADJ", + "delimitación_NOUN_marítimo_ADJ", + "delimitar_VERB_claramente_ADV", + "delincuencia_NOUN_afiliado_ADJ", + "delincuencia_NOUN_cibernético_ADJ", + "delincuencia_NOUN_juvenil_ADJ", + "delincuencia_NOUN_organizado_ADJ", + "delincuencia_NOUN_transnacional_ADJ", + "delincuencia_PROPN_organizada_PROPN", + "delincuente_NOUN_adulto_ADJ", + "delincuente_NOUN_juvenil_ADJ", + "delito_NOUN_castigado_ADJ", + "delito_NOUN_cibernético_ADJ", + "delito_NOUN_cometido_ADJ", + "delito_NOUN_determinante_ADJ", + "delito_NOUN_doloso_ADJ", + "delito_NOUN_penado_ADJ", + "delito_NOUN_punible_ADJ", + "delito_NOUN_tipificado_ADJ", + "delito_PROPN_onudd_PROPN", + "delito_PROPN_unodc_PROPN", + "delitos_PROPN_económicos_PROPN", + "delitos_PROPN_electorales_PROPN", + "delitos_PROPN_sexuales_PROPN", + "della_PROPN_sera_PROPN", + "demanda_NOUN_agregado_ADJ", + "demanda_NOUN_insatisfecho_ADJ", + "demanda_NOUN_interpuesto_ADJ", + "demanda_NOUN_lícito_ADJ", + "demasiado_ADV_ambicioso_ADJ", + "demasiado_ADV_caro_ADJ", + "demasiado_ADV_costoso_ADJ", + "demasiado_ADV_lejos_ADV", + "demasiado_ADV_lento_ADJ", + "demasiado_ADV_oneroso_ADJ", + "demasiado_ADV_optimista_ADJ", + "demasiado_ADV_pronto_ADJ", + "demasiado_ADV_pronto_ADV", + "demasiado_ADV_restrictivo_ADJ", + "demasiado_ADV_rígido_ADJ", + "demasiado_ADV_tarde_ADV", + "demasiado_ADV_vago_ADJ", + "demasiado_DET_facilidad_NOUN", + "demasiado_DET_frecuencia_NOUN", + "demencia_NOUN_senil_ADJ", + "demi_PROPN_lovato_PROPN", + "demi_PROPN_moore_PROPN", + "democracia_NOUN_liberal_ADJ", + "democracia_NOUN_multipartidista_ADJ", + "democracia_NOUN_participativo_ADJ", + "democracia_NOUN_pluralista_ADJ", + "democracia_NOUN_representativo_ADJ", + "democracia_PROPN_cristiana_PROPN", + "democracia_PROPN_real_PROPN", + "democratic_PROPN_republic_PROPN", + "democrática_PROPN_popular_PROPN", + "democráticamente_ADV_electo_ADJ", + "democráticamente_ADV_elegido_ADJ", + "demora_NOUN_indebido_ADJ", + "demora_NOUN_innecesario_ADJ", + "demá_PRON_discurso_NOUN", + "demás_CCONJ_personal_ADJ", + "demócratas_PROPN_europeos_PROPN", + "denegar_VERB_refugio_NOUN", + "dengue_NOUN_hemorrágico_ADJ", + "denis_PROPN_sassou_PROPN", + "denisov_ADJ_presidente_NOUN", + "denodado_ADJ_esfuerzo_NOUN", + "denominación_NOUN_empleado_ADJ", + "denominado_ADJ_colectivamente_ADV", + "denominador_NOUN_común_ADJ", + "densamente_ADV_poblado_ADJ", + "densidad_NOUN_demográfico_ADJ", + "densidad_NOUN_poblacional_ADJ", + "denso_ADJ_nube_NOUN", + "denuncia_NOUN_anónimo_ADJ", + "denuncia_NOUN_interpuesto_ADJ", + "denuncia_NOUN_surtir_VERB", + "denunciar_VERB_penalmente_ADV", + "denunciar_VERB_públicamente_ADV", + "denver_PROPN_colorado_PROPN", + "departamento_PROPN_administrativo_PROPN", + "departamento_PROPN_ejecutivo_PROPN", + "departamento_PROPN_judicial_PROPN", + "departamento_PROPN_vasco_ADJ", + "department_PROPN_of_ADP", + "department_PROPN_of_PROPN", + "dependencia_NOUN_común_ADJ", + "dependencia_PROPN_común_ADJ", + "dependencia_PROPN_común_PROPN", + "deplorabl_ADJ_condición_NOUN", + "deplorar_VERB_profundamente_ADV", + "depois_PROPN_da_ADP", + "deportación_NOUN_masivo_ADJ", + "deporte_NOUN_acuático_ADJ", + "deporte_NOUN_olímpico_ADJ", + "deportes_PROPN_diario_PROPN", + "deportes_PROPN_titel_PROPN", + "deportes_PROPN_tolima_PROPN", + "deportivo_PROPN_cali_PROPN", + "deportivo_PROPN_cuenca_PROPN", + "deportivo_PROPN_madryn_PROPN", + "deportivo_PROPN_municipal_PROPN", + "deportivo_PROPN_pereira_PROPN", + "deportivo_PROPN_quito_PROPN", + "deportivo_PROPN_saprissa_PROPN", + "deportivo_PROPN_táchira_PROPN", + "depresión_NOUN_tropical_ADJ", + "depuesto_ADJ_presidente_NOUN", + "depuración_NOUN_étnico_ADJ", + "depurar_VERB_responsabilidad_NOUN", + "depósito_NOUN_bancario_ADJ", + "der_PROPN_bildunterschrift_PROPN", + "der_PROPN_spiegel_PROPN", + "derecho_NOUN_antidumping_PROPN", + "derecho_NOUN_consuetudinario_ADJ", + "derecho_NOUN_inalienabl_ADJ", + "derecho_NOUN_inalienable_ADJ", + "derecho_NOUN_inmanente_ADJ", + "derecho_NOUN_mercantil_ADJ", + "derecho_NOUN_mercantil_PROPN", + "derecho_NOUN_sucesorio_ADJ", + "derecho_PROPN_administrativo_PROPN", + "derecho_PROPN_canónico_PROPN", + "derecho_PROPN_comunitario_ADJ", + "derecho_PROPN_constitucional_PROPN", + "derecho_PROPN_contractual_ADJ", + "derecho_PROPN_espacial_PROPN", + "derecho_PROPN_internacional_PROPN", + "derecho_PROPN_mercantil_PROPN", + "derecho_PROPN_penal_PROPN", + "derechos_NOUN_humanos_NOUN", + "derechos_PROPN_civil_ADJ", + "derechos_PROPN_civiles_PROPN", + "derechos_PROPN_económicos_PROPN", + "derechos_PROPN_fundamentales_PROPN", + "derechos_PROPN_humanos_PROPN", + "derek_PROPN_jeter_PROPN", + "deriva_NOUN_pesca_NOUN", + "derrama_NOUN_económico_ADJ", + "derramar_VERB_lágrima_NOUN", + "derramar_VERB_sangre_NOUN", + "derrame_NOUN_cerebral_ADJ", + "derrick_PROPN_rose_PROPN", + "derrota_NOUN_consecutivo_ADJ", + "derrota_NOUN_seguido_ADJ", + "derrota_NOUN_sufrido_ADJ", + "des_ADP_bildes_PROPN", + "des_ADP_droit_NOUN", + "des_ADP_droits_PROPN", + "des_ADP_femmes_PROPN", + "des_ADP_nations_PROPN", + "des_ADV_traités_PROPN", + "desagradable_ADJ_sorpresa_NOUN", + "desagüe_NOUN_pluvial_ADJ", + "desalojo_NOUN_forzado_ADJ", + "desalojo_NOUN_forzoso_ADJ", + "desaparecido_ADJ_kuwaitíes_PROPN", + "desaparición_NOUN_denunciado_ADJ", + "desaparición_NOUN_forzado_ADJ", + "desaparición_NOUN_forzoso_ADJ", + "desarme_NOUN_desmovilización_NOUN", + "desarme_NOUN_nuclear_ADJ", + "desarme_NOUN_unidir_NOUN", + "desarrollo_NOUN_bridgetown_NOUN", + "desarrollo_NOUN_gnud_PROPN", + "desarrollo_NOUN_igad_PROPN", + "desarrollo_NOUN_sostenible_ADJ", + "desarrollo_PROPN_agrario_PROPN", + "desarrollo_PROPN_agropecuario_PROPN", + "desarrollo_PROPN_agrícola_PROPN", + "desarrollo_PROPN_bid_PROPN", + "desarrollo_PROPN_comunitario_PROPN", + "desarrollo_PROPN_económico_PROPN", + "desarrollo_PROPN_económicos_PROPN", + "desarrollo_PROPN_humano_PROPN", + "desarrollo_PROPN_industrial_PROPN", + "desarrollo_PROPN_infantil_PROPN", + "desarrollo_PROPN_integral_PROPN", + "desarrollo_PROPN_local_PROPN", + "desarrollo_PROPN_pnud_PROPN", + "desarrollo_PROPN_productivo_PROPN", + "desarrollo_PROPN_regional_PROPN", + "desarrollo_PROPN_rural_PROPN", + "desarrollo_PROPN_social_PROPN", + "desarrollo_PROPN_sostenible_PROPN", + "desarrollo_PROPN_sustentable_PROPN", + "desarrollo_PROPN_tecnológico_PROPN", + "desarrollo_PROPN_territorial_PROPN", + "desarrollo_PROPN_urbano_PROPN", + "desastre_NOUN_ecológico_ADJ", + "desastre_NOUN_natural_ADJ", + "desastre_NOUN_provocado_ADJ", + "desastres_PROPN_naturales_PROPN", + "desayuno_NOUN_escolar_ADJ", + "desayuno_NOUN_informativo_ADJ", + "descanso_NOUN_eterno_ADJ", + "descanso_NOUN_semanal_ADJ", + "descarga_NOUN_eléctrico_ADJ", + "descarga_NOUN_gratuito_ADJ", + "descarga_NOUN_ilegal_ADJ", + "descenso_NOUN_interanual_ADJ", + "descolonización_NOUN_cuarto_ADJ", + "desconfianza_NOUN_mutuo_ADJ", + "desconocer_VERB_cuándo_PRON", + "descontento_NOUN_popular_ADJ", + "describir_VERB_brevemente_ADV", + "describir_VERB_detalladamente_ADV", + "descripción_NOUN_detallado_ADJ", + "descripción_NOUN_genérico_ADJ", + "descrito_ADJ_anteriormente_ADV", + "descubrimiento_NOUN_científico_ADJ", + "desde_ADP_mediados_ADV", + "desde_ADP_pequeño_NOUN", + "desde_NOUN_luego_ADV", + "desear_VERB_ardientemente_ADV", + "desear_VERB_fervientemente_ADV", + "desear_VERB_inscribir_VERB", + "desecho_NOUN_consistente_ADJ", + "desecho_NOUN_espacial_ADJ", + "desecho_NOUN_generado_ADJ", + "desecho_NOUN_líquido_ADJ", + "desecho_NOUN_marino_ADJ", + "desecho_NOUN_peligroso_ADJ", + "desecho_NOUN_radiactivo_ADJ", + "desecho_NOUN_sólido_ADJ", + "desecho_NOUN_tóxico_ADJ", + "desempleo_NOUN_juvenil_ADJ", + "desenlace_NOUN_fatal_ADJ", + "deseo_NOUN_expresado_ADJ", + "deseo_NOUN_expreso_ADJ", + "desequilibrio_NOUN_estructural_ADJ", + "desequilibrio_NOUN_geográfico_ADJ", + "desequilibrio_NOUN_macroeconómico_ADJ", + "deserción_NOUN_escolar_ADJ", + "desertificación_NOUN_cld_PROPN", + "desfile_NOUN_cívico_ADJ", + "desgaste_NOUN_físico_ADJ", + "desglose_NOUN_detallado_ADJ", + "desgravación_NOUN_fiscal_ADJ", + "desigual_ADJ_distribución_NOUN", + "desigualdad_NOUN_salarial_ADJ", + "desintegración_NOUN_familiar_ADJ", + "deslindar_VERB_responsabilidad_NOUN", + "desminado_ADJ_humanitario_ADJ", + "desminado_NOUN_humanitario_ADJ", + "desnutrición_NOUN_agudo_ADJ", + "desnutrición_NOUN_crónico_ADJ", + "desnutrición_NOUN_infantil_ADJ", + "desobediencia_NOUN_civil_ADJ", + "desorden_NOUN_mental_ADJ", + "despacho_PROPN_oval_PROPN", + "despejar_VERB_duda_NOUN", + "despertar_VERB_sobresaltado_ADJ", + "despertar_VERB_sospecha_NOUN", + "despido_NOUN_colectivo_ADJ", + "despido_NOUN_improcedente_ADJ", + "despido_NOUN_injustificado_ADJ", + "despido_NOUN_masivo_ADJ", + "despierta_PROPN_américa_PROPN", + "desplazado_ADJ_internamente_ADV", + "desplazado_ADJ_interno_ADJ", + "desplazado_NOUN_interno_ADJ", + "desplazamiento_NOUN_forzado_ADJ", + "desplazamiento_NOUN_forzoso_ADJ", + "desplazamiento_NOUN_interno_ADJ", + "desplazamiento_NOUN_masivo_ADJ", + "despliegue_NOUN_estratégico_ADJ", + "despliegue_NOUN_gradual_ADJ", + "despliegue_NOUN_preventivo_ADJ", + "despliegue_NOUN_rápido_ADJ", + "despotricar_VERB_contra_ADP", + "desprender_VERB_claramente_ADV", + "desproporcionadamente_ADV_afectado_ADJ", + "desproporcionadamente_ADV_alto_ADJ", + "desproporcionadamente_ADV_elevado_ADJ", + "destacado_ADJ_trayectoria_NOUN", + "destacamento_NOUN_policial_ADJ", + "destinado_ADJ_específicamente_ADV", + "destino_NOUN_preferido_ADJ", + "destino_NOUN_turístico_ADJ", + "destitución_NOUN_sumario_ADJ", + "destrucción_NOUN_deliberado_ADJ", + "destrucción_NOUN_masivo_ADJ", + "desventaja_NOUN_competitivo_ADJ", + "desventaja_NOUN_estructural_ADJ", + "desventaja_NOUN_geográfico_ADJ", + "desvíar_VERB_hacia_ADP", + "detección_NOUN_precoz_ADJ", + "detección_NOUN_temprano_ADJ", + "detectar_VERB_desalentar_VERB", + "detectar_VERB_irregularidad_NOUN", + "detención_NOUN_arbitrario_ADJ", + "detención_NOUN_domiciliario_ADJ", + "detención_NOUN_encarcelamiento_NOUN", + "detención_NOUN_incomunicado_ADJ", + "detención_NOUN_preventivo_ADJ", + "detener_VERB_arbitrariamente_ADV", + "detenido_ADJ_arbitrariamente_ADV", + "detenido_ADJ_ilegalmente_ADV", + "detenido_NOUN_desaparecido_ADJ", + "detenido_NOUN_libanés_ADJ", + "deteriorar_VERB_considerablemente_ADV", + "deterioro_NOUN_cognitivo_ADJ", + "deuda_NOUN_contraído_ADJ", + "deuda_NOUN_externo_ADJ", + "deuda_NOUN_ilegítimo_ADJ", + "deuda_NOUN_incobrabl_ADJ", + "deuda_NOUN_insostenible_ADJ", + "deuda_NOUN_soberano_ADJ", + "deudor_NOUN_insolvente_ADJ", + "deutsche_PROPN_bank_PROPN", + "deutsche_PROPN_telekom_PROPN", + "deutsche_PROPN_welle_PROPN", + "devastación_NOUN_causado_ADJ", + "devastador_ADJ_terremoto_NOUN", + "developing_PROPN_countries_PROPN", + "development_PROPN_and_PROPN", + "development_PROPN_cooperation_PROPN", + "development_PROPN_corporation_PROPN", + "development_PROPN_goals_PROPN", + "development_PROPN_in_ADP", + "development_PROPN_of_PROPN", + "development_PROPN_programme_PROPN", + "development_PROPN_report_PROPN", + "devengar_VERB_interés_NOUN", + "devenir_VERB_interés_NOUN", + "di_PROPN_lello_PROPN", + "di_PROPN_maría_PROPN", + "di_PROPN_natale_PROPN", + "di_PROPN_palma_PROPN", + "di_PROPN_pietro_PROPN", + "di_PROPN_santo_PROPN", + "di_PROPN_stéfano_PROPN", + "di_PROPN_tella_PROPN", + "di_PROPN_zeo_PROPN", + "diablo_NOUN_rojo_ADJ", + "diablos_PROPN_rojos_PROPN", + "diagnosticar_VERB_cáncer_NOUN", + "diagnóstico_NOUN_precoz_ADJ", + "diagnóstico_NOUN_prenatal_ADJ", + "diagnóstico_NOUN_temprano_ADJ", + "diamante_NOUN_procedente_ADJ", + "diametralmente_ADV_opuesto_ADJ", + "diana_PROPN_quer_PROPN", + "diario_NOUN_abc_PROPN", + "diario_NOUN_bild_PROPN", + "diario_NOUN_británico_ADJ", + "diario_NOUN_clarín_PROPN", + "diario_NOUN_daily_PROPN", + "diario_NOUN_digital_ADJ", + "diario_NOUN_folha_PROPN", + "diario_NOUN_granma_PROPN", + "diario_NOUN_marca_PROPN", + "diario_NOUN_reforma_PROPN", + "diario_PROPN_co_PROPN", + "diario_PROPN_digital_PROPN", + "diario_PROPN_extra_PROPN", + "diario_PROPN_hoy_PROPN", + "diario_PROPN_oficial_PROPN", + "diario_PROPN_resumen_PROPN", + "diario_PROPN_tiempo_PROPN", + "diarioas_PROPN_titel_PROPN", + "dibujo_NOUN_animado_ADJ", + "dic_NOUN_efe_PROPN", + "dicho_ADJ_corrección_NOUN", + "dicho_ADJ_ysla_NOUN", + "dicho_NOUN_popular_ADJ", + "dick_PROPN_cheney_PROPN", + "dictadura_NOUN_comunista_ADJ", + "dictadura_NOUN_franquista_ADJ", + "dictadura_NOUN_militar_ADJ", + "dictamen_NOUN_aprobado_ADJ", + "dictamen_NOUN_conforme_ADJ", + "dictamen_NOUN_emitido_ADJ", + "dictamen_NOUN_favorable_ADJ", + "dictamen_NOUN_pericial_ADJ", + "dictar_VERB_auto_NOUN", + "dictar_VERB_sentencia_NOUN", + "dictar_VERB_órden_NOUN", + "dictámen_NOUN_emitido_ADJ", + "did_PROPN_not_PROPN", + "didier_PROPN_drogba_PROPN", + "dieciocho_NUM_mes_NOUN", + "diego_PROPN_armando_PROPN", + "diego_PROPN_cagna_PROPN", + "diego_PROPN_costa_PROPN", + "diego_PROPN_forlán_PROPN", + "diego_PROPN_luna_PROPN", + "diego_PROPN_lópez_PROPN", + "diego_PROPN_maradona_PROPN", + "diego_PROPN_milito_PROPN", + "diego_PROPN_portales_PROPN", + "diego_PROPN_rivera_PROPN", + "diego_PROPN_simeone_PROPN", + "diego_PROPN_torres_PROPN", + "diego_PROPN_valderas_PROPN", + "diente_NOUN_apretado_ADJ", + "dieta_NOUN_diario_ADJ", + "dieta_NOUN_equilibrado_ADJ", + "dieta_NOUN_mediterráneo_ADJ", + "dieta_NOUN_saludable_ADJ", + "dieta_NOUN_sano_ADJ", + "diez_NUM_minuto_NOUN", + "dif_PROPN_estatal_ADJ", + "dif_PROPN_estatal_PROPN", + "dif_PROPN_municipal_ADJ", + "dif_PROPN_municipal_PROPN", + "diferencia_NOUN_abismal_ADJ", + "diferencia_NOUN_cambiario_ADJ", + "diferencia_NOUN_horario_ADJ", + "diferencia_NOUN_irreconciliabl_ADJ", + "diferencia_NOUN_salarial_ADJ", + "diferente_DET_calibre_NOUN", + "diferir_VERB_considerablemente_ADV", + "dificultad_NOUN_encontrado_ADJ", + "dificultad_NOUN_experimentado_ADJ", + "dificultad_NOUN_surgido_ADJ", + "dificultar_VERB_enormemente_ADV", + "dificultar_VERB_gravemente_ADV", + "difundir_VERB_ampliamente_ADV", + "difundir_VERB_propaganda_NOUN", + "difícil_ADJ_cuantificar_VERB", + "difícil_ADJ_predecir_VERB", + "digam_PROPN_tú_PRON", + "dignidad_NOUN_humano_ADJ", + "dignidad_NOUN_inherente_ADJ", + "dignidad_NOUN_intrínseco_ADJ", + "digámoslo_VERB_así_ADV", + "dilación_NOUN_indebido_ADJ", + "dilatado_ADJ_carrera_NOUN", + "dilatado_ADJ_experiencia_NOUN", + "dilatado_ADJ_trayectoria_NOUN", + "diligencia_NOUN_debido_ADJ", + "diligencia_NOUN_instruida_ADJ", + "diligencia_NOUN_preliminar_ADJ", + "diligencia_NOUN_previo_ADJ", + "dilma_PROPN_rousseff_PROPN", + "dimensión_NOUN_septentrional_ADJ", + "dimensión_PROPN_septentrional_PROPN", + "dina_PROPN_huapi_PROPN", + "dinamarca_PROPN_djibouti_NOUN", + "dinamarca_PROPN_djibouti_PROPN", + "dinamarca_PROPN_dominico_ADJ", + "dinamarca_PROPN_ecuador_PROPN", + "dinamarca_PROPN_egipto_PROPN", + "dinamarca_PROPN_eslovaquia_PROPN", + "dinamarca_PROPN_eslovenia_PROPN", + "dinamarca_PROPN_estonia_PROPN", + "dinamarca_PROPN_finlandia_PROPN", + "dinar_NOUN_iraquí_ADJ", + "dinar_NOUN_iraquí_NOUN", + "dinar_NOUN_kuwaitíes_PROPN", + "dinares_NOUN_iraquí_ADJ", + "dinares_NOUN_kuwaitíes_PROPN", + "dinares_PROPN_kuwaitíes_PROPN", + "dinero_NOUN_gastado_ADJ", + "dinero_NOUN_invertido_ADJ", + "dinero_NOUN_recaudado_ADJ", + "dinámica_NOUN_demográfico_ADJ", + "dios_INTJ_mío_PRON", + "dios_NOUN_manda_NOUN", + "dios_PROPN_bendecir_VERB", + "dios_PROPN_gracias_PROPN", + "dios_PROPN_manda_NOUN", + "dios_PROPN_mio_PROPN", + "diosdado_PROPN_cabello_PROPN", + "dip_PROPN_ong_PROPN", + "diplomacia_NOUN_estadounidense_ADJ", + "diplomacia_NOUN_multilateral_ADJ", + "diplomacia_NOUN_preventivo_ADJ", + "diplomacia_NOUN_ruso_ADJ", + "diplomático_ADJ_acreditado_ADJ", + "diplomático_NOUN_cubano_ADJ", + "diplomático_NOUN_estadounidense_ADJ", + "diplomático_NOUN_ruso_ADJ", + "diputación_NOUN_federal_ADJ", + "diputación_NOUN_local_ADJ", + "diputación_NOUN_provincial_ADJ", + "diputación_PROPN_foral_PROPN", + "diputación_PROPN_permanente_PROPN", + "diputación_PROPN_provincial_PROPN", + "diputada_NOUN_federal_ADJ", + "diputada_NOUN_provincial_ADJ", + "diputada_NOUN_socialista_ADJ", + "diputado_NOUN_electo_ADJ", + "diputado_NOUN_laborista_ADJ", + "diputado_NOUN_oficialista_ADJ", + "diputado_NOUN_panista_ADJ", + "diputado_NOUN_socialista_ADJ", + "diputado_PROPN_nacional_PROPN", + "dique_NOUN_seco_ADJ", + "dirar_VERB_dirar_VERB", + "direcciones_PROPN_generales_PROPN", + "dirección_NOUN_correcto_ADJ", + "dirección_NOUN_electrónico_ADJ", + "dirección_NOUN_ip_PROPN", + "dirección_NOUN_opuesto_ADJ", + "dirección_NOUN_postal_ADJ", + "dirección_NOUN_variable_ADJ", + "dirección_PROPN_departamental_PROPN", + "dirección_PROPN_general_PROPN", + "dirección_PROPN_municipal_PROPN", + "dirección_PROPN_nacional_PROPN", + "dirección_PROPN_provincial_PROPN", + "dirección_PROPN_regional_PROPN", + "directa_ADV_o_CCONJ", + "directamente_ADV_proporcional_ADJ", + "directiva_NOUN_ce_NOUN", + "directiva_NOUN_ce_SYM", + "directiva_NOUN_cee_PROPN", + "directiva_NOUN_ec_PROPN", + "directiva_PROPN_bolkestein_PROPN", + "directiva_PROPN_ce_PROPN", + "directiva_PROPN_cee_PROPN", + "directiva_PROPN_marco_PROPN", + "directivo_ADJ_superior_ADJ", + "directo_ADJ_ied_PROPN", + "director_NOUN_ejecutivo_ADJ", + "director_NOUN_gerente_ADJ", + "director_PROPN_ejecutivo_PROPN", + "director_PROPN_general_PROPN", + "director_PROPN_técnico_PROPN", + "directora_NOUN_ejecutivo_ADJ", + "directora_NOUN_gerente_ADJ", + "directora_PROPN_general_PROPN", + "directorio_NOUN_ejecutivo_ADJ", + "directriz_NOUN_armonizada_ADJ", + "directriz_NOUN_impartida_ADJ", + "directriz_NOUN_toponímica_ADJ", + "directriz_NOUN_véasar_VERB", + "direito_NOUN_humano_ADJ", + "dirigencia_NOUN_estatal_ADJ", + "dirigente_NOUN_albanés_ADJ", + "dirigente_NOUN_campesino_ADJ", + "dirigente_NOUN_estudiantil_ADJ", + "dirigente_NOUN_grecochipriota_ADJ", + "dirigente_NOUN_gremial_ADJ", + "dirigente_NOUN_opositor_ADJ", + "dirigente_NOUN_peronista_ADJ", + "dirigente_NOUN_sindical_ADJ", + "dirigente_NOUN_socialista_ADJ", + "dirigente_NOUN_somalí_ADJ", + "dirigente_NOUN_vecinal_ADJ", + "dirk_PROPN_nowitzki_PROPN", + "discapacidad_NOUN_auditivo_ADJ", + "discapacidad_NOUN_crc_PROPN", + "discapacidad_NOUN_mental_ADJ", + "discapacidad_NOUN_motriz_ADJ", + "discapacidad_NOUN_visual_ADJ", + "discapacitado_NOUN_mental_ADJ", + "disciplina_NOUN_artístico_ADJ", + "disciplina_NOUN_deportivo_ADJ", + "disciplina_NOUN_presupuestario_ADJ", + "disco_NOUN_compacto_ADJ", + "disco_NOUN_duro_ADJ", + "disco_NOUN_rígido_ADJ", + "disco_NOUN_vendido_ADJ", + "disco_NOUN_óptico_ADJ", + "discovery_PROPN_channel_PROPN", + "discriminación_NOUN_alguno_ADJ", + "discriminación_NOUN_fundado_ADJ", + "discriminación_NOUN_racial_ADJ", + "discriminatorio_ADJ_multilateral_ADJ", + "discurso_NOUN_inaugural_ADJ", + "discurso_NOUN_original_ADJ", + "discurso_NOUN_pronunciado_ADJ", + "discurso_NOUN_televisado_ADJ", + "discusión_NOUN_salarial_ADJ", + "discussion_PROPN_paper_PROPN", + "diseñado_ADJ_específicamente_ADV", + "diseñador_NOUN_gráfico_ADJ", + "diseño_NOUN_arquitectónico_ADJ", + "diseño_NOUN_gráfico_ADJ", + "disfrute_NOUN_pleno_ADJ", + "disfunción_NOUN_eréctil_ADJ", + "disidente_NOUN_cubano_ADJ", + "disminución_NOUN_neto_ADJ", + "disminuir_VERB_considerablemente_ADV", + "disminuir_VERB_drásticamente_ADV", + "disminuir_VERB_gradualmente_ADV", + "disminuir_VERB_ligeramente_ADV", + "disminuir_VERB_notablemente_ADV", + "disminuir_VERB_significativamente_ADV", + "disminuir_VERB_sustancialmente_ADV", + "disney_PROPN_channel_PROPN", + "disparar_VERB_bala_NOUN", + "disparar_VERB_cohete_NOUN", + "disparar_VERB_indiscriminadamente_ADV", + "disparidad_NOUN_existente_ADJ", + "disparidad_NOUN_salarial_ADJ", + "disparidad_NOUN_socioeconómico_ADJ", + "disparo_NOUN_cruzado_ADJ", + "disparo_NOUN_efectuado_ADJ", + "disparo_NOUN_lejano_ADJ", + "disparo_NOUN_raso_ADJ", + "dispersión_NOUN_geográfico_ADJ", + "disponibilidad_NOUN_accesibilidad_NOUN", + "dispositivo_NOUN_android_PROPN", + "dispositivo_NOUN_antimanipulación_ADJ", + "dispositivo_NOUN_conectado_ADJ", + "dispositivo_NOUN_explosivo_ADJ", + "dispositivo_NOUN_intrauterino_ADJ", + "dispositivo_NOUN_ios_PROPN", + "dispositivo_NOUN_móvil_ADJ", + "dispositivo_NOUN_portátil_ADJ", + "disputa_NOUN_territorial_ADJ", + "dista_ADJ_mucho_ADV", + "distancia_NOUN_recorrido_ADJ", + "distar_VERB_mucho_ADV", + "distinción_NOUN_alguno_ADJ", + "distinción_NOUN_exclusión_NOUN", + "distinguida_ADJ_señora_NOUN", + "distinguido_ADJ_colega_NOUN", + "distinguido_ADJ_delegado_NOUN", + "distinguido_ADJ_embajador_NOUN", + "distinguido_ADJ_representante_NOUN", + "distinguir_VERB_claramente_ADV", + "distribución_NOUN_desigual_ADJ", + "distribución_NOUN_equitativo_ADJ", + "distribución_NOUN_geográfico_ADJ", + "distribución_NOUN_porcentual_ADJ", + "distribución_NOUN_simultáneo_ADJ", + "distribuir_VERB_ampliamente_ADV", + "distribuir_VERB_equitativamente_ADV", + "distribuir_VERB_folleto_NOUN", + "distribuir_VERB_gratuitamente_ADV", + "district_PROPN_of_PROPN", + "distrito_NOUN_brčko_ADJ", + "distrito_PROPN_capital_PROPN", + "distrito_PROPN_escolar_PROPN", + "distrito_PROPN_federal_PROPN", + "distrito_PROPN_judicial_PROPN", + "distrito_PROPN_sur_PROPN", + "disturbio_NOUN_ocurrido_ADJ", + "disuasión_NOUN_nuclear_ADJ", + "diversidad_NOUN_biológico_ADJ", + "diversidad_NOUN_cultural_ADJ", + "diversidad_NOUN_genético_ADJ", + "diversidad_NOUN_lingüístico_ADJ", + "diversidad_PROPN_biológica_PROPN", + "diversidad_PROPN_cultural_PROPN", + "diverso_ADJ_índole_NOUN", + "divina_PROPN_comedia_PROPN", + "divina_PROPN_pastora_PROPN", + "divina_PROPN_providencia_PROPN", + "divisa_NOUN_estadounidense_ADJ", + "divisa_NOUN_norteamericano_ADJ", + "división_PROPN_central_PROPN", + "división_PROPN_este_PROPN", + "división_PROPN_oeste_PROPN", + "divulgar_VERB_ampliamente_ADV", + "dixo_PROPN_don_PROPN", + "diálogo_NOUN_constructivo_ADJ", + "diálogo_NOUN_entablado_ADJ", + "diálogo_NOUN_fluido_ADJ", + "diálogo_NOUN_franco_ADJ", + "diálogo_NOUN_genuino_ADJ", + "diálogo_NOUN_interactivo_ADJ", + "diálogo_NOUN_interconfesional_ADJ", + "diálogo_NOUN_intercongoleño_ADJ", + "diálogo_NOUN_intercongoleño_NOUN", + "diálogo_NOUN_intercultural_ADJ", + "diálogo_NOUN_interreligioso_ADJ", + "diálogo_NOUN_tripartito_ADJ", + "diálogo_PROPN_nacional_PROPN", + "diáspora_NOUN_africano_ADJ", + "djibouti_NOUN_dominico_ADJ", + "djibouti_NOUN_ecuador_PROPN", + "djibouti_NOUN_egipto_PROPN", + "djibouti_NOUN_república_NOUN", + "djibouti_PROPN_egipto_PROPN", + "dkv_PROPN_joventut_PROPN", + "dmitri_PROPN_medvédev_PROPN", + "do_ADP_ano_NOUN", + "do_ADP_ano_PROPN", + "do_ADP_governo_PROPN", + "do_ADP_ministério_PROPN", + "do_ADP_mundo_PROPN", + "do_ADP_not_PROPN", + "do_ADP_rio_PROPN", + "do_ADP_sul_PROPN", + "do_ADP_you_PROPN", + "doble_ADJ_cabina_NOUN", + "doble_ADJ_calzada_NOUN", + "doble_ADJ_casco_NOUN", + "doble_ADJ_dígito_NOUN", + "doble_ADJ_fila_NOUN", + "doble_ADJ_filo_NOUN", + "doble_ADJ_imposición_NOUN", + "doble_ADJ_incriminación_NOUN", + "doble_ADJ_moral_NOUN", + "doble_ADJ_nacionalidad_NOUN", + "doble_ADJ_pivote_NOUN", + "doble_ADJ_rasero_NOUN", + "doble_ADJ_tributación_NOUN", + "doble_ADJ_vertiente_NOUN", + "doble_NOUN_rasero_ADJ", + "doble_NUM_amonestación_NOUN", + "doce_NUM_mes_NOUN", + "docente_NOUN_universitario_ADJ", + "doctora_NOUN_maría_PROPN", + "doctrina_NOUN_cristiano_ADJ", + "doctrina_NOUN_parot_PROPN", + "documentación_NOUN_justificativo_ADJ", + "documento_NOUN_aplc_PROPN", + "documento_NOUN_cat_NOUN", + "documento_NOUN_ccw_PROPN", + "documento_NOUN_desclasificado_ADJ", + "documento_NOUN_dp_PROPN", + "documento_NOUN_fccc_ADV", + "documento_NOUN_fccc_PROPN", + "documento_NOUN_final_ADJ", + "documento_NOUN_hsp_PROPN", + "documento_NOUN_iccd_ADJ", + "documento_NOUN_iccd_PROPN", + "documento_NOUN_justificativo_ADJ", + "documento_NOUN_negociable_ADJ", + "documento_NOUN_npt_PROPN", + "documento_NOUN_oficial_ADJ", + "documento_NOUN_s_PROPN", + "documento_NOUN_separado_ADJ", + "documento_NOUN_td_PROPN", + "documento_NOUN_unep_PROPN", + "documento_NOUN_unep_VERB", + "documento_NOUN_wt_PROPN", + "documento_PROPN_nacional_PROPN", + "documentos_PROPN_oficial_ADJ", + "does_PROPN_not_PROPN", + "doha_NOUN_qatar_VERB", + "doha_PROPN_qatar_PROPN", + "dois_NUM_ano_NOUN", + "dolor_NOUN_abdominal_ADJ", + "dolor_NOUN_crónico_ADJ", + "dolor_NOUN_muscular_ADJ", + "dolores_PROPN_padierna_PROPN", + "doloroso_ADJ_derrota_NOUN", + "domestic_PROPN_violence_PROPN", + "domicilio_NOUN_conyugal_ADJ", + "domicilio_NOUN_ubicado_ADJ", + "dominación_NOUN_colonial_ADJ", + "dominación_NOUN_extranjero_ADJ", + "domingo_PROPN_cavallo_PROPN", + "domingo_PROPN_faustino_PROPN", + "domingo_PROPN_peppo_PROPN", + "domingo_PROPN_pérez_PROPN", + "dominica_PROPN_ecuador_PROPN", + "dominicano_ADJ_ecuador_PROPN", + "dominicano_ADJ_república_PROPN", + "dominicano_ADJ_rumania_PROPN", + "dominico_ADJ_ecuador_PROPN", + "dominico_ADJ_egipto_PROPN", + "dominico_ADJ_república_NOUN", + "dominio_NOUN_ancestral_ADJ", + "dominio_NOUN_colonial_ADJ", + "don_ADJ_latino_NOUN", + "don_NOUN_alfonso_PROPN", + "don_NOUN_alonso_PROPN", + "don_NOUN_alvaro_PROPN", + "don_NOUN_andrés_PROPN", + "don_NOUN_baltasar_PROPN", + "don_NOUN_benito_PROPN", + "don_NOUN_bernardino_PROPN", + "don_NOUN_braulio_PROPN", + "don_NOUN_celso_PROPN", + "don_NOUN_claudio_PROPN", + "don_NOUN_cándido_PROPN", + "don_NOUN_diego_PROPN", + "don_NOUN_elías_PROPN", + "don_NOUN_eugenio_PROPN", + "don_NOUN_fadrique_PROPN", + "don_NOUN_felipe_PROPN", + "don_NOUN_fermín_PROPN", + "don_NOUN_fernando_PROPN", + "don_NOUN_francisco_PROPN", + "don_NOUN_gaspar_PROPN", + "don_NOUN_gil_PROPN", + "don_NOUN_gonzalo_PROPN", + "don_NOUN_gregorio_PROPN", + "don_NOUN_jaime_PROPN", + "don_NOUN_juan_PROPN", + "don_NOUN_marcos_PROPN", + "don_NOUN_mariano_PROPN", + "don_NOUN_melchor_PROPN", + "don_NOUN_paco_PROPN", + "don_NOUN_pascual_PROPN", + "don_NOUN_pedro_PROPN", + "don_NOUN_quijote_PROPN", + "don_NOUN_quixote_PROPN", + "don_NOUN_ramón_PROPN", + "don_NOUN_rodrigo_PROPN", + "don_NOUN_rosendo_PROPN", + "don_NOUN_sabas_PROPN", + "don_NOUN_simón_PROPN", + "don_NOUN_sindulfo_PROPN", + "don_NOUN_sotero_PROPN", + "don_NOUN_tomás_PROPN", + "don_NOUN_valentín_PROPN", + "don_NOUN_víctor_PROPN", + "don_NOUN_álvaro_PROPN", + "don_PROPN_alfonso_PROPN", + "don_PROPN_alonso_PROPN", + "don_PROPN_baltasar_PROPN", + "don_PROPN_benito_PROPN", + "don_PROPN_bosco_PROPN", + "don_PROPN_cesar_PROPN", + "don_PROPN_cárlos_PROPN", + "don_PROPN_diego_PROPN", + "don_PROPN_eugenio_PROPN", + "don_PROPN_felipe_PROPN", + "don_PROPN_fermín_PROPN", + "don_PROPN_fernando_PROPN", + "don_PROPN_francisco_PROPN", + "don_PROPN_félix_PROPN", + "don_PROPN_gonzalo_PROPN", + "don_PROPN_hernando_PROPN", + "don_PROPN_jaime_PROPN", + "don_PROPN_juan_PROPN", + "don_PROPN_melchor_PROPN", + "don_PROPN_omar_PROPN", + "don_PROPN_pedro_PROPN", + "don_PROPN_quijote_PROPN", + "don_PROPN_quixote_PROPN", + "don_PROPN_rafael_PROPN", + "don_PROPN_ramón_PROPN", + "don_PROPN_rodrigo_PROPN", + "don_PROPN_simón_PROPN", + "don_PROPN_tomás_PROPN", + "don_PROPN_urbano_PROPN", + "don_PROPN_víctor_PROPN", + "don_PROPN_álvaro_PROPN", + "donald_PROPN_rumsfeld_PROPN", + "donald_PROPN_trump_PROPN", + "donald_PROPN_tusk_PROPN", + "donante_NOUN_bilateral_ADJ", + "donar_VERB_sangre_NOUN", + "donde_PRON_encontrarar_VERB", + "dormir_VERB_tranquilo_ADJ", + "dos_NUM_bocas_PROPN", + "dos_NUM_corea_NOUN", + "dos_NUM_coreas_PROPN", + "dos_NUM_dígito_NOUN", + "dos_NUM_hermanas_PROPN", + "dos_NUM_tercio_NOUN", + "doscientos_NUM_cincuenta_NUM", + "doscientos_NUM_mil_NUM", + "dosis_NOUN_medido_ADJ", + "dotación_NOUN_autorizado_ADJ", + "dotación_NOUN_presupuestario_ADJ", + "dote_NOUN_diplomático_ADJ", + "doudou_PROPN_diène_PROPN", + "dow_PROPN_jones_PROPN", + "downing_PROPN_street_PROPN", + "doña_NOUN_ana_PROPN", + "doña_NOUN_beatriz_PROPN", + "doña_NOUN_blanca_PROPN", + "doña_NOUN_carmen_PROPN", + "doña_NOUN_catalina_PROPN", + "doña_NOUN_clara_PROPN", + "doña_NOUN_cristina_PROPN", + "doña_NOUN_cándida_PROPN", + "doña_NOUN_dolores_PROPN", + "doña_NOUN_elvira_PROPN", + "doña_NOUN_guiomar_PROPN", + "doña_NOUN_inés_PROPN", + "doña_NOUN_isabel_PROPN", + "doña_NOUN_juana_PROPN", + "doña_NOUN_leonor_PROPN", + "doña_NOUN_lupe_PROPN", + "doña_NOUN_luz_PROPN", + "doña_NOUN_manuela_PROPN", + "doña_NOUN_maría_PROPN", + "doña_NOUN_paula_PROPN", + "doña_NOUN_rosa_PROPN", + "doña_NOUN_sol_PROPN", + "doña_PROPN_ana_PROPN", + "doña_PROPN_beatriz_PROPN", + "doña_PROPN_blanca_PROPN", + "doña_PROPN_catalina_PROPN", + "doña_PROPN_clara_PROPN", + "doña_PROPN_elvira_PROPN", + "doña_PROPN_francisca_PROPN", + "doña_PROPN_inés_PROPN", + "doña_PROPN_isabel_PROPN", + "doña_PROPN_juana_PROPN", + "doña_PROPN_letizia_PROPN", + "doña_PROPN_lupe_PROPN", + "doña_PROPN_luz_PROPN", + "doña_PROPN_manuela_PROPN", + "doña_PROPN_maría_PROPN", + "doña_PROPN_paula_PROPN", + "doña_PROPN_rosa_PROPN", + "doña_PROPN_sofía_PROPN", + "dp_NOUN_ccf_PROPN", + "dp_NOUN_dcp_PROPN", + "dp_NOUN_fpa_PROPN", + "dp_NOUN_part_PROPN", + "dp_PROPN_dcp_PROPN", + "dp_PROPN_fpa_PROPN", + "dragan_VERB_dragan_VERB", + "dragon_PROPN_ball_PROPN", + "dream_PROPN_act_PROPN", + "dream_PROPN_team_PROPN", + "drew_PROPN_brees_PROPN", + "droga_NOUN_cicad_PROPN", + "droga_NOUN_ilícito_ADJ", + "droga_NOUN_incautado_ADJ", + "droga_NOUN_intravenoso_ADJ", + "droga_NOUN_inyectabl_ADJ", + "droga_NOUN_pnufid_VERB", + "droga_NOUN_sintético_ADJ", + "drogas_PROPN_peligrosas_PROPN", + "droit_PROPN_des_ADP", + "droit_PROPN_international_PROPN", + "drástico_ADJ_recorte_NOUN", + "drástico_ADJ_reducción_NOUN", + "du_PROPN_droit_PROPN", + "du_PROPN_secrétaire_PROPN", + "duarte_PROPN_frutos_PROPN", + "dudoso_ADJ_procedencia_NOUN", + "due_PROPN_to_PROPN", + "duelo_NOUN_amistoso_ADJ", + "duer_NOUN_yo_PRON", + "dulce_PROPN_maría_PROPN", + "dulce_PROPN_nombre_PROPN", + "duma_NOUN_estatal_ADJ", + "dumping_NOUN_social_ADJ", + "duodécimo_ADJ_período_NOUN", + "duplicación_NOUN_innecesario_ADJ", + "duración_NOUN_aproximado_ADJ", + "duración_NOUN_indefinido_ADJ", + "duración_NOUN_limitado_ADJ", + "duramente_ADV_criticar_VERB", + "duran_PROPN_i_CCONJ", + "duran_PROPN_lleida_PROPN", + "durango_PROPN_dgo_PROPN", + "durao_PROPN_barroso_PROPN", + "duras_NOUN_pena_NOUN", + "duras_NOUN_penas_NOUN", + "durban_NOUN_aprobado_ADJ", + "durban_PROPN_sudáfrica_PROPN", + "during_PROPN_the_PROPN", + "duro_ADJ_crítica_NOUN", + "duro_ADJ_golpe_NOUN", + "duro_ADJ_revés_NOUN", + "durr_VERB_aprobado_ADJ", + "durr_VERB_sudáfrica_PROPN", + "durrant_VERB_durrant_VERB", + "durán_PROPN_barba_PROPN", + "durão_PROPN_barroso_PROPN", + "dwight_PROPN_howard_PROPN", + "dwyane_PROPN_wade_PROPN", + "décimo_ADJ_aniversario_NOUN", + "décimo_ADJ_congreso_NOUN", + "décimo_ADJ_período_NOUN", + "déficit_NOUN_actuarial_ADJ", + "déficit_NOUN_excesivo_ADJ", + "déficit_NOUN_fiscal_ADJ", + "déficit_NOUN_habitacional_ADJ", + "déficit_NOUN_presupuestario_ADJ", + "déjemar_VERB_usted_PRON", + "déposés_PROPN_auprès_PROPN", + "día_NOUN_domingo_NUM", + "día_NOUN_feriado_ADJ", + "día_NOUN_festivo_ADJ", + "día_NOUN_hábil_ADJ", + "día_NOUN_laborable_ADJ", + "día_NOUN_miércoles_NUM", + "día_NOUN_sábado_NUM", + "día_NOUN_viernes_NUM", + "día_PROPN_internacional_PROPN", + "día_PROPN_mundial_PROPN", + "día_PROPN_online_PROPN", + "díaz_PROPN_ferrán_PROPN", + "díaz_PROPN_ordaz_PROPN", + "dígame_VERB_usted_PRON", + "dólar_NOUN_diario_ADJ", + "dólares_NOUN_neozelandés_ADJ", + "dólares_NOUN_singapurens_ADJ", + "dónde_PRON_estar_VERB", + "dónde_PRON_provenir_VERB", + "dúmping_NOUN_social_ADJ", + "e_CCONJ_ab_NOUN", + "e_CCONJ_f_PROPN", + "e_CCONJ_hidrología_PROPN", + "e_CCONJ_higiene_PROPN", + "e_CCONJ_imparcial_ADJ", + "e_CCONJ_imparcialmente_ADV", + "e_CCONJ_incorporado_ADJ", + "e_CCONJ_indique_VERB", + "e_CCONJ_indivisible_ADJ", + "e_CCONJ_injustificabl_ADJ", + "e_CCONJ_innovación_PROPN", + "e_CCONJ_integrador_NOUN", + "e_CCONJ_interdependencia_NOUN", + "e_CCONJ_interdependient_ADJ", + "e_CCONJ_intergubernamental_NOUN", + "e_CCONJ_irlanda_PROPN", + "e_CCONJ_metilbromuro_ADJ", + "e_CCONJ_p_NOUN", + "ealam_NOUN_tamil_PROPN", + "east_PROPN_timor_PROPN", + "echar_VERB_abajo_ADV", + "echar_VERB_chispa_NOUN", + "echar_VERB_humo_NOUN", + "echar_VERB_leña_NOUN", + "eckart_PROPN_klein_PROPN", + "eclipse_NOUN_solar_ADJ", + "eclipse_NOUN_total_ADJ", + "ecoinformación_PROPN_confiable_ADJ", + "ecológicamente_ADJ_racional_ADJ", + "ecológicamente_ADJ_sostenible_ADJ", + "ecológicamente_ADV_racional_ADJ", + "ecológicamente_ADV_sostenible_ADJ", + "economic_PROPN_affairs_PROPN", + "economic_PROPN_and_CCONJ", + "economic_PROPN_and_PROPN", + "economic_PROPN_development_PROPN", + "economist_PROPN_intelligence_PROPN", + "economista_NOUN_consultado_ADJ", + "economista_NOUN_jefe_NOUN", + "economizar_VERB_recurso_NOUN", + "economía_NOUN_circular_ADJ", + "economía_NOUN_emergente_ADJ", + "economía_NOUN_globalizado_ADJ", + "economía_NOUN_mundializado_ADJ", + "economía_NOUN_sumergido_ADJ", + "economía_PROPN_felisa_PROPN", + "economía_PROPN_política_PROPN", + "economía_PROPN_social_PROPN", + "economía_PROPN_sostenible_PROPN", + "económicamente_ADV_activo_ADJ", + "económicamente_ADV_desfavorecido_ADJ", + "económicamente_ADV_viable_ADJ", + "económico_PROPN_empresarial_PROPN", + "ecosistema_NOUN_acuático_ADJ", + "ecosistema_NOUN_costero_ADJ", + "ecosistema_NOUN_forestal_ADJ", + "ecosistema_NOUN_frágil_ADJ", + "ecosistema_NOUN_marino_ADJ", + "ecosistema_NOUN_montañoso_ADJ", + "ecosistema_NOUN_terrestre_ADJ", + "ecp_PROPN_manud_PROPN", + "ecuador_NOUN_eslovaquia_PROPN", + "ecuador_PROPN_egipto_PROPN", + "ecuador_PROPN_eslovaquia_PROPN", + "ecuador_PROPN_rafael_PROPN", + "ecuatorial_PROPN_eritrea_NOUN", + "ecuatorial_PROPN_guyana_NOUN", + "ecuatoriano_ADJ_rafael_PROPN", + "edad_NOUN_adulto_ADJ", + "edad_NOUN_avanzado_ADJ", + "edad_NOUN_comprendido_ADJ", + "edad_NOUN_fértil_ADJ", + "edad_NOUN_jubilatorio_ADJ", + "edad_NOUN_maduro_ADJ", + "edad_NOUN_media_NOUN", + "edad_NOUN_media_PROPN", + "edad_NOUN_mínimo_ADJ", + "edad_NOUN_preescolar_ADJ", + "edema_NOUN_pulmonar_ADJ", + "edgardo_PROPN_bauza_PROPN", + "edicion_PROPN_digital_PROPN", + "edición_NOUN_digital_ADJ", + "edición_NOUN_impreso_ADJ", + "edificio_NOUN_anexo_ADJ", + "edificio_NOUN_construido_ADJ", + "edificio_NOUN_residencial_ADJ", + "edil_NOUN_socialista_ADJ", + "edinson_PROPN_cavani_PROPN", + "eduardo_PROPN_buzzi_PROPN", + "eduardo_PROPN_duhalde_PROPN", + "eduardo_PROPN_frei_PROPN", + "eduardo_PROPN_galeano_PROPN", + "eduardo_PROPN_medina_PROPN", + "eduardo_PROPN_zaplana_PROPN", + "educación_NOUN_bilingüe_ADJ", + "educación_NOUN_cívico_ADJ", + "educación_NOUN_esparcimiento_NOUN", + "educación_NOUN_extraescolar_ADJ", + "educación_NOUN_intercultural_ADJ", + "educación_NOUN_parvulario_ADJ", + "educación_NOUN_postsecundario_ADJ", + "educación_NOUN_preescolar_ADJ", + "educación_NOUN_preescolar_PROPN", + "educación_NOUN_primario_ADJ", + "educación_NOUN_terciario_ADJ", + "educación_PROPN_ambiental_PROPN", + "educación_PROPN_básica_PROPN", + "educación_PROPN_cnte_PROPN", + "educación_PROPN_cultura_PROPN", + "educación_PROPN_física_PROPN", + "educación_PROPN_infantil_PROPN", + "educación_PROPN_media_PROPN", + "educación_PROPN_medios_PROPN", + "educación_PROPN_primaria_PROPN", + "educación_PROPN_pública_PROPN", + "educación_PROPN_secundaria_PROPN", + "educación_PROPN_sexual_PROPN", + "educación_PROPN_snte_PROPN", + "educación_PROPN_superior_PROPN", + "educación_PROPN_técnica_PROPN", + "educación_PROPN_vial_PROPN", + "education_PROPN_and_PROPN", + "education_PROPN_for_PROPN", + "edward_PROPN_snowden_PROPN", + "edwin_PROPN_johnson_PROPN", + "ee_PROPN_uu_PROPN", + "eelam_PROPN_tamil_PROPN", + "eeuu_PROPN_barack_PROPN", + "eeuu_PROPN_donald_PROPN", + "eeuu_PROPN_george_PROPN", + "eeuu_PROPN_yahoo_INTJ", + "efe_PROPN_archivo_PROPN", + "efectivamente_ADV_verificable_ADJ", + "efectivo_NOUN_desplegado_ADJ", + "efectivo_NOUN_policial_ADJ", + "efecto_NOUN_acumulativo_ADJ", + "efecto_NOUN_adverso_ADJ", + "efecto_NOUN_catalizador_ADJ", + "efecto_NOUN_colateral_ADJ", + "efecto_NOUN_desestabilizador_ADJ", + "efecto_NOUN_devastador_ADJ", + "efecto_NOUN_disuasivo_ADJ", + "efecto_NOUN_disuasorio_ADJ", + "efecto_NOUN_dominó_NOUN", + "efecto_NOUN_extraterritorial_ADJ", + "efecto_NOUN_indiscriminado_ADJ", + "efecto_NOUN_invernadero_ADJ", + "efecto_NOUN_invernadero_NOUN", + "efecto_NOUN_invernadero_PROPN", + "efecto_NOUN_multiplicador_ADJ", + "efecto_NOUN_negativo_ADJ", + "efecto_NOUN_nocivo_ADJ", + "efecto_NOUN_perjudicial_ADJ", + "efecto_NOUN_pernicioso_ADJ", + "efecto_NOUN_retardado_ADJ", + "efecto_NOUN_retroactivo_ADJ", + "efecto_NOUN_sinérgico_ADJ", + "efecto_NOUN_suspensivo_ADJ", + "efectuar_VERB_incursión_NOUN", + "effects_PROPN_of_PROPN", + "eficiencia_NOUN_energético_ADJ", + "eficiencia_PROPN_energética_PROPN", + "egipcio_ADJ_hosni_PROPN", + "egipto_PROPN_emirato_NOUN", + "egipto_PROPN_eritrea_NOUN", + "egipto_PROPN_eslovaquia_PROPN", + "egipto_PROPN_etiopía_NOUN", + "egipto_PROPN_jordania_PROPN", + "eh_PROPN_bildu_PROPN", + "ehud_PROPN_olmert_PROPN", + "eje_NOUN_central_ADJ", + "eje_NOUN_rector_ADJ", + "eje_NOUN_temático_ADJ", + "eje_NOUN_transversal_ADJ", + "eje_PROPN_cafetero_PROPN", + "eje_PROPN_central_PROPN", + "ejecución_NOUN_extrajudicial_ADJ", + "ejecución_NOUN_extralegal_ADJ", + "ejecución_NOUN_hipotecaria_ADJ", + "ejecución_NOUN_sumaria_ADJ", + "ejecución_NOUN_sumario_ADJ", + "ejecución_NOUN_ulterior_ADJ", + "ejecutado_ADJ_conjuntamente_ADV", + "ejecutivo_ADJ_adjunto_ADJ", + "ejecutivo_PROPN_andaluz_ADJ", + "ejecutivo_PROPN_autonómico_ADJ", + "ejecutivo_PROPN_catalán_ADJ", + "ejecutivo_PROPN_foral_ADJ", + "ejecutivo_PROPN_municipal_PROPN", + "ejecutorio_NOUN_cuando_SCONJ", + "ejemplar_NOUN_impreso_ADJ", + "ejemplar_NOUN_vendido_ADJ", + "ejemplo_NOUN_ilustrativo_ADJ", + "ejercer_VERB_moderación_NOUN", + "ejercer_VERB_presión_NOUN", + "ejército_NOUN_enemigo_ADJ", + "ejército_NOUN_israelí_ADJ", + "ejército_NOUN_libanés_ADJ", + "ejército_NOUN_maoísta_ADJ", + "ejército_NOUN_patriótico_ADJ", + "ejército_NOUN_regular_ADJ", + "ejército_PROPN_afgano_ADJ", + "ejército_PROPN_argentino_PROPN", + "ejército_PROPN_israelí_ADJ", + "ejército_PROPN_libanés_ADJ", + "ejército_PROPN_libre_PROPN", + "ejército_PROPN_mexicano_PROPN", + "ejército_PROPN_rojo_PROPN", + "ejército_PROPN_sirio_ADJ", + "ejército_PROPN_sirio_PROPN", + "ejército_PROPN_zapatista_PROPN", + "elaborado_ADJ_conjuntamente_ADV", + "elba_PROPN_esther_PROPN", + "ele_PROPN_foi_PROPN", + "ele_PROPN_não_PROPN", + "elecciones_PROPN_generales_PROPN", + "elección_NOUN_anticipado_ADJ", + "elección_NOUN_autonómico_ADJ", + "elección_NOUN_parlamentario_ADJ", + "elección_NOUN_presidencial_ADJ", + "electoral_PROPN_central_PROPN", + "electoral_PROPN_ife_PROPN", + "electoral_PROPN_ine_PROPN", + "electoral_PROPN_tse_PROPN", + "electricidad_NOUN_generado_ADJ", + "electricidad_PROPN_cfe_PROPN", + "electrificación_NOUN_rural_ADJ", + "electronic_PROPN_arts_PROPN", + "electronic_PROPN_commerce_PROPN", + "electrónico_ADJ_negociable_ADJ", + "elefante_NOUN_blanco_ADJ", + "elegido_ADJ_democráticamente_ADV", + "elegir_VERB_democráticamente_ADV", + "elegir_VERB_libremente_ADV", + "elemento_NOUN_antigubernamental_ADJ", + "elemento_NOUN_catalizador_ADJ", + "elemento_NOUN_clave_NOUN", + "elemento_NOUN_constitutivo_ADJ", + "elemento_NOUN_decorativo_ADJ", + "elemento_NOUN_disuasorio_ADJ", + "elemento_NOUN_esencial_ADJ", + "elemento_NOUN_impulsor_ADJ", + "elemento_NOUN_inseparable_ADJ", + "elemento_NOUN_integrante_ADJ", + "elemento_NOUN_policiaco_ADJ", + "elemento_NOUN_policíaco_ADJ", + "elemento_NOUN_probatorio_ADJ", + "elena_PROPN_espinosa_PROPN", + "elena_PROPN_poniatowska_PROPN", + "elena_PROPN_salgado_PROPN", + "elena_PROPN_valenciano_PROPN", + "elevado_ADJ_incidencia_NOUN", + "elevado_ADJ_tasa_NOUN", + "eli_PROPN_manning_PROPN", + "eliminación_NOUN_gradual_ADJ", + "eliminar_VERB_gradualmente_ADV", + "eliminar_VERB_progresivamente_ADV", + "elimination_PROPN_of_ADP", + "elimination_PROPN_of_PROPN", + "eliminatoria_NOUN_mundialista_ADJ", + "eliminatoria_NOUN_sudamericano_ADJ", + "eliminatorias_PROPN_sudamericanas_PROPN", + "elisa_PROPN_carrió_PROPN", + "elisabeth_ADJ_palm_PROPN", + "elisabeth_PROPN_palm_PROPN", + "elizabeth_PROPN_evatt_ADJ", + "elizabeth_PROPN_taylor_PROPN", + "elji_PROPN_república_NOUN", + "ellen_PROPN_degeneres_PROPN", + "elmar_PROPN_brok_PROPN", + "elon_PROPN_musk_PROPN", + "eloy_PROPN_alfaro_PROPN", + "elsevier_PROPN_science_PROPN", + "elton_PROPN_john_PROPN", + "elvis_PROPN_presley_PROPN", + "elías_PROPN_jaua_PROPN", + "em_ADP_brasília_PROPN", + "em_ADP_outros_DET", + "em_ADP_relação_PROPN", + "em_ADP_relação_SYM", + "em_ADP_seu_NUM", + "em_ADP_sua_DET", + "em_ADP_são_PROPN", + "em_ADP_um_DET", + "em_ADP_uma_DET", + "email_NOUN_campo_NOUN", + "email_PROPN_campo_NOUN", + "embajada_NOUN_estadounidense_ADJ", + "embajador_ADJ_observador_ADJ", + "embajador_ADJ_representante_ADJ", + "embajador_ADJ_representante_NOUN", + "embajador_NOUN_aria_ADJ", + "embajador_NOUN_brahimi_ADJ", + "embajador_NOUN_chris_PROPN", + "embajador_NOUN_dembri_PROPN", + "embajador_NOUN_greenstock_PROPN", + "embajador_NOUN_holbrooke_ADJ", + "embajador_NOUN_kumalo_PROPN", + "embajador_NOUN_levitte_PROPN", + "embajador_NOUN_mahbubani_PROPN", + "embajador_NOUN_muñoz_PROPN", + "embajador_NOUN_observador_ADJ", + "embajador_NOUN_peter_PROPN", + "embajador_NOUN_representante_ADJ", + "embajador_NOUN_richard_PROPN", + "embajador_NOUN_vorontsov_PROPN", + "embajador_PROPN_representante_NOUN", + "embalaje_NOUN_envasado_ADJ", + "embalaje_NOUN_envase_NOUN", + "embarazo_NOUN_adolescente_ADJ", + "embarazo_NOUN_forzado_ADJ", + "embarazo_NOUN_parto_NOUN", + "embarazo_NOUN_precoz_ADJ", + "embarcación_NOUN_pesquero_ADJ", + "embrión_NOUN_humano_ADJ", + "emergencia_NOUN_radiológico_ADJ", + "emergencias_PROPN_andalucía_PROPN", + "emergencias_PROPN_clemente_PROPN", + "emergencias_PROPN_madrid_PROPN", + "emergencias_PROPN_médicas_PROPN", + "emergencias_PROPN_sanitarias_PROPN", + "emergencias_PROPN_ume_PROPN", + "emigración_NOUN_ilegal_ADJ", + "emiliano_PROPN_sala_PROPN", + "emiliano_PROPN_zapata_PROPN", + "emilio_PROPN_azcárraga_PROPN", + "emilio_PROPN_botín_PROPN", + "emilio_PROPN_gamboa_PROPN", + "emilio_PROPN_gonzález_PROPN", + "emilio_PROPN_monzó_PROPN", + "eminent_ADJ_encargado_ADJ", + "eminent_ADJ_experto_NOUN", + "emirato_NOUN_árabe_ADJ", + "emiratos_PROPN_arabes_PROPN", + "emiratos_PROPN_árabe_ADJ", + "emiratos_PROPN_árabes_PROPN", + "emisión_NOUN_agregada_ADJ", + "emisión_NOUN_antropógena_ADJ", + "emisión_NOUN_contaminante_ADJ", + "emisión_NOUN_derivado_ADJ", + "emisión_NOUN_radiofónico_ADJ", + "emisión_NOUN_rce_PROPN", + "emisora_NOUN_radial_ADJ", + "emitir_VERB_dictámen_NOUN", + "emma_PROPN_watson_PROPN", + "emmanuel_PROPN_decaux_PROPN", + "emmanuel_PROPN_macron_PROPN", + "emotivo_ADJ_homenaje_NOUN", + "emotivo_ADJ_mensaje_NOUN", + "empeorar_VERB_considerablemente_ADV", + "emperador_NOUN_carlos_PROPN", + "emperador_NOUN_romano_ADJ", + "empire_PROPN_state_PROPN", + "empleada_NOUN_doméstico_ADJ", + "empleado_NOUN_doméstico_ADJ", + "empleo_NOUN_almacenamiento_NOUN", + "empleo_NOUN_asalariado_ADJ", + "empleo_NOUN_prevalecient_ADJ", + "empleo_NOUN_remunerado_ADJ", + "empleo_PROPN_ere_PROPN", + "empresa_NOUN_adjudicatario_ADJ", + "empresa_NOUN_asegurador_ADJ", + "empresa_NOUN_concesionario_ADJ", + "empresa_NOUN_constructor_ADJ", + "empresa_NOUN_consultor_ADJ", + "empresa_NOUN_contratista_ADJ", + "empresa_NOUN_deudoro_ADJ", + "empresa_NOUN_distribuidora_ADJ", + "empresa_NOUN_distribuidoro_ADJ", + "empresa_NOUN_fabricant_ADJ", + "empresa_NOUN_fabricante_ADJ", + "empresa_NOUN_fantasma_ADJ", + "empresa_NOUN_farmacéutico_ADJ", + "empresa_NOUN_filial_ADJ", + "empresa_NOUN_insolvente_ADJ", + "empresa_NOUN_líder_ADJ", + "empresa_NOUN_maderera_ADJ", + "empresa_NOUN_matriz_ADJ", + "empresa_NOUN_multinacional_ADJ", + "empresa_NOUN_paraestatal_ADJ", + "empresa_NOUN_promotor_ADJ", + "empresa_NOUN_proveedora_ADJ", + "empresa_NOUN_proveedoro_ADJ", + "empresa_NOUN_solvente_ADJ", + "empresa_NOUN_transnacional_ADJ", + "empresa_NOUN_trasnacional_ADJ", + "empresa_PROPN_común_PROPN", + "empresa_PROPN_municipal_PROPN", + "empresa_PROPN_provincial_PROPN", + "empresa_PROPN_pública_PROPN", + "empresarial_PROPN_cce_PROPN", + "en_NOUN_señor_NOUN", + "en_NOUN_señora_PROPN", + "encajar_VERB_gol_NOUN", + "encajar_VERB_perfectamente_ADV", + "encaminar_VERB_hacia_ADP", + "encarcelamiento_NOUN_arbitrario_ADJ", + "encefalopatía_NOUN_espongiforme_ADJ", + "encestar_VERB_punto_NOUN", + "enchufar_VERB_enchufar_VERB", + "encima_ADV_del_DET", + "encomiabl_ADJ_esfuerzo_NOUN", + "encomiable_ADJ_labor_NOUN", + "encomiam_PROPN_tú_PRON", + "encontrar_VERB_prófugo_ADJ", + "encuadrar_VERB_dentro_ADV", + "encuentro_NOUN_amistoso_ADJ", + "encuentro_NOUN_disputado_ADJ", + "encuentro_PROPN_internacional_PROPN", + "encuentro_PROPN_nacional_PROPN", + "encuentro_PROPN_social_PROPN", + "encuesta_NOUN_agrupado_ADJ", + "encuesta_NOUN_demográfico_ADJ", + "encuesta_PROPN_nacional_PROPN", + "encyclopedia_PROPN_of_PROPN", + "end_PROPN_of_PROPN", + "endeudamiento_NOUN_excesivo_ADJ", + "endeudamiento_NOUN_externo_ADJ", + "ene_NOUN_efe_PROPN", + "enemigo_ADJ_israelí_ADJ", + "enemigo_NOUN_israelí_ADJ", + "energy_PROPN_and_PROPN", + "energía_NOUN_atómico_ADJ", + "energía_NOUN_consumido_ADJ", + "energía_NOUN_eléctrico_ADJ", + "energía_NOUN_eólico_ADJ", + "energía_NOUN_fotovoltaico_ADJ", + "energía_NOUN_fósil_ADJ", + "energía_NOUN_geotérmico_ADJ", + "energía_NOUN_hidroeléctrico_ADJ", + "energía_NOUN_hidráulico_ADJ", + "energía_NOUN_limpio_ADJ", + "energía_NOUN_nuclear_ADJ", + "energía_NOUN_renovable_ADJ", + "energía_NOUN_solar_ADJ", + "energía_NOUN_térmico_ADJ", + "energía_PROPN_atómica_PROPN", + "energía_PROPN_atómico_ADJ", + "energía_PROPN_eléctrica_PROPN", + "energías_PROPN_renovables_PROPN", + "enero_NOUN_ria_PROPN", + "enfermedad_NOUN_cardiaco_ADJ", + "enfermedad_NOUN_cardiovascular_ADJ", + "enfermedad_NOUN_cardíaca_ADJ", + "enfermedad_NOUN_cardíaco_ADJ", + "enfermedad_NOUN_contagiosa_ADJ", + "enfermedad_NOUN_contagiós_ADJ", + "enfermedad_NOUN_coronario_ADJ", + "enfermedad_NOUN_crónico_ADJ", + "enfermedad_NOUN_degenerativo_ADJ", + "enfermedad_NOUN_diarreica_ADJ", + "enfermedad_NOUN_endémico_ADJ", + "enfermedad_NOUN_epidémica_ADJ", + "enfermedad_NOUN_hereditario_ADJ", + "enfermedad_NOUN_incurable_ADJ", + "enfermedad_NOUN_infeccioso_ADJ", + "enfermedad_NOUN_invalidez_NOUN", + "enfermedad_NOUN_mental_ADJ", + "enfermedad_NOUN_neurodegenerativo_ADJ", + "enfermedad_NOUN_neurológico_ADJ", + "enfermedad_NOUN_oportunista_ADJ", + "enfermedad_NOUN_prevalente_ADJ", + "enfermedad_NOUN_prevenibl_ADJ", + "enfermedad_NOUN_pulmonar_ADJ", + "enfermedad_NOUN_rara_ADJ", + "enfermedad_NOUN_renal_ADJ", + "enfermedad_NOUN_respiratorio_ADJ", + "enfermedad_NOUN_terminal_ADJ", + "enfermedad_NOUN_transmisibl_ADJ", + "enfermedad_NOUN_transmitido_ADJ", + "enfermedad_NOUN_tropical_ADJ", + "enfermedad_NOUN_venérea_ADJ", + "enfermedad_NOUN_viral_ADJ", + "enfermedades_PROPN_cdc_PROPN", + "enfermo_NOUN_crónico_ADJ", + "enfermo_NOUN_mental_ADJ", + "enfermo_NOUN_terminal_ADJ", + "enfilar_VERB_hacia_ADP", + "enfoque_NOUN_armonizado_ADJ", + "enfoque_NOUN_ascendente_ADJ", + "enfoque_NOUN_basado_ADJ", + "enfoque_NOUN_coordinado_ADJ", + "enfoque_NOUN_equilibrado_ADJ", + "enfoque_NOUN_estratégico_ADJ", + "enfoque_NOUN_fragmentario_ADJ", + "enfoque_NOUN_gradual_ADJ", + "enfoque_NOUN_holístico_ADJ", + "enfoque_NOUN_innovador_ADJ", + "enfoque_NOUN_innovador_NOUN", + "enfoque_NOUN_integrado_ADJ", + "enfoque_NOUN_integral_ADJ", + "enfoque_NOUN_interdisciplinario_ADJ", + "enfoque_NOUN_metodológico_ADJ", + "enfoque_NOUN_multidimensional_ADJ", + "enfoque_NOUN_multidisciplinario_ADJ", + "enfoque_NOUN_multisectorial_ADJ", + "enfoque_NOUN_participativo_ADJ", + "enfoque_NOUN_pragmático_ADJ", + "enfoque_NOUN_proactivo_ADJ", + "enfoque_NOUN_sectorial_ADJ", + "enfoque_NOUN_unitario_ADJ", + "enfrentamiento_NOUN_armado_ADJ", + "enfrentamiento_NOUN_violento_ADJ", + "engineering_PROPN_projects_PROPN", + "english_NOUN_only_PROPN", + "englobe_VERB_englobe_VERB", + "enjuiciamiento_NOUN_criminal_ADJ", + "enjuiciamiento_PROPN_criminal_PROPN", + "enlace_PROPN_critico_PROPN", + "enlace_PROPN_críticodpto_PROPN", + "enmarcado_ADJ_dentro_ADV", + "enmarcar_VERB_dentro_ADV", + "enmendar_VERB_oralmente_ADV", + "enmienda_NOUN_introducido_ADJ", + "enmienda_NOUN_nº_NUM", + "enmienda_NOUN_núms_PROPN", + "enmienda_NOUN_oral_ADJ", + "enmienda_NOUN_propuesto_ADJ", + "enmienda_NOUN_sugerido_ADJ", + "enorme_ADJ_potencial_NOUN", + "enrique_PROPN_bolaños_PROPN", + "enrique_PROPN_cerezo_PROPN", + "enrique_PROPN_iglesias_PROPN", + "enrique_PROPN_meza_PROPN", + "enrique_PROPN_ochoa_PROPN", + "enrique_PROPN_ortiz_PROPN", + "enrique_PROPN_peña_PROPN", + "enrique_PROPN_peñalosa_PROPN", + "enrique_PROPN_ponce_PROPN", + "enrique_PROPN_rivas_PROPN", + "enrique_PROPN_viii_PROPN", + "enriquecer_VERB_uranio_NOUN", + "enriquecimiento_NOUN_ilícito_ADJ", + "enriquecimiento_NOUN_mutuo_ADJ", + "ensayo_NOUN_clínico_ADJ", + "ensayo_NOUN_nuclear_ADJ", + "ensayos_PROPN_nuclear_ADJ", + "ensayos_PROPN_nucleares_PROPN", + "enser_NOUN_doméstico_ADJ", + "enseñanza_NOUN_aprendido_ADJ", + "enseñanza_NOUN_bilingüe_ADJ", + "enseñanza_NOUN_elemental_ADJ", + "enseñanza_NOUN_extraescolar_ADJ", + "enseñanza_NOUN_extraído_ADJ", + "enseñanza_NOUN_impartido_ADJ", + "enseñanza_NOUN_obligatorio_ADJ", + "enseñanza_NOUN_postsecundario_ADJ", + "enseñanza_NOUN_preescolar_ADJ", + "enseñanza_NOUN_preuniversitario_ADJ", + "enseñanza_NOUN_primario_ADJ", + "enseñanza_NOUN_secundario_ADJ", + "enseñanza_NOUN_superior_ADJ", + "enseñanza_NOUN_terciario_ADJ", + "enseñar_VERB_tú_VERB", + "entablar_VERB_combate_NOUN", + "entablar_VERB_contacto_NOUN", + "entablar_VERB_conversación_NOUN", + "entablar_VERB_negociación_NOUN", + "ente_NOUN_acusador_ADJ", + "ente_NOUN_investigador_ADJ", + "ente_NOUN_rector_ADJ", + "ente_NOUN_regulador_ADJ", + "ente_NOUN_territorial_ADJ", + "ente_PROPN_nacional_PROPN", + "entebbe_PROPN_uganda_PROPN", + "entender_VERB_perfectamente_ADV", + "entendimiento_NOUN_alcanzado_ADJ", + "entendimiento_NOUN_mutuo_ADJ", + "entendimiento_NOUN_suscrito_ADJ", + "enterrar_VERB_vivo_ADJ", + "entidad_NOUN_adjudicadora_ADJ", + "entidad_NOUN_adjudicadoro_ADJ", + "entidad_NOUN_asociado_ADJ", + "entidad_NOUN_bancario_ADJ", + "entidad_NOUN_certificadora_ADJ", + "entidad_NOUN_colaboradora_ADJ", + "entidad_NOUN_constitutiva_ADJ", + "entidad_NOUN_consultivo_ADJ", + "entidad_NOUN_coordinador_ADJ", + "entidad_NOUN_federativo_ADJ", + "entidad_NOUN_fiscalizadora_ADJ", + "entidad_NOUN_homólogo_ADJ", + "entidad_NOUN_reclamant_ADJ", + "entidad_NOUN_sionista_ADJ", + "entorno_NOUN_cambiante_ADJ", + "entorno_NOUN_familiar_ADJ", + "entorno_NOUN_favorable_ADJ", + "entorno_NOUN_propicio_ADJ", + "entrar_VERB_ilegalmente_ADV", + "entrañar_VERB_juicio_NOUN", + "entrañar_VERB_necesariamente_ADV", + "entrañir_VERB_discriminación_NOUN", + "entre_ADP_comilla_NOUN", + "entre_ADP_corchet_NOUN", + "entre_ADP_paréntesi_NOUN", + "entre_ADP_ríos_PROPN", + "entrega_NOUN_vigilado_ADJ", + "entregar_VERB_voluntariamente_ADV", + "entrevista_NOUN_concedido_ADJ", + "entrevista_NOUN_exclusivo_ADJ", + "entrevista_NOUN_publicado_ADJ", + "entrevista_NOUN_radial_ADJ", + "entrevista_NOUN_radiofónico_ADJ", + "entrevista_NOUN_telefónico_ADJ", + "entrevista_NOUN_televisivo_ADJ", + "enunciar_VERB_claramente_ADV", + "envejecimiento_NOUN_demográfico_ADJ", + "enviada_NOUN_especial_ADJ", + "enviado_ADJ_personal_ADJ", + "enviado_NOUN_especial_ADJ", + "enviado_NOUN_personal_ADJ", + "enviado_PROPN_especial_ADJ", + "enviar_VERB_firmado_ADJ", + "enviar_VERB_mail_NOUN", + "enviar_VERB_recordatorio_NOUN", + "environment_PROPN_and_PROPN", + "environment_PROPN_australia_PROPN", + "environment_PROPN_canada_PROPN", + "environment_PROPN_programme_PROPN", + "envío_NOUN_postal_ADJ", + "enzo_PROPN_pérez_PROPN", + "enérgico_ADJ_condena_NOUN", + "enérgico_ADJ_protesta_NOUN", + "enésimo_ADJ_vez_NOUN", + "epígrafe_NOUN_correspondiente_ADJ", + "epígrafe_NOUN_i_CCONJ", + "equality_PROPN_now_PROPN", + "equilibrio_NOUN_ecológico_ADJ", + "equilibrio_NOUN_geográfico_ADJ", + "equipaje_NOUN_personal_ADJ", + "equipo_NOUN_interdisciplinario_ADJ", + "equipo_NOUN_multidisciplinar_ADJ", + "equipo_NOUN_multidisciplinario_ADJ", + "equipo_NOUN_negociador_ADJ", + "equitativo_ADJ_convenido_ADJ", + "equitativo_ADJ_reglamentado_ADJ", + "equivalencia_NOUN_funcional_ADJ", + "equivalente_NOUN_funcional_ADJ", + "equivaler_VERB_aproximadamente_ADV", + "era_NOUN_cristiano_ADJ", + "era_NOUN_digital_ADJ", + "era_NOUN_moderno_ADJ", + "era_NOUN_soviético_ADJ", + "erario_NOUN_público_ADJ", + "erasmus_PROPN_mundus_PROPN", + "erection_PROPN_and_PROPN", + "erga_NOUN_omnes_NOUN", + "eric_PROPN_abidal_PROPN", + "eric_PROPN_clapton_PROPN", + "eric_PROPN_holder_PROPN", + "eritrea_NOUN_eslovaquia_PROPN", + "eritrea_NOUN_etiopía_NOUN", + "eritrea_NOUN_minuee_PROPN", + "eritrea_PROPN_eslovaquia_PROPN", + "eritrea_PROPN_etiopía_PROPN", + "ernest_PROPN_hemingway_PROPN", + "ernesto_PROPN_che_PROPN", + "ernesto_PROPN_cordero_PROPN", + "ernesto_PROPN_guevara_PROPN", + "ernesto_PROPN_sanz_PROPN", + "ernesto_PROPN_valverde_PROPN", + "ernesto_PROPN_zedillo_PROPN", + "ernst_PROPN_young_PROPN", + "error_NOUN_cometido_ADJ", + "error_NOUN_defensivo_ADJ", + "error_NOUN_garrafal_ADJ", + "erupción_NOUN_volcánica_ADJ", + "erupción_NOUN_volcánico_ADJ", + "eruviel_PROPN_ávila_PROPN", + "es_NOUN_decir_NOUN", + "esbozo_NOUN_presupuestario_ADJ", + "escala_NOUN_indicativo_ADJ", + "escala_NOUN_planetario_ADJ", + "escala_NOUN_richter_PROPN", + "escalar_VERB_posición_NOUN", + "escalera_NOUN_abajo_ADV", + "escalera_NOUN_mecánico_ADJ", + "escasamente_ADV_poblado_ADJ", + "escasez_NOUN_crónico_ADJ", + "escaso_DET_metro_NOUN", + "escaso_DET_recurso_NOUN", + "escatimacer_VERB_esfuerzo_NOUN", + "escatimar_VERB_esfuerzo_NOUN", + "escatimir_VERB_esfuerzo_NOUN", + "escaño_NOUN_parlamentario_ADJ", + "escaño_NOUN_reservado_ADJ", + "escena_NOUN_musical_ADJ", + "esclarecimiento_NOUN_histórico_ADJ", + "esclava_NOUN_sexual_ADJ", + "esclavitud_NOUN_moderno_ADJ", + "esclavitud_NOUN_sexual_ADJ", + "esclavo_NOUN_negro_ADJ", + "esclerosis_NOUN_múltiple_ADJ", + "escoger_VERB_libremente_ADV", + "escolaridad_NOUN_obligatorio_ADJ", + "escolarización_NOUN_obligatorio_ADJ", + "escolarización_NOUN_primario_ADJ", + "esconder_VERB_detrás_ADV", + "escondido_ADJ_detrás_ADV", + "escopeta_NOUN_calibre_NOUN", + "escrito_NOUN_artículo_PROPN", + "escritor_NOUN_colombiano_ADJ", + "escritor_NOUN_peruano_ADJ", + "escucha_NOUN_ilegal_ADJ", + "escucha_NOUN_telefónico_ADJ", + "escuchar_VERB_atentamente_ADV", + "escuchar_VERB_objeción_NOUN", + "escudería_NOUN_italiano_ADJ", + "escudo_NOUN_antimisil_ADJ", + "escudo_NOUN_humano_ADJ", + "escuela_NOUN_coránica_ADJ", + "escuela_NOUN_dominical_ADJ", + "escuela_NOUN_elemental_ADJ", + "escuela_NOUN_primario_ADJ", + "escuela_NOUN_secundario_ADJ", + "escuela_PROPN_militar_PROPN", + "escuela_PROPN_municipal_PROPN", + "escuela_PROPN_n_PROPN", + "escuela_PROPN_normal_PROPN", + "escuela_PROPN_nº_PROPN", + "escuela_PROPN_politécnica_PROPN", + "escuela_PROPN_primaria_PROPN", + "escuela_PROPN_secundaria_PROPN", + "escuela_PROPN_superior_PROPN", + "escuela_PROPN_técnica_PROPN", + "escuelas_PROPN_europeas_PROPN", + "escueto_ADJ_comunicado_NOUN", + "escáner_NOUN_corporal_ADJ", + "esencia_NOUN_mismo_ADJ", + "esfera_NOUN_abarcada_ADJ", + "esfera_NOUN_conexa_ADJ", + "esfera_NOUN_prioritario_ADJ", + "esfera_NOUN_programático_ADJ", + "esfera_NOUN_temático_ADJ", + "esfuerzo_NOUN_concertado_ADJ", + "esfuerzo_NOUN_denodado_ADJ", + "esfuerzo_NOUN_desplegado_ADJ", + "esfuerzo_NOUN_encomiabl_ADJ", + "esfuerzo_NOUN_incansable_ADJ", + "esfuerzo_NOUN_infatigable_ADJ", + "esfuerzo_NOUN_inversor_ADJ", + "esfuerzo_NOUN_mancomunado_ADJ", + "esfuerzo_NOUN_tendient_ADJ", + "eslabón_NOUN_perdido_ADJ", + "eslavonia_PROPN_oriental_ADJ", + "eslovaquia_PROPN_eslovenia_PROPN", + "eslovaquia_PROPN_hungría_PROPN", + "eslovenia_PROPN_españa_PROPN", + "eslovenia_PROPN_estonia_PROPN", + "eslovenia_PROPN_hungría_PROPN", + "eslovenia_PROPN_isla_NOUN", + "eso_NOUN_si_NOUN", + "eso_NOUN_sí_INTJ", + "eso_NOUN_sí_NOUN", + "espacial_ADJ_tripulado_ADJ", + "espacio_NOUN_aéreo_ADJ", + "espacio_NOUN_escénico_ADJ", + "espacio_NOUN_expositivo_ADJ", + "espacio_NOUN_schengen_PROPN", + "espacio_NOUN_ultraterrestre_ADJ", + "espacio_PROPN_cultural_PROPN", + "espacio_PROPN_económico_PROPN", + "espacio_PROPN_europeo_PROPN", + "espacio_PROPN_público_PROPN", + "espacio_PROPN_ultraterrestre_PROPN", + "espada_NOUN_desnudo_ADJ", + "españa_PROPN_estonia_PROPN", + "español_ADJ_repsol_PROPN", + "español_NOUN_francés_ADJ", + "español_NOUN_marc_PROPN", + "español_NOUN_original_ADJ", + "español_NOUN_rafael_PROPN", + "especial_NOUN_al_DET", + "especialmente_ADV_habido_ADJ", + "especie_NOUN_amenazado_ADJ", + "especie_NOUN_animal_ADJ", + "especie_NOUN_autóctono_ADJ", + "especie_NOUN_endémico_ADJ", + "especie_NOUN_exótico_ADJ", + "especie_NOUN_invasor_ADJ", + "especie_NOUN_migratorio_ADJ", + "especie_NOUN_nativo_ADJ", + "especie_NOUN_presupuestado_ADJ", + "especie_NOUN_protegido_ADJ", + "especie_NOUN_silvestres_PROPN", + "especie_NOUN_vegetal_ADJ", + "especificación_NOUN_técnico_ADJ", + "especificidad_NOUN_cultural_ADJ", + "espectro_NOUN_radioeléctrico_ADJ", + "espectáculo_NOUN_artístico_ADJ", + "espectáculo_NOUN_musical_ADJ", + "espectáculo_NOUN_teatral_ADJ", + "especulación_NOUN_inmobiliario_ADJ", + "específicamente_ADV_diseñado_ADJ", + "espejo_NOUN_retrovisor_ADJ", + "espejo_PROPN_público_PROPN", + "esperanza_NOUN_depositado_ADJ", + "esperanza_PROPN_aguirre_PROPN", + "esperanza_PROPN_día_PROPN", + "esperar_VERB_ansiosamente_ADV", + "esperar_VERB_fervientemente_ADV", + "esperar_VERB_pacientemente_ADV", + "esperar_VERB_sinceramente_ADV", + "espina_NOUN_bífido_ADJ", + "espina_NOUN_clavado_ADJ", + "espina_NOUN_dorsal_ADJ", + "espinoza_PROPN_paz_PROPN", + "espiral_NOUN_descendente_ADJ", + "espiritual_ADJ_moral_ADJ", + "espn_PROPN_deportes_PROPN", + "espoleta_NOUN_sensible_ADJ", + "esposa_NOUN_michelle_PROPN", + "espíritu_NOUN_constructivo_ADJ", + "espíritu_NOUN_emprendedor_ADJ", + "espíritu_NOUN_empresarial_ADJ", + "espíritu_NOUN_navideño_ADJ", + "espíritu_PROPN_santo_PROPN", + "esquerra_PROPN_republicana_PROPN", + "esquerra_PROPN_unida_PROPN", + "essays_PROPN_in_ADP", + "estabilidad_NOUN_duradero_ADJ", + "estabilidad_NOUN_macroeconómico_ADJ", + "estabilidad_PROPN_financiera_PROPN", + "estabilidad_PROPN_presupuestaria_PROPN", + "estabilización_NOUN_macroeconómico_ADJ", + "estabilización_NOUN_sfor_PROPN", + "establecimiento_NOUN_carcelario_ADJ", + "establecimiento_NOUN_correccional_ADJ", + "establecimiento_NOUN_educacional_ADJ", + "establecimiento_NOUN_hostelero_ADJ", + "establecimiento_NOUN_hotelero_ADJ", + "establecimiento_NOUN_penitenciario_ADJ", + "estacer_AUX_hablar_VERB", + "estacionamiento_NOUN_medido_ADJ", + "estación_NOUN_espacial_ADJ", + "estación_NOUN_ferroviario_ADJ", + "estación_NOUN_lluviós_ADJ", + "estación_NOUN_meteorológico_ADJ", + "estación_NOUN_migratorio_ADJ", + "estación_NOUN_seco_ADJ", + "estación_NOUN_terrestre_ADJ", + "estación_PROPN_central_PROPN", + "estación_PROPN_espacial_PROPN", + "estadio_NOUN_azteca_PROPN", + "estadio_NOUN_azul_PROPN", + "estadio_NOUN_centenario_PROPN", + "estadio_NOUN_jalisco_PROPN", + "estadio_NOUN_maracaná_PROPN", + "estadio_NOUN_monumental_PROPN", + "estadio_NOUN_olímpico_ADJ", + "estadio_NOUN_olímpico_PROPN", + "estadio_NOUN_santiago_PROPN", + "estadio_NOUN_universitario_PROPN", + "estadio_NOUN_vicente_PROPN", + "estadio_PROPN_azteca_PROPN", + "estadio_PROPN_centenario_PROPN", + "estadio_PROPN_monumental_PROPN", + "estadio_PROPN_municipal_PROPN", + "estadio_PROPN_nacional_PROPN", + "estadio_PROPN_olímpico_PROPN", + "estado_ADJ_parte_NOUN", + "estado_NOUN_contratante_ADJ", + "estado_NOUN_federado_ADJ", + "estado_NOUN_informante_ADJ", + "estado_NOUN_insular_ADJ", + "estado_NOUN_part_ADJ", + "estado_NOUN_parte_ADJ", + "estado_NOUN_parte_ADV", + "estado_NOUN_partir_VERB", + "estado_NOUN_poseedor_ADJ", + "estado_NOUN_predecesor_ADJ", + "estado_NOUN_promulgant_ADJ", + "estado_NOUN_promulgante_ADJ", + "estado_NOUN_requirent_ADJ", + "estado_NOUN_ribereño_ADJ", + "estado_NOUN_ribereño_NOUN", + "estado_NOUN_ribereños_PROPN", + "estado_NOUN_signatario_ADJ", + "estado_NOUN_solicitante_ADJ", + "estado_NOUN_sucesor_ADJ", + "estado_PROPN_boe_PROPN", + "estado_PROPN_condoleezza_PROPN", + "estado_PROPN_fge_PROPN", + "estado_PROPN_hebreo_ADJ", + "estado_PROPN_islámico_PROPN", + "estado_PROPN_laico_ADJ", + "estado_PROPN_mayor_PROPN", + "estado_PROPN_parte_PROPN", + "estado_PROPN_pge_PROPN", + "estado_PROPN_pgje_PROPN", + "estado_PROPN_plurinacional_ADJ", + "estado_PROPN_plurinacional_PROPN", + "estado_PROPN_predecesor_ADJ", + "estados_NOUN_miembro_NOUN", + "estados_PROPN_americanos_PROPN", + "estados_PROPN_independientes_PROPN", + "estados_PROPN_miembros_NOUN", + "estados_PROPN_miembros_PROPN", + "estados_PROPN_partes_NOUN", + "estados_PROPN_partes_PROPN", + "estados_PROPN_sahelosaharianos_PROPN", + "estados_PROPN_unidos_PROPN", + "estados_PROPN_árabes_PROPN", + "estadounidense_ADJ_barack_PROPN", + "estadounidense_ADJ_donald_PROPN", + "estadounidense_ADJ_george_PROPN", + "estadounidense_NOUN_andy_PROPN", + "estadounidense_NOUN_john_PROPN", + "estadística_NOUN_actualizada_ADJ", + "estadística_NOUN_demográfico_ADJ", + "estadística_NOUN_desglosada_ADJ", + "estadística_NOUN_fiable_ADJ", + "estadística_PROPN_ine_PROPN", + "estadísticamente_ADV_significativo_ADJ", + "estadístico_ADJ_desglosado_ADJ", + "estadístico_NOUN_europeo_ADJ", + "estambul_PROPN_turquía_PROPN", + "estamento_NOUN_militar_ADJ", + "estancia_NOUN_temporal_ADJ", + "estatal_ADJ_petróleos_PROPN", + "estatal_PROPN_electoral_PROPN", + "estatura_NOUN_moral_ADJ", + "estatus_NOUN_legal_ADJ", + "estatus_NOUN_migratorio_ADJ", + "estatuto_NOUN_definitivo_ADJ", + "estatuto_PROPN_catalán_ADJ", + "esteban_PROPN_arkadievich_PROPN", + "esteban_PROPN_bullrich_PROPN", + "esteban_PROPN_echeverría_PROPN", + "esteban_PROPN_gonzález_PROPN", + "estereotipo_NOUN_negativo_ADJ", + "estereotipo_NOUN_sexista_ADJ", + "estereotipo_NOUN_tradicional_ADJ", + "esterilización_NOUN_forzado_ADJ", + "estilo_NOUN_musical_ADJ", + "estimación_NOUN_ajustado_ADJ", + "estimación_NOUN_cuantitativo_ADJ", + "estimación_NOUN_preliminar_ADJ", + "estimación_NOUN_presupuestaria_ADJ", + "estimación_NOUN_revisado_ADJ", + "estimado_ADJ_colega_NOUN", + "estimar_VERB_conveniente_ADJ", + "estimar_VERB_oportuna_NOUN", + "estimar_VERB_oportuno_ADJ", + "estimulación_NOUN_temprano_ADJ", + "estipendio_NOUN_especial_ADJ", + "estipular_VERB_expresamente_ADV", + "esto_NOUN_es_NOUN", + "estocolmo_PROPN_suecia_PROPN", + "estonia_PROPN_etiopía_NOUN", + "estonia_PROPN_etiopía_PROPN", + "estonia_PROPN_ex_ADJ", + "estonia_PROPN_finlandia_PROPN", + "estonia_PROPN_hungría_PROPN", + "estonia_PROPN_letonia_PROPN", + "estrago_NOUN_causado_ADJ", + "estrasburgo_PROPN_francia_PROPN", + "estrategia_PROPN_europa_PROPN", + "estrato_NOUN_social_ADJ", + "estratégico_ADJ_ofensivo_ADJ", + "estrecha_NOUN_consulta_NOUN", + "estrechamente_ADV_ligado_ADJ", + "estrechamente_ADV_relacionado_ADJ", + "estrechamente_ADV_vinculado_ADJ", + "estrechar_VERB_lazo_NOUN", + "estrecho_ADJ_colaboración_NOUN", + "estrecho_ADJ_contacto_NOUN", + "estrecho_ADJ_cooperación_NOUN", + "estrecho_ADJ_lazo_NOUN", + "estrecho_ADJ_vinculación_NOUN", + "estrecho_ADJ_vínculo_NOUN", + "estrella_NOUN_fario_ADJ", + "estrella_NOUN_fugaz_ADJ", + "estrella_NOUN_michelin_PROPN", + "estrella_PROPN_digital_PROPN", + "estrella_PROPN_roja_PROPN", + "estrictamente_ADV_confidencial_ADJ", + "estrictamente_ADV_prohibido_ADJ", + "estricto_ADJ_apego_NOUN", + "estricto_ADJ_observancia_NOUN", + "estructura_NOUN_jerárquico_ADJ", + "estructura_NOUN_metálico_ADJ", + "estructura_NOUN_organizacional_ADJ", + "estructura_NOUN_organizativo_ADJ", + "estructura_NOUN_orgánico_ADJ", + "estrés_NOUN_postraumático_ADJ", + "estudiante_NOUN_matriculado_ADJ", + "estudiante_NOUN_universitario_ADJ", + "estudiar_VERB_atentamente_ADV", + "estudiar_VERB_cuidadosamente_ADV", + "estudiar_VERB_detenidamente_ADV", + "estudiar_VERB_minuciosamente_ADV", + "estudien_VERB_estudien_VERB", + "estudio_NOUN_epidemiológico_ADJ", + "estudio_NOUN_monográfico_ADJ", + "estudio_NOUN_sociológico_ADJ", + "estudios_PROPN_económicos_PROPN", + "estudios_PROPN_estratégicos_PROPN", + "estudios_PROPN_legislativos_PROPN", + "estudios_PROPN_sociales_PROPN", + "estudios_PROPN_superiores_PROPN", + "estupefaciente_NOUN_enmendado_ADJ", + "estándar_NOUN_mínimo_ADJ", + "estímulo_NOUN_fiscal_ADJ", + "estímulo_NOUN_monetario_ADJ", + "estómago_NOUN_vacío_ADJ", + "et_CCONJ_des_ADP", + "et_PROPN_des_ADP", + "et_PROPN_des_PROPN", + "et_PROPN_du_PROPN", + "et_PROPN_non_NOUN", + "et_PROPN_qui_PROPN", + "etapa_NOUN_clasificatorio_ADJ", + "etapa_NOUN_experimental_ADJ", + "etapa_NOUN_inicial_ADJ", + "etapa_NOUN_posterior_ADJ", + "etapa_NOUN_temprano_ADJ", + "eternamente_ADV_agradecido_ADJ", + "eterno_ADJ_descanso_NOUN", + "eterno_ADJ_rival_NOUN", + "etiopía_NOUN_federación_PROPN", + "etiopía_NOUN_fiji_PROPN", + "etiopía_NOUN_filipinas_PROPN", + "etiopía_NOUN_finlandia_PROPN", + "etiopía_NOUN_gabón_PROPN", + "etiopía_NOUN_gambia_PROPN", + "etiopía_NOUN_ghana_PROPN", + "etiopía_NOUN_kenya_PROPN", + "etiqueta_NOUN_ecológico_ADJ", + "etiquetado_NOUN_ecológico_ADJ", + "etiquetado_NOUN_obligatorio_ADJ", + "etnia_NOUN_albanés_ADJ", + "etnia_NOUN_gitán_ADJ", + "etnia_NOUN_romaní_ADJ", + "eugenia_PROPN_vidal_PROPN", + "eugenio_PROPN_derbez_PROPN", + "europa_PROPN_cepe_PROPN", + "europa_PROPN_league_PROPN", + "europa_PROPN_occidental_ADJ", + "europa_PROPN_occidental_PROPN", + "europa_PROPN_oriental_PROPN", + "europa_PROPN_osce_PROPN", + "europa_PROPN_press_PROPN", + "europa_PROPN_sudoriental_ADJ", + "europa_PROPN_sudoriental_PROPN", + "europea_PROPN_esa_PROPN", + "europea_PROPN_izquierda_PROPN", + "european_PROPN_commission_PROPN", + "european_PROPN_court_PROPN", + "european_PROPN_journal_PROPN", + "european_PROPN_treaty_VERB", + "european_PROPN_union_PROPN", + "europeo_ADJ_eurostat_PROPN", + "europeo_PROPN_bce_PROPN", + "europeo_PROPN_demócratas_PROPN", + "europeo_PROPN_herman_PROPN", + "euros_NOUN_mensual_ADJ", + "euskal_PROPN_herria_PROPN", + "eusko_PROPN_alkartasuna_PROPN", + "eva_PROPN_longoria_PROPN", + "eva_PROPN_perón_PROPN", + "evacuación_NOUN_médico_ADJ", + "evadir_VERB_impuesto_NOUN", + "evaluación_NOUN_actuarial_ADJ", + "evaluación_NOUN_st_NOUN", + "evaluar_VERB_periódicamente_ADV", + "evaluation_PROPN_of_PROPN", + "evalúar_VERB_periódicamente_ADV", + "evasión_NOUN_fiscal_ADJ", + "evasión_NOUN_tributario_ADJ", + "evento_NOUN_deportivo_ADJ", + "ever_PROPN_banega_PROPN", + "evidencia_NOUN_científico_ADJ", + "evitar_VERB_duplicación_NOUN", + "evitar_VERB_duplicidad_NOUN", + "evitar_VERB_malentendido_NOUN", + "evitener_VERB_solicitar_VERB", + "evo_PROPN_morales_PROPN", + "evolucionar_VERB_considerablemente_ADV", + "evolucionar_VERB_constantemente_ADV", + "evolucionar_VERB_favorablemente_ADV", + "evolucionar_VERB_positivamente_ADV", + "evolucionar_VERB_rápidamente_ADV", + "evolución_NOUN_diurno_ADJ", + "ex_ADJ_beatle_PROPN", + "ex_ADJ_boxeador_NOUN", + "ex_ADJ_checoslovaquia_NOUN", + "ex_ADJ_combatiente_NOUN", + "ex_ADJ_combatientes_NOUN", + "ex_ADJ_congresista_NOUN", + "ex_ADJ_dictador_NOUN", + "ex_ADJ_espía_NOUN", + "ex_ADJ_far_PROPN", + "ex_ADJ_gobernador_NOUN", + "ex_ADJ_guerrillero_NOUN", + "ex_ADJ_mandataria_NOUN", + "ex_ADJ_mandatario_NOUN", + "ex_ADJ_officio_NOUN", + "ex_ADJ_post_NOUN", + "ex_ADJ_república_NOUN", + "ex_ADJ_situ_PROPN", + "ex_ADJ_tesorero_NOUN", + "ex_ADJ_yugoslavia_PROPN", + "ex_NOUN_combatiente_NOUN", + "ex_NOUN_combatientes_NOUN", + "ex_NOUN_ministro_NOUN", + "ex_NOUN_profeso_NOUN", + "exactamente_ADV_igual_ADJ", + "examen_NOUN_bianual_ADJ", + "examen_NOUN_decenal_ADJ", + "examen_NOUN_periódico_ADJ", + "examen_NOUN_quinquenal_ADJ", + "examen_NOUN_trienal_ADJ", + "examen_PROPN_periódico_ADJ", + "examinador_NOUN_principal_ADJ", + "examinar_VERB_cuidadosamente_ADV", + "examinar_VERB_detenidamente_ADV", + "examinar_VERB_exhaustivamente_ADV", + "examinar_VERB_minuciosamente_ADV", + "excandidato_NOUN_presidencial_ADJ", + "excavación_NOUN_arqueológico_ADJ", + "excelencia_NOUN_académico_ADJ", + "excelentísima_NOUN_señora_NOUN", + "excelentísimo_ADJ_señor_NOUN", + "excepción_NOUN_alguno_ADJ", + "excesivamente_ADV_nocivo_ADJ", + "excesivamente_ADV_representado_ADJ", + "excesivamente_ADV_restrictivo_ADJ", + "excluir_VERB_expresamente_ADV", + "excluir_VERB_mutuamente_ADV", + "exclusión_NOUN_aéreo_ADJ", + "exclusión_NOUN_social_ADJ", + "exclusión_PROPN_social_PROPN", + "excusa_NOUN_perfecto_ADJ", + "exención_NOUN_fiscal_ADJ", + "exención_NOUN_parcial_ADJ", + "exención_NOUN_plurianual_ADJ", + "exención_NOUN_tributario_ADJ", + "exhortar_VERB_encarecidamente_ADV", + "exiliado_ADJ_cubano_ADJ", + "exilio_NOUN_cubano_ADJ", + "expectativa_NOUN_generado_ADJ", + "expediente_NOUN_disciplinario_ADJ", + "expediente_NOUN_sancionador_ADJ", + "expedir_VERB_certificado_NOUN", + "expedir_VERB_credencial_NOUN", + "expensas_NOUN_del_DET", + "experiencia_NOUN_acumulado_ADJ", + "experiencia_NOUN_adquirido_ADJ", + "experiencia_NOUN_inolvidable_ADJ", + "experiencia_NOUN_traumática_ADJ", + "experiencia_NOUN_traumático_ADJ", + "experiencia_NOUN_vivido_ADJ", + "experimento_NOUN_científico_ADJ", + "experimento_NOUN_médico_ADJ", + "experta_NOUN_independiente_ADJ", + "experto_ADJ_independiente_ADJ", + "experto_NOUN_eminent_ADJ", + "experto_NOUN_forense_ADJ", + "experto_NOUN_independiente_ADJ", + "expertos_PROPN_independientes_PROPN", + "explicación_NOUN_alguno_ADJ", + "explicación_NOUN_dado_ADJ", + "explicación_NOUN_ofrecido_ADJ", + "explicar_VERB_detalladamente_ADV", + "exploración_NOUN_aeroespacial_ADJ", + "exploración_NOUN_espacial_ADJ", + "exploración_NOUN_petrolero_ADJ", + "explosivo_NOUN_plástico_ADJ", + "explosión_NOUN_demográfico_ADJ", + "explotación_NOUN_agrario_ADJ", + "explotación_NOUN_agrícola_ADJ", + "explotación_NOUN_ebitda_PROPN", + "explotación_NOUN_forestal_ADJ", + "explotación_NOUN_ganadero_ADJ", + "explotación_NOUN_ilegal_ADJ", + "explotación_NOUN_minero_ADJ", + "explotación_NOUN_sexual_ADJ", + "explotado_ADJ_sexualmente_ADV", + "explotar_VERB_sexualmente_ADV", + "exponer_VERB_brevemente_ADV", + "exponer_VERB_detalladamente_ADV", + "exportado_ADJ_ilícitamente_ADV", + "exportador_NOUN_neto_ADJ", + "exposición_NOUN_consolidado_ADJ", + "exposición_NOUN_escrito_ADJ", + "exposición_NOUN_fotográfico_ADJ", + "exposición_NOUN_informativo_ADJ", + "exposición_NOUN_itinerante_ADJ", + "exposición_NOUN_oral_ADJ", + "exposición_PROPN_universal_PROPN", + "expresamente_ADV_autorizado_ADJ", + "expresamente_ADV_prohibido_ADJ", + "expresidenta_NOUN_cristina_PROPN", + "expresidente_NOUN_álvaro_PROPN", + "expresión_NOUN_artístico_ADJ", + "expresión_NOUN_facial_ADJ", + "expreso_NOUN_mi_DET", + "expresé_VERB_mi_DET", + "exprimer_ADJ_ministro_NOUN", + "expulsión_NOUN_colectivo_ADJ", + "expulsión_NOUN_devolución_NOUN", + "expulsión_NOUN_forzoso_ADJ", + "extension_PROPN_i_CCONJ", + "exterior_PROPN_investigación_PROPN", + "extracción_NOUN_minero_ADJ", + "extraer_VERB_conclusión_NOUN", + "extraer_VERB_lección_NOUN", + "extranjero_ADJ_directo_ADJ", + "extranjero_NOUN_expulsado_ADJ", + "extraordinariamente_ADV_difícil_ADJ", + "extraterritorial_ADJ_utilizado_ADJ", + "extremadamente_ADV_complejo_ADJ", + "extremadamente_ADV_delicado_ADJ", + "extremadamente_ADV_difícil_ADJ", + "extremadamente_ADV_peligroso_ADJ", + "extremadamente_ADV_preocupante_ADJ", + "extremadamente_ADV_útil_ADJ", + "extremar_VERB_precaución_NOUN", + "extremidad_NOUN_inferior_ADJ", + "extremismo_NOUN_islámico_ADJ", + "extremismo_NOUN_religioso_ADJ", + "extremista_NOUN_islámico_ADJ", + "extremo_ADJ_derecha_NOUN", + "extremo_ADJ_gravedad_NOUN", + "extremo_ADJ_izquierda_NOUN", + "extremo_ADJ_pobreza_NOUN", + "extremo_NOUN_derecho_ADJ", + "extremo_NOUN_izquierdo_ADJ", + "extremo_NOUN_norte_ADJ", + "extremo_NOUN_opuesto_ADJ", + "extremo_NOUN_sur_ADJ", + "extremo_PROPN_oriente_PROPN", + "exxon_PROPN_mobil_PROPN", + "ezequiel_PROPN_lavezzi_PROPN", + "f_CCONJ_i_CCONJ", + "f_PROPN_suministrado_ADJ", + "fa_PROPN_cup_PROPN", + "fabio_PROPN_beltrones_PROPN", + "fabio_PROPN_cannavaro_PROPN", + "fabio_PROPN_capello_PROPN", + "fabián_PROPN_ríos_PROPN", + "fabra_PROPN_vallés_PROPN", + "fabricación_NOUN_casero_ADJ", + "fabricación_NOUN_ilícito_ADJ", + "fabricante_NOUN_japonés_ADJ", + "fabricante_NOUN_representativo_ADJ", + "fabricar_VERB_bomba_NOUN", + "fabricar_VERB_poseer_VERB", + "facción_NOUN_beligerante_ADJ", + "facción_NOUN_palestino_ADJ", + "facción_NOUN_rebelde_ADJ", + "facción_NOUN_rival_ADJ", + "facebook_PROPN_live_PROPN", + "facebook_PROPN_mark_PROPN", + "facebook_PROPN_messenger_PROPN", + "facebook_PROPN_twitter_PROPN", + "facilitador_NOUN_neutral_ADJ", + "facilitador_NOUN_sr_PROPN", + "facilitadora_NOUN_sra_NOUN", + "facilitadoro_ADJ_sra_NOUN", + "factor_NOUN_agravante_ADJ", + "factor_NOUN_coadyuvant_ADJ", + "factor_NOUN_decisivo_ADJ", + "factor_NOUN_desencadenante_ADJ", + "factor_NOUN_desestabilizador_ADJ", + "factor_NOUN_determinante_ADJ", + "factor_NOUN_externo_ADJ", + "factor_NOUN_sociocultural_ADJ", + "factor_NOUN_subyacente_ADJ", + "factura_NOUN_falso_ADJ", + "factura_NOUN_impagada_ADJ", + "factura_NOUN_mensual_ADJ", + "facturar_VERB_millón_NOUN", + "facultad_NOUN_conferida_ADJ", + "facultad_NOUN_decisorio_ADJ", + "facultad_NOUN_delegado_ADJ", + "facultad_NOUN_discrecional_ADJ", + "facultad_NOUN_mental_ADJ", + "facultad_PROPN_discrecional_ADJ", + "facundo_PROPN_cabral_PROPN", + "facundo_PROPN_quiroga_PROPN", + "fair_NOUN_play_NOUN", + "fake_NOUN_news_NOUN", + "fakie_PROPN_auditor_PROPN", + "falkland_PROPN_islands_PROPN", + "fall_PROPN_senegal_PROPN", + "falla_NOUN_eléctrico_ADJ", + "falla_NOUN_mecánico_ADJ", + "fallido_ADJ_golpe_NOUN", + "fallido_ADJ_intento_NOUN", + "fallo_NOUN_condenatorio_ADJ", + "fallo_NOUN_dictado_ADJ", + "fallo_NOUN_emitido_ADJ", + "falsedad_NOUN_documental_ADJ", + "falso_ADJ_alarma_NOUN", + "falso_ADJ_pretexto_NOUN", + "falso_ADJ_testimonio_NOUN", + "falso_NOUN_positivo_ADJ", + "falun_PROPN_gong_PROPN", + "familia_NOUN_acomodado_ADJ", + "familia_NOUN_adoptivo_ADJ", + "familia_NOUN_damnificado_ADJ", + "familia_NOUN_disfuncional_ADJ", + "familia_NOUN_franciscana_PROPN", + "familia_NOUN_franciscán_ADJ", + "familia_NOUN_monoparental_ADJ", + "familia_PROPN_michoacana_PROPN", + "familia_PROPN_real_PROPN", + "familiar_NOUN_supérstit_ADJ", + "family_PROPN_care_PROPN", + "fanatismo_NOUN_religioso_ADJ", + "fannie_PROPN_mae_PROPN", + "fao_PROPN_rc_PROPN", + "farolillo_NOUN_rojo_ADJ", + "fase_NOUN_clasificatorio_ADJ", + "fase_NOUN_experimental_ADJ", + "fase_NOUN_inicial_ADJ", + "fase_NOUN_regular_ADJ", + "fase_NOUN_terminal_ADJ", + "fase_NOUN_v_CCONJ", + "fashion_PROPN_week_PROPN", + "faso_PROPN_burundi_NOUN", + "faso_PROPN_camboya_PROPN", + "faso_PROPN_camerún_PROPN", + "faso_PROPN_canadá_PROPN", + "faso_PROPN_chile_PROPN", + "fatal_ADJ_accidente_NOUN", + "fatal_ADJ_desenlace_NOUN", + "fatma_PROPN_yildirim_PROPN", + "fauna_NOUN_marino_ADJ", + "fauna_NOUN_silvestr_ADJ", + "fauna_NOUN_silvestre_ADJ", + "fauna_NOUN_silvestres_PROPN", + "fausto_PROPN_vallejo_PROPN", + "favor_NOUN_obsequio_NOUN", + "fax_NOUN_correo_NOUN", + "fax_NOUN_dirección_NOUN", + "fc_PROPN_barcelona_PROPN", + "fccc_NOUN_kp_DET", + "fccc_NOUN_párr_INTJ", + "fccc_PROPN_kp_PROPN", + "fccc_PROPN_párr_NOUN", + "fe_NOUN_católico_ADJ", + "fe_NOUN_ciego_ADJ", + "fe_NOUN_cristiano_ADJ", + "fe_NOUN_mía_DET", + "feb_NOUN_efe_PROPN", + "febrero_NOUN_ria_PROPN", + "fecha_NOUN_límite_ADJ", + "fecha_NOUN_tope_ADJ", + "fecundación_NOUN_in_ADP", + "fede_PROPN_bal_PROPN", + "federación_NOUN_astronáutica_PROPN", + "federación_NOUN_astronáutico_ADJ", + "federación_PROPN_agraria_PROPN", + "federación_PROPN_andaluza_PROPN", + "federación_PROPN_colombiana_PROPN", + "federación_PROPN_ecuatoriana_PROPN", + "federación_PROPN_española_PROPN", + "federación_PROPN_internacional_PROPN", + "federación_PROPN_mexicana_PROPN", + "federación_PROPN_peruana_PROPN", + "federación_PROPN_rusa_PROPN", + "federación_PROPN_sindical_PROPN", + "federación_PROPN_tepjf_PROPN", + "federación_PROPN_venezolana_PROPN", + "federal_ADJ_court_PROPN", + "federal_ADJ_district_PROPN", + "federal_ADJ_republic_PROPN", + "federation_PROPN_of_PROPN", + "federico_PROPN_garcía_PROPN", + "federico_PROPN_lombardi_PROPN", + "federico_PROPN_pinedo_PROPN", + "federico_PROPN_sturzenegger_PROPN", + "federico_PROPN_trillo_PROPN", + "feliciano_PROPN_lópez_PROPN", + "felicitar_VERB_calurosamente_ADV", + "felicitar_VERB_sinceramente_ADV", + "felipe_PROPN_caldern_PROPN", + "felipe_PROPN_calderón_PROPN", + "felipe_PROPN_carrillo_PROPN", + "felipe_PROPN_fierro_PROPN", + "felipe_PROPN_gonzález_PROPN", + "felipe_PROPN_ii_PROPN", + "felipe_PROPN_iv_PROPN", + "felipe_PROPN_massa_PROPN", + "felipe_PROPN_pérez_PROPN", + "felipe_PROPN_reyes_PROPN", + "felipe_PROPN_solá_PROPN", + "felipe_PROPN_v_PROPN", + "felipe_PROPN_vi_PROPN", + "felisa_PROPN_miceli_PROPN", + "felix_PROPN_mbayu_PROPN", + "feliz_ADJ_cumpleaños_NOUN", + "feliz_ADJ_navidad_PROPN", + "feliz_PROPN_navidad_PROPN", + "fenway_PROPN_park_PROPN", + "fenómeno_NOUN_atmosférico_ADJ", + "fenómeno_NOUN_climatológico_ADJ", + "fenómeno_NOUN_meteorológico_ADJ", + "fenómeno_NOUN_migratorio_ADJ", + "feria_PROPN_internacional_PROPN", + "feria_PROPN_valencia_PROPN", + "feriado_NOUN_oficial_ADJ", + "fernando_PROPN_alonso_PROPN", + "fernando_PROPN_gago_PROPN", + "fernando_PROPN_gonzález_PROPN", + "fernando_PROPN_henrique_PROPN", + "fernando_PROPN_llorente_PROPN", + "fernando_PROPN_lugo_PROPN", + "fernando_PROPN_pino_PROPN", + "fernando_PROPN_savater_PROPN", + "fernando_PROPN_torres_PROPN", + "fernando_PROPN_trueba_PROPN", + "fernando_PROPN_verdasco_PROPN", + "fernando_PROPN_vii_PROPN", + "fernando_PROPN_zavala_PROPN", + "fernández_PROPN_bermejo_PROPN", + "fernández_PROPN_díaz_PROPN", + "fernández_PROPN_ordóñez_PROPN", + "fernández_PROPN_oro_PROPN", + "fernández_PROPN_palacios_PROPN", + "fernández_PROPN_toxo_PROPN", + "fernández_PROPN_vara_PROPN", + "ferran_PROPN_adrià_PROPN", + "ferrer_PROPN_gómez_PROPN", + "ferro_PROPN_carril_PROPN", + "ferromanganeso_NOUN_rico_ADJ", + "fertilización_NOUN_in_ADP", + "ferviente_ADJ_deseo_NOUN", + "ferviente_ADJ_esperanza_NOUN", + "festejar_VERB_su_PRON", + "festejo_NOUN_taurino_ADJ", + "festival_NOUN_musical_ADJ", + "festival_PROPN_internacional_PROPN", + "festividad_NOUN_religioso_ADJ", + "fi_PROPN_señor_NOUN", + "fi_PROPN_señora_PROPN", + "fiat_PROPN_palio_PROPN", + "fiat_PROPN_uno_PROPN", + "fibra_NOUN_óptico_ADJ", + "fibrosis_NOUN_quístico_ADJ", + "ficha_NOUN_descriptiva_ADJ", + "fichaje_NOUN_estrella_NOUN", + "fidel_PROPN_castro_PROPN", + "fidel_PROPN_herrera_PROPN", + "fiebre_NOUN_aftosa_NOUN", + "fiebre_NOUN_aftoso_ADJ", + "fiebre_NOUN_amarillo_ADJ", + "fiebre_NOUN_hemorrágico_ADJ", + "fiel_ADJ_reflejo_NOUN", + "fiel_ADJ_seguidor_NOUN", + "fiesta_NOUN_decembrina_ADJ", + "fiesta_NOUN_navideño_ADJ", + "fiesta_NOUN_patrio_ADJ", + "fiesta_NOUN_patronal_ADJ", + "fiesta_PROPN_nacional_PROPN", + "fiesta_PROPN_provincial_PROPN", + "fiestas_PROPN_patrias_PROPN", + "fifa_PROPN_joseph_PROPN", + "figueroa_PROPN_alcorta_PROPN", + "figura_NOUN_emblemático_ADJ", + "figura_NOUN_paterno_ADJ", + "fiji_PROPN_filipinas_PROPN", + "fiji_PROPN_finlandia_PROPN", + "file_PROPN_was_PROPN", + "filho_PROPN_brasil_PROPN", + "filial_NOUN_extranjero_ADJ", + "filipe_PROPN_luis_PROPN", + "filipinas_PROPN_finlandia_PROPN", + "filipinas_PROPN_francia_PROPN", + "filipinas_PROPN_gabón_PROPN", + "filipinas_PROPN_ghana_PROPN", + "filipinas_PROPN_guatemala_PROPN", + "filipinas_PROPN_indonesio_ADJ", + "filipinas_PROPN_polonia_PROPN", + "filipinas_PROPN_qatar_VERB", + "fin_NOUN_pacífico_ADJ", + "final_PROPN_fantasy_PROPN", + "final_PROPN_four_PROPN", + "financiación_NOUN_innovadoro_ADJ", + "financiación_NOUN_multianual_ADJ", + "financiación_NOUN_plurianual_ADJ", + "financial_ADJ_times_PROPN", + "financial_PROPN_times_PROPN", + "financiamiento_NOUN_compensatorio_ADJ", + "financiar_VERB_planificar_VERB", + "financiar_VERB_íntegramente_ADV", + "financiero_ADJ_comprobado_ADJ", + "financiero_NOUN_multilateral_ADJ", + "finanzas_PROPN_públicas_PROPN", + "finca_NOUN_rústico_ADJ", + "finca_NOUN_ubicado_ADJ", + "fincar_VERB_responsabilidad_NOUN", + "finlandia_PROPN_francia_PROPN", + "finlandia_PROPN_georgia_PROPN", + "finlandia_PROPN_grecia_PROPN", + "finlandés_NOUN_kimi_PROPN", + "firma_NOUN_consultor_ADJ", + "firma_NOUN_electrónico_ADJ", + "firma_NOUN_manuscrito_ADJ", + "firma_NOUN_numérico_ADJ", + "firma_NOUN_ratificación_NOUN", + "firmado_ADJ_andrey_NOUN", + "firmado_ADJ_ban_PROPN", + "firmado_ADJ_dr_PROPN", + "firmado_ADJ_ellen_PROPN", + "firmado_ADJ_inocencio_PROPN", + "firmado_ADJ_jeremy_PROPN", + "firmado_ADJ_kofi_PROPN", + "firmado_ADJ_mohammed_ADJ", + "firmado_ADJ_nasser_NOUN", + "firmado_ADJ_philippe_PROPN", + "firmado_ADJ_saeed_NOUN", + "firmado_ADJ_shauket_ADJ", + "firmado_ADJ_vladislav_DET", + "firmado_ADJ_yehuda_PROPN", + "firmar_VERB_autógrafo_NOUN", + "firme_ADJ_convencimiento_NOUN", + "firme_ADJ_convicción_NOUN", + "firme_ADJ_partidario_ADJ", + "firme_ADJ_voluntad_NOUN", + "firmemente_ADV_arraigado_ADJ", + "firmemente_ADV_comprometido_ADJ", + "firmemente_ADV_convencido_ADJ", + "firmemente_ADV_decidido_ADJ", + "firmemente_ADV_empeñado_ADJ", + "firmemente_ADV_resuelto_ADJ", + "first_PROPN_nations_PROPN", + "first_PROPN_secretary_PROPN", + "fiscal_NOUN_adjunto_ADJ", + "fiscal_NOUN_anticorrupción_ADJ", + "fiscal_PROPN_general_PROPN", + "fiscalía_PROPN_anticorrupción_PROPN", + "fiscalía_PROPN_especializada_PROPN", + "fiscalía_PROPN_general_PROPN", + "fiscalía_PROPN_provincial_PROPN", + "fiscalía_PROPN_regional_PROPN", + "fitch_PROPN_ratings_PROPN", + "fito_PROPN_páez_PROPN", + "flaco_ADJ_favor_NOUN", + "flagrante_ADJ_violación_NOUN", + "flamante_ADJ_campeón_NOUN", + "flash_PROPN_player_PROPN", + "flavio_PROPN_briatore_PROPN", + "flet_NOUN_aéreo_ADJ", + "flete_NOUN_aéreo_ADJ", + "flexibilización_NOUN_laboral_ADJ", + "flia_PROPN_participar_VERB", + "flora_NOUN_silvestr_ADJ", + "flora_PROPN_silvestres_PROPN", + "florence_PROPN_cassez_PROPN", + "florencia_PROPN_italia_PROPN", + "florencia_PROPN_kirchner_PROPN", + "florencio_PROPN_randazzo_PROPN", + "florencio_PROPN_varela_PROPN", + "florentino_PROPN_pérez_PROPN", + "flota_NOUN_aéreo_ADJ", + "flota_NOUN_comunitario_ADJ", + "flota_NOUN_pesquero_ADJ", + "floyd_PROPN_mayweather_PROPN", + "fluctuación_NOUN_cambiario_ADJ", + "fluctuación_NOUN_monetario_ADJ", + "fluctuar_VERB_entre_ADP", + "fluctúar_VERB_entre_ADP", + "fluido_NOUN_eléctrico_ADJ", + "flujo_NOUN_migratorio_ADJ", + "flujo_NOUN_sanguíneo_ADJ", + "flujo_NOUN_vehicular_ADJ", + "flushing_PROPN_meadows_PROPN", + "foco_NOUN_reflector_ADJ", + "foco_NOUN_rojo_ADJ", + "foco_NOUN_ígneo_ADJ", + "folha_PROPN_online_PROPN", + "folleto_NOUN_ficha_NOUN", + "folleto_NOUN_hoja_NOUN", + "folleto_NOUN_informativo_ADJ", + "folleto_NOUN_titulado_ADJ", + "fomento_PROPN_aif_ADV", + "fomento_PROPN_ana_PROPN", + "fomento_PROPN_económico_PROPN", + "fondo_NOUN_buitre_ADJ", + "fondo_NOUN_fiduciario_ADJ", + "fondo_NOUN_marino_ADJ", + "fondo_NOUN_monetario_ADJ", + "fondo_NOUN_recaudado_ADJ", + "fondo_NOUN_rotatorio_ADJ", + "fondo_PROPN_estatal_PROPN", + "fondo_PROPN_europeo_PROPN", + "fondo_PROPN_fiduciario_ADJ", + "fondo_PROPN_fiduciario_PROPN", + "fondo_PROPN_monetario_PROPN", + "fondo_PROPN_mundial_PROPN", + "fondo_PROPN_social_PROPN", + "fondos_PROPN_estructural_ADJ", + "fondos_PROPN_estructurales_PROPN", + "fondos_PROPN_europeos_PROPN", + "fono_NOUN_general_ADJ", + "fonseca_PROPN_brasil_PROPN", + "fonseca_PROPN_fernandes_PROPN", + "food_PROPN_and_PROPN", + "for_ADP_a_DET", + "for_ADP_human_PROPN", + "for_ADP_the_DET", + "for_ADP_the_PROPN", + "for_NOUN_example_ADV", + "for_PROPN_all_PROPN", + "for_PROPN_an_PROPN", + "for_PROPN_children_PROPN", + "for_PROPN_development_PROPN", + "for_PROPN_his_PROPN", + "for_PROPN_human_PROPN", + "for_PROPN_international_PROPN", + "for_PROPN_peace_PROPN", + "for_PROPN_sustainable_PROPN", + "for_PROPN_the_PROPN", + "for_PROPN_thirteenth_PROPN", + "for_PROPN_twelfth_PROPN", + "for_PROPN_women_PROPN", + "force_PROPN_india_PROPN", + "forces_NOUN_nouvell_ADJ", + "forces_PROPN_nouvell_ADJ", + "forces_PROPN_nouvelles_PROPN", + "ford_PROPN_fiesta_PROPN", + "ford_PROPN_focus_PROPN", + "ford_PROPN_motor_PROPN", + "foreign_PROPN_affairs_PROPN", + "foreign_PROPN_office_PROPN", + "foreign_PROPN_policy_PROPN", + "forense_PROPN_semefo_PROPN", + "forestación_NOUN_reforestación_NOUN", + "forestal_ADJ_sostenible_ADJ", + "forjar_VERB_alianza_NOUN", + "forjar_VERB_vínculo_NOUN", + "form_NOUN_of_ADP", + "form_PROPN_of_PROPN", + "forma_NOUN_conexa_ADJ", + "forma_NOUN_contemporáneo_ADJ", + "forma_NOUN_enmendado_ADJ", + "forma_NOUN_oralmente_ADV", + "forma_NOUN_paulatín_ADJ", + "formación_NOUN_geológico_ADJ", + "formación_NOUN_impartido_ADJ", + "formación_NOUN_naranja_ADJ", + "formación_NOUN_profesional_ADJ", + "formación_NOUN_rocoso_ADJ", + "formación_PROPN_docente_PROPN", + "formación_PROPN_profesional_PROPN", + "formar_VERB_parte_NOUN", + "formato_NOUN_digital_ADJ", + "formato_NOUN_electrónico_ADJ", + "formato_NOUN_impreso_ADJ", + "formato_NOUN_normalizado_ADJ", + "formato_NOUN_uniforme_ADJ", + "forms_PROPN_of_PROPN", + "formulación_NOUN_plaguicida_ADJ", + "formulación_NOUN_tardío_ADJ", + "formulario_NOUN_normalizado_ADJ", + "formule_VERB_recomendación_NOUN", + "foro_NOUN_permanente_ADJ", + "foro_NOUN_tripartito_ADJ", + "foro_PROPN_asturias_PROPN", + "foro_PROPN_económico_PROPN", + "foro_PROPN_social_PROPN", + "foro_PROPN_sol_PROPN", + "foro_PROPN_urbano_PROPN", + "fort_PROPN_lauderdale_PROPN", + "fort_PROPN_worth_PROPN", + "fortalecimiento_NOUN_institucional_ADJ", + "fortaleza_NOUN_mental_ADJ", + "forum_PROPN_for_PROPN", + "forum_PROPN_on_PROPN", + "fosa_NOUN_clandestino_ADJ", + "fosa_NOUN_común_ADJ", + "fosa_NOUN_séptico_ADJ", + "foto_NOUN_tomado_ADJ", + "fotografía_NOUN_tomado_ADJ", + "foundation_PROPN_for_PROPN", + "fox_PROPN_news_PROPN", + "fox_PROPN_sports_PROPN", + "fr_PROPN_señor_NOUN", + "fr_PROPN_señora_PROPN", + "fracaso_NOUN_escolar_ADJ", + "fracción_NOUN_parlamentario_ADJ", + "framework_NOUN_for_PROPN", + "france_PROPN_football_PROPN", + "france_PROPN_libertés_ADV", + "france_PROPN_presse_PROPN", + "france_PROPN_telecom_PROPN", + "francesc_PROPN_homs_PROPN", + "francia_PROPN_gabón_PROPN", + "francia_PROPN_gambia_PROPN", + "francia_PROPN_georgia_PROPN", + "francia_PROPN_ghana_PROPN", + "francia_PROPN_grecia_PROPN", + "francia_PROPN_nicolas_PROPN", + "francis_PROPN_deng_PROPN", + "francis_PROPN_ford_PROPN", + "francisco_PROPN_blake_PROPN", + "francisco_PROPN_caamaño_PROPN", + "francisco_PROPN_camps_PROPN", + "francisco_PROPN_correa_PROPN", + "francisco_PROPN_franco_PROPN", + "francisco_PROPN_granados_PROPN", + "francisco_PROPN_i_PROPN", + "francisco_PROPN_javier_PROPN", + "francisco_PROPN_madero_PROPN", + "francisco_PROPN_morazán_PROPN", + "francisco_PROPN_pizarro_PROPN", + "francisco_PROPN_ramírez_PROPN", + "franco_ADJ_depasquale_PROPN", + "franco_NOUN_suizo_ADJ", + "franco_PROPN_macri_PROPN", + "franco_PROPN_suizo_ADJ", + "francos_NOUN_cfa_NOUN", + "francos_NOUN_cfa_PROPN", + "francos_NOUN_francés_ADJ", + "francos_NOUN_suizo_ADJ", + "francés_ADJ_emmanuel_PROPN", + "francés_ADJ_françois_PROPN", + "francés_ADJ_jacques_PROPN", + "francés_ADJ_nicolas_PROPN", + "francés_NOUN_richard_PROPN", + "francés_NOUN_tsonga_PROPN", + "franja_NOUN_costero_ADJ", + "franja_NOUN_fronterizo_ADJ", + "franja_NOUN_horario_ADJ", + "frank_PROPN_lampard_PROPN", + "frank_PROPN_rijkaard_PROPN", + "frank_PROPN_sinatra_PROPN", + "franklin_PROPN_delano_PROPN", + "franklin_PROPN_roosevelt_PROPN", + "franquicia_NOUN_arancelario_ADJ", + "franz_PROPN_beckenbauer_PROPN", + "françois_PROPN_fillon_PROPN", + "françois_PROPN_hollande_PROPN", + "françoise_PROPN_hampson_PROPN", + "fraude_NOUN_electoral_ADJ", + "fraude_NOUN_fiscal_ADJ", + "fray_PROPN_bartolomé_PROPN", + "fray_PROPN_bentos_PROPN", + "fray_PROPN_blas_PROPN", + "fray_PROPN_gerundio_PROPN", + "fray_PROPN_juan_PROPN", + "fray_PROPN_luis_PROPN", + "fray_PROPN_miguel_PROPN", + "frecuencia_NOUN_modulado_ADJ", + "frecuencia_NOUN_semanal_ADJ", + "frecuentemente_ADV_utilizado_ADJ", + "freddie_PROPN_mac_PROPN", + "freddie_PROPN_mercury_PROPN", + "freddy_PROPN_guevara_PROPN", + "freedom_NOUN_house_NOUN", + "freedom_PROPN_house_PROPN", + "freedom_PROPN_of_PROPN", + "frente_ADV_al_DET", + "frente_ADV_polisario_NOUN", + "frente_NOUN_al_DET", + "frente_NOUN_polisario_NOUN", + "frente_NOUN_revolucionario_ADJ", + "frente_PROPN_amplio_PROPN", + "frente_PROPN_ciudadano_PROPN", + "frente_PROPN_cívico_PROPN", + "frente_PROPN_justicialista_PROPN", + "frente_PROPN_polisario_ADJ", + "frente_PROPN_polisario_PROPN", + "frente_PROPN_popular_PROPN", + "frente_PROPN_progresista_PROPN", + "frente_PROPN_renovador_PROPN", + "frente_PROPN_sandinista_PROPN", + "frida_PROPN_kahlo_PROPN", + "friends_PROPN_of_PROPN", + "from_ADP_the_DET", + "from_NOUN_the_PROPN", + "from_PROPN_the_PROPN", + "frontera_NOUN_exterior_ADJ", + "frontera_NOUN_marítimo_ADJ", + "frontera_NOUN_norte_ADJ", + "frontera_NOUN_sur_ADJ", + "frontera_NOUN_terrestre_ADJ", + "fruta_NOUN_fresco_ADJ", + "fruta_NOUN_tropical_ADJ", + "fruta_NOUN_verdura_NOUN", + "fruto_NOUN_seco_ADJ", + "frágil_ADJ_ecosistema_NOUN", + "frágil_ADJ_equilibrio_NOUN", + "fuego_NOUN_artificial_ADJ", + "fuego_NOUN_cruzado_ADJ", + "fuego_NOUN_munición_NOUN", + "fuego_PROPN_noticias_PROPN", + "fuente_NOUN_allegado_ADJ", + "fuente_NOUN_anuario_NOUN", + "fuente_NOUN_conocedor_ADJ", + "fuente_NOUN_consultado_ADJ", + "fuente_NOUN_extraoficial_ADJ", + "fuente_NOUN_extrapresupuestaria_ADJ", + "fuente_NOUN_fidedigna_ADJ", + "fuente_NOUN_inagotable_ADJ", + "fuente_NOUN_innovadora_ADJ", + "fuente_NOUN_policial_ADJ", + "fuente_NOUN_radiactivo_ADJ", + "fuente_NOUN_renovable_ADJ", + "fuera_NOUN_poco_ADV", + "fuero_NOUN_común_ADJ", + "fuero_NOUN_federal_ADJ", + "fuero_NOUN_militar_ADJ", + "fuero_PROPN_común_PROPN", + "fuerte_ADJ_abrazo_NOUN", + "fuerte_ADJ_aguacero_NOUN", + "fuerte_ADJ_lluvia_NOUN", + "fuerte_ADJ_nevada_NOUN", + "fuerte_ADJ_oleaje_NOUN", + "fuerte_ADJ_olor_NOUN", + "fuerte_ADJ_ráfaga_NOUN", + "fuerte_ADJ_temporal_NOUN", + "fuerte_ADJ_viento_NOUN", + "fuertemente_ADV_armado_ADJ", + "fuertemente_ADV_endeudado_ADJ", + "fuerza_NOUN_armadas_PROPN", + "fuerza_NOUN_armado_ADJ", + "fuerza_NOUN_combatient_ADJ", + "fuerza_NOUN_ejecutorio_ADJ", + "fuerza_NOUN_etíop_ADJ", + "fuerza_NOUN_impulsoro_ADJ", + "fuerza_NOUN_invasor_ADJ", + "fuerza_NOUN_licorne_NOUN", + "fuerza_NOUN_militante_ADJ", + "fuerza_NOUN_motriz_ADJ", + "fuerza_NOUN_multinacional_ADJ", + "fuerza_NOUN_opositora_ADJ", + "fuerza_PROPN_armada_PROPN", + "fuerza_PROPN_aérea_PROPN", + "fuerza_PROPN_civil_PROPN", + "fuerza_PROPN_naval_PROPN", + "fuerza_PROPN_popular_PROPN", + "fuerza_PROPN_pública_PROPN", + "fuerzas_PROPN_armadas_PROPN", + "fuerzas_PROPN_aéreas_PROPN", + "fuerzas_PROPN_democráticas_PROPN", + "fuerzas_PROPN_especiales_PROPN", + "fuerzas_PROPN_militares_PROPN", + "fukushima_PROPN_daiichi_PROPN", + "fulgencio_PROPN_batista_PROPN", + "full_PROPN_hd_PROPN", + "fumar_VERB_cigarrillo_NOUN", + "fumar_VERB_marihuana_NOUN", + "fumigación_NOUN_aéreo_ADJ", + "funcionar_VERB_adecuadamente_ADV", + "funcionar_VERB_correctamente_ADV", + "funcionar_VERB_eficazmente_ADV", + "funcionar_VERB_satisfactoriamente_ADV", + "funcionario_NOUN_contratado_ADJ", + "funcionario_NOUN_jubilado_ADJ", + "funcionario_NOUN_subalterno_ADJ", + "función_NOUN_catalizadoro_ADJ", + "función_NOUN_catalítico_ADJ", + "función_NOUN_desempeñado_ADJ", + "función_NOUN_encomendada_ADJ", + "función_NOUN_estereotipada_ADJ", + "función_PROPN_pública_PROPN", + "fund_PROPN_for_PROPN", + "fundación_NOUN_carnegie_PROPN", + "fundación_PROPN_bill_PROPN", + "fundación_PROPN_caja_PROPN", + "fundación_PROPN_favaloro_PROPN", + "fundación_PROPN_ford_PROPN", + "fundación_PROPN_friedrich_PROPN", + "fundación_PROPN_pro_ADP", + "fundación_PROPN_rockefeller_PROPN", + "fundación_PROPN_telefónica_PROPN", + "fundamental_ADJ_freedoms_PROPN", + "fundamentalismo_NOUN_islámico_ADJ", + "fundamentalismo_NOUN_religioso_ADJ", + "fundamentar_VERB_suficientemente_ADV", + "fundamento_NOUN_jurídico_ADJ", + "fundar_VERB_sindicato_NOUN", + "funes_PROPN_mori_PROPN", + "furgón_NOUN_policial_ADJ", + "fusil_NOUN_automático_ADJ", + "futbol_NOUN_americano_ADJ", + "futbol_NOUN_mexicano_ADJ", + "futbolista_NOUN_brasileño_ADJ", + "futuro_NOUN_incierto_ADJ", + "futuro_NOUN_previsible_ADJ", + "futuro_NOUN_promisorio_ADJ", + "fábrica_NOUN_textil_ADJ", + "fácilmente_ADV_accesibl_ADJ", + "fácilmente_ADV_accesible_ADJ", + "fácilmente_ADV_comprensible_ADJ", + "fácilmente_ADV_identificable_ADJ", + "fátima_PROPN_báñez_PROPN", + "fédération_PROPN_internationale_PROPN", + "férreo_ADJ_defensa_NOUN", + "físicamente_ADV_imposible_ADJ", + "físico_ADJ_mental_ADJ", + "físico_ADJ_psicológico_ADJ", + "físico_ADJ_psíquico_ADJ", + "fístula_NOUN_obstétrico_ADJ", + "fórmula_NOUN_arria_PROPN", + "fórmula_NOUN_arrio_ADJ", + "fórmula_NOUN_matemático_ADJ", + "fórmula_NOUN_mágico_ADJ", + "fórmula_PROPN_uno_PROPN", + "fósforo_NOUN_blanco_ADJ", + "fútbol_NOUN_americano_ADJ", + "fútbol_NOUN_argentino_ADJ", + "fútbol_NOUN_colombiano_ADJ", + "fútbol_NOUN_femenino_ADJ", + "fútbol_NOUN_inglés_ADJ", + "fútbol_NOUN_peruano_ADJ", + "fútbol_NOUN_sudamericano_ADJ", + "fútbol_PROPN_argentino_PROPN", + "fútbol_PROPN_club_PROPN", + "fútbol_PROPN_femenino_PROPN", + "fútbol_PROPN_profesional_PROPN", + "fútbol_PROPN_sala_PROPN", + "g_NOUN_km_NOUN", + "ga_PROPN_señor_NOUN", + "gabinete_NOUN_ministerial_ADJ", + "gabinete_PROPN_alberto_PROPN", + "gabinete_PROPN_aníbal_PROPN", + "gabinete_PROPN_marcos_PROPN", + "gabino_PROPN_cué_PROPN", + "gabriel_PROPN_garcía_PROPN", + "gabriel_PROPN_heinze_PROPN", + "gabriel_PROPN_milito_PROPN", + "gabriel_PROPN_quadri_PROPN", + "gabriela_PROPN_michetti_PROPN", + "gabriela_PROPN_mistral_PROPN", + "gabriela_PROPN_rodríguez_PROPN", + "gabón_PROPN_gambia_PROPN", + "gabón_PROPN_georgia_PROPN", + "gabón_PROPN_ghana_PROPN", + "gabón_PROPN_guinea_PROPN", + "gaceta_NOUN_diario_NOUN", + "gaceta_NOUN_oficial_ADJ", + "gaceta_PROPN_oficial_ADJ", + "gaceta_PROPN_oficial_PROPN", + "gael_PROPN_garcía_PROPN", + "gaja_PROPN_sr_PROPN", + "gala_PROPN_lópez_PROPN", + "galaxy_PROPN_note_PROPN", + "galaxy_PROPN_s_PROPN", + "galicki_PROPN_sr_PROPN", + "galilea_PROPN_montijo_PROPN", + "gallego_ADJ_chiriboga_PROPN", + "gallos_PROPN_blancos_PROPN", + "gambia_PROPN_georgia_PROPN", + "gambia_PROPN_ghana_PROPN", + "gambia_PROPN_guinea_PROPN", + "game_PROPN_of_PROPN", + "ganado_NOUN_bovino_ADJ", + "ganado_NOUN_ovino_ADJ", + "ganado_NOUN_vacuno_ADJ", + "ganancia_NOUN_neto_ADJ", + "ganancia_NOUN_obtenido_ADJ", + "ganar_VERB_adepto_NOUN", + "gara_PROPN_titel_PROPN", + "garante_NOUN_emisor_ADJ", + "garantía_NOUN_bloqueado_ADJ", + "garantía_NOUN_procesal_ADJ", + "garantía_NOUN_real_ADJ", + "garcía_PROPN_amador_PROPN", + "garcía_PROPN_belaunde_PROPN", + "garcía_PROPN_bernal_PROPN", + "garcía_PROPN_cabeza_PROPN", + "garcía_PROPN_linera_PROPN", + "garcía_PROPN_lorca_PROPN", + "garcía_PROPN_luna_PROPN", + "garcía_PROPN_moritán_PROPN", + "garcía_PROPN_márquez_PROPN", + "garda_PROPN_síochána_PROPN", + "gareth_PROPN_bale_PROPN", + "gary_PROPN_medel_PROPN", + "garza_PROPN_garcía_PROPN", + "gas_NOUN_asfixiante_ADJ", + "gas_NOUN_contaminante_ADJ", + "gas_NOUN_fluorado_ADJ", + "gas_NOUN_lacrimógeno_ADJ", + "gas_NOUN_licuado_ADJ", + "gas_NOUN_lp_PROPN", + "gas_NOUN_metano_ADJ", + "gas_NOUN_mostaza_NOUN", + "gas_NOUN_natural_ADJ", + "gas_NOUN_pimienta_NOUN", + "gas_NOUN_sarín_NOUN", + "gas_NOUN_tóxico_ADJ", + "gas_PROPN_natural_PROPN", + "gasolina_NOUN_aceite_NOUN", + "gasolina_NOUN_magna_PROPN", + "gaspar_PROPN_llamazares_PROPN", + "gaspar_VERB_martins_PROPN", + "gasto_NOUN_corriente_ADJ", + "gasto_NOUN_economizado_ADJ", + "gasto_NOUN_efectuado_ADJ", + "gasto_NOUN_funerario_ADJ", + "gasto_NOUN_imprevisto_ADJ", + "gasto_NOUN_incurrido_ADJ", + "gasto_NOUN_superfluo_ADJ", + "gastón_PROPN_fernández_PROPN", + "gastón_PROPN_gaudio_PROPN", + "gatillo_NOUN_fácil_ADJ", + "gato_NOUN_negro_ADJ", + "gaza_NOUN_ocupado_ADJ", + "gazzetta_PROPN_dello_PROPN", + "genaro_PROPN_garcía_PROPN", + "gendarmería_PROPN_nacional_PROPN", + "gender_PROPN_and_PROPN", + "gender_PROPN_equality_PROPN", + "generación_NOUN_futuro_ADJ", + "generación_NOUN_venidero_ADJ", + "generador_NOUN_eléctrico_ADJ", + "general_ADJ_adjunto_ADJ", + "general_NOUN_pervez_PROPN", + "general_NOUN_pinochet_PROPN", + "general_NOUN_retirado_ADJ", + "general_PROPN_alvear_PROPN", + "general_PROPN_assembly_NOUN", + "general_PROPN_assembly_PROPN", + "general_PROPN_belgrano_PROPN", + "general_PROPN_electric_PROPN", + "general_PROPN_motors_PROPN", + "general_PROPN_obligado_PROPN", + "general_PROPN_pico_PROPN", + "general_PROPN_roca_PROPN", + "generalitat_PROPN_alberto_PROPN", + "generalitat_PROPN_artur_PROPN", + "generalitat_PROPN_carles_PROPN", + "generalitat_PROPN_valenciana_PROPN", + "generalitat_PROPN_valenciano_ADJ", + "generalmente_ADV_aceptable_ADJ", + "generalmente_ADV_aceptado_ADJ", + "generalmente_ADV_reconocido_ADJ", + "generar_VERB_polémica_NOUN", + "generoso_ADJ_hospitalidad_NOUN", + "generoso_ADJ_ofrecimiento_NOUN", + "geneva_PROPN_convention_PROPN", + "geneva_PROPN_conventions_PROPN", + "geneva_PROPN_switzerland_PROPN", + "genital_ADJ_femenino_ADJ", + "genocidio_NOUN_armenio_ADJ", + "genocidio_NOUN_cometido_ADJ", + "genocidio_NOUN_crimen_NOUN", + "genoma_NOUN_humano_ADJ", + "genéticamente_ADV_modificado_ADJ", + "geociencia_NOUN_aplicado_ADJ", + "geografía_NOUN_español_ADJ", + "geografía_PROPN_inegi_PROPN", + "geográfico_ADJ_sig_PROPN", + "geometría_NOUN_variable_ADJ", + "george_PROPN_bush_PROPN", + "george_PROPN_clooney_PROPN", + "george_PROPN_harrison_PROPN", + "george_PROPN_lucas_PROPN", + "george_PROPN_martin_PROPN", + "george_PROPN_michael_PROPN", + "george_PROPN_orwell_PROPN", + "george_PROPN_soros_PROPN", + "george_PROPN_washington_PROPN", + "georgia_PROPN_alemania_PROPN", + "georgia_PROPN_ghana_PROPN", + "georgia_PROPN_grecia_PROPN", + "georgia_PROPN_unomig_NOUN", + "gerald_PROPN_ford_PROPN", + "gerard_PROPN_piqué_PROPN", + "gerardo_PROPN_díaz_PROPN", + "gerardo_PROPN_fernández_PROPN", + "gerardo_PROPN_hernández_PROPN", + "gerardo_PROPN_martino_PROPN", + "gerardo_PROPN_morales_PROPN", + "gerente_PROPN_general_PROPN", + "germán_PROPN_garavano_PROPN", + "germán_PROPN_martínez_PROPN", + "germán_PROPN_vargas_PROPN", + "geroa_PROPN_bai_PROPN", + "gert_PROPN_rosenthal_PROPN", + "gestionar_VERB_adecuadamente_ADV", + "gestión_NOUN_ambientalmente_ADV", + "gestión_NOUN_imis_ADJ", + "gestión_NOUN_racional_ADJ", + "gestión_NOUN_siig_PROPN", + "gestión_PROPN_ambiental_PROPN", + "gesto_NOUN_simbólico_ADJ", + "getty_PROPN_images_PROPN", + "ghana_PROPN_granada_PROPN", + "ghana_PROPN_grecia_PROPN", + "ghana_PROPN_guatemala_PROPN", + "ghana_PROPN_guinea_PROPN", + "ghana_PROPN_kenya_PROPN", + "gianluigi_PROPN_buffon_PROPN", + "gib_PROPN_fib_PROPN", + "gigante_NOUN_asiático_ADJ", + "gigante_NOUN_informático_ADJ", + "gigante_NOUN_tecnológico_ADJ", + "gil_PROPN_blas_PROPN", + "gilad_PROPN_shalit_PROPN", + "gillerman_PROPN_israel_PROPN", + "gils_PROPN_carbó_PROPN", + "gimnasia_NOUN_artístico_ADJ", + "gimnasia_NOUN_rítmico_ADJ", + "gimnasio_PROPN_municipal_PROPN", + "ginebra_PROPN_nairobi_PROPN", + "ginebra_PROPN_suiza_PROPN", + "ginebra_PROPN_viena_PROPN", + "giorgio_PROPN_gaja_PROPN", + "giorgio_PROPN_napolitano_PROPN", + "giovani_PROPN_dos_NUM", + "gira_NOUN_asiático_ADJ", + "gira_NOUN_promocional_ADJ", + "girar_VERB_alrededor_ADV", + "girar_VERB_instrucción_NOUN", + "giro_NOUN_inesperado_ADJ", + "giro_NOUN_normal_ADJ", + "giro_NOUN_radical_ADJ", + "global_PROPN_development_PROPN", + "globalización_NOUN_neoliberal_ADJ", + "globalización_PROPN_feag_PROPN", + "globo_NOUN_aerostático_ADJ", + "gloria_PROPN_estefan_PROPN", + "gloria_PROPN_trevi_PROPN", + "glóbulo_NOUN_rojo_ADJ", + "gnu_PROPN_linux_PROPN", + "go_NOUN_nº_PROPN", + "gobernabilidad_NOUN_democrático_ADJ", + "gobernación_NOUN_septentrional_ADJ", + "gobernación_PROPN_miguel_PROPN", + "gobernación_PROPN_segob_PROPN", + "gobernador_NOUN_bonaerense_ADJ", + "gobernador_NOUN_bordet_PROPN", + "gobernador_NOUN_electo_ADJ", + "gobernador_NOUN_gustavo_PROPN", + "gobernador_NOUN_omar_PROPN", + "gobernador_NOUN_peronista_ADJ", + "gobernadora_NOUN_bonaerense_ADJ", + "gobernadora_NOUN_maría_PROPN", + "gobernadora_NOUN_rosana_PROPN", + "gobernante_ADJ_partido_PROPN", + "gobernante_NOUN_venezolano_ADJ", + "gobernanza_NOUN_ambiental_ADJ", + "gobernanza_NOUN_democrático_ADJ", + "gobernanza_NOUN_empresarial_ADJ", + "gobernanza_NOUN_participativo_ADJ", + "gobierno_NOUN_anfitrión_ADJ", + "gobierno_PROPN_bolivariano_PROPN", + "gobierno_PROPN_foral_ADJ", + "gobierno_PROPN_soraya_PROPN", + "goce_NOUN_efectivo_ADJ", + "god_PROPN_of_PROPN", + "godoy_PROPN_cruz_PROPN", + "gol_NOUN_anotado_ADJ", + "gol_NOUN_anulado_ADJ", + "gol_NOUN_tempranero_ADJ", + "golden_PROPN_boy_PROPN", + "golden_PROPN_state_PROPN", + "goldman_PROPN_sachs_PROPN", + "goleador_NOUN_histórico_ADJ", + "golf_PROPN_club_PROPN", + "golfo_NOUN_arábigo_ADJ", + "golfo_NOUN_pérsico_ADJ", + "golfo_NOUN_pérsico_PROPN", + "golfo_PROPN_pérsico_PROPN", + "golpe_NOUN_mortal_ADJ", + "golpear_VERB_brutalmente_ADV", + "golpear_VERB_duramente_ADV", + "golpear_VERB_fuertemente_ADV", + "golán_NOUN_ocupado_ADJ", + "golán_NOUN_sirio_ADJ", + "golán_NOUN_árabe_ADJ", + "golán_PROPN_sirio_ADJ", + "gonzalo_PROPN_castillo_PROPN", + "gonzalo_PROPN_fernández_PROPN", + "gonzalo_PROPN_higuaín_PROPN", + "gonzalo_PROPN_rodríguez_PROPN", + "gonzalo_PROPN_sánchez_PROPN", + "gonzález_PROPN_iñárritu_PROPN", + "gonzález_PROPN_morfín_PROPN", + "gonzález_PROPN_pons_PROPN", + "gonzález_PROPN_tovar_PROPN", + "google_PROPN_chrome_PROPN", + "google_PROPN_docs_PROPN", + "google_PROPN_drive_PROPN", + "google_PROPN_earth_PROPN", + "google_PROPN_glass_PROPN", + "google_PROPN_maps_PROPN", + "google_PROPN_play_PROPN", + "gordon_PROPN_brown_PROPN", + "govern_PROPN_balear_ADJ", + "government_PROPN_of_PROPN", + "grabación_NOUN_sonoro_ADJ", + "grabar_VERB_video_NOUN", + "grabar_VERB_vídeo_NOUN", + "gracia_NOUN_al_DET", + "gracias_INTJ_señor_NOUN", + "gracias_NOUN_al_DET", + "graciela_PROPN_ocaña_PROPN", + "graco_PROPN_ramírez_PROPN", + "grado_NOUN_celsius_PROPN", + "grado_NOUN_centígrado_ADJ", + "grado_NOUN_richter_PROPN", + "grado_NOUN_sumo_ADJ", + "graduado_NOUN_universitario_ADJ", + "graefe_PROPN_zu_PROPN", + "grammy_PROPN_latino_PROPN", + "gran_ADJ_bretaña_PROPN", + "gran_ADJ_calado_NOUN", + "gran_ADJ_canaria_PROPN", + "gran_ADJ_carpa_PROPN", + "gran_ADJ_depresión_PROPN", + "gran_ADJ_ducado_NOUN", + "gran_ADJ_ducado_PROPN", + "gran_ADJ_envergadura_NOUN", + "gran_ADJ_escala_NOUN", + "gran_ADJ_expectación_NOUN", + "gran_ADJ_hermano_PROPN", + "gran_ADJ_manzana_PROPN", + "gran_ADJ_mekong_NOUN", + "gran_ADJ_muralla_PROPN", + "gran_ADJ_premio_PROPN", + "gran_ADJ_recesión_PROPN", + "gran_ADJ_revuelo_NOUN", + "gran_ADJ_rex_PROPN", + "gran_ADJ_variedad_NOUN", + "gran_ADJ_vía_PROPN", + "granada_PROPN_cf_PROPN", + "granada_PROPN_grecia_PROPN", + "granada_PROPN_guatemala_PROPN", + "granada_PROPN_guinea_PROPN", + "granada_PROPN_guyana_PROPN", + "granadero_PROPN_baigorria_PROPN", + "granadina_NOUN_samoa_PROPN", + "granadina_NOUN_santa_PROPN", + "granadina_NOUN_senegal_NOUN", + "granadina_NOUN_sierra_NOUN", + "granadina_NOUN_suriname_PROPN", + "grand_NOUN_slam_NOUN", + "grand_PROPN_prix_PROPN", + "grand_PROPN_slam_PROPN", + "grand_PROPN_slams_PROPN", + "grand_PROPN_theft_PROPN", + "grande_ADJ_lago_NOUN", + "grande_ADJ_rasgo_NOUN", + "grande_ADJ_rasgos_NOUN", + "grande_ADJ_simio_NOUN", + "grande_ADJ_urbe_NOUN", + "grandes_ADJ_rasgos_NOUN", + "grandes_PROPN_lagos_PROPN", + "grandes_PROPN_ligas_PROPN", + "grandes_PROPN_premios_PROPN", + "grandísimo_ADJ_jugador_NOUN", + "granja_NOUN_avícola_ADJ", + "granja_NOUN_ocupado_ADJ", + "grasa_NOUN_corporal_ADJ", + "grasa_NOUN_saturada_ADJ", + "grasa_NOUN_vegetal_ADJ", + "grato_ADJ_recuerdo_NOUN", + "grato_ADJ_sorpresa_NOUN", + "grave_ADJ_transgresión_NOUN", + "gravemente_ADV_afectado_ADJ", + "gravemente_ADV_amenazado_ADJ", + "gravemente_ADV_dañado_ADJ", + "gravemente_ADV_enfermo_ADJ", + "gravemente_ADV_herido_ADJ", + "gravemente_ADV_preocupado_ADJ", + "graz_PROPN_austria_PROPN", + "graça_NOUN_machel_ADJ", + "great_PROPN_britain_PROPN", + "grecia_PROPN_granada_PROPN", + "grecia_PROPN_guatemala_PROPN", + "grecia_PROPN_guinea_PROPN", + "grecia_PROPN_haití_ADJ", + "grecia_PROPN_hungría_PROPN", + "green_PROPN_bay_PROPN", + "greenstock_PROPN_presidente_NOUN", + "greenstock_PROPN_reino_PROPN", + "gregorio_PROPN_manzano_PROPN", + "gregorio_PROPN_marañón_PROPN", + "gremio_NOUN_docente_ADJ", + "greta_PROPN_thunberg_PROPN", + "gripe_NOUN_a_PROPN", + "gripe_NOUN_aviar_ADJ", + "gripe_NOUN_aviar_NOUN", + "gripe_NOUN_aviario_ADJ", + "gripe_NOUN_estacional_ADJ", + "gripe_NOUN_porcino_ADJ", + "gritar_VERB_consigna_NOUN", + "groansicht_PROPN_des_ADP", + "group_PROPN_international_PROPN", + "group_PROPN_of_PROPN", + "großansicht_PROPN_des_ADP", + "grueso_ADJ_calibre_NOUN", + "grupo_NOUN_destinatario_ADJ", + "grupo_NOUN_egmont_PROPN", + "grupo_NOUN_electrógeno_ADJ", + "grupo_NOUN_etario_ADJ", + "grupo_NOUN_guerrillero_ADJ", + "grupo_NOUN_guuam_PROPN", + "grupo_NOUN_guuam_VERB", + "grupo_NOUN_insurgente_ADJ", + "grupo_NOUN_juscanz_PROPN", + "grupo_NOUN_minoritario_ADJ", + "grupo_NOUN_neonazi_ADJ", + "grupo_NOUN_paramilitar_ADJ", + "grupo_NOUN_yihadista_ADJ", + "grupo_PROPN_alde_PROPN", + "grupo_PROPN_b_PROPN", + "grupo_PROPN_c_PROPN", + "grupo_PROPN_carso_PROPN", + "grupo_PROPN_clarín_PROPN", + "grupo_PROPN_confederal_PROPN", + "grupo_PROPN_e_PROPN", + "grupo_PROPN_ecr_PROPN", + "grupo_PROPN_efd_PROPN", + "grupo_PROPN_eldr_PROPN", + "grupo_PROPN_financiero_PROPN", + "grupo_PROPN_gue_PROPN", + "grupo_PROPN_h_PROPN", + "grupo_PROPN_ind_PROPN", + "grupo_PROPN_liberal_PROPN", + "grupo_PROPN_mixto_PROPN", + "grupo_PROPN_modelo_PROPN", + "grupo_PROPN_parlamentario_PROPN", + "grupo_PROPN_ppe_PROPN", + "grupo_PROPN_prisa_PROPN", + "grupo_PROPN_pse_PROPN", + "grupo_PROPN_socialista_PROPN", + "grupo_PROPN_televisa_PROPN", + "grupo_PROPN_uen_PROPN", + "grupo_PROPN_verts_PROPN", + "gráfico_NOUN_iv_PROPN", + "gráfico_NOUN_mural_ADJ", + "guadalajara_PROPN_jal_PROPN", + "guadalajara_PROPN_jalisco_PROPN", + "guadalupe_PROPN_victoria_PROPN", + "guante_NOUN_blanco_ADJ", + "guantánamo_PROPN_cuba_PROPN", + "guardar_VERB_relación_NOUN", + "guardar_VERB_rencor_NOUN", + "guardar_VERB_silencio_NOUN", + "guardería_NOUN_infantil_ADJ", + "guardia_NOUN_civil_NOUN", + "guardia_NOUN_costero_ADJ", + "guardia_NOUN_fronterizo_ADJ", + "guardia_PROPN_civil_PROPN", + "guardia_PROPN_costera_PROPN", + "guardia_PROPN_nacional_PROPN", + "guardia_PROPN_revolucionaria_PROPN", + "guardia_PROPN_urbana_PROPN", + "guardias_NOUN_civil_ADJ", + "guardias_NOUN_civiles_NOUN", + "guatemala_PROPN_cicig_PROPN", + "guatemala_PROPN_guinea_PROPN", + "guatemala_PROPN_guyana_PROPN", + "guatemala_PROPN_haití_ADJ", + "guatemala_PROPN_honduras_PROPN", + "guatemala_PROPN_hungría_PROPN", + "guatemala_PROPN_india_NOUN", + "guatemala_PROPN_minugua_PROPN", + "guayaquil_PROPN_ecuador_PROPN", + "gubernamental_ADJ_ong_PROPN", + "gubernamental_ADJ_reconocido_ADJ", + "gue_PROPN_ngl_PROPN", + "guerra_NOUN_fría_NOUN", + "guerra_NOUN_reg_PROPN", + "guerra_NOUN_sucio_ADJ", + "guerra_PROPN_civil_PROPN", + "guerra_PROPN_fría_NOUN", + "guerra_PROPN_fría_PROPN", + "guerra_PROPN_mundial_PROPN", + "guerrilla_NOUN_colombiano_ADJ", + "guide_PROPN_to_PROPN", + "guidelines_PROPN_for_PROPN", + "guidelines_PROPN_on_PROPN", + "guido_PROPN_westerwelle_PROPN", + "guillermo_PROPN_barros_PROPN", + "guillermo_PROPN_brown_PROPN", + "guillermo_PROPN_caragar_VERB", + "guillermo_PROPN_cañas_PROPN", + "guillermo_PROPN_dietrich_PROPN", + "guillermo_PROPN_fariñas_PROPN", + "guillermo_PROPN_fernández_PROPN", + "guillermo_PROPN_franco_PROPN", + "guillermo_PROPN_moreno_PROPN", + "guillermo_PROPN_ochoa_PROPN", + "guillermo_PROPN_ortiz_PROPN", + "guillermo_PROPN_vilas_PROPN", + "guillermo_PROPN_vázquez_PROPN", + "guinea_PROPN_bissau_PROPN", + "guinea_PROPN_ecuatorial_ADJ", + "guinea_PROPN_ecuatorial_PROPN", + "guinea_PROPN_guyana_PROPN", + "guinea_PROPN_haití_ADJ", + "guinea_PROPN_honduras_PROPN", + "guinea_PROPN_indonesia_PROPN", + "guinea_PROPN_indonesio_ADJ", + "guinea_PROPN_liberia_PROPN", + "guinea_PROPN_paraguay_PROPN", + "guinea_PROPN_qatar_VERB", + "guinea_PROPN_samoa_PROPN", + "guitarra_NOUN_eléctrico_ADJ", + "guión_NOUN_original_ADJ", + "guns_PROPN_n_PROPN", + "gustavo_PROPN_adolfo_PROPN", + "gustavo_PROPN_alfaro_PROPN", + "gustavo_PROPN_bordet_PROPN", + "gustavo_PROPN_cerati_PROPN", + "gustavo_PROPN_díaz_PROPN", + "gustavo_PROPN_madero_PROPN", + "gustavo_PROPN_petro_PROPN", + "gustavo_PROPN_quinteros_PROPN", + "guta_PROPN_oriental_PROPN", + "guy_PROPN_international_PROPN", + "guyana_PROPN_haití_ADJ", + "guyana_PROPN_haití_PROPN", + "guyana_PROPN_honduras_PROPN", + "guyana_PROPN_hungría_PROPN", + "guzmán_PROPN_loera_PROPN", + "guéhenno_PROPN_secretario_NOUN", + "guía_NOUN_espiritual_ADJ", + "guía_NOUN_legislativa_PROPN", + "guía_NOUN_legislativo_ADJ", + "guía_NOUN_turístico_ADJ", + "gwyneth_PROPN_paltrow_PROPN", + "gómez_PROPN_centurión_PROPN", + "gómez_PROPN_mont_PROPN", + "gómez_PROPN_morín_PROPN", + "gómez_PROPN_palacio_PROPN", + "gómez_PROPN_robledo_PROPN", + "h_NOUN_oaxaca_PROPN", + "habana_PROPN_cuba_PROPN", + "habana_PROPN_vieja_PROPN", + "habeas_NOUN_corpus_NOUN", + "habeas_PROPN_corpus_NOUN", + "haber_AUX_abandonar_VERB", + "haber_AUX_abarcar_VERB", + "haber_AUX_abatir_VERB", + "haber_AUX_abocar_VERB", + "haber_AUX_abogar_VERB", + "haber_AUX_abolir_VERB", + "haber_AUX_abonar_VERB", + "haber_AUX_abordar_VERB", + "haber_AUX_abortar_VERB", + "haber_AUX_abrazar_VERB", + "haber_AUX_abrir_VERB", + "haber_AUX_absolver_VERB", + "haber_AUX_absorber_VERB", + "haber_AUX_abstener_VERB", + "haber_AUX_abundar_VERB", + "haber_AUX_abusar_VERB", + "haber_AUX_acabar_VERB", + "haber_AUX_acaecir_VERB", + "haber_AUX_acaparar_VERB", + "haber_AUX_acarrear_VERB", + "haber_AUX_acatar_VERB", + "haber_AUX_acceder_VERB", + "haber_AUX_acelerar_VERB", + "haber_AUX_acentuar_VERB", + "haber_AUX_aceptar_VERB", + "haber_AUX_acer_VERB", + "haber_AUX_acercar_VERB", + "haber_AUX_acertar_VERB", + "haber_AUX_achacar_VERB", + "haber_AUX_aclarar_VERB", + "haber_AUX_acoger_VERB", + "haber_AUX_acometer_VERB", + "haber_AUX_acomodar_VERB", + "haber_AUX_acompañar_VERB", + "haber_AUX_aconsejar_VERB", + "haber_AUX_acontecer_VERB", + "haber_AUX_acordar_VERB", + "haber_AUX_acortar_VERB", + "haber_AUX_acosar_VERB", + "haber_AUX_acostar_VERB", + "haber_AUX_acostumbrar_VERB", + "haber_AUX_acrecentar_VERB", + "haber_AUX_acreditar_VERB", + "haber_AUX_activar_VERB", + "haber_AUX_actualizar_VERB", + "haber_AUX_actuar_VERB", + "haber_AUX_acudir_VERB", + "haber_AUX_acumular_VERB", + "haber_AUX_acusar_VERB", + "haber_AUX_acuñar_VERB", + "haber_AUX_adaptar_VERB", + "haber_AUX_adecuar_VERB", + "haber_AUX_adelantar_VERB", + "haber_AUX_adentrar_VERB", + "haber_AUX_adherir_VERB", + "haber_AUX_adivinar_VERB", + "haber_AUX_adjudicar_VERB", + "haber_AUX_adjuntar_VERB", + "haber_AUX_administrar_VERB", + "haber_AUX_admirar_VERB", + "haber_AUX_admitir_VERB", + "haber_AUX_adolecir_VERB", + "haber_AUX_adoptar_VERB", + "haber_AUX_adquirir_VERB", + "haber_AUX_aducir_VERB", + "haber_AUX_adueñar_VERB", + "haber_AUX_advertir_VERB", + "haber_AUX_afear_VERB", + "haber_AUX_afectar_VERB", + "haber_AUX_afianzar_VERB", + "haber_AUX_afiliar_VERB", + "haber_AUX_afirmar_VERB", + "haber_AUX_aflorar_VERB", + "haber_AUX_afrontar_VERB", + "haber_AUX_agarrar_VERB", + "haber_AUX_agilizar_VERB", + "haber_AUX_agitar_VERB", + "haber_AUX_agotar_VERB", + "haber_AUX_agradar_VERB", + "haber_AUX_agradecer_VERB", + "haber_AUX_agravar_VERB", + "haber_AUX_agredir_VERB", + "haber_AUX_agregar_VERB", + "haber_AUX_agrupar_VERB", + "haber_AUX_aguantar_VERB", + "haber_AUX_agudizar_VERB", + "haber_AUX_ahogar_VERB", + "haber_AUX_ahondar_VERB", + "haber_AUX_ahorrar_VERB", + "haber_AUX_aislar_VERB", + "haber_AUX_ajustar_VERB", + "haber_AUX_alabar_VERB", + "haber_AUX_alargar_VERB", + "haber_AUX_albergar_VERB", + "haber_AUX_alcanzar_VERB", + "haber_AUX_alegar_VERB", + "haber_AUX_alegrar_VERB", + "haber_AUX_alejar_VERB", + "haber_AUX_alentar_VERB", + "haber_AUX_alertar_VERB", + "haber_AUX_aliar_VERB", + "haber_AUX_alimentar_VERB", + "haber_AUX_alinear_VERB", + "haber_AUX_aliviar_VERB", + "haber_AUX_allanar_VERB", + "haber_AUX_almacenar_VERB", + "haber_AUX_almorzar_VERB", + "haber_AUX_alojar_VERB", + "haber_AUX_alquilar_VERB", + "haber_AUX_alterar_VERB", + "haber_AUX_aludir_VERB", + "haber_AUX_alzar_VERB", + "haber_AUX_amanecer_VERB", + "haber_AUX_amar_VERB", + "haber_AUX_amenazar_VERB", + "haber_AUX_amparar_VERB", + "haber_AUX_ampliar_VERB", + "haber_AUX_analizar_VERB", + "haber_AUX_andar_VERB", + "haber_AUX_animar_VERB", + "haber_AUX_anotar_VERB", + "haber_AUX_anticipar_VERB", + "haber_AUX_anular_VERB", + "haber_AUX_anunciar_VERB", + "haber_AUX_apagar_VERB", + "haber_AUX_aparcar_VERB", + "haber_AUX_aparecer_VERB", + "haber_AUX_apartar_VERB", + "haber_AUX_apelar_VERB", + "haber_AUX_aplaudir_VERB", + "haber_AUX_aplazar_VERB", + "haber_AUX_aplicar_VERB", + "haber_AUX_apoderar_VERB", + "haber_AUX_aportar_VERB", + "haber_AUX_apostar_VERB", + "haber_AUX_apostillar_VERB", + "haber_AUX_apoyar_VERB", + "haber_AUX_apreciar_VERB", + "haber_AUX_aprender_VERB", + "haber_AUX_apresurar_VERB", + "haber_AUX_apretar_VERB", + "haber_AUX_aprobar_VERB", + "haber_AUX_apropiar_VERB", + "haber_AUX_aprovechar_VERB", + "haber_AUX_aproximar_VERB", + "haber_AUX_apuntar_VERB", + "haber_AUX_apuñalar_VERB", + "haber_AUX_archivar_VERB", + "haber_AUX_arder_VERB", + "haber_AUX_argumentar_VERB", + "haber_AUX_armar_VERB", + "haber_AUX_armonizar_VERB", + "haber_AUX_arraigar_VERB", + "haber_AUX_arrancar_VERB", + "haber_AUX_arrasar_VERB", + "haber_AUX_arrastrar_VERB", + "haber_AUX_arrebatar_VERB", + "haber_AUX_arreglar_VERB", + "haber_AUX_arrepentir_VERB", + "haber_AUX_arrestar_VERB", + "haber_AUX_arribar_VERB", + "haber_AUX_arriesgar_VERB", + "haber_AUX_arrojar_VERB", + "haber_AUX_arruinar_VERB", + "haber_AUX_articular_VERB", + "haber_AUX_asaltar_VERB", + "haber_AUX_ascender_VERB", + "haber_AUX_asegurar_VERB", + "haber_AUX_asentar_VERB", + "haber_AUX_asesinar_VERB", + "haber_AUX_asesorar_VERB", + "haber_AUX_asestar_VERB", + "haber_AUX_aseverar_VERB", + "haber_AUX_asignar_VERB", + "haber_AUX_asimilar_VERB", + "haber_AUX_asistir_VERB", + "haber_AUX_asociar_VERB", + "haber_AUX_asolar_VERB", + "haber_AUX_asomar_VERB", + "haber_AUX_asombrar_VERB", + "haber_AUX_aspirar_VERB", + "haber_AUX_asumir_VERB", + "haber_AUX_asustar_VERB", + "haber_AUX_atacar_VERB", + "haber_AUX_atar_VERB", + "haber_AUX_atender_VERB", + "haber_AUX_atenir_VERB", + "haber_AUX_atenuar_VERB", + "haber_AUX_aterrizar_VERB", + "haber_AUX_atraer_VERB", + "haber_AUX_atrapar_VERB", + "haber_AUX_atrasar_VERB", + "haber_AUX_atravesar_VERB", + "haber_AUX_atrever_VERB", + "haber_AUX_atrevir_VERB", + "haber_AUX_atribuir_VERB", + "haber_AUX_atropellar_VERB", + "haber_AUX_augurar_VERB", + "haber_AUX_aumentar_VERB", + "haber_AUX_aunar_VERB", + "haber_AUX_ausentar_VERB", + "haber_AUX_auspiciar_VERB", + "haber_AUX_autorizar_VERB", + "haber_AUX_avalar_VERB", + "haber_AUX_avanzar_VERB", + "haber_AUX_aventurar_VERB", + "haber_AUX_averiguar_VERB", + "haber_AUX_avisar_VERB", + "haber_AUX_avivar_VERB", + "haber_AUX_ayudar_VERB", + "haber_AUX_azotar_VERB", + "haber_AUX_añadir_VERB", + "haber_AUX_bailar_VERB", + "haber_AUX_bajar_VERB", + "haber_AUX_barajar_VERB", + "haber_AUX_barrer_VERB", + "haber_AUX_basar_VERB", + "haber_AUX_bastar_VERB", + "haber_AUX_batallar_VERB", + "haber_AUX_batir_VERB", + "haber_AUX_bautizar_VERB", + "haber_AUX_beber_VERB", + "haber_AUX_beneficiar_VERB", + "haber_AUX_besar_VERB", + "haber_AUX_bloquear_VERB", + "haber_AUX_bombardear_VERB", + "haber_AUX_borrar_VERB", + "haber_AUX_brillar_VERB", + "haber_AUX_brindar_VERB", + "haber_AUX_bromear_VERB", + "haber_AUX_brotar_VERB", + "haber_AUX_burlar_VERB", + "haber_AUX_buscar_VERB", + "haber_AUX_caber_VERB", + "haber_AUX_caducar_VERB", + "haber_AUX_caer_VERB", + "haber_AUX_calar_VERB", + "haber_AUX_calcular_VERB", + "haber_AUX_calentar_VERB", + "haber_AUX_calificar_VERB", + "haber_AUX_callar_VERB", + "haber_AUX_calmar_VERB", + "haber_AUX_cambiar_VERB", + "haber_AUX_caminar_VERB", + "haber_AUX_canalizar_VERB", + "haber_AUX_cancelar_VERB", + "haber_AUX_cansar_VERB", + "haber_AUX_cantar_VERB", + "haber_AUX_capacitar_VERB", + "haber_AUX_captar_VERB", + "haber_AUX_capturar_VERB", + "haber_AUX_caracterizar_VERB", + "haber_AUX_carecer_VERB", + "haber_AUX_cargar_VERB", + "haber_AUX_casar_VERB", + "haber_AUX_castigar_VERB", + "haber_AUX_catalogar_VERB", + "haber_AUX_causar_VERB", + "haber_AUX_cautivar_VERB", + "haber_AUX_cazar_VERB", + "haber_AUX_cebar_VERB", + "haber_AUX_ceder_VERB", + "haber_AUX_cejar_VERB", + "haber_AUX_celebrar_VERB", + "haber_AUX_cenar_VERB", + "haber_AUX_censurar_VERB", + "haber_AUX_centrar_VERB", + "haber_AUX_cerciorar_VERB", + "haber_AUX_cerrar_VERB", + "haber_AUX_certificar_VERB", + "haber_AUX_cesar_VERB", + "haber_AUX_ceñir_VERB", + "haber_AUX_charlar_VERB", + "haber_AUX_chocar_VERB", + "haber_AUX_cifrar_VERB", + "haber_AUX_circular_VERB", + "haber_AUX_citar_VERB", + "haber_AUX_clasificar_VERB", + "haber_AUX_clausurar_VERB", + "haber_AUX_clavar_VERB", + "haber_AUX_cobrar_VERB", + "haber_AUX_coger_VERB", + "haber_AUX_coincidir_VERB", + "haber_AUX_colaborar_VERB", + "haber_AUX_colapsar_VERB", + "haber_AUX_colar_VERB", + "haber_AUX_colgar_VERB", + "haber_AUX_colisionar_VERB", + "haber_AUX_colmar_VERB", + "haber_AUX_colocar_VERB", + "haber_AUX_combatir_VERB", + "haber_AUX_combinar_VERB", + "haber_AUX_comentar_VERB", + "haber_AUX_comenzar_VERB", + "haber_AUX_comer_VERB", + "haber_AUX_comercializar_VERB", + "haber_AUX_cometer_VERB", + "haber_AUX_comparar_VERB", + "haber_AUX_comparecer_VERB", + "haber_AUX_compartir_VERB", + "haber_AUX_compensar_VERB", + "haber_AUX_competir_VERB", + "haber_AUX_compilar_VERB", + "haber_AUX_complacer_VERB", + "haber_AUX_complementar_VERB", + "haber_AUX_completar_VERB", + "haber_AUX_complicar_VERB", + "haber_AUX_componer_VERB", + "haber_AUX_comportar_VERB", + "haber_AUX_comprar_VERB", + "haber_AUX_comprender_VERB", + "haber_AUX_comprobar_VERB", + "haber_AUX_comprometer_VERB", + "haber_AUX_comunicar_VERB", + "haber_AUX_concebir_VERB", + "haber_AUX_conceder_VERB", + "haber_AUX_concentrar_VERB", + "haber_AUX_concertar_VERB", + "haber_AUX_conciliar_VERB", + "haber_AUX_concitar_VERB", + "haber_AUX_concluer_VERB", + "haber_AUX_concluir_VERB", + "haber_AUX_concretar_VERB", + "haber_AUX_conculcar_VERB", + "haber_AUX_concurrir_VERB", + "haber_AUX_condenar_VERB", + "haber_AUX_condicionar_VERB", + "haber_AUX_conducir_VERB", + "haber_AUX_conectar_VERB", + "haber_AUX_confeccionar_VERB", + "haber_AUX_conferir_VERB", + "haber_AUX_confesar_VERB", + "haber_AUX_confiar_VERB", + "haber_AUX_configurar_VERB", + "haber_AUX_confirmar_VERB", + "haber_AUX_confiscar_VERB", + "haber_AUX_conformar_VERB", + "haber_AUX_confundir_VERB", + "haber_AUX_congelar_VERB", + "haber_AUX_congratular_VERB", + "haber_AUX_congregar_VERB", + "haber_AUX_conllevar_VERB", + "haber_AUX_conmocionar_VERB", + "haber_AUX_conmover_VERB", + "haber_AUX_conmutar_VERB", + "haber_AUX_conocer_VERB", + "haber_AUX_conquistar_VERB", + "haber_AUX_consagrar_VERB", + "haber_AUX_conseguir_VERB", + "haber_AUX_consensuar_VERB", + "haber_AUX_consentir_VERB", + "haber_AUX_conservar_VERB", + "haber_AUX_considerar_VERB", + "haber_AUX_consignar_VERB", + "haber_AUX_consistir_VERB", + "haber_AUX_consolidar_VERB", + "haber_AUX_conspirar_VERB", + "haber_AUX_constatar_VERB", + "haber_AUX_constituir_VERB", + "haber_AUX_construer_VERB", + "haber_AUX_construir_VERB", + "haber_AUX_consultar_VERB", + "haber_AUX_consumar_VERB", + "haber_AUX_consumir_VERB", + "haber_AUX_contabilizar_VERB", + "haber_AUX_contactar_VERB", + "haber_AUX_contagiar_VERB", + "haber_AUX_contaminar_VERB", + "haber_AUX_contar_VERB", + "haber_AUX_contemplar_VERB", + "haber_AUX_contener_VERB", + "haber_AUX_contentar_VERB", + "haber_AUX_contestar_VERB", + "haber_AUX_continuar_VERB", + "haber_AUX_contraer_VERB", + "haber_AUX_contratar_VERB", + "haber_AUX_contravenir_VERB", + "haber_AUX_contribuer_VERB", + "haber_AUX_contribuir_VERB", + "haber_AUX_controlar_VERB", + "haber_AUX_convencer_VERB", + "haber_AUX_convenir_VERB", + "haber_AUX_conversar_VERB", + "haber_AUX_convertir_VERB", + "haber_AUX_convivir_VERB", + "haber_AUX_convocar_VERB", + "haber_AUX_cooperar_VERB", + "haber_AUX_coordinar_VERB", + "haber_AUX_copar_VERB", + "haber_AUX_copatrocinar_VERB", + "haber_AUX_copiar_VERB", + "haber_AUX_coronar_VERB", + "haber_AUX_corregir_VERB", + "haber_AUX_correr_VERB", + "haber_AUX_corresponder_VERB", + "haber_AUX_corroborar_VERB", + "haber_AUX_corromper_VERB", + "haber_AUX_cortar_VERB", + "haber_AUX_cosechar_VERB", + "haber_AUX_costar_VERB", + "haber_AUX_cotizar_VERB", + "haber_AUX_crear_VERB", + "haber_AUX_crecer_VERB", + "haber_AUX_creer_VERB", + "haber_AUX_criar_VERB", + "haber_AUX_cristalizar_VERB", + "haber_AUX_criticar_VERB", + "haber_AUX_cruzar_VERB", + "haber_AUX_cuadruplicar_VERB", + "haber_AUX_cuajar_VERB", + "haber_AUX_cuantificar_VERB", + "haber_AUX_cubrir_VERB", + "haber_AUX_cuestionar_VERB", + "haber_AUX_cuidar_VERB", + "haber_AUX_culminar_VERB", + "haber_AUX_culpar_VERB", + "haber_AUX_cultivar_VERB", + "haber_AUX_cumplir_VERB", + "haber_AUX_cundir_VERB", + "haber_AUX_curar_VERB", + "haber_AUX_cursar_VERB", + "haber_AUX_dar_VERB", + "haber_AUX_dañar_VERB", + "haber_AUX_debatir_VERB", + "haber_AUX_deber_VERB", + "haber_AUX_debilitar_VERB", + "haber_AUX_debutar_VERB", + "haber_AUX_decaer_VERB", + "haber_AUX_decantar_VERB", + "haber_AUX_decepcionar_VERB", + "haber_AUX_decidir_VERB", + "haber_AUX_decidir_VERB_aplazar_VERB", + "haber_AUX_decir_VERB", + "haber_AUX_declarar_VERB", + "haber_AUX_declinar_VERB", + "haber_AUX_decomisar_VERB", + "haber_AUX_decrecir_VERB", + "haber_AUX_decretar_VERB", + "haber_AUX_dedicar_VERB", + "haber_AUX_deducir_VERB", + "haber_AUX_defender_VERB", + "haber_AUX_definir_VERB", + "haber_AUX_defraudar_VERB", + "haber_AUX_degenerar_VERB", + "haber_AUX_degradar_VERB", + "haber_AUX_dejar_VERB", + "haber_AUX_dejar_VERB_entrever_VERB", + "haber_AUX_delegar_VERB", + "haber_AUX_deliberar_VERB", + "haber_AUX_delimitar_VERB", + "haber_AUX_delinquir_VERB", + "haber_AUX_demandar_VERB", + "haber_AUX_demolir_VERB", + "haber_AUX_demorar_VERB", + "haber_AUX_demostrar_VERB", + "haber_AUX_denegar_VERB", + "haber_AUX_denominar_VERB", + "haber_AUX_denunciar_VERB", + "haber_AUX_deparar_VERB", + "haber_AUX_depender_VERB", + "haber_AUX_deplorar_VERB", + "haber_AUX_deponer_VERB", + "haber_AUX_deportar_VERB", + "haber_AUX_depositar_VERB", + "haber_AUX_depreciar_VERB", + "haber_AUX_derivar_VERB", + "haber_AUX_derogar_VERB", + "haber_AUX_derramar_VERB", + "haber_AUX_derribar_VERB", + "haber_AUX_derrotar_VERB", + "haber_AUX_derrumbar_VERB", + "haber_AUX_desacelerar_VERB", + "haber_AUX_desactivar_VERB", + "haber_AUX_desafiar_VERB", + "haber_AUX_desalojar_VERB", + "haber_AUX_desaparecer_VERB", + "haber_AUX_desaprovechar_VERB", + "haber_AUX_desarmar_VERB", + "haber_AUX_desarrollar_VERB", + "haber_AUX_desarticular_VERB", + "haber_AUX_desatar_VERB", + "haber_AUX_desatendir_VERB", + "haber_AUX_desbloquear_VERB", + "haber_AUX_desbordar_VERB", + "haber_AUX_descansar_VERB", + "haber_AUX_descargar_VERB", + "haber_AUX_descartar_VERB", + "haber_AUX_descender_VERB", + "haber_AUX_descentralizar_VERB", + "haber_AUX_descontar_VERB", + "haber_AUX_describir_VERB", + "haber_AUX_descubrir_VERB", + "haber_AUX_descuidar_VERB", + "haber_AUX_desear_VERB", + "haber_AUX_desechar_VERB", + "haber_AUX_desembarcar_VERB", + "haber_AUX_desembocar_VERB", + "haber_AUX_desembolsar_VERB", + "haber_AUX_desempeñar_VERB", + "haber_AUX_desencadenar_VERB", + "haber_AUX_desertar_VERB", + "haber_AUX_desestabilizar_VERB", + "haber_AUX_desestimar_VERB", + "haber_AUX_desfilar_VERB", + "haber_AUX_desglosar_VERB", + "haber_AUX_deshacer_VERB", + "haber_AUX_designar_VERB", + "haber_AUX_desistir_VERB", + "haber_AUX_deslizar_VERB", + "haber_AUX_desmantelar_VERB", + "haber_AUX_desmarcar_VERB", + "haber_AUX_desmayar_VERB", + "haber_AUX_desmentir_VERB", + "haber_AUX_desmoronar_VERB", + "haber_AUX_desmovilizar_VERB", + "haber_AUX_despachar_VERB", + "haber_AUX_despedir_VERB", + "haber_AUX_despegar_VERB", + "haber_AUX_despejar_VERB", + "haber_AUX_desperdiciar_VERB", + "haber_AUX_despertar_VERB", + "haber_AUX_desplazar_VERB", + "haber_AUX_desplegar_VERB", + "haber_AUX_desplomar_VERB", + "haber_AUX_despojar_VERB", + "haber_AUX_despreciar_VERB", + "haber_AUX_desprender_VERB", + "haber_AUX_destacar_VERB", + "haber_AUX_destapar_VERB", + "haber_AUX_desterrar_VERB", + "haber_AUX_destinar_VERB", + "haber_AUX_destituir_VERB", + "haber_AUX_destrozar_VERB", + "haber_AUX_destruir_VERB", + "haber_AUX_desvanecer_VERB", + "haber_AUX_desvanecir_VERB", + "haber_AUX_desvelar_VERB", + "haber_AUX_desviar_VERB", + "haber_AUX_desvincular_VERB", + "haber_AUX_detallar_VERB", + "haber_AUX_detectar_VERB", + "haber_AUX_detener_VERB", + "haber_AUX_deteriorar_VERB", + "haber_AUX_determinar_VERB", + "haber_AUX_devaluar_VERB", + "haber_AUX_devastar_VERB", + "haber_AUX_devenir_VERB", + "haber_AUX_devolver_VERB", + "haber_AUX_devorar_VERB", + "haber_AUX_diagnosticar_VERB", + "haber_AUX_dialogar_VERB", + "haber_AUX_dibujar_VERB", + "haber_AUX_dictaminar_VERB", + "haber_AUX_dictar_VERB", + "haber_AUX_diferenciar_VERB", + "haber_AUX_dificultar_VERB", + "haber_AUX_difundir_VERB", + "haber_AUX_dignar_VERB", + "haber_AUX_dilatar_VERB", + "haber_AUX_diluir_VERB", + "haber_AUX_dimitir_VERB", + "haber_AUX_dirigir_VERB", + "haber_AUX_discriminar_VERB", + "haber_AUX_disculpar_VERB", + "haber_AUX_discurrir_VERB", + "haber_AUX_discutir_VERB", + "haber_AUX_diseñar_VERB", + "haber_AUX_disfrutar_VERB", + "haber_AUX_disgustar_VERB", + "haber_AUX_disipar_VERB", + "haber_AUX_disminuir_VERB", + "haber_AUX_disolver_VERB", + "haber_AUX_disparar_VERB", + "haber_AUX_dispensar_VERB", + "haber_AUX_dispersar_VERB", + "haber_AUX_disponer_VERB", + "haber_AUX_disputar_VERB", + "haber_AUX_distanciar_VERB", + "haber_AUX_distinguir_VERB", + "haber_AUX_distorsionar_VERB", + "haber_AUX_distraer_VERB", + "haber_AUX_distribuir_VERB", + "haber_AUX_disuadir_VERB", + "haber_AUX_diversificar_VERB", + "haber_AUX_divertir_VERB", + "haber_AUX_dividir_VERB", + "haber_AUX_divorciar_VERB", + "haber_AUX_divulgar_VERB", + "haber_AUX_doblar_VERB", + "haber_AUX_documentar_VERB", + "haber_AUX_doler_VERB", + "haber_AUX_dominar_VERB", + "haber_AUX_donar_VERB", + "haber_AUX_dormir_VERB", + "haber_AUX_dotar_VERB", + "haber_AUX_dudar_VERB", + "haber_AUX_duplicar_VERB", + "haber_AUX_durar_VERB", + "haber_AUX_echar_VERB", + "haber_AUX_eclipsar_VERB", + "haber_AUX_edificar_VERB", + "haber_AUX_editar_VERB", + "haber_AUX_educar_VERB", + "haber_AUX_efectuar_VERB", + "haber_AUX_ejecutar_VERB", + "haber_AUX_ejercer_VERB", + "haber_AUX_ejercitar_VERB", + "haber_AUX_elaborar_VERB", + "haber_AUX_elegir_VERB", + "haber_AUX_elevar_VERB", + "haber_AUX_eliminar_VERB", + "haber_AUX_elogiar_VERB", + "haber_AUX_eludir_VERB", + "haber_AUX_embarcar_VERB", + "haber_AUX_emerger_VERB", + "haber_AUX_emigrar_VERB", + "haber_AUX_emitir_VERB", + "haber_AUX_emocionar_VERB", + "haber_AUX_empatar_VERB", + "haber_AUX_empañar_VERB", + "haber_AUX_empeorar_VERB", + "haber_AUX_empezar_VERB", + "haber_AUX_empeñar_VERB", + "haber_AUX_emplazar_VERB", + "haber_AUX_emplear_VERB", + "haber_AUX_empobrecir_VERB", + "haber_AUX_emprender_VERB", + "haber_AUX_empujar_VERB", + "haber_AUX_enamorar_VERB", + "haber_AUX_encabezar_VERB", + "haber_AUX_encadenar_VERB", + "haber_AUX_encajar_VERB", + "haber_AUX_encaminar_VERB", + "haber_AUX_encantar_VERB", + "haber_AUX_encarar_VERB", + "haber_AUX_encarcelar_VERB", + "haber_AUX_encarecer_VERB", + "haber_AUX_encargar_VERB", + "haber_AUX_encarnar_VERB", + "haber_AUX_encender_VERB", + "haber_AUX_encerrar_VERB", + "haber_AUX_encomendar_VERB", + "haber_AUX_encomiar_VERB", + "haber_AUX_encontrar_VERB", + "haber_AUX_encubrir_VERB", + "haber_AUX_endurecer_VERB", + "haber_AUX_enfatizar_VERB", + "haber_AUX_enfermar_VERB", + "haber_AUX_enfocar_VERB", + "haber_AUX_enfrentar_VERB", + "haber_AUX_enfriar_VERB", + "haber_AUX_engañar_VERB", + "haber_AUX_engendrar_VERB", + "haber_AUX_engordar_VERB", + "haber_AUX_enjuiciar_VERB", + "haber_AUX_enmarcar_VERB", + "haber_AUX_enmendar_VERB", + "haber_AUX_enriquecer_VERB", + "haber_AUX_ensalzar_VERB", + "haber_AUX_ensayar_VERB", + "haber_AUX_enseñar_VERB", + "haber_AUX_entablar_VERB", + "haber_AUX_entender_VERB", + "haber_AUX_enterar_VERB", + "haber_AUX_enterrar_VERB", + "haber_AUX_entorpecer_VERB", + "haber_AUX_entrar_VERB", + "haber_AUX_entrañar_VERB", + "haber_AUX_entregar_VERB", + "haber_AUX_entrenar_VERB", + "haber_AUX_entretener_VERB", + "haber_AUX_entrevistar_VERB", + "haber_AUX_entusiasmar_VERB", + "haber_AUX_enumerar_VERB", + "haber_AUX_enunciar_VERB", + "haber_AUX_envejecer_VERB", + "haber_AUX_envenenar_VERB", + "haber_AUX_enviar_VERB", + "haber_AUX_envolver_VERB", + "haber_AUX_equivocar_VERB", + "haber_AUX_erigir_VERB", + "haber_AUX_erosionar_VERB", + "haber_AUX_erradicar_VERB", + "haber_AUX_errar_VERB", + "haber_AUX_esbozar_VERB", + "haber_AUX_escalar_VERB", + "haber_AUX_escapar_VERB", + "haber_AUX_escatimar_VERB", + "haber_AUX_esclarecer_VERB", + "haber_AUX_escoger_VERB", + "haber_AUX_esconder_VERB", + "haber_AUX_escribir_VERB", + "haber_AUX_escuchar_VERB", + "haber_AUX_esforzar_VERB", + "haber_AUX_esfumar_VERB", + "haber_AUX_esgrimir_VERB", + "haber_AUX_esparcir_VERB", + "haber_AUX_especializar_VERB", + "haber_AUX_especificar_VERB", + "haber_AUX_especular_VERB", + "haber_AUX_esperar_VERB", + "haber_AUX_espetar_VERB", + "haber_AUX_estabilizar_VERB", + "haber_AUX_establecer_VERB", + "haber_AUX_estafar_VERB", + "haber_AUX_estallar_VERB", + "haber_AUX_estancar_VERB", + "haber_AUX_estar_VERB", + "haber_AUX_estimar_VERB", + "haber_AUX_estimular_VERB", + "haber_AUX_estipular_VERB", + "haber_AUX_estrechar_VERB", + "haber_AUX_estrellar_VERB", + "haber_AUX_estremecir_VERB", + "haber_AUX_estrenar_VERB", + "haber_AUX_estropear_VERB", + "haber_AUX_estructurar_VERB", + "haber_AUX_estudiar_VERB", + "haber_AUX_evacuar_VERB", + "haber_AUX_evadir_VERB", + "haber_AUX_evaluar_VERB", + "haber_AUX_evaporar_VERB", + "haber_AUX_evidenciar_VERB", + "haber_AUX_evitar_VERB", + "haber_AUX_evocar_VERB", + "haber_AUX_evolucionar_VERB", + "haber_AUX_exacerbar_VERB", + "haber_AUX_exagerar_VERB", + "haber_AUX_examinar_VERB", + "haber_AUX_exceder_VERB", + "haber_AUX_exclamar_VERB", + "haber_AUX_excluir_VERB", + "haber_AUX_exhibir_VERB", + "haber_AUX_exhortar_VERB", + "haber_AUX_exigir_VERB", + "haber_AUX_eximir_VERB", + "haber_AUX_existir_VERB", + "haber_AUX_expandir_VERB", + "haber_AUX_expedir_VERB", + "haber_AUX_experimentar_VERB", + "haber_AUX_expirar_VERB", + "haber_AUX_explicar_VERB", + "haber_AUX_explorar_VERB", + "haber_AUX_explotar_VERB", + "haber_AUX_exponer_VERB", + "haber_AUX_exportar_VERB", + "haber_AUX_expresar_VERB", + "haber_AUX_expulsar_VERB", + "haber_AUX_extender_VERB", + "haber_AUX_extinguir_VERB", + "haber_AUX_extraer_VERB", + "haber_AUX_extralimitar_VERB", + "haber_AUX_extraviar_VERB", + "haber_AUX_extrañar_VERB", + "haber_AUX_fabricar_VERB", + "haber_AUX_facilitar_VERB", + "haber_AUX_facturar_VERB", + "haber_AUX_fallar_VERB", + "haber_AUX_fallecer_VERB", + "haber_AUX_falsificar_VERB", + "haber_AUX_faltar_VERB", + "haber_AUX_fascinar_VERB", + "haber_AUX_favorecer_VERB", + "haber_AUX_felicitar_VERB", + "haber_AUX_fichar_VERB", + "haber_AUX_figurar_VERB", + "haber_AUX_fijar_VERB", + "haber_AUX_filmar_VERB", + "haber_AUX_filtrar_VERB", + "haber_AUX_finalizar_VERB", + "haber_AUX_financiar_VERB", + "haber_AUX_firmar_VERB", + "haber_AUX_flexibilizar_VERB", + "haber_AUX_florecer_VERB", + "haber_AUX_fomentar_VERB", + "haber_AUX_forjar_VERB", + "haber_AUX_formalizar_VERB", + "haber_AUX_formar_VERB", + "haber_AUX_formular_VERB", + "haber_AUX_fortalecer_VERB", + "haber_AUX_forzar_VERB", + "haber_AUX_fotografiar_VERB", + "haber_AUX_fracasar_VERB", + "haber_AUX_fraguar_VERB", + "haber_AUX_frenar_VERB", + "haber_AUX_frustrar_VERB", + "haber_AUX_fugar_VERB", + "haber_AUX_fumar_VERB", + "haber_AUX_funcionar_VERB", + "haber_AUX_fundamentar_VERB", + "haber_AUX_fundar_VERB", + "haber_AUX_fundir_VERB", + "haber_AUX_fusionar_VERB", + "haber_AUX_ganar_VERB", + "haber_AUX_garantizar_VERB", + "haber_AUX_gastar_VERB", + "haber_AUX_generalizar_VERB", + "haber_AUX_generar_VERB", + "haber_AUX_gestar_VERB", + "haber_AUX_gestionar_VERB", + "haber_AUX_girar_VERB", + "haber_AUX_gobernar_VERB", + "haber_AUX_golpear_VERB", + "haber_AUX_gozar_VERB", + "haber_AUX_grabar_VERB", + "haber_AUX_graduar_VERB", + "haber_AUX_granjear_VERB", + "haber_AUX_gritar_VERB", + "haber_AUX_guardar_VERB", + "haber_AUX_guiar_VERB", + "haber_AUX_gustar_VERB", + "haber_AUX_habilitar_VERB", + "haber_AUX_habitar_VERB", + "haber_AUX_hablar_VERB", + "haber_AUX_hacer_VERB", + "haber_AUX_hallar_VERB", + "haber_AUX_heredar_VERB", + "haber_AUX_herir_VERB", + "haber_AUX_honrar_VERB", + "haber_AUX_huer_VERB", + "haber_AUX_huir_VERB", + "haber_AUX_humillar_VERB", + "haber_AUX_hundir_VERB", + "haber_AUX_hurtar_VERB", + "haber_AUX_idear_VERB", + "haber_AUX_identificar_VERB", + "haber_AUX_ignorar_VERB", + "haber_AUX_igualar_VERB", + "haber_AUX_iluminar_VERB", + "haber_AUX_ilustrar_VERB", + "haber_AUX_imaginar_VERB", + "haber_AUX_imitar_VERB", + "haber_AUX_impactar_VERB", + "haber_AUX_impartir_VERB", + "haber_AUX_impedir_VERB", + "haber_AUX_imperar_VERB", + "haber_AUX_implantar_VERB", + "haber_AUX_implementar_VERB", + "haber_AUX_implicar_VERB", + "haber_AUX_imponer_VERB", + "haber_AUX_importar_VERB", + "haber_AUX_impregnar_VERB", + "haber_AUX_impresionar_VERB", + "haber_AUX_impreso_VERB", + "haber_AUX_imprimir_VERB", + "haber_AUX_impugnar_VERB", + "haber_AUX_impulsar_VERB", + "haber_AUX_imputar_VERB", + "haber_AUX_inaugurar_VERB", + "haber_AUX_incautar_VERB", + "haber_AUX_incendiar_VERB", + "haber_AUX_incidir_VERB", + "haber_AUX_incitar_VERB", + "haber_AUX_inclinar_VERB", + "haber_AUX_incluir_VERB", + "haber_AUX_incoar_VERB", + "haber_AUX_incorporar_VERB", + "haber_AUX_incrementar_VERB", + "haber_AUX_inculcar_VERB", + "haber_AUX_incumplir_VERB", + "haber_AUX_incurrir_VERB", + "haber_AUX_incursionar_VERB", + "haber_AUX_indemnizar_VERB", + "haber_AUX_indicar_VERB", + "haber_AUX_indignar_VERB", + "haber_AUX_individualizar_VERB", + "haber_AUX_inducir_VERB", + "haber_AUX_infectar_VERB", + "haber_AUX_infiltrar_VERB", + "haber_AUX_infligir_VERB", + "haber_AUX_influenciar_VERB", + "haber_AUX_influir_VERB", + "haber_AUX_informar_VERB", + "haber_AUX_infringir_VERB", + "haber_AUX_infundir_VERB", + "haber_AUX_ingerir_VERB", + "haber_AUX_ingresar_VERB", + "haber_AUX_iniciar_VERB", + "haber_AUX_inquietar_VERB", + "haber_AUX_inscribir_VERB", + "haber_AUX_insertar_VERB", + "haber_AUX_insinuar_VERB", + "haber_AUX_insistir_VERB", + "haber_AUX_inspeccionar_VERB", + "haber_AUX_inspirar_VERB", + "haber_AUX_instalar_VERB", + "haber_AUX_instar_VERB", + "haber_AUX_instaurar_VERB", + "haber_AUX_instigar_VERB", + "haber_AUX_institucionalizar_VERB", + "haber_AUX_instituir_VERB", + "haber_AUX_instruir_VERB", + "haber_AUX_insultar_VERB", + "haber_AUX_integrar_VERB", + "haber_AUX_intensificar_VERB", + "haber_AUX_intentar_VERB", + "haber_AUX_intercambiar_VERB", + "haber_AUX_interceptar_VERB", + "haber_AUX_interesar_VERB", + "haber_AUX_interferir_VERB", + "haber_AUX_interponer_VERB", + "haber_AUX_interpretar_VERB", + "haber_AUX_interrogar_VERB", + "haber_AUX_interrumpir_VERB", + "haber_AUX_intervenir_VERB", + "haber_AUX_introducir_VERB", + "haber_AUX_inundar_VERB", + "haber_AUX_invadir_VERB", + "haber_AUX_inventar_VERB", + "haber_AUX_invertir_VERB", + "haber_AUX_investigar_VERB", + "haber_AUX_invitar_VERB", + "haber_AUX_invocar_VERB", + "haber_AUX_involucrar_VERB", + "haber_AUX_inyectar_VERB", + "haber_AUX_ir_VERB", + "haber_AUX_ironizar_VERB", + "haber_AUX_irritar_VERB", + "haber_AUX_irrogar_VERB", + "haber_AUX_irrumpir_VERB", + "haber_AUX_is_VERB", + "haber_AUX_jubilar_VERB", + "haber_AUX_jugar_VERB", + "haber_AUX_juntar_VERB", + "haber_AUX_jurar_VERB", + "haber_AUX_justificar_VERB", + "haber_AUX_juzgar_VERB", + "haber_AUX_laborar_VERB", + "haber_AUX_labrar_VERB", + "haber_AUX_lamentar_VERB", + "haber_AUX_lanzar_VERB", + "haber_AUX_lastimar_VERB", + "haber_AUX_lavar_VERB", + "haber_AUX_leer_VERB", + "haber_AUX_legalizar_VERB", + "haber_AUX_legar_VERB", + "haber_AUX_legislar_VERB", + "haber_AUX_lesionar_VERB", + "haber_AUX_levantar_VERB", + "haber_AUX_liberalizar_VERB", + "haber_AUX_liberar_VERB", + "haber_AUX_librar_VERB", + "haber_AUX_liderar_VERB", + "haber_AUX_lidiar_VERB", + "haber_AUX_ligar_VERB", + "haber_AUX_limitar_VERB", + "haber_AUX_limpiar_VERB", + "haber_AUX_liquidar_VERB", + "haber_AUX_llamar_VERB", + "haber_AUX_llegar_VERB", + "haber_AUX_llenar_VERB", + "haber_AUX_llevar_VERB", + "haber_AUX_llorar_VERB", + "haber_AUX_llover_VERB", + "haber_AUX_localizar_VERB", + "haber_AUX_lograr_VERB", + "haber_AUX_luchar_VERB", + "haber_AUX_lucir_VERB", + "haber_AUX_lugar_VERB", + "haber_AUX_madurar_VERB", + "haber_AUX_malgastar_VERB", + "haber_AUX_malinterpretar_VERB", + "haber_AUX_maltratar_VERB", + "haber_AUX_manchar_VERB", + "haber_AUX_mandar_VERB", + "haber_AUX_manejar_VERB", + "haber_AUX_manifestar_VERB", + "haber_AUX_manipular_VERB", + "haber_AUX_mantener_VERB", + "haber_AUX_marcar_VERB", + "haber_AUX_marchar_VERB", + "haber_AUX_marginar_VERB", + "haber_AUX_matar_VERB", + "haber_AUX_materializar_VERB", + "haber_AUX_matizar_VERB", + "haber_AUX_matricular_VERB", + "haber_AUX_mediar_VERB", + "haber_AUX_medir_VERB", + "haber_AUX_meditar_VERB", + "haber_AUX_mejorar_VERB", + "haber_AUX_mencionar_VERB", + "haber_AUX_menester_VERB", + "haber_AUX_menguar_VERB", + "haber_AUX_menoscabar_VERB", + "haber_AUX_mentir_VERB", + "haber_AUX_merecer_VERB", + "haber_AUX_mermar_VERB", + "haber_AUX_meter_VERB", + "haber_AUX_mezclar_VERB", + "haber_AUX_migrar_VERB", + "haber_AUX_militar_VERB", + "haber_AUX_minar_VERB", + "haber_AUX_minimizar_VERB", + "haber_AUX_mirar_VERB", + "haber_AUX_mitigar_VERB", + "haber_AUX_moderar_VERB", + "haber_AUX_modernizar_VERB", + "haber_AUX_modificar_VERB", + "haber_AUX_molestar_VERB", + "haber_AUX_montar_VERB", + "haber_AUX_morder_VERB", + "haber_AUX_morir_VERB", + "haber_AUX_mostrar_VERB", + "haber_AUX_motivar_VERB", + "haber_AUX_mover_VERB", + "haber_AUX_movilizar_VERB", + "haber_AUX_mudar_VERB", + "haber_AUX_multar_VERB", + "haber_AUX_multiplicar_VERB", + "haber_AUX_nacer_VERB", + "haber_AUX_narrar_VERB", + "haber_AUX_navegar_VERB", + "haber_AUX_necesitar_VERB", + "haber_AUX_negar_VERB", + "haber_AUX_negociar_VERB", + "haber_AUX_nombrar_VERB", + "haber_AUX_normalizar_VERB", + "haber_AUX_notar_VERB", + "haber_AUX_notificar_VERB", + "haber_AUX_nutrir_VERB", + "haber_AUX_obedecer_VERB", + "haber_AUX_objeción_NOUN_entenderar_VERB", + "haber_AUX_objetar_VERB", + "haber_AUX_obligar_VERB", + "haber_AUX_obrar_VERB", + "haber_AUX_observar_VERB", + "haber_AUX_obstaculizar_VERB", + "haber_AUX_obstruir_VERB", + "haber_AUX_obtener_VERB", + "haber_AUX_obviar_VERB", + "haber_AUX_ocasionar_VERB", + "haber_AUX_ocultar_VERB", + "haber_AUX_ocupar_VERB", + "haber_AUX_ocurrir_VERB", + "haber_AUX_oer_VERB", + "haber_AUX_oer_VERB_hablar_VERB", + "haber_AUX_ofender_VERB", + "haber_AUX_oficializar_VERB", + "haber_AUX_ofrecer_VERB", + "haber_AUX_oir_VERB", + "haber_AUX_olvidar_VERB", + "haber_AUX_omitir_VERB", + "haber_AUX_operar_VERB", + "haber_AUX_opinar_VERB", + "haber_AUX_oponer_VERB", + "haber_AUX_optar_VERB", + "haber_AUX_ordenar_VERB", + "haber_AUX_organizar_VERB", + "haber_AUX_orientar_VERB", + "haber_AUX_originar_VERB", + "haber_AUX_osar_VERB", + "haber_AUX_ostentar_VERB", + "haber_AUX_otorgar_VERB", + "haber_AUX_pactar_VERB", + "haber_AUX_padecer_VERB", + "haber_AUX_pagar_VERB", + "haber_AUX_paralizar_VERB", + "haber_AUX_parar_VERB", + "haber_AUX_parecer_VERB", + "haber_AUX_parir_VERB", + "haber_AUX_participar_VERB", + "haber_AUX_partir_VERB", + "haber_AUX_pasar_VERB", + "haber_AUX_pasear_VERB", + "haber_AUX_patrocinar_VERB", + "haber_AUX_pecar_VERB", + "haber_AUX_pedir_VERB", + "haber_AUX_pegar_VERB", + "haber_AUX_pelear_VERB", + "haber_AUX_penalizar_VERB", + "haber_AUX_penetrar_VERB", + "haber_AUX_pensar_VERB", + "haber_AUX_percatar_VERB", + "haber_AUX_percibir_VERB", + "haber_AUX_perder_VERB", + "haber_AUX_perdonar_VERB", + "haber_AUX_perdurar_VERB", + "haber_AUX_perecer_VERB", + "haber_AUX_perfeccionar_VERB", + "haber_AUX_perfilar_VERB", + "haber_AUX_perjudicar_VERB", + "haber_AUX_permanecer_VERB", + "haber_AUX_permitir_VERB", + "haber_AUX_perpetrar_VERB", + "haber_AUX_perpetuar_VERB", + "haber_AUX_perseguir_VERB", + "haber_AUX_persistir_VERB", + "haber_AUX_personar_VERB", + "haber_AUX_pertenecer_VERB", + "haber_AUX_perturbar_VERB", + "haber_AUX_pesar_VERB", + "haber_AUX_pescar_VERB", + "haber_AUX_picar_VERB", + "haber_AUX_pillar_VERB", + "haber_AUX_pinchar_VERB", + "haber_AUX_pintar_VERB", + "haber_AUX_pisar_VERB", + "haber_AUX_pisotear_VERB", + "haber_AUX_planear_VERB", + "haber_AUX_planificar_VERB", + "haber_AUX_plantar_VERB", + "haber_AUX_plantear_VERB", + "haber_AUX_plasmar_VERB", + "haber_AUX_platicar_VERB", + "haber_AUX_poblar_VERB", + "haber_AUX_poder_VERB", + "haber_AUX_politizar_VERB", + "haber_AUX_poner_VERB", + "haber_AUX_popularizar_VERB", + "haber_AUX_portar_VERB", + "haber_AUX_posar_VERB", + "haber_AUX_poseer_VERB", + "haber_AUX_posibilitar_VERB", + "haber_AUX_posicionar_VERB", + "haber_AUX_posponer_VERB", + "haber_AUX_postergar_VERB", + "haber_AUX_postular_VERB", + "haber_AUX_potenciar_VERB", + "haber_AUX_practicar_VERB", + "haber_AUX_preceder_VERB", + "haber_AUX_precipitar_VERB", + "haber_AUX_precisar_VERB", + "haber_AUX_preconizar_VERB", + "haber_AUX_predecir_VERB", + "haber_AUX_predicar_VERB", + "haber_AUX_predominar_VERB", + "haber_AUX_preferir_VERB", + "haber_AUX_preguntar_VERB", + "haber_AUX_premiar_VERB", + "haber_AUX_prender_VERB", + "haber_AUX_preocupar_VERB", + "haber_AUX_preparar_VERB", + "haber_AUX_prescindir_VERB", + "haber_AUX_prescribir_VERB", + "haber_AUX_presenciar_VERB", + "haber_AUX_presentar_VERB", + "haber_AUX_preservar_VERB", + "haber_AUX_presidir_VERB", + "haber_AUX_presionar_VERB", + "haber_AUX_prestar_VERB", + "haber_AUX_presumir_VERB", + "haber_AUX_presupuestar_VERB", + "haber_AUX_pretender_VERB", + "haber_AUX_prevalecer_VERB", + "haber_AUX_prevenir_VERB", + "haber_AUX_prever_VERB", + "haber_AUX_primar_VERB", + "haber_AUX_priorizar_VERB", + "haber_AUX_privar_VERB", + "haber_AUX_privatizar_VERB", + "haber_AUX_privilegiar_VERB", + "haber_AUX_probar_VERB", + "haber_AUX_proceder_VERB", + "haber_AUX_procesar_VERB", + "haber_AUX_proclamar_VERB", + "haber_AUX_procurar_VERB", + "haber_AUX_prodigar_VERB", + "haber_AUX_producir_VERB", + "haber_AUX_proferir_VERB", + "haber_AUX_profesar_VERB", + "haber_AUX_profundizar_VERB", + "haber_AUX_programar_VERB", + "haber_AUX_progresar_VERB", + "haber_AUX_prohibir_VERB", + "haber_AUX_proliferar_VERB", + "haber_AUX_prolongar_VERB", + "haber_AUX_prometer_VERB", + "haber_AUX_promocionar_VERB", + "haber_AUX_promover_VERB", + "haber_AUX_promulgar_VERB", + "haber_AUX_pronosticar_VERB", + "haber_AUX_pronunciar_VERB", + "haber_AUX_propagar_VERB", + "haber_AUX_propiciar_VERB", + "haber_AUX_propinar_VERB", + "haber_AUX_proponer_VERB", + "haber_AUX_proporcionar_VERB", + "haber_AUX_propugnar_VERB", + "haber_AUX_prorrogar_VERB", + "haber_AUX_proseguir_VERB", + "haber_AUX_prosperar_VERB", + "haber_AUX_protagonizar_VERB", + "haber_AUX_proteger_VERB", + "haber_AUX_protestar_VERB", + "haber_AUX_provenir_VERB", + "haber_AUX_prover_VERB", + "haber_AUX_provocar_VERB", + "haber_AUX_proyectar_VERB", + "haber_AUX_publicar_VERB", + "haber_AUX_puntualizar_VERB", + "haber_AUX_quebrantar_VERB", + "haber_AUX_quebrar_VERB", + "haber_AUX_quedar_VERB", + "haber_AUX_quejar_VERB", + "haber_AUX_quemar_VERB", + "haber_AUX_querer_VERB", + "haber_AUX_quitar_VERB", + "haber_AUX_racionalizar_VERB", + "haber_AUX_radicar_VERB", + "haber_AUX_ralentizar_VERB", + "haber_AUX_ratificar_VERB", + "haber_AUX_reabrir_VERB", + "haber_AUX_reaccionar_VERB", + "haber_AUX_reactivar_VERB", + "haber_AUX_reafirmar_VERB", + "haber_AUX_realizar_VERB", + "haber_AUX_reanudar_VERB", + "haber_AUX_reaparecer_VERB", + "haber_AUX_reasignar_VERB", + "haber_AUX_reavivar_VERB", + "haber_AUX_rebajar_VERB", + "haber_AUX_rebasar_VERB", + "haber_AUX_rebelar_VERB", + "haber_AUX_recabar_VERB", + "haber_AUX_recaer_VERB", + "haber_AUX_recalcar_VERB", + "haber_AUX_recaudar_VERB", + "haber_AUX_rechazar_VERB", + "haber_AUX_recibir_VERB", + "haber_AUX_reclamar_VERB", + "haber_AUX_reclasificar_VERB", + "haber_AUX_reclutar_VERB", + "haber_AUX_recobrar_VERB", + "haber_AUX_recoger_VERB", + "haber_AUX_recolectar_VERB", + "haber_AUX_recomendar_VERB", + "haber_AUX_reconciliar_VERB", + "haber_AUX_reconocer_VERB", + "haber_AUX_reconstruir_VERB", + "haber_AUX_recopilar_VERB", + "haber_AUX_recordar_VERB", + "haber_AUX_recorrer_VERB", + "haber_AUX_recortar_VERB", + "haber_AUX_recriminar_VERB", + "haber_AUX_recrudecer_VERB", + "haber_AUX_rectificar_VERB", + "haber_AUX_recuperar_VERB", + "haber_AUX_recurrir_VERB", + "haber_AUX_redactar_VERB", + "haber_AUX_redefinir_VERB", + "haber_AUX_redistribuir_VERB", + "haber_AUX_redoblar_VERB", + "haber_AUX_redondear_VERB", + "haber_AUX_reducir_VERB", + "haber_AUX_redundar_VERB", + "haber_AUX_reembolsar_VERB", + "haber_AUX_reemplazar_VERB", + "haber_AUX_reencontrar_VERB", + "haber_AUX_reer_VERB", + "haber_AUX_reestructurar_VERB", + "haber_AUX_referir_VERB", + "haber_AUX_reflejar_VERB", + "haber_AUX_reflexionar_VERB", + "haber_AUX_reformar_VERB", + "haber_AUX_reformular_VERB", + "haber_AUX_reforzar_VERB", + "haber_AUX_refrendar_VERB", + "haber_AUX_refugiar_VERB", + "haber_AUX_refutar_VERB", + "haber_AUX_regalar_VERB", + "haber_AUX_regir_VERB", + "haber_AUX_registrar_VERB", + "haber_AUX_reglamentar_VERB", + "haber_AUX_regresar_VERB", + "haber_AUX_regular_VERB", + "haber_AUX_regularizar_VERB", + "haber_AUX_rehabilitar_VERB", + "haber_AUX_rehusar_VERB", + "haber_AUX_reinar_VERB", + "haber_AUX_reiniciar_VERB", + "haber_AUX_reintegrar_VERB", + "haber_AUX_reiterar_VERB", + "haber_AUX_reivindicar_VERB", + "haber_AUX_relacionar_VERB", + "haber_AUX_relajar_VERB", + "haber_AUX_relatar_VERB", + "haber_AUX_relegar_VERB", + "haber_AUX_remachar_VERB", + "haber_AUX_remarcar_VERB", + "haber_AUX_rematar_VERB", + "haber_AUX_remitir_VERB", + "haber_AUX_remontar_VERB", + "haber_AUX_remover_VERB", + "haber_AUX_rendir_VERB", + "haber_AUX_renegar_VERB", + "haber_AUX_renovar_VERB", + "haber_AUX_renunciar_VERB", + "haber_AUX_reorganizar_VERB", + "haber_AUX_reorientar_VERB", + "haber_AUX_reparar_VERB", + "haber_AUX_repartir_VERB", + "haber_AUX_repasar_VERB", + "haber_AUX_repatriar_VERB", + "haber_AUX_repercutir_VERB", + "haber_AUX_repetir_VERB", + "haber_AUX_replicar_VERB", + "haber_AUX_reponer_VERB", + "haber_AUX_reportar_VERB", + "haber_AUX_representar_VERB", + "haber_AUX_reprimir_VERB", + "haber_AUX_reprobar_VERB", + "haber_AUX_reprochar_VERB", + "haber_AUX_reproducir_VERB", + "haber_AUX_repuntar_VERB", + "haber_AUX_requerir_VERB", + "haber_AUX_resaltar_VERB", + "haber_AUX_rescatar_VERB", + "haber_AUX_rescindir_VERB", + "haber_AUX_resentir_VERB", + "haber_AUX_reservar_VERB", + "haber_AUX_reseñar_VERB", + "haber_AUX_residir_VERB", + "haber_AUX_resignar_VERB", + "haber_AUX_resistir_VERB", + "haber_AUX_resolver_VERB", + "haber_AUX_resonar_VERB", + "haber_AUX_respaldar_VERB", + "haber_AUX_respetar_VERB", + "haber_AUX_responder_VERB", + "haber_AUX_responsabilizar_VERB", + "haber_AUX_restablecer_VERB", + "haber_AUX_restar_VERB", + "haber_AUX_restaurar_VERB", + "haber_AUX_restituir_VERB", + "haber_AUX_restringir_VERB", + "haber_AUX_resucitar_VERB", + "haber_AUX_resultar_VERB", + "haber_AUX_resumir_VERB", + "haber_AUX_resurgir_VERB", + "haber_AUX_retar_VERB", + "haber_AUX_retener_VERB", + "haber_AUX_retirar_VERB", + "haber_AUX_retomar_VERB", + "haber_AUX_retornar_VERB", + "haber_AUX_retrasar_VERB", + "haber_AUX_retratar_VERB", + "haber_AUX_retroceder_VERB", + "haber_AUX_reunir_VERB", + "haber_AUX_revalorizar_VERB", + "haber_AUX_revelar_VERB", + "haber_AUX_reventar_VERB", + "haber_AUX_revertir_VERB", + "haber_AUX_revestir_VERB", + "haber_AUX_revisar_VERB", + "haber_AUX_revitalizar_VERB", + "haber_AUX_revivir_VERB", + "haber_AUX_revocar_VERB", + "haber_AUX_revolucionar_VERB", + "haber_AUX_rezar_VERB", + "haber_AUX_reñir_VERB", + "haber_AUX_robar_VERB", + "haber_AUX_rodar_VERB", + "haber_AUX_rodear_VERB", + "haber_AUX_rogar_VERB", + "haber_AUX_romper_VERB", + "haber_AUX_rondar_VERB", + "haber_AUX_rozar_VERB", + "haber_AUX_saber_VERB", + "haber_AUX_sacar_VERB", + "haber_AUX_sacrificar_VERB", + "haber_AUX_sacudir_VERB", + "haber_AUX_saldar_VERB", + "haber_AUX_salir_VERB", + "haber_AUX_salpicar_VERB", + "haber_AUX_saltar_VERB", + "haber_AUX_saludar_VERB", + "haber_AUX_salvar_VERB", + "haber_AUX_sancionar_VERB", + "haber_AUX_saquear_VERB", + "haber_AUX_satisfacer_VERB", + "haber_AUX_secar_VERB", + "haber_AUX_secuestrar_VERB", + "haber_AUX_secundar_VERB", + "haber_AUX_seducir_VERB", + "haber_AUX_seguir_VERB", + "haber_AUX_seleccionar_VERB", + "haber_AUX_sellar_VERB", + "haber_AUX_sembrar_VERB", + "haber_AUX_sensibilizar_VERB", + "haber_AUX_sentar_VERB", + "haber_AUX_sentenciar_VERB", + "haber_AUX_sentir_VERB", + "haber_AUX_separar_VERB", + "haber_AUX_servir_VERB", + "haber_AUX_señalar_VERB", + "haber_AUX_significar_VERB", + "haber_AUX_simplificar_VERB", + "haber_AUX_situar_VERB", + "haber_AUX_sobrar_VERB", + "haber_AUX_sobrepasar_VERB", + "haber_AUX_sobrevenir_VERB", + "haber_AUX_sobrevivir_VERB", + "haber_AUX_socavar_VERB", + "haber_AUX_soler_VERB", + "haber_AUX_solicitar_VERB", + "haber_AUX_soltar_VERB", + "haber_AUX_solucionar_VERB", + "haber_AUX_someter_VERB", + "haber_AUX_sonar_VERB", + "haber_AUX_sonreer_VERB", + "haber_AUX_soportar_VERB", + "haber_AUX_sorprender_VERB", + "haber_AUX_sortear_VERB", + "haber_AUX_sospechar_VERB", + "haber_AUX_sostener_VERB", + "haber_AUX_soñar_VERB", + "haber_AUX_suavizar_VERB", + "haber_AUX_subestimar_VERB", + "haber_AUX_subir_VERB", + "haber_AUX_subrayar_VERB", + "haber_AUX_subsanar_VERB", + "haber_AUX_subvencionar_VERB", + "haber_AUX_suceder_VERB", + "haber_AUX_sucumbir_VERB", + "haber_AUX_sufragar_VERB", + "haber_AUX_sufrir_VERB", + "haber_AUX_sugerir_VERB", + "haber_AUX_suicidar_VERB", + "haber_AUX_sumar_VERB", + "haber_AUX_sumergir_VERB", + "haber_AUX_suministrar_VERB", + "haber_AUX_sumir_VERB", + "haber_AUX_superar_VERB", + "haber_AUX_supervisar_VERB", + "haber_AUX_suponer_VERB", + "haber_AUX_suprimir_VERB", + "haber_AUX_surgir_VERB", + "haber_AUX_surtir_VERB", + "haber_AUX_suscitar_VERB", + "haber_AUX_suscribir_VERB", + "haber_AUX_suspender_VERB", + "haber_AUX_sustentar_VERB", + "haber_AUX_sustituir_VERB", + "haber_AUX_sustraer_VERB", + "haber_AUX_tachar_VERB", + "haber_AUX_tapar_VERB", + "haber_AUX_tardar_VERB", + "haber_AUX_tejer_VERB", + "haber_AUX_temblar_VERB", + "haber_AUX_temer_VERB", + "haber_AUX_tender_VERB", + "haber_AUX_tener_VERB", + "haber_AUX_terminar_VERB", + "haber_AUX_testificar_VERB", + "haber_AUX_teñir_VERB", + "haber_AUX_tildar_VERB", + "haber_AUX_tipificar_VERB", + "haber_AUX_tirar_VERB", + "haber_AUX_titular_VERB", + "haber_AUX_tocar_VERB", + "haber_AUX_tolerar_VERB", + "haber_AUX_tomar_VERB", + "haber_AUX_topar_VERB", + "haber_AUX_tornar_VERB", + "haber_AUX_torturar_VERB", + "haber_AUX_trabajar_VERB", + "haber_AUX_trabar_VERB", + "haber_AUX_traducir_VERB", + "haber_AUX_traer_VERB", + "haber_AUX_tragar_VERB", + "haber_AUX_traicionar_VERB", + "haber_AUX_tramitar_VERB", + "haber_AUX_tranquilizar_VERB", + "haber_AUX_transcurrir_VERB", + "haber_AUX_transferir_VERB", + "haber_AUX_transformar_VERB", + "haber_AUX_transgredir_VERB", + "haber_AUX_transitar_VERB", + "haber_AUX_transmitir_VERB", + "haber_AUX_transponer_VERB", + "haber_AUX_transportar_VERB", + "haber_AUX_trascender_VERB", + "haber_AUX_trasladar_VERB", + "haber_AUX_trasmitir_VERB", + "haber_AUX_traspasar_VERB", + "haber_AUX_trastornar_VERB", + "haber_AUX_tratar_VERB", + "haber_AUX_trazar_VERB", + "haber_AUX_triplicar_VERB", + "haber_AUX_triunfar_VERB", + "haber_AUX_trocar_VERB", + "haber_AUX_tropezar_VERB", + "haber_AUX_tumbar_VERB", + "haber_AUX_ubicar_VERB", + "haber_AUX_ultimar_VERB", + "haber_AUX_unificar_VERB", + "haber_AUX_unir_VERB", + "haber_AUX_urgir_VERB", + "haber_AUX_usar_VERB", + "haber_AUX_usurpar_VERB", + "haber_AUX_utilizar_VERB", + "haber_AUX_vaciar_VERB", + "haber_AUX_vacilar_VERB", + "haber_AUX_vacunar_VERB", + "haber_AUX_valer_VERB", + "haber_AUX_validar_VERB", + "haber_AUX_valorar_VERB", + "haber_AUX_variar_VERB", + "haber_AUX_vaticinar_VERB", + "haber_AUX_velar_VERB", + "haber_AUX_vencer_VERB", + "haber_AUX_vender_VERB", + "haber_AUX_vengar_VERB", + "haber_AUX_venir_VERB", + "haber_AUX_ver_VERB", + "haber_AUX_verificar_VERB", + "haber_AUX_versar_VERB", + "haber_AUX_verter_VERB", + "haber_AUX_vestir_VERB", + "haber_AUX_vetar_VERB", + "haber_AUX_viajar_VERB", + "haber_AUX_vigilar_VERB", + "haber_AUX_vincular_VERB", + "haber_AUX_violar_VERB", + "haber_AUX_violentar_VERB", + "haber_AUX_visitar_VERB", + "haber_AUX_vivir_VERB", + "haber_AUX_volar_VERB", + "haber_AUX_volcar_VERB", + "haber_AUX_volver_VERB", + "haber_AUX_votar_VERB", + "haber_AUX_vulnerar_VERB", + "haber_AUX_was_VERB", + "haber_AUX_zanjar_VERB", + "haber_AUX_él_AUX_agotar_VERB", + "haber_AUX_él_AUX_fijar_VERB", + "haber_AUX_él_VERB", + "haber_NOUN_jubilatorio_ADJ", + "haber_NOUN_mínimo_ADJ", + "haber_VERB_ahí_ADV", + "haber_VERB_aquí_ADV", + "habida_ADP_cuenta_NOUN", + "habida_NOUN_cuenta_NOUN", + "habido_ADJ_cuenta_NOUN", + "habilidad_NOUN_diplomático_ADJ", + "habitación_NOUN_contiguo_ADJ", + "habla_NOUN_francés_ADJ", + "habla_NOUN_hispano_ADJ", + "habla_NOUN_inglés_ADJ", + "habla_NOUN_portugués_ADJ", + "habla_NOUN_ruso_ADJ", + "hablarer_VERB_hablarer_VERB", + "hacer_VERB_acto_VERB", + "hacer_VERB_añico_NOUN", + "hacer_VERB_hincapié_NOUN", + "hacer_VERB_mella_NOUN", + "hacer_VERB_suya_ADJ", + "hacer_VERB_suyas_CCONJ", + "hacer_VERB_suyo_ADJ", + "hacia_ADP_abajo_ADV", + "hacia_ADP_adentro_ADV", + "hacia_ADP_atrás_ADV", + "hacienda_PROPN_cristóbal_PROPN", + "hacienda_PROPN_nicolás_PROPN", + "hacienda_PROPN_pública_PROPN", + "had_PROPN_been_PROPN", + "haer_VERB_falta_NOUN", + "hagam_PROPN_tú_PRON", + "haile_PROPN_selassie_PROPN", + "haití_ADJ_honduras_PROPN", + "haití_ADJ_hungría_PROPN", + "haití_ADJ_india_NOUN", + "haití_ADJ_indonesio_ADJ", + "haití_PROPN_honduras_PROPN", + "haití_PROPN_minustah_NOUN", + "haití_PROPN_minustah_PROPN", + "haití_PROPN_miponuh_PROPN", + "haití_PROPN_unmih_PROPN", + "haití_PROPN_unsmih_PROPN", + "haití_PROPN_untmih_PROPN", + "halbwachs_PROPN_contralor_NOUN", + "hallado_ADJ_muerto_ADJ", + "hallar_VERB_culpable_ADJ", + "hallar_VERB_sometido_ADJ", + "hallareis_PROPN_hallareis_PROPN", + "halle_PROPN_berry_PROPN", + "hambre_PROPN_cero_NUM", + "hamburgo_PROPN_alemania_PROPN", + "hamid_PROPN_karzai_PROPN", + "hamilton_PROPN_shirley_PROPN", + "hampton_PROPN_court_PROPN", + "handbook_PROPN_of_PROPN", + "handicap_NOUN_international_ADJ", + "hang_PROPN_seng_PROPN", + "hannah_PROPN_montana_PROPN", + "hannesson_PROPN_islandia_PROPN", + "hans_PROPN_blix_PROPN", + "hans_PROPN_corell_PROPN", + "har_AUX_ahí_ADV", + "har_AUX_aquí_ADV", + "haraguchi_PROPN_japón_PROPN", + "hard_PROPN_rock_PROPN", + "haremos_PROPN_historia_PROPN", + "harina_NOUN_animal_ADJ", + "harley_PROPN_davidson_PROPN", + "harri_VERB_holkeri_PROPN", + "harrison_PROPN_ford_PROPN", + "harry_PROPN_potter_PROPN", + "harry_PROPN_reid_PROPN", + "harvey_PROPN_weinstein_PROPN", + "has_PROPN_been_PROPN", + "hasar_VERB_embajador_NOUN", + "hasmy_ADJ_malasia_PROPN", + "hasta_ADP_mediados_ADV", + "hasta_ADP_tanto_SCONJ", + "hat_NOUN_trick_NOUN", + "have_PROPN_been_PROPN", + "have_PROPN_to_PROPN", + "hay_PROPN_festival_PROPN", + "hch_PROPN_técnico_ADJ", + "he_NOUN_ahí_ADV", + "he_PROPN_had_PROPN", + "head_PROPN_of_PROPN", + "health_PROPN_and_PROPN", + "health_PROPN_care_PROPN", + "heath_PROPN_ledger_PROPN", + "heavy_NOUN_metal_NOUN", + "hecho_NOUN_consumado_ADJ", + "hecho_NOUN_internacionalmente_ADV", + "hectómetro_NOUN_cúbico_ADJ", + "hedge_NOUN_funds_NOUN", + "heinbecker_PROPN_canadá_PROPN", + "helada_NOUN_débil_ADJ", + "held_PROPN_in_ADP", + "helicóptero_NOUN_artillado_ADJ", + "helicóptero_NOUN_israelí_ADJ", + "helicóptero_NOUN_sobrevolar_VERB", + "heller_PROPN_méxico_PROPN", + "helmut_PROPN_kohl_PROPN", + "helpage_PROPN_international_ADJ", + "hemisferio_NOUN_norte_ADJ", + "hemisferio_NOUN_occidental_ADJ", + "hemisferio_NOUN_sur_ADJ", + "hemisferio_NOUN_sur_NOUN", + "hemisferio_PROPN_occidental_PROPN", + "hemorragia_NOUN_cerebral_ADJ", + "hemorragia_NOUN_interno_ADJ", + "henri_PROPN_falcón_PROPN", + "henrique_PROPN_capriles_PROPN", + "henry_PROPN_kissinger_PROPN", + "henry_PROPN_ramos_PROPN", + "hepatitis_NOUN_b_NOUN", + "hepatitis_NOUN_b_SYM", + "hepatitis_NOUN_c_NOUN", + "hepatitis_NOUN_c_PROPN", + "heraldo_PROPN_muñoz_PROPN", + "herencia_NOUN_recibido_ADJ", + "herida_NOUN_causado_ADJ", + "herida_NOUN_leve_ADJ", + "herida_NOUN_producido_ADJ", + "herida_NOUN_sufrido_ADJ", + "herido_ADJ_leve_ADJ", + "herido_NOUN_leve_ADJ", + "herir_VERB_gravemente_ADV", + "herman_PROPN_van_PROPN", + "hermana_NOUN_gemelo_ADJ", + "hermandad_PROPN_musulmana_PROPN", + "hermano_NOUN_gemelo_ADJ", + "hermano_NOUN_raúl_PROPN", + "hermanos_PROPN_musulmanes_PROPN", + "hermes_PROPN_binner_PROPN", + "hermosillo_PROPN_sonora_PROPN", + "hermoso_ADJ_dama_NOUN", + "hernan_PROPN_cortés_PROPN", + "hernia_NOUN_discal_ADJ", + "hernán_PROPN_cortés_PROPN", + "hernán_PROPN_crespo_PROPN", + "hernán_PROPN_darío_PROPN", + "hernán_PROPN_lombardi_PROPN", + "hernández_PROPN_mollar_PROPN", + "herri_PROPN_batasuna_PROPN", + "herzegovina_PROPN_botswana_PROPN", + "herzegovina_PROPN_brasil_PROPN", + "herzegovina_PROPN_bulgaria_PROPN", + "herzegovina_PROPN_croacia_PROPN", + "herzegovina_PROPN_montenegro_PROPN", + "herzegovín_ADJ_botswana_NOUN", + "herzegovín_ADJ_bulgaria_PROPN", + "herzegovín_ADJ_croacia_PROPN", + "herzegovín_ADJ_montenegro_NOUN", + "herzegovín_ADJ_serbio_ADJ", + "herzegovín_ADJ_unmibh_PROPN", + "hexagonal_ADJ_final_ADJ", + "hfc_PROPN_pfc_NOUN", + "hielo_NOUN_marino_ADJ", + "hierba_NOUN_aromático_ADJ", + "high_PROPN_commissioner_PROPN", + "high_PROPN_court_PROPN", + "high_PROPN_school_PROPN", + "higiene_NOUN_ambiental_ADJ", + "higiene_NOUN_personal_ADJ", + "hija_NOUN_adolescente_ADJ", + "hija_NOUN_adoptivo_ADJ", + "hija_NOUN_mia_PROPN", + "hija_NOUN_mía_DET", + "hija_NOUN_mía_PROPN", + "hija_NOUN_mío_PRON", + "hija_PROPN_mía_PROPN", + "hijo_NOUN_adoptivo_ADJ", + "hijo_NOUN_ilegítimo_ADJ", + "hijo_NOUN_mio_PROPN", + "hijo_NOUN_mío_ADJ", + "hijo_NOUN_predilecto_ADJ", + "hijo_NOUN_pródigo_ADJ", + "hijo_NOUN_varón_ADJ", + "hillary_PROPN_clinton_PROPN", + "hilo_NOUN_conductor_ADJ", + "him_PROPN_to_PROPN", + "himno_PROPN_nacional_PROPN", + "hina_PROPN_jilani_PROPN", + "hip_NOUN_hop_NOUN", + "hip_PROPN_hop_PROPN", + "hiperenlaz_NOUN_poder_AUX", + "hipertensión_NOUN_arterial_ADJ", + "hipoteca_NOUN_constituido_ADJ", + "hipoteca_NOUN_subprime_ADJ", + "hipólito_PROPN_mejía_PROPN", + "hipólito_PROPN_solari_PROPN", + "hipólito_PROPN_yrigoyen_PROPN", + "hipótesis_NOUN_presupuestaria_ADJ", + "historia_NOUN_clínico_ADJ", + "historia_PROPN_inah_PROPN", + "historia_PROPN_natural_PROPN", + "historial_NOUN_clínico_ADJ", + "historial_NOUN_delictivo_ADJ", + "historial_NOUN_médico_ADJ", + "history_PROPN_of_PROPN", + "hito_NOUN_histórico_ADJ", + "hiv_PROPN_aids_ADV", + "hiv_PROPN_aids_PROPN", + "ho_PROPN_chi_PROPN", + "hogar_NOUN_conyugal_ADJ", + "hogar_NOUN_encabezado_ADJ", + "hogar_NOUN_monoparental_ADJ", + "hoja_NOUN_informativo_ADJ", + "hoja_NOUN_seco_ADJ", + "holguín_PROPN_cuba_PROPN", + "hollywood_PROPN_reporter_PROPN", + "hombre_NOUN_encapuchado_ADJ", + "hombre_PROPN_araña_PROPN", + "hombro_NOUN_derecho_ADJ", + "hombro_NOUN_izquierdo_ADJ", + "home_PROPN_depot_PROPN", + "homenaje_NOUN_póstumo_ADJ", + "homicidio_NOUN_agravado_ADJ", + "homicidio_NOUN_calificado_ADJ", + "homicidio_NOUN_culposo_ADJ", + "homicidio_NOUN_doloso_ADJ", + "homicidio_NOUN_imprudente_ADJ", + "homicidio_NOUN_intencional_ADJ", + "homicidio_NOUN_involuntario_ADJ", + "homicidio_NOUN_premeditado_ADJ", + "homicidio_NOUN_simple_ADJ", + "homólogo_NOUN_ruso_ADJ", + "honda_PROPN_civic_PROPN", + "hondamente_ADV_preocupado_ADJ", + "hondo_ADJ_preocupación_NOUN", + "honduras_PROPN_hungría_PROPN", + "honduras_PROPN_india_NOUN", + "honduras_PROPN_jamaica_PROPN", + "honduras_PROPN_nicaragua_PROPN", + "hong_PROPN_kong_PROPN", + "honorable_ADJ_concejo_PROPN", + "honra_NOUN_fúnebre_ADJ", + "hora_NOUN_consulta_ADJ", + "hora_NOUN_extra_ADJ", + "hora_NOUN_lectiva_ADJ", + "hora_NOUN_privada_NOUN", + "hora_NOUN_punta_ADJ", + "hora_NOUN_punto_ADJ", + "hora_NOUN_sesión_VERB", + "hora_NOUN_trabajado_ADJ", + "horacio_PROPN_cartes_PROPN", + "horacio_PROPN_rodríguez_PROPN", + "horario_NOUN_escolar_ADJ", + "horario_NOUN_estelar_ADJ", + "horario_NOUN_flexible_ADJ", + "horario_NOUN_habitual_ADJ", + "horario_NOUN_lectivo_ADJ", + "horario_NOUN_nocturno_ADJ", + "horario_NOUN_normal_ADJ", + "horizonte_NOUN_temporal_ADJ", + "hormigón_NOUN_armado_ADJ", + "horrendo_ADJ_crimen_NOUN", + "hoscheit_PROPN_luxemburgo_PROPN", + "hosni_PROPN_mubarak_PROPN", + "hospital_NOUN_pediátrico_ADJ", + "hospital_NOUN_psiquiátrico_ADJ", + "hospital_PROPN_centenario_PROPN", + "hospital_PROPN_central_PROPN", + "hospital_PROPN_clínico_PROPN", + "hospital_PROPN_comarcal_PROPN", + "hospital_PROPN_escuela_PROPN", + "hospital_PROPN_general_PROPN", + "hospital_PROPN_infantil_PROPN", + "hospital_PROPN_italiano_PROPN", + "hospital_PROPN_materno_PROPN", + "hospital_PROPN_militar_PROPN", + "hospital_PROPN_municipal_PROPN", + "hospital_PROPN_regional_PROPN", + "hospital_PROPN_universitario_PROPN", + "hospital_PROPN_virgen_PROPN", + "hospital_PROPN_zonal_PROPN", + "hostigamiento_NOUN_sexual_ADJ", + "hostilidad_NOUN_posterior_ADJ", + "hotel_NOUN_canal_ADJ", + "hotel_NOUN_canal_NOUN", + "hotel_NOUN_hilton_PROPN", + "hotel_NOUN_restaurante_NOUN", + "hotel_NOUN_sheraton_PROPN", + "house_PROPN_of_PROPN", + "houston_PROPN_texas_PROPN", + "how_PROPN_to_PROPN", + "hoy_ADV_mismo_ADV", + "hoy_ADV_occiso_ADJ", + "hoy_PROPN_digital_PROPN", + "hoyo_NOUN_sra_NOUN", + "htc_PROPN_one_PROPN", + "hu_PROPN_chino_ADJ", + "hu_PROPN_jia_PROPN", + "hu_PROPN_jintao_PROPN", + "hu_PROPN_señor_NOUN", + "hu_PROPN_señora_PROPN", + "hubert_PROPN_wurth_PROPN", + "huelga_NOUN_convocado_ADJ", + "huelga_NOUN_indefinido_ADJ", + "huelga_PROPN_decir_VERB", + "huelga_VERB_decir_VERB", + "huella_NOUN_dactilar_ADJ", + "huella_NOUN_digital_ADJ", + "huella_NOUN_ecológico_ADJ", + "huffington_PROPN_post_PROPN", + "hugh_PROPN_jackman_PROPN", + "hugo_PROPN_chávez_PROPN", + "hugo_PROPN_moyano_PROPN", + "hugo_PROPN_sánchez_PROPN", + "hugo_PROPN_yasky_PROPN", + "human_PROPN_development_PROPN", + "human_PROPN_right_PROPN", + "human_PROPN_rights_PROPN", + "humanamente_ADV_posible_ADJ", + "humanidad_NOUN_neutralidad_NOUN", + "humanitarian_PROPN_law_PROPN", + "humanitario_ADJ_cometido_ADJ", + "humanitario_ADJ_ocah_ADJ", + "humano_ADJ_idh_PROPN", + "humberto_PROPN_moreira_PROPN", + "humberto_PROPN_suazo_PROPN", + "humo_NOUN_negro_ADJ", + "humor_NOUN_negro_ADJ", + "hun_PROPN_sen_PROPN", + "hungría_PROPN_india_NOUN", + "hungría_PROPN_india_PROPN", + "hungría_PROPN_indonesia_PROPN", + "hungría_PROPN_indonesio_ADJ", + "hungría_PROPN_irlanda_PROPN", + "hungría_PROPN_islandia_PROPN", + "hungría_PROPN_letonia_PROPN", + "huracán_NOUN_irma_PROPN", + "huracán_NOUN_katrina_PROPN", + "huracán_NOUN_maría_PROPN", + "huracán_NOUN_matthew_PROPN", + "huracán_NOUN_mitch_PROPN", + "huracán_NOUN_sandy_PROPN", + "huso_NOUN_horario_ADJ", + "hussain_PROPN_pakistán_PROPN", + "hyde_PROPN_park_PROPN", + "hábea_NOUN_corpus_NOUN", + "hábea_NOUN_corpus_PROPN", + "hábeas_NOUN_corpus_NOUN", + "hábeas_PROPN_corpus_NOUN", + "hábeas_PROPN_corpus_PROPN", + "hábitat_NOUN_natural_ADJ", + "hábitat_PROPN_ii_ADJ", + "hábitat_PROPN_ii_PROPN", + "hábito_NOUN_alimentario_ADJ", + "hábito_NOUN_alimenticio_ADJ", + "hábito_NOUN_saludable_ADJ", + "hé_INTJ_aquí_ADV", + "hé_PROPN_aquí_ADV", + "héctor_PROPN_astudillo_PROPN", + "héctor_PROPN_daer_PROPN", + "héctor_PROPN_herrera_PROPN", + "héctor_PROPN_moreno_PROPN", + "héctor_PROPN_recalde_PROPN", + "héctor_PROPN_timerman_PROPN", + "hédi_PROPN_annabi_PROPN", + "i_CCONJ_am_NOUN", + "i_CCONJ_am_PROPN", + "i_CCONJ_npt_NOUN", + "i_CCONJ_r_CCONJ", + "i_CCONJ_r_PROPN", + "i_CCONJ_secc_NOUN", + "i_CCONJ_secc_PROPN", + "i_PROPN_guerra_PROPN", + "i_PROPN_noticia_NOUN", + "ian_PROPN_brownlie_PROPN", + "ian_PROPN_martin_PROPN", + "iberdrola_PROPN_renovables_PROPN", + "iberia_PROPN_express_PROPN", + "ibid_PROPN_paras_NOUN", + "ibiza_PROPN_titel_PROPN", + "ibrahim_PROPN_gambari_PROPN", + "ibrahimar_VERB_fall_PROPN", + "ibíd_PROPN_art_NOUN", + "ibíd_PROPN_cap_NOUN", + "ibíd_PROPN_pág_NOUN", + "ibíd_PROPN_pág_PRON", + "ibíd_PROPN_párr_NOUN", + "ibíd_PROPN_quincuagésimo_PROPN", + "ibíd_PROPN_sexagésimo_ADJ", + "ibíd_PROPN_suplemento_NOUN", + "idea_NOUN_innovadora_ADJ", + "idea_NOUN_preconcebida_ADJ", + "ideal_NOUN_olímpico_NOUN", + "identidad_NOUN_artículo_PROPN", + "identidad_NOUN_cultural_ADJ", + "ideología_NOUN_extremista_ADJ", + "ideología_NOUN_nacionalista_ADJ", + "ideología_NOUN_racista_ADJ", + "idioma_NOUN_hablado_ADJ", + "idioma_NOUN_inglés_ADJ", + "idioma_NOUN_maorí_PROPN", + "idioma_NOUN_materno_ADJ", + "idioma_NOUN_minoritario_ADJ", + "idioma_NOUN_nativo_ADJ", + "idioma_NOUN_oficial_ADJ", + "idioma_NOUN_religión_NOUN", + "ied_NOUN_hacia_ADP", + "iglesia_NOUN_católico_ADJ", + "iglesia_NOUN_cristiano_ADJ", + "iglesia_NOUN_evangélico_ADJ", + "iglesia_NOUN_ortodoxo_ADJ", + "iglesia_NOUN_parroquial_ADJ", + "iglesia_NOUN_protestante_ADJ", + "iglesia_PROPN_adventista_PROPN", + "iglesia_PROPN_catedral_PROPN", + "iglesia_PROPN_católica_PROPN", + "iglesia_PROPN_católico_ADJ", + "iglesia_PROPN_evangélica_PROPN", + "iglesia_PROPN_ortodoxa_PROPN", + "iglesia_PROPN_ortodoxo_ADJ", + "ignacio_PROPN_fernández_PROPN", + "ignacio_PROPN_gonzález_PROPN", + "ignacio_PROPN_scocco_PROPN", + "ignacio_PROPN_sánchez_PROPN", + "ignacio_PROPN_zaragoza_PROPN", + "igualdad_NOUN_soberano_ADJ", + "igualmente_ADV_auténtico_ADJ", + "ii_NOUN_recomendado_ADJ", + "ii_PROPN_cap_PROPN", + "ii_PROPN_enmendado_ADJ", + "ii_PROPN_guerra_PROPN", + "ii_PROPN_sec_PROPN", + "ii_PROPN_secc_PROPN", + "iii_PROPN_infra_PROPN", + "iii_PROPN_secc_PROPN", + "iir_VERB_shearer_PROPN", + "iker_PROPN_casillas_PROPN", + "il_PROPN_cavaliere_PROPN", + "ileka_NOUN_república_PROPN", + "illes_PROPN_balears_PROPN", + "ilo_PROPN_committee_PROPN", + "ilusión_NOUN_óptico_ADJ", + "ilustrar_VERB_claramente_ADV", + "image_PROPN_caption_PROPN", + "image_PROPN_copyright_NOUN", + "image_PROPN_copyright_PROPN", + "imagen_NOUN_captado_ADJ", + "imagen_NOUN_estereotipada_ADJ", + "imagen_NOUN_getty_PROPN", + "imagen_NOUN_pornográfico_ADJ", + "imagen_NOUN_satelital_ADJ", + "images_PROPN_generously_PROPN", + "images_PROPN_image_PROPN", + "imaginario_NOUN_colectivo_ADJ", + "imp_PROPN_metall_PROPN", + "impact_PROPN_of_PROPN", + "impactar_VERB_negativamente_ADV", + "impactar_VERB_positivamente_ADV", + "impacto_NOUN_ambiental_ADJ", + "impacto_NOUN_medioambiental_ADJ", + "impacto_NOUN_negativo_ADJ", + "impacto_NOUN_visual_ADJ", + "impacto_PROPN_ambiental_PROPN", + "impartar_VERB_capacitación_NOUN", + "impartar_VERB_formación_NOUN", + "impartir_VERB_capacitación_NOUN", + "impartir_VERB_clase_NOUN", + "impartir_VERB_curso_NOUN", + "impartir_VERB_enseñanza_NOUN", + "impartir_VERB_formación_NOUN", + "impartir_VERB_instrucción_NOUN", + "impartir_VERB_orientación_NOUN", + "impedimento_NOUN_físico_ADJ", + "impedimento_NOUN_legal_ADJ", + "imperativo_NOUN_moral_ADJ", + "imperativo_NOUN_ético_ADJ", + "imperial_PROPN_college_PROPN", + "imperialismo_NOUN_norteamericano_ADJ", + "imperio_NOUN_otomano_ADJ", + "imperio_NOUN_romano_ADJ", + "imperio_PROPN_británico_PROPN", + "imperio_PROPN_otomano_PROPN", + "imperio_PROPN_romano_PROPN", + "imperioso_ADJ_necesidad_NOUN", + "implant_NOUN_mamario_ADJ", + "implementation_NOUN_of_ADP", + "implementation_PROPN_of_PROPN", + "implicar_VERB_necesariamente_ADV", + "implications_PROPN_for_PROPN", + "imponer_VERB_restricción_NOUN", + "imponer_VERB_sanción_NOUN", + "imponer_VERB_unilateralmente_ADV", + "importación_NOUN_exportación_NOUN", + "importador_ADJ_neto_ADJ", + "importador_NOUN_neto_ADJ", + "importancia_NOUN_capital_ADJ", + "importancia_NOUN_crucial_ADJ", + "importe_NOUN_reclamado_ADJ", + "importe_NOUN_total_ADJ", + "impresión_NOUN_erróneo_ADJ", + "impuesto_NOUN_indirecto_ADJ", + "impuesto_NOUN_predial_ADJ", + "impuesto_NOUN_tobin_PROPN", + "impuestos_PROPN_internos_PROPN", + "impulso_NOUN_generado_ADJ", + "impulso_NOUN_renovado_ADJ", + "in_ADP_a_DET", + "in_ADP_absentia_NOUN", + "in_ADP_accordance_PROPN", + "in_ADP_addition_PROPN", + "in_ADP_africa_PROPN", + "in_ADP_all_PROPN", + "in_ADP_an_PROPN", + "in_ADP_developing_PROPN", + "in_ADP_english_PROPN", + "in_ADP_europe_PROPN", + "in_ADP_extenso_NOUN", + "in_ADP_extremis_NOUN", + "in_ADP_fraganti_NOUN", + "in_ADP_geneva_PROPN", + "in_ADP_his_PROPN", + "in_ADP_idem_PROPN", + "in_ADP_international_PROPN", + "in_ADP_its_PROPN", + "in_ADP_july_PROPN", + "in_ADP_latin_PROPN", + "in_ADP_my_PROPN", + "in_ADP_order_PROPN", + "in_ADP_re_PROPN", + "in_ADP_relation_PROPN", + "in_ADP_respect_NOUN", + "in_ADP_situ_ADJ", + "in_ADP_situ_NOUN", + "in_ADP_situ_PROPN", + "in_ADP_south_PROPN", + "in_ADP_spain_PROPN", + "in_ADP_spanish_PROPN", + "in_ADP_the_DET", + "in_ADP_the_PROPN", + "in_ADP_their_PROPN", + "in_ADP_this_PROPN", + "in_ADP_vienna_PROPN", + "in_ADP_vitro_NOUN", + "in_ADP_which_PROPN", + "ina_PROPN_artículo_NOUN", + "inaceptablemente_ADV_alto_ADJ", + "inaceptablemente_ADV_elevado_ADJ", + "inacio_PROPN_lula_PROPN", + "inadmisibilidad_NOUN_adoptado_ADJ", + "inadmisible_ADJ_rationar_VERB", + "inaugurar_VERB_oficialmente_ADV", + "inb_PROPN_per_ADP", + "inca_PROPN_yupanqui_PROPN", + "incalculable_ADJ_valor_NOUN", + "incansable_ADJ_esfuerzo_NOUN", + "incapacidad_NOUN_mental_ADJ", + "incapacidad_NOUN_temporal_ADJ", + "incautar_VERB_kilo_NOUN", + "incendio_NOUN_declarado_ADJ", + "incendio_NOUN_forestal_ADJ", + "incendio_NOUN_intencional_ADJ", + "incendio_NOUN_provocado_ADJ", + "incendios_PROPN_forestales_PROPN", + "incentivo_NOUN_fiscal_ADJ", + "incidencia_NOUN_delictivo_ADJ", + "incidente_NOUN_aislado_ADJ", + "incidente_NOUN_denunciado_ADJ", + "incidente_NOUN_ocurrido_ADJ", + "incidente_NOUN_racista_ADJ", + "incidente_NOUN_violento_ADJ", + "incidir_VERB_directamente_ADV", + "incidir_VERB_negativamente_ADV", + "inciso_NOUN_b_NOUN", + "inciso_NOUN_c_NOUN", + "inciso_NOUN_d_PROPN", + "inciso_NOUN_f_NOUN", + "inciso_NOUN_g_PROPN", + "inciso_NOUN_i_CCONJ", + "inciso_NOUN_i_NOUN", + "inciso_NOUN_ii_ADJ", + "inciso_NOUN_ii_PROPN", + "inciso_NOUN_iii_PROPN", + "inciso_NOUN_iv_PROPN", + "inciso_NOUN_v_NOUN", + "inclinado_ADJ_hacia_ADP", + "including_ADJ_the_PROPN", + "incluido_ADJ_jerusalén_PROPN", + "inclusión_PROPN_social_PROPN", + "incoar_VERB_procedimiento_NOUN", + "income_PROPN_sect_PROPN", + "incompatible_ADJ_rationar_VERB", + "incrementar_VERB_notablemente_ADV", + "incrementar_VERB_significativamente_ADV", + "incrementar_VERB_sustancialmente_ADV", + "incremento_NOUN_interanual_ADJ", + "incremento_NOUN_salarial_ADJ", + "incursión_NOUN_armado_ADJ", + "incursión_NOUN_aéreo_ADJ", + "incursión_NOUN_israelí_ADJ", + "incursión_NOUN_militar_ADJ", + "indagación_NOUN_preliminar_ADJ", + "indagatoria_NOUN_correspondiente_ADJ", + "indemnización_NOUN_concedido_ADJ", + "indemnización_NOUN_otorgado_ADJ", + "indemnización_NOUN_pecuniario_ADJ", + "indemnización_NOUN_recomendado_ADJ", + "independencia_NOUN_editorial_ADJ", + "independiente_ADJ_cei_PROPN", + "independiente_PROPN_medellín_PROPN", + "independiente_PROPN_rivadavia_PROPN", + "independiente_PROPN_santa_PROPN", + "india_NOUN_indonesio_ADJ", + "india_PROPN_indonesia_PROPN", + "indian_PROPN_wells_PROPN", + "indiana_PROPN_jones_PROPN", + "indias_PROPN_colombia_PROPN", + "indias_PROPN_occidentales_PROPN", + "indicación_NOUN_geográfico_ADJ", + "indicador_NOUN_cualitativo_ADJ", + "indicador_NOUN_cuantificabl_ADJ", + "indicador_NOUN_cuantitativo_ADJ", + "indicador_NOUN_mensurabl_ADJ", + "indicador_NOUN_múltiple_ADJ", + "indicador_NOUN_objetivamente_ADV", + "indice_PROPN_general_PROPN", + "indicio_NOUN_alentador_ADJ", + "indicio_NOUN_racional_ADJ", + "indigenous_PROPN_peopl_ADJ", + "indigenous_PROPN_peopl_NOUN", + "indigenous_PROPN_people_PROPN", + "indigenous_PROPN_peoples_PROPN", + "indio_ADJ_occidental_ADJ", + "indio_NOUN_americano_ADJ", + "indio_PROPN_solari_PROPN", + "indivisibl_ADJ_e_CCONJ", + "indonesia_PROPN_irán_PROPN", + "indonesia_PROPN_malasia_PROPN", + "indonesio_ADJ_ir_VERB", + "indonesio_ADJ_iraq_ADJ", + "indonesio_ADJ_irlanda_PROPN", + "indonesio_ADJ_jordania_PROPN", + "indulto_NOUN_presidencial_ADJ", + "industria_NOUN_aeroespacial_ADJ", + "industria_NOUN_aeronáutico_ADJ", + "industria_NOUN_agroalimentario_ADJ", + "industria_NOUN_automotriz_ADJ", + "industria_NOUN_automovilístico_ADJ", + "industria_NOUN_azucarero_ADJ", + "industria_NOUN_cinematográfico_ADJ", + "industria_NOUN_creativo_ADJ", + "industria_NOUN_discográfico_ADJ", + "industria_NOUN_editorial_ADJ", + "industria_NOUN_extractiva_ADJ", + "industria_NOUN_farmacéutico_ADJ", + "industria_NOUN_hotelero_ADJ", + "industria_NOUN_maderero_ADJ", + "industria_NOUN_manufacturero_ADJ", + "industria_NOUN_maquiladoro_ADJ", + "industria_NOUN_metalúrgico_ADJ", + "industria_NOUN_minero_ADJ", + "industria_NOUN_naval_ADJ", + "industria_NOUN_naviero_ADJ", + "industria_NOUN_pesquero_ADJ", + "industria_NOUN_petrolero_ADJ", + "industria_NOUN_siderúrgico_ADJ", + "industria_NOUN_tabacalero_ADJ", + "industria_NOUN_textil_ADJ", + "industria_NOUN_turístico_ADJ", + "industria_PROPN_comercio_PROPN", + "industria_PROPN_energía_PROPN", + "industria_PROPN_investigación_PROPN", + "industria_PROPN_turismo_PROPN", + "industrial_ADJ_dow_PROPN", + "industrial_ADJ_onudi_ADJ", + "industrial_PROPN_argentina_PROPN", + "inestabilidad_NOUN_político_ADJ", + "inextricablemente_ADV_vinculado_ADJ", + "infancia_NOUN_unicef_PROPN", + "infancia_PROPN_unicef_PROPN", + "infanta_NOUN_cristina_PROPN", + "infanta_NOUN_elena_PROPN", + "infanta_PROPN_cristina_PROPN", + "infanta_PROPN_elena_PROPN", + "infanticidio_NOUN_femenino_ADJ", + "infantil_ADJ_ipec_PROPN", + "infarto_NOUN_cerebral_ADJ", + "infatigable_ADJ_esfuerzo_NOUN", + "infección_NOUN_agudo_ADJ", + "infección_NOUN_oportunista_ADJ", + "infección_NOUN_pulmonar_ADJ", + "infección_NOUN_respiratorio_ADJ", + "inferioridad_NOUN_numérico_ADJ", + "inflación_NOUN_acumulado_ADJ", + "inflación_NOUN_interanual_ADJ", + "inflación_NOUN_subyacente_ADJ", + "infligir_VERB_daño_NOUN", + "infligir_VERB_tortura_NOUN", + "influir_VERB_considerablemente_ADV", + "influir_VERB_decisivamente_ADV", + "influir_VERB_negativamente_ADV", + "influir_VERB_positivamente_ADV", + "información_NOUN_actualizado_ADJ", + "información_NOUN_facilitado_ADJ", + "información_NOUN_fidedigno_ADJ", + "información_NOUN_proporcionado_ADJ", + "información_NOUN_recabado_ADJ", + "información_NOUN_suministrado_ADJ", + "información_NOUN_veraz_ADJ", + "información_PROPN_financiera_PROPN", + "información_PROPN_pública_PROPN", + "information_PROPN_and_PROPN", + "information_PROPN_on_PROPN", + "informativo_ADJ_gráfico_NOUN", + "informe_NOUN_brahimi_ADJ", + "informe_NOUN_conexo_PROPN", + "informe_NOUN_cuadrienal_ADJ", + "informe_NOUN_goldstone_PROPN", + "informe_NOUN_periódico_ADJ", + "informe_NOUN_sinóptico_ADJ", + "informe_PROPN_anual_PROPN", + "informir_VERB_periódicamente_ADV", + "infracción_NOUN_cometido_ADJ", + "infracción_NOUN_disciplinario_ADJ", + "infracción_NOUN_leve_ADJ", + "infraestructura_NOUN_ferroviario_ADJ", + "infraestructura_NOUN_hidráulico_ADJ", + "infraestructura_NOUN_vial_ADJ", + "infraestructura_NOUN_viario_ADJ", + "infundir_VERB_confianza_NOUN", + "infundir_VERB_miedo_NOUN", + "ingeniero_NOUN_agrónomo_ADJ", + "ingeniero_NOUN_informático_ADJ", + "ingeniería_NOUN_eléctrico_ADJ", + "ingeniería_NOUN_genético_ADJ", + "ingeniería_NOUN_mecánico_ADJ", + "ingeniería_PROPN_civil_PROPN", + "ingenio_NOUN_azucarero_ADJ", + "ingente_ADJ_cantidad_NOUN", + "ingente_ADJ_esfuerzo_NOUN", + "ingente_ADJ_tarea_NOUN", + "ingerir_VERB_alimento_NOUN", + "ingerir_VERB_bebida_NOUN", + "ingesta_NOUN_diario_ADJ", + "ingrediente_NOUN_activo_ADJ", + "ingresar_VERB_ilegalmente_ADV", + "ingreso_NOUN_devengado_ADJ", + "ingreso_NOUN_diferido_ADJ", + "ingreso_NOUN_estimado_ADJ", + "ingreso_NOUN_generado_ADJ", + "ingreso_NOUN_per_ADP", + "ingreso_NOUN_percibido_ADJ", + "ingreso_NOUN_vario_ADJ", + "ingresos_PROPN_brutos_PROPN", + "ingresos_PROPN_públicos_PROPN", + "ingrid_PROPN_betancourt_PROPN", + "inhabilitación_NOUN_absoluto_ADJ", + "inhumano_ADJ_o_CCONJ", + "inhumar_VERB_hoy_ADV", + "inicial_ADJ_reembolsable_ADJ", + "iniciativa_NOUN_biotrade_PROPN", + "iniciativa_NOUN_emprendido_ADJ", + "iniciativa_NOUN_sdmx_PROPN", + "iniciativa_NOUN_trilateral_ADJ", + "iniciativa_PROPN_mérida_PROPN", + "inicio_PROPN_actualidad_PROPN", + "inicio_PROPN_cultura_PROPN", + "inicio_PROPN_deportes_PROPN", + "inicio_PROPN_noticias_PROPN", + "inicio_PROPN_secciones_PROPN", + "injerencia_NOUN_arbitrario_ADJ", + "injerencia_NOUN_externo_ADJ", + "injerencia_NOUN_indebido_ADJ", + "injusticia_NOUN_cometido_ADJ", + "injusticia_NOUN_histórico_ADJ", + "inmaculada_PROPN_concepción_PROPN", + "inmediatamente_ADV_después_ADV", + "inmediato_ADJ_perseguidor_NOUN", + "inmenso_ADJ_fortuna_NOUN", + "inmenso_ADJ_mayoría_NOUN", + "inmersión_NOUN_lingüístico_ADJ", + "inmigración_NOUN_clandestino_ADJ", + "inmigración_NOUN_ilegal_ADJ", + "inmigración_NOUN_irregular_ADJ", + "inmigrante_NOUN_clandestino_ADJ", + "inmigrante_NOUN_ilegal_ADJ", + "inmigrante_NOUN_indocumentado_ADJ", + "inmigrante_NOUN_irregular_ADJ", + "inminente_ADJ_llegada_NOUN", + "inmueble_NOUN_ubicado_ADJ", + "inmunidad_NOUN_diplomático_ADJ", + "inmunidad_NOUN_jurisdiccional_ADJ", + "inmunidad_NOUN_parlamentario_ADJ", + "inmunidad_NOUN_ratione_NOUN", + "inmunidad_NOUN_soberano_ADJ", + "inmunización_NOUN_gavi_PROPN", + "inmunización_NOUN_sistemático_ADJ", + "inmunodeficiencia_NOUN_adquirido_ADJ", + "inmunodeficiencia_NOUN_humano_ADJ", + "innovación_NOUN_introducido_ADJ", + "innovación_NOUN_tecnológico_ADJ", + "inquietud_NOUN_expresado_ADJ", + "inquietud_NOUN_manifestado_ADJ", + "inquietud_NOUN_planteado_ADJ", + "inscripción_NOUN_registral_ADJ", + "inscripción_NOUN_vencer_VERB", + "inseguridad_NOUN_alimentario_ADJ", + "inseguridad_NOUN_ciudadano_ADJ", + "inseguridad_NOUN_reinante_ADJ", + "inseminación_NOUN_artificial_ADJ", + "inser_NOUN_tú_PRON", + "inserción_NOUN_laboral_ADJ", + "inserción_NOUN_profesional_ADJ", + "insolvencia_NOUN_transfronterizo_ADJ", + "inspección_NOUN_ocular_ADJ", + "inspección_NOUN_unmovic_PROPN", + "inspección_PROPN_dci_PROPN", + "inspección_PROPN_general_PROPN", + "inspección_PROPN_titulado_ADJ", + "inspección_PROPN_técnica_PROPN", + "inspector_PROPN_general_PROPN", + "inspirar_VERB_confianza_NOUN", + "instalación_NOUN_portuario_ADJ", + "instalación_NOUN_prefabricada_ADJ", + "instalación_NOUN_recreativa_ADJ", + "instalment_PROPN_claims_PROPN", + "instalment_PROPN_of_PROPN", + "instalment_VERB_of_PROPN", + "instancia_NOUN_decisorio_ADJ", + "instancias_NOUN_del_DET", + "instar_VERB_encarecidamente_ADV", + "instar_VERB_enérgicamente_ADV", + "instead_PROPN_of_PROPN", + "instigación_NOUN_suyo_DET", + "institucional_PROPN_pri_PROPN", + "institucionalidad_NOUN_democrático_ADJ", + "instituciones_PROPN_democráticas_PROPN", + "instituciones_PROPN_europeo_ADJ", + "instituciones_PROPN_penitenciarias_PROPN", + "institución_NOUN_académico_ADJ", + "institución_NOUN_colaboradora_ADJ", + "institución_NOUN_correccional_ADJ", + "institución_PROPN_educativa_PROPN", + "institución_PROPN_nacional_PROPN", + "institute_PROPN_for_PROPN", + "institute_PROPN_of_PROPN", + "instituto_NOUN_costarricense_ADJ", + "instituto_NOUN_emisor_ADJ", + "instituto_NOUN_interamericano_ADJ", + "instituto_NOUN_interregional_ADJ", + "instituto_NOUN_pedagógico_ADJ", + "instituto_PROPN_anatómico_PROPN", + "instituto_PROPN_andaluz_PROPN", + "instituto_PROPN_armado_PROPN", + "instituto_PROPN_cervantes_PROPN", + "instituto_PROPN_colombiano_PROPN", + "instituto_PROPN_costarricense_PROPN", + "instituto_PROPN_cubano_PROPN", + "instituto_PROPN_electoral_PROPN", + "instituto_PROPN_estatal_PROPN", + "instituto_PROPN_federal_PROPN", + "instituto_PROPN_geofísico_PROPN", + "instituto_PROPN_geográfico_PROPN", + "instituto_PROPN_interamericano_ADJ", + "instituto_PROPN_interamericano_PROPN", + "instituto_PROPN_interregional_ADJ", + "instituto_PROPN_max_PROPN", + "instituto_PROPN_mexicano_PROPN", + "instituto_PROPN_monetario_PROPN", + "instituto_PROPN_municipal_PROPN", + "instituto_PROPN_médico_PROPN", + "instituto_PROPN_nacional_PROPN", + "instituto_PROPN_nicaragüense_ADJ", + "instituto_PROPN_nicaragüense_PROPN", + "instituto_PROPN_nóos_PROPN", + "instituto_PROPN_politécnico_PROPN", + "instituto_PROPN_provincial_PROPN", + "instituto_PROPN_salvadoreño_ADJ", + "instituto_PROPN_superior_PROPN", + "instituto_PROPN_tecnológico_PROPN", + "instituto_PROPN_universitario_PROPN", + "instituto_PROPN_valenciano_PROPN", + "instrucción_NOUN_administrativo_ADJ", + "instrucción_NOUN_impartida_ADJ", + "instrucción_PROPN_nº_PROPN", + "instrucción_PROPN_número_NOUN", + "instrucción_PROPN_número_PROPN", + "instrucción_PROPN_ufi_PROPN", + "instruir_VERB_sumario_NOUN", + "instrumento_NOUN_constitutivo_ADJ", + "instrumento_NOUN_jurídicamente_ADV", + "instrumento_PROPN_europeo_PROPN", + "insuficiencia_NOUN_cardiaco_ADJ", + "insuficiencia_NOUN_cardíaco_ADJ", + "insuficiencia_NOUN_ponderal_ADJ", + "insuficiencia_NOUN_renal_ADJ", + "insuficiencia_NOUN_respiratorio_ADJ", + "insuficientemente_ADV_representado_ADJ", + "insulto_NOUN_racista_ADJ", + "insumo_NOUN_agrícola_ADJ", + "insurance_PROPN_company_PROPN", + "integración_NOUN_centroamericano_ADJ", + "integración_NOUN_euroatlántico_ADJ", + "integración_NOUN_vertical_ADJ", + "integración_PROPN_económica_PROPN", + "integración_PROPN_social_PROPN", + "integrado_ADJ_mejorado_ADJ", + "integridad_NOUN_físico_ADJ", + "integridad_NOUN_moral_ADJ", + "integridad_NOUN_territorial_ADJ", + "intel_PROPN_corporation_PROPN", + "inteligencia_NOUN_artificial_ADJ", + "inteligencia_NOUN_emocional_ADJ", + "inteligencia_PROPN_artificial_PROPN", + "inteligencia_PROPN_cia_PROPN", + "inteligencia_PROPN_nacional_PROPN", + "intellectual_PROPN_property_PROPN", + "intelligence_PROPN_unit_PROPN", + "intencionalidad_NOUN_político_ADJ", + "intención_NOUN_manifestado_ADJ", + "intendente_NOUN_gustavo_PROPN", + "intendente_NOUN_martín_PROPN", + "intendente_NOUN_municipal_ADJ", + "intendente_PROPN_municipal_PROPN", + "intenso_ADJ_bombardeo_NOUN", + "intenso_ADJ_calor_NOUN", + "intenso_ADJ_frío_NOUN", + "intenso_ADJ_lluvia_NOUN", + "intenso_ADJ_nevada_NOUN", + "intenso_ADJ_precipitación_NOUN", + "intentar_VERB_asaltar_VERB", + "intentar_VERB_calmar_VERB", + "intentar_VERB_convencer_VERB", + "intentar_VERB_evadir_VERB", + "intentar_VERB_fugar_VERB", + "intentar_VERB_persuadir_VERB", + "intentar_VERB_reanimar_VERB", + "intentar_VERB_suicidar_VERB", + "intento_NOUN_deliberado_ADJ", + "intento_NOUN_desesperado_ADJ", + "intento_NOUN_fallido_ADJ", + "intento_NOUN_frustrado_ADJ", + "intentona_NOUN_golpista_ADJ", + "inter_PROPN_alia_PROPN", + "intercambiar_VERB_experiencia_NOUN", + "intercambiar_VERB_impresión_NOUN", + "intercambiar_VERB_información_NOUN", + "intercambiar_VERB_opinión_NOUN", + "intercambien_VERB_intercambien_VERB", + "interesado_NOUN_directo_ADJ", + "interfaith_NOUN_international_ADJ", + "interfaith_PROPN_international_PROPN", + "interfaz_NOUN_gráfico_ADJ", + "interior_ADJ_bruto_ADJ", + "interior_PROPN_alfredo_PROPN", + "interior_PROPN_aníbal_PROPN", + "interior_PROPN_florencio_PROPN", + "interior_PROPN_obras_PROPN", + "interior_PROPN_on_PROPN", + "interior_PROPN_rogelio_PROPN", + "interlocutor_NOUN_válido_ADJ", + "intermediación_NOUN_ilícito_ADJ", + "intermediate_PROPN_wti_PROPN", + "interministerial_ADJ_encargado_ADJ", + "internacional_ADJ_atd_ADJ", + "internacional_ADJ_cido_ADJ", + "internacional_ADJ_oaci_ADJ", + "internacional_ADJ_usaid_ADJ", + "internacional_NOUN_español_ADJ", + "internacional_PROPN_coi_PROPN", + "internacional_PROPN_cpi_PROPN", + "internacional_PROPN_fmi_PROPN", + "internacional_PROPN_iss_PROPN", + "internacional_PROPN_oaci_PROPN", + "internacional_PROPN_omi_PROPN", + "internacional_PROPN_uci_PROPN", + "internacional_PROPN_usaid_PROPN", + "internacionales_PROPN_esmas_PROPN", + "internacionalmente_ADV_aceptable_ADJ", + "internacionalmente_ADV_aceptado_ADJ", + "internacionalmente_ADV_acordado_ADJ", + "internacionalmente_ADV_comparable_ADJ", + "internacionalmente_ADV_convenida_ADJ", + "internacionalmente_ADV_convenido_ADJ", + "internacionalmente_ADV_ilícito_ADJ", + "internacionalmente_ADV_protegido_ADJ", + "internacionalmente_ADV_reconocido_ADJ", + "internamente_ADV_desplazado_ADJ", + "international_PROPN_affairs_PROPN", + "international_PROPN_alert_PROPN", + "international_PROPN_arbitration_PROPN", + "international_PROPN_association_PROPN", + "international_PROPN_business_PROPN", + "international_PROPN_center_PROPN", + "international_PROPN_commission_PROPN", + "international_PROPN_committee_PROPN", + "international_PROPN_community_PROPN", + "international_PROPN_cooperation_PROPN", + "international_PROPN_council_PROPN", + "international_PROPN_court_PROPN", + "international_PROPN_covenant_PROPN", + "international_PROPN_criminal_ADJ", + "international_PROPN_development_PROPN", + "international_PROPN_federation_PROPN", + "international_PROPN_group_PROPN", + "international_PROPN_herald_PROPN", + "international_PROPN_human_PROPN", + "international_PROPN_humanitarian_PROPN", + "international_PROPN_inc_PROPN", + "international_PROPN_investment_PROPN", + "international_PROPN_journal_PROPN", + "international_PROPN_labour_PROPN", + "international_PROPN_law_PROPN", + "international_PROPN_migration_PROPN", + "international_PROPN_network_PROPN", + "international_PROPN_organization_PROPN", + "international_PROPN_organizations_PROPN", + "international_PROPN_peace_PROPN", + "international_PROPN_society_PROPN", + "international_PROPN_trade_PROPN", + "internet_PROPN_archive_PROPN", + "internet_PROPN_explorer_PROPN", + "interno_ADJ_bruto_ADJ", + "interno_ADJ_bruto_NOUN", + "interno_PROPN_pbi_PROPN", + "interpretación_NOUN_erróneo_ADJ", + "interpretación_NOUN_restrictivo_ADJ", + "interpretación_NOUN_simultáneo_ADJ", + "interpretación_NOUN_uniforme_ADJ", + "interpretar_VERB_correctamente_ADV", + "interpretar_VERB_erróneamente_ADV", + "interrelación_NOUN_existente_ADJ", + "interrupción_NOUN_voluntario_ADJ", + "intervalo_NOUN_nuboso_ADJ", + "intervalo_NOUN_periódico_ADJ", + "intervalo_NOUN_regular_ADJ", + "intervención_NOUN_quirúrgico_ADJ", + "intervenir_VERB_militarmente_ADV", + "intervenir_VERB_quirúrgicamente_ADV", + "interés_NOUN_contrapuesto_ADJ", + "interés_NOUN_devengado_ADJ", + "interés_NOUN_mostrado_ADJ", + "interés_PROPN_cultural_PROPN", + "interés_PROPN_turístico_PROPN", + "into_ADJ_the_PROPN", + "into_PROPN_the_PROPN", + "intolerancia_NOUN_religioso_ADJ", + "intolerancia_PROPN_a_NOUN", + "intolerancia_PROPN_aprobado_ADJ", + "intrínsecamente_ADV_vinculado_ADJ", + "intérprete_NOUN_redactor_NOUN", + "intérprete_NOUN_traductor_NOUN", + "inundación_NOUN_repentino_ADJ", + "inundación_NOUN_sequía_NOUN", + "invención_NOUN_biotecnológica_ADJ", + "inventario_NOUN_anual_ADJ", + "inversamente_ADV_proporcional_ADJ", + "inversiones_PROPN_bei_PROPN", + "inversionista_NOUN_extranjero_ADJ", + "inversionista_NOUN_inscrito_ADJ", + "inversión_NOUN_extranjero_ADJ", + "inversión_PROPN_extranjera_PROPN", + "inversor_NOUN_extranjero_ADJ", + "investigaciones_PROPN_científicas_PROPN", + "investigaciones_PROPN_criminales_PROPN", + "investigaciones_PROPN_económicas_PROPN", + "investigaciones_PROPN_fbi_PROPN", + "investigaciones_PROPN_pdi_PROPN", + "investigaciones_PROPN_sociológicas_PROPN", + "investigación_NOUN_biomédico_ADJ", + "investigación_NOUN_científico_ADJ", + "investigación_NOUN_innocenti_ADJ", + "investigación_NOUN_unitar_PROPN", + "investigación_NOUN_unitar_VERB", + "investigación_PROPN_científica_PROPN", + "investigación_PROPN_criminal_PROPN", + "investigación_PROPN_desarrollo_PROPN", + "investigación_PROPN_judicial_PROPN", + "investigar_VERB_exhaustivamente_ADV", + "invitación_NOUN_cursado_ADJ", + "invocar_VERB_directamente_ADV", + "inyección_NOUN_letal_ADJ", + "inyectar_VERB_liquidez_NOUN", + "inácio_PROPN_lula_PROPN", + "inés_PROPN_arrimadas_PROPN", + "iphone_PROPN_g_PROPN", + "iphone_PROPN_plus_PROPN", + "ipod_PROPN_touch_PROPN", + "ips_PROPN_titel_PROPN", + "ipso_NOUN_facto_NOUN", + "ir_VERB_acompañado_ADJ", + "ir_VERB_hoof_VERB", + "ir_VERB_velzen_PROPN", + "iraní_ADJ_mahmud_PROPN", + "iraq_ADJ_irlanda_PROPN", + "iraq_ADJ_jamaica_PROPN", + "iraq_ADJ_jordania_PROPN", + "iraq_NOUN_jamahiriyo_ADJ", + "iraq_NOUN_unami_PROPN", + "iraq_NOUN_uniimog_NOUN", + "iraq_PROPN_unami_PROPN", + "irfan_PROPN_yildirim_PROPN", + "irlanda_PROPN_islandia_PROPN", + "irlanda_PROPN_italia_PROPN", + "iron_PROPN_maiden_PROPN", + "iron_PROPN_man_PROPN", + "irregularidad_NOUN_cometido_ADJ", + "irregularidad_NOUN_detectado_ADJ", + "is_ADP_the_PROPN", + "is_NOUN_aprobado_ADJ", + "is_PROPN_an_PROPN", + "is_PROPN_not_PROPN", + "is_PROPN_said_PROPN", + "is_PROPN_to_PROPN", + "isabel_PROPN_allende_PROPN", + "isabel_PROPN_ii_PROPN", + "isabel_PROPN_pantoja_PROPN", + "isla_NOUN_caimán_NOUN", + "isla_NOUN_caimán_PROPN", + "isla_NOUN_canarias_PROPN", + "isla_NOUN_canario_ADJ", + "isla_NOUN_caribeño_ADJ", + "isla_NOUN_comorana_NOUN", + "isla_NOUN_cook_NOUN", + "isla_NOUN_cook_PROPN", + "isla_NOUN_desierto_ADJ", + "isla_NOUN_falkland_ADJ", + "isla_NOUN_falkland_PROPN", + "isla_NOUN_faroe_PROPN", + "isla_NOUN_feroe_PROPN", + "isla_NOUN_habitado_ADJ", + "isla_NOUN_malvina_ADJ", + "isla_NOUN_malvina_NOUN", + "isla_NOUN_malvinas_PROPN", + "isla_NOUN_marshall_PROPN", + "isla_NOUN_periférico_ADJ", + "isla_NOUN_salomón_NOUN", + "isla_NOUN_salomón_PROPN", + "isla_NOUN_salomón_VERB", + "isla_NOUN_turco_ADJ", + "isla_NOUN_vírgenes_PROPN", + "isla_NOUN_vírgén_ADJ", + "isla_PROPN_mujeres_PROPN", + "islamic_PROPN_republic_PROPN", + "islamismo_NOUN_radical_ADJ", + "islamista_NOUN_radical_ADJ", + "islandia_PROPN_india_NOUN", + "islandia_PROPN_indonesia_PROPN", + "islandia_PROPN_irlanda_PROPN", + "islandia_PROPN_isla_NOUN", + "islandia_PROPN_israel_PROPN", + "islandia_PROPN_italia_PROPN", + "islandia_PROPN_letonia_PROPN", + "islandia_PROPN_liechtenstein_PROPN", + "islandia_PROPN_noruego_ADJ", + "islas_PROPN_baleares_PROPN", + "islas_PROPN_caimán_PROPN", + "islas_PROPN_canarias_PROPN", + "islas_PROPN_faroe_PROPN", + "islas_PROPN_feroe_PROPN", + "islas_PROPN_malvinas_PROPN", + "islas_PROPN_marshall_PROPN", + "islas_PROPN_salomón_PROPN", + "islas_PROPN_vírgenes_PROPN", + "islámico_ADJ_umma_PROPN", + "ismail_PROPN_omar_PROPN", + "israel_PROPN_italia_PROPN", + "israel_PROPN_micronesio_ADJ", + "israelí_ADJ_ariel_PROPN", + "israelí_ADJ_benjamin_PROPN", + "israelí_ADJ_ehud_PROPN", + "israelí_ADJ_sobrevolar_VERB", + "israelí_ADJ_violar_VERB", + "it_NOUN_is_NOUN", + "it_NOUN_is_PROPN", + "it_NOUN_señor_NOUN", + "it_NOUN_señora_PROPN", + "it_PROPN_is_PROPN", + "it_PROPN_was_NOUN", + "it_PROPN_was_PROPN", + "italia_PROPN_jamahiriya_PROPN", + "italia_PROPN_jamaica_PROPN", + "italia_PROPN_japón_PROPN", + "italia_PROPN_kazajstán_PROPN", + "italia_PROPN_letonia_PROPN", + "italiano_ADJ_silvio_PROPN", + "italiano_NOUN_fabio_PROPN", + "iulia_PROPN_antoanella_PROPN", + "iv_PROPN_v_PROPN", + "ivan_PROPN_shearer_PROPN", + "iván_PROPN_duque_PROPN", + "iván_PROPN_márquez_PROPN", + "izquierda_NOUN_abertzale_ADJ", + "izquierda_NOUN_radical_ADJ", + "izquierda_PROPN_democrática_PROPN", + "izquierda_PROPN_plural_PROPN", + "izquierda_PROPN_unida_PROPN", + "izquierda_PROPN_unitaria_PROPN", + "iñaki_PROPN_urdangarin_PROPN", + "iñigo_PROPN_urkullu_PROPN", + "j_PROPN_balvin_PROPN", + "ja_INTJ_ja_ADV", + "jack_PROPN_nicholson_PROPN", + "jack_PROPN_straw_PROPN", + "jacob_PROPN_zuma_PROPN", + "jacques_PROPN_chirac_PROPN", + "jacques_PROPN_delors_PROPN", + "jacques_PROPN_paul_PROPN", + "jaime_PROPN_alguersuari_PROPN", + "jaime_PROPN_lissavetzky_PROPN", + "jaime_PROPN_mayor_PROPN", + "jaime_PROPN_rodríguez_PROPN", + "jair_PROPN_bolsonaro_PROPN", + "jamahiriya_NOUN_árabe_ADJ", + "jamahiriya_PROPN_árabe_ADJ", + "jamahiriya_PROPN_árabe_PROPN", + "jamahiriyo_ADJ_árabe_ADJ", + "jamaica_PROPN_japón_PROPN", + "jamaica_PROPN_jordania_PROPN", + "jamaica_PROPN_kenya_PROPN", + "jamaica_PROPN_malasia_PROPN", + "james_PROPN_baker_PROPN", + "james_PROPN_bond_PROPN", + "james_PROPN_brown_PROPN", + "james_PROPN_cameron_PROPN", + "james_PROPN_morris_PROPN", + "james_PROPN_rodríguez_PROPN", + "james_PROPN_wolfensohn_PROPN", + "jamás_ADV_visto_ADJ", + "jamón_NOUN_ibérico_ADJ", + "jan_PROPN_egeland_PROPN", + "jan_PROPN_eliasson_PROPN", + "jan_PROPN_kavan_PROPN", + "jan_PROPN_pronk_PROPN", + "janeiro_PROPN_brasil_PROPN", + "janet_PROPN_napolitano_PROPN", + "japonés_ADJ_shinzo_PROPN", + "japón_PROPN_jordania_PROPN", + "japón_PROPN_kazajstán_PROPN", + "japón_PROPN_kenya_PROPN", + "japón_PROPN_letonia_PROPN", + "japón_PROPN_liechtenstein_PROPN", + "jardinero_NOUN_central_ADJ", + "jardín_NOUN_botánico_ADJ", + "jardín_NOUN_derecho_ADJ", + "jardín_NOUN_izquierdo_ADJ", + "jardín_NOUN_maternal_ADJ", + "jardín_NOUN_norte_ADJ", + "jardín_PROPN_botánico_PROPN", + "jared_PROPN_borgetti_PROPN", + "jartum_PROPN_república_PROPN", + "jaume_PROPN_matas_PROPN", + "javascript_PROPN_deshabilitado_ADJ", + "javi_PROPN_garcía_PROPN", + "javi_PROPN_martínez_PROPN", + "javier_PROPN_aguirre_PROPN", + "javier_PROPN_arenas_PROPN", + "javier_PROPN_bardem_PROPN", + "javier_PROPN_chicharito_PROPN", + "javier_PROPN_corral_PROPN", + "javier_PROPN_duarte_PROPN", + "javier_PROPN_fernández_PROPN", + "javier_PROPN_garcía_PROPN", + "javier_PROPN_gómez_PROPN", + "javier_PROPN_hernández_PROPN", + "javier_PROPN_iguacel_PROPN", + "javier_PROPN_lozano_PROPN", + "javier_PROPN_mascherano_PROPN", + "javier_PROPN_saviola_PROPN", + "javier_PROPN_sicilia_PROPN", + "javier_PROPN_solana_PROPN", + "javier_PROPN_vázquez_PROPN", + "javier_PROPN_zanetti_PROPN", + "jay_PROPN_carney_PROPN", + "jayantha_NOUN_dhanapala_PROPN", + "jean_PROPN_arnault_PROPN", + "jean_PROPN_claude_PROPN", + "jean_PROPN_marie_PROPN", + "jean_PROPN_monnet_PROPN", + "jean_PROPN_paul_PROPN", + "jean_PROPN_pierre_PROPN", + "jean_PROPN_ping_PROPN", + "jean_PROPN_ziegler_PROPN", + "jefatura_PROPN_departamental_PROPN", + "jefatura_PROPN_superior_PROPN", + "jefe_NOUN_comunal_ADJ", + "jefe_NOUN_delegacional_ADJ", + "jefe_NOUN_ejecutivo_ADJ", + "jefe_NOUN_guerrillero_ADJ", + "jefe_NOUN_negociador_ADJ", + "jefe_NOUN_policiaco_ADJ", + "jefe_PROPN_comunal_PROPN", + "jefes_PROPN_ejecutivos_PROPN", + "jeff_PROPN_bezos_PROPN", + "jeff_PROPN_sessions_PROPN", + "jefferson_PROPN_farfán_PROPN", + "jeffrey_PROPN_sachs_PROPN", + "jemer_NOUN_rojo_ADJ", + "jenie_PROPN_indonesia_PROPN", + "jenni_PROPN_rivera_PROPN", + "jennifer_PROPN_aniston_PROPN", + "jennifer_PROPN_lawrence_PROPN", + "jennifer_PROPN_lopez_PROPN", + "jennifer_PROPN_lópez_PROPN", + "jensen_VERB_jensen_VERB", + "jenson_PROPN_button_PROPN", + "jeque_NOUN_ahmed_PROPN", + "jeque_NOUN_hamad_PROPN", + "jeque_NOUN_hamad_VERB", + "jeque_NOUN_yassin_PROPN", + "jerarquía_NOUN_católico_ADJ", + "jerarquía_NOUN_constitucional_ADJ", + "jerarquía_NOUN_eclesiástico_ADJ", + "jerarquía_NOUN_normativo_ADJ", + "jeremy_PROPN_corbyn_PROPN", + "jerusalem_PROPN_post_PROPN", + "jerusalén_NOUN_oriental_ADJ", + "jerusalén_PROPN_este_PROPN", + "jerusalén_PROPN_oriental_ADJ", + "jerusalén_PROPN_oriental_PROPN", + "jessica_PROPN_alba_PROPN", + "jesús_PROPN_caldera_PROPN", + "jesús_PROPN_corona_PROPN", + "jesús_PROPN_gil_PROPN", + "jesús_PROPN_maría_PROPN", + "jesús_PROPN_montero_PROPN", + "jesús_PROPN_murillo_PROPN", + "jesús_PROPN_navas_PROPN", + "jesús_PROPN_ortega_PROPN", + "jesús_PROPN_ramírez_PROPN", + "jesús_PROPN_vázquez_PROPN", + "jesús_PROPN_zambrano_PROPN", + "jet_NOUN_privado_ADJ", + "jiang_PROPN_zemin_PROPN", + "jim_PROPN_carrey_PROPN", + "jimi_PROPN_hendrix_PROPN", + "jimmy_PROPN_carter_PROPN", + "jimmy_PROPN_morales_PROPN", + "joachim_PROPN_löw_PROPN", + "joan_PROPN_fernandez_PROPN", + "joan_PROPN_herrera_PROPN", + "joan_PROPN_laporta_PROPN", + "joan_PROPN_manuel_PROPN", + "joan_PROPN_miró_PROPN", + "joan_PROPN_plaza_PROPN", + "joan_PROPN_sebastian_PROPN", + "joaquín_PROPN_almunia_PROPN", + "joaquín_PROPN_caparrós_PROPN", + "joaquín_PROPN_gonzález_PROPN", + "joaquín_PROPN_guzmán_PROPN", + "joaquín_PROPN_lavín_PROPN", + "joaquín_PROPN_sabina_PROPN", + "jockey_PROPN_club_PROPN", + "joe_PROPN_biden_PROPN", + "joel_PROPN_campbell_PROPN", + "joel_PROPN_ortega_PROPN", + "johan_PROPN_cruyff_PROPN", + "johan_PROPN_verbeke_PROPN", + "johannesburgo_NOUN_sudáfrica_PROPN", + "johannesburgo_PROPN_sudáfrica_PROPN", + "john_PROPN_agyekum_PROPN", + "john_PROPN_bolton_PROPN", + "john_PROPN_dugard_PROPN", + "john_PROPN_garang_PROPN", + "john_PROPN_holmes_PROPN", + "john_PROPN_kelly_PROPN", + "john_PROPN_kennedy_PROPN", + "john_PROPN_kerry_PROPN", + "john_PROPN_lennon_PROPN", + "john_PROPN_mccain_PROPN", + "john_PROPN_terry_PROPN", + "john_PROPN_travolta_PROPN", + "john_PROPN_wayne_PROPN", + "johnny_PROPN_depp_PROPN", + "joint_NOUN_venture_NOUN", + "joint_PROPN_submission_PROPN", + "jonathan_PROPN_orozco_PROPN", + "jones_PROPN_parry_PROPN", + "jones_PROPN_subir_VERB", + "jonrón_NOUN_solitario_ADJ", + "jordania_PROPN_kazajstán_PROPN", + "jordania_PROPN_kenya_PROPN", + "jordania_PROPN_kuwait_PROPN", + "jordania_PROPN_madagascar_PROPN", + "jordania_PROPN_malasia_PROPN", + "jordi_PROPN_alba_PROPN", + "jordi_PROPN_hereu_PROPN", + "jordi_PROPN_pujol_PROPN", + "jordi_PROPN_sevilla_PROPN", + "jorge_PROPN_alarte_PROPN", + "jorge_PROPN_arreaza_PROPN", + "jorge_PROPN_batlle_PROPN", + "jorge_PROPN_bergoglio_PROPN", + "jorge_PROPN_busti_PROPN", + "jorge_PROPN_capitanich_PROPN", + "jorge_PROPN_domene_PROPN", + "jorge_PROPN_fernández_PROPN", + "jorge_PROPN_garbajosa_PROPN", + "jorge_PROPN_glas_PROPN", + "jorge_PROPN_hank_PROPN", + "jorge_PROPN_iván_PROPN", + "jorge_PROPN_lanata_PROPN", + "jorge_PROPN_lorenzo_PROPN", + "jorge_PROPN_luis_PROPN", + "jorge_PROPN_newbery_PROPN", + "jorge_PROPN_obeid_PROPN", + "jorge_PROPN_ramos_PROPN", + "jorge_PROPN_rial_PROPN", + "jorge_PROPN_rojas_PROPN", + "jorge_PROPN_sampaoli_PROPN", + "jorge_PROPN_taiana_PROPN", + "jorge_PROPN_telerman_PROPN", + "jorge_PROPN_triaca_PROPN", + "jorge_PROPN_valdano_PROPN", + "jorge_PROPN_vergara_PROPN", + "jornada_NOUN_dominical_ADJ", + "jornada_NOUN_festivo_ADJ", + "jornada_NOUN_inaugural_ADJ", + "jornada_NOUN_laboral_ADJ", + "jornada_NOUN_parcial_ADJ", + "jornada_PROPN_domingo_PROPN", + "jornada_PROPN_jueves_PROPN", + "jornada_PROPN_lunes_PROPN", + "jornada_PROPN_martes_NOUN", + "jornada_PROPN_miércoles_NOUN", + "jornada_PROPN_mundial_PROPN", + "jornada_PROPN_sábado_PROPN", + "jornada_PROPN_viernes_PROPN", + "jornalero_NOUN_agrícola_ADJ", + "jos_PROPN_ant_PROPN", + "jos_PROPN_luis_PROPN", + "joschka_PROPN_fischer_PROPN", + "jose_PROPN_luis_PROPN", + "jose_PROPN_mourinho_PROPN", + "josefina_PROPN_vázquez_PROPN", + "josep_PROPN_antoni_PROPN", + "josep_PROPN_borrell_PROPN", + "josep_PROPN_guardiola_PROPN", + "josep_PROPN_lluís_PROPN", + "josep_PROPN_maria_PROPN", + "josep_PROPN_maría_PROPN", + "josep_PROPN_piqué_PROPN", + "joseph_PROPN_blatter_PROPN", + "joseph_PROPN_kabila_PROPN", + "joseph_PROPN_kony_PROPN", + "joseph_PROPN_ratzinger_PROPN", + "joseph_PROPN_stiglitz_PROPN", + "josé_PROPN_acasuso_PROPN", + "josé_PROPN_alfredo_PROPN", + "josé_PROPN_alperovich_PROPN", + "josé_PROPN_antonio_PROPN", + "josé_PROPN_bengoa_PROPN", + "josé_PROPN_blanco_PROPN", + "josé_PROPN_bono_PROPN", + "josé_PROPN_bretón_PROPN", + "josé_PROPN_corral_PROPN", + "josé_PROPN_gregorio_PROPN", + "josé_PROPN_guadalupe_PROPN", + "josé_PROPN_ignacio_PROPN", + "josé_PROPN_luis_PROPN", + "josé_PROPN_luís_PROPN", + "josé_PROPN_manuel_PROPN", + "josé_PROPN_mari_PROPN", + "josé_PROPN_martí_PROPN", + "josé_PROPN_maría_PROPN", + "josé_PROPN_montilla_PROPN", + "josé_PROPN_mourinho_PROPN", + "josé_PROPN_mujica_PROPN", + "josé_PROPN_narro_PROPN", + "josé_PROPN_pekerman_PROPN", + "josé_PROPN_ramón_PROPN", + "josé_PROPN_saramago_PROPN", + "josé_PROPN_serra_PROPN", + "josé_PROPN_serrano_PROPN", + "josé_PROPN_sócrates_PROPN", + "josé_PROPN_tomás_PROPN", + "josé_PROPN_vasconcelos_PROPN", + "josé_PROPN_ángel_PROPN", + "journal_PROPN_du_PROPN", + "journal_PROPN_of_PROPN", + "joão_PROPN_bernardo_PROPN", + "jp_PROPN_morgan_PROPN", + "jpmorgan_PROPN_chase_PROPN", + "juan_PROPN_amarillo_PROPN", + "juan_PROPN_antonio_PROPN", + "juan_PROPN_arango_PROPN", + "juan_PROPN_aurich_PROPN", + "juan_PROPN_bautista_PROPN", + "juan_PROPN_bosch_PROPN", + "juan_PROPN_camilo_PROPN", + "juan_PROPN_carlos_PROPN", + "juan_PROPN_darthés_PROPN", + "juan_PROPN_domingo_PROPN", + "juan_PROPN_gabriel_PROPN", + "juan_PROPN_gelman_PROPN", + "juan_PROPN_guaidó_PROPN", + "juan_PROPN_ignacio_PROPN", + "juan_PROPN_josé_PROPN", + "juan_PROPN_justo_PROPN", + "juan_PROPN_manuel_PROPN", + "juan_PROPN_manzur_PROPN", + "juan_PROPN_mari_PROPN", + "juan_PROPN_martín_PROPN", + "juan_PROPN_mata_PROPN", + "juan_PROPN_montiño_PROPN", + "juan_PROPN_mónaco_PROPN", + "juan_PROPN_orlando_PROPN", + "juan_PROPN_pablo_PROPN", + "juan_PROPN_perón_PROPN", + "juan_PROPN_ramón_PROPN", + "juan_PROPN_román_PROPN", + "juan_PROPN_rulfo_PROPN", + "juan_PROPN_sabines_PROPN", + "juan_PROPN_santamaría_PROPN", + "juan_PROPN_schiaretti_PROPN", + "juan_PROPN_villoro_PROPN", + "juan_PROPN_xxiii_PROPN", + "juana_PROPN_chaos_PROPN", + "juande_PROPN_ramos_PROPN", + "jubilación_NOUN_anticipado_ADJ", + "jubilación_NOUN_diferido_ADJ", + "jubilación_NOUN_obligatorio_ADJ", + "jude_PROPN_law_PROPN", + "judicatura_PROPN_federal_PROPN", + "judicial_ADJ_recíproca_ADV", + "judicial_ADJ_recíproca_PROPN", + "judicial_ADJ_recíproco_ADJ", + "juego_NOUN_olímpicos_PROPN", + "juego_NOUN_online_ADJ", + "juego_NOUN_pirotécnico_ADJ", + "juego_NOUN_salvado_ADJ", + "juegos_PROPN_centroamericanos_PROPN", + "juegos_PROPN_deportivos_PROPN", + "juegos_PROPN_europeos_PROPN", + "juegos_PROPN_evita_PROPN", + "juegos_PROPN_nacionales_PROPN", + "juegos_PROPN_olímpicos_PROPN", + "juegos_PROPN_panamericanos_PROPN", + "juegos_PROPN_paralímpicos_PROPN", + "juegos_PROPN_suramericanos_PROPN", + "jueves_NOUN_santo_NOUN", + "juez_NOUN_baltasar_PROPN", + "juez_NOUN_garzón_PROPN", + "juez_NOUN_instructor_ADJ", + "juez_NOUN_instructor_NOUN", + "juez_NOUN_lego_ADJ", + "juez_NOUN_ruz_PROPN", + "jueza_NOUN_federal_ADJ", + "jueza_NOUN_maría_PROPN", + "jugada_NOUN_colectivo_ADJ", + "jugada_NOUN_individual_ADJ", + "juicio_NOUN_abreviado_ADJ", + "juicio_NOUN_imparcial_ADJ", + "juicio_NOUN_justo_ADJ", + "juicio_NOUN_oral_ADJ", + "juicio_NOUN_sumario_ADJ", + "juicio_PROPN_final_PROPN", + "jul_NOUN_efe_PROPN", + "julen_PROPN_lopetegui_PROPN", + "julia_PROPN_roberts_PROPN", + "julian_PROPN_assange_PROPN", + "julian_PROPN_hunte_PROPN", + "julieta_PROPN_venegas_PROPN", + "julio_PROPN_bocca_PROPN", + "julio_PROPN_borges_PROPN", + "julio_PROPN_cesar_PROPN", + "julio_PROPN_cobos_PROPN", + "julio_PROPN_cortázar_PROPN", + "julio_PROPN_césar_PROPN", + "julio_PROPN_grondona_PROPN", + "julio_PROPN_iglesias_PROPN", + "julio_PROPN_verne_PROPN", + "julián_PROPN_domínguez_PROPN", + "julián_PROPN_ercolini_PROPN", + "julián_PROPN_muñoz_PROPN", + "jun_NOUN_efe_PROPN", + "junta_NOUN_asesora_NOUN", + "junta_NOUN_directivo_ADJ", + "junta_NOUN_ejecutiva_PROPN", + "junta_NOUN_ejecutivo_ADJ", + "junta_NOUN_mixto_ADJ", + "junta_NOUN_vecinal_ADJ", + "junta_PROPN_central_PROPN", + "junta_PROPN_departamental_PROPN", + "junta_PROPN_directiva_PROPN", + "junta_PROPN_ejecutiva_PROPN", + "junta_PROPN_electoral_PROPN", + "junta_PROPN_local_PROPN", + "junta_PROPN_militar_PROPN", + "junta_PROPN_municipal_PROPN", + "juntas_PROPN_generales_PROPN", + "junto_ADJ_al_DET", + "juntos_PROPN_somos_PROPN", + "jurado_NOUN_calificador_ADJ", + "jurado_NOUN_compuesto_ADJ", + "jurado_NOUN_popular_ADJ", + "jurado_PROPN_nacional_PROPN", + "jurar_VERB_lealtad_NOUN", + "jurisdicción_NOUN_exclusivo_ADJ", + "jurisdicción_NOUN_extraterritorial_ADJ", + "jurisdicción_NOUN_universal_ADJ", + "jurisdicción_PROPN_sanitaria_PROPN", + "jurista_NOUN_demócrata_ADJ", + "jurídicamente_ADV_obligatorio_ADJ", + "jurídicamente_ADV_vinculante_ADJ", + "jus_NOUN_cogens_NOUN", + "jus_PROPN_cogens_ADJ", + "jus_PROPN_cogens_PROPN", + "justa_NOUN_deportivo_ADJ", + "justice_PROPN_and_PROPN", + "justicia_NOUN_penal_ADJ", + "justicia_NOUN_penal_PROPN", + "justicia_NOUN_restaurativo_ADJ", + "justicia_NOUN_restitutivo_ADJ", + "justicia_NOUN_retributivo_ADJ", + "justicia_NOUN_transicional_ADJ", + "justicia_PROPN_cij_PROPN", + "justicia_PROPN_csj_PROPN", + "justicia_PROPN_tsj_PROPN", + "justificación_NOUN_alguno_ADJ", + "justificación_NOUN_objetivo_ADJ", + "justin_PROPN_bieber_PROPN", + "justin_PROPN_timberlake_PROPN", + "justin_PROPN_trudeau_PROPN", + "justo_ADJ_duradero_ADJ", + "justo_ADV_detrás_ADV", + "juventud_PROPN_rebelde_PROPN", + "juventud_PROPN_unida_PROPN", + "juventudes_PROPN_socialistas_PROPN", + "juzgado_PROPN_central_PROPN", + "juzgado_PROPN_federal_PROPN", + "juzgado_PROPN_n_PROPN", + "juzgado_PROPN_penal_PROPN", + "juzgar_VERB_aut_PROPN", + "juárez_PROPN_chihuahua_PROPN", + "kafr_PROPN_shuba_PROPN", + "kai_PROPN_eide_PROPN", + "kale_NOUN_borroka_ADJ", + "kalliopi_PROPN_koufa_PROPN", + "kamalesh_PROPN_sharma_PROPN", + "kampala_PROPN_uganda_PROPN", + "kampuchea_PROPN_democrática_PROPN", + "kansas_PROPN_city_PROPN", + "kanye_PROPN_west_PROPN", + "karim_PROPN_benzema_PROPN", + "karl_PROPN_lagerfeld_PROPN", + "karl_PROPN_marx_PROPN", + "karol_PROPN_wojtyla_PROPN", + "karpasia_PROPN_cabo_NOUN", + "kaspersky_PROPN_lab_PROPN", + "kate_PROPN_middleton_PROPN", + "kate_PROPN_moss_PROPN", + "kate_PROPN_winslet_PROPN", + "katie_PROPN_holmes_PROPN", + "katmandú_PROPN_nepal_PROPN", + "katy_PROPN_perry_PROPN", + "kazajstán_NOUN_kirguistán_ADJ", + "kazajstán_NOUN_kirguistán_PROPN", + "kazajstán_PROPN_kenya_PROPN", + "kazajstán_PROPN_kirguistán_ADJ", + "kazajstán_PROPN_kirguistán_PROPN", + "kazajstán_PROPN_letonia_PROPN", + "keiko_PROPN_fujimori_PROPN", + "keith_PROPN_richards_PROPN", + "kenya_PROPN_kirguistán_PROPN", + "kenya_PROPN_kuwait_ADJ", + "kenya_PROPN_kuwait_PROPN", + "kenya_PROPN_lesotho_PROPN", + "kenya_PROPN_letonia_PROPN", + "kenya_PROPN_líbano_PROPN", + "kenya_PROPN_madagascar_PROPN", + "kenya_PROPN_malasia_PROPN", + "kenzo_DET_oshima_NOUN", + "kevin_PROPN_durant_PROPN", + "kevin_PROPN_garnett_PROPN", + "kevin_PROPN_spacey_PROPN", + "keylor_PROPN_navas_PROPN", + "keír_VERB_prendergast_NUM", + "kfar_PROPN_kila_PROPN", + "khalil_PROPN_egipto_PROPN", + "khalil_PROPN_sr_PROPN", + "khan_PROPN_pakistán_PROPN", + "khan_PROPN_younis_PROPN", + "khan_PROPN_yunis_PROPN", + "khane_PROPN_secretario_NOUN", + "khmer_PROPN_rouge_PROPN", + "kilo_NOUN_gramo_NOUN", + "kilovatio_NOUN_hora_NOUN", + "kilómetro_NOUN_cuadrado_ADJ", + "kilómetro_NOUN_cuadrado_NOUN", + "kilómetro_NOUN_milla_NOUN", + "kilómetro_NOUN_recorrido_ADJ", + "kim_PROPN_dotcom_PROPN", + "kim_PROPN_il_PROPN", + "kim_PROPN_jong_PROPN", + "kim_PROPN_kardashian_PROPN", + "kimi_PROPN_raikkonen_PROPN", + "kindle_PROPN_fire_PROPN", + "king_PROPN_kong_PROPN", + "king_PROPN_of_PROPN", + "kingdom_PROPN_of_PROPN", + "kingston_PROPN_jamaica_PROPN", + "kirguistán_PROPN_kuwait_ADV", + "kirguistán_PROPN_kuwait_PROPN", + "kirguistán_PROPN_letonia_PROPN", + "kirguistán_PROPN_república_PROPN", + "kiribati_PROPN_nauru_PROPN", + "kivu_NOUN_meridional_ADJ", + "kivu_PROPN_meridional_ADJ", + "kivu_PROPN_septentrional_ADJ", + "kluwer_PROPN_law_PROPN", + "kobe_PROPN_bryant_PROPN", + "kobe_PROPN_japón_PROPN", + "kofi_PROPN_annan_PROPN", + "kofi_PROPN_annar_VERB", + "kolby_PROPN_noruega_PROPN", + "kosovo_PROPN_kfor_PROPN", + "kosovo_PROPN_multiétnico_ADJ", + "kosovo_PROPN_unmik_PROPN", + "kosovska_PROPN_mitrovico_ADJ", + "kph_NOUN_mph_NOUN", + "kristen_PROPN_stewart_PROPN", + "ku_PROPN_klux_PROPN", + "kuala_NOUN_lumpur_PROPN", + "kuala_PROPN_lumpur_PROPN", + "kuchinsky_PROPN_ucrania_PROPN", + "kufpec_PROPN_tunisia_PROPN", + "kumalo_PROPN_sudáfrica_PROPN", + "kun_PROPN_agüero_PROPN", + "kung_PROPN_fu_PROPN", + "kurdistán_PROPN_iraquí_ADJ", + "kurdistán_PROPN_pkk_PROPN", + "kurt_PROPN_cobain_PROPN", + "kuwait_ADJ_kirguistán_PROPN", + "kuwait_ADJ_unikom_NOUN", + "kuwait_ADJ_unikom_PROPN", + "kuwait_ADV_lesotho_PROPN", + "kuwait_NOUN_penetrar_VERB", + "kuwait_PROPN_atravesar_VERB", + "kuwait_PROPN_lesotho_PROPN", + "kuwait_PROPN_letonia_PROPN", + "kuwait_PROPN_líbano_PROPN", + "kuwait_PROPN_malasia_PROPN", + "kuwaitíes_PROPN_penetrar_VERB", + "kylian_PROPN_mbappé_PROPN", + "kylie_PROPN_minogue_PROPN", + "kyoto_PROPN_cp_PROPN", + "kyoto_PROPN_fccc_NOUN", + "labio_NOUN_inferior_ADJ", + "labio_NOUN_rojo_ADJ", + "labor_NOUN_analítico_ADJ", + "labor_NOUN_llevada_ADJ", + "labor_NOUN_realizado_ADJ", + "laboratorio_NOUN_clandestino_ADJ", + "laboratorio_NOUN_farmacéutico_ADJ", + "laboratorio_NOUN_forense_ADJ", + "lacalle_PROPN_pou_PROPN", + "lack_PROPN_of_PROPN", + "lactancia_NOUN_materno_ADJ", + "lactancia_NOUN_natural_ADJ", + "lado_NOUN_izquierdo_ADJ", + "lado_NOUN_opuesto_ADJ", + "lady_PROPN_catherine_PROPN", + "lady_PROPN_di_PROPN", + "lady_PROPN_gaga_PROPN", + "lago_NOUN_chad_PROPN", + "lago_NOUN_titicaca_PROPN", + "lago_PROPN_puelo_PROPN", + "lagun_PROPN_aro_PROPN", + "laguna_NOUN_existente_ADJ", + "lahad_NOUN_disparar_VERB", + "lakhdar_PROPN_brahimi_PROPN", + "lali_PROPN_espósito_PROPN", + "laliga_PROPN_santander_PROPN", + "lamentable_ADJ_suceso_NOUN", + "lamentar_VERB_profundamente_ADV", + "lamento_NOUN_profundamente_ADV", + "lance_PROPN_armstrong_PROPN", + "lancha_NOUN_militar_ADJ", + "lancha_NOUN_patrullera_NOUN", + "lancha_NOUN_rápido_ADJ", + "lancry_PROPN_representante_PROPN", + "land_PROPN_rover_PROPN", + "landmine_PROPN_action_PROPN", + "landon_PROPN_donovan_PROPN", + "lanka_PROPN_sudáfrica_PROPN", + "lanka_PROPN_sudán_PROPN", + "lanzador_NOUN_derecho_ADJ", + "lanzar_VERB_cohete_NOUN", + "lanzar_VERB_granada_NOUN", + "lanzar_VERB_piedra_NOUN", + "lao_PROPN_letonia_PROPN", + "lao_PROPN_líbano_PROPN", + "lao_PROPN_república_NOUN", + "lao_PROPN_república_PROPN", + "laredo_PROPN_texas_PROPN", + "larga_ADJ_cola_NOUN", + "larga_ADJ_distancia_NOUN", + "larga_ADJ_espera_NOUN", + "larga_ADJ_fila_NOUN", + "larga_ADJ_jornada_NOUN", + "larga_NOUN_data_PROPN", + "larga_NOUN_datar_VERB", + "larga_PROPN_data_PROPN", + "larga_PROPN_datar_VERB", + "largamente_ADV_esperado_ADJ", + "largo_ADJ_cabellera_NOUN", + "largo_ADJ_data_NOUN", + "largo_ADJ_distancia_NOUN", + "largo_ADJ_duración_NOUN", + "largo_ADJ_etcétera_NOUN", + "largo_ADJ_historial_NOUN", + "largo_ADJ_plazo_NOUN", + "largo_ADJ_rato_NOUN", + "largo_ADJ_trayectoria_NOUN", + "largo_ADJ_trecho_NOUN", + "largo_NOUN_del_DET", + "larry_PROPN_page_PROPN", + "lateral_NOUN_brasileño_ADJ", + "lateral_NOUN_derecho_ADJ", + "lateral_NOUN_izquierdo_ADJ", + "lateral_NOUN_zurdo_ADJ", + "latin_PROPN_america_PROPN", + "latin_PROPN_american_PROPN", + "latin_PROPN_grammy_PROPN", + "latitud_NOUN_norte_ADJ", + "latitud_NOUN_norte_PROPN", + "laudo_NOUN_arbitral_ADJ", + "laura_PROPN_chinchilla_PROPN", + "laurent_PROPN_fabius_PROPN", + "laurent_PROPN_gbagbo_PROPN", + "laurent_PROPN_nkunda_PROPN", + "laurin_NOUN_canadá_PROPN", + "laurita_PROPN_fernández_PROPN", + "lauterpacht_PROPN_ed_PROPN", + "lava_PROPN_jato_PROPN", + "lavar_VERB_ropa_NOUN", + "lavrov_PROPN_federación_PROPN", + "law_PROPN_amsterdam_PROPN", + "law_PROPN_and_CCONJ", + "law_PROPN_and_PROPN", + "law_PROPN_ed_PROPN", + "law_PROPN_in_ADP", + "law_PROPN_journal_PROPN", + "law_PROPN_of_PROPN", + "law_PROPN_págs_PROPN", + "law_PROPN_review_PROPN", + "lawn_PROPN_tennis_PROPN", + "lazo_NOUN_familiar_ADJ", + "lazo_NOUN_histórico_ADJ", + "leal_ADJ_saber_NOUN", + "lealtad_NOUN_institucional_ADJ", + "leandro_PROPN_alem_PROPN", + "leandro_PROPN_despouy_PROPN", + "leb_PROPN_oro_PROPN", + "lebron_PROPN_james_PROPN", + "lección_NOUN_aprendido_ADJ", + "lección_NOUN_extraído_ADJ", + "leche_NOUN_materno_ADJ", + "lecho_NOUN_marino_ADJ", + "lector_ADJ_querer_VERB", + "lectura_NOUN_escritura_NOUN", + "led_PROPN_zeppelin_PROPN", + "legación_NOUN_diplomático_ADJ", + "legado_NOUN_histórico_ADJ", + "legal_ADJ_materials_PROPN", + "legalmente_ADV_autorizado_ADJ", + "legalmente_ADV_constituido_ADJ", + "legalmente_ADV_reconocido_ADJ", + "legalmente_ADV_vinculante_ADJ", + "legislación_NOUN_antiterrorista_ADJ", + "legislación_NOUN_vigente_ADJ", + "legislación_PROPN_general_PROPN", + "legislador_NOUN_demócrata_ADJ", + "legislador_NOUN_oficialista_ADJ", + "legislador_NOUN_porteño_ADJ", + "legislador_NOUN_republicano_ADJ", + "legislar_VERB_mejor_ADV", + "legislatura_PROPN_porteño_ADJ", + "legislatura_PROPN_provincial_ADJ", + "legitimidad_NOUN_democrático_ADJ", + "legítimamente_ADV_constituido_ADJ", + "legítimo_ADJ_aspiración_NOUN", + "legítimo_ADJ_defensa_NOUN", + "lehendakari_NOUN_iñigo_PROPN", + "lehendakari_NOUN_patxi_PROPN", + "lehman_PROPN_brothers_PROPN", + "leicester_PROPN_city_PROPN", + "leire_PROPN_pajín_PROPN", + "lejano_ADJ_oriente_NOUN", + "lejano_ADJ_oriente_PROPN", + "lejano_PROPN_oriente_PROPN", + "lengua_NOUN_castellano_ADJ", + "lengua_NOUN_cooficial_ADJ", + "lengua_NOUN_hablado_ADJ", + "lengua_NOUN_inglés_ADJ", + "lengua_NOUN_materna_ADJ", + "lengua_NOUN_materno_ADJ", + "lengua_NOUN_minoritario_ADJ", + "lengua_NOUN_nativo_ADJ", + "lengua_NOUN_portugués_ADJ", + "lengua_NOUN_vehicular_ADJ", + "lengua_PROPN_española_PROPN", + "lenguaje_NOUN_corporal_ADJ", + "lenguaje_NOUN_sencillo_ADJ", + "lenin_PROPN_moreno_PROPN", + "lenín_PROPN_moreno_PROPN", + "leo_PROPN_franco_PROPN", + "leo_PROPN_messi_PROPN", + "leona_NOUN_sudáfrica_PROPN", + "leona_PROPN_singapur_PROPN", + "leona_PROPN_sri_PROPN", + "leonard_PROPN_cohen_PROPN", + "leonardo_PROPN_da_ADP", + "leonardo_PROPN_da_PROPN", + "leonardo_PROPN_dicaprio_PROPN", + "leonel_PROPN_fernández_PROPN", + "leonel_PROPN_godoy_PROPN", + "leopoldo_PROPN_lópez_PROPN", + "lesa_ADJ_humanidad_NOUN", + "lesa_ADJ_humanidad_PROPN", + "lesa_NOUN_humanidad_NOUN", + "lesbiana_NOUN_gay_NOUN", + "lesión_NOUN_causado_ADJ", + "lesión_NOUN_cerebral_ADJ", + "lesión_NOUN_corporal_ADJ", + "lesión_NOUN_leve_ADJ", + "lesión_NOUN_medular_ADJ", + "lesión_NOUN_muscular_ADJ", + "lesión_NOUN_sufrido_ADJ", + "lesotho_PROPN_jamahiriya_NOUN", + "lesotho_PROPN_letonia_PROPN", + "lesotho_PROPN_liberia_PROPN", + "lesotho_PROPN_líbano_PROPN", + "lesotho_PROPN_madagascar_PROPN", + "lesotho_PROPN_malawi_NOUN", + "letonia_PROPN_liberia_PROPN", + "letonia_PROPN_liechtenstein_PROPN", + "letonia_PROPN_lituania_PROPN", + "letonia_PROPN_luxemburgo_PROPN", + "letonia_PROPN_líbano_PROPN", + "letra_NOUN_mayúsculo_ADJ", + "letra_NOUN_muerto_ADJ", + "levantamiento_NOUN_popular_ADJ", + "levantar_VERB_ampolla_NOUN", + "levantar_VERB_barricada_NOUN", + "leve_ADJ_descenso_NOUN", + "leve_ADJ_mejoría_NOUN", + "levemente_ADV_superior_ADJ", + "levitte_PROPN_francia_PROPN", + "lewis_PROPN_hamilton_PROPN", + "lex_NOUN_specialis_PROPN", + "lex_PROPN_specialis_PROPN", + "ley_NOUN_antitabaco_ADJ", + "ley_NOUN_cherámico_ADJ", + "ley_NOUN_marcial_ADJ", + "ley_NOUN_nº_NUM", + "ley_NOUN_nº_PROPN", + "ley_NOUN_sinde_PROPN", + "ley_NOUN_torricelli_PROPN", + "ley_PROPN_antitabaco_PROPN", + "ley_PROPN_electoral_PROPN", + "ley_PROPN_federal_PROPN", + "ley_PROPN_fundamental_PROPN", + "ley_PROPN_n_PROPN", + "ley_PROPN_nº_PROPN", + "ley_PROPN_orgánica_PROPN", + "ley_PROPN_sinde_PROPN", + "leyenda_NOUN_urbano_ADJ", + "leyla_PROPN_zana_PROPN", + "leído_ADJ_conjuntamente_ADV", + "leído_ADJ_juntamente_ADV", + "león_PROPN_gieco_PROPN", + "león_PROPN_guanajuato_PROPN", + "león_PROPN_xiii_PROPN", + "li_PROPN_keqiang_PROPN", + "libanés_ADJ_penetrar_VERB", + "libanés_ADJ_sobrevolar_VERB", + "liberación_NOUN_anticipado_ADJ", + "liberación_NOUN_fnl_PROPN", + "liberación_NOUN_incondicional_ADJ", + "liberación_NOUN_inmediato_ADJ", + "liberación_PROPN_dominicana_PROPN", + "liberación_PROPN_nacional_PROPN", + "liberales_PROPN_demócratas_PROPN", + "liberalización_NOUN_progresivo_ADJ", + "liberia_PROPN_jamahiriya_PROPN", + "liberia_PROPN_liechtenstein_PROPN", + "liberia_PROPN_madagascar_PROPN", + "liberia_PROPN_unmil_NOUN", + "liberia_PROPN_unmil_PROPN", + "liberia_PROPN_unomil_PROPN", + "libertad_NOUN_condicional_ADJ", + "libertad_NOUN_fundamental_ADJ", + "libertad_NOUN_proclamado_ADJ", + "libertad_NOUN_vigilado_ADJ", + "libertad_PROPN_digital_PROPN", + "libertad_PROPN_duradero_ADJ", + "libertades_PROPN_civiles_PROPN", + "libertades_PROPN_fundamentales_PROPN", + "libertades_PROPN_públicas_PROPN", + "libia_PROPN_jamaica_PROPN", + "libia_PROPN_popular_ADJ", + "libio_ADJ_jordania_PROPN", + "libio_ADJ_kenya_PROPN", + "libio_ADJ_liechtenstein_PROPN", + "libio_ADJ_madagascar_PROPN", + "libio_ADJ_malasia_PROPN", + "libra_NOUN_esterlina_NOUN", + "libra_NOUN_esterlino_ADJ", + "libras_NOUN_esterlina_NOUN", + "libras_NOUN_esterlino_ADJ", + "libras_NOUN_sirio_ADJ", + "libre_ADJ_absolución_NOUN", + "libre_ADJ_albedrío_NOUN", + "libre_ADJ_circulación_NOUN", + "libre_ADJ_comercio_PROPN", + "libre_ADJ_compensatorio_ADJ", + "libre_ADJ_determinación_NOUN", + "libre_PROPN_europea_PROPN", + "libremente_ADV_concertado_ADJ", + "libremente_ADV_elegido_ADJ", + "libremente_ADV_escogido_ADJ", + "libremente_ADV_expresado_ADJ", + "libro_NOUN_editado_ADJ", + "libro_NOUN_ilustrado_ADJ", + "libro_PROPN_blanco_PROPN", + "libro_PROPN_guinness_PROPN", + "libro_PROPN_verde_PROPN", + "licencia_NOUN_concedido_ADJ", + "licencia_NOUN_parental_ADJ", + "licitación_NOUN_restringido_ADJ", + "liechtenstein_PROPN_lituania_PROPN", + "liechtenstein_PROPN_luxemburgo_PROPN", + "life_PROPN_of_PROPN", + "liga_NOUN_awami_PROPN", + "liga_NOUN_inglés_ADJ", + "liga_NOUN_premier_PROPN", + "liga_PROPN_acb_PROPN", + "liga_PROPN_americana_PROPN", + "liga_PROPN_arabe_PROPN", + "liga_PROPN_bbva_PROPN", + "liga_PROPN_deportiva_PROPN", + "liga_PROPN_endesa_PROPN", + "liga_PROPN_española_PROPN", + "liga_PROPN_femenina_PROPN", + "liga_PROPN_mexicana_PROPN", + "liga_PROPN_mx_PROPN", + "liga_PROPN_premier_PROPN", + "liga_PROPN_profesional_PROPN", + "liga_PROPN_santander_PROPN", + "liga_PROPN_águila_PROPN", + "liga_PROPN_árabe_PROPN", + "ligamento_NOUN_cruzado_ADJ", + "ligas_PROPN_mayores_PROPN", + "ligas_PROPN_menores_PROPN", + "ligeramente_ADV_inferior_ADJ", + "ligeramente_ADV_superior_ADJ", + "ligero_ADJ_ascenso_NOUN", + "ligero_ADJ_descenso_NOUN", + "ligero_ADJ_ilícito_ADJ", + "lima_PROPN_metropolitana_PROPN", + "lima_PROPN_perú_PROPN", + "limar_VERB_aspereza_NOUN", + "limitación_NOUN_impuesto_ADJ", + "limitación_NOUN_presupuestaria_ADJ", + "limpieza_NOUN_remoción_NOUN", + "limpieza_NOUN_étnico_ADJ", + "limpio_ADJ_mdl_PROPN", + "lin_PROPN_secretario_NOUN", + "linaje_NOUN_humano_ADJ", + "linaje_NOUN_u_CCONJ", + "lindsay_PROPN_lohan_PROPN", + "line_PROPN_rafaela_PROPN", + "lintonen_PROPN_finlandia_PROPN", + "lionel_PROPN_messi_PROPN", + "lionel_PROPN_scaloni_PROPN", + "liquidar_VERB_ascender_VERB", + "lira_NOUN_italiano_ADJ", + "lisandro_PROPN_lópez_PROPN", + "list_PROPN_of_PROPN", + "lista_NOUN_consolidado_ADJ", + "lista_NOUN_indicativo_ADJ", + "lista_NOUN_preliminar_ADJ", + "literatura_NOUN_infantil_ADJ", + "literatura_NOUN_latinoamericano_ADJ", + "litoral_NOUN_mediterráneo_ADJ", + "litoral_PROPN_on_ADJ", + "litro_NOUN_diario_ADJ", + "lituania_PROPN_luxemburgo_PROPN", + "lituania_PROPN_madagascar_PROPN", + "lituania_PROPN_malasia_PROPN", + "lituania_PROPN_malta_PROPN", + "lituania_PROPN_polonia_PROPN", + "liu_PROPN_xiaobo_PROPN", + "liu_PROPN_zhenmin_PROPN", + "lla_PROPN_yo_PRON", + "llamada_NOUN_alertar_VERB", + "llamada_NOUN_anónimo_ADJ", + "llamada_NOUN_telefónico_ADJ", + "llamado_ADJ_operación_PROPN", + "llamado_NOUN_telefónico_ADJ", + "llamamiento_NOUN_consolidado_ADJ", + "llamamiento_NOUN_hecho_ADJ", + "llamamiento_NOUN_interinstitucional_ADJ", + "llamamiento_NOUN_unificado_ADJ", + "llamamiento_NOUN_urgente_ADJ", + "llamar_VERB_poderosamente_ADV", + "llenar_VERB_vacante_NOUN", + "lleno_NOUN_total_ADJ", + "llevado_ADJ_adelante_ADV", + "llevais_VERB_llevais_VERB", + "llevar_VERB_acabo_NOUN", + "llevar_VERB_adelante_ADV", + "llevar_VERB_aparejado_ADJ", + "llorar_VERB_amargamente_ADV", + "lluvia_NOUN_aislado_ADJ", + "lluvia_NOUN_caído_ADJ", + "lluvia_NOUN_disperso_ADJ", + "lluvia_NOUN_débil_ADJ", + "lluvia_NOUN_intenso_ADJ", + "lluvia_NOUN_moderado_ADJ", + "lluvia_NOUN_torrencial_ADJ", + "lluvia_NOUN_ácido_ADJ", + "lobby_NOUN_europeo_ADJ", + "lobo_NOUN_marino_ADJ", + "lobo_NOUN_solitario_ADJ", + "lobos_PROPN_buap_PROPN", + "local_ADJ_gmt_NOUN", + "local_ADJ_gmt_PROPN", + "local_NOUN_arrendado_ADJ", + "local_NOUN_bailable_ADJ", + "local_NOUN_nocturno_ADJ", + "localidad_NOUN_alicantino_ADJ", + "localidad_NOUN_bonaerense_ADJ", + "localidad_NOUN_cordobés_ADJ", + "localidad_NOUN_costero_ADJ", + "localidad_NOUN_guipuzcoano_ADJ", + "localidad_NOUN_madrileño_ADJ", + "localidad_NOUN_malagueño_ADJ", + "localidad_NOUN_natal_ADJ", + "localidad_NOUN_navarro_ADJ", + "localidad_NOUN_sevillano_ADJ", + "localidad_NOUN_valenciano_ADJ", + "localidad_NOUN_vizcaíno_ADJ", + "localidad_NOUN_zaragozano_ADJ", + "localización_NOUN_geográfico_ADJ", + "localmente_ADV_fuerte_ADJ", + "localmente_ADV_moderado_ADJ", + "lock_PROPN_sudáfrica_PROPN", + "lockheed_PROPN_martin_PROPN", + "login_PROPN_to_PROPN", + "logro_NOUN_alcanzado_ADJ", + "logro_NOUN_conseguido_ADJ", + "logro_NOUN_obtenido_ADJ", + "logro_NOUN_previsto_ADJ", + "london_PROPN_school_PROPN", + "london_PROPN_united_PROPN", + "londres_PROPN_ap_PROPN", + "londres_PROPN_inglaterra_PROPN", + "londres_PROPN_reuters_PROPN", + "long_PROPN_beach_PROPN", + "long_PROPN_island_PROPN", + "lord_NOUN_ashdown_NOUN", + "lord_NOUN_colville_PROPN", + "lord_NOUN_gray_PROPN", + "lord_NOUN_william_PROPN", + "lord_PROPN_gray_PROPN", + "lorenzo_PROPN_córdova_PROPN", + "lote_NOUN_baldío_ADJ", + "lotería_PROPN_nacional_PROPN", + "lotus_PROPN_notes_PROPN", + "louis_PROPN_henkin_PROPN", + "louis_PROPN_joinet_PROPN", + "louis_PROPN_michel_PROPN", + "louis_PROPN_van_PROPN", + "louis_PROPN_vuitton_PROPN", + "louise_PROPN_arbour_PROPN", + "louise_PROPN_fréchette_PROPN", + "lourdes_PROPN_flores_PROPN", + "low_NOUN_cost_NOUN", + "loya_PROPN_jirga_ADJ", + "loya_PROPN_jirga_PROPN", + "lpez_PROPN_obrador_PROPN", + "lr_NOUN_nº_NOUN", + "ltimo_ADJ_ao_NOUN", + "lucas_PROPN_lobos_PROPN", + "lucas_PROPN_vázquez_PROPN", + "lucha_NOUN_antidroga_ADJ", + "lucha_NOUN_antitabáquico_ADJ", + "lucha_NOUN_antiterrorista_ADJ", + "lucha_NOUN_contra_ADP", + "lucha_NOUN_intestino_ADJ", + "lucha_PROPN_contra_ADP", + "lucha_PROPN_contra_PROPN", + "luchar_VERB_contra_ADP", + "luchar_VERB_eficazmente_ADV", + "luciano_PROPN_pavarotti_PROPN", + "lucio_PROPN_gutiérrez_PROPN", + "lucir_VERB_san_PROPN", + "lucir_VERB_senegal_NOUN", + "lucro_NOUN_cesante_ADJ", + "lugar_NOUN_preeminente_ADJ", + "lugar_NOUN_preponderante_ADJ", + "luis_PROPN_abinader_PROPN", + "luis_PROPN_alberto_PROPN", + "luis_PROPN_alfonso_PROPN", + "luis_PROPN_almagro_PROPN", + "luis_PROPN_aragonés_PROPN", + "luis_PROPN_barrionuevo_PROPN", + "luis_PROPN_buñuel_PROPN", + "luis_PROPN_bárcenas_PROPN", + "luis_PROPN_caputo_PROPN", + "luis_PROPN_castañeda_PROPN", + "luis_PROPN_donaldo_PROPN", + "luis_PROPN_echeverría_PROPN", + "luis_PROPN_enrique_PROPN", + "luis_PROPN_ernesto_PROPN", + "luis_PROPN_fabiano_PROPN", + "luis_PROPN_felipe_PROPN", + "luis_PROPN_fernando_PROPN", + "luis_PROPN_figo_PROPN", + "luis_PROPN_fonsi_PROPN", + "luis_PROPN_garcía_PROPN", + "luis_PROPN_juez_PROPN", + "luis_PROPN_lacalle_PROPN", + "luis_PROPN_miguel_PROPN", + "luis_PROPN_milan_PROPN", + "luis_PROPN_posada_PROPN", + "luis_PROPN_posado_ADJ", + "luis_PROPN_rodríguez_PROPN", + "luis_PROPN_scola_PROPN", + "luis_PROPN_suárez_PROPN", + "luis_PROPN_valcárcel_PROPN", + "luis_PROPN_videgaray_PROPN", + "luis_PROPN_xiv_PROPN", + "luis_PROPN_xv_PROPN", + "luis_PROPN_xvi_PROPN", + "luisa_PROPN_fernanda_PROPN", + "luisa_PROPN_maría_PROPN", + "luisa_PROPN_ortega_PROPN", + "luiz_PROPN_felipe_PROPN", + "luiz_PROPN_inacio_PROPN", + "luiz_PROPN_inácio_PROPN", + "lujoso_ADJ_hotel_NOUN", + "luka_PROPN_modric_PROPN", + "lula_PROPN_da_ADP", + "luna_NOUN_lleno_ADJ", + "luna_PROPN_park_PROPN", + "luong_PROPN_minh_PROPN", + "lusaka_PROPN_zambia_PROPN", + "luxemburgo_PROPN_madagascar_PROPN", + "luxemburgo_PROPN_malasia_PROPN", + "luxemburgo_PROPN_malta_PROPN", + "luxemburgo_PROPN_mónaco_ADJ", + "luxemburgo_PROPN_noruega_PROPN", + "luxemburgo_PROPN_noruego_ADJ", + "luz_NOUN_encendido_ADJ", + "luz_NOUN_led_PROPN", + "luz_NOUN_solar_ADJ", + "luz_NOUN_ultravioleta_ADJ", + "luz_NOUN_verde_ADJ", + "luz_PROPN_maría_PROPN", + "lynn_PROPN_pascoe_PROPN", + "lyon_PROPN_francia_PROPN", + "lámpara_NOUN_fluorescent_ADJ", + "lázaro_PROPN_báez_PROPN", + "lázaro_PROPN_cárdenas_PROPN", + "lés_ADJ_humanidad_NOUN", + "líbano_NOUN_meridional_ADJ", + "líbano_PROPN_fpnul_PROPN", + "líbano_PROPN_jamahiriya_PROPN", + "líbano_PROPN_lesotho_PROPN", + "líbano_PROPN_liberia_PROPN", + "líbano_PROPN_liechtenstein_PROPN", + "líbano_PROPN_lituania_PROPN", + "líbano_PROPN_madagascar_PROPN", + "líbano_PROPN_malasia_PROPN", + "líbano_PROPN_meridional_ADJ", + "líder_NOUN_campesino_ADJ", + "líder_NOUN_demócrata_ADJ", + "líder_NOUN_espiritual_ADJ", + "líder_NOUN_estudiantil_ADJ", + "líder_NOUN_independentista_ADJ", + "líder_NOUN_indiscutible_ADJ", + "líder_NOUN_laborista_ADJ", + "líder_NOUN_libio_ADJ", + "líder_NOUN_norcoreano_ADJ", + "líder_NOUN_opositor_ADJ", + "líder_NOUN_sindical_ADJ", + "líder_NOUN_socialista_ADJ", + "líder_NOUN_tribal_ADJ", + "límite_NOUN_conveniente_ADJ", + "límite_NOUN_fijado_ADJ", + "límite_NOUN_máximo_ADJ", + "límite_NOUN_permitido_ADJ", + "línea_NOUN_arancelaria_ADJ", + "línea_NOUN_argumental_ADJ", + "línea_NOUN_ascendente_ADJ", + "línea_NOUN_azul_ADJ", + "línea_NOUN_divisorio_ADJ", + "línea_NOUN_editorial_ADJ", + "línea_NOUN_ferroviario_ADJ", + "línea_NOUN_férreo_ADJ", + "línea_NOUN_jerárquico_ADJ", + "línea_NOUN_maestro_ADJ", + "línea_NOUN_recto_ADJ", + "línea_NOUN_telefónico_ADJ", + "líneas_NOUN_general_ADJ", + "líneas_NOUN_generales_NOUN", + "líneas_PROPN_aéreas_PROPN", + "líquido_NOUN_cloacal_ADJ", + "líquido_NOUN_inflamable_ADJ", + "lógico_ADJ_software_NOUN", + "lópez_PROPN_aguilar_PROPN", + "lópez_PROPN_caro_PROPN", + "lópez_PROPN_garrido_PROPN", + "lópez_PROPN_mateos_PROPN", + "lópez_PROPN_murphy_PROPN", + "lópez_PROPN_obrador_PROPN", + "lópez_PROPN_portillo_PROPN", + "lópez_PROPN_rega_PROPN", + "lópez_PROPN_valdez_PROPN", + "løj_PROPN_dinamarca_PROPN", + "løvald_PROPN_noruego_ADJ", + "mac_PROPN_os_PROPN", + "macabro_ADJ_hallazgo_NOUN", + "macbook_PROPN_pro_PROPN", + "macedonia_PROPN_federación_PROPN", + "macedonia_PROPN_fiji_PROPN", + "macedonia_PROPN_filipinas_PROPN", + "macedonia_PROPN_finlandia_PROPN", + "macedonia_PROPN_letonia_PROPN", + "macedonia_PROPN_serbio_ADJ", + "macedonia_PROPN_togo_NOUN", + "machado_PROPN_ventura_PROPN", + "machu_PROPN_picchu_PROPN", + "mackay_NOUN_nuevo_ADJ", + "macroeconómico_ADJ_estable_ADJ", + "mad_PROPN_men_PROPN", + "madagascar_PROPN_malasia_PROPN", + "madagascar_PROPN_malawi_NOUN", + "madagascar_PROPN_malawi_PROPN", + "madagascar_PROPN_malta_PROPN", + "madagascar_PROPN_marruecos_PROPN", + "madagascar_PROPN_mauricio_PROPN", + "madame_PROPN_bovary_PROPN", + "made_NOUN_in_ADP", + "made_PROPN_available_PROPN", + "made_PROPN_in_ADP", + "madera_NOUN_recolectado_ADJ", + "madera_NOUN_tropical_ADJ", + "madhya_PROPN_pradesh_PROPN", + "madison_PROPN_square_PROPN", + "madre_NOUN_adolescente_ADJ", + "madre_NOUN_adoptivo_ADJ", + "madre_NOUN_lactant_ADJ", + "madre_NOUN_patrio_ADJ", + "madre_NOUN_seropositiva_ADJ", + "madre_NOUN_soltera_ADJ", + "madre_NOUN_solteras_PROPN", + "madre_NOUN_soltero_ADJ", + "madre_NOUN_trabajador_ADJ", + "madre_PROPN_mía_PROPN", + "madre_PROPN_teresa_PROPN", + "madre_PROPN_tierra_PROPN", + "madrid_PROPN_arena_PROPN", + "madrid_PROPN_esperanza_PROPN", + "madridiario_PROPN_madrid_PROPN", + "maestro_NOUN_capacitado_ADJ", + "mafia_NOUN_ruso_ADJ", + "mafia_NOUN_terrorista_ADJ", + "magdalena_PROPN_contreras_PROPN", + "magdalena_PROPN_medio_PROPN", + "magdalena_PROPN_álvarez_PROPN", + "magia_NOUN_negro_ADJ", + "magistrado_NOUN_ad_ADJ", + "magistrado_NOUN_ad_ADP", + "magistrado_NOUN_ad_NOUN", + "magistrado_NOUN_gilbert_PROPN", + "magistrado_NOUN_jorda_PROPN", + "magistrado_NOUN_meron_VERB", + "magistrado_NOUN_pocar_PROPN", + "magistratura_NOUN_supremo_ADJ", + "magno_ADJ_evento_NOUN", + "magreb_PROPN_islámico_PROPN", + "mahatma_PROPN_gandhi_PROPN", + "mahbubani_PROPN_singapur_PROPN", + "mahiga_PROPN_república_PROPN", + "mahmoud_PROPN_abbas_PROPN", + "mahmoud_PROPN_ahmadinejad_PROPN", + "mahmud_PROPN_abbas_PROPN", + "mahmud_PROPN_ahmadineyad_PROPN", + "maillot_NOUN_amarillo_ADJ", + "majodina_PROPN_sra_NOUN", + "major_PROPN_league_PROPN", + "mal_ADJ_arranque_NOUN", + "mal_ADJ_comportamiento_NOUN", + "mal_ADJ_desempeño_NOUN", + "mal_ADJ_funcionamiento_NOUN", + "mal_ADJ_genio_NOUN", + "mal_ADJ_gusto_NOUN", + "mal_ADJ_humor_NOUN", + "mal_ADJ_manejo_NOUN", + "mal_ADJ_olor_NOUN", + "mal_ADJ_rato_NOUN", + "mal_ADJ_sabor_NOUN", + "mal_ADJ_trago_NOUN", + "mal_ADV_disimulado_ADJ", + "mal_ADV_educado_ADJ", + "mal_ADV_entendido_ADJ", + "mal_ADV_equipado_ADJ", + "mal_ADV_gestionado_ADJ", + "mal_ADV_habido_ADJ", + "mal_ADV_informado_ADJ", + "mal_ADV_intencionado_ADJ", + "mal_ADV_pagado_ADJ", + "mal_ADV_parado_ADJ", + "mal_ADV_pensado_ADJ", + "mal_ADV_remunerado_ADJ", + "mal_ADV_visto_ADJ", + "mala_ADJ_condición_NOUN", + "mala_ADJ_cosecha_NOUN", + "mala_ADJ_costumbre_NOUN", + "mala_ADJ_fe_NOUN", + "mala_ADJ_hierba_NOUN", + "mala_ADJ_lengua_NOUN", + "mala_ADJ_noticia_NOUN", + "mala_NOUN_gana_NOUN", + "malasia_PROPN_malawi_NOUN", + "malasia_PROPN_malawi_PROPN", + "malasia_PROPN_maldiva_ADJ", + "malasia_PROPN_mali_PROPN", + "malasia_PROPN_malta_PROPN", + "malasia_PROPN_malí_NOUN", + "malasia_PROPN_marruecos_PROPN", + "malasia_PROPN_mauricio_PROPN", + "malasia_PROPN_mauritanio_ADJ", + "malasia_PROPN_myanmar_PROPN", + "malawi_NOUN_malasia_PROPN", + "malawi_NOUN_maldiva_NOUN", + "malawi_NOUN_malta_PROPN", + "malawi_PROPN_malí_NOUN", + "maldiva_ADJ_mali_PROPN", + "maldiva_ADJ_malí_INTJ", + "maldiva_ADJ_malí_NOUN", + "maldiva_NOUN_malí_INTJ", + "maldivas_PROPN_malí_PROPN", + "malformación_NOUN_congénita_ADJ", + "mali_PROPN_ir_VERB", + "malloch_PROPN_brown_PROPN", + "mallorca_PROPN_diario_PROPN", + "mallorca_PROPN_titel_PROPN", + "malnutrición_NOUN_agudo_ADJ", + "malnutrición_NOUN_crónico_ADJ", + "malnutrición_NOUN_infantil_ADJ", + "malo_ADJ_augurio_NOUN", + "malo_ADJ_fama_NOUN", + "malo_ADJ_hábito_NOUN", + "malo_ADJ_olor_NOUN", + "malo_ADJ_pasada_NOUN", + "malo_ADJ_praxis_NOUN", + "malo_ADJ_racha_NOUN", + "malo_ADJ_suerte_NOUN", + "malo_ADJ_trato_NOUN", + "malo_ADJ_ventura_NOUN", + "malta_NOUN_isla_NOUN", + "malta_NOUN_marruecos_PROPN", + "malta_NOUN_mauritanio_ADJ", + "malta_PROPN_marruecos_PROPN", + "malta_PROPN_mauricio_PROPN", + "malta_PROPN_micronesio_ADJ", + "malta_PROPN_méxico_PROPN", + "malta_PROPN_mónaco_ADJ", + "malta_PROPN_noruego_ADJ", + "malta_PROPN_polonia_PROPN", + "maltrato_NOUN_animal_ADJ", + "maltrato_NOUN_físico_ADJ", + "maltrato_NOUN_infantil_ADJ", + "maltrato_NOUN_psicológico_ADJ", + "malvinas_PROPN_argentinas_PROPN", + "malí_INTJ_malta_NOUN", + "malí_INTJ_marruecos_PROPN", + "malí_NOUN_malta_NOUN", + "malí_NOUN_malta_PROPN", + "malí_PROPN_malta_PROPN", + "malí_PROPN_marruecos_PROPN", + "mamífero_NOUN_marino_ADJ", + "management_PROPN_of_PROPN", + "managua_PROPN_nicaragua_PROPN", + "mancera_PROPN_espinosa_PROPN", + "mancha_NOUN_blanco_ADJ", + "mancha_NOUN_negro_ADJ", + "mancha_NOUN_rojo_ADJ", + "manchester_PROPN_city_PROPN", + "manchester_PROPN_united_PROPN", + "mandamiento_NOUN_judicial_ADJ", + "mandatario_NOUN_boliviano_ADJ", + "mandatario_NOUN_capitalino_ADJ", + "mandatario_NOUN_ecuatoriano_ADJ", + "mandatario_NOUN_electo_ADJ", + "mandatario_NOUN_estadounidense_ADJ", + "mandatario_NOUN_estatal_ADJ", + "mandatario_NOUN_provincial_ADJ", + "mandatario_NOUN_venezolano_ADJ", + "mandato_NOUN_conferido_ADJ", + "mandato_NOUN_encomendado_ADJ", + "mandato_NOUN_expirar_VERB", + "mandato_NOUN_prorrogado_ADJ", + "mando_NOUN_unificado_ADJ", + "mando_PROPN_único_PROPN", + "manejo_NOUN_ambientalmente_ADV", + "manera_NOUN_expedito_ADJ", + "manera_NOUN_exponencial_ADJ", + "manera_NOUN_extraoficial_ADJ", + "manera_NOUN_paulatín_ADJ", + "manera_NOUN_simultáneo_ADJ", + "manfred_PROPN_nowak_PROPN", + "manga_NOUN_corto_ADJ", + "manifestación_NOUN_callejero_ADJ", + "manifestación_NOUN_contemporáneo_ADJ", + "manifestación_NOUN_convocado_ADJ", + "manifestación_NOUN_dondequiera_ADV", + "manifestación_NOUN_estudiantil_ADJ", + "manifestar_VERB_pacíficamente_ADV", + "manifiestamente_ADV_arbitrario_ADJ", + "manifiestamente_ADV_infundado_ADJ", + "manila_PROPN_filipinas_PROPN", + "maniobra_NOUN_militar_ADJ", + "manipulación_NOUN_genético_ADJ", + "manlio_PROPN_fabio_PROPN", + "manny_PROPN_pacquiao_PROPN", + "manny_PROPN_ramírez_PROPN", + "mano_NOUN_alzada_NOUN", + "mano_NOUN_alzado_ADJ", + "mano_NOUN_armada_NOUN", + "mano_NOUN_atado_ADJ", + "mano_NOUN_derecho_ADJ", + "mano_NOUN_invisible_ADJ", + "mano_NOUN_izquierdo_ADJ", + "mano_NOUN_manchada_ADJ", + "mano_NOUN_temblorós_ADJ", + "mano_NOUN_tendido_ADJ", + "mano_NOUN_vacío_ADJ", + "mano_PROPN_menezes_PROPN", + "manolo_PROPN_jiménez_PROPN", + "manos_NOUN_del_DET", + "manos_PROPN_limpias_PROPN", + "mantener_VERB_informado_ADJ", + "mantener_VERB_intacto_ADJ", + "mantener_VERB_invariable_ADJ", + "mantener_VERB_vigilante_ADJ", + "manu_PROPN_chao_PROPN", + "manu_PROPN_ginóbili_PROPN", + "manual_NOUN_escolar_ADJ", + "manuel_PROPN_bartlett_PROPN", + "manuel_PROPN_belgrano_PROPN", + "manuel_PROPN_camacho_PROPN", + "manuel_PROPN_chaves_PROPN", + "manuel_PROPN_espino_PROPN", + "manuel_PROPN_fraga_PROPN", + "manuel_PROPN_lópez_PROPN", + "manuel_PROPN_marulanda_PROPN", + "manuel_PROPN_neuer_PROPN", + "manuel_PROPN_pellegrini_PROPN", + "manuel_PROPN_pizarro_PROPN", + "manuel_PROPN_rosales_PROPN", + "manuel_PROPN_valls_PROPN", + "manuel_PROPN_velasco_PROPN", + "manuel_PROPN_vázquez_PROPN", + "manuel_PROPN_zelaya_PROPN", + "manuela_PROPN_carmena_PROPN", + "mao_PROPN_zedong_PROPN", + "mapa_NOUN_topográfico_ADJ", + "maquinaria_NOUN_agrícola_ADJ", + "maquinaria_NOUN_pesado_ADJ", + "mar_NOUN_adentro_ADV", + "mar_NOUN_báltico_ADJ", + "mar_NOUN_báltico_PROPN", + "mar_NOUN_caribe_ADJ", + "mar_NOUN_caspio_ADJ", + "mar_NOUN_caspio_PROPN", + "mar_NOUN_efe_PROPN", + "mar_NOUN_egeo_PROPN", + "mar_NOUN_mediterráneo_ADJ", + "mar_NOUN_mediterráneo_PROPN", + "mar_NOUN_negro_ADJ", + "mar_NOUN_negro_PROPN", + "mar_NOUN_rojo_PROPN", + "mar_PROPN_báltico_PROPN", + "mar_PROPN_caspio_PROPN", + "mar_PROPN_mediterráneo_PROPN", + "mar_PROPN_menor_PROPN", + "mar_PROPN_muerto_PROPN", + "mar_PROPN_negro_PROPN", + "mar_PROPN_rojo_PROPN", + "mara_PROPN_salvatrucha_PROPN", + "marbella_PROPN_málaga_PROPN", + "marc_PROPN_anthony_PROPN", + "marc_PROPN_bossuyt_PROPN", + "marc_PROPN_gasol_PROPN", + "marc_PROPN_márquez_PROPN", + "marca_NOUN_ce_PROPN", + "marca_NOUN_chevrolet_PROPN", + "marca_NOUN_ford_PROPN", + "marca_NOUN_nissan_PROPN", + "marca_NOUN_toyota_PROPN", + "marca_NOUN_volkswagen_PROPN", + "marcado_ADJ_acento_NOUN", + "marcado_ADJ_contraste_NOUN", + "marcador_NOUN_adverso_ADJ", + "marcar_VERB_gol_NOUN", + "marcelino_PROPN_iglesias_PROPN", + "marcelo_PROPN_bielsa_PROPN", + "marcelo_PROPN_díaz_PROPN", + "marcelo_PROPN_ebrard_PROPN", + "marcelo_PROPN_gallardo_PROPN", + "marcelo_PROPN_tinelli_PROPN", + "marcha_NOUN_atrás_ADV", + "marcha_NOUN_atrás_NOUN", + "marco_NOUN_conceptual_ADJ", + "marco_NOUN_cronológico_ADJ", + "marco_NOUN_normativo_ADJ", + "marco_NOUN_programático_ADJ", + "marco_NOUN_reglamentario_ADJ", + "marco_NOUN_regulador_ADJ", + "marco_NOUN_regulatorio_ADJ", + "marco_PROPN_antonio_PROPN", + "marco_PROPN_aurelio_PROPN", + "marco_PROPN_fabián_PROPN", + "marco_PROPN_polo_PROPN", + "marco_PROPN_rubio_PROPN", + "marcos_NOUN_alemán_ADJ", + "marcos_NOUN_institucional_ADJ", + "marcos_NOUN_normativo_ADJ", + "marcos_PROPN_juárez_PROPN", + "marcos_PROPN_paz_PROPN", + "marcos_PROPN_peña_PROPN", + "mare_PROPN_nostrum_PROPN", + "marea_NOUN_negro_ADJ", + "marea_NOUN_rojo_ADJ", + "marfa_PROPN_petrovna_PROPN", + "margaret_PROPN_thatcher_PROPN", + "margarita_PROPN_stolbizer_PROPN", + "margarita_PROPN_zavala_PROPN", + "margen_NOUN_continental_ADJ", + "margen_NOUN_derecho_ADJ", + "margen_NOUN_izquierdo_ADJ", + "margen_PROPN_sur_PROPN", + "marginación_NOUN_socioeconómico_ADJ", + "mari_PROPN_alkatiri_PROPN", + "mari_PROPN_carmen_PROPN", + "mari_PROPN_luz_PROPN", + "maria_PROPN_sharapova_PROPN", + "mariah_PROPN_carey_PROPN", + "mariano_PROPN_arcioni_PROPN", + "mariano_PROPN_moreno_PROPN", + "mariano_PROPN_pavone_PROPN", + "mariano_PROPN_rajoy_PROPN", + "mariano_PROPN_rivera_PROPN", + "mariano_PROPN_rosas_PROPN", + "maribel_PROPN_verdú_PROPN", + "marie_PROPN_curie_PROPN", + "marilyn_PROPN_monroe_PROPN", + "marina_PROPN_armada_PROPN", + "marina_PROPN_mercante_PROPN", + "marino_ADJ_protegido_ADJ", + "marino_ADJ_vivo_ADJ", + "marino_PROPN_san_PROPN", + "marino_PROPN_santa_PROPN", + "marino_PROPN_serbia_PROPN", + "mario_PROPN_abdo_PROPN", + "mario_PROPN_alberto_PROPN", + "mario_PROPN_balotelli_PROPN", + "mario_PROPN_benedetti_PROPN", + "mario_PROPN_bergoglio_PROPN", + "mario_PROPN_conde_PROPN", + "mario_PROPN_das_PROPN", + "mario_PROPN_delgado_PROPN", + "mario_PROPN_draghi_PROPN", + "mario_PROPN_gómez_PROPN", + "mario_PROPN_hart_PROPN", + "mario_PROPN_jiménez_PROPN", + "mario_PROPN_marín_PROPN", + "mario_PROPN_monti_PROPN", + "mario_PROPN_moreno_PROPN", + "mario_PROPN_negri_PROPN", + "mario_PROPN_vargas_PROPN", + "mark_PROPN_malloch_PROPN", + "mark_PROPN_twain_PROPN", + "mark_PROPN_webber_PROPN", + "mark_PROPN_zuckerberg_PROPN", + "marketing_NOUN_digital_ADJ", + "marlon_PROPN_brando_PROPN", + "marrakech_PROPN_marruecos_PROPN", + "marruecos_PROPN_mauricio_PROPN", + "marruecos_PROPN_mauritania_PROPN", + "marruecos_PROPN_mauritanio_ADJ", + "marruecos_PROPN_mozambique_PRON", + "marruecos_PROPN_myanmar_PROPN", + "marruecos_PROPN_nigerio_ADJ", + "marruecos_PROPN_omán_ADJ", + "marset_PROPN_campos_PROPN", + "marshall_PROPN_isla_NOUN", + "marta_PROPN_domínguez_PROPN", + "marta_PROPN_sánchez_PROPN", + "martin_PROPN_luther_PROPN", + "martin_PROPN_scheinin_PROPN", + "martin_PROPN_schulz_PROPN", + "martin_PROPN_scorsese_PROPN", + "martinus_PROPN_nijhoff_PROPN", + "martí_PROPN_batres_PROPN", + "martín_PROPN_demichelis_PROPN", + "martín_PROPN_fierro_PROPN", + "martín_PROPN_insaurralde_PROPN", + "martín_PROPN_lousteau_PROPN", + "martín_PROPN_palermo_PROPN", + "martín_PROPN_redrado_PROPN", + "martín_PROPN_torrijos_PROPN", + "martín_PROPN_vizcarra_PROPN", + "mary_PROPN_robinson_PROPN", + "maría_PROPN_alejandra_PROPN", + "maría_PROPN_angélica_PROPN", + "maría_PROPN_antonia_PROPN", + "maría_PROPN_antonieta_PROPN", + "maría_PROPN_auxiliadora_PROPN", + "maría_PROPN_belén_PROPN", + "maría_PROPN_cecilia_PROPN", + "maría_PROPN_clara_PROPN", + "maría_PROPN_corina_PROPN", + "maría_PROPN_cristina_PROPN", + "maría_PROPN_dolores_PROPN", + "maría_PROPN_elena_PROPN", + "maría_PROPN_emilia_PROPN", + "maría_PROPN_estela_PROPN", + "maría_PROPN_esther_PROPN", + "maría_PROPN_eugenia_PROPN", + "maría_PROPN_fernanda_PROPN", + "maría_PROPN_gabriela_PROPN", + "maría_PROPN_guadalupe_PROPN", + "maría_PROPN_inés_PROPN", + "maría_PROPN_isabel_PROPN", + "maría_PROPN_juana_PROPN", + "maría_PROPN_julia_PROPN", + "maría_PROPN_laura_PROPN", + "maría_PROPN_luisa_PROPN", + "maría_PROPN_magdalena_PROPN", + "maría_PROPN_marta_PROPN", + "maría_PROPN_santísima_PROPN", + "maría_PROPN_soledad_PROPN", + "maría_PROPN_teresa_PROPN", + "maría_PROPN_victoria_PROPN", + "maría_PROPN_villar_PROPN", + "maría_PROPN_ángeles_PROPN", + "marítima_PROPN_internacional_PROPN", + "marítimo_ADJ_circundante_ADJ", + "mas_ADV_facil_ADJ", + "mas_CCONJ_não_PROPN", + "mas_CCONJ_não_SYM", + "mas_CCONJ_os_DET", + "mas_CCONJ_também_ADV", + "mas_PROPN_ay_INTJ", + "masa_NOUN_corporal_ADJ", + "masa_NOUN_crítico_ADJ", + "masa_NOUN_encefálico_ADJ", + "masa_NOUN_muscular_ADJ", + "masa_NOUN_salarial_ADJ", + "masacre_NOUN_cometido_ADJ", + "masacre_NOUN_ocurrido_ADJ", + "massachusetts_PROPN_mit_PROPN", + "masters_PROPN_series_PROPN", + "matanza_NOUN_extrajudicial_ADJ", + "matanza_NOUN_perpetrado_ADJ", + "materia_NOUN_fecal_ADJ", + "materia_NOUN_primo_ADJ", + "material_ADJ_explosivo_ADJ", + "material_NOUN_audiovisual_ADJ", + "material_NOUN_bélico_ADJ", + "material_NOUN_conexo_ADJ", + "material_NOUN_conexo_PROPN", + "material_NOUN_didáctico_ADJ", + "material_NOUN_discográfico_ADJ", + "material_NOUN_fisibl_ADJ", + "material_NOUN_fisible_ADJ", + "material_NOUN_fisionabl_ADJ", + "material_NOUN_fisionable_ADJ", + "material_NOUN_genético_ADJ", + "material_NOUN_impreso_ADJ", + "material_NOUN_informativo_ADJ", + "material_NOUN_pedagógico_ADJ", + "material_NOUN_pornográfico_ADJ", + "material_NOUN_probatorio_ADJ", + "material_NOUN_promocional_ADJ", + "material_NOUN_radiactivo_ADJ", + "material_NOUN_radioactivo_ADJ", + "material_NOUN_reciclado_ADJ", + "material_NOUN_rodante_ADJ", + "materialmente_ADV_imposible_ADJ", + "maternidad_NOUN_paternidad_NOUN", + "maternidad_NOUN_remunerado_ADJ", + "materno_PROPN_infantil_PROPN", + "mato_PROPN_grosso_PROPN", + "matriculación_NOUN_escolar_ADJ", + "matrimonio_NOUN_consuetudinario_ADJ", + "matrimonio_NOUN_forzado_ADJ", + "matrimonio_NOUN_forzoso_ADJ", + "matrimonio_NOUN_gay_ADJ", + "matrimonio_NOUN_homosexual_ADJ", + "matrimonio_NOUN_igualitario_ADJ", + "matrimonio_NOUN_precoz_ADJ", + "matrimonio_NOUN_prematuro_ADJ", + "matriz_NOUN_energético_ADJ", + "matrícula_NOUN_escolar_ADJ", + "matt_PROPN_damon_PROPN", + "matías_PROPN_almeyda_PROPN", + "matías_PROPN_fernández_PROPN", + "matías_PROPN_rossi_PROPN", + "maud_PROPN_graham_PROPN", + "maurice_PROPN_glèlè_PROPN", + "mauricio_PROPN_funes_PROPN", + "mauricio_PROPN_macri_PROPN", + "mauricio_PROPN_mauritania_PROPN", + "mauricio_PROPN_mozambique_PRON", + "mauricio_PROPN_méxico_PROPN", + "mauricio_PROPN_pochettino_PROPN", + "mauritania_NOUN_mauricio_PROPN", + "mauritania_PROPN_mauricio_PROPN", + "mauritania_PROPN_méxico_PROPN", + "mauritanio_ADJ_mauricio_PROPN", + "mauritanio_ADJ_méxico_PROPN", + "mauro_PROPN_icardi_PROPN", + "maxi_PROPN_lópez_PROPN", + "maxi_PROPN_rodríguez_PROPN", + "maxwell_PROPN_yalden_PROPN", + "may_NOUN_efe_PROPN", + "may_NOUN_pl_PROPN", + "may_PROPN_be_CCONJ", + "may_PROPN_be_PROPN", + "mayo_NOUN_ria_PROPN", + "mayor_ADJ_brevedad_NOUN", + "mayor_ADJ_celeridad_NOUN", + "mayor_ADJ_detenimiento_NOUN", + "mayor_ADJ_realce_NOUN", + "mayor_PROPN_oreja_PROPN", + "mayoría_NOUN_abrumador_ADJ", + "mayoría_NOUN_absoluto_ADJ", + "mayoría_NOUN_aplastante_ADJ", + "mayoría_NOUN_cualificado_ADJ", + "mazo_PROPN_maza_PROPN", + "mazón_PROPN_costa_PROPN", + "maíz_NOUN_transgénico_ADJ", + "mañana_ADV_mismo_ADV", + "mañana_NOUN_variar_VERB", + "mdma_PROPN_mav_NOUN", + "mdma_PROPN_mav_PROPN", + "me_PRON_yo_PRON", + "mea_NOUN_culpa_NOUN", + "meade_PROPN_kuribreña_PROPN", + "mecanismo_NOUN_innovador_ADJ", + "mecanismo_PROPN_europeo_PROPN", + "medalla_NOUN_dorado_ADJ", + "medalla_NOUN_olímpico_ADJ", + "medallista_NOUN_olímpico_ADJ", + "medellín_PROPN_colombia_PROPN", + "media_PROPN_luna_PROPN", + "mediados_NOUN_del_DET", + "mediana_PROPN_empresa_PROPN", + "mediano_ADJ_calibre_NOUN", + "mediano_ADJ_empresa_NOUN", + "mediano_ADJ_estatura_NOUN", + "mediano_ADJ_plazo_ADJ", + "mediano_ADJ_plazo_NOUN", + "mediano_NOUN_ingreso_NOUN", + "mediano_NOUN_plazo_NOUN", + "mediante_ADP_providencia_NOUN", + "mediante_ADV_entre_ADP", + "mediar_VERB_palabra_NOUN", + "medias_PROPN_blancas_PROPN", + "medias_PROPN_rojas_PROPN", + "medical_PROPN_center_PROPN", + "medicamento_NOUN_antirretroviral_ADJ", + "medicamento_NOUN_asequible_ADJ", + "medicamento_NOUN_esencial_ADJ", + "medicamento_NOUN_falsificado_ADJ", + "medicamento_NOUN_genérico_ADJ", + "medicamento_NOUN_veterinario_ADJ", + "medicina_NOUN_forense_ADJ", + "medicina_NOUN_preventivo_ADJ", + "medicina_NOUN_tradicional_ADJ", + "medicina_PROPN_familiar_PROPN", + "medicina_PROPN_forense_PROPN", + "medicina_PROPN_legal_PROPN", + "medición_NOUN_notificación_NOUN", + "medida_NOUN_adoptado_ADJ", + "medida_NOUN_antidumping_ADJ", + "medida_NOUN_cautelar_ADJ", + "medida_NOUN_coercitivo_ADJ", + "medida_NOUN_correctivo_ADJ", + "medida_NOUN_corrector_ADJ", + "medida_NOUN_paliativa_ADJ", + "medida_NOUN_precautoria_ADJ", + "medida_NOUN_proactiva_ADJ", + "medida_NOUN_punitiva_ADJ", + "medida_NOUN_regresiva_ADJ", + "medida_NOUN_socioeducativa_ADJ", + "medida_NOUN_sustitutiva_ADJ", + "medina_NOUN_quiroga_PROPN", + "medina_PROPN_mora_PROPN", + "medina_PROPN_ortega_PROPN", + "medio_ADJ_luna_NOUN", + "medio_ADJ_nublado_ADJ", + "medio_ADV_ambiente_NOUN", + "medio_ADV_nublado_ADJ", + "medio_ADV_vacío_ADJ", + "medio_NOUN_ambiente_NOUN", + "medio_NOUN_urbano_NOUN", + "medio_NUM_aguinaldo_NOUN", + "medio_NUM_ambiente_NOUN", + "medio_NUM_asta_NOUN", + "medio_NUM_centenar_NOUN", + "medio_NUM_docena_NOUN", + "medio_NUM_legua_NOUN", + "medio_NUM_luna_NOUN", + "medio_NUM_luna_PROPN", + "medio_NUM_maratón_NOUN", + "medio_NUM_marino_NOUN", + "medio_NUM_millar_NOUN", + "medio_NUM_siglo_NOUN", + "medio_PROPN_ambiente_PROPN", + "medio_PROPN_marino_NOUN", + "medio_PROPN_oeste_PROPN", + "medio_PROPN_oriente_PROPN", + "medio_PROPN_rural_PROPN", + "medios_PROPN_informativos_PROPN", + "medir_VERB_centímetro_NOUN", + "medir_VERB_metro_NOUN", + "mediterráneo_NOUN_norte_ADJ", + "mediterráneo_NOUN_oriental_ADJ", + "megan_PROPN_fox_PROPN", + "megavatio_NOUN_mw_NOUN", + "meghan_PROPN_markle_PROPN", + "mejor_ADJ_actor_PROPN", + "mejor_ADJ_actriz_PROPN", + "mejor_ADJ_anotador_NOUN", + "mejor_ADJ_película_PROPN", + "mejor_ADJ_postor_NOUN", + "mejor_ADJ_álbum_PROPN", + "mejor_ADV_dicho_NOUN", + "mejor_ADV_equipado_ADJ", + "mejor_ADV_guardado_ADJ", + "mejor_ADV_informado_ADJ", + "mejor_ADV_pagado_ADJ", + "mejor_ADV_posicionado_ADJ", + "mejor_ADV_preparado_ADJ", + "mejor_ADV_remunerado_ADJ", + "mejor_ADV_valorado_ADJ", + "mejora_NOUN_cualitativo_ADJ", + "mejora_NOUN_introducido_ADJ", + "mejora_NOUN_sustancial_ADJ", + "mejora_NOUN_tangible_ADJ", + "mejoramiento_NOUN_cualitativo_ADJ", + "mejorar_VERB_notablemente_ADV", + "mejorar_VERB_sensiblemente_ADV", + "mejorar_VERB_sustancialmente_ADV", + "mekdad_NOUN_república_NOUN", + "mel_PROPN_gibson_PROPN", + "melania_PROPN_trump_PROPN", + "melbourne_PROPN_australia_PROPN", + "melbourne_PROPN_park_PROPN", + "melilla_PROPN_hoy_PROPN", + "melinda_PROPN_gates_PROPN", + "member_NOUN_of_ADP", + "member_PROPN_of_PROPN", + "member_PROPN_states_PROPN", + "members_PROPN_of_PROPN", + "memorando_NOUN_explicativo_ADJ", + "memorar_VERB_explicativo_ADJ", + "memorar_VERB_incorporar_VERB", + "memoria_NOUN_flash_ADJ", + "memoria_NOUN_histórico_ADJ", + "memoria_NOUN_ram_PROPN", + "memoria_NOUN_usb_PROPN", + "memoria_PROPN_histórica_PROPN", + "men_PROPN_in_ADP", + "mencionado_ADJ_anteriormente_ADV", + "mencionado_ADJ_lamento_NOUN", + "mencionado_ADJ_precedentemente_ADV", + "mencionado_ADJ_supra_ADJ", + "mencionado_ADJ_supra_ADV", + "mencionado_ADJ_supra_PROPN", + "mencionar_VERB_anteriormente_ADV", + "mencionar_VERB_brevemente_ADV", + "mencionar_VERB_explícitamente_ADV", + "mencionar_VERB_expresamente_ADV", + "mención_NOUN_aparte_ADV", + "mención_NOUN_explícito_ADJ", + "mención_NOUN_honorífico_ADJ", + "menor_ADJ_infractor_NOUN", + "menor_NOUN_regla_NOUN", + "menos_ADV_adelantado_ADJ", + "menos_ADV_contaminante_ADJ", + "menos_ADV_favorecido_ADJ", + "menos_ADV_goleado_ADJ", + "menoscabar_VERB_gravemente_ADV", + "mensaje_NOUN_inequívoco_ADJ", + "mensajería_NOUN_instantáneo_ADJ", + "mentalidad_NOUN_ganador_ADJ", + "mente_NOUN_puesto_ADJ", + "menéndez_PROPN_pelayo_PROPN", + "mercadería_NOUN_entregado_ADJ", + "mercadería_NOUN_peligroso_ADJ", + "mercado_NOUN_accionario_ADJ", + "mercado_NOUN_bursátil_ADJ", + "mercado_NOUN_cambiario_ADJ", + "mercado_NOUN_emergente_ADJ", + "mercado_NOUN_emisor_ADJ", + "mercado_NOUN_inmobiliario_ADJ", + "mercado_NOUN_interbancario_ADJ", + "mercado_NOUN_interior_ADJ", + "mercado_NOUN_laboral_ADJ", + "mercado_NOUN_liberalizado_ADJ", + "mercado_NOUN_mayorista_ADJ", + "mercado_PROPN_abierto_PROPN", + "mercado_PROPN_central_PROPN", + "mercado_PROPN_común_PROPN", + "mercado_PROPN_interior_PROPN", + "mercado_PROPN_libre_PROPN", + "mercado_PROPN_único_PROPN", + "mercancía_NOUN_entregado_ADJ", + "mercancía_NOUN_importado_ADJ", + "mercancía_NOUN_peligroso_ADJ", + "mercancía_NOUN_total_ADV", + "mercancía_NOUN_transportado_ADJ", + "mercedes_PROPN_alaya_PROPN", + "mercedes_PROPN_aráoz_PROPN", + "mercedes_PROPN_benz_PROPN", + "mercedes_PROPN_milá_PROPN", + "mercedes_PROPN_sosa_PROPN", + "mercosur_PROPN_bolivia_PROPN", + "merecer_VERB_elogio_NOUN", + "merecido_ADJ_homenaje_NOUN", + "mero_ADJ_coincidencia_NOUN", + "mero_ADJ_espectador_NOUN", + "mero_ADJ_formalidad_NOUN", + "mero_ADJ_trámite_NOUN", + "merrill_PROPN_lynch_PROPN", + "meryl_PROPN_streep_PROPN", + "mes_NOUN_contado_ADJ", + "mesa_NOUN_ampliado_ADJ", + "mesa_NOUN_redonda_NOUN", + "mesa_NOUN_redondo_ADJ", + "mesa_PROPN_central_PROPN", + "mesa_PROPN_directiva_PROPN", + "mesa_PROPN_redonda_PROPN", + "mesaoria_PROPN_antes_ADV", + "meta_NOUN_convenida_ADJ", + "meta_NOUN_fijado_ADJ", + "meta_NOUN_trazado_ADJ", + "metadato_NOUN_estadístico_ADJ", + "metal_NOUN_dorado_ADJ", + "metal_NOUN_pesado_ADJ", + "metal_NOUN_precioso_ADJ", + "metal_PROPN_gear_PROPN", + "meteorología_PROPN_aemet_PROPN", + "meteorológico_ADJ_mundial_ADJ", + "meter_VERB_preso_ADJ", + "metodología_NOUN_aplicado_ADJ", + "metodología_NOUN_empleado_ADJ", + "metodología_NOUN_simplificada_ADJ", + "metodología_NOUN_utilizado_ADJ", + "metro_NOUN_cuadrado_ADJ", + "metro_NOUN_cuadrado_NOUN", + "metro_NOUN_cuadrados_NOUN", + "metro_NOUN_cúbico_ADJ", + "metro_NOUN_cúbico_NOUN", + "metro_NOUN_lineal_ADJ", + "metro_NOUN_mariposa_ADJ", + "metro_NOUN_plano_ADJ", + "metros_NOUN_cuadrado_ADJ", + "metros_NOUN_cuadrados_NOUN", + "metros_NOUN_cúbico_ADJ", + "metros_NOUN_cúbicos_NOUN", + "mexicali_PROPN_baja_PROPN", + "mexicano_NOUN_javier_PROPN", + "mexicano_NOUN_sergio_PROPN", + "mexico_PROPN_ap_PROPN", + "meyer_PROPN_canadá_PROPN", + "mezquita_NOUN_sagrado_ADJ", + "mg_NOUN_kg_NOUN", + "mg_NOUN_l_NOUN", + "mg_NUM_kg_NOUN", + "mi_DET_circunscripción_NOUN", + "mi_DET_colega_NOUN", + "mi_DET_papá_NOUN", + "mi_NOUN_entender_VERB", + "mi_PROPN_madre_NOUN", + "mi_PROPN_madre_PROPN", + "miami_PROPN_ap_PROPN", + "miami_PROPN_beach_PROPN", + "miami_PROPN_dolphins_PROPN", + "miami_PROPN_florida_PROPN", + "miami_PROPN_heat_PROPN", + "miami_PROPN_herald_PROPN", + "michael_PROPN_ballack_PROPN", + "michael_PROPN_bloomberg_PROPN", + "michael_PROPN_douglas_PROPN", + "michael_PROPN_jackson_PROPN", + "michael_PROPN_jordan_PROPN", + "michael_PROPN_moore_PROPN", + "michael_PROPN_phelps_PROPN", + "michael_PROPN_schumacher_PROPN", + "michael_PROPN_sra_PROPN", + "michael_PROPN_steiner_PROPN", + "michel_PROPN_barnier_PROPN", + "michel_PROPN_platini_PROPN", + "michel_PROPN_temer_PROPN", + "michelle_PROPN_bachelet_PROPN", + "michelle_PROPN_obama_PROPN", + "michelle_PROPN_soifer_PROPN", + "mick_PROPN_jagger_PROPN", + "mickey_PROPN_mouse_PROPN", + "micro_NOUN_pequeño_ADJ", + "micronesio_ADJ_estado_NOUN", + "microsoft_PROPN_office_PROPN", + "microsoft_PROPN_word_PROPN", + "middle_PROPN_east_PROPN", + "miembro_NOUN_fundador_ADJ", + "miembro_NOUN_nato_ADJ", + "mientras_CCONJ_tanto_NOUN", + "mientras_SCONJ_durar_VERB", + "migraciones_PROPN_oim_PROPN", + "migración_NOUN_ilegal_ADJ", + "migración_NOUN_irregular_ADJ", + "migración_NOUN_oim_PROPN", + "migración_PROPN_colombia_PROPN", + "migración_PROPN_inm_PROPN", + "migrant_NOUN_centroamericano_ADJ", + "migrant_NOUN_indocumentado_ADJ", + "migrant_NOUN_irregular_ADJ", + "migrant_PROPN_workers_PROPN", + "miguel_PROPN_alemán_PROPN", + "miguel_PROPN_alfonso_PROPN", + "miguel_PROPN_angel_PROPN", + "miguel_PROPN_arias_PROPN", + "miguel_PROPN_barbosa_PROPN", + "miguel_PROPN_blesa_PROPN", + "miguel_PROPN_bosé_PROPN", + "miguel_PROPN_brockmann_PROPN", + "miguel_PROPN_cabrera_PROPN", + "miguel_PROPN_carcaño_PROPN", + "miguel_PROPN_cotto_PROPN", + "miguel_PROPN_delibes_PROPN", + "miguel_PROPN_grau_PROPN", + "miguel_PROPN_hernández_PROPN", + "miguel_PROPN_herrera_PROPN", + "miguel_PROPN_hidalgo_PROPN", + "miguel_PROPN_insulza_PROPN", + "miguel_PROPN_lifschitz_PROPN", + "miguel_PROPN_lopez_PROPN", + "miguel_PROPN_márquez_PROPN", + "miguel_PROPN_pichetto_PROPN", + "miguel_PROPN_sanz_PROPN", + "miguel_PROPN_sebastián_PROPN", + "miguel_PROPN_servet_PROPN", + "miguel_PROPN_tejada_PROPN", + "miguel_PROPN_vargas_PROPN", + "miguel_PROPN_ángel_PROPN", + "mike_PROPN_pence_PROPN", + "mike_PROPN_pompeo_PROPN", + "mike_PROPN_tyson_PROPN", + "mil_NUM_barril_NOUN", + "mil_NUM_bolívares_NOUN", + "mil_NUM_ducado_NOUN", + "mil_NUM_franco_NOUN", + "mil_NUM_hectárea_NOUN", + "mil_NUM_lempiras_NOUN", + "mil_NUM_mdd_NOUN", + "mil_NUM_mdp_NOUN", + "mil_NUM_metros_NOUN", + "mil_NUM_ochocientos_NUM", + "mil_NUM_pesetas_NOUN", + "mil_NUM_pesos_NOUN", + "mil_NUM_pessoa_NOUN", + "mil_NUM_quinientos_NUM", + "mil_NUM_seteciento_ADJ", + "mil_NUM_soles_NOUN", + "milagro_PROPN_sala_PROPN", + "milenio_NOUN_odm_PROPN", + "milenio_PROPN_odm_PROPN", + "miles_PROPN_davis_PROPN", + "miley_PROPN_cyrus_PROPN", + "milicia_NOUN_interahamwe_ADJ", + "milicia_NOUN_interahamwe_PROPN", + "milicia_NOUN_janjaweed_ADJ", + "milicia_NOUN_libanés_ADJ", + "milicia_NOUN_mercenario_ADJ", + "milicia_NOUN_tribal_ADJ", + "miliciano_NOUN_palestino_ADJ", + "militante_NOUN_socialista_ADJ", + "militar_ADJ_turco_ADJ", + "militar_NOUN_retirado_ADJ", + "military_PROPN_police_PROPN", + "milla_NOUN_cuadrado_ADJ", + "milla_NOUN_marino_ADJ", + "milla_NOUN_náutico_ADJ", + "millennium_PROPN_development_PROPN", + "miloon_NOUN_kothari_PROPN", + "milpa_PROPN_alta_PROPN", + "milán_PROPN_italia_PROPN", + "mina_NOUN_almacenado_ADJ", + "mina_NOUN_antipersona_ADJ", + "mina_NOUN_antipersonal_ADJ", + "mina_NOUN_antitanque_ADJ", + "mina_NOUN_antivehículo_ADJ", + "mina_NOUN_gerais_PROPN", + "mina_NOUN_terrestre_ADJ", + "minas_PROPN_gerais_PROPN", + "minero_NOUN_artesanal_ADJ", + "minero_NOUN_atrapado_ADJ", + "minería_NOUN_artesanal_ADJ", + "minería_NOUN_ilegal_ADJ", + "minister_PROPN_for_PROPN", + "minister_PROPN_of_PROPN", + "ministerio_PROPN_fiscal_PROPN", + "ministerio_PROPN_publico_PROPN", + "ministerio_PROPN_público_PROPN", + "ministro_NOUN_barak_PROPN", + "ministro_NOUN_consejero_ADJ", + "ministro_NOUN_ehud_PROPN", + "ministro_NOUN_olmert_PROPN", + "ministro_NOUN_shar_VERB", + "ministro_NOUN_shinzo_PROPN", + "ministry_NOUN_of_PROPN", + "ministry_PROPN_of_ADP", + "ministry_PROPN_of_PROPN", + "minority_PROPN_rights_PROPN", + "minoría_NOUN_húngaro_ADJ", + "minoría_NOUN_lingüístico_ADJ", + "minoría_NOUN_musulmán_ADJ", + "minoría_NOUN_religioso_ADJ", + "minoría_NOUN_romaní_ADJ", + "minoría_NOUN_visible_ADJ", + "minoría_NOUN_étnico_ADJ", + "minutecar_VERB_todo_PRON", + "mira_NOUN_puesto_ADJ", + "mira_PROPN_quién_PROPN", + "mirada_NOUN_atento_ADJ", + "mirada_NOUN_atónito_ADJ", + "mirada_NOUN_fijo_ADJ", + "mirada_NOUN_penetrante_ADJ", + "mirada_NOUN_perdido_ADJ", + "mirada_NOUN_puesto_ADJ", + "miradir_VERB_miradir_VERB", + "mirar_VERB_atentamente_ADV", + "mirar_VERB_fijamente_ADV", + "mire_PROPN_usted_PRON", + "mire_VERB_usted_PRON", + "miroslav_PROPN_klose_PROPN", + "mirtha_PROPN_legrand_PROPN", + "misil_NOUN_antiaéreo_ADJ", + "misil_NOUN_antibalístico_ADJ", + "misil_NOUN_antitanque_ADJ", + "misil_NOUN_balístico_ADJ", + "misil_NOUN_lanzado_ADJ", + "misil_NOUN_scud_PROPN", + "misión_NOUN_permanente_ADJ", + "misión_NOUN_sucesoro_ADJ", + "misión_NOUN_visitadora_ADJ", + "misión_NOUN_visitadoro_ADJ", + "misión_PROPN_imposible_PROPN", + "misión_PROPN_vivienda_PROPN", + "mismo_ADJ_tiempo_NOUN", + "miss_PROPN_fly_PROPN", + "miss_PROPN_mundo_PROPN", + "miss_PROPN_universo_PROPN", + "miss_PROPN_venezuela_PROPN", + "mit_PROPN_der_PROPN", + "mitad_NOUN_norte_ADJ", + "mitología_NOUN_griego_ADJ", + "mitt_PROPN_romney_PROPN", + "mobile_PROPN_world_PROPN", + "mobiliario_NOUN_urbano_ADJ", + "modalidad_NOUN_innovadora_ADJ", + "modalidad_NOUN_insostenible_ADJ", + "modelo_NOUN_geológico_ADJ", + "modelo_NOUN_matemático_ADJ", + "modelo_NOUN_neoliberal_ADJ", + "moderación_NOUN_salarial_ADJ", + "moderado_ADJ_ascenso_NOUN", + "moderado_ADJ_descenso_NOUN", + "moderador_NOUN_incluido_ADJ", + "modern_PROPN_family_PROPN", + "modificación_NOUN_genético_ADJ", + "modificación_NOUN_introducido_ADJ", + "modificado_ADJ_genéticamente_ADV", + "modificado_ADJ_ulteriormente_ADV", + "modificar_VERB_radicalmente_ADV", + "modificar_VERB_sustancialmente_ADV", + "modo_NOUN_multijugador_ADJ", + "modus_NOUN_operandi_ADJ", + "modus_NOUN_operandi_NOUN", + "moer_VERB_bovio_NOUN", + "mohamed_PROPN_ali_PROPN", + "mohamed_PROPN_elbaradei_PROPN", + "mohamed_PROPN_mursi_PROPN", + "mohamed_PROPN_vi_PROPN", + "moldova_NOUN_mónaco_ADJ", + "moldova_NOUN_república_NOUN", + "moldova_PROPN_mónaco_ADJ", + "moldova_PROPN_república_PROPN", + "moldova_PROPN_rumania_PROPN", + "molestia_NOUN_muscular_ADJ", + "momento_NOUN_culminante_ADJ", + "momento_NOUN_álgido_ADJ", + "mona_PROPN_lisa_PROPN", + "monarcas_PROPN_morelia_PROPN", + "monarquía_NOUN_constitucional_ADJ", + "moncef_PROPN_khane_PROPN", + "moneda_NOUN_corriente_ADJ", + "moneda_NOUN_extranjero_ADJ", + "moneda_NOUN_virtual_ADJ", + "moneda_NOUN_único_ADJ", + "mongolia_NOUN_montenegro_NOUN", + "mongolia_NOUN_mozambique_PRON", + "mongolia_PROPN_marruecos_PROPN", + "mongolia_PROPN_myanmar_PROPN", + "monitoring_PROPN_and_PROPN", + "monje_NOUN_budista_ADJ", + "monopolio_NOUN_estatal_ADJ", + "mont_PROPN_blanc_PROPN", + "montante_NOUN_total_ADJ", + "montar_VERB_guardia_NOUN", + "montaña_NOUN_ruso_ADJ", + "montañoso_ADJ_pobre_ADJ", + "monte_NOUN_marino_ADJ", + "monte_NOUN_submarino_ADJ", + "monte_PROPN_hermoso_PROPN", + "monte_PROPN_plata_PROPN", + "montego_PROPN_bay_PROPN", + "montenegro_NOUN_eslovaquia_PROPN", + "montenegro_NOUN_seychell_ADJ", + "montenegro_NOUN_sierra_NOUN", + "montenegro_NOUN_singapur_PROPN", + "montenegro_NOUN_suecia_PROPN", + "montenegro_NOUN_suiza_NOUN", + "montenegro_PROPN_mozambique_PROPN", + "monterrey_PROPN_doha_PROPN", + "monterrey_PROPN_méxico_PROPN", + "monterrey_PROPN_nl_PROPN", + "montevideo_PROPN_uruguay_PROPN", + "monthly_NOUN_bulletin_PROPN", + "monto_NOUN_acumulado_ADJ", + "monto_NOUN_adeudado_ADJ", + "monto_NOUN_aproximado_ADJ", + "monto_NOUN_equivalente_ADJ", + "monto_NOUN_total_ADJ", + "montreal_NOUN_canadá_PROPN", + "montreal_NOUN_relativo_ADJ", + "montreal_PROPN_canadá_PROPN", + "montserrat_PROPN_pitcairn_NOUN", + "monumento_NOUN_conmemorativo_ADJ", + "monumento_NOUN_histórico_ADJ", + "moralmente_ADV_condenable_ADJ", + "moralmente_ADV_inaceptable_ADJ", + "morbilidad_NOUN_infantil_ADJ", + "morbilidad_NOUN_materna_ADJ", + "morbilidad_NOUN_materno_ADJ", + "more_PROPN_than_PROPN", + "morelia_PROPN_mich_PROPN", + "morelia_PROPN_michoacán_PROPN", + "moreno_PROPN_ocampo_PROPN", + "moreno_PROPN_valle_PROPN", + "morgan_PROPN_freeman_PROPN", + "morgan_PROPN_stanley_PROPN", + "morgue_NOUN_judicial_ADJ", + "moria_PROPN_casán_PROPN", + "morir_VERB_ahogado_ADJ", + "morir_VERB_aplastado_ADJ", + "morir_VERB_asesinado_ADJ", + "morir_VERB_asfixiado_ADJ", + "morir_VERB_atropellado_ADJ", + "morir_VERB_desangrado_ADJ", + "mortalidad_NOUN_derivado_ADJ", + "mortalidad_NOUN_infantil_ADJ", + "mortalidad_NOUN_materno_ADJ", + "mortalidad_NOUN_maternoinfantil_ADJ", + "mortalidad_NOUN_neonatal_ADJ", + "mortalidad_NOUN_perinatal_ADJ", + "moscú_PROPN_sputnik_PROPN", + "mosquitero_NOUN_impregnado_ADJ", + "mosquitero_NOUN_tratado_ADJ", + "mosquito_NOUN_aedes_PROPN", + "mosquito_NOUN_transmisor_ADJ", + "mossack_PROPN_fonseca_PROPN", + "most_PROPN_of_PROPN", + "mostradorel_PROPN_mostrador_PROPN", + "mostrar_VERB_cauto_ADJ", + "mostrar_VERB_confiado_ADJ", + "mostrar_VERB_entusiasmado_ADJ", + "mostrar_VERB_escéptico_ADJ", + "mostrar_VERB_esperanzado_ADJ", + "mostrar_VERB_optimista_ADJ", + "mostrar_VERB_partidario_ADJ", + "mostrar_VERB_reacio_ADJ", + "mostrar_VERB_receptivo_ADJ", + "mostrar_VERB_renuent_ADJ", + "mostrar_VERB_reticente_ADJ", + "mostrar_VERB_satisfecho_ADJ", + "mostrar_VERB_sorprendido_ADJ", + "mosén_NOUN_antón_PROPN", + "motivación_NOUN_extra_ADJ", + "motivación_NOUN_política_ADJ", + "motivación_NOUN_racial_ADJ", + "motivación_NOUN_racista_ADJ", + "motivo_NOUN_aducido_ADJ", + "motivo_NOUN_fundado_ADJ", + "motoc_PROPN_rumania_PROPN", + "motoc_PROPN_sr_PROPN", + "motoc_PROPN_sra_PROPN", + "motocicleta_NOUN_marca_NOUN", + "motor_NOUN_diesel_ADJ", + "motor_NOUN_diésel_ADJ", + "motor_NOUN_eléctrico_ADJ", + "mountain_PROPN_bike_PROPN", + "mountain_PROPN_view_PROPN", + "mover_VERB_ficha_NOUN", + "movilidad_NOUN_reducido_ADJ", + "movimiento_NOUN_asociativo_ADJ", + "movimiento_NOUN_brusco_ADJ", + "movimiento_NOUN_cooperativista_ADJ", + "movimiento_NOUN_estudiantil_ADJ", + "movimiento_NOUN_feminista_ADJ", + "movimiento_NOUN_guerrillero_ADJ", + "movimiento_NOUN_independentista_ADJ", + "movimiento_NOUN_insurreccional_ADJ", + "movimiento_NOUN_islamista_ADJ", + "movimiento_NOUN_obrero_ADJ", + "movimiento_NOUN_rebelde_ADJ", + "movimiento_NOUN_revolucionario_ADJ", + "movimiento_NOUN_separatista_ADJ", + "movimiento_NOUN_sísmico_ADJ", + "movimiento_NOUN_talibán_ADJ", + "movimiento_NOUN_telúrico_ADJ", + "movimiento_NOUN_transfronterizo_ADJ", + "movimiento_PROPN_ciudadano_PROPN", + "movimiento_PROPN_democrático_PROPN", + "movimiento_PROPN_evita_PROPN", + "movimiento_PROPN_popular_PROPN", + "movimiento_PROPN_progresista_PROPN", + "movimiento_PROPN_regeneración_PROPN", + "movimientos_PROPN_sociales_PROPN", + "mozambique_NOUN_onumoz_NOUN", + "mozambique_PRON_myanmar_PROPN", + "mozambique_PRON_namibio_ADJ", + "ms_ADV_all_ADV", + "ms_ADV_tarde_ADV", + "mselle_NOUN_presidente_NOUN", + "muamar_PROPN_gadafi_PROPN", + "muchacha_NOUN_adolescente_ADJ", + "mucho_ADV_agradecido_ADJ", + "mucho_ADV_contento_ADJ", + "mucho_ADV_endeudado_ADJ", + "mucho_ADV_ilusionado_ADJ", + "muchísima_DET_gente_NOUN", + "muchísimo_ADJ_gracia_NOUN", + "muchísimo_DET_dinero_NOUN", + "muchísimo_DET_tiempo_NOUN", + "muerte_NOUN_cerebral_ADJ", + "muerte_NOUN_materna_ADJ", + "muerte_NOUN_prematuro_ADJ", + "muerte_NOUN_súbito_ADJ", + "muerto_NOUN_herido_NOUN", + "muerto_NOUN_viviente_ADJ", + "muestra_NOUN_fotográfico_ADJ", + "muestra_NOUN_representativo_ADJ", + "muhammad_PROPN_ali_PROPN", + "mujer_NOUN_agricultora_ADJ", + "mujer_NOUN_analfabeta_ADJ", + "mujer_NOUN_candidata_ADJ", + "mujer_NOUN_divorciada_ADJ", + "mujer_NOUN_embarazado_ADJ", + "mujer_NOUN_empresaria_ADJ", + "mujer_NOUN_eritrea_ADJ", + "mujer_NOUN_estudiant_ADJ", + "mujer_NOUN_jefas_PROPN", + "mujer_NOUN_jurista_ADJ", + "mujer_NOUN_periodista_ADJ", + "mujer_NOUN_policía_ADJ", + "mujer_PROPN_unifem_PROPN", + "multa_NOUN_equivalente_ADJ", + "multa_NOUN_impuesto_ADJ", + "multilateral_ADJ_depositado_ADJ", + "multilateral_ADJ_treaties_PROPN", + "multinacional_NOUN_estadounidense_ADJ", + "multitudinario_ADJ_manifestación_NOUN", + "multitudinario_ADJ_marcha_NOUN", + "mundial_ADJ_reestructurado_ADJ", + "mundial_PROPN_antidopaje_PROPN", + "mundial_PROPN_omm_PROPN", + "mundial_PROPN_sub_PROPN", + "mundialmente_ADV_conocido_ADJ", + "mundialmente_ADV_famoso_ADJ", + "mundo_NOUN_entero_ADJ", + "mundo_NOUN_globalizado_ADJ", + "mundo_NOUN_interdependiente_ADJ", + "mundo_NOUN_multipolar_ADJ", + "mundo_PROPN_deportivo_PROPN", + "munich_PROPN_alemania_PROPN", + "municipal_PROPN_socialista_PROPN", + "municipalidad_PROPN_distrital_PROPN", + "municipalidad_PROPN_provincial_PROPN", + "municipio_NOUN_capitalino_ADJ", + "municipio_NOUN_libertador_PROPN", + "municipio_NOUN_malagueño_ADJ", + "munición_NOUN_convencional_ADJ", + "munición_NOUN_explosivo_ADJ", + "munición_NOUN_explosivo_NOUN", + "muro_NOUN_expansionista_ADJ", + "muro_NOUN_fronterizo_ADJ", + "museo_PROPN_arqueológico_PROPN", + "museo_PROPN_británico_PROPN", + "museo_PROPN_guggenheim_PROPN", + "museo_PROPN_histórico_PROPN", + "museo_PROPN_municipal_PROPN", + "museo_PROPN_nacional_PROPN", + "museo_PROPN_picasso_PROPN", + "museo_PROPN_regional_PROPN", + "museo_PROPN_reina_PROPN", + "music_PROPN_awards_PROPN", + "muslo_NOUN_derecho_ADJ", + "muslo_NOUN_izquierdo_ADJ", + "mutación_NOUN_genético_ADJ", + "mutatis_NOUN_mutandis_NOUN", + "mutatis_PROPN_mutandis_PROPN", + "mutilación_NOUN_ablación_NOUN", + "mutilación_NOUN_genital_ADJ", + "mutua_PROPN_madrileña_PROPN", + "mutuamente_ADV_aceptable_ADJ", + "mutuamente_ADV_acordado_ADJ", + "mutuamente_ADV_beneficioso_ADJ", + "mutuamente_ADV_complementario_ADJ", + "mutuamente_ADV_convenida_ADJ", + "mutuamente_ADV_convenido_ADJ", + "mutuamente_ADV_excluyente_ADJ", + "mutuamente_ADV_ventajoso_ADJ", + "muñeca_NOUN_derecho_ADJ", + "muñeca_NOUN_izquierdo_ADJ", + "muñoz_PROPN_ledo_PROPN", + "mxico_PROPN_noticias_PROPN", + "myanmar_PROPN_namibia_PROPN", + "myanmar_PROPN_namibio_ADJ", + "myanmar_PROPN_nepal_PROPN", + "myanmar_PROPN_nigeria_PROPN", + "málaga_PROPN_capital_ADJ", + "máquina_NOUN_expendedor_ADJ", + "máquina_NOUN_tragamoneda_ADJ", + "mármol_NOUN_blanco_ADJ", + "mártir_NOUN_asesinado_ADJ", + "mártir_NOUN_identificado_ADJ", + "mártir_NOUN_muerto_ADJ", + "mártir_NOUN_palestino_ADJ", + "más_ADV_allá_NOUN", + "más_ADV_detenimiento_ADJ", + "más_ADV_hincapié_ADJ", + "más_ADV_inri_NOUN", + "más_ADV_tardar_NOUN", + "más_ADV_valioso_PROPN", + "máscara_NOUN_antigás_ADJ", + "máxime_ADV_cuando_SCONJ", + "máximo_ADJ_anotador_NOUN", + "máximo_ADJ_artillero_NOUN", + "máximo_ADJ_exponente_NOUN", + "máximo_ADJ_galardón_NOUN", + "máximo_ADJ_goleador_NOUN", + "máximo_ADJ_moderación_NOUN", + "máximo_ADJ_permitido_ADJ", + "máximo_ADJ_provecho_NOUN", + "máximo_NOUN_histórico_ADJ", + "máximo_PROPN_gómez_PROPN", + "máximo_PROPN_kirchner_PROPN", + "médico_ADJ_forense_ADJ", + "médico_ADJ_sicológico_ADJ", + "médico_NOUN_enfermera_NOUN", + "médico_NOUN_enfermero_NOUN", + "médico_NOUN_especialista_ADJ", + "médico_NOUN_forense_ADJ", + "médico_NOUN_generalista_ADJ", + "médico_NOUN_legista_ADJ", + "médico_NOUN_veterinario_ADJ", + "médula_NOUN_espinal_ADJ", + "médula_NOUN_óseo_ADJ", + "mérida_PROPN_yucatán_PROPN", + "método_NOUN_anticonceptivo_ADJ", + "método_NOUN_empleado_ADJ", + "método_NOUN_innovador_ADJ", + "método_NOUN_pedagógico_ADJ", + "método_NOUN_utilizado_ADJ", + "méxico_PROPN_aicm_PROPN", + "méxico_PROPN_banxico_PROPN", + "méxico_PROPN_df_PROPN", + "méxico_PROPN_esmas_PROPN", + "méxico_PROPN_micronesio_ADJ", + "méxico_PROPN_mongolia_PROPN", + "méxico_PROPN_mozambique_PRON", + "méxico_PROPN_mónaco_ADJ", + "méxico_PROPN_pvem_PROPN", + "méxico_PROPN_unam_PROPN", + "mínimo_ADJ_exigido_ADJ", + "mínimo_NOUN_histórico_ADJ", + "mío_DET_propio_ADJ", + "módico_ADJ_precio_NOUN", + "mónaco_ADJ_mongolia_ADJ", + "mónaco_ADJ_mongolia_NOUN", + "mónaco_ADJ_mozambicar_VERB", + "mónaco_ADJ_nicaragua_PROPN", + "mónaco_ADJ_noruego_ADJ", + "mónaco_PROPN_mongolia_PROPN", + "mónaco_PROPN_montenegro_PROPN", + "móvil_NOUN_policial_ADJ", + "múltiple_ADJ_faceta_NOUN", + "múltiple_ADJ_interesado_NOUN", + "música_NOUN_clásico_ADJ", + "música_NOUN_danza_NOUN", + "música_NOUN_folclórico_ADJ", + "música_NOUN_pop_ADJ", + "na_ADP_região_PROPN", + "nacido_ADJ_fuera_ADV", + "nacido_ADJ_vivo_ADJ", + "nacimiento_NOUN_prematuro_ADJ", + "nacional_PROPN_africano_PROPN", + "nacional_PROPN_bancaria_PROPN", + "nacional_PROPN_bolivariana_PROPN", + "nacional_PROPN_cen_PROPN", + "nacional_PROPN_constituyente_PROPN", + "nacional_PROPN_demócrata_PROPN", + "nacional_PROPN_electoral_PROPN", + "nacional_PROPN_forestal_PROPN", + "nacional_PROPN_karen_PROPN", + "nacional_PROPN_pan_PROPN", + "nacional_PROPN_sirio_PROPN", + "nacional_PROPN_smn_PROPN", + "nacionalidad_NOUN_argelino_ADJ", + "nacionalidad_NOUN_belga_ADJ", + "nacionalidad_NOUN_boliviano_ADJ", + "nacionalidad_NOUN_dominante_ADJ", + "nacionalidad_NOUN_kuwaití_ADJ", + "nacionalidad_NOUN_marroquí_ADJ", + "nacionalidad_NOUN_paraguayo_ADJ", + "nacionalidad_NOUN_pertenencia_NOUN", + "nacionalidad_NOUN_predominante_ADJ", + "nacionalidad_NOUN_rumano_ADJ", + "nacionalismo_NOUN_catalán_ADJ", + "nacionalismo_NOUN_vasco_ADJ", + "nacionalista_NOUN_catalán_ADJ", + "nacionalista_NOUN_vasco_ADJ", + "naciones_PROPN_suramericanas_PROPN", + "naciones_PROPN_unidas_PROPN", + "nación_NOUN_caribeño_ADJ", + "nación_NOUN_civilizado_ADJ", + "nación_NOUN_ginebra_PROPN", + "nación_NOUN_industrializado_ADJ", + "nación_NOUN_sudamericano_ADJ", + "nación_NOUN_unido_ADJ", + "nación_PROPN_scjn_PROPN", + "nada_ADV_bueno_ADJ", + "nada_ADV_desdeñable_ADJ", + "nada_ADV_despreciable_ADJ", + "nada_ADV_fácil_ADJ", + "nada_ADV_mal_ADV", + "nada_ADV_sencillo_ADJ", + "nada_NOUN_menos_ADV", + "nadi_PROPN_fiji_PROPN", + "nadie_PRON_ar_AUX", + "nadie_PRON_dudar_VERB", + "nafarroa_PROPN_bai_PROPN", + "nafta_NOUN_súper_ADJ", + "nagorno_PROPN_karabaj_PROPN", + "nahir_PROPN_galarza_PROPN", + "nahuel_PROPN_huapi_PROPN", + "nairo_PROPN_quintana_PROPN", + "nairobi_NOUN_kenya_PROPN", + "nairobi_NOUN_orientado_ADJ", + "nairobi_PROPN_kenya_PROPN", + "naji_PROPN_sabri_PROPN", + "nakkari_PROPN_república_NOUN", + "nam_NOUN_yemen_PROPN", + "nam_NOUN_zambia_PROPN", + "name_PROPN_of_PROPN", + "namibio_ADJ_nauru_PROPN", + "namibio_ADJ_nepal_NOUN", + "namibio_ADJ_nepal_PROPN", + "namibio_ADJ_nicaragua_PROPN", + "namibio_ADJ_nigerio_ADJ", + "namibio_ADJ_omán_ADJ", + "nancy_PROPN_beteta_PROPN", + "nancy_PROPN_pelosi_PROPN", + "nanomaterial_NOUN_manufacturado_ADJ", + "naomi_PROPN_campbell_PROPN", + "napoleón_PROPN_iii_PROPN", + "narcotraficante_NOUN_mexicano_ADJ", + "nariz_NOUN_aguileño_ADJ", + "natalegawa_PROPN_indonesio_ADJ", + "natalie_PROPN_portman_PROPN", + "national_PROPN_association_PROPN", + "national_PROPN_geographic_PROPN", + "national_PROPN_human_PROPN", + "national_PROPN_institutions_PROPN", + "nations_PROPN_convention_PROPN", + "nations_PROPN_plaza_PROPN", + "nations_PROPN_unies_PROPN", + "natural_ADJ_resources_PROPN", + "natural_PROPN_resources_PROPN", + "naturaleza_NOUN_cambiante_ADJ", + "naturaleza_NOUN_cometido_ADJ", + "naturaleza_NOUN_uicn_PROPN", + "nauru_PROPN_nepal_PROPN", + "nauru_PROPN_nicaragua_PROPN", + "nauru_PROPN_palau_PROPN", + "nauru_PROPN_serbia_PROPN", + "nauukol_PROPN_sa_PROPN", + "navarra_PROPN_titel_PROPN", + "navarro_PROPN_noticiasnavarro_PROPN", + "nave_NOUN_espacial_ADJ", + "nave_NOUN_industrial_ADJ", + "navegación_NOUN_aéreo_ADJ", + "navegación_NOUN_interior_ADJ", + "navegación_NOUN_marítimo_ADJ", + "navegación_PROPN_aérea_PROPN", + "navegador_NOUN_web_ADJ", + "nayib_PROPN_bukele_PROPN", + "nazarena_PROPN_vélez_PROPN", + "necesidad_NOUN_acuciante_ADJ", + "necesidad_NOUN_apremiante_ADJ", + "necesidad_NOUN_cambiant_ADJ", + "necesidad_NOUN_imperioso_ADJ", + "necesitar_VERB_desesperadamente_ADV", + "necesitar_VERB_urgentemente_ADV", + "ned_PROPN_land_PROPN", + "need_PROPN_for_PROPN", + "need_PROPN_to_PROPN", + "negar_VERB_categóricamente_ADV", + "negar_VERB_rotundamente_ADV", + "negar_VERB_tajantemente_ADV", + "negligencia_NOUN_grave_ADJ", + "negligencia_NOUN_médico_ADJ", + "negociación_NOUN_colectivo_ADJ", + "negociación_NOUN_paritaria_ADJ", + "negociado_ADJ_multilateralmente_ADJ", + "negociador_NOUN_comercial_ADJ", + "negocio_NOUN_interino_ADJ", + "neil_PROPN_armstrong_PROPN", + "neil_PROPN_jamaica_PROPN", + "nelson_PROPN_mandela_PROPN", + "nepal_NOUN_níger_NOUN", + "nepal_PROPN_maoísta_ADJ", + "nepal_PROPN_nicaragua_PROPN", + "nepal_PROPN_nigeria_PROPN", + "nepal_PROPN_nigerio_ADJ", + "nepal_PROPN_pakistán_PROPN", + "nepal_PROPN_unmin_PROPN", + "nervio_NOUN_óptico_ADJ", + "nervioso_ADJ_central_ADJ", + "nery_PROPN_castillo_PROPN", + "neste_NOUN_domingo_NOUN", + "neste_NOUN_sábado_NOUN", + "neto_ADJ_consolidado_ADJ", + "network_PROPN_for_PROPN", + "network_PROPN_of_PROPN", + "neumático_NOUN_usado_ADJ", + "nevis_PROPN_samoa_PROPN", + "nevis_PROPN_san_PROPN", + "nevis_PROPN_santa_PROPN", + "new_PROPN_deal_PROPN", + "new_PROPN_delhi_PROPN", + "new_PROPN_england_PROPN", + "new_PROPN_hampshire_PROPN", + "new_PROPN_haven_PROPN", + "new_PROPN_jersey_PROPN", + "new_PROPN_orleans_PROPN", + "new_PROPN_york_PROPN", + "new_PROPN_zealand_PROPN", + "news_PROPN_corp_PROPN", + "news_PROPN_corporation_PROPN", + "news_PROPN_international_PROPN", + "news_PROPN_of_PROPN", + "newt_PROPN_gingrich_PROPN", + "nexo_NOUN_causal_ADJ", + "ng_NOUN_g_NOUN", + "ngo_PROPN_coalition_PROPN", + "ni_ADV_rastro_NOUN", + "ni_ADV_un_NUM", + "ni_CCONJ_perezoso_ADJ", + "ni_CCONJ_remotamente_ADV", + "ni_CCONJ_siquiera_NOUN", + "nicanor_PROPN_duarte_PROPN", + "nicaragua_PROPN_nigeria_PROPN", + "nicaragua_PROPN_nigerio_ADJ", + "nicaragua_PROPN_noruego_ADJ", + "nicaragua_PROPN_níger_PROPN", + "nicaragua_PROPN_panamá_PROPN", + "nick_PROPN_clegg_PROPN", + "nicky_PROPN_jam_PROPN", + "nico_PROPN_rosberg_PROPN", + "nicolas_PROPN_cage_PROPN", + "nicolas_PROPN_sarkozy_PROPN", + "nicole_PROPN_kidman_PROPN", + "nicole_PROPN_neumann_PROPN", + "nicole_PROPN_valenta_ADJ", + "nicolás_PROPN_almagro_PROPN", + "nicolás_PROPN_dujovne_PROPN", + "nicolás_PROPN_maduro_PROPN", + "nicolás_PROPN_sarkozy_PROPN", + "nicosia_PROPN_violar_VERB", + "niebla_NOUN_matinal_ADJ", + "nigel_PROPN_rodley_PROPN", + "nigeria_NOUN_noruego_ADJ", + "nigeria_NOUN_omán_ADJ", + "nigeria_PROPN_noruega_PROPN", + "nigeria_PROPN_noruego_ADJ", + "nigeria_PROPN_omán_ADJ", + "nigeria_PROPN_pakistán_PROPN", + "nigerio_ADJ_noruego_ADJ", + "nigerio_ADJ_pakistán_PROPN", + "nikanor_PROPN_ivánovich_PROPN", + "nilo_PROPN_azul_ADJ", + "ninel_PROPN_conde_PROPN", + "nintendo_PROPN_ds_PROPN", + "nintendo_PROPN_switch_PROPN", + "nisuke_PROPN_ando_PROPN", + "nisuke_PROPN_ar_VERB", + "nitin_PROPN_desai_ADV", + "nivel_NOUN_microeconómico_ADJ", + "nivel_NOUN_ministerial_ADJ", + "nivel_NOUN_preindustrial_ADJ", + "nivel_NOUN_subnacional_ADJ", + "nivel_PROPN_inicial_PROPN", + "niña_NOUN_adolescente_ADJ", + "niña_NOUN_matriculado_ADJ", + "niña_NOUN_refugiado_ADJ", + "niñez_PROPN_adolescencia_PROPN", + "niño_NOUN_autista_ADJ", + "niño_NOUN_desnutrido_ADJ", + "niño_NOUN_discapacitado_ADJ", + "niño_NOUN_excombatient_ADJ", + "niño_NOUN_huérfano_ADJ", + "niño_NOUN_malnutrido_ADJ", + "niño_NOUN_mimado_ADJ", + "niño_NOUN_refugiado_ADJ", + "niño_NOUN_solicitant_ADJ", + "niño_PROPN_art_NOUN", + "niño_PROPN_crc_PROPN", + "niño_PROPN_jesús_PROPN", + "niños_PROPN_héroes_PROPN", + "nl_PROPN_señor_NOUN", + "nl_PROPN_señora_PROPN", + "no_PART_alineados_PROPN", + "no_PART_entanto_NOUN", + "no_PART_obstante_NOUN", + "no_PART_solamente_ADV", + "no_PART_solo_NOUN", + "no_PART_sólo_ADV", + "noam_PROPN_chomsky_PROPN", + "noble_NOUN_ideal_ADJ", + "noble_NOUN_objetivo_ADJ", + "nobuyasu_PROPN_abe_PROPN", + "nocaut_NOUN_técnico_ADJ", + "noeleen_VERB_heyzer_PRON", + "nokia_PROPN_lumia_PROPN", + "nombre_NOUN_del_DET", + "nombre_NOUN_patronímico_ADJ", + "nominación_NOUN_presidencial_ADJ", + "non_NOUN_grata_NOUN", + "nonagésimo_ADJ_día_NOUN", + "nord_PROPN_stream_PROPN", + "norma_NOUN_consuetudinaria_ADJ", + "norma_NOUN_contable_ADJ", + "norma_NOUN_imperativa_ADJ", + "norma_NOUN_imperativo_ADJ", + "norma_NOUN_iso_ADJ", + "norma_NOUN_iso_PROPN", + "norma_NOUN_uniforme_ADJ", + "normalización_NOUN_iso_NOUN", + "normativa_NOUN_vigente_ADJ", + "normativo_ADJ_jurídicamente_ADV", + "norte_NOUN_siberia_PROPN", + "norte_PROPN_otan_PROPN", + "norte_PROPN_república_PROPN", + "norte_PROPN_tlcan_PROPN", + "north_PROPN_america_PROPN", + "north_PROPN_american_PROPN", + "north_PROPN_carolina_PROPN", + "northern_PROPN_ireland_PROPN", + "northern_PROPN_rock_PROPN", + "noruega_PROPN_países_PROPN", + "noruego_ADJ_omán_ADJ", + "noruego_ADJ_palau_PROPN", + "noruego_ADJ_panamá_PROPN", + "noruego_ADJ_polonia_PROPN", + "nos_DET_último_ADJ", + "nosocomio_NOUN_local_ADJ", + "not_PROPN_to_PROPN", + "nota_NOUN_explicativa_ADJ", + "nota_NOUN_explicativo_ADJ", + "nota_NOUN_informativo_ADJ", + "nota_NOUN_orientativo_ADJ", + "nota_NOUN_supra_ADV", + "nota_NOUN_supra_PROPN", + "nota_NOUN_verbal_ADJ", + "notar_VERB_by_PROPN", + "noti_PROPN_rionoti_PROPN", + "noticia_NOUN_falso_ADJ", + "noticia_NOUN_kyodo_PROPN", + "noticia_NOUN_xinhua_PROPN", + "noticias_PROPN_ecuador_PROPN", + "noticias_PROPN_manabi_PROPN", + "noticias_PROPN_uruguay_PROPN", + "notificación_NOUN_inscrito_ADJ", + "notificación_NOUN_previo_ADJ", + "notificar_VERB_comentario_NOUN", + "notificar_VERB_oficialmente_ADV", + "notre_PROPN_dame_PROPN", + "nou_NUM_camp_PROPN", + "nov_NOUN_efe_PROPN", + "nova_PROPN_york_PROPN", + "novagalicia_PROPN_banco_PROPN", + "novak_PROPN_djokovic_PROPN", + "novela_NOUN_gráfico_ADJ", + "novela_NOUN_homónimo_ADJ", + "novela_NOUN_negro_ADJ", + "noveno_ADJ_episodio_NOUN", + "noveno_ADJ_inning_NOUN", + "noveno_ADJ_período_NOUN", + "noventa_NUM_minuto_NOUN", + "novi_PROPN_sad_PROPN", + "nube_NOUN_disperso_ADJ", + "nublado_ADJ_parcial_ADJ", + "nublado_ADJ_probabilidad_NOUN", + "nubosidad_NOUN_variable_ADJ", + "nuclear_ADJ_iraní_ADJ", + "nudo_NOUN_gordiano_ADJ", + "nuestra_PROPN_belleza_PROPN", + "nuestra_PROPN_señora_PROPN", + "nuestro_DET_antepasado_NOUN", + "nuestro_DET_conciudadano_NOUN", + "nueva_ADJ_cuenta_NOUN", + "nueva_ADJ_zelandia_PROPN", + "nueva_PROPN_alianza_PROPN", + "nueva_PROPN_caledonia_PROPN", + "nueva_PROPN_delhi_PROPN", + "nueva_PROPN_democracia_PROPN", + "nueva_PROPN_esparta_PROPN", + "nueva_PROPN_gales_PROPN", + "nueva_PROPN_generación_PROPN", + "nueva_PROPN_guinea_PROPN", + "nueva_PROPN_hampshire_PROPN", + "nueva_PROPN_inglaterra_PROPN", + "nueva_PROPN_jersey_PROPN", + "nueva_PROPN_mayoría_PROPN", + "nueva_PROPN_orleans_PROPN", + "nueva_PROPN_orleáns_PROPN", + "nueva_PROPN_rumasa_PROPN", + "nueva_PROPN_segovia_PROPN", + "nueva_PROPN_york_PROPN", + "nueva_PROPN_zelanda_PROPN", + "nueva_PROPN_zelandia_PROPN", + "nuevas_PROPN_generaciones_PROPN", + "nueve_NUM_milímetro_NOUN", + "nueve_NUM_rebote_NOUN", + "nuevo_ADJ_brunswick_NOUN", + "nuevo_ADJ_brunswick_PROPN", + "nuevo_ADJ_caledonia_NOUN", + "nuevo_ADJ_caledonia_PROPN", + "nuevo_ADJ_cuño_NOUN", + "nuevo_ADJ_delhi_PROPN", + "nuevo_ADJ_gasómetro_PROPN", + "nuevo_ADJ_laredo_PROPN", + "nuevo_ADJ_testamento_PROPN", + "nuevo_ADJ_zelandia_PROPN", + "nuez_NOUN_moscado_ADJ", + "nuez_NOUN_vómico_ADJ", + "number_PROPN_of_PROPN", + "nunca_ADV_visto_ADJ", + "nuncio_NOUN_apostólico_ADJ", + "nutrición_NOUN_infantil_ADJ", + "nº_NOUN_dictamen_NOUN", + "nº_NOUN_recop_NOUN", + "nº_NOUN_xxiii_PROPN", + "nº_NOUN_xxx_PROPN", + "nº_NUM_oberlandesgericht_PROPN", + "nº_NUM_págs_PROPN", + "nº_NUM_párr_INTJ", + "nº_NUM_párrs_ADJ", + "nº_PROPN_párr_NOUN", + "nº_SYM_pág_NOUN", + "nº_SYM_párr_NOUN", + "não_PROPN_é_CCONJ", + "não_SYM_é_AUX", + "não_SYM_é_CCONJ", + "néstor_PROPN_kirchner_PROPN", + "néstor_PROPN_reverol_PROPN", + "níger_NOUN_nigeria_NOUN", + "níger_NOUN_nigeria_PROPN", + "níger_NOUN_noruego_ADJ", + "níger_PROPN_nigeria_NOUN", + "níger_PROPN_nigeria_PROPN", + "nódulo_NOUN_polimetálico_ADJ", + "núcleo_NOUN_duro_ADJ", + "núcleo_NOUN_familiar_ADJ", + "núcleo_NOUN_urbano_ADJ", + "número_NOUN_indeterminado_ADJ", + "núñez_PROPN_feijóo_PROPN", + "o_CCONJ_degradante_ADJ", + "o_CCONJ_sea_NOUN", + "o_CCONJ_treinador_NOUN", + "oaxaca_PROPN_chiapas_PROPN", + "oaxaca_PROPN_oax_PROPN", + "obedecer_VERB_fundamentalmente_ADV", + "obedecer_VERB_principalmente_ADV", + "obedecer_VERB_órden_NOUN", + "obediencia_NOUN_debido_ADJ", + "oberlandesgericht_PROPN_köln_PROPN", + "oberst_ADJ_landesgericht_PROPN", + "oberster_PROPN_gerichtshof_PROPN", + "obesidad_NOUN_infantil_ADJ", + "obesidad_NOUN_mórbido_ADJ", + "obispo_NOUN_auxiliar_ADJ", + "obispo_NOUN_católico_ADJ", + "objeción_NOUN_tardío_ADJ", + "objetivo_NOUN_cuantificado_ADJ", + "objetivo_NOUN_fijado_ADJ", + "objeto_NOUN_aeroespacial_ADJ", + "objeto_NOUN_espacial_ADJ", + "objeto_NOUN_lanzado_ADJ", + "obligación_NOUN_asumido_ADJ", + "obligación_NOUN_aut_PROPN", + "obligación_NOUN_contingent_ADJ", + "obligación_NOUN_contractual_ADJ", + "obligación_NOUN_contraído_ADJ", + "obligación_NOUN_dimanada_ADJ", + "obligación_NOUN_dimanant_ADJ", + "obligación_NOUN_emanada_ADJ", + "obligación_NOUN_enunciada_ADJ", + "obligación_NOUN_erga_NOUN", + "obligación_NOUN_estipulada_ADJ", + "obligación_NOUN_violado_ADJ", + "obligatorio_ADJ_email_NOUN", + "obligatorio_ADJ_url_NOUN", + "obligatorioborrar_PROPN_enviar_PROPN", + "obligatorioborrar_PROPN_enviar_VERB", + "obligatorioborrar_VERB_enviar_VERB", + "obra_NOUN_hidráulico_ADJ", + "obra_NOUN_literario_ADJ", + "obra_NOUN_maestro_ADJ", + "obra_NOUN_pía_ADJ", + "obra_NOUN_teatral_ADJ", + "obra_PROPN_pública_PROPN", + "obra_PROPN_social_PROPN", + "obras_PROPN_completas_PROPN", + "obras_PROPN_públicas_PROPN", + "obras_PROPN_sanitarias_PROPN", + "obrero_PROPN_español_PROPN", + "observación_NOUN_astronómico_ADJ", + "observación_NOUN_final_ADJ", + "observación_NOUN_formulado_ADJ", + "observación_NOUN_introductoria_ADJ", + "observador_ADJ_permanente_ADJ", + "observador_NOUN_acreditado_ADJ", + "observador_NOUN_militar_ADJ", + "observador_NOUN_permanente_ADJ", + "observancia_NOUN_estricto_ADJ", + "observatorio_NOUN_astronómico_ADJ", + "observatorio_NOUN_europeo_ADJ", + "observatorio_NOUN_urbano_ADJ", + "observatorio_PROPN_europeo_PROPN", + "observatorio_PROPN_sirio_PROPN", + "obstaculizar_VERB_gravemente_ADV", + "obstaculizar_VERB_seriamente_ADV", + "obstáculo_NOUN_arancelario_ADJ", + "obstáculo_NOUN_burocrático_ADJ", + "obstáculo_NOUN_encontrado_ADJ", + "ocasionar_VERB_daño_NOUN", + "ocho_NUM_rebote_NOUN", + "ocio_NOUN_nocturno_ADJ", + "oct_NOUN_efe_PROPN", + "octavio_PROPN_paz_PROPN", + "octavo_ADJ_inning_NOUN", + "octavo_ADJ_período_NOUN", + "octubre_NOUN_véansar_VERB", + "ocupación_NOUN_extranjero_ADJ", + "ocupación_NOUN_hotelero_ADJ", + "ocupación_NOUN_israelí_ADJ", + "ocupación_NOUN_nazi_ADJ", + "ocupado_ADJ_incluido_ADJ", + "ocupante_ADJ_israelí_ADJ", + "ocupante_NOUN_ilegal_ADJ", + "ocurrido_ADJ_recientemente_ADV", + "océano_NOUN_atlántico_ADJ", + "océano_NOUN_atlántico_PROPN", + "océano_NOUN_pacífico_ADJ", + "océano_NOUN_pacífico_PROPN", + "océano_NOUN_ártico_ADJ", + "océano_NOUN_índico_ADJ", + "océano_NOUN_índico_PROPN", + "océano_PROPN_atlántico_PROPN", + "océano_PROPN_pacífico_PROPN", + "océano_PROPN_índico_PROPN", + "odio_NOUN_racial_ADJ", + "odio_NOUN_religioso_ADJ", + "oea_PROPN_luis_PROPN", + "oer_VERB_públicamente_ADV", + "of_ADP_a_DET", + "of_ADP_august_NOUN", + "of_ADP_children_NOUN", + "of_ADP_children_PROPN", + "of_ADP_experts_PROPN", + "of_ADP_human_PROPN", + "of_ADP_indigenous_PROPN", + "of_ADP_the_DET", + "of_ADP_the_PROPN", + "of_ADP_women_PROPN", + "of_PROPN_action_PROPN", + "of_PROPN_all_PROPN", + "of_PROPN_america_PROPN", + "of_PROPN_an_PROPN", + "of_PROPN_canada_PROPN", + "of_PROPN_children_PROPN", + "of_PROPN_course_PROPN", + "of_PROPN_economic_PROPN", + "of_PROPN_economics_PROPN", + "of_PROPN_education_PROPN", + "of_PROPN_europe_PROPN", + "of_PROPN_first_PROPN", + "of_PROPN_foreign_PROPN", + "of_PROPN_germany_PROPN", + "of_PROPN_goods_PROPN", + "of_PROPN_great_PROPN", + "of_PROPN_health_PROPN", + "of_PROPN_her_PROPN", + "of_PROPN_his_PROPN", + "of_PROPN_human_PROPN", + "of_PROPN_indigenous_PROPN", + "of_PROPN_international_PROPN", + "of_PROPN_iran_PROPN", + "of_PROPN_its_PROPN", + "of_PROPN_jurists_PROPN", + "of_PROPN_justice_PROPN", + "of_PROPN_life_PROPN", + "of_PROPN_loss_PROPN", + "of_PROPN_nuclear_PROPN", + "of_PROPN_persons_PROPN", + "of_PROPN_public_PROPN", + "of_PROPN_scotland_PROPN", + "of_PROPN_small_PROPN", + "of_PROPN_spain_PROPN", + "of_PROPN_state_PROPN", + "of_PROPN_statistics_PROPN", + "of_PROPN_technology_PROPN", + "of_PROPN_the_PROPN", + "of_PROPN_their_PROPN", + "of_PROPN_this_PROPN", + "of_PROPN_treaties_PROPN", + "of_PROPN_war_PROPN", + "of_PROPN_warcraft_PROPN", + "of_PROPN_which_PROPN", + "of_PROPN_women_PROPN", + "ofensiva_NOUN_israelí_ADJ", + "ofensiva_NOUN_terrestre_ADJ", + "oferta_NOUN_anormalmente_ADV", + "oferta_NOUN_formativo_ADJ", + "oferta_NOUN_ganador_ADJ", + "oferta_NOUN_gastronómico_ADJ", + "oferta_NOUN_turístico_ADJ", + "oferta_PROPN_pública_PROPN", + "off_NOUN_shore_NOUN", + "office_PROPN_for_PROPN", + "office_PROPN_of_ADP", + "office_PROPN_of_PROPN", + "oficial_ADJ_adjunto_NOUN", + "oficial_ADJ_certificador_NOUN", + "oficial_ADJ_granma_PROPN", + "oficial_ADJ_xinhua_PROPN", + "oficial_NOUN_designado_ADJ", + "oficial_NOUN_subalterno_ADJ", + "oficialista_ADJ_partido_PROPN", + "oficina_NOUN_extrasede_NOUN", + "oficina_NOUN_extrasede_PROPN", + "oficina_NOUN_tel_INTJ", + "oficina_NOUN_tel_NOUN", + "oficina_NOUN_united_PROPN", + "oficina_PROPN_anticorrupción_PROPN", + "oficina_PROPN_fax_NOUN", + "oficina_PROPN_federal_PROPN", + "oficina_PROPN_fiscal_PROPN", + "oficina_PROPN_política_PROPN", + "oficina_PROPN_regional_PROPN", + "oficioso_ADJ_convocado_ADJ", + "ofrenda_NOUN_floral_ADJ", + "oh_INTJ_dios_INTJ", + "oh_INTJ_señor_INTJ", + "oidir_VERB_oidir_VERB", + "oir_VERB_misa_NOUN", + "oir_VERB_ruido_NOUN", + "oit_ADV_organización_NOUN", + "oit_PROPN_ipec_PROPN", + "ojiva_NOUN_nuclear_ADJ", + "ojo_NOUN_avizor_ADJ", + "ojo_NOUN_azul_ADJ", + "ojo_NOUN_brillar_VERB", + "ojo_NOUN_clavado_ADJ", + "ojo_NOUN_enrojecido_ADJ", + "ojo_NOUN_hundido_ADJ", + "ojo_NOUN_lloroso_ADJ", + "ojo_NOUN_vendado_ADJ", + "oklahoma_PROPN_city_PROPN", + "olar_VERB_otunnu_NOUN", + "old_PROPN_boys_PROPN", + "old_PROPN_trafford_PROPN", + "oler_VERB_mal_ADV", + "olfato_NOUN_goleador_ADJ", + "olga_PROPN_sánchez_PROPN", + "olimpiada_PROPN_nacional_PROPN", + "oliva_NOUN_virgen_ADJ", + "oliver_PROPN_stone_PROPN", + "oliy_PROPN_majlis_PROPN", + "oliy_PROPN_maylis_PROPN", + "ollanta_PROPN_humala_PROPN", + "olli_PROPN_rehn_PROPN", + "olusegun_PROPN_obasanjo_PROPN", + "om_PRON_organización_NOUN", + "omar_PROPN_bravo_PROPN", + "omar_PROPN_hassan_PROPN", + "ombudsman_NOUN_parlamentario_ADJ", + "omán_ADJ_pakistán_PROPN", + "omán_ADJ_panamá_PROPN", + "omán_ADJ_qatar_VERB", + "omán_PROPN_pakistán_PROPN", + "omán_PROPN_países_PROPN", + "omán_VERB_país_NOUN", + "on_ADJ_line_ADJ", + "on_ADJ_the_PROPN", + "on_ADP_human_PROPN", + "on_ADP_the_DET", + "on_PROPN_his_PROPN", + "on_PROPN_human_PROPN", + "on_PROPN_the_PROPN", + "on_PROPN_women_PROPN", + "once_NUM_caldas_PROPN", + "once_NUM_ideal_ADJ", + "once_NUM_inicial_ADJ", + "once_NUM_titular_NOUN", + "once_PROPN_caldas_PROPN", + "onda_NOUN_corto_ADJ", + "onda_NOUN_expansivo_ADJ", + "onda_NOUN_tropical_ADJ", + "onda_PROPN_cero_NUM", + "ondear_VERB_bandera_NOUN", + "one_PROPN_direction_PROPN", + "one_PROPN_of_PROPN", + "one_PROPN_who_PROPN", + "oneroso_ADJ_carga_NOUN", + "ong_NOUN_interesado_ADJ", + "online_PROPN_distributed_PROPN", + "onu_PROPN_ban_PROPN", + "onu_PROPN_kofi_PROPN", + "onu_PROPN_mujeres_PROPN", + "onusom_PROPN_ii_PROPN", + "opción_NOUN_preferido_ADJ", + "opción_NOUN_viable_ADJ", + "open_PROPN_society_PROPN", + "open_PROPN_source_PROPN", + "operacional_ADJ_designado_ADJ", + "operaciones_PROPN_especiales_PROPN", + "operación_NOUN_encubierta_ADJ", + "operación_NOUN_garantizado_ADJ", + "operación_NOUN_híbrido_ADJ", + "operación_NOUN_licorne_NOUN", + "operación_NOUN_multidimensional_ADJ", + "operación_NOUN_púrpura_ADJ", + "operación_NOUN_quirúrgico_ADJ", + "operación_NOUN_topacio_NOUN", + "operación_PROPN_puerto_PROPN", + "operación_PROPN_triunfo_PROPN", + "operador_NOUN_móvil_ADJ", + "operador_NOUN_turístico_ADJ", + "operativo_ADJ_estándar_ADJ", + "operativo_ADJ_uniforme_NOUN", + "operativo_NOUN_policial_ADJ", + "opinión_NOUN_consultivo_ADJ", + "opinión_NOUN_discrepant_ADJ", + "opinión_NOUN_disidente_ADJ", + "opinión_NOUN_divergent_ADJ", + "opinión_NOUN_expresado_ADJ", + "opinión_NOUN_manifestado_ADJ", + "opinión_PROPN_austral_PROPN", + "opinión_PROPN_on_PROPN", + "opinión_PROPN_pública_PROPN", + "opiáceo_NOUN_utilizado_ADJ", + "oponer_VERB_enérgicamente_ADV", + "oponer_VERB_firmemente_ADV", + "oponer_VERB_resistencia_NOUN", + "oponer_VERB_rotundamente_ADV", + "oportunismo_NOUN_político_ADJ", + "oposición_NOUN_venezolano_ADJ", + "opositor_ADJ_partido_PROPN", + "oprah_PROPN_winfrey_PROPN", + "ops_PROPN_oms_PROPN", + "opus_PROPN_dei_PROPN", + "oración_NOUN_sustituir_VERB", + "oración_NOUN_sustitúyansir_VERB", + "orador_NOUN_inscrito_ADJ", + "orador_NOUN_invitado_ADJ", + "orador_NOUN_precedente_ADJ", + "oradora_NOUN_confíar_VERB", + "oradora_NOUN_desear_VERB", + "oradoro_ADJ_pregunta_NOUN", + "oradoro_ADJ_preguntar_VERB", + "oralmente_ADV_revisado_ADJ", + "orange_PROPN_market_PROPN", + "orden_NOUN_alfabético_ADJ", + "orden_NOUN_cronológico_ADJ", + "orden_PROPN_público_PROPN", + "ordenación_NOUN_forestal_ADJ", + "ordenación_NOUN_integrado_ADJ", + "ordenación_NOUN_pesquero_ADJ", + "ordenación_NOUN_sostenible_ADJ", + "ordenación_NOUN_territorial_ADJ", + "ordenación_PROPN_urbana_PROPN", + "ordenador_NOUN_personal_ADJ", + "ordenador_NOUN_portátil_ADJ", + "ordenamiento_NOUN_jurídico_ADJ", + "ordenamiento_NOUN_territorial_ADJ", + "ordenamiento_PROPN_territorial_PROPN", + "ordenanza_NOUN_municipal_ADJ", + "ordenanza_NOUN_nº_NUM", + "ordenanza_NOUN_nº_PROPN", + "ordenar_VERB_sacerdote_NOUN", + "organismo_NOUN_colaborador_ADJ", + "organismo_NOUN_coordinador_ADJ", + "organismo_NOUN_especializado_ADJ", + "organismo_NOUN_genéticamente_ADV", + "organismo_NOUN_regulador_ADJ", + "organismo_PROPN_internacional_PROPN", + "organismo_PROPN_nacional_PROPN", + "organización_NOUN_afiliada_ADJ", + "organización_NOUN_ambientalista_ADJ", + "organización_NOUN_intergubernamental_ADJ", + "organización_NOUN_panamericán_ADJ", + "organización_PROPN_internacional_PROPN", + "organización_PROPN_marítima_PROPN", + "organización_PROPN_marítimo_ADJ", + "organización_PROPN_meteorológica_PROPN", + "organización_PROPN_mundial_ADJ", + "organización_PROPN_mundial_PROPN", + "organización_PROPN_panamericana_PROPN", + "organizado_ADJ_conjuntamente_ADV", + "organizar_VERB_conjuntamente_ADV", + "organizar_VERB_cursillo_NOUN", + "organization_PROPN_for_PROPN", + "organization_PROPN_of_PROPN", + "organized_PROPN_crime_PROPN", + "orgullo_NOUN_gay_ADJ", + "orgullo_PROPN_gay_PROPN", + "oribe_PROPN_peralta_PROPN", + "orientación_NOUN_impartido_ADJ", + "orientación_NOUN_normativo_ADJ", + "orientación_NOUN_parental_ADJ", + "orientación_NOUN_sexual_ADJ", + "orientación_NOUN_vocacional_ADJ", + "orientado_ADJ_hacia_ADP", + "oriente_ADJ_medio_ADJ", + "oriente_NOUN_medio_ADJ", + "oriente_NOUN_medio_ADV", + "oriente_NOUN_medio_NUM", + "oriente_NOUN_medio_PROPN", + "oriente_PROPN_medio_ADJ", + "oriente_PROPN_medio_ADV", + "oriente_PROPN_medio_PROPN", + "oriente_PROPN_petrolero_PROPN", + "oriente_PROPN_próximo_ADJ", + "origen_NOUN_albanés_ADJ", + "origen_NOUN_animal_ADJ", + "origen_NOUN_hispano_ADJ", + "origen_NOUN_inmigrante_ADJ", + "origen_NOUN_magrebí_ADJ", + "origen_NOUN_marroquí_ADJ", + "origen_NOUN_rumano_ADJ", + "origen_NOUN_vegetal_ADJ", + "origen_NOUN_étnico_ADJ", + "original_ADJ_español_NOUN", + "original_ADJ_francés_NOUN", + "original_ADJ_inglés_NOUN", + "original_ADJ_árabe_NOUN", + "originario_ADJ_campesino_ADJ", + "orilla_NOUN_derecho_ADJ", + "orilla_NOUN_izquierdo_ADJ", + "orilla_NOUN_opuesto_ADJ", + "orillas_NOUN_del_DET", + "oriol_PROPN_junqueras_PROPN", + "oriol_PROPN_pujol_PROPN", + "orlando_PROPN_florida_PROPN", + "orlando_PROPN_zapata_PROPN", + "oro_NOUN_olímpico_ADJ", + "oro_NOUN_plata_NOUN", + "oro_PROPN_verde_PROPN", + "orquesta_NOUN_sinfónico_ADJ", + "orquesta_PROPN_filarmónica_PROPN", + "orquesta_PROPN_sinfónica_PROPN", + "orson_PROPN_welles_PROPN", + "ortega_PROPN_cano_PROPN", + "ortega_PROPN_díaz_PROPN", + "ortega_PROPN_lara_PROPN", + "os_DET_pessoa_NOUN", + "os_DET_pessoas_PROPN", + "osact_PROPN_convenir_VERB", + "osact_PROPN_invitar_VERB", + "osaka_PROPN_japón_PROPN", + "osama_NOUN_bin_PROPN", + "osama_PROPN_bin_PROPN", + "oscar_PROPN_aguad_PROPN", + "oscar_PROPN_arias_PROPN", + "oscar_PROPN_parrilli_PROPN", + "oscar_PROPN_wilde_PROPN", + "oscilar_VERB_entre_ADP", + "ose_NOUN_convenir_VERB", + "osetia_NOUN_meridional_ADJ", + "osetia_PROPN_meridional_ADJ", + "oshima_NOUN_japón_PROPN", + "oslo_PROPN_noruega_PROPN", + "oso_NOUN_polar_ADJ", + "osorio_PROPN_chong_PROPN", + "ossi_NOUN_observar_VERB", + "oswaldo_PROPN_payá_PROPN", + "oswaldo_PROPN_sánchez_PROPN", + "otorgar_VERB_beca_NOUN", + "otra_NOUN_cosa_NOUN", + "otra_NOUN_parte_NOUN", + "otro_ADJ_lado_NOUN", + "ottawa_PROPN_canadá_PROPN", + "otto_PROPN_pérez_PROPN", + "ou_CCONJ_não_PROPN", + "ould_PROPN_mohamed_PROPN", + "out_PROPN_of_PROPN", + "outro_ADJ_lado_NOUN", + "oveja_NOUN_negro_ADJ", + "over_PROPN_the_PROPN", + "oxford_PROPN_clarendon_PROPN", + "oxford_PROPN_reino_PROPN", + "oxford_PROPN_university_PROPN", + "ozono_NOUN_correspondiente_ADJ", + "oído_NOUN_sordo_ADJ", + "pa_NOUN_secr_PROPN", + "pabellón_NOUN_penitenciario_ADJ", + "pablo_PROPN_aimar_PROPN", + "pablo_PROPN_barrera_PROPN", + "pablo_PROPN_bengoechea_PROPN", + "pablo_PROPN_casado_PROPN", + "pablo_PROPN_crespo_PROPN", + "pablo_PROPN_escobar_PROPN", + "pablo_PROPN_iglesias_PROPN", + "pablo_PROPN_ii_PROPN", + "pablo_PROPN_milanés_PROPN", + "pablo_PROPN_motos_PROPN", + "pablo_PROPN_moyano_PROPN", + "pablo_PROPN_neruda_PROPN", + "pablo_PROPN_picasso_PROPN", + "pablo_PROPN_prigioni_PROPN", + "pablo_PROPN_ruz_PROPN", + "pablo_PROPN_vi_PROPN", + "pablo_PROPN_zabaleta_PROPN", + "pachi_PROPN_vázquez_PROPN", + "paciente_NOUN_diabético_ADJ", + "paciente_NOUN_hospitalizado_ADJ", + "paciente_NOUN_internado_ADJ", + "paciente_NOUN_oncológico_ADJ", + "paciente_NOUN_psiquiátrico_ADJ", + "pacific_PROPN_daily_PROPN", + "pacto_PROPN_fiscal_PROPN", + "pacto_PROPN_internacional_PROPN", + "pacífico_ADJ_próspero_ADJ", + "pacífico_ADJ_sur_ADJ", + "pacífico_NOUN_meridional_ADJ", + "pacífico_NOUN_noroccidental_ADJ", + "pacífico_PROPN_acp_PROPN", + "pacífico_PROPN_apec_PROPN", + "pacífico_PROPN_cespap_PROPN", + "pacífico_PROPN_meridional_ADJ", + "pacífico_PROPN_sur_ADJ", + "pacífico_PROPN_sur_PROPN", + "padecer_VERB_cáncer_NOUN", + "padecer_VERB_diabetes_NOUN", + "padecer_VERB_hambre_NOUN", + "padecer_VERB_malnutrición_NOUN", + "padecer_VERB_trastorno_NOUN", + "padre_NOUN_adoptivo_ADJ", + "padre_NOUN_aliaga_PROPN", + "padre_NOUN_fundador_ADJ", + "padre_NOUN_pirard_PROPN", + "padre_NOUN_soltero_ADJ", + "padre_PROPN_ambrosio_PROPN", + "padre_PROPN_jesús_PROPN", + "padrino_PROPN_lópez_PROPN", + "padrón_NOUN_electoral_ADJ", + "paga_NOUN_extra_ADJ", + "paga_NOUN_extraordinario_ADJ", + "pagar_VERB_mensualmente_ADV", + "pagar_VERB_puntualmente_ADV", + "pagar_VERB_íntegramente_ADV", + "pago_NOUN_anticipado_ADJ", + "pago_NOUN_atrasado_ADJ", + "pago_NOUN_compensatorio_ADJ", + "pago_NOUN_diferido_ADJ", + "pago_NOUN_efectuado_ADJ", + "pago_NOUN_interbancario_ADJ", + "pago_NOUN_plurianual_ADJ", + "pago_PROPN_chico_PROPN", + "pais_PROPN_cali_PROPN", + "pais_PROPN_montevideo_PROPN", + "paisaje_NOUN_forestal_ADJ", + "paisaje_NOUN_urbano_ADJ", + "pakistán_PROPN_palau_PROPN", + "pakistán_PROPN_panamá_PROPN", + "pakistán_PROPN_papua_PROPN", + "pakistán_PROPN_paraguay_PROPN", + "pakistán_PROPN_perú_PROPN", + "pakistán_PROPN_qatar_PROPN", + "pakistán_PROPN_qatar_VERB", + "palabra_NOUN_hueca_ADJ", + "palacio_NOUN_presidencial_ADJ", + "palacio_NOUN_wilson_PROPN", + "palacio_PROPN_euskalduna_PROPN", + "palacio_PROPN_legislativo_PROPN", + "palacio_PROPN_municipal_PROPN", + "palacio_PROPN_nacional_PROPN", + "palacio_PROPN_presidencial_PROPN", + "palacio_PROPN_real_PROPN", + "palais_NOUN_wilson_PROPN", + "palau_PROPN_blaugrana_PROPN", + "palau_PROPN_panamá_PROPN", + "palau_PROPN_papua_PROPN", + "palau_PROPN_sant_PROPN", + "palermo_PROPN_italia_PROPN", + "palestina_NOUN_ocupado_ADJ", + "palestina_PROPN_anp_PROPN", + "palestina_PROPN_olp_PROPN", + "palestino_ADJ_mahmoud_PROPN", + "palestino_ADJ_mahmud_PROPN", + "palestino_ADJ_ocupado_ADJ", + "palm_PROPN_beach_PROPN", + "palm_PROPN_sr_PROPN", + "palma_PROPN_arena_PROPN", + "palo_NOUN_derecho_ADJ", + "palo_NOUN_izquierdo_ADJ", + "palo_PROPN_alto_PROPN", + "pamela_PROPN_anderson_PROPN", + "pan_NOUN_dulce_ADJ", + "pan_PROPN_american_PROPN", + "pan_PROPN_prd_PROPN", + "panama_PROPN_papers_PROPN", + "panamá_PROPN_oeste_PROPN", + "panamá_PROPN_papers_PROPN", + "panamá_PROPN_papua_PROPN", + "panamá_PROPN_paraguay_PROPN", + "panamá_PROPN_perú_PROPN", + "panamá_PROPN_polonia_PROPN", + "pancho_PROPN_villa_PROPN", + "pandilla_NOUN_juvenil_ADJ", + "panel_NOUN_solar_ADJ", + "panorama_NOUN_desolador_ADJ", + "panorama_NOUN_musical_ADJ", + "panorama_NOUN_sombrío_ADJ", + "pantalla_NOUN_chico_ADJ", + "pantalla_NOUN_gigante_ADJ", + "pantalla_NOUN_lcd_PROPN", + "pantalla_NOUN_plano_ADJ", + "pantalla_NOUN_táctil_ADJ", + "pantalón_NOUN_corto_ADJ", + "pantalón_NOUN_negro_ADJ", + "pantalón_NOUN_vaquero_ADJ", + "paolo_PROPN_guerrero_PROPN", + "papa_NOUN_benedicto_PROPN", + "papa_NOUN_francisco_PROPN", + "papa_NOUN_frita_NOUN", + "papa_PROPN_benedicto_PROPN", + "papa_PROPN_francisco_PROPN", + "papa_PROPN_juan_PROPN", + "papa_PROPN_louis_PROPN", + "papel_NOUN_crucial_ADJ", + "papel_NOUN_decisivo_ADJ", + "papel_NOUN_desempeñado_ADJ", + "papel_NOUN_higiénico_ADJ", + "papel_NOUN_mojado_ADJ", + "papel_NOUN_preponderante_ADJ", + "papel_NOUN_protagonista_ADJ", + "papel_NOUN_protagónico_ADJ", + "papel_NOUN_rector_ADJ", + "papel_PROPN_prensa_PROPN", + "papiloma_NOUN_humano_ADJ", + "papua_PROPN_nueva_PROPN", + "papua_PROPN_nuevo_ADJ", + "papá_PROPN_noel_PROPN", + "papúa_PROPN_nueva_PROPN", + "paquete_NOUN_accionario_ADJ", + "paquete_NOUN_erika_PROPN", + "paquete_NOUN_ferroviario_ADJ", + "paquete_NOUN_turístico_ADJ", + "parada_NOUN_cardiorrespiratorio_ADJ", + "paradero_NOUN_desconocido_ADJ", + "parado_NOUN_registrado_ADJ", + "parafina_NOUN_clorada_ADJ", + "paraguay_PROPN_perú_PROPN", + "paraguay_PROPN_polonia_PROPN", + "paraje_NOUN_natural_ADJ", + "parar_VERB_miente_NOUN", + "paraíso_NOUN_fiscal_ADJ", + "parcial_ADV_o_CCONJ", + "parcialmente_ADV_compensado_ADJ", + "parcialmente_ADV_marítimo_ADJ", + "parcialmente_ADV_nublado_ADJ", + "parcialmente_ADV_satisfactorio_ADJ", + "parecer_VERB_sacado_ADJ", + "pareja_NOUN_casado_ADJ", + "pareja_NOUN_gay_ADJ", + "pareja_NOUN_heterosexual_ADJ", + "pareja_NOUN_homosexual_ADJ", + "pareja_NOUN_sentimental_ADJ", + "pariente_NOUN_cercano_ADJ", + "paris_PROPN_hilton_PROPN", + "paris_PROPN_saint_PROPN", + "parlamentario_NOUN_socialista_ADJ", + "parlamento_PROPN_centroamericano_PROPN", + "parlamento_PROPN_europeo_PROPN", + "parlamento_PROPN_panafricano_ADJ", + "parlamento_PROPN_sami_PROPN", + "parlamentos_PROPN_nacional_ADJ", + "paro_NOUN_cardiaco_ADJ", + "paro_NOUN_cardiorrespiratorio_ADJ", + "paro_NOUN_cardíaco_ADJ", + "paro_NOUN_convocado_ADJ", + "paro_NOUN_cívico_ADJ", + "paro_NOUN_docente_ADJ", + "paro_NOUN_indefinido_ADJ", + "paro_NOUN_juvenil_ADJ", + "parque_NOUN_acuático_ADJ", + "parque_NOUN_automotor_ADJ", + "parque_NOUN_automovilístico_ADJ", + "parque_NOUN_eólico_ADJ", + "parque_NOUN_industrial_ADJ", + "parque_NOUN_temático_ADJ", + "parque_NOUN_vehicular_ADJ", + "parque_NOUN_zoológico_ADJ", + "parque_PROPN_central_PROPN", + "parque_PROPN_industrial_PROPN", + "parque_PROPN_municipal_PROPN", + "parque_PROPN_nacional_PROPN", + "parque_PROPN_natural_PROPN", + "parque_PROPN_patricios_PROPN", + "parque_PROPN_roca_PROPN", + "parque_PROPN_sur_PROPN", + "parque_PROPN_tecnológico_PROPN", + "parques_PROPN_nacionales_PROPN", + "parqué_NOUN_neoyorquino_ADJ", + "parroquia_PROPN_san_PROPN", + "part_NOUN_i_CCONJ", + "part_NOUN_ii_ADJ", + "part_PROPN_i_CCONJ", + "part_PROPN_i_PROPN", + "part_PROPN_ii_PROPN", + "part_PROPN_iii_PROPN", + "part_PROPN_of_PROPN", + "parte_NOUN_abjasio_ADJ", + "parte_NOUN_contratant_ADJ", + "parte_NOUN_controlador_ADJ", + "parte_NOUN_dispositiva_ADJ", + "parte_NOUN_dispositivo_ADJ", + "parte_NOUN_ejecutant_ADJ", + "parte_NOUN_ejecutante_ADJ", + "parte_NOUN_georgián_ADJ", + "parte_NOUN_integrante_ADJ", + "parte_NOUN_requirente_ADJ", + "parte_NOUN_signataria_ADJ", + "parte_PROPN_impugnar_VERB", + "partera_NOUN_tradicional_ADJ", + "partes_PROPN_cp_PROPN", + "participación_NOUN_accionario_ADJ", + "participación_NOUN_activo_ADJ", + "participación_NOUN_ciudadano_ADJ", + "participación_PROPN_ciudadana_PROPN", + "participar_VERB_activamente_ADV", + "participar_VERB_constructivamente_ADV", + "participation_PROPN_in_ADP", + "particularmente_ADV_inquietante_ADJ", + "particularmente_ADV_preocupante_ADJ", + "particularmente_ADV_vulnerable_ADJ", + "partida_NOUN_doble_NOUN", + "partida_NOUN_obedecer_VERB", + "partida_NOUN_presupuestaria_ADJ", + "partida_NOUN_presupuestario_ADJ", + "partido_NOUN_amistoso_ADJ", + "partido_NOUN_comunista_ADJ", + "partido_NOUN_disputado_ADJ", + "partido_NOUN_gobernante_ADJ", + "partido_NOUN_jugado_ADJ", + "partido_NOUN_musavat_PROPN", + "partido_NOUN_nacionalista_ADJ", + "partido_NOUN_politico_ADJ", + "partido_NOUN_socialdemócrata_ADJ", + "partido_PROPN_acción_PROPN", + "partido_PROPN_aprista_PROPN", + "partido_PROPN_colorado_PROPN", + "partido_PROPN_comunista_ADJ", + "partido_PROPN_comunista_PROPN", + "partido_PROPN_conservador_PROPN", + "partido_PROPN_democrático_PROPN", + "partido_PROPN_demócrata_PROPN", + "partido_PROPN_encuentro_PROPN", + "partido_PROPN_justicialista_PROPN", + "partido_PROPN_laborista_PROPN", + "partido_PROPN_liberal_PROPN", + "partido_PROPN_nacionalista_PROPN", + "partido_PROPN_obrero_PROPN", + "partido_PROPN_popular_PROPN", + "partido_PROPN_radical_PROPN", + "partido_PROPN_republicano_PROPN", + "partido_PROPN_revolucionario_PROPN", + "partido_PROPN_socialdemócrata_PROPN", + "partido_PROPN_socialista_PROPN", + "partido_PROPN_verde_PROPN", + "partidos_PROPN_políticos_PROPN", + "partir_NOUN_del_DET", + "partnership_PROPN_for_PROPN", + "parto_NOUN_asistido_ADJ", + "parto_NOUN_atendido_ADJ", + "parto_NOUN_prematuro_ADJ", + "parts_PROPN_i_CCONJ", + "parálisis_NOUN_cerebral_ADJ", + "parámetro_NOUN_orbital_ADJ", + "parís_PROPN_saint_PROPN", + "pasaje_NOUN_aéreo_ADJ", + "pasajero_NOUN_transportado_ADJ", + "pasaporte_NOUN_diplomático_ADJ", + "pasaporte_NOUN_falso_ADJ", + "pasaporte_NOUN_válido_ADJ", + "pasar_VERB_desapercibida_ADJ", + "pasar_VERB_desapercibido_ADJ", + "pasar_VERB_inadvertido_ADJ", + "pascal_PROPN_lamy_PROPN", + "pase_NOUN_filtrado_ADJ", + "paseo_NOUN_marítimo_ADJ", + "paseo_PROPN_colón_PROPN", + "pasivo_ADJ_acumulado_ADJ", + "pasivo_ADJ_eventual_ADJ", + "pasivo_NOUN_acumulado_ADJ", + "paso_NOUN_adelante_ADV", + "paso_NOUN_agigantado_ADJ", + "paso_NOUN_peatonal_ADJ", + "paso_PROPN_texas_PROPN", + "pasqual_PROPN_maragall_PROPN", + "past_PROPN_part_PROPN", + "pastor_NOUN_alemán_ADJ", + "pastor_NOUN_evangélico_ADJ", + "pastoral_PROPN_social_PROPN", + "pastoreo_NOUN_excesivo_ADJ", + "pata_NOUN_delantero_ADJ", + "pata_NOUN_trasero_ADJ", + "patas_NOUN_arriba_NOUN", + "patata_NOUN_caliente_ADJ", + "patata_NOUN_frito_ADJ", + "patente_NOUN_comunitario_ADJ", + "paternidad_NOUN_responsable_ADJ", + "patio_NOUN_interior_ADJ", + "patio_NOUN_trasero_ADJ", + "patito_PROPN_feo_PROPN", + "patria_NOUN_potestad_NOUN", + "patria_NOUN_potestad_PROPN", + "patricia_PROPN_bullrich_PROPN", + "patricia_PROPN_espinosa_PROPN", + "patricio_PROPN_aylwin_PROPN", + "patrick_PROPN_vella_PROPN", + "patrimonio_NOUN_arqueológico_ADJ", + "patrimonio_NOUN_arquitectónico_ADJ", + "patrimonio_NOUN_cultural_ADJ", + "patrimonio_NOUN_histórico_ADJ", + "patrimonio_NOUN_inmobiliario_ADJ", + "patrimonio_PROPN_cultural_PROPN", + "patrimonio_PROPN_histórico_PROPN", + "patrimonio_PROPN_mundial_PROPN", + "patrocinado_ADJ_conjuntamente_ADV", + "patrocinador_NOUN_albania_PROPN", + "patrocinador_NOUN_enumerado_ADJ", + "patrulla_NOUN_conjunto_ADJ", + "patrulla_NOUN_fronterizo_ADJ", + "patrulla_NOUN_móvil_ADJ", + "patrulla_NOUN_policial_ADJ", + "patrulla_NOUN_terrestre_ADJ", + "patrulla_PROPN_fronteriza_PROPN", + "patrón_NOUN_sociocultural_ADJ", + "patxi_PROPN_lópez_PROPN", + "pau_PROPN_gasol_PROPN", + "paul_PROPN_badji_PROPN", + "paul_PROPN_biya_PROPN", + "paul_PROPN_hunt_PROPN", + "paul_PROPN_kagame_PROPN", + "paul_PROPN_krugman_PROPN", + "paul_PROPN_mccartney_PROPN", + "paul_PROPN_newman_PROPN", + "paul_PROPN_pierce_PROPN", + "paul_PROPN_pogba_PROPN", + "paul_PROPN_ryan_PROPN", + "paulina_PROPN_rubio_PROPN", + "paulo_PROPN_dybala_PROPN", + "paulo_PROPN_sergio_PROPN", + "paulo_PROPN_sérgio_PROPN", + "pavo_NOUN_real_ADJ", + "pax_NOUN_christi_NOUN", + "pax_NOUN_romano_ADJ", + "paz_NOUN_domp_ADJ", + "paz_NOUN_duradero_ADJ", + "país_NOUN_acp_PROPN", + "país_NOUN_adherent_ADJ", + "país_NOUN_candidato_ADJ", + "país_NOUN_desarrollado_ADJ", + "país_NOUN_deudor_ADJ", + "país_NOUN_donant_ADJ", + "país_NOUN_industrializado_ADJ", + "país_NOUN_limítrofes_PROPN", + "país_NOUN_nórdico_ADJ", + "país_NOUN_proveedor_ADJ", + "país_NOUN_receptor_ADJ", + "país_PROPN_vasco_PROPN", + "países_PROPN_bajo_ADJ", + "países_PROPN_bajos_PROPN", + "países_PROPN_exportadores_PROPN", + "paño_NOUN_frío_ADJ", + "paño_NOUN_negro_ADJ", + "pañuelo_NOUN_blanco_ADJ", + "pañuelo_NOUN_rojo_ADJ", + "pcb_PROPN_pct_PROPN", + "pcn_PROPN_maoísta_ADJ", + "peace_PROPN_and_PROPN", + "pearl_PROPN_harbor_PROPN", + "pearl_PROPN_jam_PROPN", + "pecado_NOUN_capital_ADJ", + "pecado_NOUN_mortal_ADJ", + "pecado_NOUN_original_ADJ", + "pedir_VERB_disculpa_NOUN", + "pedir_VERB_encarecidamente_ADV", + "pedir_VERB_limosna_NOUN", + "pedir_VERB_limosnar_VERB", + "pedir_VERB_perdón_NOUN", + "pedro_PROPN_almodóvar_PROPN", + "pedro_PROPN_chávarry_PROPN", + "pedro_PROPN_infante_PROPN", + "pedro_PROPN_joaquín_PROPN", + "pedro_PROPN_martínez_PROPN", + "pedro_PROPN_muñoz_PROPN", + "pedro_PROPN_pablo_PROPN", + "pedro_PROPN_petrovitch_PROPN", + "pedro_PROPN_solbes_PROPN", + "pedro_PROPN_sánchez_PROPN", + "pedro_PROPN_troglio_PROPN", + "pegar_VERB_jonrón_NOUN", + "pela_ADP_primeiro_ADJ", + "pelea_NOUN_callejero_ADJ", + "peligro_NOUN_inminente_ADJ", + "pelo_NOUN_corto_ADJ", + "pelo_NOUN_negro_ADJ", + "pelo_NOUN_rubio_ADJ", + "pelota_NOUN_parado_ADJ", + "película_NOUN_animado_ADJ", + "película_NOUN_documental_ADJ", + "película_NOUN_pornográfico_ADJ", + "película_NOUN_protagonizado_ADJ", + "pena_NOUN_accesorio_ADJ", + "pena_NOUN_capital_ADJ", + "pena_NOUN_cruel_ADJ", + "pena_NOUN_impuesto_ADJ", + "pena_NOUN_privativa_ADJ", + "pena_NOUN_privativa_NOUN", + "pena_NOUN_privativo_ADJ", + "penal_ADJ_acusatorio_ADJ", + "penalmente_ADV_responsable_ADJ", + "peninsular_ADJ_español_ADJ", + "pensamiento_NOUN_conciencia_NOUN", + "pensamiento_NOUN_crítico_ADJ", + "pensión_NOUN_alimenticio_ADJ", + "pensión_NOUN_contributiva_ADJ", + "pensión_NOUN_vitalicio_ADJ", + "penélope_PROPN_cruz_PROPN", + "península_NOUN_coreano_ADJ", + "península_PROPN_arábiga_PROPN", + "península_PROPN_coreana_PROPN", + "península_PROPN_ibérica_PROPN", + "penúltimo_ADJ_jornada_NOUN", + "people_PROPN_of_PROPN", + "peor_ADJ_pesadilla_NOUN", + "peor_ADV_pagado_ADJ", + "pep_PROPN_guardiola_PROPN", + "pepe_PROPN_aguilar_PROPN", + "pepe_PROPN_mujica_PROPN", + "pepe_PROPN_reina_PROPN", + "pepu_PROPN_hernández_PROPN", + "pequeña_PROPN_empresa_PROPN", + "pequeño_ADJ_agricultor_NOUN", + "pequeño_ADJ_cetáceo_NOUN", + "per_ADP_capita_NOUN", + "per_ADP_cent_PROPN", + "per_ADP_cápita_ADJ", + "per_ADP_cápita_NOUN", + "peralta_PROPN_sánchez_PROPN", + "percance_NOUN_ocurrir_VERB", + "percepción_NOUN_erróneo_ADJ", + "perder_VERB_fuelle_NOUN", + "pere_PROPN_navarro_PROPN", + "perfeccionamiento_NOUN_profesional_ADJ", + "perfectamente_ADV_compatible_ADJ", + "perfectamente_ADV_comprensible_ADJ", + "perfectamente_ADV_consciente_ADJ", + "perfecto_ADJ_armonía_NOUN", + "perfil_NOUN_genético_ADJ", + "perfil_NOUN_nutricional_ADJ", + "perforar_VERB_pozo_NOUN", + "period_PROPN_of_PROPN", + "periodicidad_NOUN_anual_ADJ", + "periodicos_PROPN_diarios_PROPN", + "periodista_NOUN_asesinado_ADJ", + "periodo_NOUN_estival_ADJ", + "periodo_NOUN_parcial_ADJ", + "periodo_NOUN_transitorio_ADJ", + "periodo_NOUN_vacacional_ADJ", + "perito_NOUN_forense_ADJ", + "perito_NOUN_médico_ADJ", + "perito_PROPN_moreno_PROPN", + "periódicamente_ADV_informado_ADJ", + "perjudicar_VERB_gravemente_ADV", + "perjudicar_VERB_seriamente_ADV", + "perjuicio_NOUN_causado_ADJ", + "perjuicio_NOUN_ocasionado_ADJ", + "perjuicio_NOUN_sufrido_ADJ", + "permanecer_VERB_callado_ADJ", + "permanecer_VERB_cerrado_ADJ", + "permanecer_VERB_cortado_ADJ", + "permanecer_VERB_detenido_ADJ", + "permanecer_VERB_encarcelado_ADJ", + "permanecer_VERB_encerrado_ADJ", + "permanecer_VERB_escondido_ADJ", + "permanecer_VERB_estable_ADJ", + "permanecer_VERB_estancado_ADJ", + "permanecer_VERB_hospitalizado_ADJ", + "permanecer_VERB_impasible_ADJ", + "permanecer_VERB_impune_ADJ", + "permanecer_VERB_inactivo_ADJ", + "permanecer_VERB_inalterado_ADJ", + "permanecer_VERB_incomunicado_ADJ", + "permanecer_VERB_indiferente_ADJ", + "permanecer_VERB_ingresado_ADJ", + "permanecer_VERB_inmóvil_ADJ", + "permanecer_VERB_intacto_ADJ", + "permanecer_VERB_internado_ADJ", + "permanecer_VERB_invariable_ADJ", + "permanecer_VERB_mudo_ADJ", + "permanecer_VERB_oculto_ADJ", + "permanecer_VERB_prófugo_ADJ", + "permanecer_VERB_quieto_ADJ", + "permanecer_VERB_recluido_ADJ", + "permanecer_VERB_retenido_ADJ", + "permanecer_VERB_silencioso_ADJ", + "permanecer_VERB_vigilante_ADJ", + "permanent_PROPN_mission_PROPN", + "permanent_PROPN_representative_PROPN", + "permanente_ADJ_biestatal_ADV", + "permanganato_NOUN_potásico_ADJ", + "permiso_NOUN_parental_ADJ", + "permítame_VERB_expresar_VERB", + "permítame_VERB_felicitar_VERB", + "pero_CCONJ_claro_INTJ", + "peronismo_NOUN_disidente_ADJ", + "perpetrar_VERB_acto_NOUN", + "perpetrar_VERB_ataque_NOUN", + "perpetrar_VERB_atentado_NOUN", + "perro_NOUN_adiestrado_ADJ", + "perro_NOUN_callejero_ADJ", + "perseguir_VERB_judicialmente_ADV", + "perseguir_VERB_penalmente_ADV", + "persistente_ADJ_cop_PROPN", + "person_NOUN_especially_ADV", + "persona_NOUN_desnutrida_ADJ", + "persona_NOUN_desplazado_ADJ", + "persona_NOUN_discapacitada_ADJ", + "persona_NOUN_enferma_ADJ", + "persona_NOUN_enjuiciada_ADJ", + "persona_NOUN_evacuada_ADJ", + "persona_NOUN_internamente_ADV", + "persona_NOUN_regístresir_VERB", + "persona_NOUN_seropositiva_ADJ", + "persona_NOUN_transgénero_ADJ", + "personaje_NOUN_favorito_ADJ", + "personal_ADJ_temporario_ADJ", + "personal_ADJ_temporario_NOUN", + "personal_NOUN_capacitado_ADJ", + "personal_NOUN_cualificado_ADJ", + "personal_NOUN_directivo_ADJ", + "personal_NOUN_docente_ADJ", + "personal_NOUN_paramédico_ADJ", + "personal_NOUN_temporario_ADJ", + "personal_NOUN_temporario_NOUN", + "personalidad_NOUN_destacado_ADJ", + "personalidad_NOUN_eminent_ADJ", + "personalidad_NOUN_jurídico_ADJ", + "personería_NOUN_jurídico_ADJ", + "perspectivas_PROPN_financieras_PROPN", + "pertenencia_NOUN_étnico_ADJ", + "pertrecho_NOUN_militar_ADJ", + "perturbación_NOUN_externo_ADJ", + "perímetro_NOUN_marcado_ADJ", + "período_NOUN_abarcado_ADJ", + "período_NOUN_comprendido_ADJ", + "período_NOUN_extraordinario_ADJ", + "perú_PROPN_filipinas_PROPN", + "perú_PROPN_polonia_PROPN", + "perú_PROPN_portugal_PROPN", + "perú_PROPN_qatar_VERB", + "pesado_ADJ_carga_NOUN", + "pesar_VERB_gramo_NOUN", + "pesar_VERB_kg_NOUN", + "pesar_VERB_kilo_NOUN", + "pesar_VERB_kilogramo_NOUN", + "pesca_NOUN_artesanal_ADJ", + "pesca_NOUN_costero_ADJ", + "pesca_NOUN_destructivo_ADJ", + "pesca_NOUN_excesivo_ADJ", + "pesca_NOUN_ilegal_ADJ", + "pesca_NOUN_ilícito_ADJ", + "pescado_NOUN_fresco_ADJ", + "pescador_NOUN_artesanal_ADJ", + "pese_NOUN_al_DET", + "peso_NOUN_aproximado_ADJ", + "peso_NOUN_corporal_ADJ", + "peso_NOUN_húmedo_ADJ", + "peso_NOUN_pesado_ADJ", + "pesos_NOUN_filipino_ADJ", + "pesos_NOUN_mensual_ADJ", + "pesquero_ADJ_común_ADJ", + "pesquero_ADJ_destructivo_ADJ", + "pesquisa_NOUN_policial_ADJ", + "peste_NOUN_porcino_ADJ", + "pete_PROPN_sampras_PROPN", + "peter_PROPN_jackson_PROPN", + "peter_PROPN_pan_PROPN", + "peter_PROPN_piot_PROPN", + "petición_NOUN_expreso_ADJ", + "petición_NOUN_formulado_ADJ", + "petrolera_NOUN_estatal_ADJ", + "petróleo_NOUN_brent_PROPN", + "petróleo_NOUN_crudo_ADJ", + "petróleo_PROPN_opep_PROPN", + "petróleos_PROPN_mexicanos_PROPN", + "pew_PROPN_research_PROPN", + "peyton_PROPN_manning_PROPN", + "pez_NOUN_altamente_ADV", + "pez_NOUN_espado_ADJ", + "pez_NOUN_gordo_ADJ", + "pez_NOUN_transzonal_ADJ", + "peña_PROPN_nieto_PROPN", + "pfanzelter_PROPN_austria_PROPN", + "phil_PROPN_jackson_PROPN", + "philip_PROPN_alston_PROPN", + "philip_PROPN_morris_PROPN", + "phnom_ADJ_penh_NOUN", + "phnom_PROPN_penh_NOUN", + "phnom_PROPN_penh_PROPN", + "phoenix_PROPN_arizona_PROPN", + "pib_PROPN_per_ADP", + "pick_NOUN_up_NOUN", + "pico_PROPN_truncado_PROPN", + "pie_NOUN_cúbico_ADJ", + "pie_NOUN_derecho_ADJ", + "pie_NOUN_izquierdo_ADJ", + "piedad_PROPN_córdoba_PROPN", + "piedra_NOUN_angular_ADJ", + "piedra_NOUN_calizo_ADJ", + "piedra_NOUN_precioso_ADJ", + "piedras_PROPN_negras_PROPN", + "piel_NOUN_morén_ADJ", + "piel_NOUN_oscuro_ADJ", + "pierna_NOUN_derecho_ADJ", + "pierna_NOUN_izquierdo_ADJ", + "pierre_PROPN_nkurunziza_PROPN", + "pies_NOUN_cuadrado_ADJ", + "pies_NOUN_cúbicos_NOUN", + "pieza_NOUN_arqueológico_ADJ", + "pieza_NOUN_clave_NOUN", + "pieza_NOUN_dental_ADJ", + "pieza_NOUN_teatral_ADJ", + "pilar_NOUN_fundamental_ADJ", + "pilar_NOUN_interdependient_ADJ", + "pilar_PROPN_rubio_PROPN", + "piloto_NOUN_asturiano_ADJ", + "piloto_NOUN_automático_ADJ", + "ping_NOUN_pong_NOUN", + "pinheiro_PROPN_relator_NOUN", + "pink_PROPN_floyd_PROPN", + "pino_PROPN_suárez_PROPN", + "pintura_NOUN_escultura_NOUN", + "pintura_NOUN_mural_ADJ", + "piotr_PROPN_petrovitch_PROPN", + "pirata_NOUN_informático_ADJ", + "pirata_NOUN_somalí_ADJ", + "pisar_VERB_fuerte_ADJ", + "pisar_VERB_suelo_NOUN", + "piscina_NOUN_cubierto_ADJ", + "piscina_NOUN_municipal_ADJ", + "pista_NOUN_cubierto_ADJ", + "pistola_NOUN_calibre_NOUN", + "pistola_NOUN_milímetro_NOUN", + "pitazo_NOUN_final_ADJ", + "pitido_NOUN_final_ADJ", + "pj_PROPN_bonaerense_ADJ", + "pl_PROPN_señor_NOUN", + "pl_PROPN_señora_PROPN", + "placa_NOUN_conmemorativo_ADJ", + "placa_NOUN_solar_ADJ", + "placa_NOUN_tectónica_ADJ", + "plan_NOUN_decenal_ADJ", + "plan_NOUN_estratégico_ADJ", + "plan_NOUN_maestro_ADJ", + "plan_NOUN_quinquenal_ADJ", + "plan_NOUN_tenet_PROPN", + "plan_PROPN_b_PROPN", + "plan_PROPN_belgrano_PROPN", + "plan_PROPN_cóndor_PROPN", + "plan_PROPN_director_PROPN", + "plan_PROPN_e_PROPN", + "plan_PROPN_estatal_PROPN", + "plan_PROPN_estratégico_PROPN", + "plan_PROPN_hidrológico_PROPN", + "plan_PROPN_integral_PROPN", + "plan_PROPN_maestro_ADJ", + "plan_PROPN_maestro_PROPN", + "plan_PROPN_marshall_PROPN", + "plan_PROPN_nacional_PROPN", + "plana_NOUN_mayor_ADJ", + "planeta_NOUN_regente_ADJ", + "planeta_NOUN_rojo_ADJ", + "planeta_NOUN_tierra_PROPN", + "planificación_NOUN_centralizado_ADJ", + "planificación_NOUN_estratégico_ADJ", + "planificación_NOUN_familiar_ADJ", + "planificación_NOUN_presupuestación_NOUN", + "planificación_PROPN_federal_PROPN", + "planificación_PROPN_julio_PROPN", + "plano_NOUN_nacional_ADJ", + "plano_NOUN_subnacional_ADJ", + "planta_NOUN_generador_ADJ", + "planta_NOUN_medicinal_ADJ", + "planta_NOUN_narcógena_ADJ", + "planta_NOUN_potabilizadoro_ADJ", + "plantación_NOUN_forestal_ADJ", + "plantar_VERB_cara_NOUN", + "plantar_VERB_árbol_NOUN", + "planteamiento_NOUN_innovador_ADJ", + "planteamiento_NOUN_integral_ADJ", + "plantear_VERB_interrogante_NOUN", + "plantel_NOUN_educativo_ADJ", + "plantilla_NOUN_propuesto_ADJ", + "plata_PROPN_titel_PROPN", + "plataforma_NOUN_continental_ADJ", + "plataforma_NOUN_digital_ADJ", + "plataforma_NOUN_fijo_ADJ", + "plataforma_NOUN_online_ADJ", + "plataforma_NOUN_petrolífero_ADJ", + "plato_NOUN_fuerte_ADJ", + "plato_NOUN_roto_ADJ", + "plato_NOUN_típico_ADJ", + "play_NOUN_off_NOUN", + "play_PROPN_store_PROPN", + "playa_PROPN_girón_PROPN", + "plaza_NOUN_bolívar_PROPN", + "plaza_NOUN_bursátil_ADJ", + "plaza_NOUN_hotelero_ADJ", + "plaza_NOUN_independencia_PROPN", + "plaza_NOUN_tahrir_PROPN", + "plaza_NOUN_vacante_ADJ", + "plaza_PROPN_independencia_PROPN", + "plaza_PROPN_mayor_PROPN", + "plazo_NOUN_fijado_ADJ", + "plazo_NOUN_fijo_ADJ", + "plazo_NOUN_límite_ADJ", + "plazo_NOUN_prescrito_ADJ", + "plazo_NOUN_razonable_ADJ", + "plena_ADJ_facultad_NOUN", + "plena_ADJ_garantía_NOUN", + "plenamente_ADV_compatible_ADJ", + "plenamente_ADV_comprometido_ADJ", + "plenamente_ADV_consciente_ADJ", + "plenamente_ADV_justificado_ADJ", + "plenamente_ADV_respetado_ADJ", + "plenario_ADJ_celebrado_ADJ", + "plenario_ADJ_conmemorativo_ADJ", + "plenario_NOUN_privada_NOUN", + "plenipotenciario_ADJ_representante_NOUN", + "pleno_ADJ_apogeo_NOUN", + "pleno_ADJ_disfrutar_VERB", + "pleno_ADJ_efectividad_NOUN", + "pleno_ADJ_goce_NOUN", + "pleno_ADJ_vigencia_NOUN", + "pleno_NOUN_disfrutar_VERB", + "pleuger_PROPN_alemania_PROPN", + "pliego_NOUN_petitorio_ADJ", + "plomo_NOUN_fundido_ADJ", + "pluralismo_NOUN_cultural_ADJ", + "pluralismo_NOUN_político_ADJ", + "plusmarquista_NOUN_mundial_ADJ", + "plácido_PROPN_domingo_PROPN", + "pm_NOUN_fútbol_PROPN", + "pnb_PROPN_per_ADP", + "pnud_PROPN_unfpa_PROPN", + "población_NOUN_aborigen_ADJ", + "población_NOUN_afgán_ADJ", + "población_NOUN_autóctono_ADJ", + "población_NOUN_carcelario_ADJ", + "población_NOUN_gitán_ADJ", + "población_NOUN_haitián_ADJ", + "población_NOUN_indígena_ADJ", + "población_NOUN_indígén_ADJ", + "población_NOUN_inmigrante_ADJ", + "población_NOUN_migrante_ADJ", + "población_NOUN_reclús_ADJ", + "población_NOUN_romaní_ADJ", + "población_PROPN_activa_PROPN", + "pobre_ADJ_criatura_NOUN", + "pobre_ADJ_diablo_NOUN", + "pobreza_NOUN_abyecto_ADJ", + "pobreza_NOUN_delp_ADJ", + "pobreza_NOUN_delp_NOUN", + "pobreza_NOUN_extremo_ADJ", + "poca_ADJ_monta_NOUN", + "pocas_NOUN_palabra_NOUN", + "pocas_NOUN_palabras_NOUN", + "poco_ADV_enriquecido_ADJ", + "poco_ADV_nuboso_ADJ", + "poco_ADV_probable_ADJ", + "poco_ADV_realista_ADJ", + "poco_ADV_usual_ADJ", + "poco_DET_cuadra_NOUN", + "poco_DET_monta_NOUN", + "poco_PRON_rato_NOUN", + "poco_PRON_tiempo_NOUN", + "podemos_PROPN_pablo_PROPN", + "poder_NOUN_adquisitivo_ADJ", + "poder_NOUN_discrecional_ADJ", + "poder_NOUN_fáctico_ADJ", + "poder_NOUN_judicial_ADJ", + "poder_PROPN_ejecutivo_PROPN", + "poder_PROPN_electoral_PROPN", + "poder_PROPN_judicial_PROPN", + "poder_PROPN_legislativo_PROPN", + "poder_PROPN_popular_PROPN", + "poderío_NOUN_militar_ADJ", + "pokémon_PROPN_go_PROPN", + "pol_PROPN_espargaró_PROPN", + "pol_PROPN_pot_PROPN", + "pole_NOUN_position_NOUN", + "police_NOUN_station_PROPN", + "police_PROPN_officers_PROPN", + "police_PROPN_station_PROPN", + "policy_PROPN_and_PROPN", + "policy_PROPN_research_PROPN", + "policía_NOUN_antidisturbios_ADJ", + "policía_NOUN_antimotín_ADJ", + "policía_NOUN_constituido_ADJ", + "policía_NOUN_montado_ADJ", + "policía_NOUN_timorense_ADJ", + "policía_PROPN_bonaerense_PROPN", + "policía_PROPN_científica_PROPN", + "policía_PROPN_comunal_PROPN", + "policía_PROPN_criminal_PROPN", + "policía_PROPN_estatal_PROPN", + "policía_PROPN_europol_PROPN", + "policía_PROPN_federal_PROPN", + "policía_PROPN_foral_PROPN", + "policía_PROPN_investigadora_PROPN", + "policía_PROPN_iptf_PROPN", + "policía_PROPN_judicial_PROPN", + "policía_PROPN_local_PROPN", + "policía_PROPN_metropolitana_PROPN", + "policía_PROPN_michoacán_PROPN", + "policía_PROPN_militar_PROPN", + "policía_PROPN_ministerial_PROPN", + "policía_PROPN_municipal_PROPN", + "policía_PROPN_nacional_PROPN", + "policía_PROPN_preventiva_PROPN", + "policía_PROPN_vial_PROPN", + "polideportivo_NOUN_municipal_ADJ", + "polideportivo_PROPN_municipal_PROPN", + "polinesia_NOUN_francés_ADJ", + "polo_NOUN_norte_ADJ", + "polo_NOUN_opuesto_ADJ", + "polo_NOUN_sur_ADJ", + "polo_PROPN_democrático_PROPN", + "polo_PROPN_norte_PROPN", + "polo_PROPN_sur_PROPN", + "polonia_PROPN_portugal_PROPN", + "polonia_PROPN_rumania_PROPN", + "polvo_NOUN_blanco_ADJ", + "polémica_NOUN_generado_ADJ", + "polémica_NOUN_suscitado_ADJ", + "polígono_NOUN_industrial_ADJ", + "política_NOUN_anticíclica_ADJ", + "política_NOUN_exterior_ADJ", + "política_NOUN_macroeconómico_ADJ", + "política_NOUN_monetario_ADJ", + "política_PROPN_agraria_PROPN", + "política_PROPN_agrícola_PROPN", + "política_PROPN_común_PROPN", + "política_PROPN_económica_PROPN", + "política_PROPN_especial_PROPN", + "política_PROPN_exterior_PROPN", + "política_PROPN_fiscal_PROPN", + "política_PROPN_industrial_PROPN", + "política_PROPN_monetaria_PROPN", + "política_PROPN_pesquera_PROPN", + "política_PROPN_regional_PROPN", + "política_PROPN_social_PROPN", + "política_PROPN_territorial_PROPN", + "políticamente_ADV_correcto_ADJ", + "políticamente_ADV_delicado_ADJ", + "políticamente_ADV_incorrecto_ADJ", + "políticamente_ADV_motivado_ADJ", + "políticamente_ADV_vinculante_ADJ", + "políticas_PROPN_públicas_PROPN", + "políticas_PROPN_sociales_PROPN", + "político_NOUN_corrupto_ADJ", + "político_NOUN_tabasqueño_ADJ", + "ponencia_NOUN_presentado_ADJ", + "ponente_NOUN_alternativo_ADJ", + "poner_VERB_coto_NOUN", + "poner_VERB_freno_NOUN", + "poner_VERB_patas_NOUN", + "pontificia_PROPN_universidad_PROPN", + "popular_ADJ_chino_ADJ", + "popular_PROPN_democrática_PROPN", + "popular_PROPN_lao_PROPN", + "popularmente_ADV_conocido_ADJ", + "population_PROPN_and_PROPN", + "populoso_ADJ_barrio_NOUN", + "porfirio_PROPN_díaz_PROPN", + "porfirio_PROPN_lobo_PROPN", + "porfirio_PROPN_muñoz_PROPN", + "porfirio_PROPN_petrovitch_PROPN", + "pornografía_NOUN_infantil_ADJ", + "port_NOUN_loko_PROPN", + "port_NOUN_louis_PROPN", + "port_NOUN_vila_PROPN", + "portación_NOUN_ilegal_ADJ", + "portal_NOUN_inmobiliario_ADJ", + "portal_NOUN_web_ADJ", + "portar_VERB_arma_NOUN", + "portar_VERB_bandera_NOUN", + "portar_VERB_pancarta_NOUN", + "portavoz_NOUN_parlamentario_ADJ", + "portavoz_NOUN_socialista_ADJ", + "porte_NOUN_ilegal_ADJ", + "portero_NOUN_titular_ADJ", + "portería_NOUN_contrario_ADJ", + "portería_NOUN_defendido_ADJ", + "portería_NOUN_rival_ADJ", + "porteño_ADJ_horacio_PROPN", + "porteño_ADJ_mauricio_PROPN", + "porto_PROPN_alegre_PROPN", + "portugal_PROPN_qatar_PROPN", + "portugal_PROPN_qatar_VERB", + "portugal_PROPN_reino_PROPN", + "portugal_PROPN_rumania_PROPN", + "portugués_NOUN_cristiano_PROPN", + "pos_NOUN_del_DET", + "posada_PROPN_carriles_PROPN", + "posada_PROPN_sir_PROPN", + "posado_ADJ_carril_NOUN", + "posado_ADJ_sir_PROPN", + "posar_VERB_desnudo_ADJ", + "posición_NOUN_común_ADJ", + "posición_NOUN_dominante_ADJ", + "posición_NOUN_gps_PROPN", + "posición_NOUN_negociador_ADJ", + "posición_NOUN_orbital_ADJ", + "posición_NOUN_privilegiado_ADJ", + "posición_PROPN_común_ADJ", + "posición_PROPN_común_PROPN", + "post_ADJ_mortem_ADJ", + "poste_NOUN_derecho_ADJ", + "poste_NOUN_izquierdo_ADJ", + "posterior_ADJ_tsunami_NOUN", + "potencia_NOUN_administradora_ADJ", + "potencia_NOUN_administradoro_ADJ", + "potencia_NOUN_colonial_ADJ", + "potencia_NOUN_emergente_ADJ", + "potencia_NOUN_imperialista_ADJ", + "potencia_NOUN_instalado_ADJ", + "potencia_NOUN_ocupante_ADJ", + "potencial_ADJ_comprador_NOUN", + "potencialmente_ADV_letal_ADJ", + "potencialmente_ADV_mortal_ADJ", + "potencialmente_ADV_peligroso_ADJ", + "potente_ADJ_disparo_NOUN", + "potente_ADJ_remate_NOUN", + "poverty_PROPN_and_PROPN", + "poverty_PROPN_reduction_PROPN", + "poza_PROPN_rica_PROPN", + "poznan_PROPN_polonia_PROPN", + "pozo_NOUN_petrolero_ADJ", + "pp_PROPN_andaluz_ADJ", + "pp_PROPN_mariano_PROPN", + "pp_PROPN_valenciano_ADJ", + "pp_PROPN_vasco_ADJ", + "practicar_VERB_aborto_NOUN", + "practicar_VERB_deporte_NOUN", + "prafullachandra_NOUN_natwarlal_NOUN", + "prafullachandra_PROPN_natwarlal_PROPN", + "prasad_NOUN_india_NOUN", + "prat_PROPN_gay_PROPN", + "prd_PROPN_pt_PROPN", + "preah_PROPN_vihear_PROPN", + "precandidato_NOUN_presidencial_ADJ", + "precariedad_NOUN_laboral_ADJ", + "precarización_NOUN_laboral_ADJ", + "precepto_NOUN_constitucional_ADJ", + "precepto_NOUN_legal_ADJ", + "precio_NOUN_asequible_ADJ", + "precio_NOUN_corriente_ADJ", + "precio_NOUN_mayorista_ADJ", + "precio_NOUN_módico_ADJ", + "precios_PROPN_cuidados_PROPN", + "precipitación_NOUN_débil_ADJ", + "precipitación_NOUN_pluvial_ADJ", + "precursor_NOUN_químico_ADJ", + "precursor_NOUN_utilizado_ADJ", + "predicción_NOUN_meteorológico_ADJ", + "predio_NOUN_ubicado_ADJ", + "predisposición_NOUN_genético_ADJ", + "prefectura_PROPN_naval_PROPN", + "preferencia_NOUN_arancelaria_ADJ", + "preferencia_NOUN_comercial_ADJ", + "preferencia_NOUN_generalizado_ADJ", + "preferencia_NOUN_sgp_PROPN", + "preferiblemente_ADV_antes_ADV", + "pregunta_NOUN_formulado_ADJ", + "pregunta_NOUN_oral_ADJ", + "pregunta_NOUN_planteado_ADJ", + "pregunta_PROPN_nº_NOUN", + "pregunta_PROPN_nº_NUM", + "prejuicio_NOUN_racial_ADJ", + "prejuicio_NOUN_sexista_ADJ", + "premier_PROPN_league_PROPN", + "premio_NOUN_cy_PROPN", + "premio_NOUN_emmy_PROPN", + "premio_NOUN_gordo_ADJ", + "premio_NOUN_goya_PROPN", + "premio_NOUN_grammy_PROPN", + "premio_NOUN_nobel_PROPN", + "premio_NOUN_nóbel_PROPN", + "premio_NOUN_oscar_PROPN", + "premio_NOUN_príncipe_PROPN", + "premio_NOUN_pulitzer_PROPN", + "premio_NOUN_sajarov_PROPN", + "premio_PROPN_cervantes_PROPN", + "premio_PROPN_nacional_PROPN", + "premio_PROPN_nobel_PROPN", + "premio_PROPN_planeta_PROPN", + "premio_PROPN_príncipe_PROPN", + "premio_PROPN_sajarov_PROPN", + "premio_PROPN_sájarov_PROPN", + "premios_PROPN_goya_PROPN", + "premios_PROPN_juventud_PROPN", + "premisa_NOUN_contable_ADJ", + "prender_VERB_fuego_NOUN", + "prensa_NOUN_matutino_ADJ", + "prensa_NOUN_rosa_ADJ", + "prensa_PROPN_argentino_ADJ", + "prensa_PROPN_latina_PROPN", + "prensa_PROPN_libre_PROPN", + "preocupación_NOUN_expresado_ADJ", + "preocupación_NOUN_manifestado_ADJ", + "preocupación_NOUN_suscitado_ADJ", + "preocupar_VERB_enormemente_ADV", + "preocupar_VERB_hondamente_ADV", + "preocupar_VERB_profundamente_ADV", + "preocupar_VERB_seriamente_ADV", + "preocupar_VERB_sobremanera_ADV", + "preparador_NOUN_físico_ADJ", + "preparatorio_ADJ_intergubernamental_ADJ", + "prerrogativa_NOUN_e_CCONJ", + "presa_NOUN_fácil_ADJ", + "prescripción_NOUN_médico_ADJ", + "presea_NOUN_dorado_ADJ", + "presencia_NOUN_multidimensional_ADJ", + "presentación_NOUN_tardío_ADJ", + "presente_ADJ_acta_NOUN", + "presente_DET_acta_NOUN", + "presente_DET_documento_NOUN", + "presente_NOUN_compendio_NOUN", + "presente_NOUN_memorar_VERB", + "preservativo_NOUN_femenino_ADJ", + "preservativo_NOUN_masculino_ADJ", + "presidencia_PROPN_alemán_ADJ", + "presidencia_PROPN_austriaco_ADJ", + "presidencia_PROPN_austríaco_ADJ", + "presidencia_PROPN_belga_ADJ", + "presidencia_PROPN_británico_ADJ", + "presidencia_PROPN_checo_ADJ", + "presidencia_PROPN_danés_ADJ", + "presidencia_PROPN_esloveno_ADJ", + "presidencia_PROPN_finlandés_ADJ", + "presidencia_PROPN_francés_ADJ", + "presidencia_PROPN_griego_ADJ", + "presidencia_PROPN_holandés_ADJ", + "presidencia_PROPN_húngara_PROPN", + "presidencia_PROPN_húngaro_ADJ", + "presidencia_PROPN_irlandés_ADJ", + "presidencia_PROPN_italiano_ADJ", + "presidencia_PROPN_luxemburgués_ADJ", + "presidencia_PROPN_neerlandés_ADJ", + "presidencia_PROPN_portugués_ADJ", + "presidencia_PROPN_s_NOUN", + "presidencia_PROPN_sueco_ADJ", + "president_NOUN_autonómico_ADJ", + "presidenta_NOUN_bachelet_PROPN", + "presidenta_NOUN_cristina_PROPN", + "presidenta_NOUN_dilma_PROPN", + "presidenta_NOUN_electo_ADJ", + "presidenta_NOUN_interino_ADJ", + "presidenta_NOUN_michelle_PROPN", + "presidenta_NOUN_permítame_VERB", + "presidenta_NOUN_saliente_ADJ", + "presidenta_NOUN_sra_NOUN", + "presidenta_PROPN_bachelet_PROPN", + "presidenta_PROPN_interrumpir_VERB", + "presidenta_PROPN_michelle_PROPN", + "presidenta_PROPN_señora_NOUN", + "presidenta_PROPN_señorías_PROPN", + "presidente_NOUN_abbas_PROPN", + "presidente_NOUN_arafat_PROPN", + "presidente_NOUN_aristide_PROPN", + "presidente_NOUN_barack_PROPN", + "presidente_NOUN_bashar_PROPN", + "presidente_NOUN_electo_ADJ", + "presidente_NOUN_evo_PROPN", + "presidente_NOUN_gbagbo_ADJ", + "presidente_NOUN_gusmão_PROPN", + "presidente_NOUN_hosni_PROPN", + "presidente_NOUN_interino_ADJ", + "presidente_NOUN_kabila_PROPN", + "presidente_NOUN_kagame_ADJ", + "presidente_NOUN_kagame_PROPN", + "presidente_NOUN_karzai_PROPN", + "presidente_NOUN_kostunica_PROPN", + "presidente_NOUN_lenín_PROPN", + "presidente_NOUN_mbeki_PROPN", + "presidente_NOUN_meron_VERB", + "presidente_NOUN_museveni_ADJ", + "presidente_NOUN_obasanjo_PROPN", + "presidente_NOUN_olusegun_PROPN", + "presidente_NOUN_permítame_VERB", + "presidente_NOUN_saliente_ADJ", + "presidente_NOUN_tabaré_PROPN", + "presidente_NOUN_yasser_PROPN", + "presidente_NOUN_yusuf_PROPN", + "presidente_PROPN_barroso_PROPN", + "presidente_PROPN_chirac_PROPN", + "presidente_PROPN_interrumpir_VERB", + "presidente_PROPN_lukashenko_PROPN", + "presidente_PROPN_permítame_VERB", + "presidente_PROPN_perón_PROPN", + "presidente_PROPN_prodi_PROPN", + "presidente_PROPN_santer_PROPN", + "presidente_PROPN_señora_NOUN", + "presidente_PROPN_señorías_PROPN", + "presidido_ADJ_conjuntamente_ADV", + "presión_NOUN_arterial_ADJ", + "presión_NOUN_atmosférico_ADJ", + "presión_NOUN_ejercido_ADJ", + "presión_NOUN_impositivo_ADJ", + "presión_NOUN_inflacionaria_ADJ", + "presión_NOUN_inflacionario_ADJ", + "presión_NOUN_inflacionista_ADJ", + "presión_NOUN_sanguíneo_ADJ", + "presión_NOUN_tributario_ADJ", + "preso_NOUN_condenado_ADJ", + "preso_NOUN_etarra_ADJ", + "preso_NOUN_político_ADJ", + "press_PROPN_págs_PROPN", + "press_PROPN_release_PROPN", + "prestación_NOUN_pagadera_ADJ", + "prestar_VERB_asistencia_NOUN", + "prestar_VERB_juramento_NOUN", + "prestigioso_ADJ_premio_NOUN", + "prestigioso_ADJ_revista_NOUN", + "prestigioso_ADJ_universidad_NOUN", + "prestir_VERB_asistencia_NOUN", + "prestir_VERB_particular_ADJ", + "presuntamente_ADV_cometido_ADJ", + "presuntamente_ADV_implicado_ADJ", + "presuntamente_ADV_responsable_ADJ", + "presuntamente_ADV_responsable_NOUN", + "presunto_ADJ_agresor_NOUN", + "presunto_ADJ_asaltante_NOUN", + "presunto_ADJ_asesino_NOUN", + "presunto_ADJ_autor_NOUN", + "presunto_ADJ_criminal_NOUN", + "presunto_ADJ_culpable_NOUN", + "presunto_ADJ_cómplice_NOUN", + "presunto_ADJ_delincuente_NOUN", + "presunto_ADJ_desvío_NOUN", + "presunto_ADJ_estafa_NOUN", + "presunto_ADJ_etarra_NOUN", + "presunto_ADJ_fraude_NOUN", + "presunto_ADJ_homicida_NOUN", + "presunto_ADJ_implicación_NOUN", + "presunto_ADJ_infractor_NOUN", + "presunto_ADJ_irregularidad_NOUN", + "presunto_ADJ_ladrón_NOUN", + "presunto_ADJ_lavado_NOUN", + "presunto_ADJ_narcotraficante_NOUN", + "presunto_ADJ_responsable_NOUN", + "presunto_ADJ_secuestrador_NOUN", + "presunto_ADJ_sicario_NOUN", + "presunto_ADJ_terrorista_NOUN", + "presunto_ADJ_trama_NOUN", + "presunto_ADJ_violación_NOUN", + "presunto_ADJ_violador_NOUN", + "presunto_ADJ_víctima_NOUN", + "presupuestación_NOUN_basado_ADJ", + "presupuesto_NOUN_bienal_ADJ", + "presupuesto_NOUN_ccaap_NOUN", + "presupuesto_NOUN_ordinario_ADJ", + "presupuesto_NOUN_rectificativo_ADJ", + "presupuesto_PROPN_ordinario_ADJ", + "presupuesto_PROPN_participativo_PROPN", + "presupuestos_PROPN_generales_PROPN", + "pretoria_PROPN_sudáfrica_PROPN", + "prevenir_VERB_combatir_VERB", + "prevenir_VERB_desalentar_VERB", + "prevenir_VERB_reprimir_VERB", + "previo_ADJ_aviso_NOUN", + "previo_ADJ_pronunciamiento_NOUN", + "previsión_NOUN_meteorológico_ADJ", + "previsión_NOUN_presupuestaria_ADJ", + "previsión_NOUN_tecnológico_ADJ", + "previsión_PROPN_social_PROPN", + "prevlaka_PROPN_monup_PROPN", + "pri_PROPN_pan_PROPN", + "prima_NOUN_facie_ADJ", + "prima_NOUN_facie_NOUN", + "primario_ADJ_secundario_ADJ", + "primavera_PROPN_sound_PROPN", + "primavera_PROPN_árabe_PROPN", + "prime_NOUN_time_NOUN", + "primer_PROPN_mandatario_PROPN", + "primer_PROPN_ministro_PROPN", + "primer_PROPN_mundo_PROPN", + "primera_NOUN_mano_NOUN", + "primera_NOUN_vista_NOUN", + "primera_PROPN_b_PROPN", + "primera_PROPN_dama_PROPN", + "primera_PROPN_división_PROPN", + "primera_PROPN_guerra_PROPN", + "primera_PROPN_hora_PROPN", + "primera_PROPN_instancia_PROPN", + "primero_ADJ_bimestre_NOUN", + "primero_ADJ_clasificado_NOUN", + "primero_ADJ_cuatrimestre_NOUN", + "primero_ADJ_instancia_NOUN", + "primero_ADJ_plana_NOUN", + "primero_ADJ_quincena_NOUN", + "primero_ADJ_semestre_NOUN", + "primero_ADJ_trimestre_NOUN", + "primero_PROPN_justicia_PROPN", + "primeros_NOUN_auxilio_NOUN", + "primeros_PROPN_ministros_PROPN", + "primo_ADJ_facie_ADJ", + "primo_NOUN_hermano_NOUN", + "prince_PROPN_royce_PROPN", + "princesa_NOUN_diana_PROPN", + "principal_ADJ_arteria_NOUN", + "principal_ADJ_impulsor_NOUN", + "principio_NOUN_cardinal_ADJ", + "principio_NOUN_consagrado_ADJ", + "principio_NOUN_enunciado_ADJ", + "principio_NOUN_fundacional_ADJ", + "principio_NOUN_noblemaire_ADJ", + "principio_NOUN_orientador_ADJ", + "principio_NOUN_rector_ADJ", + "principio_NOUN_resarcibl_ADJ", + "principio_NOUN_resarcible_ADJ", + "principios_NOUN_del_DET", + "principl_ADJ_of_PROPN", + "principles_PROPN_of_PROPN", + "priorizacer_VERB_priorizacer_VERB", + "prisión_NOUN_domiciliario_ADJ", + "prisión_NOUN_perpetua_NOUN", + "prisión_NOUN_perpetuo_ADJ", + "prisión_NOUN_preventivo_ADJ", + "privacidad_NOUN_genético_ADJ", + "privación_NOUN_arbitrario_ADJ", + "privación_NOUN_ilegal_ADJ", + "privación_NOUN_ilegítimo_ADJ", + "privado_ADJ_sala_NOUN", + "privado_ADJ_sala_PROPN", + "privado_ADJ_unidroit_PROPN", + "privar_VERB_arbitrariamente_ADV", + "private_PROPN_sector_PROPN", + "privilegio_NOUN_inmunidad_NOUN", + "pro_ADP_democracia_NOUN", + "pro_ADP_tempore_NOUN", + "pro_ADP_unicef_PROPN", + "pro_NOUN_del_DET", + "pro_PROPN_bowl_PROPN", + "probado_ADJ_eficacia_NOUN", + "probar_VERB_fortuna_NOUN", + "probar_VERB_suerte_NOUN", + "procedencia_NOUN_ilícito_ADJ", + "procedimiento_NOUN_abreviado_ADJ", + "procedimiento_NOUN_conciliatorio_ADJ", + "procedimiento_NOUN_disciplinario_ADJ", + "procedimiento_NOUN_incoado_ADJ", + "procedimiento_NOUN_penal_ADJ", + "procedimiento_NOUN_sancionador_ADJ", + "procedimiento_NOUN_simplificado_ADJ", + "procedimiento_NOUN_sumario_ADJ", + "procedimiento_PROPN_penal_ADJ", + "procedimiento_PROPN_penal_PROPN", + "proceedings_PROPN_of_PROPN", + "procesador_NOUN_intel_PROPN", + "procesal_ADJ_penal_ADJ", + "procesamiento_NOUN_electrónico_ADJ", + "proceso_NOUN_concursal_ADJ", + "proceso_NOUN_conducente_ADJ", + "proceso_NOUN_decisorio_ADJ", + "proceso_NOUN_eleccionario_ADJ", + "proceso_NOUN_evolutivo_ADJ", + "proceso_NOUN_incoado_ADJ", + "proceso_NOUN_licitatorio_ADJ", + "procesos_PROPN_electorales_PROPN", + "proclamar_VERB_campeona_NOUN", + "proclamar_VERB_campeón_NOUN", + "proclamar_VERB_oficialmente_ADV", + "procreación_NOUN_responsable_ADJ", + "procter_PROPN_gamble_PROPN", + "procuración_PROPN_general_PROPN", + "procurador_PROPN_general_PROPN", + "procuraduría_NOUN_estatal_ADJ", + "procuraduría_PROPN_capitalino_ADJ", + "procuraduría_PROPN_federal_PROPN", + "procuraduría_PROPN_general_PROPN", + "producción_NOUN_agropecuario_ADJ", + "producción_NOUN_agrícola_ADJ", + "producción_NOUN_cinematográfico_ADJ", + "producción_NOUN_discográfico_ADJ", + "producción_NOUN_ganadero_ADJ", + "producción_PROPN_clap_PROPN", + "produced_NOUN_from_PROPN", + "productividad_NOUN_agrícola_ADJ", + "producto_NOUN_acabado_ADJ", + "producto_NOUN_agroalimentario_ADJ", + "producto_NOUN_agropecuario_ADJ", + "producto_NOUN_agrícola_ADJ", + "producto_NOUN_alimenticio_ADJ", + "producto_NOUN_básico_ADJ", + "producto_NOUN_comercializado_ADJ", + "producto_NOUN_cosmético_ADJ", + "producto_NOUN_cuantificabl_ADJ", + "producto_NOUN_cárnico_ADJ", + "producto_NOUN_exportado_ADJ", + "producto_NOUN_falsificado_ADJ", + "producto_NOUN_farmacéutico_ADJ", + "producto_NOUN_fitosanitario_ADJ", + "producto_NOUN_hortícola_ADJ", + "producto_NOUN_importado_ADJ", + "producto_NOUN_lácteo_ADJ", + "producto_NOUN_maderero_ADJ", + "producto_NOUN_manufacturado_ADJ", + "producto_NOUN_químico_ADJ", + "producto_NOUN_textil_ADJ", + "producto_PROPN_bruto_PROPN", + "producto_PROPN_interior_PROPN", + "producto_PROPN_interno_PROPN", + "productor_NOUN_agropecuario_ADJ", + "proferir_VERB_amenaza_NOUN", + "proferir_VERB_insulto_NOUN", + "profesional_NOUN_capacitado_ADJ", + "profesional_NOUN_cualificado_ADJ", + "profesión_NOUN_docente_ADJ", + "profesión_NOUN_liberal_ADJ", + "profesor_NOUN_emérito_ADJ", + "profesor_NOUN_invitado_ADJ", + "profesor_NOUN_titular_ADJ", + "profesor_NOUN_universitario_ADJ", + "profesor_NOUN_visitante_ADJ", + "profesora_NOUN_universitario_ADJ", + "profeta_NOUN_mahoma_PROPN", + "profeta_PROPN_mahoma_PROPN", + "profundamente_ADV_agradecido_ADJ", + "profundamente_ADV_alarmado_ADJ", + "profundamente_ADV_arraigado_ADJ", + "profundamente_ADV_comprometido_ADJ", + "profundamente_ADV_conmovido_ADJ", + "profundamente_ADV_consternado_ADJ", + "profundamente_ADV_convencido_ADJ", + "profundamente_ADV_decepcionado_ADJ", + "profundamente_ADV_dividido_ADJ", + "profundamente_ADV_dormido_ADJ", + "profundamente_ADV_preocupado_ADJ", + "profundidad_NOUN_marino_ADJ", + "profundo_ADJ_agradecimiento_NOUN", + "profundo_ADJ_condolencia_NOUN", + "profundo_ADJ_consternación_NOUN", + "profundo_ADJ_decepción_NOUN", + "profundo_ADJ_dolor_NOUN", + "profundo_ADJ_gratitud_NOUN", + "profundo_ADJ_preocupación_NOUN", + "profundo_ADJ_pésame_NOUN", + "profundo_ADJ_suspiro_NOUN", + "profundo_ADJ_tristeza_NOUN", + "programa_NOUN_altener_PROPN", + "programa_NOUN_daphne_PROPN", + "programa_NOUN_empretec_ADJ", + "programa_NOUN_meda_PROPN", + "programa_NOUN_petróleo_ADJ", + "programa_NOUN_phare_PROPN", + "programa_NOUN_tacis_PROPN", + "programa_PROPN_marco_PROPN", + "programa_PROPN_mundial_PROPN", + "programación_NOUN_conjunto_ADJ", + "programación_NOUN_presupuestación_NOUN", + "programme_PROPN_of_PROPN", + "progresar_VERB_considerablemente_ADV", + "progresar_VERB_significativamente_ADV", + "progresividad_NOUN_arancelario_ADJ", + "progreso_NOUN_alcanzado_ADJ", + "progreso_NOUN_conseguido_ADJ", + "progreso_NOUN_logrado_ADJ", + "progreso_NOUN_realizado_ADJ", + "progreso_NOUN_tangible_ADJ", + "progress_PROPN_in_ADP", + "progress_PROPN_of_PROPN", + "progress_PROPN_report_PROPN", + "prohibición_NOUN_completo_ADJ", + "prohibición_PROPN_completa_PROPN", + "prohibir_VERB_explícitamente_ADV", + "prohibir_VERB_expresamente_ADV", + "prohíbir_VERB_explícitamente_ADV", + "prohíbir_VERB_expresamente_ADV", + "prohíbir_VERB_fumar_VERB", + "proliferación_NOUN_horizontal_ADJ", + "proliferación_NOUN_incontrolado_ADJ", + "proliferación_NOUN_nuclear_ADJ", + "proliferación_NOUN_vertical_ADJ", + "prolongar_VERB_injustificadamente_ADV", + "promedeír_VERB_punto_NOUN", + "promedio_NOUN_mensual_ADJ", + "promedio_NOUN_ponderado_ADJ", + "promesa_NOUN_hecho_ADJ", + "promesa_NOUN_incumplida_ADJ", + "promesa_NOUN_solemne_ADJ", + "prometer_VERB_solemnemente_ADV", + "promoción_PROPN_social_PROPN", + "promoción_PROPN_turística_PROPN", + "promotion_PROPN_of_PROPN", + "promotor_NOUN_inmobiliario_ADJ", + "promulgar_VERB_legislación_NOUN", + "pronosticar_VERB_cielo_NOUN", + "pronto_ADJ_detección_NOUN", + "pronto_ADJ_entrada_NOUN", + "pronto_ADJ_imparcial_ADJ", + "pronto_ADJ_liberación_NOUN", + "pronto_ADJ_notificación_NOUN", + "pronto_ADJ_ratificación_NOUN", + "pronto_ADJ_reanudación_NOUN", + "pronto_ADJ_recuperación_NOUN", + "pronóstico_NOUN_meteorológico_ADJ", + "pronóstico_NOUN_reservado_ADJ", + "proofreading_PROPN_team_PROPN", + "propaganda_NOUN_electoral_ADJ", + "propaganda_NOUN_racista_ADJ", + "propagar_VERB_rápidamente_ADV", + "propiamente_ADV_dicho_ADJ", + "propiedad_NOUN_inmobiliario_ADJ", + "propiedad_NOUN_inmueble_ADJ", + "propiedad_NOUN_intelectual_ADJ", + "propiedad_PROPN_intelectual_PROPN", + "propio_NOUN_nacional_ADJ", + "proponer_VERB_reasignar_VERB", + "proponer_VERB_reclasificar_VERB", + "proporcionado_ADJ_gratuitamente_ADV", + "proporción_NOUN_alarmante_ADJ", + "prorrateacer_VERB_entre_ADP", + "prorratear_VERB_entre_ADP", + "prorrateo_NOUN_indicado_ADJ", + "prorrogar_VERB_indefinidamente_ADV", + "prospects_NUM_the_PROPN", + "prosperidad_NOUN_compartido_ADJ", + "prostitución_NOUN_ajeno_ADJ", + "prostitución_NOUN_forzado_ADJ", + "prostitución_NOUN_forzoso_ADJ", + "prostitución_NOUN_infantil_ADJ", + "prostitution_PROPN_and_CCONJ", + "protección_NOUN_diplomático_ADJ", + "protección_NOUN_fitosanitario_ADJ", + "protección_NOUN_radiológico_ADJ", + "protección_PROPN_ambiental_PROPN", + "protección_PROPN_ciudadana_PROPN", + "protección_PROPN_civil_PROPN", + "protección_PROPN_fronteriza_PROPN", + "protección_PROPN_social_PROPN", + "protection_NOUN_of_ADP", + "protection_PROPN_des_ADP", + "protection_PROPN_of_ADP", + "protection_PROPN_of_PROPN", + "protector_NOUN_solar_ADJ", + "protesta_NOUN_antigubernamental_ADJ", + "protesta_NOUN_callejero_ADJ", + "protesta_NOUN_estudiantil_ADJ", + "protestar_VERB_enérgicamente_ADV", + "proteína_NOUN_animal_ADJ", + "proteína_NOUN_vegetal_ADJ", + "protocol_PROPN_additional_ADJ", + "protocolo_NOUN_adicional_ADJ", + "protocolo_NOUN_anexo_ADJ", + "protocolo_NOUN_facultativo_ADJ", + "protocolo_NOUN_opcional_ADJ", + "protocolo_NOUN_v_NUM", + "protocolo_NOUN_v_SYM", + "protocolo_PROPN_facultativo_PROPN", + "provincia_NOUN_nororiental_ADJ", + "provincia_NOUN_norteño_ADJ", + "provincia_NOUN_sureño_ADJ", + "provisional_ADJ_afgán_ADJ", + "provisional_ADJ_anotado_ADJ", + "proximidad_NOUN_geográfico_ADJ", + "proyección_NOUN_demográfico_ADJ", + "proyectil_NOUN_antibalístico_ADJ", + "proyecto_NOUN_experimental_ADJ", + "proyecto_NOUN_lado_ADJ", + "proyecto_NOUN_nabucco_PROPN", + "proyecto_NOUN_piloto_ADJ", + "proyecto_NOUN_prisma_ADJ", + "proyecto_NOUN_unops_ADJ", + "proyecto_PROPN_sur_PROPN", + "prueba_NOUN_aportado_ADJ", + "prueba_NOUN_circunstancial_ADJ", + "prueba_NOUN_concluyent_ADJ", + "prueba_NOUN_concluyente_ADJ", + "prueba_NOUN_convincente_ADJ", + "prueba_NOUN_diagnóstico_ADJ", + "prueba_NOUN_documental_ADJ", + "prueba_NOUN_empírico_ADJ", + "prueba_NOUN_fehaciente_ADJ", + "prueba_NOUN_irrefutable_ADJ", + "prueba_NOUN_pericial_ADJ", + "prueba_NOUN_testimonial_ADJ", + "práctica_NOUN_anticompetitiva_ADJ", + "práctica_NOUN_análogo_ADJ", + "práctica_NOUN_consuetudinaria_ADJ", + "práctica_NOUN_corrupto_ADJ", + "práctica_NOUN_discriminatorio_ADJ", + "práctica_NOUN_habitual_ADJ", + "práctica_NOUN_idóneo_ADJ", + "práctica_NOUN_monopólica_ADJ", + "práctica_NOUN_recomendado_ADJ", + "práctica_NOUN_óptimo_ADJ", + "prácticamente_ADV_idéntico_ADJ", + "prácticamente_ADV_imposible_ADJ", + "prácticamente_ADV_inexistente_ADJ", + "prácticamente_ADV_nulo_ADJ", + "prácticamente_ADV_unánime_ADJ", + "préstamo_NOUN_bancario_ADJ", + "préstamo_NOUN_concedido_ADJ", + "préstamo_NOUN_fondos_ADJ", + "préstamo_NOUN_hipotecario_ADJ", + "préstamo_NOUN_otorgado_ADJ", + "príncipe_NOUN_alberto_PROPN", + "príncipe_NOUN_arabia_PROPN", + "príncipe_NOUN_eduardo_PROPN", + "príncipe_NOUN_enrique_PROPN", + "príncipe_NOUN_felipe_PROPN", + "príncipe_NOUN_guillermo_PROPN", + "príncipe_NOUN_harry_PROPN", + "príncipe_NOUN_heredero_ADJ", + "príncipe_NOUN_rainiero_ADJ", + "príncipe_NOUN_senegal_NOUN", + "príncipe_NOUN_william_PROPN", + "príncipe_NOUN_zeid_PROPN", + "príncipe_PROPN_felipe_PROPN", + "prórroga_NOUN_indefinido_ADJ", + "próximamente_ADV_adjudicabl_ADJ", + "próximo_NOUN_cinco_NUM", + "próximo_NOUN_diez_NUM", + "próximo_NOUN_siete_NUM", + "ps_PROPN_vita_PROPN", + "psicólogo_NOUN_clínico_ADJ", + "psoe_PROPN_alfredo_PROPN", + "psoe_PROPN_andaluz_ADJ", + "psv_PROPN_eindhoven_PROPN", + "pt_PROPN_señor_NOUN", + "pt_PROPN_señora_PROPN", + "public_PROPN_health_PROPN", + "public_PROPN_international_PROPN", + "public_PROPN_policy_PROPN", + "publicación_NOUN_cog_PROPN", + "publicación_NOUN_impreso_ADJ", + "publicación_NOUN_periódico_ADJ", + "publicación_NOUN_trimestral_ADJ", + "publicado_ADJ_nuevamente_ADV", + "publicado_ADJ_originalmente_ADV", + "publicado_ADJ_pm_NOUN", + "publicar_VERB_próximamente_ADV", + "publicidad_NOUN_engañoso_ADJ", + "publicidad_NOUN_online_ADJ", + "pueblo_NOUN_afgano_ADJ", + "pueblo_NOUN_chamorro_ADJ", + "pueblo_NOUN_chamorro_PROPN", + "pueblo_NOUN_colonial_ADJ", + "pueblo_NOUN_congoleño_ADJ", + "pueblo_NOUN_gitano_ADJ", + "pueblo_NOUN_haitiano_ADJ", + "pueblo_NOUN_hermano_ADJ", + "pueblo_NOUN_indígena_ADJ", + "pueblo_NOUN_iraquí_ADJ", + "pueblo_NOUN_mapuche_ADJ", + "pueblo_NOUN_oprimido_ADJ", + "pueblo_NOUN_originario_ADJ", + "pueblo_NOUN_palestino_ADJ", + "pueblo_NOUN_puertorriqueño_ADJ", + "pueblo_NOUN_saharaui_ADJ", + "pueblo_NOUN_sudanés_ADJ", + "pueblo_NOUN_tibetano_ADJ", + "pueblo_NOUN_timorense_ADJ", + "pueblo_NOUN_turcochiprioto_ADJ", + "pueblo_PROPN_europeo_PROPN", + "pueblo_PROPN_mágico_PROPN", + "pueblos_PROPN_indígenas_PROPN", + "pueblos_PROPN_mágicos_PROPN", + "puente_NOUN_levadizo_ADJ", + "puente_NOUN_peatonal_ADJ", + "puente_NOUN_vehicular_ADJ", + "puente_PROPN_alto_PROPN", + "puente_PROPN_genil_PROPN", + "puerta_NOUN_adentro_ADV", + "puerta_NOUN_cerrada_NOUN", + "puerta_NOUN_cerrado_ADJ", + "puerta_NOUN_entreabierto_ADJ", + "puerta_NOUN_giratorio_ADJ", + "puerta_NOUN_lateral_ADJ", + "puerta_NOUN_trasero_ADJ", + "puerto_NOUN_marítimo_ADJ", + "puerto_NOUN_príncipe_NOUN", + "puerto_NOUN_rico_ADJ", + "puerto_NOUN_rico_PROPN", + "puerto_NOUN_usb_PROPN", + "puerto_PROPN_cabello_PROPN", + "puerto_PROPN_cortés_PROPN", + "puerto_PROPN_deseado_PROPN", + "puerto_PROPN_iguazú_PROPN", + "puerto_PROPN_lumbreras_PROPN", + "puerto_PROPN_madero_PROPN", + "puerto_PROPN_madryn_PROPN", + "puerto_PROPN_montt_PROPN", + "puerto_PROPN_natales_PROPN", + "puerto_PROPN_ordaz_PROPN", + "puerto_PROPN_plata_PROPN", + "puerto_PROPN_príncipe_PROPN", + "puerto_PROPN_real_PROPN", + "puerto_PROPN_rico_PROPN", + "puerto_PROPN_vallarta_PROPN", + "puerto_PROPN_varas_PROPN", + "puerto_PROPN_williams_PROPN", + "pues_NOUN_bien_ADV", + "puesto_NOUN_electivo_ADJ", + "puesto_NOUN_redistribuido_ADJ", + "puesto_NOUN_sm_NOUN", + "puesto_NOUN_temporario_ADJ", + "puesto_NOUN_vacante_ADJ", + "pulkeria_PROPN_alexandrovna_PROPN", + "pulmón_NOUN_verde_ADJ", + "pulqueria_PROPN_alejandrovna_PROPN", + "punta_PROPN_arenas_PROPN", + "punta_PROPN_cana_PROPN", + "puntapié_NOUN_inicial_ADJ", + "punto_NOUN_base_ADJ", + "punto_NOUN_cardinal_ADJ", + "punto_NOUN_culminante_ADJ", + "punto_NOUN_focal_ADJ", + "punto_NOUN_kilométrico_ADJ", + "punto_NOUN_neurálgico_ADJ", + "punto_NOUN_porcentual_ADJ", + "punto_NOUN_suspensivo_ADJ", + "punto_NOUN_álgido_ADJ", + "punto_PROPN_final_PROPN", + "punto_PROPN_radio_PROPN", + "puntos_PROPN_constitucionales_PROPN", + "puramente_ADV_formal_ADJ", + "puro_ADJ_casualidad_NOUN", + "puro_ADJ_cepa_NOUN", + "puro_ADJ_coincidencia_NOUN", + "puro_ADJ_estilo_NOUN", + "puro_ADJ_teoría_NOUN", + "pursuant_VERB_pursuant_VERB", + "pussy_PROPN_riot_PROPN", + "puta_NOUN_madre_NOUN", + "putrajaya_PROPN_malasia_PROPN", + "puño_NOUN_cerrado_ADJ", + "página_NOUN_web_ADJ", + "página_NOUN_web_NOUN", + "página_NOUN_web_PROPN", + "párrafo_NOUN_bi_ADJ", + "párrafo_NOUN_infra_ADV", + "párrafo_NOUN_infra_NOUN", + "párrafo_NOUN_infra_PROPN", + "párrafo_NOUN_preambular_ADJ", + "párrafo_NOUN_preambular_VERB", + "párrafo_NOUN_páginar_VERB", + "párrafo_NOUN_supra_ADJ", + "párrafo_NOUN_supra_ADV", + "párrafo_NOUN_supra_NOUN", + "párrafo_NOUN_supra_PROPN", + "pérdida_NOUN_alegada_ADJ", + "pérdida_NOUN_alegado_ADJ", + "pérdida_NOUN_contractual_ADJ", + "pérdida_NOUN_irreparable_ADJ", + "pérdida_NOUN_mercantil_ADJ", + "pérdida_NOUN_millonario_ADJ", + "pérdida_NOUN_ocasionado_ADJ", + "pérdida_NOUN_reclamado_ADJ", + "pérdida_NOUN_resarcible_ADJ", + "pérdida_NOUN_sufrido_ADJ", + "pérez_PROPN_corradi_PROPN", + "pérez_PROPN_esquivel_PROPN", + "pérez_PROPN_galdós_PROPN", + "pérez_PROPN_jiménez_PROPN", + "pérez_PROPN_molina_PROPN", + "pérez_PROPN_roque_PROPN", + "pérez_PROPN_royo_PROPN", + "pérez_PROPN_rubalcaba_PROPN", + "pérez_PROPN_zeledón_PROPN", + "pésimo_ADJ_condición_NOUN", + "pío_PROPN_baroja_PROPN", + "pío_PROPN_xii_PROPN", + "público_NOUN_asistente_ADJ", + "público_NOUN_destinatario_ADJ", + "público_NOUN_visitante_ADJ", + "qatar_VERB_federación_PROPN", + "qatar_VERB_reino_PROPN", + "qatar_VERB_república_NOUN", + "qatar_VERB_senegal_NOUN", + "qua_NOUN_non_NOUN", + "qual_NOUN_qual_VERB", + "qual_VERB_qual_VERB", + "quedar_VERB_abolido_ADJ", + "quedar_VERB_aclarado_ADJ", + "quedar_VERB_acordado_ADJ", + "quedar_VERB_alojado_ADJ", + "quedar_VERB_anulado_ADJ", + "quedar_VERB_aplazado_ADJ", + "quedar_VERB_asombrado_ADJ", + "quedar_VERB_atascado_ADJ", + "quedar_VERB_atrapado_ADJ", + "quedar_VERB_atónito_ADJ", + "quedar_VERB_callado_ADJ", + "quedar_VERB_cerrado_ADJ", + "quedar_VERB_compensado_ADJ", + "quedar_VERB_demostrado_ADJ", + "quedar_VERB_derogado_ADJ", + "quedar_VERB_descartado_ADJ", + "quedar_VERB_destruido_ADJ", + "quedar_VERB_dormido_ADJ", + "quedar_VERB_eliminado_ADJ", + "quedar_VERB_estupefacto_ADJ", + "quedar_VERB_evidenciado_ADJ", + "quedar_VERB_excluido_ADJ", + "quedar_VERB_exento_ADJ", + "quedar_VERB_eximido_ADJ", + "quedar_VERB_exonerado_ADJ", + "quedar_VERB_extinguido_ADJ", + "quedar_VERB_fascinado_ADJ", + "quedar_VERB_huérfano_ADJ", + "quedar_VERB_impactado_ADJ", + "quedar_VERB_impresionado_ADJ", + "quedar_VERB_impune_ADJ", + "quedar_VERB_inhabilitado_ADJ", + "quedar_VERB_inutilizado_ADJ", + "quedar_VERB_invalidado_ADJ", + "quedar_VERB_invitado_ADJ", + "quedar_VERB_maravillado_ADJ", + "quedar_VERB_paralizado_ADJ", + "quedar_VERB_pasmado_ADJ", + "quedar_VERB_patente_ADJ", + "quedar_VERB_perplejo_ADJ", + "quedar_VERB_plasmado_ADJ", + "quedar_VERB_postergado_ADJ", + "quedar_VERB_prendado_ADJ", + "quedar_VERB_reflejado_ADJ", + "quedar_VERB_relegado_ADJ", + "quedar_VERB_rezagado_ADJ", + "quedar_VERB_sepultado_ADJ", + "quedar_VERB_supeditado_ADJ", + "quedar_VERB_suprimido_ADJ", + "quedar_VERB_suspendido_ADJ", + "quedar_VERB_varado_ADJ", + "quedar_VERB_zanjado_ADJ", + "quehacer_NOUN_doméstico_ADJ", + "quemar_VERB_caloría_NOUN", + "quemar_VERB_vivo_ADJ", + "quentin_PROPN_tarantino_PROPN", + "querella_NOUN_criminal_ADJ", + "querem_VERB_querem_VERB", + "querer_AUX_tú_VERB", + "querido_ADJ_amiga_NOUN", + "querido_ADJ_amigo_NOUN", + "querido_ADJ_colega_NOUN", + "querido_ADJ_lector_NOUN", + "questionnaire_PROPN_on_ADP", + "quien_PRON_contaminar_VERB", + "quim_PROPN_torra_PROPN", + "quince_NUM_dia_NOUN", + "quince_NUM_minuto_NOUN", + "quincuagésimo_ADJ_cuarto_ADJ", + "quincuagésimo_ADJ_noveno_ADJ", + "quincuagésimo_ADJ_quinto_ADJ", + "quincuagésimo_ADJ_quinto_NOUN", + "quincuagésimo_ADJ_sexto_ADJ", + "quincuagésimo_ADJ_séptimo_ADJ", + "quincuagésimo_ADJ_tercer_ADJ", + "quincuagésimo_NOUN_cuarto_ADJ", + "quincuagésimo_NOUN_noveno_ADJ", + "quincuagésimo_NOUN_octavo_ADJ", + "quincuagésimo_NOUN_quinto_ADJ", + "quincuagésimo_NOUN_quinto_NOUN", + "quincuagésimo_NOUN_sexto_ADJ", + "quincuagésimo_NOUN_séptimo_ADJ", + "quincuagésimo_PROPN_octavo_ADJ", + "quinta_PROPN_avenida_PROPN", + "quinta_PROPN_vergara_PROPN", + "quintana_PROPN_roo_PROPN", + "quinto_ADJ_aniversario_NOUN", + "quinto_ADJ_combinado_ADJ", + "quinto_ADJ_comisión_NOUN", + "quinto_PROPN_programa_PROPN", + "quique_PROPN_sánchez_PROPN", + "quisiéramos_VERB_agradecer_VERB", + "quisiérar_AUX_expresar_VERB", + "quitar_VERB_hierro_NOUN", + "quito_PROPN_ecuador_PROPN", + "quién_PRON_eres_PROPN", + "qué_DET_asco_NOUN", + "qué_DET_demonio_NOUN", + "qué_DET_lástima_NOUN", + "qué_PRON_atener_VERB", + "qué_PRON_decís_VERB", + "qué_PRON_quereis_VERB", + "qué_PRON_queréi_VERB", + "químico_ADJ_biológico_ADJ", + "rabat_PROPN_marruecos_PROPN", + "racha_NOUN_ganador_ADJ", + "racha_NOUN_negativo_ADJ", + "rachel_PROPN_mayanja_PROPN", + "racial_ADJ_discrimination_PROPN", + "racial_ADJ_xenofobia_NOUN", + "racing_PROPN_club_PROPN", + "racismo_NOUN_discriminación_NOUN", + "ración_NOUN_alimentario_ADJ", + "ración_NOUN_diario_ADJ", + "rada_PROPN_tilly_PROPN", + "radamel_PROPN_falcao_PROPN", + "radhika_PROPN_coomaraswamy_PROPN", + "radiación_NOUN_atómico_ADJ", + "radiación_NOUN_ionizante_ADJ", + "radiación_NOUN_solar_ADJ", + "radiación_NOUN_ultravioleta_ADJ", + "radical_ADJ_transnacional_ADJ", + "radical_NOUN_libre_ADJ", + "radicalmente_ADV_diferente_ADJ", + "radicalmente_ADV_distinto_ADJ", + "radio_NOUN_mitre_PROPN", + "radio_PROPN_caracas_PROPN", + "radio_PROPN_chubut_PROPN", + "radio_PROPN_continental_PROPN", + "radio_PROPN_cooperativa_PROPN", + "radio_PROPN_estación_PROPN", + "radio_PROPN_euskadi_PROPN", + "radio_PROPN_fórmula_PROPN", + "radio_PROPN_haro_PROPN", + "radio_PROPN_mitre_PROPN", + "radio_PROPN_televisión_PROPN", + "radio_PROPN_u_PROPN", + "radio_PROPN_uchileseñal_PROPN", + "radio_PROPN_uno_PROPN", + "radiotelevisión_NOUN_público_ADJ", + "radovan_PROPN_karadzic_PROPN", + "rafa_PROPN_benítez_PROPN", + "rafa_PROPN_márquez_PROPN", + "rafa_PROPN_nadal_PROPN", + "rafael_PROPN_bielsa_PROPN", + "rafael_PROPN_blasco_PROPN", + "rafael_PROPN_correa_PROPN", + "rafael_PROPN_hernando_PROPN", + "rafael_PROPN_moreno_PROPN", + "rafael_PROPN_márquez_PROPN", + "rafael_PROPN_nadal_PROPN", + "rafael_PROPN_ramírez_PROPN", + "rafael_PROPN_rivas_PROPN", + "rafael_PROPN_videla_PROPN", + "rafik_PROPN_hariri_PROPN", + "rajsoomer_ADJ_lallah_NOUN", + "rajsoomer_ADJ_lallah_PROPN", + "rajsoomer_NOUN_lallah_PROPN", + "rajsoomer_PROPN_lallah_PROPN", + "rally_PROPN_dakar_PROPN", + "rama_NOUN_femenil_ADJ", + "rama_NOUN_femenino_ADJ", + "rama_NOUN_masculino_ADJ", + "rama_NOUN_varonil_ADJ", + "ramo_NOUN_portugal_PROPN", + "ramos_PROPN_allup_PROPN", + "ramos_PROPN_mejía_PROPN", + "ramos_PROPN_padilla_PROPN", + "ramírez_PROPN_marín_PROPN", + "ramón_PROPN_calderón_PROPN", + "ramón_PROPN_carrillo_PROPN", + "ramón_PROPN_díaz_PROPN", + "ramón_PROPN_jáuregui_PROPN", + "ramón_PROPN_labañino_PROPN", + "ramón_PROPN_mestre_PROPN", + "random_PROPN_house_PROPN", + "range_PROPN_rover_PROPN", + "rango_NOUN_constitucional_ADJ", + "rango_NOUN_inferior_ADJ", + "ranking_NOUN_atp_PROPN", + "ranking_NOUN_mundial_ADJ", + "rapporteur_PROPN_on_ADP", + "rara_ADJ_ocasión_NOUN", + "rara_ADJ_vez_NOUN", + "ras_PROPN_lanuf_PROPN", + "rasgo_NOUN_característico_ADJ", + "rasgo_NOUN_distintivo_ADJ", + "rasi_PROPN_finlandia_PROPN", + "rather_PROPN_than_PROPN", + "ratificación_NOUN_aceptación_NOUN", + "ratificación_NOUN_universal_ADJ", + "rationar_VERB_materiae_PROPN", + "rationar_VERB_personae_PROPN", + "rationar_VERB_temporis_PROPN", + "ratko_PROPN_mladic_PROPN", + "ratko_PROPN_mladić_PROPN", + "rayo_NOUN_cósmico_ADJ", + "rayo_NOUN_gamma_NOUN", + "rayo_NOUN_solar_ADJ", + "rayo_NOUN_ultravioleta_ADJ", + "rayo_PROPN_vallecano_PROPN", + "rayos_NOUN_x_NOUN", + "rayos_NOUN_x_PROPN", + "raza_NOUN_color_NOUN", + "raza_NOUN_etnia_NOUN", + "raza_NOUN_nacionalidad_NOUN", + "raza_NOUN_negro_ADJ", + "raza_NOUN_religión_NOUN", + "raza_NOUN_sexo_NOUN", + "razón_NOUN_aducida_ADJ", + "razón_NOUN_esgrimido_ADJ", + "razón_NOUN_fundado_ADJ", + "razón_NOUN_imperioso_ADJ", + "raúl_PROPN_alfonsín_PROPN", + "raúl_PROPN_castro_PROPN", + "raúl_PROPN_garcía_PROPN", + "raúl_PROPN_gonzález_PROPN", + "raúl_PROPN_jiménez_PROPN", + "raúl_PROPN_reyes_PROPN", + "raúl_PROPN_ruidíaz_PROPN", + "raúl_PROPN_salinas_PROPN", + "rcet_PROPN_rcel_NOUN", + "re_NOUN_recurso_NOUN", + "reaccionar_VERB_positivamente_ADV", + "reaccionar_VERB_rápidamente_ADV", + "reacción_NOUN_adverso_ADJ", + "reacción_NOUN_alérgico_ADJ", + "reacción_NOUN_rápido_ADJ", + "reactor_NOUN_nuclear_ADJ", + "readaptación_NOUN_profesional_ADJ", + "readaptación_NOUN_social_ADJ", + "readaptación_PROPN_social_PROPN", + "reagrupación_NOUN_familiar_ADJ", + "reagrupamiento_NOUN_familiar_ADJ", + "real_NOUN_decreto_NOUN", + "real_PROPN_academia_PROPN", + "real_PROPN_audiencia_PROPN", + "real_PROPN_betis_PROPN", + "real_PROPN_cédula_PROPN", + "real_PROPN_decreto_PROPN", + "real_PROPN_estate_PROPN", + "real_PROPN_garcilaso_PROPN", + "real_PROPN_madrid_PROPN", + "real_PROPN_mallorca_PROPN", + "real_PROPN_salt_PROPN", + "real_PROPN_sociedad_PROPN", + "real_PROPN_valladolid_PROPN", + "real_PROPN_zaragoza_PROPN", + "realidad_NOUN_aumentado_ADJ", + "realidad_NOUN_geopolítica_ADJ", + "realidad_NOUN_virtual_ADJ", + "realismo_NOUN_mágico_ADJ", + "reality_NOUN_show_NOUN", + "realización_NOUN_progresivo_ADJ", + "realizar_VERB_patrullaj_NOUN", + "reanimación_NOUN_cardiopulmonar_ADJ", + "reanudir_VERB_reanudir_VERB", + "reanudo_VERB_ahora_ADV", + "rear_PROPN_yo_PRON", + "reasentamiento_NOUN_forzoso_ADJ", + "reasignación_NOUN_dirigido_ADJ", + "rebaja_NOUN_fiscal_ADJ", + "rebaja_NOUN_salarial_ADJ", + "rebaño_PROPN_sagrado_PROPN", + "rebelde_NOUN_libio_ADJ", + "rebelde_NOUN_sirio_ADJ", + "rebelión_NOUN_armado_ADJ", + "rebote_NOUN_ofensivo_ADJ", + "recabir_VERB_asistencia_NOUN", + "recaer_VERB_exclusivamente_ADV", + "recaudación_NOUN_fiscal_ADJ", + "recaudación_NOUN_impositivo_ADJ", + "recaudación_NOUN_tributario_ADJ", + "recaudar_VERB_fondo_NOUN", + "recep_PROPN_tayyip_PROPN", + "receptor_NOUN_abierto_ADJ", + "receso_NOUN_invernal_ADJ", + "receta_NOUN_médico_ADJ", + "rechazar_VERB_categóricamente_ADV", + "rechazar_VERB_enérgicamente_ADV", + "rechazar_VERB_rotundamente_ADV", + "rechazar_VERB_tajantemente_ADV", + "reciclaje_NOUN_profesional_ADJ", + "recientemente_ADV_concluido_ADJ", + "recientemente_ADV_inaugurado_ADJ", + "recientemente_ADV_nombrado_ADJ", + "recinto_NOUN_ferial_ADJ", + "recinto_NOUN_penitenciario_ADJ", + "recinto_NOUN_universitario_ADJ", + "recinto_PROPN_ferial_PROPN", + "recién_ADV_ascendido_ADJ", + "recién_ADV_casado_ADJ", + "recién_ADV_concluido_ADJ", + "recién_ADV_construido_ADJ", + "recién_ADV_contratado_ADJ", + "recién_ADV_creado_ADJ", + "recién_ADV_cumplido_ADJ", + "recién_ADV_descubierto_ADJ", + "recién_ADV_electo_ADJ", + "recién_ADV_elegido_ADJ", + "recién_ADV_estrenado_ADJ", + "recién_ADV_graduado_ADJ", + "recién_ADV_inaugurado_ADJ", + "recién_ADV_incorporado_ADJ", + "recién_ADV_ingresado_ADJ", + "recién_ADV_llegado_ADJ", + "recién_ADV_nacido_ADJ", + "recién_ADV_nombrado_ADJ", + "recién_ADV_salido_ADJ", + "recién_ADV_venido_ADJ", + "reclamación_NOUN_concurrent_ADJ", + "reclamación_NOUN_duplicada_ADJ", + "reclamación_NOUN_s_NOUN", + "reclamación_NOUN_superpuesta_ADJ", + "reclamación_NOUN_tardío_ADJ", + "reclamant_NOUN_concurrent_ADJ", + "reclamant_NOUN_designado_ADJ", + "reclamant_NOUN_individual_ADJ", + "reclamante_NOUN_alegar_VERB", + "reclamante_NOUN_individual_ADJ", + "reclamante_NOUN_kuwaití_ADJ", + "reclamo_NOUN_salarial_ADJ", + "reclasificación_NOUN_propuesto_ADJ", + "reclasificación_NOUN_recibido_ADJ", + "reclusión_NOUN_perpetuo_ADJ", + "reclusión_NOUN_preventivo_ADJ", + "recluso_NOUN_condenado_ADJ", + "reclusorio_PROPN_norte_PROPN", + "reclusorio_PROPN_preventivo_PROPN", + "reclutamiento_NOUN_forzado_ADJ", + "reclutamiento_NOUN_forzoso_ADJ", + "reclutamiento_NOUN_obligatorio_ADJ", + "reclutamiento_NOUN_voluntario_ADJ", + "recogida_NOUN_selectivo_ADJ", + "recomendación_NOUN_contenido_ADJ", + "recomendación_NOUN_emanada_ADJ", + "recomendación_NOUN_formulado_ADJ", + "recomendar_VERB_encarecidamente_ADV", + "recommended_NOUN_awards_PROPN", + "recomposición_NOUN_salarial_ADJ", + "reconciliación_NOUN_nacional_ADJ", + "reconciliación_PROPN_nacional_PROPN", + "reconocer_VERB_implícitamente_ADV", + "reconocido_ADJ_internacionalmente_ADV", + "reconocido_ADJ_prestigio_NOUN", + "reconocido_ADJ_universalmente_ADV", + "reconocimiento_NOUN_facial_ADJ", + "reconocimiento_NOUN_mutuo_ADJ", + "reconstrucción_NOUN_posterior_ADJ", + "recopilación_NOUN_preparado_ADJ", + "recopilación_NOUN_sistemático_ADJ", + "recopilar_VERB_dato_NOUN", + "recopilar_VERB_estadística_NOUN", + "recortar_VERB_distancia_NOUN", + "recorte_NOUN_presupuestal_ADJ", + "recorte_NOUN_presupuestario_ADJ", + "recorte_NOUN_salarial_ADJ", + "recta_NOUN_final_ADJ", + "recueil_NOUN_des_ADP", + "recueil_PROPN_des_ADP", + "recuperación_NOUN_físico_ADJ", + "recuperación_PROPN_económica_PROPN", + "recurso_NOUN_extrapresupuestario_ADJ", + "recurso_NOUN_fitogenético_ADJ", + "recurso_NOUN_genético_ADJ", + "recurso_NOUN_humano_ADJ", + "recurso_NOUN_hídrico_ADJ", + "recurso_NOUN_mineral_ADJ", + "recurso_NOUN_natural_ADJ", + "recursos_NOUN_humano_ADJ", + "recursos_NOUN_humanos_NOUN", + "recursos_NOUN_humanos_PROPN", + "recursos_PROPN_humanos_PROPN", + "recursos_PROPN_hídricos_PROPN", + "recursos_PROPN_naturales_PROPN", + "recámara_NOUN_baño_NOUN", + "red_NOUN_cloacal_ADJ", + "red_NOUN_ferroviario_ADJ", + "red_NOUN_inalámbrica_ADJ", + "red_NOUN_inalámbrico_ADJ", + "red_NOUN_natura_PROPN", + "red_NOUN_sociales_NOUN", + "red_NOUN_transeuropea_ADJ", + "red_NOUN_transeuropeo_ADJ", + "red_NOUN_viario_ADJ", + "red_NOUN_wifi_PROPN", + "red_PROPN_bull_PROPN", + "red_PROPN_bulls_PROPN", + "red_PROPN_cross_PROPN", + "red_PROPN_devils_PROPN", + "red_PROPN_eléctrica_PROPN", + "red_PROPN_hat_PROPN", + "red_PROPN_hot_PROPN", + "red_PROPN_natura_PROPN", + "red_PROPN_solidaria_PROPN", + "redacción_PROPN_bbc_PROPN", + "redactor_NOUN_jefe_NOUN", + "redes_NOUN_social_ADJ", + "redes_NOUN_sociales_NOUN", + "redes_PROPN_sociales_PROPN", + "reducción_NOUN_arancelaria_ADJ", + "reducción_NOUN_certificada_ADJ", + "reducción_NOUN_drástico_ADJ", + "reducción_NOUN_gradual_ADJ", + "reducido_ADJ_tamaño_NOUN", + "reducir_VERB_considerablemente_ADV", + "reducir_VERB_drásticamente_ADV", + "reducir_VERB_sensiblemente_ADV", + "reducir_VERB_significativamente_ADV", + "reducir_VERB_sustancialmente_ADV", + "reelección_NOUN_indefinido_ADJ", + "reelección_NOUN_inmediato_ADJ", + "reelección_NOUN_presidencial_ADJ", + "reembolsar_VERB_impuesto_NOUN", + "reestructuración_PROPN_ordenada_PROPN", + "reference_PROPN_to_PROPN", + "referencia_NOUN_explícito_ADJ", + "referendo_NOUN_constitucional_ADJ", + "referendo_NOUN_revocatorio_ADJ", + "referéndum_NOUN_irlandés_ADJ", + "referéndum_NOUN_revocatorio_ADJ", + "reflejar_VERB_adecuadamente_ADV", + "reflejar_VERB_fielmente_ADV", + "reflexionar_VERB_seriamente_ADV", + "reforestación_NOUN_propuesto_ADJ", + "reforma_NOUN_agrario_ADJ", + "reforma_NOUN_constitucional_ADJ", + "reforma_NOUN_estatutario_ADJ", + "reforma_NOUN_estructural_ADJ", + "reforma_NOUN_hacendario_ADJ", + "reforma_NOUN_previsional_ADJ", + "reforma_NOUN_tributario_ADJ", + "reforma_PROPN_agraria_PROPN", + "reforma_PROPN_educativa_PROPN", + "reforma_PROPN_laboral_PROPN", + "reforma_PROPN_política_PROPN", + "reforzar_VERB_mutuamente_ADV", + "refugiado_NOUN_acnur_ADJ", + "refugiado_NOUN_afgano_ADJ", + "refugiado_NOUN_eritreo_ADJ", + "refugiado_NOUN_liberiano_ADJ", + "refugiado_NOUN_repatriado_ADJ", + "refugiado_NOUN_saharaui_ADJ", + "refugiado_NOUN_somalí_ADJ", + "refugiado_NOUN_sudanés_ADJ", + "refugiados_PROPN_acnur_PROPN", + "refugio_NOUN_seguro_ADJ", + "refugio_NOUN_temporal_ADJ", + "regarding_PROPN_the_PROPN", + "regatas_PROPN_corrientes_PROPN", + "regeneración_NOUN_democrático_ADJ", + "regeneración_PROPN_nacional_PROPN", + "regentear_VERB_regentear_VERB", + "region_PROPN_court_PROPN", + "registro_NOUN_contable_ADJ", + "registro_NOUN_domiciliario_ADJ", + "registro_PROPN_civil_PROPN", + "registro_PROPN_mercantil_PROPN", + "registro_PROPN_nacional_PROPN", + "registro_PROPN_público_PROPN", + "región_NOUN_amazónico_ADJ", + "región_NOUN_andino_ADJ", + "región_NOUN_montañoso_ADJ", + "región_NOUN_noroccidental_ADJ", + "región_NOUN_nuts_PROPN", + "región_NOUN_periférico_ADJ", + "región_NOUN_polar_ADJ", + "región_NOUN_septentrional_ADJ", + "región_NOUN_ultraperiférica_ADJ", + "región_NOUN_valón_ADJ", + "región_NOUN_ártico_ADJ", + "región_PROPN_autónoma_PROPN", + "región_PROPN_centro_PROPN", + "región_PROPN_metropolitana_PROPN", + "regla_NOUN_bi_ADJ", + "regla_NOUN_bis_ADJ", + "regla_NOUN_bis_PROPN", + "regla_NOUN_imperativa_ADJ", + "regla_NOUN_mínimo_ADJ", + "reglamentación_NOUN_detallado_ADJ", + "reglamentación_NOUN_financiero_ADJ", + "reglamentario_ADJ_firme_ADJ", + "reglamento_NOUN_ce_NOUN", + "reglamento_NOUN_provisional_ADJ", + "reglamento_NOUN_transmitido_ADJ", + "reglamento_PROPN_ce_PROPN", + "reglamento_PROPN_cee_PROPN", + "reglamento_PROPN_financiero_PROPN", + "regresar_VERB_voluntariamente_ADV", + "regreso_NOUN_voluntario_ADJ", + "regímén_NOUN_autoritario_ADJ", + "regímén_NOUN_autónomo_ADJ", + "regímén_NOUN_dictatorial_ADJ", + "regímén_NOUN_matrimonial_ADJ", + "regímén_NOUN_totalitario_ADJ", + "rehabilitación_NOUN_psicosocial_ADJ", + "rehidratación_NOUN_oral_ADJ", + "reina_NOUN_isabel_PROPN", + "reina_NOUN_sofía_PROPN", + "reina_NOUN_victoria_PROPN", + "reina_PROPN_isabel_PROPN", + "reina_PROPN_sofía_PROPN", + "reinaldo_PROPN_rueda_PROPN", + "reino_NOUN_hachemita_NOUN", + "reino_PROPN_unido_PROPN", + "reinserción_NOUN_social_ADJ", + "reinserción_PROPN_social_PROPN", + "reintegración_NOUN_repatriación_NOUN", + "reintegración_NOUN_socioeconómico_ADJ", + "reiterado_ADJ_llamamiento_NOUN", + "reiterado_ADJ_ocasión_NOUN", + "reitero_VERB_mi_DET", + "reivindicación_NOUN_territorial_ADJ", + "relacionar_VERB_directamente_ADV", + "relacionar_VERB_estrechamente_ADV", + "relaciones_NOUN_públicas_NOUN", + "relaciones_PROPN_económicas_PROPN", + "relaciones_PROPN_exterior_ADJ", + "relaciones_PROPN_exteriores_PROPN", + "relaciones_PROPN_institucionales_PROPN", + "relaciones_PROPN_internacionales_PROPN", + "relaciones_PROPN_laborales_PROPN", + "relaciones_PROPN_públicas_PROPN", + "relación_NOUN_armoniosa_ADJ", + "relación_NOUN_causal_ADJ", + "relación_NOUN_extramatrimonial_ADJ", + "relación_NOUN_interpersonal_ADJ", + "relación_NOUN_interracial_ADJ", + "relación_NOUN_interétnica_ADJ", + "relación_NOUN_sentimental_ADJ", + "relación_NOUN_simbiótico_ADJ", + "relación_NOUN_sinérgica_ADJ", + "relación_NOUN_sumario_ADJ", + "relación_NOUN_transatlántico_ADJ", + "related_PROPN_to_PROPN", + "relating_PROPN_to_PROPN", + "relativamente_ADV_bajo_ADJ", + "relativamente_ADV_barato_ADJ", + "relativamente_ADV_breve_ADJ", + "relativamente_ADV_corto_ADJ", + "relativamente_ADV_elevado_ADJ", + "relativamente_ADV_escaso_ADJ", + "relativamente_ADV_estable_ADJ", + "relativamente_ADV_fácil_ADJ", + "relativamente_ADV_modesto_ADJ", + "relativamente_ADV_pequeño_ADJ", + "relativamente_ADV_reducido_ADJ", + "relativamente_ADV_sencillo_ADJ", + "relativamente_ADV_tranquilo_ADJ", + "relative_PROPN_to_ADP", + "relator_NOUN_especial_ADJ", + "relator_NOUN_troika_PROPN", + "relatora_NOUN_especial_ADJ", + "relatora_NOUN_sra_NOUN", + "relevamiento_NOUN_realizado_ADJ", + "relevo_NOUN_generacional_ADJ", + "religión_NOUN_católico_ADJ", + "religión_NOUN_cristiano_ADJ", + "religión_NOUN_monoteísta_ADJ", + "religión_NOUN_musulmán_ADJ", + "relleno_NOUN_sanitario_ADJ", + "reloj_NOUN_inteligente_ADJ", + "reloj_NOUN_marcar_VERB", + "remate_NOUN_cruzado_ADJ", + "remedio_NOUN_casero_ADJ", + "remesa_NOUN_enviado_ADJ", + "remesa_NOUN_familiar_ADJ", + "remisión_NOUN_previo_ADJ", + "remitir_VERB_adjunto_NOUN", + "remolacha_NOUN_azucarero_ADJ", + "remuneración_NOUN_neto_ADJ", + "remuneración_NOUN_pensionable_ADJ", + "renault_PROPN_clio_PROPN", + "rendimiento_NOUN_académico_ADJ", + "rendimiento_NOUN_energético_ADJ", + "rendimiento_NOUN_escolar_ADJ", + "rendir_VERB_cuenta_NOUN", + "rendir_VERB_culto_NOUN", + "rendir_VERB_fruto_NOUN", + "rendir_VERB_homenaje_NOUN", + "rendir_VERB_tributo_NOUN", + "renglón_NOUN_presupuestario_ADJ", + "renglón_NOUN_seguido_ADJ", + "renovación_PROPN_nacional_PROPN", + "renovado_ADJ_impulso_NOUN", + "renta_NOUN_agrario_ADJ", + "renta_NOUN_devengada_ADJ", + "renta_NOUN_fijo_ADJ", + "renta_NOUN_medio_ADJ", + "renta_NOUN_per_ADP", + "renta_NOUN_petrolero_ADJ", + "renta_NOUN_variable_ADJ", + "renta_NOUN_vitalicio_ADJ", + "renunciar_VERB_voluntariamente_ADV", + "rené_PROPN_gonzález_PROPN", + "rené_PROPN_préval_PROPN", + "reparación_NOUN_prestado_ADJ", + "reparación_NOUN_íntegro_ADJ", + "reparto_NOUN_equitativo_ADJ", + "repasch_PROPN_estados_PROPN", + "repatriación_NOUN_reasentamiento_NOUN", + "repatriación_NOUN_reintegración_NOUN", + "repatriación_NOUN_voluntario_ADJ", + "repercusión_NOUN_adverso_ADJ", + "repercusión_NOUN_mediático_ADJ", + "repercusión_NOUN_negativo_ADJ", + "repercutir_VERB_considerablemente_ADV", + "repercutir_VERB_directamente_ADV", + "repercutir_VERB_favorablemente_ADV", + "repercutir_VERB_negativamente_ADV", + "repercutir_VERB_positivamente_ADV", + "repercutir_VERB_significativamente_ADV", + "repetido_ADJ_llamamiento_NOUN", + "repetido_ADJ_ocasión_NOUN", + "replicar_VERB_don_NOUN", + "repoblación_NOUN_forestal_ADJ", + "report_NOUN_of_ADP", + "report_NOUN_on_ADP", + "report_PROPN_of_PROPN", + "report_PROPN_on_ADJ", + "report_PROPN_on_PROPN", + "report_PROPN_to_PROPN", + "reportaje_NOUN_publicado_ADJ", + "reported_PROPN_by_PROPN", + "reported_PROPN_that_PROPN", + "reportero_NOUN_gráfico_ADJ", + "reporteros_PROPN_sin_ADP", + "reports_NOUN_of_PROPN", + "reports_NOUN_págs_PROPN", + "reports_PROPN_lauterpacht_PROPN", + "reprendir_VERB_reprendir_VERB", + "representación_NOUN_consular_ADJ", + "representación_NOUN_diplomático_ADJ", + "representación_NOUN_equilibrado_ADJ", + "representación_NOUN_equitativo_ADJ", + "representación_NOUN_femenino_ADJ", + "representación_NOUN_geográfico_ADJ", + "representación_NOUN_gráfico_ADJ", + "representación_NOUN_letrado_ADJ", + "representación_NOUN_proporcional_ADJ", + "representación_NOUN_teatral_ADJ", + "representante_ADJ_permanente_ADJ", + "representante_NOUN_permanente_ADJ", + "representante_NOUN_suplente_ADJ", + "representante_PROPN_permanente_ADJ", + "representative_PROPN_geneva_PROPN", + "representative_PROPN_of_ADP", + "represión_NOUN_antidrogo_ADJ", + "reproducción_NOUN_asistido_ADJ", + "reproducir_VERB_tal_NOUN", + "repsol_PROPN_ypf_PROPN", + "republic_PROPN_of_PROPN", + "republica_NOUN_diario_PROPN", + "republica_PROPN_dominicana_PROPN", + "republicano_NOUN_john_PROPN", + "repuesto_NOUN_reparación_NOUN", + "república_NOUN_argelino_ADJ", + "república_NOUN_azerbaiyana_PROPN", + "república_NOUN_bolivarián_ADJ", + "república_NOUN_centroafricán_ADJ", + "república_NOUN_checo_ADJ", + "república_NOUN_dominicano_ADJ", + "república_NOUN_eslovaco_ADJ", + "república_NOUN_federativo_ADJ", + "república_NOUN_gabonés_ADJ", + "república_NOUN_islámico_ADJ", + "república_NOUN_kirguisa_PROPN", + "república_NOUN_srpska_PROPN", + "república_NOUN_srpsko_ADJ", + "república_NOUN_yugoslavo_ADJ", + "república_NOUN_árabe_ADJ", + "república_PROPN_bolivariana_PROPN", + "república_PROPN_bolivarián_ADJ", + "república_PROPN_centroafricana_PROPN", + "república_PROPN_centroafricán_ADJ", + "república_PROPN_checa_PROPN", + "república_PROPN_checo_ADJ", + "república_PROPN_democrática_PROPN", + "república_PROPN_democrático_ADJ", + "república_PROPN_dominicana_PROPN", + "república_PROPN_dominicano_ADJ", + "república_PROPN_eslovaca_PROPN", + "república_PROPN_eslovaco_ADJ", + "república_PROPN_federativa_PROPN", + "república_PROPN_federativo_ADJ", + "república_PROPN_fgr_PROPN", + "república_PROPN_francesa_PROPN", + "república_PROPN_islámica_PROPN", + "república_PROPN_kirguisa_PROPN", + "república_PROPN_mexicana_PROPN", + "república_PROPN_online_PROPN", + "república_PROPN_pgr_PROPN", + "república_PROPN_popular_PROPN", + "república_PROPN_srpska_PROPN", + "república_PROPN_unida_PROPN", + "república_PROPN_unido_ADJ", + "república_PROPN_yugoslava_PROPN", + "república_PROPN_yugoslavo_ADJ", + "república_PROPN_árabe_PROPN", + "requeijo_ADJ_gual_PROPN", + "requisito_NOUN_enunciado_ADJ", + "requisito_NOUN_estipulado_ADJ", + "requisito_NOUN_exigido_ADJ", + "requisito_NOUN_indispensable_ADJ", + "requisito_NOUN_previo_ADJ", + "requisito_NOUN_probatorio_ADJ", + "rescate_NOUN_bancario_ADJ", + "research_PROPN_and_PROPN", + "research_PROPN_center_PROPN", + "research_PROPN_centre_PROPN", + "research_PROPN_in_ADP", + "research_PROPN_institute_PROPN", + "reserva_NOUN_formulado_ADJ", + "reserva_NOUN_inválido_ADJ", + "reserva_NOUN_manifiestamente_ADV", + "reserva_NOUN_operacional_ADJ", + "reserva_NOUN_probado_ADJ", + "reserva_PROPN_federal_PROPN", + "reserva_PROPN_natural_PROPN", + "reservado_ADJ_exclusivamente_ADV", + "reseña_NOUN_histórico_ADJ", + "residencia_NOUN_habitual_ADJ", + "residencia_NOUN_permanente_ADJ", + "residencia_NOUN_temporal_ADJ", + "resident_PROPN_evil_PROPN", + "residente_NOUN_permanente_ADJ", + "residir_VERB_habitualmente_ADV", + "residir_VERB_ilegalmente_ADV", + "residir_VERB_legalmente_ADV", + "residir_VERB_permanentemente_ADV", + "residuo_NOUN_espacial_ADJ", + "residuo_NOUN_peligroso_ADJ", + "residuo_NOUN_radiactivo_ADJ", + "residuo_NOUN_sólido_ADJ", + "residuo_NOUN_tóxico_ADJ", + "residuos_PROPN_sólidos_PROPN", + "resolución_NOUN_lvii_PROPN", + "resolución_NOUN_lx_PROPN", + "resolución_NOUN_xix_PROPN", + "resolución_NOUN_xlviii_ADJ", + "resolución_NOUN_xv_PROPN", + "resolución_NOUN_xxii_PROPN", + "resolución_NOUN_xxiv_NOUN", + "resolución_NOUN_xxix_PROPN", + "resolución_NOUN_xxv_PROPN", + "resolución_NOUN_xxvi_NOUN", + "resolución_NOUN_xxvii_PROPN", + "resolución_NOUN_xxx_NOUN", + "resolver_VERB_pacíficamente_ADV", + "resolver_VERB_satisfactoriamente_ADV", + "resonancia_NOUN_magnético_ADJ", + "resource_PROPN_center_PROPN", + "resource_PROPN_centrar_VERB", + "respaldar_VERB_firmemente_ADV", + "respaldar_VERB_plenamente_ADV", + "respaldo_NOUN_unánime_ADJ", + "respectivo_ADJ_mandato_NOUN", + "respecto_NOUN_al_DET", + "respetar_VERB_cabalmente_ADV", + "respetar_VERB_escrupulosamente_ADV", + "respetar_VERB_estrictamente_ADV", + "respetar_VERB_plenamente_ADV", + "respetar_VERB_rigurosamente_ADV", + "respeto_NOUN_escrupuloso_ADJ", + "respeto_NOUN_irrestricto_ADJ", + "respeto_NOUN_mutuo_ADJ", + "respiradero_NOUN_hidrotérmico_ADJ", + "respirador_NOUN_artificial_ADJ", + "respirar_VERB_aire_NOUN", + "respirar_VERB_aliviado_ADJ", + "respirar_VERB_tranquilo_ADJ", + "responder_VERB_afirmativamente_ADV", + "responder_VERB_bocadepez_PROPN", + "responder_VERB_favorablemente_ADV", + "responder_VERB_generosamente_ADV", + "responder_VERB_positivamente_ADV", + "responder_VERB_prontamente_ADV", + "responder_VERB_sancho_PROPN", + "responsabilidad_NOUN_compartido_ADJ", + "responsabilidad_NOUN_parental_ADJ", + "responsabilidad_NOUN_primordial_ADJ", + "responsabilidad_PROPN_fiscal_PROPN", + "responsabilidad_PROPN_social_PROPN", + "response_PROPN_to_PROPN", + "responses_PROPN_to_PROPN", + "respuesta_NOUN_proporcionada_ADJ", + "respuesta_NOUN_recibido_ADJ", + "restar_VERB_credibilidad_NOUN", + "restar_VERB_importancia_NOUN", + "restaurante_NOUN_bar_NOUN", + "restitución_NOUN_indemnización_NOUN", + "resto_NOUN_arqueológico_ADJ", + "resto_NOUN_explosivo_ADJ", + "resto_NOUN_mortal_ADJ", + "resto_NOUN_óseo_ADJ", + "restricción_NOUN_cuantitativo_ADJ", + "restricción_NOUN_impuesto_ADJ", + "restricción_NOUN_presupuestaria_ADJ", + "restringir_VERB_indebidamente_ADV", + "restringir_VERB_rigurosamente_ADV", + "result_NOUN_of_PROPN", + "resultado_NOUN_obtenido_ADJ", + "resultado_NOUN_palpabl_ADJ", + "resultado_NOUN_tangible_ADJ", + "resultar_AUX_apropiado_ADJ", + "resultar_VERB_alentador_ADJ", + "resultar_VERB_beneficiado_ADJ", + "resultar_VERB_contraproducente_ADJ", + "resultar_VERB_dañado_ADJ", + "resultar_VERB_decepcionante_ADJ", + "resultar_VERB_evidente_ADJ", + "resultar_VERB_ganador_ADJ", + "resultar_VERB_gratificante_ADJ", + "resultar_VERB_gravemente_ADV", + "resultar_VERB_herido_ADJ", + "resultar_VERB_ileso_ADJ", + "resultar_VERB_imposible_ADJ", + "resultar_VERB_incomprensible_ADJ", + "resultar_VERB_inconcebible_ADJ", + "resultar_VERB_ineficaz_ADJ", + "resultar_VERB_infructuoso_ADJ", + "resultar_VERB_intoxicado_ADJ", + "resultar_VERB_irónico_ADJ", + "resultar_VERB_lesionado_ADJ", + "resultar_VERB_muerto_ADJ", + "resultar_VERB_paradójico_ADJ", + "resultar_VERB_perjudicado_ADJ", + "resultar_VERB_sorprendente_ADJ", + "resumen_NOUN_analítico_ADJ", + "resumen_NOUN_preparado_ADJ", + "resumir_VERB_brevemente_ADV", + "retención_NOUN_móvil_ADJ", + "retirada_NOUN_gradual_ADJ", + "retirada_NOUN_inmediato_ADJ", + "retiro_NOUN_espiritual_ADJ", + "retiro_NOUN_parcial_ADJ", + "retiro_NOUN_surtir_VERB", + "retiro_NOUN_voluntario_ADJ", + "retorno_NOUN_voluntario_ADJ", + "retraso_NOUN_acumulado_ADJ", + "retraso_NOUN_mental_ADJ", + "retrato_NOUN_hablado_ADJ", + "reubicación_NOUN_forzoso_ADJ", + "reunificación_NOUN_familiar_ADJ", + "reunificación_NOUN_pacífico_ADJ", + "reunión_NOUN_informativo_ADJ", + "reunión_NOUN_ministerial_ADJ", + "reunión_NOUN_tripartita_ADJ", + "reuters_PROPN_health_PROPN", + "reuters_PROPN_image_PROPN", + "rever_VERB_importancia_NOUN", + "rever_VERB_sumar_VERB", + "revestir_VERB_gravedad_NOUN", + "revestir_VERB_importancia_NOUN", + "revestir_VERB_particular_ADJ", + "review_NOUN_of_PROPN", + "review_PROPN_of_PROPN", + "revisado_ADJ_oralmente_ADV", + "revisado_ADJ_patrocinado_ADJ", + "revisar_VERB_oralmente_ADV", + "revisar_VERB_periódicamente_ADV", + "revisar_VERB_verbalmente_ADV", + "revisión_NOUN_editorial_ADJ", + "revisión_NOUN_intermedio_ADJ", + "revisión_NOUN_trienal_ADJ", + "revista_NOUN_forbes_PROPN", + "revista_NOUN_hola_PROPN", + "revista_NOUN_nature_PROPN", + "revista_NOUN_people_PROPN", + "revista_NOUN_playboy_PROPN", + "revista_NOUN_rolling_PROPN", + "revista_NOUN_science_PROPN", + "revista_NOUN_semana_PROPN", + "revista_NOUN_time_PROPN", + "revista_NOUN_trimestral_ADJ", + "revista_NOUN_vanity_PROPN", + "revista_NOUN_vogue_PROPN", + "reviste_VERB_particular_ADJ", + "revolucionario_PROPN_institucional_PROPN", + "revolución_NOUN_bolivarián_ADJ", + "revolución_NOUN_cubano_ADJ", + "revolución_NOUN_digital_ADJ", + "revolución_NOUN_industrial_ADJ", + "revolución_NOUN_socialista_ADJ", + "revolución_NOUN_tecnológico_ADJ", + "revolución_NOUN_verde_ADJ", + "revolución_PROPN_bolivariana_PROPN", + "revolución_PROPN_cubana_PROPN", + "revolución_PROPN_cubano_ADJ", + "revolución_PROPN_democrática_PROPN", + "revolución_PROPN_francesa_PROPN", + "revolución_PROPN_industrial_PROPN", + "revolución_PROPN_islámica_PROPN", + "revolución_PROPN_mexicana_PROPN", + "revolución_PROPN_naranja_PROPN", + "revue_PROPN_générale_PROPN", + "revuelta_NOUN_popular_ADJ", + "revés_NOUN_sufrido_ADJ", + "revólver_NOUN_calibre_NOUN", + "rex_PROPN_tillerson_PROPN", + "rey_NOUN_abdullah_ADJ", + "rey_NOUN_abdullah_PROPN", + "rey_NOUN_alfonso_PROPN", + "rey_NOUN_chico_PROPN", + "rey_NOUN_felipe_PROPN", + "rey_NOUN_mago_ADJ", + "rey_NOUN_mohamed_PROPN", + "rey_NOUN_mohammed_ADJ", + "rey_NOUN_nazar_PROPN", + "rey_PROPN_don_PROPN", + "rey_PROPN_fahd_PROPN", + "reyes_PROPN_baeza_PROPN", + "reyes_PROPN_católicos_PROPN", + "reyes_PROPN_heroles_PROPN", + "reyes_PROPN_magos_PROPN", + "reyes_PROPN_rodríguez_PROPN", + "rezago_NOUN_educativo_ADJ", + "reúnir_VERB_anualmente_ADV", + "reúnir_VERB_periódicamente_ADV", + "rhode_PROPN_island_PROPN", + "ria_PROPN_novosti_PROPN", + "ribera_NOUN_occidental_ADJ", + "ribera_PROPN_occidental_ADJ", + "rica_PROPN_côte_PROPN", + "ricardo_PROPN_alarcón_PROPN", + "ricardo_PROPN_alfonsín_PROPN", + "ricardo_PROPN_anaya_PROPN", + "ricardo_PROPN_arjona_PROPN", + "ricardo_PROPN_colombi_PROPN", + "ricardo_PROPN_costa_PROPN", + "ricardo_PROPN_darín_PROPN", + "ricardo_PROPN_echegaray_PROPN", + "ricardo_PROPN_ferretti_PROPN", + "ricardo_PROPN_gareca_PROPN", + "ricardo_PROPN_jaime_PROPN", + "ricardo_PROPN_lagos_PROPN", + "ricardo_PROPN_lorenzetti_PROPN", + "ricardo_PROPN_martinelli_PROPN", + "ricardo_PROPN_monreal_PROPN", + "ricardo_PROPN_palma_PROPN", + "ricardo_PROPN_patiño_PROPN", + "ricardo_PROPN_rojas_PROPN", + "ricardo_PROPN_rosselló_PROPN", + "ricardo_PROPN_saprissa_PROPN", + "richard_PROPN_gere_PROPN", + "richard_PROPN_nixon_PROPN", + "richard_PROPN_ryan_PROPN", + "rick_PROPN_santorum_PROPN", + "ricky_PROPN_martin_PROPN", + "ricky_PROPN_rubio_PROPN", + "rico_ADJ_croacia_PROPN", + "rico_ADJ_côte_PROPN", + "ridley_PROPN_scott_PROPN", + "rienda_NOUN_suelta_NOUN", + "rienda_NOUN_suelto_ADJ", + "riesgo_NOUN_cardiovascular_ADJ", + "riesgo_NOUN_inherente_ADJ", + "riesgo_NOUN_sistémico_ADJ", + "riesgo_NOUN_sísmico_ADJ", + "riesgos_PROPN_laborales_PROPN", + "riesgos_PROPN_sanitarios_PROPN", + "right_NOUN_to_ADP", + "right_PROPN_of_PROPN", + "right_PROPN_to_ADP", + "right_PROPN_to_PROPN", + "rights_PROPN_action_PROPN", + "rights_PROPN_and_CCONJ", + "rights_PROPN_and_PROPN", + "rights_PROPN_commission_PROPN", + "rights_PROPN_in_ADP", + "rights_PROPN_initiative_PROPN", + "rights_PROPN_institutions_PROPN", + "rights_PROPN_law_PROPN", + "rights_PROPN_of_ADP", + "rights_PROPN_watch_PROPN", + "rigor_NOUN_presupuestario_ADJ", + "rigurosamente_ADV_restringido_ADJ", + "rindo_VERB_homenaje_NOUN", + "ringo_PROPN_starr_PROPN", + "rio_PROPN_negro_PROPN", + "rio_PROPN_tinto_PROPN", + "ripert_PROPN_francia_PROPN", + "riqueza_NOUN_mineral_ADJ", + "riqueza_NOUN_petrolero_ADJ", + "rita_PROPN_barberá_PROPN", + "ritmo_NOUN_acelerado_ADJ", + "ritmo_NOUN_alarmante_ADJ", + "ritmo_NOUN_cardíaco_ADJ", + "ritmo_NOUN_frenético_ADJ", + "ritmo_NOUN_lento_ADJ", + "ritmo_NOUN_vertiginoso_ADJ", + "rito_NOUN_religioso_ADJ", + "rival_NOUN_republicano_ADJ", + "rivasseau_PROPN_francia_PROPN", + "river_PROPN_plate_PROPN", + "rivero_PROPN_perú_PROPN", + "riviera_PROPN_maya_PROPN", + "riyal_NOUN_árabe_ADJ", + "ro_PROPN_señor_NOUN", + "ro_PROPN_señora_PROPN", + "robbie_PROPN_williams_PROPN", + "robert_PROPN_downey_PROPN", + "robert_PROPN_gates_PROPN", + "robert_PROPN_gibbs_PROPN", + "robert_PROPN_kennedy_PROPN", + "robert_PROPN_kubica_PROPN", + "robert_PROPN_mueller_PROPN", + "robert_PROPN_mugabe_PROPN", + "robert_PROPN_pattinson_PROPN", + "robert_PROPN_schuman_PROPN", + "roberto_PROPN_borge_PROPN", + "roberto_PROPN_carlos_PROPN", + "roberto_PROPN_clemente_PROPN", + "roberto_PROPN_gil_PROPN", + "roberto_PROPN_gómez_PROPN", + "roberto_PROPN_hernández_PROPN", + "roberto_PROPN_lavagna_PROPN", + "roberto_PROPN_madrazo_PROPN", + "roberto_PROPN_mancini_PROPN", + "roberto_PROPN_micheletti_PROPN", + "roberto_PROPN_soldado_PROPN", + "robin_PROPN_hood_PROPN", + "robin_PROPN_van_PROPN", + "robo_NOUN_agravado_ADJ", + "robo_NOUN_calificado_ADJ", + "rock_NOUN_and_NOUN", + "rock_NOUN_argentino_ADJ", + "rock_PROPN_and_PROPN", + "rock_PROPN_in_ADP", + "rocío_PROPN_dúrcal_PROPN", + "rocío_PROPN_jurado_PROPN", + "rod_PROPN_laver_PROPN", + "rodilla_NOUN_derecho_ADJ", + "rodilla_NOUN_izquierdo_ADJ", + "rodolfo_PROPN_ares_PROPN", + "rodolfo_PROPN_stavenhagen_PROPN", + "rodolfo_PROPN_walsh_PROPN", + "rodrigo_PROPN_malmierca_PROPN", + "rodrigo_PROPN_medina_PROPN", + "rodrigo_PROPN_palacio_PROPN", + "rodrigo_PROPN_rato_PROPN", + "rodríguez_PROPN_cedeño_PROPN", + "rodríguez_PROPN_cuadros_PROPN", + "rodríguez_PROPN_ibarra_PROPN", + "rodríguez_PROPN_larreta_PROPN", + "rodríguez_PROPN_parrilla_PROPN", + "rodríguez_PROPN_saá_PROPN", + "rodríguez_PROPN_zapatero_PROPN", + "rogar_VERB_encarecidamente_ADV", + "rogelio_PROPN_frigerio_PROPN", + "roger_PROPN_clemens_PROPN", + "roger_PROPN_federer_PROPN", + "roger_PROPN_waters_PROPN", + "rojo_NOUN_vivo_ADJ", + "rol_NOUN_protagónico_ADJ", + "roland_PROPN_garros_PROPN", + "role_PROPN_of_PROPN", + "rolling_PROPN_stone_PROPN", + "rolling_PROPN_stones_PROPN", + "rolls_PROPN_royce_PROPN", + "roman_PROPN_abramovich_PROPN", + "roman_PROPN_polanski_PROPN", + "roman_PROPN_wieruszewski_PROPN", + "romano_PROPN_prodi_PROPN", + "ron_PROPN_dennis_PROPN", + "ron_PROPN_paul_PROPN", + "ronald_PROPN_reagan_PROPN", + "ronda_NOUN_uruguay_PROPN", + "ronda_PROPN_uruguay_PROPN", + "ropa_NOUN_calzado_NOUN", + "ropa_NOUN_deportivo_ADJ", + "ropa_NOUN_interior_ADJ", + "ropa_NOUN_sucio_ADJ", + "ropa_NOUN_usado_ADJ", + "roque_PROPN_sáenz_PROPN", + "rosa_NOUN_blanco_ADJ", + "rosa_NOUN_rojo_ADJ", + "rosa_PROPN_aguilar_PROPN", + "rosa_PROPN_díez_PROPN", + "rosa_PROPN_maría_PROPN", + "rosario_PROPN_central_PROPN", + "rosario_PROPN_murillo_PROPN", + "rosario_PROPN_robles_PROPN", + "rosenthal_VERB_guatemala_PROPN", + "roshdy_PROPN_egipto_PROPN", + "rostro_NOUN_cubierto_ADJ", + "rostro_NOUN_pálido_ADJ", + "rosángela_PROPN_espinoza_PROPN", + "rotación_NOUN_geográfico_ADJ", + "rotary_NOUN_international_ADJ", + "rotary_PROPN_club_PROPN", + "rotundo_ADJ_fracaso_NOUN", + "rotundo_ADJ_éxito_NOUN", + "rotura_NOUN_fibrilar_ADJ", + "roux_PROPN_sudáfrica_PROPN", + "rowe_NOUN_sierra_NOUN", + "royal_PROPN_bank_PROPN", + "royal_PROPN_caribbean_PROPN", + "royal_PROPN_society_PROPN", + "rpp_PROPN_noticias_PROPN", + "rt_NOUN_i_CCONJ", + "rubens_PROPN_ricupero_PROPN", + "rublos_NOUN_belaruso_ADJ", + "rubén_PROPN_blades_PROPN", + "rubén_PROPN_darío_PROPN", + "rubén_PROPN_moreira_PROPN", + "rubén_PROPN_ramírez_PROPN", + "rudolf_ADV_bernhardt_PROPN", + "rudy_PROPN_fernández_PROPN", + "rueda_NOUN_delantero_ADJ", + "rueda_NOUN_trasero_ADJ", + "rugby_PROPN_club_PROPN", + "rugir_VERB_encarecidamente_ADV", + "ruido_NOUN_molesto_ADJ", + "ruiz_PROPN_díaz_PROPN", + "ruiz_PROPN_massieu_PROPN", + "rules_PROPN_of_PROPN", + "ruleta_NOUN_ruso_ADJ", + "rumania_PROPN_federación_PROPN", + "rumania_PROPN_rwanda_PROPN", + "rumania_PROPN_samoa_PROPN", + "rumania_PROPN_san_PROPN", + "rumania_PROPN_senegal_PROPN", + "rumania_PROPN_serbia_PROPN", + "rumania_PROPN_sudáfrica_PROPN", + "rumania_PROPN_suecia_PROPN", + "rumbo_NOUN_desconocido_ADJ", + "rupert_PROPN_murdoch_PROPN", + "rusa_NOUN_maria_PROPN", + "rusia_PROPN_fiji_PROPN", + "rusia_PROPN_filipinas_PROPN", + "rusia_PROPN_finlandia_PROPN", + "rusia_PROPN_gabón_PROPN", + "rusia_PROPN_unida_PROPN", + "rusia_PROPN_vladimir_PROPN", + "rusia_PROPN_vladímir_PROPN", + "ruso_ADJ_dmitri_PROPN", + "ruso_ADJ_gazprom_PROPN", + "ruso_ADJ_vladimir_PROPN", + "ruso_ADJ_vladímir_PROPN", + "ruso_NOUN_nikolay_PROPN", + "russell_PROPN_crowe_PROPN", + "russian_PROPN_federation_PROPN", + "ruta_NOUN_alterno_ADJ", + "ruta_NOUN_provincial_ADJ", + "ruta_PROPN_nacional_PROPN", + "ruta_PROPN_provincial_PROPN", + "ruth_PROPN_ortiz_PROPN", + "ruth_PROPN_wedgwood_PROPN", + "rutina_NOUN_diario_ADJ", + "ruud_PROPN_lubbers_PROPN", + "ruud_PROPN_van_PROPN", + "ruy_PROPN_blas_PROPN", + "rwanda_PROPN_fdlr_PROPN", + "rwanda_PROPN_saint_PROPN", + "rwanda_PROPN_samoa_PROPN", + "rwanda_PROPN_senegal_PROPN", + "rwanda_PROPN_unamir_PROPN", + "rwanda_PROPN_unomur_NOUN", + "ryan_PROPN_reynolds_PROPN", + "ránking_NOUN_mundial_ADJ", + "rápido_ADJ_expansión_NOUN", + "rápido_ADJ_urbanización_NOUN", + "récord_NOUN_guinness_PROPN", + "récord_NOUN_histórico_ADJ", + "rédito_NOUN_político_ADJ", + "régimen_NOUN_autoritario_ADJ", + "régimen_NOUN_castrista_ADJ", + "régimen_NOUN_comunista_ADJ", + "régimen_NOUN_dictatorial_ADJ", + "régimen_NOUN_franquista_ADJ", + "régimen_NOUN_nazi_ADJ", + "régimen_NOUN_norcoreano_ADJ", + "régimen_NOUN_separatista_ADJ", + "régimen_NOUN_sionista_ADJ", + "régimen_NOUN_subsidiado_ADJ", + "régimen_NOUN_talibán_ADJ", + "régimen_NOUN_totalitario_ADJ", + "régimen_NOUN_uniforme_ADJ", + "régimen_PROPN_común_PROPN", + "régimen_PROPN_general_PROPN", + "río_NOUN_bravo_PROPN", + "río_NOUN_ebro_PROPN", + "río_NOUN_guadalquivir_PROPN", + "río_NOUN_jordán_PROPN", + "río_NOUN_litani_PROPN", + "río_NOUN_magdalena_PROPN", + "río_NOUN_paraná_PROPN", + "río_NOUN_revuelto_ADJ", + "río_PROPN_blanco_PROPN", + "río_PROPN_bravo_PROPN", + "río_PROPN_colorado_PROPN", + "río_PROPN_cuarto_PROPN", + "río_PROPN_gallegos_PROPN", + "río_PROPN_grande_ADJ", + "río_PROPN_hondo_PROPN", + "río_PROPN_mano_PROPN", + "río_PROPN_negro_PROPN", + "río_PROPN_paraná_PROPN", + "río_PROPN_piedras_PROPN", + "río_PROPN_tercero_PROPN", + "río_PROPN_turbio_PROPN", + "ríos_PROPN_montt_PROPN", + "s_NOUN_n_NOUN", + "saber_AUX_cuál_PRON", + "saber_AUX_cuándo_PRON", + "saber_AUX_cuánto_PRON", + "saber_AUX_cuántos_DET", + "saber_AUX_cómo_PRON", + "saber_AUX_dónde_PRON", + "saber_AUX_quién_PRON", + "saber_AUX_qué_DET", + "saber_VERB_adónde_PRON", + "sabiduría_NOUN_popular_ADJ", + "sablière_PROPN_francia_PROPN", + "sabor_NOUN_agridulce_ADJ", + "sabor_NOUN_amargo_ADJ", + "sacar_VERB_adelante_NOUN", + "sacar_VERB_provecho_NOUN", + "sacar_VERB_rédito_NOUN", + "sacar_VERB_tajada_NOUN", + "sacerdote_NOUN_católico_ADJ", + "sach_PROPN_contralor_NOUN", + "sach_PROPN_director_NOUN", + "saco_NOUN_roto_ADJ", + "sacyr_PROPN_vallehermoso_PROPN", + "sadako_PROPN_ogata_PROPN", + "sadam_PROPN_husein_PROPN", + "sadam_PROPN_hussein_PROPN", + "saddam_PROPN_hussein_PROPN", + "sagrada_PROPN_escritura_PROPN", + "sagrada_PROPN_familia_PROPN", + "sagrado_PROPN_corazón_PROPN", + "saha_ADJ_presidente_NOUN", + "sahara_PROPN_occidental_ADJ", + "sahara_PROPN_occidental_PROPN", + "said_PROPN_to_PROPN", + "saint_PROPN_kitts_PROPN", + "sal_NOUN_yodado_ADJ", + "sala_NOUN_b_NUM", + "sala_NOUN_c_NUM", + "sala_NOUN_cuna_NOUN", + "sala_NOUN_velatorio_ADJ", + "sala_PROPN_constitucional_PROPN", + "sala_PROPN_penal_PROPN", + "sala_PROPN_superior_PROPN", + "salario_NOUN_mensual_ADJ", + "salario_NOUN_mínimo_ADJ", + "salario_PROPN_mínimo_PROPN", + "saldo_NOUN_acreedor_ADJ", + "saldo_NOUN_arrastrado_ADJ", + "saldo_NOUN_deudor_ADJ", + "saldo_NOUN_excedente_ADJ", + "saldo_NOUN_neto_ADJ", + "saldo_NOUN_pendiente_ADJ", + "saldo_NOUN_restante_ADJ", + "sale_PROPN_of_ADP", + "salida_NOUN_transitorio_ADJ", + "salim_PROPN_ahmed_PROPN", + "salina_PROPN_cruz_PROPN", + "salir_VERB_airoso_ADJ", + "salir_VERB_beneficiado_ADJ", + "salir_VERB_despedido_ADJ", + "salir_VERB_desviado_ADJ", + "salir_VERB_disparado_ADJ", + "salir_VERB_fortalecido_ADJ", + "salir_VERB_ileso_ADJ", + "salir_VERB_indemne_ADJ", + "salir_VERB_triunfante_ADJ", + "salir_VERB_victorioso_ADJ", + "salma_PROPN_hayek_PROPN", + "salman_PROPN_rushdie_PROPN", + "salomón_PROPN_israel_PROPN", + "salomón_PROPN_italia_PROPN", + "salt_PROPN_lake_PROPN", + "salto_NOUN_cualitativo_ADJ", + "salto_PROPN_grande_ADJ", + "salud_NOUN_bucal_ADJ", + "salud_NOUN_bucodental_ADJ", + "salud_NOUN_genésica_PROPN", + "salud_NOUN_materno_ADJ", + "salud_NOUN_maternoinfantil_ADJ", + "salud_NOUN_mental_ADJ", + "salud_NOUN_oms_PROPN", + "salud_NOUN_reproductivo_ADJ", + "salud_PROPN_mental_PROPN", + "salud_PROPN_minsa_PROPN", + "salud_PROPN_oms_PROPN", + "salud_PROPN_ops_PROPN", + "salud_PROPN_pública_PROPN", + "salud_PROPN_sexual_PROPN", + "saludar_VERB_atentamente_ADV", + "salvador_PROPN_allende_PROPN", + "salvador_PROPN_cabañas_PROPN", + "salvador_PROPN_dalí_PROPN", + "salvador_PROPN_emirato_NOUN", + "salvador_PROPN_eritrea_NOUN", + "salvador_PROPN_eslovaquia_PROPN", + "salvador_PROPN_estonia_PROPN", + "salvador_PROPN_guatemala_PROPN", + "salvador_PROPN_guinea_PROPN", + "salvador_PROPN_honduras_PROPN", + "salvador_PROPN_onusal_NOUN", + "salvamento_NOUN_marítimo_ADJ", + "salvamento_PROPN_marítimo_PROPN", + "salvar_VERB_tú_VERB", + "salvo_ADP_indicación_NOUN", + "salón_PROPN_blanco_PROPN", + "salón_PROPN_internacional_PROPN", + "sam_PROPN_rainsy_PROPN", + "samoa_PROPN_americana_PROPN", + "samoa_PROPN_americano_ADJ", + "samoa_PROPN_news_PROPN", + "samoa_PROPN_san_PROPN", + "samsung_PROPN_electronics_PROPN", + "samsung_PROPN_galaxy_PROPN", + "samuel_PROPN_moreno_PROPN", + "samuel_PROPN_sánchez_PROPN", + "san_PROPN_agustin_PROPN", + "san_PROPN_agustín_PROPN", + "san_PROPN_andrés_PROPN", + "san_PROPN_antonio_PROPN", + "san_PROPN_antón_PROPN", + "san_PROPN_bartolomé_PROPN", + "san_PROPN_basilio_PROPN", + "san_PROPN_benito_PROPN", + "san_PROPN_bernardino_PROPN", + "san_PROPN_bernardo_PROPN", + "san_PROPN_blas_PROPN", + "san_PROPN_borja_PROPN", + "san_PROPN_cayetano_PROPN", + "san_PROPN_clemente_PROPN", + "san_PROPN_cristóbal_PROPN", + "san_PROPN_diego_PROPN", + "san_PROPN_esteban_PROPN", + "san_PROPN_fermín_PROPN", + "san_PROPN_fernando_PROPN", + "san_PROPN_francisco_PROPN", + "san_PROPN_gil_PROPN", + "san_PROPN_ginés_PROPN", + "san_PROPN_gregorio_PROPN", + "san_PROPN_ignacio_PROPN", + "san_PROPN_ildefonso_PROPN", + "san_PROPN_isidro_PROPN", + "san_PROPN_jacinto_PROPN", + "san_PROPN_jerónimo_PROPN", + "san_PROPN_jose_PROPN", + "san_PROPN_josé_PROPN", + "san_PROPN_juan_PROPN", + "san_PROPN_judas_PROPN", + "san_PROPN_julián_PROPN", + "san_PROPN_justo_PROPN", + "san_PROPN_lorenzo_PROPN", + "san_PROPN_lucas_PROPN", + "san_PROPN_luis_PROPN", + "san_PROPN_lázaro_PROPN", + "san_PROPN_mamés_PROPN", + "san_PROPN_marcos_PROPN", + "san_PROPN_marino_PROPN", + "san_PROPN_martín_PROPN", + "san_PROPN_mateo_PROPN", + "san_PROPN_miguel_PROPN", + "san_PROPN_miguelito_PROPN", + "san_PROPN_millán_PROPN", + "san_PROPN_nicolás_PROPN", + "san_PROPN_pablo_PROPN", + "san_PROPN_patricio_PROPN", + "san_PROPN_pedro_PROPN", + "san_PROPN_petersburgo_PROPN", + "san_PROPN_quintín_PROPN", + "san_PROPN_rafael_PROPN", + "san_PROPN_remo_PROPN", + "san_PROPN_román_PROPN", + "san_PROPN_roque_PROPN", + "san_PROPN_salvador_PROPN", + "san_PROPN_sebastián_PROPN", + "san_PROPN_silvestre_PROPN", + "san_PROPN_siro_PROPN", + "san_PROPN_suu_PROPN", + "san_PROPN_telmo_PROPN", + "san_PROPN_valentín_PROPN", + "san_PROPN_vicente_PROPN", + "san_PROPN_vito_PROPN", + "san_PROPN_ysidro_PROPN", + "sancho_PROPN_don_NOUN", + "sancho_PROPN_panza_PROPN", + "sancionar_VERB_penalmente_ADV", + "sanción_NOUN_disciplinario_ADJ", + "sanción_NOUN_impuesto_ADJ", + "sanción_NOUN_pecuniaria_ADJ", + "sanción_NOUN_penal_ADJ", + "sanción_NOUN_selectivo_ADJ", + "sancti_PROPN_spíritus_PROPN", + "sandra_PROPN_bullock_PROPN", + "sandro_PROPN_rosell_PROPN", + "sandy_PROPN_hook_PROPN", + "saneamiento_NOUN_ambiental_ADJ", + "sangre_NOUN_derramado_ADJ", + "sangre_NOUN_fría_NOUN", + "sangre_NOUN_frío_ADJ", + "sanidad_PROPN_animal_PROPN", + "sanidad_PROPN_pública_PROPN", + "sanidad_PROPN_servicios_PROPN", + "sano_ADJ_convivencia_NOUN", + "sant_PROPN_andreu_PROPN", + "sant_PROPN_antoni_PROPN", + "sant_PROPN_boi_PROPN", + "sant_PROPN_cugat_PROPN", + "sant_PROPN_feliu_PROPN", + "sant_PROPN_jaume_PROPN", + "sant_PROPN_joan_PROPN", + "sant_PROPN_jordi_PROPN", + "sant_PROPN_josep_PROPN", + "sant_PROPN_pau_PROPN", + "santa_PROPN_ana_PROPN", + "santa_PROPN_anita_PROPN", + "santa_PROPN_bárbara_PROPN", + "santa_PROPN_catalina_PROPN", + "santa_PROPN_catarina_PROPN", + "santa_PROPN_cecilia_PROPN", + "santa_PROPN_clara_PROPN", + "santa_PROPN_claus_PROPN", + "santa_PROPN_coloma_PROPN", + "santa_PROPN_cruz_PROPN", + "santa_PROPN_elena_PROPN", + "santa_PROPN_eulalia_PROPN", + "santa_PROPN_eulària_PROPN", + "santa_PROPN_fe_PROPN", + "santa_PROPN_fé_PROPN", + "santa_PROPN_inés_PROPN", + "santa_PROPN_isabel_PROPN", + "santa_PROPN_lucia_PROPN", + "santa_PROPN_lucir_VERB", + "santa_PROPN_lucía_PROPN", + "santa_PROPN_madre_PROPN", + "santa_PROPN_maria_PROPN", + "santa_PROPN_marta_PROPN", + "santa_PROPN_martha_PROPN", + "santa_PROPN_maría_PROPN", + "santa_PROPN_misa_PROPN", + "santa_PROPN_mónica_PROPN", + "santa_PROPN_pola_PROPN", + "santa_PROPN_rita_PROPN", + "santa_PROPN_rosa_PROPN", + "santa_PROPN_rosalía_PROPN", + "santa_PROPN_sede_PROPN", + "santa_PROPN_sofía_PROPN", + "santa_PROPN_tecla_PROPN", + "santa_PROPN_teresa_PROPN", + "santa_PROPN_teresita_PROPN", + "santa_PROPN_úrsula_PROPN", + "santiago_PROPN_apóstol_PROPN", + "santiago_PROPN_bernabeu_PROPN", + "santiago_PROPN_bernabéu_PROPN", + "santiago_PROPN_carrillo_PROPN", + "santiago_PROPN_creel_PROPN", + "santiago_PROPN_giraldo_PROPN", + "santiago_PROPN_maldonado_PROPN", + "santiago_PROPN_segura_PROPN", + "santiago_PROPN_silva_PROPN", + "santiago_PROPN_wins_PROPN", + "santo_ADJ_fe_NOUN", + "santo_ADJ_sede_NOUN", + "santo_ADJ_varón_NOUN", + "santo_NOUN_alves_PROPN", + "santo_NOUN_domingo_NOUN", + "santo_NOUN_tomar_VERB", + "santo_NOUN_tomás_PROPN", + "santo_PROPN_cristo_PROPN", + "santo_PROPN_domingo_PROPN", + "santo_PROPN_grial_PROPN", + "santo_PROPN_oficio_PROPN", + "santo_PROPN_padre_PROPN", + "santo_PROPN_sepulcro_PROPN", + "santo_PROPN_tomás_PROPN", + "santo_PROPN_tomé_PROPN", + "santos_PROPN_laguna_PROPN", + "santísima_PROPN_trinidad_PROPN", + "santísima_PROPN_virgen_PROPN", + "santísimo_PROPN_sacramento_PROPN", + "sao_PROPN_paulo_PROPN", + "saque_NOUN_directo_ADJ", + "sara_PROPN_carbonero_PROPN", + "sarah_PROPN_jessica_PROPN", + "sarah_PROPN_palin_PROPN", + "sardenberg_PROPN_brasil_PROPN", + "sareva_PROPN_secretario_NOUN", + "sattar_PROPN_secretario_NOUN", + "saturday_PROPN_night_PROPN", + "satélite_ADJ_gnss_PROPN", + "satélite_NOUN_artificial_ADJ", + "satélite_NOUN_geoestacionario_ADJ", + "satélite_NOUN_meteorológico_ADJ", + "saudi_PROPN_arabia_PROPN", + "saudi_PROPN_aramco_PROPN", + "saudi_PROPN_automotive_ADJ", + "saudita_ADJ_argelia_PROPN", + "saudita_ADJ_argentino_ADJ", + "saudita_ADJ_senegal_ADJ", + "saudita_PROPN_argelia_PROPN", + "save_PROPN_the_PROPN", + "saxo_PROPN_bank_PROPN", + "saúl_PROPN_canelo_PROPN", + "scarlett_PROPN_johansson_PROPN", + "school_PROPN_of_PROPN", + "science_PROPN_and_PROPN", + "scotland_PROPN_yard_PROPN", + "sean_PROPN_penn_PROPN", + "sebastian_PROPN_vettel_PROPN", + "sebastián_PROPN_casanello_PROPN", + "sebastián_PROPN_castella_PROPN", + "sebastián_PROPN_piñera_PROPN", + "sebastián_PROPN_verón_PROPN", + "sección_NOUN_b_NUM", + "sección_NOUN_b_SYM", + "sección_NOUN_c_NUM", + "sección_NOUN_c_SYM", + "sección_NOUN_ii_ADJ", + "sección_NOUN_iii_ADJ", + "sección_NOUN_iii_NUM", + "sección_NOUN_infra_ADV", + "sección_NOUN_iv_NUM", + "sección_NOUN_iv_PROPN", + "sección_NOUN_v_NUM", + "sección_NOUN_v_SYM", + "sección_NOUN_viii_PROPN", + "sección_NOUN_xi_NOUN", + "sección_PROPN_oficial_PROPN", + "second_PROPN_instalment_PROPN", + "second_PROPN_life_PROPN", + "second_PROPN_secretary_PROPN", + "secretaria_NOUN_ejecutivo_ADJ", + "secretaria_PROPN_general_PROPN", + "secretariado_PROPN_ejecutivo_PROPN", + "secretario_NOUN_general_ADJ", + "secretario_PROPN_general_PROPN", + "secretary_PROPN_of_PROPN", + "secretaría_PROPN_técnica_PROPN", + "secreto_NOUN_bancario_ADJ", + "secta_NOUN_religioso_ADJ", + "sector_NOUN_agroalimentario_ADJ", + "sector_NOUN_agroindustrial_ADJ", + "sector_NOUN_agropecuario_ADJ", + "sector_NOUN_avícola_ADJ", + "sector_NOUN_azucarero_ADJ", + "sector_NOUN_cuts_PROPN", + "sector_NOUN_ganadero_ADJ", + "sector_NOUN_lácteo_ADJ", + "sector_NOUN_manufacturero_ADJ", + "sector_NOUN_privado_ADJ", + "sector_NOUN_textil_ADJ", + "sector_NOUN_uts_PROPN", + "sector_NOUN_vitivinícola_ADJ", + "sector_PROPN_público_PROPN", + "sector_PROPN_salud_PROPN", + "secuela_NOUN_físico_ADJ", + "secuestro_NOUN_extorsivo_ADJ", + "security_PROPN_and_PROPN", + "security_PROPN_council_PROPN", + "seda_NOUN_negro_ADJ", + "sede_NOUN_nueva_PROPN", + "see_PRON_also_ADV", + "see_PRON_also_NOUN", + "see_PRON_also_PROPN", + "see_PROPN_also_PROPN", + "see_PROPN_notar_VERB", + "see_PROPN_note_PROPN", + "see_VERB_also_ADV", + "see_VERB_also_NOUN", + "segregación_NOUN_ocupacional_ADJ", + "segregación_NOUN_racial_ADJ", + "seguir_VERB_expandeir_PROPN", + "seguir_VERB_preocupándole_NOUN", + "segunda_NOUN_mano_NOUN", + "segunda_PROPN_b_PROPN", + "segunda_PROPN_división_PROPN", + "segunda_PROPN_guerra_PROPN", + "segundo_ADJ_intifada_NOUN", + "segundo_ADJ_lectura_NOUN", + "segundo_ADJ_nupcia_NOUN", + "segundo_ADJ_preclasificado_ADJ", + "segundo_ADJ_quincena_NOUN", + "segundo_ADJ_semestre_NOUN", + "segundo_ADJ_trimestre_NOUN", + "seguridad_NOUN_alimentario_ADJ", + "seguridad_NOUN_social_NOUN", + "seguridad_NOUN_vial_ADJ", + "seguridad_PROPN_aeroportuaria_PROPN", + "seguridad_PROPN_alimentaria_PROPN", + "seguridad_PROPN_aérea_PROPN", + "seguridad_PROPN_ciudadana_PROPN", + "seguridad_PROPN_colectiva_PROPN", + "seguridad_PROPN_común_PROPN", + "seguridad_PROPN_interna_PROPN", + "seguridad_PROPN_marítima_PROPN", + "seguridad_PROPN_nuclear_PROPN", + "seguridad_PROPN_patricia_PROPN", + "seguridad_PROPN_pública_PROPN", + "seguridad_PROPN_social_PROPN", + "seguridad_PROPN_vial_PROPN", + "seguro_ADJ_médico_NOUN", + "seguro_NOUN_médico_ADJ", + "seguro_PROPN_popular_PROPN", + "seguro_PROPN_social_PROPN", + "según_ADP_convenga_NOUN", + "según_ADP_corresponda_NOUN", + "según_SCONJ_constar_VERB", + "según_SCONJ_corresponda_NOUN", + "según_SCONJ_informar_VERB", + "según_SCONJ_proceda_NOUN", + "según_SCONJ_proceder_VERB", + "según_SCONJ_relatar_VERB", + "según_SCONJ_reveler_VERB", + "según_SCONJ_trascender_VERB", + "seir_VERB_also_NOUN", + "seis_NUM_días_PROPN", + "seis_NUM_idioma_NOUN", + "seis_NUM_mes_NOUN", + "seix_PROPN_barral_PROPN", + "seleccionado_ADJ_argentino_ADJ", + "seleccionado_NOUN_argentino_ADJ", + "seleccionador_NOUN_español_ADJ", + "selecciones_PROPN_nacionales_PROPN", + "selección_NOUN_brasileño_ADJ", + "selección_NOUN_chileno_ADJ", + "selección_NOUN_ecuatoriano_ADJ", + "selección_NOUN_paraguayo_ADJ", + "selección_NOUN_peruano_ADJ", + "selección_NOUN_prenatal_ADJ", + "selección_NOUN_uruguayo_ADJ", + "selección_PROPN_argentina_PROPN", + "selección_PROPN_argentino_ADJ", + "selección_PROPN_colombia_PROPN", + "selección_PROPN_española_PROPN", + "selección_PROPN_mexicana_PROPN", + "selección_PROPN_nacional_PROPN", + "selección_PROPN_peruana_PROPN", + "selectividad_NOUN_imparcialidad_NOUN", + "selectivo_NOUN_español_ADJ", + "selecto_ADJ_club_NOUN", + "selena_PROPN_gomez_PROPN", + "selena_PROPN_gómez_PROPN", + "sello_NOUN_discográfico_ADJ", + "sello_NOUN_distintivo_ADJ", + "sello_NOUN_postal_ADJ", + "selva_NOUN_amazónico_ADJ", + "selva_NOUN_tropical_ADJ", + "semana_NOUN_entrante_ADJ", + "semana_NOUN_pasado_ADJ", + "semana_NOUN_passado_ADJ", + "semana_PROPN_mayor_PROPN", + "semana_PROPN_santa_PROPN", + "semanario_NOUN_alemán_ADJ", + "semestre_PROPN_europeo_PROPN", + "semilla_NOUN_oleaginosa_ADJ", + "senado_PROPN_harry_PROPN", + "senador_NOUN_demócrata_ADJ", + "senador_NOUN_electo_ADJ", + "senador_NOUN_john_PROPN", + "senador_NOUN_panista_ADJ", + "senador_NOUN_republicano_ADJ", + "senador_NOUN_vitalicio_ADJ", + "senadora_NOUN_cristina_PROPN", + "sendero_PROPN_luminoso_PROPN", + "senegal_ADJ_serbia_PROPN", + "senegal_ADJ_sierra_NOUN", + "senegal_NOUN_serbia_PROPN", + "senegal_NOUN_seychell_ADJ", + "senegal_NOUN_sierra_NOUN", + "senegal_PROPN_serbia_PROPN", + "senegal_PROPN_sierra_NOUN", + "senegal_PROPN_singapur_PROPN", + "senegal_PROPN_sri_PROPN", + "senegal_PROPN_sudáfrica_PROPN", + "sensación_NOUN_térmico_ADJ", + "sensiblemente_ADV_inferior_ADJ", + "sent_ADJ_in_ADP", + "sent_PROPN_in_ADP", + "sentar_VERB_cómodo_ADJ", + "sentar_VERB_precedente_NOUN", + "sentencia_NOUN_absolutorio_ADJ", + "sentencia_NOUN_arbitral_ADJ", + "sentencia_NOUN_condenatorio_ADJ", + "sentencia_NOUN_dictado_ADJ", + "sentencia_NOUN_firme_ADJ", + "sentencia_NOUN_pronunciado_ADJ", + "sentida_ADJ_condolencia_NOUN", + "sentido_ADJ_homenaje_NOUN", + "sentido_ADJ_pésame_NOUN", + "sentido_NOUN_figurado_ADJ", + "sentido_NOUN_inverso_ADJ", + "sentido_NOUN_pésame_ADJ", + "sentido_NOUN_pésame_VERB", + "sentimiento_NOUN_encontrado_ADJ", + "sentir_VERB_abrumado_ADJ", + "sentir_VERB_alentado_ADJ", + "sentir_VERB_aliviado_ADJ", + "sentir_VERB_atraído_ADJ", + "sentir_VERB_avergonzado_ADJ", + "sentir_VERB_complacido_ADJ", + "sentir_VERB_conmovido_ADJ", + "sentir_VERB_consternado_ADJ", + "sentir_VERB_cómodo_ADJ", + "sentir_VERB_decepcionado_ADJ", + "sentir_VERB_defraudado_ADJ", + "sentir_VERB_discriminado_ADJ", + "sentir_VERB_engañado_ADJ", + "sentir_VERB_frustrado_ADJ", + "sentir_VERB_halagado_ADJ", + "sentir_VERB_honrado_ADJ", + "sentir_VERB_humillado_ADJ", + "sentir_VERB_impotente_ADJ", + "sentir_VERB_inclinado_ADJ", + "sentir_VERB_incómodo_ADJ", + "sentir_VERB_inseguro_ADJ", + "sentir_VERB_intimidado_ADJ", + "sentir_VERB_ofendido_ADJ", + "sentir_VERB_orgulloso_ADJ", + "sentir_VERB_presionado_ADJ", + "sentir_VERB_traicionado_ADJ", + "sep_NOUN_efe_PROPN", + "separación_NOUN_fnuos_PROPN", + "sepelio_NOUN_efectuado_ADJ", + "sequía_NOUN_grave_ADJ", + "sequía_NOUN_inundación_NOUN", + "ser_NOUN_amado_ADJ", + "ser_NOUN_humano_ADJ", + "ser_NOUN_querido_ADJ", + "ser_NOUN_viviente_ADJ", + "ser_NOUN_vivo_ADJ", + "serbia_PROPN_singapur_PROPN", + "serbia_PROPN_suizo_ADJ", + "serbio_ADJ_sierra_NOUN", + "serbio_NOUN_novak_PROPN", + "serena_PROPN_williams_PROPN", + "serer_AUX_capaz_ADJ", + "seres_NOUN_humanos_NOUN", + "sergi_PROPN_roberto_PROPN", + "sergio_PROPN_agüero_PROPN", + "sergio_PROPN_batista_PROPN", + "sergio_PROPN_busquets_PROPN", + "sergio_PROPN_duarte_PROPN", + "sergio_PROPN_garcía_PROPN", + "sergio_PROPN_hernández_PROPN", + "sergio_PROPN_ivanovich_PROPN", + "sergio_PROPN_massa_PROPN", + "sergio_PROPN_moro_PROPN", + "sergio_PROPN_pérez_PROPN", + "sergio_PROPN_ramos_PROPN", + "sergio_PROPN_ramírez_PROPN", + "sergio_PROPN_rodríguez_PROPN", + "sergio_PROPN_romero_PROPN", + "sergio_PROPN_scariolo_PROPN", + "sergio_PROPN_torres_PROPN", + "sergio_PROPN_urribarri_PROPN", + "sergio_PROPN_varisco_PROPN", + "sergio_PROPN_vieira_PROPN", + "serguei_PROPN_lavrov_PROPN", + "seriamente_ADV_amenazado_ADJ", + "seriamente_ADV_comprometido_ADJ", + "seriamente_ADV_dañado_ADJ", + "seriamente_ADV_preocupado_ADJ", + "serie_NOUN_cronológico_ADJ", + "serie_NOUN_misc_PROPN", + "serie_NOUN_televisivo_ADJ", + "serie_PROPN_a_PROPN", + "serie_PROPN_b_PROPN", + "serie_PROPN_mundial_PROPN", + "serio_ADJ_revés_NOUN", + "servicio_NOUN_móvil_PROPN", + "servicio_NOUN_postal_ADJ", + "servicio_NOUN_prestado_ADJ", + "servicio_PROPN_andaluz_PROPN", + "servicio_PROPN_bolivariano_PROPN", + "servicio_PROPN_europeo_PROPN", + "servicio_PROPN_exterior_PROPN", + "servicio_PROPN_federal_PROPN", + "servicio_PROPN_geológico_PROPN", + "servicio_PROPN_jurídico_PROPN", + "servicio_PROPN_meteorológico_PROPN", + "servicio_PROPN_militar_PROPN", + "servicio_PROPN_médico_PROPN", + "servicio_PROPN_móvil_NOUN", + "servicio_PROPN_móvil_PROPN", + "servicio_PROPN_nacional_PROPN", + "servicio_PROPN_penitenciario_PROPN", + "servicio_PROPN_profesional_PROPN", + "servicio_PROPN_público_PROPN", + "servicio_PROPN_secreto_PROPN", + "servicio_PROPN_sismológico_PROPN", + "servicios_NOUN_general_ADJ", + "servicios_NOUN_generales_NOUN", + "servicios_PROPN_financieros_PROPN", + "servicios_PROPN_periciales_PROPN", + "servicios_PROPN_públicos_PROPN", + "servicios_PROPN_sanitarios_PROPN", + "servicios_PROPN_sociales_PROPN", + "servidor_NOUN_público_ADJ", + "servidumbre_NOUN_doméstico_ADJ", + "sesión_NOUN_celebrado_ADJ", + "sesión_NOUN_informe_ADJ", + "sesión_NOUN_plenario_ADJ", + "sesión_NOUN_reanudado_ADJ", + "sesión_NOUN_suplemento_NOUN", + "sesión_NOUN_sustantivo_ADJ", + "sesión_PROPN_ordinaria_PROPN", + "session_PROPN_of_PROPN", + "set_NOUN_corrido_ADJ", + "seth_PROPN_secretario_NOUN", + "severamente_ADV_afectado_ADJ", + "severo_ADJ_restricción_NOUN", + "sexagésimo_ADJ_aniversario_NOUN", + "sexagésimo_ADJ_cuarto_ADJ", + "sexagésimo_ADJ_período_NOUN", + "sexagésimo_ADJ_segundo_ADJ", + "sexagésimo_ADJ_tercer_ADJ", + "sexagésimo_NOUN_cuarto_ADJ", + "sexagésimo_NOUN_tercer_ADJ", + "sexagésimo_PROPN_cuarto_ADJ", + "sexagésimo_PROPN_segundo_ADJ", + "sexagésimo_PROPN_tercer_ADJ", + "sexo_NOUN_femenino_ADJ", + "sexo_NOUN_idioma_NOUN", + "sexo_NOUN_masculino_ADJ", + "sexo_NOUN_opuesto_ADJ", + "sexo_NOUN_oral_ADJ", + "sexo_NOUN_raza_NOUN", + "sexto_ADJ_combinado_ADJ", + "sexto_ADJ_período_NOUN", + "sexto_PROPN_programa_PROPN", + "sexual_ADJ_exploitation_PROPN", + "sexualmente_ADV_activo_ADJ", + "seychell_ADJ_sierra_NOUN", + "seña_NOUN_particular_ADJ", + "señal_NOUN_alentadora_ADJ", + "señal_NOUN_alentadoro_ADJ", + "señal_NOUN_equivocado_ADJ", + "señal_NOUN_inequívoco_ADJ", + "señalada_ADJ_anteriormente_ADV", + "señalado_ADJ_anteriormente_ADV", + "señalar_VERB_acertadamente_ADV", + "señalización_NOUN_vial_ADJ", + "señor_INTJ_comisario_PROPN", + "señor_INTJ_presidente_PROPN", + "señor_NOUN_almunia_PROPN", + "señor_NOUN_aubry_PROPN", + "señor_NOUN_barnier_PROPN", + "señor_NOUN_barroso_PROPN", + "señor_NOUN_barrot_PROPN", + "señor_NOUN_barón_PROPN", + "señor_NOUN_bennet_PROPN", + "señor_NOUN_blokland_PROPN", + "señor_NOUN_bowis_PROPN", + "señor_NOUN_brok_PROPN", + "señor_NOUN_buttiglione_PROPN", + "señor_NOUN_buzek_PROPN", + "señor_NOUN_böge_PROPN", + "señor_NOUN_cappato_PROPN", + "señor_NOUN_cashman_PROPN", + "señor_NOUN_catania_PROPN", + "señor_NOUN_coelho_PROPN", + "señor_NOUN_comisario_PROPN", + "señor_NOUN_comisarios_PROPN", + "señor_NOUN_conde_PROPN", + "señor_NOUN_corbett_PROPN", + "señor_NOUN_darcy_PROPN", + "señor_NOUN_daul_PROPN", + "señor_NOUN_diamandouros_PROPN", + "señor_NOUN_dimas_PROPN", + "señor_NOUN_eurlings_PROPN", + "señor_NOUN_farage_PROPN", + "señor_NOUN_feudal_ADJ", + "señor_NOUN_fischler_PROPN", + "señor_NOUN_florenz_PROPN", + "señor_NOUN_frasquito_PROPN", + "señor_NOUN_frattini_PROPN", + "señor_NOUN_gauzès_PROPN", + "señor_NOUN_gollnisch_PROPN", + "señor_NOUN_graefe_PROPN", + "señor_NOUN_grosch_PROPN", + "señor_NOUN_harbour_PROPN", + "señor_NOUN_jarzembowski_PROPN", + "señor_NOUN_jouyet_PROPN", + "señor_NOUN_juncker_PROPN", + "señor_NOUN_kallas_PROPN", + "señor_NOUN_karas_PROPN", + "señor_NOUN_langen_PROPN", + "señor_NOUN_lehne_PROPN", + "señor_NOUN_leinen_PROPN", + "señor_NOUN_lra_PROPN", + "señor_NOUN_lukashenko_PROPN", + "señor_NOUN_mandelson_PROPN", + "señor_NOUN_markov_PROPN", + "señor_NOUN_mccreevy_PROPN", + "señor_NOUN_mitchell_PROPN", + "señor_NOUN_morrel_PROPN", + "señor_NOUN_mulder_PROPN", + "señor_NOUN_nassauer_PROPN", + "señor_NOUN_oettinger_PROPN", + "señor_NOUN_poettering_PROPN", + "señor_NOUN_ponente_ADJ", + "señor_NOUN_posselt_PROPN", + "señor_NOUN_presidente_PROPN", + "señor_NOUN_prodi_PROPN", + "señor_NOUN_rehn_PROPN", + "señor_NOUN_rübig_PROPN", + "señor_NOUN_sacconi_PROPN", + "señor_NOUN_salafranca_PROPN", + "señor_NOUN_santer_PROPN", + "señor_NOUN_savary_PROPN", + "señor_NOUN_schulz_PROPN", + "señor_NOUN_schwab_PROPN", + "señor_NOUN_solana_PROPN", + "señor_NOUN_sterckx_PROPN", + "señor_NOUN_stubb_PROPN", + "señor_NOUN_swoboda_PROPN", + "señor_NOUN_tajani_PROPN", + "señor_NOUN_tannock_PROPN", + "señor_NOUN_trichet_PROPN", + "señor_NOUN_turmes_PROPN", + "señor_NOUN_verheugen_PROPN", + "señor_NOUN_verhofstadt_PROPN", + "señor_NOUN_vicepresidente_PROPN", + "señor_NOUN_watson_PROPN", + "señor_NOUN_weber_PROPN", + "señor_PROPN_comisario_PROPN", + "señor_PROPN_don_PROPN", + "señor_PROPN_jesucristo_PROPN", + "señora_NOUN_ashton_PROPN", + "señora_NOUN_bauer_PROPN", + "señora_NOUN_bennet_PROPN", + "señora_NOUN_berès_PROPN", + "señora_NOUN_chermidy_PROPN", + "señora_NOUN_comisaria_PROPN", + "señora_NOUN_condesa_NOUN", + "señora_NOUN_condesa_PROPN", + "señora_NOUN_danglars_PROPN", + "señora_NOUN_doyle_PROPN", + "señora_NOUN_doña_NOUN", + "señora_NOUN_dulcinea_PROPN", + "señora_NOUN_fraga_PROPN", + "señora_NOUN_frassoni_PROPN", + "señora_NOUN_gebhardt_PROPN", + "señora_NOUN_gomes_PROPN", + "señora_NOUN_grossetête_PROPN", + "señora_NOUN_harms_PROPN", + "señora_NOUN_haug_PROPN", + "señora_NOUN_kroes_PROPN", + "señora_NOUN_lulling_PROPN", + "señora_NOUN_malmström_PROPN", + "señora_NOUN_mcguinness_PROPN", + "señora_NOUN_merkel_PROPN", + "señora_NOUN_ministra_PROPN", + "señora_NOUN_mía_DET", + "señora_NOUN_pack_PROPN", + "señora_NOUN_ponente_ADJ", + "señora_NOUN_presidenta_PROPN", + "señora_NOUN_raquin_PROPN", + "señora_NOUN_reding_PROPN", + "señora_NOUN_roure_PROPN", + "señora_NOUN_vicepresidenta_PROPN", + "señora_NOUN_wallis_PROPN", + "señora_NOUN_wallström_PROPN", + "señora_PROPN_comisaria_PROPN", + "señora_PROPN_doña_PROPN", + "señora_PROPN_presidenta_PROPN", + "señorita_NOUN_guichard_PROPN", + "señorita_NOUN_pross_PROPN", + "señorías_PROPN_permítanme_VERB", + "señá_NOUN_frasquita_PROPN", + "seúl_PROPN_corea_PROPN", + "sg_NOUN_cp_PROPN", + "sg_NOUN_oc_NOUN", + "sg_NOUN_oc_PROPN", + "sg_PROPN_oc_PROPN", + "shakhtar_PROPN_donetsk_PROPN", + "shall_PROPN_be_PROPN", + "sharia_NOUN_islámico_ADJ", + "sharma_PROPN_nepal_PROPN", + "sharon_PROPN_stone_PROPN", + "she_PROPN_had_PROPN", + "she_PROPN_was_PROPN", + "shere_PROPN_khan_PROPN", + "sherlock_PROPN_holmes_PROPN", + "shimon_PROPN_peres_PROPN", + "shinzo_PROPN_abe_PROPN", + "shoshone_PROPN_occidental_ADJ", + "should_PROPN_be_PROPN", + "show_NOUN_musical_ADJ", + "si_PRON_mismo_ADJ", + "si_PRON_mismo_DET", + "si_SCONJ_acaso_NOUN", + "si_SCONJ_dijser_VERB", + "si_SCONJ_vierar_VERB", + "siembra_NOUN_directo_ADJ", + "sierra_NOUN_leona_NOUN", + "sierra_NOUN_leona_PROPN", + "sierra_NOUN_leonar_VERB", + "sierra_NOUN_león_ADJ", + "sierra_NOUN_nevado_ADJ", + "sierra_PROPN_leona_PROPN", + "sierra_PROPN_leone_PROPN", + "sierra_PROPN_madre_PROPN", + "sierra_PROPN_maestra_PROPN", + "sierra_PROPN_morena_PROPN", + "sierra_PROPN_nevada_PROPN", + "siete_NUM_décima_NOUN", + "siete_NUM_hit_NOUN", + "siete_NUM_imparable_ADJ", + "siete_NUM_inning_NOUN", + "sigla_NOUN_inglés_ADJ", + "siglo_NOUN_iv_NOUN", + "siglo_NOUN_ix_NOUN", + "siglo_NOUN_xi_NOUN", + "siglo_NOUN_xii_NOUN", + "siglo_NOUN_xiii_NOUN", + "siglo_NOUN_xiv_NOUN", + "siglo_NOUN_xix_NOUN", + "siglo_NOUN_xv_NOUN", + "siglo_NOUN_xvi_NOUN", + "siglo_NOUN_xvii_NOUN", + "siglo_NOUN_xviii_NOUN", + "siglo_NOUN_xx_NOUN", + "siglo_NOUN_xxi_NOUN", + "siglo_NOUN_xxi_PROPN", + "siglo_PROPN_xxi_NOUN", + "siglo_PROPN_xxi_PROPN", + "sigmund_PROPN_freud_PROPN", + "signatura_NOUN_ccw_PROPN", + "signatura_NOUN_cedaw_PROPN", + "signatura_NOUN_s_NOUN", + "signatura_NOUN_s_PROPN", + "signatura_NOUN_td_PROPN", + "signatura_NOUN_título_NOUN", + "significar_VERB_necesariamente_ADV", + "significativamente_ADV_inferior_ADJ", + "signo_NOUN_alentador_ADJ", + "signo_NOUN_distintivo_ADJ", + "signo_NOUN_vital_ADJ", + "siguiente_ADJ_a_SYM", + "sik_ADJ_yuen_PROPN", + "silencio_NOUN_cómplice_ADJ", + "silicon_PROPN_valley_PROPN", + "silla_NOUN_vacío_ADJ", + "silot_NOUN_bravo_ADJ", + "silvano_PROPN_aureoles_PROPN", + "silvio_PROPN_berlusconi_PROPN", + "silvio_PROPN_rodríguez_PROPN", + "simple_ADJ_vista_NOUN", + "simón_PROPN_bolívar_PROPN", + "simón_PROPN_renard_PROPN", + "sin_ADP_ambages_NOUN", + "sin_ADP_chistar_VERB", + "sin_ADP_contar_NOUN", + "sin_ADP_cortapisa_NOUN", + "sin_ADP_demora_NOUN", + "sin_ADP_detonar_VERB", + "sin_ADP_dilación_NOUN", + "sin_ADP_distingo_NOUN", + "sin_ADP_duda_NOUN", + "sin_ADP_embargo_NOUN", + "sin_ADP_embrago_NOUN", + "sin_ADP_escrúpulo_NOUN", + "sin_ADP_estridencia_NOUN", + "sin_ADP_fronteras_PROPN", + "sin_ADP_ir_NOUN", + "sin_ADP_litoral_NOUN", + "sin_ADP_menoscabo_NOUN", + "sin_ADP_miramiento_NOUN", + "sin_ADP_mordaza_NOUN", + "sin_ADP_mordaza_PROPN", + "sin_ADP_parangón_NOUN", + "sin_ADP_pestañear_NOUN", + "sin_ADP_pestañear_VERB", + "sin_ADP_precedente_NOUN", + "sin_ADP_tapujo_NOUN", + "sin_ADP_tapujos_NOUN", + "sin_ADP_titubeo_NOUN", + "sin_ADP_ton_NOUN", + "sin_ADP_traba_NOUN", + "sin_ADP_tropiezo_NOUN", + "since_PROPN_the_PROPN", + "sincero_ADJ_agradecimiento_NOUN", + "sincero_ADJ_condolencia_NOUN", + "sincero_ADJ_enhorabuena_NOUN", + "sincero_ADJ_felicitación_NOUN", + "sincero_ADJ_gratitud_NOUN", + "sincero_ADJ_pésame_NOUN", + "sindicato_NOUN_cc_PROPN", + "sindicato_NOUN_mayoritario_ADJ", + "sindicato_NOUN_ugt_PROPN", + "sindicato_PROPN_mexicano_PROPN", + "sindicato_PROPN_nacional_PROPN", + "sindicato_PROPN_único_PROPN", + "sine_PROPN_lege_PROPN", + "singapur_PROPN_eslovaquia_PROPN", + "singapur_PROPN_somalia_PROPN", + "singapur_PROPN_sri_PROPN", + "singapur_PROPN_sudáfrica_PROPN", + "singapur_PROPN_sudán_PROPN", + "singapur_PROPN_tailandia_PROPN", + "siniestralidad_NOUN_laboral_ADJ", + "siniestro_NOUN_vial_ADJ", + "sinn_PROPN_fein_PROPN", + "sinn_PROPN_féin_PROPN", + "sino_CCONJ_además_NOUN", + "sino_CCONJ_tambien_NOUN", + "sino_CCONJ_también_NOUN", + "sint_PROPN_maarten_PROPN", + "sir_NOUN_emyr_ADJ", + "sir_PROPN_alex_PROPN", + "sir_PROPN_charles_PROPN", + "sir_PROPN_evandale_PROPN", + "sir_PROPN_george_PROPN", + "sir_PROPN_henry_PROPN", + "sir_PROPN_humphrey_PROPN", + "sir_PROPN_jeremy_PROPN", + "sir_PROPN_john_PROPN", + "sir_PROPN_jorge_PROPN", + "sir_PROPN_ketumile_PROPN", + "sir_PROPN_leon_PROPN", + "sir_PROPN_nigel_PROPN", + "siracusa_PROPN_italia_PROPN", + "sirio_ADJ_bachar_PROPN", + "sirio_ADJ_bashar_PROPN", + "sirio_ADJ_ocupado_ADJ", + "sirio_ADJ_tailandia_ADJ", + "sirio_ADJ_tayikistán_PROPN", + "sis_PROPN_ii_PROPN", + "sistema_NOUN_acuífero_ADJ", + "sistema_NOUN_aerotransportado_ADJ", + "sistema_NOUN_atlas_NOUN", + "sistema_NOUN_atlas_PROPN", + "sistema_NOUN_automatizado_ADJ", + "sistema_NOUN_circulatorio_ADJ", + "sistema_NOUN_computadorizado_ADJ", + "sistema_NOUN_computarizado_ADJ", + "sistema_NOUN_gains_PROPN", + "sistema_NOUN_informatizado_ADJ", + "sistema_NOUN_inmune_ADJ", + "sistema_NOUN_inmunitario_ADJ", + "sistema_NOUN_inmunológico_ADJ", + "sistema_NOUN_mundialmente_ADV", + "sistema_NOUN_operativo_ADJ", + "sistema_NOUN_previsional_ADJ", + "sistema_NOUN_sui_ADJ", + "sistema_NOUN_vector_ADJ", + "sistema_PROPN_dif_PROPN", + "sistema_PROPN_estatal_PROPN", + "sistema_PROPN_integrado_PROPN", + "sistema_PROPN_nacional_PROPN", + "sistema_PROPN_penitenciario_PROPN", + "sistema_PROPN_solar_PROPN", + "sitio_NOUN_arqueológico_ADJ", + "sitio_NOUN_correctamente_ADV", + "sitio_NOUN_web_ADJ", + "sitio_NOUN_web_NOUN", + "sitio_NOUN_web_PROPN", + "sitio_PROPN_web_PROPN", + "situación_NOUN_anómalo_ADJ", + "situación_NOUN_desventajós_ADJ", + "situación_NOUN_embarazoso_ADJ", + "situación_NOUN_imperante_ADJ", + "situación_NOUN_imprevista_ADJ", + "situación_NOUN_prevaleciente_ADJ", + "situación_NOUN_reinante_ADJ", + "situado_ADJ_fuera_ADV", + "situation_PROPN_and_PROPN", + "situation_PROPN_of_PROPN", + "sk_PROPN_señor_NOUN", + "sk_PROPN_señora_PROPN", + "sky_PROPN_news_PROPN", + "slobodan_PROPN_milosevic_PROPN", + "sm_NOUN_pn_NOUN", + "sm_PROPN_sg_NOUN", + "small_PROPN_arms_PROPN", + "small_PROPN_business_PROPN", + "smart_PROPN_tv_PROPN", + "smith_PROPN_australia_PROPN", + "so_ADP_pena_NOUN", + "so_ADP_pretexto_NOUN", + "so_CCONJ_pena_NOUN", + "so_NOUN_pena_NOUN", + "so_NOUN_pretexto_NOUN", + "soberanía_NOUN_alimentario_ADJ", + "sobra_NOUN_conocido_ADJ", + "sobrado_ADJ_razón_NOUN", + "sobre_NOUN_cerrado_ADJ", + "socavar_VERB_gravemente_ADV", + "social_ADJ_daes_PROPN", + "social_PROPN_council_PROPN", + "social_PROPN_cristiano_PROPN", + "social_PROPN_demócrata_PROPN", + "social_PROPN_development_PROPN", + "social_PROPN_security_PROPN", + "socialdemócrata_NOUN_danés_ADJ", + "socialdemócrata_NOUN_sueco_ADJ", + "socialismo_PROPN_mas_PROPN", + "socialista_ADJ_soviético_ADJ", + "socialista_NOUN_andaluz_ADJ", + "socialista_NOUN_catalán_ADJ", + "socialista_NOUN_soviético_ADJ", + "socialista_NOUN_valenciano_ADJ", + "socialista_NOUN_vasco_ADJ", + "socialista_PROPN_democrática_PROPN", + "socialistas_PROPN_europeos_PROPN", + "socialmente_ADV_aceptable_ADJ", + "socialmente_ADV_desfavorecido_ADJ", + "socialmente_ADV_excluido_ADJ", + "socialmente_ADV_injusto_ADJ", + "socialmente_ADV_marginado_ADJ", + "socialmente_ADV_responsable_ADJ", + "socialmente_ADV_vulnerable_ADJ", + "sociedad_NOUN_afgán_ADJ", + "sociedad_NOUN_anónimo_ADJ", + "sociedad_NOUN_civil_ADJ", + "sociedad_NOUN_fiduciaria_ADJ", + "sociedad_NOUN_haitián_ADJ", + "sociedad_NOUN_matriz_ADJ", + "sociedad_NOUN_mercantil_ADJ", + "sociedad_NOUN_multicultural_ADJ", + "sociedad_NOUN_multiétnico_ADJ", + "sociedad_NOUN_offshore_ADJ", + "sociedad_NOUN_pluralista_ADJ", + "sociedad_PROPN_americana_PROPN", + "sociedad_PROPN_anónima_PROPN", + "sociedad_PROPN_civil_PROPN", + "sociedad_PROPN_cooperativa_PROPN", + "sociedad_PROPN_española_PROPN", + "sociedad_PROPN_estatal_PROPN", + "sociedad_PROPN_interamericana_PROPN", + "sociedad_PROPN_rural_PROPN", + "society_PROPN_for_PROPN", + "society_PROPN_of_PROPN", + "socio_NOUN_comercial_ADJ", + "socio_NOUN_fundador_ADJ", + "socio_NOUN_mediterráneo_ADJ", + "société_PROPN_générale_PROPN", + "socorro_NOUN_humanitario_ADJ", + "socorro_NOUN_prestado_ADJ", + "soda_PROPN_stereo_PROPN", + "software_NOUN_libre_ADJ", + "sofía_PROPN_vergara_PROPN", + "sois_AUX_vos_PROPN", + "sol_NOUN_azteca_ADJ", + "sol_NOUN_brillar_VERB", + "sol_NOUN_naciente_ADJ", + "sol_NOUN_poniente_ADV", + "sol_NOUN_radiante_ADJ", + "solari_PROPN_yrigoyen_PROPN", + "soldado_NOUN_desmovilizado_ADJ", + "soldado_NOUN_israelí_ADJ", + "soldado_NOUN_raso_ADJ", + "solicitar_VERB_asilo_NOUN", + "solicitud_NOUN_incidental_ADJ", + "solidaridad_NOUN_intergeneracional_ADJ", + "solo_ADV_superado_ADJ", + "solo_PRON_querer_VERB", + "solución_NOUN_amigable_ADJ", + "solución_NOUN_biestatal_ADJ", + "solución_NOUN_biestatal_ADV", + "solución_NOUN_duradero_ADJ", + "solución_NOUN_habitacional_ADJ", + "solución_NOUN_innovadora_ADJ", + "solución_NOUN_negociado_ADJ", + "solución_NOUN_pacífico_ADJ", + "somalia_ADJ_sudáfrica_PROPN", + "somalia_NOUN_onusom_PROPN", + "somalia_PROPN_amisom_PROPN", + "somalia_PROPN_sri_PROPN", + "somalia_PROPN_sudáfrica_PROPN", + "sombrío_ADJ_panorama_NOUN", + "some_PROPN_of_PROPN", + "son_PROPN_dureta_PROPN", + "son_PROPN_espases_PROPN", + "son_PROPN_moix_PROPN", + "sonar_VERB_raro_ADJ", + "sonda_NOUN_espacial_ADJ", + "sondeo_NOUN_publicado_ADJ", + "sondeo_NOUN_realizado_ADJ", + "sony_PROPN_ericsson_PROPN", + "sony_PROPN_music_PROPN", + "sony_PROPN_pictures_PROPN", + "sony_PROPN_xperia_PROPN", + "soplar_VERB_viento_NOUN", + "soporte_NOUN_informático_ADJ", + "soporte_NOUN_lógico_ADJ", + "soporte_NOUN_vital_ADJ", + "sor_PROPN_juana_PROPN", + "sor_PROPN_maría_PROPN", + "soraya_PROPN_rodríguez_PROPN", + "soraya_PROPN_sáenz_PROPN", + "soroptimist_PROPN_international_PROPN", + "sorprender_VERB_gratamente_ADV", + "sorprender_VERB_yo_VERB", + "sorpresa_NOUN_desagradable_ADJ", + "sospecha_NOUN_fundado_ADJ", + "sospecha_NOUN_razonable_ADJ", + "sostenibilidad_NOUN_ambiental_ADJ", + "sostenibilidad_NOUN_medioambiental_ADJ", + "south_PROPN_africa_PROPN", + "south_PROPN_africar_VERB", + "south_PROPN_asia_PROPN", + "south_PROPN_florida_PROPN", + "south_PROPN_stream_PROPN", + "southern_PROPN_africa_PROPN", + "special_ADJ_rapporteur_PROPN", + "special_PROPN_administrative_PROPN", + "special_PROPN_rapporteur_PROPN", + "spice_PROPN_girls_PROPN", + "sport_PROPN_boys_PROPN", + "sport_PROPN_huancayo_PROPN", + "sporting_PROPN_cristal_PROPN", + "spot_NOUN_publicitario_ADJ", + "square_PROPN_enix_PROPN", + "srgjan_PROPN_kerim_PROPN", + "sri_PROPN_lanka_PROPN", + "srijem_NOUN_occidental_ADJ", + "st_NOUN_sg_NOUN", + "st_PROPN_adm_PROPN", + "st_PROPN_louis_PROPN", + "st_PROPN_sg_NOUN", + "stamford_PROPN_bridge_PROPN", + "stand_NOUN_by_NOUN", + "stand_NOUN_up_NOUN", + "standard_PROPN_and_PROPN", + "stanley_PROPN_kubrick_PROPN", + "staples_PROPN_center_PROPN", + "star_PROPN_trek_PROPN", + "star_PROPN_wars_PROPN", + "start_NOUN_ii_PROPN", + "start_NOUN_iii_PROPN", + "state_PROPN_for_PROPN", + "state_PROPN_of_PROPN", + "state_PROPN_responsibility_PROPN", + "states_PROPN_of_PROPN", + "statistics_PROPN_canada_PROPN", + "statu_NOUN_of_ADP", + "statu_NOUN_quo_NOUN", + "statu_NOUN_quo_PROPN", + "status_NOUN_quo_NOUN", + "status_NOUN_quo_PROPN", + "status_PROPN_of_PROPN", + "stella_PROPN_maris_PROPN", + "stephen_PROPN_harper_PROPN", + "stephen_PROPN_hawking_PROPN", + "stephen_PROPN_king_PROPN", + "steve_PROPN_ballmer_PROPN", + "steve_PROPN_jobs_PROPN", + "steven_PROPN_gerrard_PROPN", + "steven_PROPN_spielberg_PROPN", + "stevie_PROPN_wonder_PROPN", + "stockholm_PROPN_convention_PROPN", + "stoke_PROPN_city_PROPN", + "stoute_PROPN_secretaria_NOUN", + "stranger_PROPN_things_PROPN", + "street_PROPN_fighter_PROPN", + "street_PROPN_journal_PROPN", + "street_PROPN_view_PROPN", + "studies_PROPN_in_ADP", + "study_PROPN_of_PROPN", + "su_PRON_anchas_NOUN", + "su_PRON_vez_NOUN", + "subasta_NOUN_electrónico_ADJ", + "subcomisión_PROPN_a_NOUN", + "subestación_NOUN_eléctrico_ADJ", + "subgrupo_NOUN_técnico_ADJ", + "subida_NOUN_salarial_ADJ", + "subir_VERB_centavo_NOUN", + "subject_PROPN_to_PROPN", + "submarino_NOUN_ara_PROPN", + "submarino_NOUN_nuclear_ADJ", + "submission_PROPN_february_NOUN", + "submission_PROPN_november_NOUN", + "submitting_PROPN_entity_PROPN", + "submunición_NOUN_explosivo_ADJ", + "subprograma_NOUN_recaer_VERB", + "subsecretaria_NOUN_general_ADJ", + "subsecretario_NOUN_general_ADJ", + "subsidio_NOUN_mensual_ADJ", + "subsistencia_NOUN_alternativo_ADJ", + "subtema_NOUN_b_PROPN", + "subtema_NOUN_d_PROPN", + "subtema_NOUN_f_PROPN", + "subtema_NOUN_g_PROPN", + "subtema_NOUN_titulado_ADJ", + "subvención_NOUN_agrícola_ADJ", + "subvención_NOUN_concedido_ADJ", + "subvención_NOUN_otorgado_ADJ", + "sucesivo_ADJ_denominado_ADJ", + "sucesivo_ADJ_president_NOUN", + "sucesión_NOUN_montenegro_NOUN", + "suceso_NOUN_acaecido_ADJ", + "suceso_NOUN_ocurrido_ADJ", + "such_PROPN_as_PROPN", + "sucumbir_VERB_ante_ADP", + "sucursal_NOUN_bancario_ADJ", + "sud_PROPN_américa_PROPN", + "sudeste_NOUN_asiático_ADJ", + "sudeste_PROPN_asiático_ADJ", + "sudeste_PROPN_asiático_PROPN", + "sudor_NOUN_frío_ADJ", + "sudáfrica_PROPN_sri_PROPN", + "sudáfrica_PROPN_sudán_PROPN", + "sudáfrica_PROPN_suecia_PROPN", + "sudáfrica_PROPN_swazilandia_PROPN", + "sudáfrica_PROPN_tailandia_PROPN", + "sudán_PROPN_amis_PROPN", + "sudán_PROPN_meridional_ADJ", + "sudán_PROPN_meridional_PROPN", + "sudán_PROPN_suecia_PROPN", + "sudán_PROPN_suriname_PROPN", + "sudán_PROPN_swazilandia_PROPN", + "sudán_PROPN_túnez_PROPN", + "sudán_PROPN_unmis_NOUN", + "sudán_PROPN_unmis_PROPN", + "suecia_PROPN_suiza_PROPN", + "suecia_PROPN_suriname_PROPN", + "suecia_PROPN_swazilandia_PROPN", + "suecia_PROPN_tailandia_PROPN", + "sueldo_NOUN_atrasado_ADJ", + "sueldo_NOUN_bruto_ADJ", + "sueldo_NOUN_estándar_ADJ", + "sueldo_NOUN_mensual_ADJ", + "sueldo_NOUN_neto_ADJ", + "sueldo_NOUN_pagado_ADJ", + "suelo_NOUN_contaminado_ADJ", + "suelo_NOUN_rústico_ADJ", + "suerte_NOUN_corrido_ADJ", + "sueño_NOUN_americano_ADJ", + "sueño_NOUN_cumplido_ADJ", + "suficiente_ADJ_antelación_NOUN", + "suficientemente_ADV_ambicioso_ADJ", + "suficientemente_ADV_flexible_ADJ", + "suficientemente_ADV_fundamentada_ADJ", + "suficientemente_ADV_fundamentado_ADJ", + "suficientemente_ADV_informado_ADJ", + "suficientemente_ADV_maduro_ADJ", + "suficientemente_ADV_representado_ADJ", + "sufragio_NOUN_universal_ADJ", + "sufragio_NOUN_universal_NOUN", + "sufrimiento_NOUN_causado_ADJ", + "sufrimiento_NOUN_infligido_ADJ", + "sufrimiento_NOUN_innecesario_ADJ", + "sufrimiento_NOUN_moral_ADJ", + "sufrir_VERB_fractura_NOUN", + "sufrir_VERB_herida_NOUN", + "sufrir_VERB_quemadura_NOUN", + "sufrir_VERB_traumatismo_NOUN", + "sugerencia_NOUN_formulado_ADJ", + "sugeri_ADV_sugeri_ADV", + "sui_PROPN_generis_PROPN", + "suicidio_NOUN_asistido_ADJ", + "suiza_PROPN_suriname_PROPN", + "suiza_PROPN_swazilandia_PROPN", + "suiza_PROPN_tailandia_ADJ", + "suiza_PROPN_tailandia_PROPN", + "suiza_PROPN_tayikistán_PROPN", + "suiza_PROPN_turquía_PROPN", + "suizo_NOUN_roger_PROPN", + "sujeto_NOUN_desconocido_ADJ", + "sujeto_NOUN_identificado_ADJ", + "sujeto_NOUN_pasivo_ADJ", + "sukehiro_PROPN_hasegawa_PROPN", + "sulfuro_NOUN_polimetálico_ADJ", + "suma_NOUN_acreditabl_ADJ", + "suma_NOUN_acreditado_ADJ", + "suma_NOUN_adeudado_ADJ", + "suma_NOUN_consignado_ADJ", + "suma_NOUN_equivalente_ADJ", + "suma_NOUN_fijo_ADJ", + "suma_NOUN_pagadera_ADJ", + "suma_NOUN_pagado_ADJ", + "suma_NOUN_presupuestado_ADJ", + "suma_NOUN_prorrateado_ADJ", + "suma_NOUN_recaudada_ADJ", + "suma_NOUN_reclamado_ADJ", + "suma_NOUN_resultante_ADJ", + "sumamente_ADV_agradecido_ADJ", + "sumamente_ADV_complejo_ADJ", + "sumamente_ADV_delicado_ADJ", + "sumamente_ADV_difícil_ADJ", + "sumamente_ADV_frágil_ADJ", + "sumamente_ADV_importante_ADJ", + "sumamente_ADV_lamentable_ADJ", + "sumamente_ADV_precario_ADJ", + "sumamente_ADV_preocupado_ADJ", + "sumamente_ADV_preocupante_ADJ", + "sumamente_ADV_valioso_ADJ", + "sumamente_ADV_útil_ADJ", + "suministrador_NOUN_nuclear_ADJ", + "suministro_NOUN_eléctrico_ADJ", + "summary_PROPN_of_PROPN", + "sumo_ADJ_agrado_NOUN", + "sumo_ADJ_cuidado_NOUN", + "sumo_ADJ_gravedad_NOUN", + "sumo_ADJ_importancia_NOUN", + "sumo_ADJ_interés_NOUN", + "sumo_ADJ_pontífice_NOUN", + "sumo_ADJ_utilidad_NOUN", + "sumo_NOUN_agrado_NOUN", + "sumo_PROPN_pontífice_PROPN", + "sun_PROPN_city_PROPN", + "sun_PROPN_microsystems_PROPN", + "sunday_PROPN_times_PROPN", + "supachai_PROPN_panitchpakdi_PROPN", + "super_PROPN_bowl_PROPN", + "super_PROPN_mario_PROPN", + "superación_NOUN_personal_ADJ", + "superar_VERB_ampliamente_ADV", + "superficie_NOUN_construido_ADJ", + "superficie_NOUN_cultivado_ADJ", + "superficie_NOUN_forestal_ADJ", + "superficie_NOUN_lunar_ADJ", + "superficie_NOUN_marcián_ADJ", + "superficie_NOUN_plano_ADJ", + "superficie_NOUN_sembrado_ADJ", + "superficie_NOUN_terrestre_ADJ", + "superficie_NOUN_total_ADJ", + "superintendencia_PROPN_nacional_PROPN", + "superior_NOUN_jerárquico_ADJ", + "superior_PROPN_tribunal_PROPN", + "superioridad_NOUN_moral_ADJ", + "superioridad_NOUN_numérico_ADJ", + "superioridad_NOUN_racial_ADJ", + "supervisar_VERB_cuidadosamente_ADV", + "supervisión_NOUN_interno_ADJ", + "supervisor_PROPN_europeo_PROPN", + "superávit_NOUN_actuarial_ADJ", + "superávit_NOUN_comercial_ADJ", + "superávit_NOUN_fiscal_ADJ", + "superávit_NOUN_presupuestario_ADJ", + "superávit_NOUN_primario_ADJ", + "suplemento_NOUN_alimenticio_ADJ", + "suplemento_NOUN_nº_NUM", + "supra_ADV_nota_NOUN", + "suprema_PROPN_corte_PROPN", + "supreme_PROPN_court_PROPN", + "supremo_PROPN_electoral_PROPN", + "supremo_PROPN_tribunal_PROPN", + "supresión_NOUN_gradual_ADJ", + "supuesto_ADJ_agresor_NOUN", + "supuesto_ADJ_irregularidad_NOUN", + "supuesto_ADJ_trama_NOUN", + "sur_PROPN_mercosur_PROPN", + "sureste_NOUN_asiático_ADJ", + "sureño_PROPN_tel_PROPN", + "suriname_PROPN_swazilandia_PROPN", + "suriname_PROPN_tailandia_ADJ", + "suriname_PROPN_tailandia_PROPN", + "surtir_VERB_efecto_NOUN", + "survey_PROPN_of_PROPN", + "susana_PROPN_díaz_PROPN", + "susana_PROPN_giménez_PROPN", + "susana_PROPN_malcorra_PROPN", + "suscitar_VERB_inquietud_NOUN", + "suscitar_VERB_preocupación_NOUN", + "suscribir_VERB_plenamente_ADV", + "suspender_VERB_provisionalmente_ADV", + "suspender_VERB_temporalmente_ADV", + "suspensión_NOUN_cautelar_ADJ", + "suspensión_NOUN_condicional_ADJ", + "suspensión_NOUN_temporal_ADJ", + "sustainable_PROPN_development_PROPN", + "sustancia_NOUN_adictiva_ADJ", + "sustancia_NOUN_afín_ADJ", + "sustancia_NOUN_agotador_ADJ", + "sustancia_NOUN_contaminante_ADJ", + "sustancia_NOUN_controlado_ADJ", + "sustancia_NOUN_dopante_ADJ", + "sustancia_NOUN_estupefacient_ADJ", + "sustancia_NOUN_estupefaciente_ADJ", + "sustancia_NOUN_explosivo_ADJ", + "sustancia_NOUN_infeccioso_ADJ", + "sustancia_NOUN_nocivo_ADJ", + "sustancia_NOUN_peligroso_ADJ", + "sustancia_NOUN_prohibido_ADJ", + "sustancia_NOUN_psicoactiva_ADJ", + "sustancia_NOUN_psicotrópico_ADJ", + "sustancia_NOUN_químico_ADJ", + "sustancia_NOUN_radiactivo_ADJ", + "sustancia_NOUN_sicotrópica_ADJ", + "sustancia_NOUN_tóxico_ADJ", + "suu_PROPN_kyi_PROPN", + "sv_PROPN_señor_NOUN", + "swazilandia_PROPN_suecia_PROPN", + "swazilandia_PROPN_tailandia_NOUN", + "swazilandia_PROPN_tailandia_PROPN", + "swazilandia_PROPN_togo_NOUN", + "swazilandia_PROPN_togo_PROPN", + "sydney_PROPN_australia_PROPN", + "sylvester_PROPN_stallone_PROPN", + "sylvie_ADV_deschên_NOUN", + "system_PROPN_of_PROPN", + "sáenz_PROPN_peña_PROPN", + "sáhara_NOUN_occidental_ADJ", + "sáhara_PROPN_occidental_ADJ", + "sáhara_PROPN_occidental_PROPN", + "sánchez_PROPN_camacho_PROPN", + "sánchez_PROPN_cerén_PROPN", + "sánchez_PROPN_cordero_PROPN", + "sánchez_PROPN_gordillo_PROPN", + "sánchez_PROPN_llibre_PROPN", + "sánchez_PROPN_morueta_PROPN", + "sánchez_PROPN_pizjuán_PROPN", + "são_PROPN_paulo_PROPN", + "ségolène_PROPN_royal_PROPN", + "séptimo_ADJ_período_NOUN", + "séptimo_PROPN_programa_PROPN", + "sí_INTJ_señor_INTJ", + "sí_NOUN_solo_ADJ", + "sí_NOUN_solo_NOUN", + "símbolo_NOUN_patrio_ADJ", + "símbolo_NOUN_religioso_ADJ", + "síndrome_NOUN_respiratorio_ADJ", + "sírvansar_VERB_proporcionar_VERB", + "sírvanse_VERB_aclarar_VERB", + "sírvanse_VERB_describir_VERB", + "sírvanse_VERB_especificar_VERB", + "sírvanse_VERB_facilitar_VERB", + "sírvanse_VERB_indicar_VERB", + "sírvanse_VERB_proporcionar_VERB", + "sírvanse_VERB_suministrar_VERB", + "sírvar_VERB_bosquejar_VERB", + "sírvar_VERB_consultar_VERB", + "sírvar_VERB_describir_VERB", + "sírvar_VERB_especificar_VERB", + "sírvar_VERB_facilitar_VERB", + "sírvar_VERB_indicar_VERB", + "sírvar_VERB_proporcionar_VERB", + "sírvar_VERB_suministrar_VERB", + "sírvase_INTJ_indicar_VERB", + "sírvase_VERB_describir_VERB", + "sírvase_VERB_facilitar_VERB", + "sírvase_VERB_indicar_VERB", + "sírvase_VERB_proporcionar_VERB", + "tabago_NOUN_uganda_PROPN", + "tabago_PROPN_turquía_PROPN", + "tabago_PROPN_túnez_PROPN", + "tabago_PROPN_ucrania_PROPN", + "tabaré_PROPN_vázquez_PROPN", + "tafrov_PROPN_bulgaria_PROPN", + "tailandia_ADJ_togo_NOUN", + "tailandia_NOUN_togo_PROPN", + "tailandia_PROPN_tayikistán_PROPN", + "tailandia_PROPN_togo_PROPN", + "tailandia_PROPN_turquía_PROPN", + "tailandia_PROPN_túnez_PROPN", + "takasu_PROPN_japón_PROPN", + "taken_PROPN_to_PROPN", + "tal_DET_signatura_NOUN", + "tal_NOUN_como_PRON", + "tal_NOUN_cual_NOUN", + "tal_NOUN_vez_NOUN", + "tal_PRON_como_PRON", + "tala_NOUN_ilegal_ADJ", + "talcual_PROPN_chajarí_PROPN", + "taller_NOUN_mecánico_ADJ", + "tamaño_NOUN_mediano_ADJ", + "tamaño_NOUN_reducido_ADJ", + "también_ADV_legality_PROPN", + "tamil_PROPN_nadu_PROPN", + "tampa_PROPN_bay_PROPN", + "tampa_PROPN_florida_PROPN", + "tan_NOUN_pronto_ADV", + "tan_NOUN_pronto_NOUN", + "tan_NOUN_siquiera_NOUN", + "tan_NOUN_solo_NOUN", + "tan_NOUN_sólo_ADV", + "tanque_NOUN_israelí_ADJ", + "tanto_ADV_anhelado_ADJ", + "tanto_ADV_ansiado_ADJ", + "tanto_ADV_cacareado_ADJ", + "tanto_DET_prisa_NOUN", + "tanto_NOUN_alzado_ADJ", + "tanzanía_PROPN_rumania_PROPN", + "tanzanía_PROPN_rwanda_PROPN", + "tanzanía_PROPN_saint_PROPN", + "tanzanía_PROPN_samoa_PROPN", + "tanzanía_PROPN_senegal_NOUN", + "tanzanía_PROPN_sudáfrica_PROPN", + "tanzanía_PROPN_uruguay_PROPN", + "tarea_NOUN_encomendada_ADJ", + "tarea_NOUN_interdepartamental_ADJ", + "tarea_NOUN_interinstitucional_ADJ", + "tarea_NOUN_investigativa_ADJ", + "tarifa_NOUN_eléctrico_ADJ", + "tarifa_NOUN_plano_ADJ", + "tarjeta_NOUN_amarillo_ADJ", + "tarjeta_NOUN_azul_ADJ", + "tarjeta_NOUN_gráfico_ADJ", + "tarjeta_NOUN_magnético_ADJ", + "tarjeta_NOUN_microsd_PROPN", + "tarjeta_NOUN_postal_ADJ", + "tarjeta_NOUN_rojo_ADJ", + "tarjeta_NOUN_sim_PROPN", + "tasa_NOUN_aeroportuario_ADJ", + "tasa_NOUN_anualizado_ADJ", + "tasa_NOUN_estándar_ADJ", + "tasa_NOUN_impositiva_ADJ", + "tasa_NOUN_interanual_ADJ", + "task_PROPN_force_PROPN", + "tata_PROPN_martino_PROPN", + "tate_PROPN_modern_PROPN", + "tau_PROPN_cerámica_PROPN", + "tavares_PROPN_dar_VERB", + "tayikistán_PROPN_monut_PROPN", + "tayikistán_PROPN_tailandia_PROPN", + "tayikistán_PROPN_togo_NOUN", + "tayikistán_PROPN_togo_PROPN", + "tayikistán_PROPN_turkmenistán_NOUN", + "tayikistán_PROPN_turkmenistán_PROPN", + "taylor_PROPN_swift_PROPN", + "tayyip_PROPN_erdogan_PROPN", + "tc_PROPN_pista_PROPN", + "td_PROPN_b_NOUN", + "td_PROPN_b_PROPN", + "td_PROPN_rbp_PROPN", + "tea_PROPN_party_PROPN", + "teatro_NOUN_danza_NOUN", + "teatro_PROPN_cervantes_PROPN", + "teatro_PROPN_circo_PROPN", + "teatro_PROPN_colón_PROPN", + "teatro_PROPN_español_PROPN", + "teatro_PROPN_municipal_PROPN", + "teatro_PROPN_principal_PROPN", + "teatro_PROPN_real_PROPN", + "teatro_PROPN_romano_PROPN", + "tecnología_NOUN_ambientalmente_ADV", + "tecnología_NOUN_avanzado_ADJ", + "tecnología_NOUN_cct_PROPN", + "tecnología_NOUN_ecológicamente_ADV", + "tecnología_NOUN_espacial_ADJ", + "tecnología_NOUN_gett_NOUN", + "tecnología_NOUN_inocua_ADJ", + "tecnología_NOUN_led_PROPN", + "tecnología_PROPN_agropecuaria_PROPN", + "tecnológicamente_ADV_avanzado_ADJ", + "tecnológico_ADJ_nasdaq_PROPN", + "tecnológico_ADJ_osact_PROPN", + "tegucigalpa_PROPN_honduras_PROPN", + "teheer_VERB_república_NOUN", + "tejido_NOUN_adiposo_ADJ", + "tejido_NOUN_empresarial_ADJ", + "tejido_NOUN_industrial_ADJ", + "tejido_NOUN_productivo_ADJ", + "tejido_PROPN_social_ADJ", + "tel_NOUN_fax_NOUN", + "tel_PROPN_aviv_PROPN", + "telam_PROPN_sociedad_PROPN", + "telecom_PROPN_italia_PROPN", + "telecomunicaciones_PROPN_uit_PROPN", + "telecomunicación_NOUN_móvil_ADJ", + "telecomunicación_NOUN_uit_PROPN", + "telefonía_NOUN_celular_ADJ", + "telefonía_NOUN_fijo_ADJ", + "telefonía_NOUN_móvil_ADJ", + "telefonía_NOUN_móvil_NOUN", + "telefónico_ADJ_gratuito_ADJ", + "telemedicina_NOUN_basado_ADJ", + "telemundo_PROPN_noticias_PROPN", + "telescopio_NOUN_espacial_ADJ", + "televisión_NOUN_cnn_PROPN", + "televisión_PROPN_española_PROPN", + "teléfono_NOUN_android_PROPN", + "teléfono_NOUN_celular_ADJ", + "teléfono_NOUN_fax_NOUN", + "teléfono_NOUN_fijo_ADJ", + "teléfono_NOUN_inteligente_ADJ", + "teléfono_NOUN_móvil_ADJ", + "teléfono_NOUN_móvil_NOUN", + "teléfono_NOUN_móviles_NOUN", + "teléfono_NOUN_satelital_ADJ", + "teléfono_NOUN_ó_CCONJ", + "teléfonos_NOUN_celular_ADJ", + "teléfonos_NOUN_móvil_ADJ", + "teléfonos_NOUN_móviles_NOUN", + "tema_NOUN_abordado_ADJ", + "tema_NOUN_tabú_ADJ", + "temperatura_NOUN_caluroso_ADJ", + "temperatura_NOUN_corporal_ADJ", + "temperatura_NOUN_cálido_ADJ", + "temperatura_NOUN_diurno_ADJ", + "temperatura_NOUN_fresco_ADJ", + "temperatura_NOUN_frío_ADJ", + "temperatura_NOUN_máximo_ADJ", + "temperatura_NOUN_mínimo_ADJ", + "temperatura_NOUN_templado_ADJ", + "templo_NOUN_católico_ADJ", + "temporada_NOUN_estival_ADJ", + "temporada_NOUN_invernal_ADJ", + "temporada_NOUN_navideño_ADJ", + "temporada_NOUN_regular_ADJ", + "temporada_NOUN_vacacional_ADJ", + "temporario_ADJ_general_ADJ", + "tendencia_NOUN_alcista_ADJ", + "tendencia_NOUN_ascendente_ADJ", + "tendencia_NOUN_bajista_ADJ", + "tendencia_NOUN_decreciente_ADJ", + "tendencia_NOUN_demográfico_ADJ", + "tendencia_NOUN_descendente_ADJ", + "tendencia_NOUN_observado_ADJ", + "tendencia_NOUN_proteccionista_ADJ", + "tender_VERB_puente_NOUN", + "tendido_NOUN_eléctrico_ADJ", + "tenencia_NOUN_ilegal_ADJ", + "tenencia_NOUN_ilícito_ADJ", + "teniente_NOUN_coronel_NOUN", + "teniente_NOUN_general_NOUN", + "teniente_PROPN_coronel_PROPN", + "tenis_NOUN_femenino_ADJ", + "tenista_NOUN_argentino_ADJ", + "tenista_NOUN_español_ADJ", + "tenista_NOUN_suizo_ADJ", + "tenor_NOUN_del_DET", + "tensión_NOUN_arterial_ADJ", + "ter_PROPN_stegen_PROPN", + "terapia_NOUN_antirretroviral_ADJ", + "terapia_NOUN_antirretroviral_PROPN", + "terapia_NOUN_combinado_ADJ", + "terapia_NOUN_génico_ADJ", + "terapia_NOUN_intensivo_ADJ", + "terapia_NOUN_ocupacional_ADJ", + "terapia_NOUN_psicológico_ADJ", + "terapia_PROPN_intensiva_PROPN", + "tercer_ADJ_pilar_NOUN", + "tercer_ADJ_set_NOUN", + "tercer_ADJ_trimestre_NOUN", + "tercer_PROPN_mundo_PROPN", + "tercer_PROPN_reich_PROPN", + "tercera_PROPN_división_PROPN", + "tercera_PROPN_edad_PROPN", + "tercero_ADJ_combinado_ADJ", + "tercero_ADJ_ronda_NOUN", + "tercio_NOUN_norte_ADJ", + "terciopelo_NOUN_negro_ADJ", + "terminal_NOUN_aéreo_ADJ", + "terminal_NOUN_marítimo_ADJ", + "terminal_NOUN_portuario_ADJ", + "terminantemente_ADV_prohibido_ADJ", + "terminar_VERB_empatado_ADJ", + "terminología_NOUN_empleado_ADJ", + "terminología_NOUN_utilizado_ADJ", + "termómetro_NOUN_marcar_VERB", + "terra_PROPN_mítica_PROPN", + "terre_PROPN_des_ADP", + "terremoto_NOUN_ocurrido_ADJ", + "terreno_NOUN_abonado_ADJ", + "terreno_NOUN_baldío_ADJ", + "terreno_NOUN_fértil_ADJ", + "terrible_ADJ_tragedia_NOUN", + "territorio_NOUN_azerbaiyano_ADJ", + "territorio_NOUN_georgiano_ADJ", + "territorio_NOUN_libanés_ADJ", + "territorio_NOUN_ocupado_ADJ", + "territorio_NOUN_palestino_ADJ", + "terror_NOUN_provocación_NOUN", + "terrorismo_NOUN_yihadista_ADJ", + "terrorista_ADJ_eta_PROPN", + "terrorista_NOUN_albanés_ADJ", + "terrorista_NOUN_suicida_ADJ", + "tesis_NOUN_doctoral_ADJ", + "tesoro_PROPN_estadounidense_ADJ", + "tesoro_PROPN_público_PROPN", + "testigo_NOUN_ocular_ADJ", + "testigo_NOUN_presencial_ADJ", + "testigo_NOUN_protegido_ADJ", + "testimonio_NOUN_oral_ADJ", + "testimonio_NOUN_recogido_ADJ", + "texto_NOUN_comentarios_PROPN", + "texto_NOUN_consensuado_ADJ", + "texto_NOUN_definitivo_ADJ", + "texto_NOUN_explicativo_ADJ", + "texto_NOUN_extraído_ADJ", + "texto_NOUN_refundido_ADJ", + "texto_NOUN_íntegro_ADJ", + "textoaumentar_VERB_tamaño_NOUN", + "tez_NOUN_blanco_ADJ", + "tez_NOUN_morén_ADJ", + "teófilo_PROPN_gutiérrez_PROPN", + "thabo_PROPN_mbeki_PROPN", + "than_PROPN_shwe_PROPN", + "than_PROPN_the_PROPN", + "that_PROPN_are_PROPN", + "that_PROPN_he_PROPN", + "that_PROPN_is_PROPN", + "that_PROPN_it_PROPN", + "that_PROPN_the_PROPN", + "that_PROPN_they_PROPN", + "that_SCONJ_the_DET", + "the_DET_delegation_PROPN", + "the_DET_following_PROPN", + "the_DET_government_PROPN", + "the_DET_human_PROPN", + "the_DET_impact_NOUN", + "the_DET_international_PROPN", + "the_DET_protection_NOUN", + "the_DET_right_NOUN", + "the_DET_right_PROPN", + "the_DET_special_ADJ", + "the_DET_united_PROPN", + "the_PROPN_advancement_PROPN", + "the_PROPN_africar_VERB", + "the_PROPN_application_PROPN", + "the_PROPN_artist_PROPN", + "the_PROPN_associated_PROPN", + "the_PROPN_authorities_PROPN", + "the_PROPN_beatles_PROPN", + "the_PROPN_best_PROPN", + "the_PROPN_big_PROPN", + "the_PROPN_caribbean_PROPN", + "the_PROPN_case_PROPN", + "the_PROPN_century_PROPN", + "the_PROPN_children_PROPN", + "the_PROPN_clinic_PROPN", + "the_PROPN_commission_PROPN", + "the_PROPN_committee_PROPN", + "the_PROPN_conference_PROPN", + "the_PROPN_convention_PROPN", + "the_PROPN_country_PROPN", + "the_PROPN_current_PROPN", + "the_PROPN_daily_PROPN", + "the_PROPN_dark_PROPN", + "the_PROPN_death_PROPN", + "the_PROPN_delegation_PROPN", + "the_PROPN_doors_PROPN", + "the_PROPN_draft_PROPN", + "the_PROPN_earth_PROPN", + "the_PROPN_economic_PROPN", + "the_PROPN_economist_PROPN", + "the_PROPN_elimination_PROPN", + "the_PROPN_end_PROPN", + "the_PROPN_environment_PROPN", + "the_PROPN_european_PROPN", + "the_PROPN_fact_PROPN", + "the_PROPN_family_PROPN", + "the_PROPN_first_PROPN", + "the_PROPN_following_PROPN", + "the_PROPN_future_PROPN", + "the_PROPN_global_PROPN", + "the_PROPN_good_PROPN", + "the_PROPN_government_PROPN", + "the_PROPN_great_PROPN", + "the_PROPN_guardian_PROPN", + "the_PROPN_high_PROPN", + "the_PROPN_impact_PROPN", + "the_PROPN_implementation_PROPN", + "the_PROPN_independent_PROPN", + "the_PROPN_information_PROPN", + "the_PROPN_international_PROPN", + "the_PROPN_island_PROPN", + "the_PROPN_lancet_PROPN", + "the_PROPN_last_PROPN", + "the_PROPN_law_PROPN", + "the_PROPN_legend_PROPN", + "the_PROPN_millennium_PROPN", + "the_PROPN_ministry_PROPN", + "the_PROPN_most_PROPN", + "the_PROPN_movement_PROPN", + "the_PROPN_nation_PROPN", + "the_PROPN_national_PROPN", + "the_PROPN_need_PROPN", + "the_PROPN_netherlands_PROPN", + "the_PROPN_new_PROPN", + "the_PROPN_next_PROPN", + "the_PROPN_north_PROPN", + "the_PROPN_office_PROPN", + "the_PROPN_old_PROPN", + "the_PROPN_other_PROPN", + "the_PROPN_pacific_PROPN", + "the_PROPN_panel_PROPN", + "the_PROPN_parties_PROPN", + "the_PROPN_people_PROPN", + "the_PROPN_philippines_PROPN", + "the_PROPN_pirate_PROPN", + "the_PROPN_police_PROPN", + "the_PROPN_poor_PROPN", + "the_PROPN_present_PROPN", + "the_PROPN_project_PROPN", + "the_PROPN_protection_PROPN", + "the_PROPN_public_PROPN", + "the_PROPN_queen_PROPN", + "the_PROPN_republic_PROPN", + "the_PROPN_right_PROPN", + "the_PROPN_role_PROPN", + "the_PROPN_rolling_PROPN", + "the_PROPN_royal_PROPN", + "the_PROPN_same_PROPN", + "the_PROPN_second_PROPN", + "the_PROPN_secretariat_PROPN", + "the_PROPN_security_PROPN", + "the_PROPN_situation_PROPN", + "the_PROPN_south_PROPN", + "the_PROPN_spanish_PROPN", + "the_PROPN_special_PROPN", + "the_PROPN_state_PROPN", + "the_PROPN_status_PROPN", + "the_PROPN_story_PROPN", + "the_PROPN_strongest_PROPN", + "the_PROPN_study_PROPN", + "the_PROPN_sun_PROPN", + "the_PROPN_sunday_PROPN", + "the_PROPN_telegraph_PROPN", + "the_PROPN_third_PROPN", + "the_PROPN_times_PROPN", + "the_PROPN_two_PROPN", + "the_PROPN_united_PROPN", + "the_PROPN_upr_PROPN", + "the_PROPN_virgin_PROPN", + "the_PROPN_walking_PROPN", + "the_PROPN_wall_PROPN", + "the_PROPN_way_PROPN", + "the_PROPN_work_PROPN", + "the_PROPN_working_PROPN", + "the_PROPN_world_PROPN", + "theo_PROPN_ir_VERB", + "there_PROPN_are_PROPN", + "there_PROPN_is_PROPN", + "there_PROPN_was_PROPN", + "there_PROPN_were_PROPN", + "theresa_PROPN_may_PROPN", + "they_PROPN_are_PROPN", + "they_PROPN_were_PROPN", + "thiago_PROPN_silva_PROPN", + "thierry_PROPN_henry_PROPN", + "think_NOUN_tank_NOUN", + "this_PROPN_is_PROPN", + "thomas_PROPN_cook_PROPN", + "thomas_PROPN_lubanga_PROPN", + "thomas_PROPN_mann_PROPN", + "thomas_PROPN_sankara_PROPN", + "thomson_PROPN_reuters_PROPN", + "through_PROPN_the_PROPN", + "tiburones_PROPN_rojos_PROPN", + "tiburón_NOUN_blanco_ADJ", + "tie_NOUN_break_NOUN", + "tiempo_NOUN_apremiar_VERB", + "tiempo_NOUN_indeterminado_ADJ", + "tiempo_NOUN_inmemorial_ADJ", + "tiempo_NOUN_prudencial_ADJ", + "tiempo_NOUN_récord_ADJ", + "tiempo_NOUN_transcurrido_ADJ", + "tiempo_PROPN_tutiempo_PROPN", + "tienda_NOUN_departamental_ADJ", + "tienda_NOUN_online_ADJ", + "tienda_NOUN_online_ADV", + "tienda_NOUN_virtual_ADJ", + "tierno_ADJ_infancia_NOUN", + "tierra_NOUN_adentro_ADV", + "tierra_NOUN_ancestral_ADJ", + "tierra_NOUN_arrasado_ADJ", + "tierra_NOUN_batido_ADJ", + "tierra_NOUN_ceos_PROPN", + "tierra_NOUN_cultivable_ADJ", + "tierra_NOUN_cultivado_ADJ", + "tierra_NOUN_degradado_ADJ", + "tierra_NOUN_fértil_ADJ", + "tierra_NOUN_natal_ADJ", + "tierra_NOUN_seco_ADJ", + "tierra_NOUN_árida_ADJ", + "tierra_PROPN_blanca_PROPN", + "tierra_PROPN_caliente_PROPN", + "tierra_PROPN_firme_PROPN", + "tiger_PROPN_woods_PROPN", + "tigre_NOUN_tamil_ADJ", + "tijuana_PROPN_baja_PROPN", + "tijuana_PROPN_bc_PROPN", + "tim_PROPN_burton_PROPN", + "tim_PROPN_cook_PROPN", + "tim_PROPN_duncan_PROPN", + "time_PROPN_of_PROPN", + "time_PROPN_warner_PROPN", + "times_PROPN_square_PROPN", + "timor_PROPN_leste_PROPN", + "timor_PROPN_occidental_ADJ", + "timor_PROPN_oriental_ADJ", + "timor_PROPN_oriental_PROPN", + "timorens_NOUN_oriental_ADJ", + "timothy_PROPN_geithner_PROPN", + "tingo_PROPN_maría_PROPN", + "tipificación_NOUN_penal_ADJ", + "tipo_NOUN_anfetamínico_ADJ", + "tipo_NOUN_impositivo_ADJ", + "tipo_NOUN_tornado_NOUN", + "tira_NOUN_cómico_ADJ", + "tirada_NOUN_reducido_ADJ", + "tirar_VERB_basura_NOUN", + "tirar_VERB_cohete_NOUN", + "tirar_VERB_piedra_NOUN", + "tiro_NOUN_cruzado_ADJ", + "tiro_NOUN_libre_ADJ", + "tiro_PROPN_federal_PROPN", + "tiroteo_NOUN_ocurrido_ADJ", + "tito_PROPN_vilanova_PROPN", + "titulado_ADJ_hemisferio_NOUN", + "titulado_ADJ_otorgamiento_NOUN", + "titulado_ADJ_revitalización_NOUN", + "titular_NOUN_deportes_PROPN", + "titular_NOUN_indiscutible_ADJ", + "tlatelolco_PROPN_rarotonga_PROPN", + "to_ADP_be_AUX", + "to_ADP_education_PROPN", + "to_ADP_the_DET", + "to_ADP_the_PROPN", + "to_NOUN_be_NOUN", + "to_NOUN_be_NUM", + "to_NOUN_be_PROPN", + "to_NOUN_go_PROPN", + "to_NOUN_make_NOUN", + "to_NOUN_take_PROPN", + "to_PROPN_an_PROPN", + "to_PROPN_be_PROPN", + "to_PROPN_combat_PROPN", + "to_PROPN_ensure_PROPN", + "to_PROPN_give_PROPN", + "to_PROPN_have_PROPN", + "to_PROPN_his_PROPN", + "to_PROPN_make_PROPN", + "to_PROPN_protect_PROPN", + "to_PROPN_provide_PROPN", + "to_PROPN_receive_PROPN", + "to_PROPN_take_PROPN", + "to_PROPN_the_PROPN", + "to_PROPN_which_PROPN", + "to_PROPN_work_PROPN", + "tobillo_NOUN_derecho_ADJ", + "tobillo_NOUN_izquierdo_ADJ", + "tocante_NOUN_al_DET", + "toda_NOUN_costa_NOUN", + "toda_NOUN_prisa_NOUN", + "toda_NOUN_regla_NOUN", + "toda_NOUN_vez_NOUN", + "todas_NOUN_formas_NOUN", + "todas_NOUN_maneras_NOUN", + "todos_NOUN_modos_NOUN", + "togo_NOUN_tonga_NOUN", + "togo_NOUN_trinidad_NOUN", + "togo_NOUN_túnez_PROPN", + "togo_NOUN_uganda_PROPN", + "togo_PROPN_tonga_NOUN", + "togo_PROPN_trinidad_NOUN", + "togo_PROPN_trinidad_PROPN", + "togo_PROPN_túnez_PROPN", + "togo_PROPN_ucrania_PROPN", + "togo_PROPN_uganda_PROPN", + "tokio_PROPN_japón_PROPN", + "tokyo_PROPN_electric_PROPN", + "tolerancia_NOUN_cero_NOUN", + "tolerancia_NOUN_cero_NUM", + "tolerancia_NOUN_religioso_ADJ", + "tom_PROPN_brady_PROPN", + "tom_PROPN_cruise_PROPN", + "tom_PROPN_hanks_PROPN", + "tom_PROPN_koenigs_PROPN", + "toma_NOUN_clandestino_ADJ", + "tomadir_VERB_tomadir_VERB", + "tomar_VERB_asiento_NOUN", + "tomar_VERB_como_ADP", + "tomar_VERB_nota_NOUN", + "tomas_PROPN_berdych_PROPN", + "tomb_PROPN_raider_PROPN", + "tommy_PROPN_robredo_PROPN", + "tomo_PROPN_nota_NOUN", + "tomás_PROPN_boy_PROPN", + "tomás_PROPN_gómez_PROPN", + "tonelada_NOUN_métrica_ADJ", + "tonelada_NOUN_métrico_ADJ", + "tonelada_NOUN_pao_NOUN", + "tonelada_NOUN_pao_PROPN", + "tonga_NOUN_trinidad_NOUN", + "tonga_PROPN_tuvalu_NOUN", + "toni_PROPN_kroos_PROPN", + "tono_NOUN_avatar_PROPN", + "tono_NOUN_irónico_ADJ", + "tony_PROPN_blair_PROPN", + "tony_PROPN_parker_PROPN", + "top_NOUN_model_NOUN", + "top_NOUN_ten_NOUN", + "top_PROPN_race_PROPN", + "topacer_VERB_topacer_VERB", + "tope_NOUN_máximo_ADJ", + "tope_NOUN_salarial_ADJ", + "topo_PROPN_chico_PROPN", + "tormenta_NOUN_aislado_ADJ", + "tormenta_NOUN_eléctrico_ADJ", + "tormenta_NOUN_invernal_ADJ", + "tormenta_NOUN_perfecto_ADJ", + "tormenta_NOUN_puntual_ADJ", + "tormenta_NOUN_solar_ADJ", + "tormenta_NOUN_tropical_ADJ", + "torneo_NOUN_apertura_PROPN", + "torneo_NOUN_clausura_PROPN", + "torneo_NOUN_continental_ADJ", + "torneo_PROPN_apertura_PROPN", + "torneo_PROPN_clausura_PROPN", + "torneo_PROPN_federal_PROPN", + "torno_NOUN_al_DET", + "toro_NOUN_bravo_ADJ", + "toro_PROPN_rosso_PROPN", + "toronto_PROPN_canadá_PROPN", + "toronto_PROPN_raptors_PROPN", + "torre_NOUN_gemelo_ADJ", + "torre_PROPN_eiffel_PROPN", + "torrencial_ADJ_lluvia_NOUN", + "torrente_NOUN_sanguíneo_ADJ", + "torres_PROPN_gemelas_PROPN", + "torres_PROPN_hurtado_PROPN", + "torreón_PROPN_coahuila_PROPN", + "torso_NOUN_desnudo_ADJ", + "tortuga_NOUN_marino_ADJ", + "tos_NOUN_ferina_PROPN", + "tos_NOUN_ferín_ADJ", + "total_ADJ_aproximado_ADJ", + "total_ADJ_normalidad_NOUN", + "total_ADJ_reclamado_ADJ", + "total_ADV_o_CCONJ", + "totalizar_VERB_millón_NOUN", + "totalmente_ADV_absurdo_ADJ", + "totalmente_ADV_desproporcionado_ADJ", + "totalmente_ADV_destruido_ADJ", + "totalmente_ADV_equipado_ADJ", + "totalmente_ADV_equivocado_ADJ", + "totalmente_ADV_erróneo_ADJ", + "totalmente_ADV_gratuito_ADJ", + "totalmente_ADV_inaceptable_ADJ", + "totalmente_ADV_inadecuado_ADJ", + "totalmente_ADV_opuesto_ADJ", + "totalmente_ADV_recuperado_ADJ", + "tottenham_PROPN_hotspur_PROPN", + "toxicidad_NOUN_agudo_ADJ", + "toxicidad_NOUN_crónico_ADJ", + "toy_PROPN_story_PROPN", + "toyota_PROPN_corolla_PROPN", + "toyota_PROPN_hilux_PROPN", + "toyota_PROPN_motor_PROPN", + "traba_NOUN_burocrático_ADJ", + "trabajador_NOUN_asalariado_ADJ", + "trabajador_NOUN_despedido_ADJ", + "trabajador_NOUN_filipino_ADJ", + "trabajador_NOUN_inmigrante_ADJ", + "trabajador_NOUN_migrant_ADJ", + "trabajador_NOUN_migrante_ADJ", + "trabajador_NOUN_migratorio_ADJ", + "trabajador_NOUN_sindicalizado_ADJ", + "trabajador_NOUN_temporero_ADJ", + "trabajadora_NOUN_doméstico_ADJ", + "trabajadora_NOUN_embarazado_ADJ", + "trabajadora_NOUN_migrant_ADJ", + "trabajadora_NOUN_migratorio_ADJ", + "trabajadores_PROPN_autónomos_PROPN", + "trabajadores_PROPN_municipales_PROPN", + "trabajadores_PROPN_pt_PROPN", + "trabajar_VERB_arduamente_ADV", + "trabajar_VERB_constructivamente_ADV", + "trabajar_VERB_coordinadamente_ADV", + "trabajar_VERB_denodadamente_ADV", + "trabajar_VERB_diligentemente_ADV", + "trabajar_VERB_duro_ADV", + "trabajar_VERB_incansablemente_ADV", + "trabajar_VERB_intensamente_ADV", + "trabajar_VERB_mancomunadamente_ADV", + "trabajo_NOUN_decente_ADJ", + "trabajo_NOUN_forzoso_ADJ", + "trabajo_NOUN_plurianual_ADJ", + "trabajo_PROPN_oit_PROPN", + "trabajo_PROPN_pt_PROPN", + "trabar_VERB_combate_NOUN", + "tracción_NOUN_delantero_ADJ", + "tracción_NOUN_integral_ADJ", + "tractor_NOUN_agrícola_ADJ", + "trade_PROPN_and_PROPN", + "trade_PROPN_in_ADP", + "tradicional_ADJ_desfile_NOUN", + "tradicional_ADJ_nocivo_ADJ", + "tradicional_ADJ_nyse_PROPN", + "tradicional_ADJ_perjudicial_ADJ", + "tradicionalmente_ADV_marginado_ADJ", + "tradición_NOUN_espiritual_ADJ", + "tradición_NOUN_oral_ADJ", + "traductor_NOUN_intérprete_NOUN", + "traer_VERB_aparejado_ADJ", + "trafficking_NOUN_in_ADP", + "trafficking_PROPN_in_ADP", + "tragedia_NOUN_griego_ADJ", + "trago_NOUN_amargo_ADJ", + "trail_PROPN_blazers_PROPN", + "traités_PROPN_multilatéraux_PROPN", + "traje_NOUN_azul_ADJ", + "traje_NOUN_gris_ADJ", + "traje_NOUN_negro_ADJ", + "traje_NOUN_oscuro_ADJ", + "traje_NOUN_típico_ADJ", + "trama_NOUN_corrupto_ADJ", + "trama_NOUN_gürtel_ADJ", + "trama_NOUN_gürtel_PROPN", + "tramitación_NOUN_parlamentario_ADJ", + "tramo_NOUN_carretero_ADJ", + "tramo_NOUN_final_ADJ", + "tramo_NOUN_marítimo_ADJ", + "trampa_NOUN_explosivo_ADJ", + "trampa_NOUN_mortal_ADJ", + "transacción_NOUN_comercial_ADJ", + "transacción_NOUN_mercantil_ADJ", + "transacción_NOUN_sospechoso_ADJ", + "transacción_NOUN_transfronteriza_ADJ", + "transbordador_NOUN_espacial_ADJ", + "transciendir_VERB_transciendir_VERB", + "transcripción_NOUN_literal_ADJ", + "transcurrido_ADJ_desde_ADP", + "transferido_ADJ_ilícitamente_ADV", + "transformación_NOUN_digital_ADJ", + "transformación_NOUN_estructural_ADJ", + "transformación_NOUN_irreversible_ADJ", + "transformación_NOUN_radical_ADJ", + "transfusión_NOUN_sanguíneo_ADJ", + "transgresión_NOUN_grave_ADJ", + "transición_NOUN_ganupt_PROPN", + "transición_NOUN_gradual_ADJ", + "transición_PROPN_cnt_PROPN", + "transmisión_NOUN_automático_ADJ", + "transmisión_NOUN_sanguíneo_ADJ", + "transmisión_NOUN_sexual_ADJ", + "transmisión_NOUN_televisivo_ADJ", + "transmisión_NOUN_vertical_ADJ", + "transmitido_ADJ_esclarecido_ADJ", + "transmitir_VERB_adjunto_NOUN", + "transmitir_VERB_correctamente_ADV", + "transnacional_ADJ_organizado_ADJ", + "transnacional_PROPN_resolución_NOUN", + "transparencia_PROPN_internacional_PROPN", + "transportar_VERB_mercancía_NOUN", + "transportar_VERB_pasajero_NOUN", + "transportar_VERB_transferir_VERB", + "transporte_NOUN_aéreo_ADJ", + "transporte_NOUN_ferroviario_ADJ", + "transporte_NOUN_fluvial_ADJ", + "transporte_NOUN_intermodal_ADJ", + "transporte_NOUN_interurbano_ADJ", + "transporte_NOUN_marítimo_ADJ", + "transporte_NOUN_multimodal_ADJ", + "transporte_NOUN_multimodal_PROPN", + "transporte_NOUN_negociable_ADJ", + "transporte_NOUN_terrestre_ADJ", + "transporte_PROPN_aéreo_PROPN", + "transporte_PROPN_colectivo_PROPN", + "transporte_PROPN_público_PROPN", + "transporte_PROPN_terrestre_PROPN", + "transporte_PROPN_urbano_PROPN", + "transportes_PROPN_sct_PROPN", + "trapo_NOUN_sucio_ADJ", + "tras_ADP_bambalina_NOUN", + "tras_ADP_deliberar_VERB", + "traslado_NOUN_forzoso_ADJ", + "traslado_NOUN_lateral_ADJ", + "traslado_NOUN_transfronterizo_ADJ", + "trasplante_NOUN_renal_ADJ", + "trastorno_NOUN_bipolar_ADJ", + "trastorno_NOUN_causado_ADJ", + "trastorno_NOUN_mental_ADJ", + "trastorno_NOUN_psicológico_ADJ", + "trastorno_NOUN_psiquiátrico_ADJ", + "trata_NOUN_transatlántico_ADJ", + "tratado_ADJ_start_NOUN", + "tratado_NOUN_abm_PROPN", + "tratado_PROPN_abm_PROPN", + "tratado_PROPN_antártico_ADJ", + "tratado_PROPN_ce_PROPN", + "tratado_PROPN_constitucional_PROPN", + "tratado_PROPN_constitutivo_ADJ", + "tratado_PROPN_euratom_PROPN", + "tratado_PROPN_start_PROPN", + "tratamiento_NOUN_ambulatorio_ADJ", + "tratamiento_NOUN_antirretroviral_ADJ", + "tratamiento_NOUN_farmacológico_ADJ", + "tratamiento_NOUN_hormonal_ADJ", + "tratamiento_NOUN_igualitario_ADJ", + "tratamiento_NOUN_médico_ADJ", + "tratamiento_NOUN_oncológico_ADJ", + "tratamiento_NOUN_pediátrico_ADJ", + "tratamiento_NOUN_psiquiátrico_ADJ", + "tratar_VERB_humanamente_ADV", + "trato_NOUN_cruel_ADJ", + "trato_NOUN_degradante_ADJ", + "trato_NOUN_desigual_ADJ", + "trato_NOUN_diferenciado_ADJ", + "trato_NOUN_diferencial_ADJ", + "trato_NOUN_discriminatorio_ADJ", + "trato_NOUN_dispensado_ADJ", + "trato_NOUN_humillante_ADJ", + "trato_NOUN_igualitario_ADJ", + "trato_NOUN_inhumano_ADJ", + "trato_NOUN_negligente_ADJ", + "trato_NOUN_preferencial_ADJ", + "trato_NOUN_preferente_ADJ", + "trauma_NOUN_psicológico_ADJ", + "traumatismo_NOUN_craneoencefálico_ADJ", + "travaux_PROPN_préparatoir_ADJ", + "travaux_PROPN_préparatoires_PROPN", + "través_NOUN_del_DET", + "trayectoria_NOUN_artístico_ADJ", + "trayectoria_NOUN_musical_ADJ", + "trayectoria_NOUN_profesional_ADJ", + "trazar_VERB_mapa_NOUN", + "treaty_NOUN_handbook_PROPN", + "treaty_PROPN_collection_PROPN", + "treaty_PROPN_series_PROPN", + "treaty_VERB_serie_NOUN", + "tregua_NOUN_olímpico_ADJ", + "tregua_NOUN_onuvt_PROPN", + "treinta_NUM_segundo_NOUN", + "tren_NOUN_bala_NOUN", + "tren_NOUN_subterráneo_ADJ", + "tren_PROPN_maya_PROPN", + "trending_NOUN_topic_NOUN", + "trends_PROPN_in_ADP", + "trenque_PROPN_lauquen_PROPN", + "tres_NUM_arroyos_PROPN", + "tres_NUM_cantos_PROPN", + "tres_NUM_cuarta_ADJ", + "tres_NUM_culturas_PROPN", + "tres_NUM_decimal_NOUN", + "tres_NUM_pilar_NOUN", + "trescientos_NUM_mil_NUM", + "trezza_PROPN_italia_PROPN", + "tribal_ADJ_peopl_NOUN", + "tribu_NOUN_desfavorecido_ADJ", + "tribu_NOUN_reconocido_ADJ", + "tribu_NOUN_registrado_ADJ", + "tribunal_NOUN_administrativo_PROPN", + "tribunal_NOUN_arbitral_ADJ", + "tribunal_NOUN_colegiado_ADJ", + "tribunal_NOUN_constitucional_PROPN", + "tribunal_NOUN_superior_PROPN", + "tribunal_NOUN_supremo_ADJ", + "tribunal_PROPN_administrativo_PROPN", + "tribunal_PROPN_colegiado_PROPN", + "tribunal_PROPN_constitucional_PROPN", + "tribunal_PROPN_electoral_PROPN", + "tribunal_PROPN_especial_PROPN", + "tribunal_PROPN_europeo_PROPN", + "tribunal_PROPN_oral_PROPN", + "tribunal_PROPN_penal_PROPN", + "tribunal_PROPN_superior_PROPN", + "tribunal_PROPN_supremo_ADJ", + "tribunal_PROPN_supremo_PROPN", + "trigésimo_ADJ_aniversario_NOUN", + "trigésimo_ADJ_cuarto_ADJ", + "trigésimo_ADJ_noveno_ADJ", + "trigésimo_ADJ_octavo_ADJ", + "trigésimo_ADJ_quinto_ADJ", + "trigésimo_ADJ_sexto_ADJ", + "trigésimo_ADJ_séptimo_ADJ", + "trigésimo_ADJ_tercer_ADJ", + "trimestre_NOUN_consecutivo_ADJ", + "trinidad_PROPN_jiménez_PROPN", + "triple_NUM_campeón_NOUN", + "triple_NUM_corona_NOUN", + "triple_NUM_crimen_NOUN", + "triple_PROPN_corona_PROPN", + "triste_PROPN_figura_PROPN", + "tristemente_ADV_célebre_ADJ", + "triunfo_NOUN_consecutivo_ADJ", + "triángulo_NOUN_amoroso_ADJ", + "tropa_NOUN_estadounidense_ADJ", + "tropa_NOUN_etíop_ADJ", + "tropa_NOUN_extranjero_ADJ", + "tropa_NOUN_leal_ADJ", + "tropa_NOUN_rwandesa_ADJ", + "tropa_NOUN_turco_ADJ", + "tropa_NOUN_ugandesa_ADJ", + "tráfico_NOUN_aéreo_ADJ", + "tráfico_NOUN_ilícito_ADJ", + "tráfico_NOUN_rodado_ADJ", + "tráfico_NOUN_vehicular_ADJ", + "tráfico_PROPN_dgt_PROPN", + "trágico_ADJ_accidente_NOUN", + "trágico_ADJ_acontecimiento_NOUN", + "trágico_ADJ_suceso_NOUN", + "trámite_NOUN_aduanero_ADJ", + "trámite_NOUN_burocrático_ADJ", + "trámite_NOUN_parlamentario_ADJ", + "trámite_NOUN_procesal_ADJ", + "tránsito_NOUN_vehicular_ADJ", + "tránsito_PROPN_municipal_PROPN", + "tskhinvali_PROPN_osetia_PROPN", + "tt_NOUN_clear_VERB", + "tu_DET_cara_PROPN", + "tu_DET_mascota_NOUN", + "tu_DET_smartphone_NOUN", + "tu_PROPN_casa_NOUN", + "tu_PROPN_madre_NOUN", + "tucson_PROPN_arizona_PROPN", + "tumor_NOUN_cerebral_ADJ", + "tumor_NOUN_maligno_ADJ", + "tupac_PROPN_amaru_PROPN", + "turbina_NOUN_eólico_ADJ", + "turbulencia_NOUN_financiero_ADJ", + "turco_ADJ_penetrar_VERB", + "turco_ADJ_recep_PROPN", + "turismo_NOUN_ecológico_ADJ", + "turismo_NOUN_sexual_ADJ", + "turismo_PROPN_carretera_PROPN", + "turista_NOUN_extranjero_ADJ", + "turkmenistán_PROPN_turquía_PROPN", + "turkmenistán_PROPN_uganda_PROPN", + "turquía_PROPN_turkmenistán_PROPN", + "turquía_PROPN_tuvalu_NOUN", + "turquía_PROPN_ucrania_PROPN", + "turquía_PROPN_uganda_PROPN", + "turín_PROPN_italia_PROPN", + "tutor_NOUN_legal_ADJ", + "tuvalu_NOUN_pasar_VERB", + "tuvalu_NOUN_ucrania_PROPN", + "tuvalu_NOUN_uganda_PROPN", + "tuxtla_PROPN_gutiérrez_PROPN", + "tuñón_PROPN_veill_ADJ", + "tv_PROPN_azteca_PROPN", + "tv_PROPN_pública_PROPN", + "twitter_PROPN_facebook_PROPN", + "twittermy_PROPN_spacemenéamedigg_PROPN", + "txiki_PROPN_begiristain_PROPN", + "txuri_PROPN_urdin_PROPN", + "tyc_PROPN_sports_PROPN", + "tzipi_PROPN_livni_PROPN", + "táctica_NOUN_dilatorio_ADJ", + "té_NOUN_verde_ADJ", + "técnicamente_ADV_viable_ADJ", + "técnicas_PROPN_reunidas_PROPN", + "técnico_NOUN_azulgrana_ADJ", + "técnico_NOUN_holandés_ADJ", + "técnico_NOUN_portugués_ADJ", + "término_NOUN_cuantitativo_ADJ", + "término_NOUN_empleado_ADJ", + "término_NOUN_interanual_ADJ", + "término_NOUN_nominal_ADJ", + "tétano_NOUN_neonatal_ADJ", + "tétanos_NOUN_neonatal_ADJ", + "tía_NOUN_maría_PROPN", + "tía_NOUN_pitty_PROPN", + "tío_NOUN_abuelo_NOUN", + "tío_NOUN_frasquito_PROPN", + "tío_NOUN_lucas_PROPN", + "tío_NOUN_manolillo_PROPN", + "tío_NOUN_paloma_PROPN", + "tío_PROPN_sam_PROPN", + "título_NOUN_experimental_ADJ", + "título_NOUN_graciable_ADJ", + "título_NOUN_honorífico_ADJ", + "título_NOUN_ilustrativo_ADJ", + "título_NOUN_individual_ADJ", + "título_NOUN_liguero_ADJ", + "título_NOUN_negociable_ADJ", + "título_NOUN_nobiliario_ADJ", + "título_NOUN_póstumo_ADJ", + "título_NOUN_reembolsable_ADJ", + "título_NOUN_universitario_ADJ", + "tú_PRON_atrevser_VERB", + "tú_PRON_dois_ADP", + "tú_PRON_pongar_VERB", + "tú_PRON_sentís_VERB", + "tú_PRON_suplicir_VERB", + "túnez_PROPN_turkmenistán_PROPN", + "túnez_PROPN_turquía_PROPN", + "túnez_PROPN_ucrania_PROPN", + "túnez_PROPN_uganda_PROPN", + "túnez_PROPN_yemen_PROPN", + "u_CCONJ_ocasional_ADJ", + "u_CCONJ_omisión_NOUN", + "ubicación_NOUN_exacto_ADJ", + "ubicación_NOUN_geográfico_ADJ", + "uca_ADP_fca_PROPN", + "uca_PROPN_rce_PROPN", + "ucrania_PROPN_emirato_NOUN", + "ucrania_PROPN_uganda_PROPN", + "ucrania_PROPN_uruguay_PROPN", + "ucrania_PROPN_uzbekistán_PROPN", + "ucrania_PROPN_zimbabwe_PROPN", + "udo_NOUN_nigeria_PROPN", + "uefa_PROPN_champions_PROPN", + "uganda_PROPN_emirato_NOUN", + "uganda_PROPN_septentrional_ADJ", + "uganda_PROPN_ucrania_PROPN", + "uganda_PROPN_uruguay_PROPN", + "uganda_PROPN_uzbekistán_PROPN", + "uganda_PROPN_zambia_PROPN", + "uganda_PROPN_zimbabwe_PROPN", + "ulises_PROPN_ruiz_PROPN", + "ulterior_ADJ_ejecución_NOUN", + "ultimar_VERB_detalle_NOUN", + "ultra_ADJ_vires_PROPN", + "um_DET_ano_NOUN", + "um_DET_pouco_NOUN", + "uma_DET_série_NOUN", + "umm_PROPN_qasr_PROPN", + "umo_PRON_dos_DET", + "un_NUM_billón_NOUN", + "un_NUM_centavo_NOUN", + "un_NUM_dólar_NOUN", + "un_NUM_euro_NOUN", + "un_NUM_millón_NOUN", + "un_NUM_siglo_NOUN", + "unai_PROPN_emery_PROPN", + "unavem_PROPN_iii_PROPN", + "uncc_ADJ_claim_NOUN", + "unctad_NOUN_ditc_PROPN", + "unctad_NOUN_ite_PROPN", + "unctad_NUM_omc_NOUN", + "unctad_NUM_omc_PROPN", + "unctad_PROPN_omc_PROPN", + "unctad_PROPN_td_PROPN", + "under_ADP_the_DET", + "under_PROPN_the_PROPN", + "under_VERB_the_PROPN", + "undécimo_ADJ_congreso_NOUN", + "unep_INTJ_chw_PROPN", + "unep_INTJ_fao_PROPN", + "unep_INTJ_pops_PROPN", + "unep_PROPN_pops_PROPN", + "unep_VERB_cbd_NOUN", + "unep_VERB_pops_PROPN", + "unesco_ADJ_organización_PROPN", + "unhcr_PROPN_submission_PROPN", + "unicef_PROPN_submission_PROPN", + "unidad_NOUN_africano_ADJ", + "unidad_NOUN_expedida_ADJ", + "unidad_NOUN_habitacional_ADJ", + "unidad_NOUN_vendido_ADJ", + "unidad_PROPN_africana_PROPN", + "unidad_PROPN_central_PROPN", + "unidad_PROPN_ciudadana_PROPN", + "unidad_PROPN_democrática_PROPN", + "unidad_PROPN_deportiva_PROPN", + "unidad_PROPN_editorial_PROPN", + "unidad_PROPN_educativa_PROPN", + "unidad_PROPN_ejecutora_PROPN", + "unidad_PROPN_especializada_PROPN", + "unidad_PROPN_estatal_PROPN", + "unidad_PROPN_fiscal_PROPN", + "unidad_PROPN_funcional_PROPN", + "unidad_PROPN_militar_PROPN", + "unidad_PROPN_nacional_PROPN", + "unidad_PROPN_popular_PROPN", + "unidad_PROPN_regional_PROPN", + "unidas_PROPN_recueil_NOUN", + "unidas_PROPN_treaty_VERB", + "unido_PROPN_fru_PROPN", + "unificación_NOUN_progresivo_ADJ", + "unificar_VERB_criterio_NOUN", + "uniforme_NOUN_escolar_ADJ", + "union_PROPN_of_PROPN", + "unispace_ADJ_iii_PROPN", + "unispace_ADV_iii_PROPN", + "unispace_NOUN_iii_PROPN", + "unispace_PROPN_iii_PROPN", + "unitar_ADJ_oficina_NOUN", + "united_PROPN_airlines_PROPN", + "united_PROPN_kingdom_PROPN", + "united_PROPN_nations_PROPN", + "united_PROPN_states_PROPN", + "universal_ADJ_incondicional_ADJ", + "universal_ADJ_indivisibl_ADJ", + "universal_PROPN_deportes_PROPN", + "universal_PROPN_espectáculos_PROPN", + "universal_PROPN_music_PROPN", + "universal_PROPN_online_PROPN", + "universal_PROPN_titel_PROPN", + "universal_PROPN_upu_PROPN", + "universalidad_NOUN_indivisibilidad_NOUN", + "universalmente_ADV_aceptable_ADJ", + "universalmente_ADV_aceptado_ADJ", + "universalmente_ADV_reconocido_ADJ", + "universidad_PROPN_austral_PROPN", + "universidad_PROPN_autónoma_PROPN", + "universidad_PROPN_católica_PROPN", + "universidad_PROPN_complutense_PROPN", + "universidad_PROPN_estatal_PROPN", + "universidad_PROPN_iberoamericana_PROPN", + "universidad_PROPN_johns_PROPN", + "universidad_PROPN_libre_PROPN", + "universidad_PROPN_michoacana_PROPN", + "universidad_PROPN_nacional_PROPN", + "universidad_PROPN_politécnica_PROPN", + "universidad_PROPN_pontificia_PROPN", + "universidad_PROPN_tecnológica_PROPN", + "universidad_PROPN_técnica_PROPN", + "universidad_PROPN_veracruzana_PROPN", + "university_PROPN_college_PROPN", + "university_PROPN_of_PROPN", + "university_PROPN_press_PROPN", + "unión_NOUN_aduanera_ADJ", + "unión_NOUN_aduanero_ADJ", + "unión_NOUN_africano_ADJ", + "unión_NOUN_interparlamentario_ADJ", + "unión_NOUN_monetario_ADJ", + "unión_NOUN_soviético_ADJ", + "unión_PROPN_aduanera_PROPN", + "unión_PROPN_africana_PROPN", + "unión_PROPN_africano_ADJ", + "unión_PROPN_americana_PROPN", + "unión_PROPN_ciclista_PROPN", + "unión_PROPN_cívica_PROPN", + "unión_PROPN_económica_PROPN", + "unión_PROPN_europea_PROPN", + "unión_PROPN_fenosa_PROPN", + "unión_PROPN_interparlamentaria_PROPN", + "unión_PROPN_interparlamentario_ADJ", + "unión_PROPN_monetaria_PROPN", + "unión_PROPN_obrera_PROPN", + "unión_PROPN_patriótica_PROPN", + "unión_PROPN_postal_PROPN", + "unión_PROPN_soviética_PROPN", + "uno_NUM_década_NOUN", + "unpredep_NOUN_fpnu_PROPN", + "unprofor_PROPN_onurc_PROPN", + "unseq_VERB_number_NOUN", + "upr_PROPN_on_PROPN", + "upr_PROPN_submission_PROPN", + "uranio_NOUN_altamente_ADV", + "uranio_NOUN_empobrecido_ADJ", + "uranio_NOUN_enriquecido_ADJ", + "urbanización_NOUN_sostenible_ADJ", + "urbano_ADJ_marginal_ADJ", + "ure_PROPN_rce_PROPN", + "urgencias_PROPN_médicas_PROPN", + "uribe_PROPN_vélez_PROPN", + "uruguay_PROPN_titel_PROPN", + "uruguay_PROPN_uzbekistán_PROPN", + "uruguay_PROPN_vanuatu_PROPN", + "uruguay_PROPN_venezuela_PROPN", + "uruguay_PROPN_zambia_PROPN", + "uruguayo_NOUN_diego_PROPN", + "uruguayo_NOUN_luis_PROPN", + "us_PROPN_airways_PROPN", + "us_PROPN_atsdr_PROPN", + "us_PROPN_open_PROPN", + "usa_PROPN_today_PROPN", + "usain_PROPN_bolt_PROPN", + "usar_VERB_indebidamente_ADV", + "usar_VERB_preservativo_NOUN", + "usd_NOUN_millón_NOUN", + "usd_NUM_millón_NOUN", + "usd_PROPN_millón_NOUN", + "uso_NOUN_abusivo_ADJ", + "uso_NOUN_dual_ADJ", + "uso_NOUN_excesivo_ADJ", + "uso_NOUN_indebido_ADJ", + "uso_NOUN_indiscriminado_ADJ", + "uso_NOUN_medicinal_ADJ", + "usos_PROPN_múltiples_PROPN", + "usuario_ADJ_final_ADJ", + "usuario_NOUN_residencial_ADJ", + "utilidad_NOUN_marginal_ADJ", + "utilidad_NOUN_neto_ADJ", + "utilizado_ADJ_derivado_NOUN", + "utilizar_VERB_ddt_NOUN", + "utilizar_VERB_indebidamente_ADV", + "uttar_NOUN_pradesh_NOUN", + "uttar_PROPN_pradesh_PROPN", + "uvi_PROPN_móvil_ADJ", + "uzbekistán_PROPN_vanuatu_PROPN", + "uzbekistán_PROPN_venezuela_PROPN", + "vaca_NOUN_flaca_ADJ", + "vaca_NOUN_gordo_ADJ", + "vaca_NOUN_loco_ADJ", + "vaca_NOUN_sagrado_ADJ", + "vaca_PROPN_muerta_PROPN", + "vacación_NOUN_anual_ADJ", + "vacación_NOUN_pagado_ADJ", + "vacante_NOUN_imprevista_ADJ", + "vacuna_NOUN_antigripal_ADJ", + "vacío_NOUN_legal_ADJ", + "valdivieso_NOUN_colombia_PROPN", + "vale_NOUN_decir_NOUN", + "valencia_PROPN_cf_PROPN", + "valencia_PROPN_rita_PROPN", + "valentino_PROPN_rossi_PROPN", + "validez_NOUN_material_ADJ", + "valija_NOUN_diplomático_ADJ", + "valioso_ADJ_aportación_NOUN", + "valioso_ADJ_aporte_NOUN", + "valioso_ADJ_contribución_NOUN", + "valla_NOUN_metálico_ADJ", + "valla_NOUN_publicitario_ADJ", + "valle_PROPN_hermoso_PROPN", + "valor_NOUN_agregado_ADJ", + "valor_NOUN_aproximado_ADJ", + "valor_NOUN_añadido_ADJ", + "valor_NOUN_bursátil_ADJ", + "valor_NOUN_catastral_ADJ", + "valor_NOUN_devengado_ADJ", + "valor_NOUN_incalculable_ADJ", + "valor_NOUN_intrínseco_ADJ", + "valor_NOUN_límite_ADJ", + "valor_NOUN_mobiliario_ADJ", + "valor_NOUN_nominal_ADJ", + "valor_NOUN_nutritivo_ADJ", + "valor_NOUN_probatorio_ADJ", + "valor_NOUN_residual_ADJ", + "valor_NOUN_umbral_ADJ", + "valoración_NOUN_actuarial_ADJ", + "valorar_VERB_altamente_ADV", + "valorar_VERB_enormemente_ADV", + "valorar_VERB_positivamente_ADV", + "valores_PROPN_bmv_PROPN", + "valores_PROPN_cnmv_PROPN", + "van_PROPN_basten_PROPN", + "van_PROPN_den_PROPN", + "van_PROPN_der_PROPN", + "van_PROPN_dijk_PROPN", + "van_PROPN_gaal_PROPN", + "van_PROPN_gogh_PROPN", + "van_PROPN_lancker_PROPN", + "van_PROPN_miert_PROPN", + "van_PROPN_nistelrooy_PROPN", + "van_PROPN_orden_PROPN", + "van_PROPN_persie_PROPN", + "van_PROPN_rompuy_PROPN", + "van_PROPN_velzen_PROPN", + "vancouver_PROPN_canadá_PROPN", + "vanessa_PROPN_gomes_PROPN", + "vanity_PROPN_fair_PROPN", + "vanuatu_PROPN_venezuela_PROPN", + "vargas_PROPN_lleras_PROPN", + "vargas_PROPN_llosa_PROPN", + "variabilidad_NOUN_climático_ADJ", + "variable_NOUN_macroeconómico_ADJ", + "variación_NOUN_interanual_ADJ", + "variación_NOUN_mensual_ADJ", + "variación_NOUN_porcentual_ADJ", + "variado_ADJ_gama_NOUN", + "variante_NOUN_b_SYM", + "variar_VERB_considerablemente_ADV", + "varios_DET_obús_NOUN", + "varita_NOUN_mágico_ADJ", + "varíar_VERB_ampliamente_ADV", + "varíar_VERB_considerablemente_ADV", + "varíar_VERB_enormemente_ADV", + "varíar_VERB_según_ADP", + "vasco_PROPN_da_ADP", + "vaso_NOUN_comunicant_ADJ", + "vaso_NOUN_medio_ADV", + "vaso_NOUN_sanguíneo_ADJ", + "vassilakis_PROPN_grecia_PROPN", + "vasto_ADJ_experiencia_NOUN", + "vasto_ADJ_extensión_NOUN", + "vaya_VERB_usted_PRON", + "vaya_VERB_él_VERB", + "vecchia_PROPN_signora_PROPN", + "veda_NOUN_electoral_ADJ", + "vega_PROPN_baja_PROPN", + "vegas_PROPN_nevada_PROPN", + "vegas_PROPN_sands_PROPN", + "vehículo_NOUN_automotor_ADJ", + "vehículo_NOUN_blindado_ADJ", + "vehículo_NOUN_estacionado_ADJ", + "vehículo_NOUN_híbrido_ADJ", + "vehículo_NOUN_motorizado_ADJ", + "vehículo_NOUN_nissan_PROPN", + "vehículo_NOUN_pesado_ADJ", + "vehículo_NOUN_robado_ADJ", + "vehículo_NOUN_siniestrado_ADJ", + "vehículo_NOUN_todoterreno_ADJ", + "veinte_NUM_minuto_NOUN", + "veinticuatro_NUM_hora_NOUN", + "vela_NOUN_encendido_ADJ", + "velo_NOUN_islámico_ADJ", + "venado_PROPN_tuerto_PROPN", + "vendedor_NOUN_ambulante_ADJ", + "vendedor_NOUN_callejero_ADJ", + "venezolano_ADJ_hugo_PROPN", + "venezolano_ADJ_nicolás_PROPN", + "venezuela_PROPN_bcv_PROPN", + "venezuela_PROPN_hugo_PROPN", + "venezuela_PROPN_nicolás_PROPN", + "venezuela_PROPN_pdvsa_PROPN", + "venezuela_PROPN_psuv_PROPN", + "venezuela_PROPN_viet_NOUN", + "venir_VERB_precedido_ADJ", + "venta_NOUN_ambulante_ADJ", + "venta_NOUN_cap_NOUN", + "venta_NOUN_minorista_ADJ", + "venta_NOUN_online_ADJ", + "venta_NOUN_secc_NOUN", + "ventaja_NOUN_comparativo_ADJ", + "ventaja_NOUN_competitivo_ADJ", + "ventanilla_NOUN_único_ADJ", + "venus_PROPN_williams_PROPN", + "venustiano_PROPN_carranza_PROPN", + "ver_PROPN_comentario_PROPN", + "ver_VERB_confrontado_ADJ", + "ver_VERB_contrarrestada_ADJ", + "ver_VERB_contrarrestado_ADJ", + "ver_VERB_coronado_ADJ", + "ver_VERB_dificultado_ADJ", + "ver_VERB_empañado_ADJ", + "ver_VERB_ensombrecido_ADJ", + "ver_VERB_entorpecido_ADJ", + "ver_VERB_exacerbado_ADJ", + "ver_VERB_frenado_ADJ", + "ver_VERB_imposibilitado_ADJ", + "ver_VERB_incrementado_ADJ", + "ver_VERB_menoscabado_ADJ", + "ver_VERB_mermado_ADJ", + "ver_VERB_obligado_ADJ", + "ver_VERB_obstaculizada_ADJ", + "ver_VERB_obstaculizado_ADJ", + "ver_VERB_precisado_ADJ", + "ver_VERB_recompensado_ADJ", + "ver_VERB_socavado_ADJ", + "ver_VERB_truncado_ADJ", + "ver_VERB_él_VERB", + "vera_PROPN_cruz_PROPN", + "veracruz_PROPN_javier_PROPN", + "verano_NOUN_boreal_ADJ", + "verdaderamente_ADV_representativo_ADJ", + "verde_PROPN_ecologista_PROPN", + "verde_PROPN_nórdica_PROPN", + "verdes_PROPN_alianza_PROPN", + "vergüenza_NOUN_ajeno_ADJ", + "verizon_PROPN_wireless_PROPN", + "versión_NOUN_abreviado_ADJ", + "versión_NOUN_actualizado_ADJ", + "versión_NOUN_beta_NOUN", + "versión_NOUN_cinematográfico_ADJ", + "versión_NOUN_codificado_ADJ", + "versión_NOUN_definitivo_ADJ", + "versión_NOUN_enmendado_ADJ", + "versión_NOUN_extraoficial_ADJ", + "versión_NOUN_impreso_ADJ", + "versión_NOUN_inglés_ADJ", + "versión_NOUN_literal_ADJ", + "versión_NOUN_mejorado_ADJ", + "versión_NOUN_modificado_ADJ", + "versión_NOUN_original_ADJ", + "versión_NOUN_periodístico_ADJ", + "versión_NOUN_refundido_ADJ", + "versión_NOUN_revisado_ADJ", + "verter_VERB_lágrima_NOUN", + "vertimiento_NOUN_ilícito_ADJ", + "verónica_PROPN_castro_PROPN", + "vestido_NOUN_blanco_ADJ", + "vestido_NOUN_negro_ADJ", + "vestido_NOUN_rojo_ADJ", + "vestir_VERB_pantalón_NOUN", + "vestir_VERB_ropa_NOUN", + "vestir_VERB_traje_NOUN", + "vestir_VERB_uniforme_NOUN", + "veto_NOUN_presidencial_ADJ", + "vi_PROPN_congreso_PROPN", + "vialidad_PROPN_nacional_PROPN", + "vialidad_PROPN_provincial_PROPN", + "vicente_PROPN_calderón_PROPN", + "vicente_PROPN_fernández_PROPN", + "vicente_PROPN_ferrer_PROPN", + "vicente_PROPN_fox_PROPN", + "vicente_PROPN_guerrero_PROPN", + "vicente_PROPN_herrera_PROPN", + "vicente_PROPN_lópez_PROPN", + "vicente_PROPN_rangel_PROPN", + "vicepresidenta_NOUN_soraya_PROPN", + "vicepresidente_NOUN_amado_PROPN", + "vicepresidente_NOUN_joe_PROPN", + "vicepresidente_NOUN_mike_PROPN", + "viceprimer_ADJ_ministra_NOUN", + "viceprimer_ADJ_ministro_NOUN", + "viceprimer_PROPN_ministro_PROPN", + "vicesecretaria_NOUN_general_ADJ", + "vicesecretario_NOUN_general_ADJ", + "victims_PROPN_of_PROPN", + "victor_PROPN_hugo_PROPN", + "victoria_NOUN_consecutivo_ADJ", + "victoria_PROPN_beckham_PROPN", + "vida_NOUN_cotidiano_ADJ", + "vida_NOUN_extraterrestre_ADJ", + "vida_NOUN_sedentario_ADJ", + "vida_NOUN_silvestre_ADJ", + "vida_NOUN_silvestre_NOUN", + "vida_PROPN_es_PROPN", + "vida_PROPN_silvestre_PROPN", + "video_NOUN_difundido_ADJ", + "video_NOUN_grabado_ADJ", + "video_NOUN_musical_ADJ", + "video_NOUN_viral_ADJ", + "vidrio_NOUN_polarizado_ADJ", + "vidrio_NOUN_roto_ADJ", + "viejo_ADJ_continente_NOUN", + "viejo_ADJ_continente_PROPN", + "viejo_ADJ_refrán_NOUN", + "viejo_PROPN_continente_PROPN", + "vielma_PROPN_mora_PROPN", + "viento_NOUN_flojo_ADJ", + "viento_NOUN_fresco_ADJ", + "viento_NOUN_huracanado_ADJ", + "viento_NOUN_leve_ADJ", + "viento_NOUN_moderado_ADJ", + "viento_NOUN_solar_ADJ", + "viento_NOUN_soplar_VERB", + "viernes_NOUN_santo_NOUN", + "viet_NOUN_nam_NOUN", + "viet_NOUN_nam_PROPN", + "viet_PROPN_nam_PROPN", + "vigente_ADJ_campeona_NOUN", + "vigente_ADJ_campeón_NOUN", + "vigilancia_NOUN_epidemiológico_ADJ", + "vigilancia_NOUN_verificación_NOUN", + "vigilar_VERB_atentamente_ADV", + "vigilar_VERB_estrechamente_ADV", + "vigésimo_ADJ_aniversario_NOUN", + "vigésimo_ADJ_cuarto_ADJ", + "vigésimo_ADJ_octavo_ADJ", + "vigésimo_ADJ_quinto_ADJ", + "vigésimo_ADJ_sexto_ADJ", + "vigésimo_ADJ_séptimo_ADJ", + "vigésimo_ADJ_tercer_ADJ", + "vih_NOUN_sida_NOUN", + "vih_NOUN_sida_PROPN", + "vih_PROPN_sida_NOUN", + "vih_PROPN_sida_PROPN", + "villa_PROPN_allende_PROPN", + "villa_PROPN_carlos_PROPN", + "villa_PROPN_clara_PROPN", + "villa_PROPN_crespo_PROPN", + "villa_PROPN_dolores_PROPN", + "villa_PROPN_elisa_PROPN", + "villa_PROPN_gesell_PROPN", + "villa_PROPN_gobernador_PROPN", + "villa_PROPN_lugano_PROPN", + "villa_PROPN_maría_PROPN", + "villa_PROPN_mercedes_PROPN", + "villa_PROPN_mitre_PROPN", + "villa_PROPN_ocampo_PROPN", + "villa_PROPN_olímpica_PROPN", + "villa_PROPN_regina_PROPN", + "villa_PROPN_rosa_PROPN", + "villa_PROPN_urquiza_PROPN", + "villar_PROPN_mir_PROPN", + "vincular_VERB_estrechamente_ADV", + "vino_NOUN_blanco_ADJ", + "vino_NOUN_espumoso_ADJ", + "vino_NOUN_tinto_ADJ", + "violación_NOUN_flagrante_ADJ", + "violación_NOUN_grave_ADJ", + "violación_NOUN_manifiesto_ADJ", + "violación_NOUN_marital_ADJ", + "violación_NOUN_sistemático_ADJ", + "violar_VERB_flagrantemente_ADV", + "violar_VERB_sistemáticamente_ADV", + "violence_PROPN_against_PROPN", + "violencia_NOUN_conyugal_ADJ", + "violencia_NOUN_desatado_ADJ", + "violencia_NOUN_doméstico_ADJ", + "violencia_NOUN_ejercido_ADJ", + "violencia_NOUN_interétnico_ADJ", + "violencia_NOUN_intrafamiliar_ADJ", + "violencia_NOUN_machista_ADJ", + "violencia_NOUN_sectario_ADJ", + "violencia_NOUN_sexista_ADJ", + "violencia_NOUN_sexual_ADJ", + "violento_ADJ_asalto_NOUN", + "violento_ADJ_enfrentamiento_NOUN", + "violeta_PROPN_parra_PROPN", + "virar_VERB_hacia_ADP", + "virgen_PROPN_maría_PROPN", + "virgen_PROPN_santísima_PROPN", + "virginia_PROPN_occidental_PROPN", + "virginia_PROPN_tech_PROPN", + "virtualmente_ADV_imposible_ADJ", + "virtud_NOUN_del_DET", + "virus_NOUN_informático_ADJ", + "visiblemente_ADV_afectado_ADJ", + "visiblemente_ADV_emocionado_ADJ", + "visiblemente_ADV_molesto_ADJ", + "visita_NOUN_domiciliario_ADJ", + "visita_NOUN_guiada_ADJ", + "visita_NOUN_guiado_ADJ", + "visita_NOUN_papal_ADJ", + "visión_NOUN_compartido_ADJ", + "visión_NOUN_nocturno_ADJ", + "visión_NOUN_panorámico_ADJ", + "vista_NOUN_gordo_ADJ", + "vista_NOUN_oral_ADJ", + "vista_NOUN_panorámico_ADJ", + "vista_PROPN_hermosa_PROPN", + "vistas_NOUN_al_DET", + "visto_ADJ_bueno_ADJ", + "visto_NOUN_bueno_ADJ", + "visto_NOUN_bueno_NOUN", + "vital_ADJ_importancia_NOUN", + "vital_ADJ_líquido_NOUN", + "vitamina_NOUN_c_PROPN", + "vitamina_NOUN_d_PROPN", + "viva_NOUN_voz_NOUN", + "vivienda_NOUN_adecuado_ADJ", + "vivienda_NOUN_asequible_ADJ", + "vivienda_NOUN_unifamiliar_ADJ", + "vivir_VERB_dignamente_ADV", + "vivo_ADJ_aplauso_NOUN", + "vladimir_PROPN_putin_PROPN", + "vladimiro_PROPN_montesinos_PROPN", + "vladímir_PROPN_putin_PROPN", + "vo_PRON_sos_AUX", + "vocero_NOUN_policial_ADJ", + "vocero_NOUN_presidencial_ADJ", + "voice_PROPN_of_PROPN", + "volante_NOUN_ofensivo_ADJ", + "volcán_NOUN_popocatépetl_PROPN", + "volkswagen_PROPN_gol_PROPN", + "volkswagen_PROPN_golf_PROPN", + "volumen_NOUN_negociado_ADJ", + "voluntad_NOUN_político_ADJ", + "voluntad_PROPN_popular_PROPN", + "voluntario_NOUN_casco_NOUN", + "volver_VERB_loca_ADV", + "volver_VERB_loco_ADJ", + "volver_VERB_viral_ADJ", + "von_PROPN_der_PROPN", + "von_PROPN_habsburg_PROPN", + "von_PROPN_wernich_PROPN", + "von_PROPN_wogau_PROPN", + "voraz_ADJ_incendio_NOUN", + "vos_PROPN_sois_AUX", + "votación_NOUN_nominal_ADJ", + "votación_NOUN_registrado_ADJ", + "votación_NOUN_secreto_ADJ", + "votado_ADJ_anteriormente_ADV", + "votante_NOUN_hispano_ADJ", + "votante_NOUN_inscrito_ADJ", + "votar_VERB_afirmativamente_ADV", + "votar_VERB_masivamente_ADV", + "voto_NOUN_afirmativo_ADJ", + "voto_NOUN_emitido_ADJ", + "voto_NOUN_escrutado_ADJ", + "voto_NOUN_nulo_ADJ", + "voz_NOUN_alta_NOUN", + "voz_NOUN_apagado_ADJ", + "voz_NOUN_cantante_ADJ", + "voz_NOUN_entrecortado_ADJ", + "voz_NOUN_quebrado_ADJ", + "voz_NOUN_ronca_NOUN", + "voz_NOUN_ronco_ADJ", + "voz_NOUN_sordo_ADJ", + "voz_NOUN_temblorós_ADJ", + "vuelo_NOUN_cancelado_ADJ", + "vuelo_NOUN_charter_ADJ", + "vuelo_NOUN_chárter_ADJ", + "vuelo_NOUN_nocturno_ADJ", + "vuelo_NOUN_regular_ADJ", + "vuelo_NOUN_semanal_ADJ", + "vuelta_NOUN_olímpico_ADJ", + "vuelta_PROPN_ciclista_PROPN", + "vuesa_NOUN_merced_NOUN", + "vuesir_VERB_merced_NOUN", + "vuestra_NOUN_merced_NOUN", + "vuestra_PROPN_majestad_PROPN", + "vuestrar_VERB_merced_NOUN", + "vuestrir_VERB_merced_ADP", + "vuestrir_VERB_merced_NOUN", + "vuestrir_VERB_merced_SCONJ", + "vuestro_DET_excelencia_NOUN", + "vuestro_DET_majestad_NOUN", + "vuestro_DET_merced_NOUN", + "vuestro_DET_señoría_NOUN", + "vw_PROPN_gol_PROPN", + "válgame_PROPN_dios_PROPN", + "vázquez_PROPN_mota_PROPN", + "véanse_VERB_párr_NOUN", + "vélez_PROPN_sarsfield_PROPN", + "vélez_PROPN_sársfield_PROPN", + "vía_ADP_correo_NOUN", + "vía_ADP_internet_NOUN", + "vía_ADP_internet_PROPN", + "vía_ADP_satélite_NOUN", + "vía_ADP_twitter_PROPN", + "vía_NOUN_alterno_ADJ", + "vía_NOUN_aéreo_ADJ", + "vía_NOUN_crucis_NOUN", + "vía_NOUN_ejecutorio_ADJ", + "vía_NOUN_fluvial_ADJ", + "vía_NOUN_férreo_ADJ", + "vía_NOUN_intravenoso_ADJ", + "vía_NOUN_navegabl_ADJ", + "vía_NOUN_respiratorio_ADJ", + "vía_NOUN_satélite_ADJ", + "vía_NOUN_telefónico_ADJ", + "vía_PROPN_crucis_PROPN", + "vía_PROPN_láctea_PROPN", + "víctima_NOUN_fatal_ADJ", + "víctima_NOUN_mortal_ADJ", + "víctor_PROPN_fernández_PROPN", + "víctor_PROPN_garcía_PROPN", + "víctor_PROPN_hugo_PROPN", + "víctor_PROPN_jara_PROPN", + "víctor_PROPN_manuel_PROPN", + "víctor_PROPN_martínez_PROPN", + "víctor_PROPN_valdés_PROPN", + "vídeo_NOUN_difundido_ADJ", + "vídeo_NOUN_grabado_ADJ", + "vídeo_NOUN_musical_ADJ", + "vínculo_NOUN_afectivo_ADJ", + "vínculo_NOUN_causal_ADJ", + "vínculo_NOUN_existente_ADJ", + "vínculo_NOUN_indisoluble_ADJ", + "vínculo_NOUN_matrimonial_ADJ", + "vísperas_NOUN_del_DET", + "wall_PROPN_street_PROPN", + "wallace_PROPN_estados_PROPN", + "walsh_PROPN_canadá_PROPN", + "walt_PROPN_disney_PROPN", + "walter_PROPN_kälin_PROPN", + "wanda_PROPN_nara_PROPN", + "wang_PROPN_guangya_PROPN", + "wang_PROPN_yingfan_PROPN", + "warner_PROPN_bros_PROPN", + "warren_PROPN_buffett_PROPN", + "was_PROPN_allegedly_PROPN", + "was_PROPN_reportedly_PROPN", + "was_PROPN_said_PROPN", + "was_PROPN_then_PROPN", + "was_VERB_allegedly_PROPN", + "was_VERB_reportedly_NOUN", + "was_VERB_reportedly_PROPN", + "washington_PROPN_ap_PROPN", + "washington_PROPN_dc_PROPN", + "washington_PROPN_post_PROPN", + "washington_PROPN_reuters_PROPN", + "watch_PROPN_hrw_PROPN", + "water_PROPN_and_PROPN", + "wayne_PROPN_rooney_PROPN", + "we_PROPN_are_PROPN", + "we_PROPN_have_PROPN", + "weapons_PROPN_advisory_PROPN", + "wells_PROPN_fargo_PROPN", + "wenaweser_PROPN_liechtenstein_PROPN", + "werder_PROPN_bremen_PROPN", + "were_PROPN_reportedly_PROPN", + "west_PROPN_africa_PROPN", + "west_PROPN_bank_PROPN", + "west_PROPN_bromwich_PROPN", + "west_PROPN_ham_PROPN", + "west_PROPN_texas_PROPN", + "western_PROPN_union_PROPN", + "what_PROPN_is_PROPN", + "whelan_PROPN_irlanda_PROPN", + "when_PROPN_he_PROPN", + "when_PROPN_the_PROPN", + "where_PROPN_the_PROPN", + "which_PROPN_are_PROPN", + "which_PROPN_is_PROPN", + "which_PROPN_the_PROPN", + "which_PROPN_was_PROPN", + "while_PROPN_the_PROPN", + "whitney_PROPN_houston_PROPN", + "who_PROPN_are_PROPN", + "who_PROPN_had_PROPN", + "wibisono_PROPN_indonesia_PROPN", + "wii_PROPN_u_PROPN", + "wikileaks_PROPN_julian_PROPN", + "wild_NOUN_card_NOUN", + "will_PROPN_be_PROPN", + "will_PROPN_smith_PROPN", + "william_PROPN_clinton_PROPN", + "william_PROPN_hague_PROPN", + "william_PROPN_levy_PROPN", + "william_PROPN_shakespeare_PROPN", + "windows_PROPN_live_PROPN", + "windows_PROPN_mobile_PROPN", + "windows_PROPN_phone_PROPN", + "windows_PROPN_vista_PROPN", + "windows_PROPN_xp_PROPN", + "winston_PROPN_churchill_PROPN", + "with_ADP_the_DET", + "with_PROPN_an_PROPN", + "with_PROPN_his_PROPN", + "with_PROPN_regard_PROPN", + "with_PROPN_respect_PROPN", + "with_PROPN_the_PROPN", + "within_PROPN_the_PROPN", + "wolfe_PROPN_jamaica_PROPN", + "wolfgang_ADJ_petritsch_PROPN", + "women_NOUN_and_CCONJ", + "women_PROPN_and_CCONJ", + "women_PROPN_and_PROPN", + "women_PROPN_in_ADP", + "wonder_PROPN_woman_PROPN", + "woodrow_PROPN_wilson_PROPN", + "woody_PROPN_allen_PROPN", + "work_PROPN_of_PROPN", + "working_PROPN_group_PROPN", + "working_PROPN_paper_PROPN", + "world_PROPN_bank_PROPN", + "world_PROPN_development_PROPN", + "world_PROPN_economic_PROPN", + "world_PROPN_health_PROPN", + "world_PROPN_investment_PROPN", + "world_PROPN_peace_PROPN", + "world_PROPN_population_PROPN", + "world_PROPN_press_PROPN", + "world_PROPN_public_PROPN", + "world_PROPN_series_PROPN", + "world_PROPN_tour_PROPN", + "world_PROPN_trade_PROPN", + "world_PROPN_vision_PROPN", + "world_PROPN_wide_PROPN", + "would_PROPN_be_CCONJ", + "wt_PROPN_r_NOUN", + "x_NOUN_díawelcome_PROPN", + "x_NOUN_píxel_NOUN", + "x_NOUN_unctad_NUM", + "x_NOUN_unctad_PROPN", + "x_NOUN_unctad_VERB", + "xabi_PROPN_alonso_PROPN", + "xanana_PROPN_gusmão_PROPN", + "xanán_ADJ_gusmão_PROPN", + "xavi_PROPN_hernández_PROPN", + "xavi_PROPN_pascual_PROPN", + "xavier_PROPN_trias_PROPN", + "xbox_PROPN_live_PROPN", + "xbox_PROPN_one_PROPN", + "xi_PROPN_jinping_PROPN", + "xi_PROPN_unctad_NUM", + "xi_PROPN_unctad_PROPN", + "xi_PROPN_unctad_VERB", + "xii_PROPN_unctad_NUM", + "xii_PROPN_unctad_PROPN", + "ximo_PROPN_puig_PROPN", + "xunta_PROPN_alberto_PROPN", + "xxi_PROPN_anexo_NOUN", + "ya_ADV_veisir_VERB", + "yacimiento_NOUN_arqueológico_ADJ", + "yacimiento_NOUN_petrolífero_ADJ", + "yahaira_PROPN_plasencia_PROPN", + "yahya_PROPN_mahmassani_PROPN", + "yakarta_PROPN_indonesia_PROPN", + "yakin_PROPN_ertürk_PROPN", + "yankee_PROPN_stadium_PROPN", + "yasser_PROPN_arafat_PROPN", + "yearbook_PROPN_of_PROPN", + "years_PROPN_of_PROPN", + "yemen_PROPN_yugoslavia_PROPN", + "yemen_PROPN_zambia_PROPN", + "yemen_PROPN_zimbabwe_PROPN", + "yen_NOUN_japonés_ADJ", + "yerba_NOUN_mate_NOUN", + "yerba_PROPN_buena_ADJ", + "yihad_PROPN_islámica_PROPN", + "yihad_PROPN_islámico_ADJ", + "yo_PRON_acuerdo_VERB", + "yo_PRON_adhiero_VERB", + "yo_PRON_apresurer_VERB", + "yo_PRON_avergüencer_VERB", + "yo_PRON_center_VERB", + "yo_PRON_complacer_VERB", + "yo_PRON_encontrár_VERB", + "yo_PRON_engañer_VERB", + "yo_PRON_feír_VERB", + "yo_PRON_gusta_PROPN", + "yo_PRON_gustariar_VERB", + "yo_PRON_hallár_VERB", + "yo_PRON_reunar_VERB", + "yo_PRON_reuní_VERB", + "yo_PRON_reímos_VERB", + "yo_VERB_permitir_VERB", + "yoani_PROPN_sánchez_PROPN", + "yoko_PROPN_ono_PROPN", + "yokohama_PROPN_japón_PROPN", + "yolanda_PROPN_barcina_PROPN", + "york_PROPN_times_PROPN", + "you_PROPN_are_PROPN", + "you_PROPN_tube_PROPN", + "young_PROPN_people_PROPN", + "your_DET_account_PROPN", + "yousfi_PROPN_argelia_PROPN", + "yozo_PROPN_yokota_PROPN", + "yrigoyen_PROPN_sr_PROPN", + "yrigoyen_PROPN_sra_PROPN", + "yugoslavia_PROPN_serbia_PROPN", + "yugoslavia_PROPN_zambia_PROPN", + "yuji_PROPN_iwasawa_PROPN", + "yunes_PROPN_linares_PROPN", + "yves_PROPN_saint_PROPN", + "zaguero_NOUN_central_ADJ", + "zambia_PROPN_zimbabwe_NOUN", + "zamora_PROPN_titel_PROPN", + "zarate_PROPN_campanadpto_PROPN", + "zeitschrift_PROPN_für_PROPN", + "zhang_PROPN_yishan_PROPN", + "zinedine_PROPN_zidane_PROPN", + "zlatan_PROPN_ibrahimovic_PROPN", + "zona_NOUN_adyacente_ADJ", + "zona_NOUN_aledaña_ADJ", + "zona_NOUN_boscoso_ADJ", + "zona_NOUN_circundante_ADJ", + "zona_NOUN_conurbado_ADJ", + "zona_NOUN_costero_ADJ", + "zona_NOUN_céntrico_ADJ", + "zona_NOUN_densamente_ADV", + "zona_NOUN_desmilitarizado_ADJ", + "zona_NOUN_desnuclearizado_ADJ", + "zona_NOUN_devastada_ADJ", + "zona_NOUN_este_ADJ", + "zona_NOUN_euro_NOUN", + "zona_NOUN_franco_ADJ", + "zona_NOUN_fronterizo_ADJ", + "zona_NOUN_habitado_ADJ", + "zona_NOUN_limítrofe_ADJ", + "zona_NOUN_lumbar_ADJ", + "zona_NOUN_metropolitano_ADJ", + "zona_NOUN_minado_ADJ", + "zona_NOUN_montañoso_ADJ", + "zona_NOUN_noroeste_ADJ", + "zona_NOUN_norte_ADJ", + "zona_NOUN_oeste_ADJ", + "zona_NOUN_remoto_ADJ", + "zona_NOUN_resarcible_ADJ", + "zona_NOUN_residencial_ADJ", + "zona_NOUN_ribereña_ADJ", + "zona_NOUN_rural_ADJ", + "zona_NOUN_suburbano_ADJ", + "zona_NOUN_sur_ADJ", + "zona_NOUN_urbano_ADJ", + "zona_NOUN_árida_ADJ", + "zona_PROPN_b_PROPN", + "zona_PROPN_centro_PROPN", + "zona_PROPN_cero_NUM", + "zona_PROPN_económica_PROPN", + "zona_PROPN_franca_PROPN", + "zona_PROPN_metropolitana_PROPN", + "zona_PROPN_militar_PROPN", + "zona_PROPN_norte_PROPN", + "zona_PROPN_rosa_PROPN", + "zona_PROPN_sur_PROPN", + "zonke_PROPN_zanele_PROPN", + "zonta_PROPN_internacional_ADJ", + "zou_NOUN_xiaoqiao_ADJ", + "zu_PROPN_baringdorf_PROPN", + "zócalo_PROPN_capitalino_ADJ", + "ºc_NOUN_ºc_SYM", + "ºc_NUM_min_NOUN", + "ºc_SYM_cielo_NOUN", + "ácido_NOUN_fólico_ADJ", + "ácido_NOUN_graso_ADJ", + "ácido_NOUN_sulfúrico_ADJ", + "áfrica_NOUN_central_ADJ", + "áfrica_NOUN_meridional_ADJ", + "áfrica_NOUN_occidental_ADJ", + "áfrica_NOUN_oriental_ADJ", + "áfrica_NOUN_septentrional_ADJ", + "áfrica_NOUN_subsahariana_ADJ", + "áfrica_NOUN_subsaharián_ADJ", + "áfrica_PROPN_cepa_NOUN", + "áfrica_PROPN_cepa_PROPN", + "áfrica_PROPN_meridional_PROPN", + "áfrica_PROPN_nepad_PROPN", + "áfrica_PROPN_occidental_ADJ", + "áfrica_PROPN_occidental_PROPN", + "áfrica_PROPN_septentrional_ADJ", + "áfrica_PROPN_septentrional_PROPN", + "áfrica_PROPN_subsahariana_ADJ", + "áfrica_PROPN_subsahariana_PROPN", + "áfrica_PROPN_subsaharián_ADJ", + "áfrico_ADJ_meridional_ADJ", + "áfrico_ADJ_occidental_ADJ", + "áfrico_ADJ_septentrional_ADJ", + "álbum_NOUN_debut_ADJ", + "álvaro_PROPN_colom_PROPN", + "álvaro_PROPN_garcía_PROPN", + "álvaro_PROPN_morata_PROPN", + "álvaro_PROPN_obregón_PROPN", + "álvaro_PROPN_pérez_PROPN", + "álvaro_PROPN_uribe_PROPN", + "ángel_PROPN_acebes_PROPN", + "ángel_PROPN_aguirre_PROPN", + "ángel_PROPN_di_PROPN", + "ángel_PROPN_osorio_PROPN", + "ángela_PROPN_merkel_PROPN", + "ángeles_PROPN_california_PROPN", + "ángulo_NOUN_recto_ADJ", + "árabe_ADJ_libia_PROPN", + "árabe_ADJ_libio_ADJ", + "árabe_ADJ_ocupado_ADJ", + "árabe_ADJ_sirio_ADJ", + "árabe_ADJ_unido_ADJ", + "árabe_NOUN_chino_ADJ", + "árabe_NOUN_chino_NOUN", + "árabe_PROPN_libia_PROPN", + "árabes_PROPN_unidos_PROPN", + "árbitro_NOUN_pitar_VERB", + "árbol_NOUN_caído_ADJ", + "árbol_NOUN_frutal_ADJ", + "árbol_NOUN_genealógico_ADJ", + "área_NOUN_adyacente_ADJ", + "área_NOUN_chico_ADJ", + "área_NOUN_metropolitano_ADJ", + "área_NOUN_protegido_ADJ", + "área_NOUN_reservado_ADJ", + "área_NOUN_rival_ADJ", + "área_PROPN_metropolitana_PROPN", + "ávila_PROPN_camacho_PROPN", + "é_AUX_um_DET", + "é_AUX_uma_DET", + "é_CCONJ_uma_DET", + "él_VERB_consul_NOUN", + "élite_NOUN_política_ADJ", + "énfasis_NOUN_puesto_ADJ", + "época_NOUN_colonial_ADJ", + "época_NOUN_dorado_ADJ", + "época_NOUN_estival_ADJ", + "época_NOUN_navideño_ADJ", + "época_NOUN_soviético_ADJ", + "ética_NOUN_profesional_ADJ", + "étnico_ADJ_minoritario_ADJ", + "étnico_ADJ_religioso_ADJ", + "éxito_NOUN_cosechado_ADJ", + "éxito_NOUN_rotundo_ADJ", + "éxodo_NOUN_intelectual_ADJ", + "éxodo_NOUN_masivo_ADJ", + "éxodo_NOUN_rural_ADJ", + "índice_NOUN_bursátil_ADJ", + "índice_NOUN_compuesto_ADJ", + "índice_NOUN_continuación_INTJ", + "índice_NOUN_continuación_NOUN", + "índice_NOUN_dow_PROPN", + "índice_NOUN_hang_PROPN", + "índice_NOUN_inflacionario_ADJ", + "índice_NOUN_merval_PROPN", + "índice_NOUN_msci_PROPN", + "índice_NOUN_nasdaq_PROPN", + "índice_NOUN_nikkei_PROPN", + "índice_NOUN_referencial_ADJ", + "índice_NOUN_standard_PROPN", + "índice_PROPN_general_PROPN", + "íntimamente_ADV_ligado_ADJ", + "íntimamente_ADV_relacionado_ADJ", + "íntimamente_ADV_vinculado_ADJ", + "íntimo_ADJ_amigo_NOUN", + "íñigo_PROPN_errejón_PROPN", + "ópera_NOUN_prima_NOUN", + "órbita_NOUN_alrededor_ADV", + "órbita_NOUN_geoestacionario_ADJ", + "órbita_NOUN_terrestre_ADJ", + "órden_NOUN_dictado_ADJ", + "órgano_NOUN_asesor_ADJ", + "órgano_NOUN_auxiliar_ADJ", + "órgano_NOUN_colegiado_ADJ", + "órgano_NOUN_competente_ADJ", + "órgano_NOUN_creado_ADJ", + "órgano_NOUN_decisorio_ADJ", + "órgano_NOUN_deliberante_ADJ", + "órgano_NOUN_deliberativo_ADJ", + "órgano_NOUN_electivo_ADJ", + "órgano_NOUN_fiscalizador_ADJ", + "órgano_NOUN_intergubernamental_ADJ", + "órgano_NOUN_jurisdiccional_ADJ", + "órgano_NOUN_rector_ADJ", + "órgano_NOUN_regulador_ADJ", + "órgano_NOUN_subsidiario_ADJ", + "órgano_NOUN_supervisor_ADJ", + "órgano_PROPN_judicial_PROPN", + "órganos_NOUN_humano_ADJ", + "óscar_PROPN_arias_PROPN", + "óscar_PROPN_lópez_PROPN", + "óscar_PROPN_pérez_PROPN", + "óscar_PROPN_ramírez_PROPN", + "óxido_NOUN_nitroso_ADJ", + "última_PROPN_hora_PROPN", + "últimas_PROPN_noticias_PROPN", + "último_ADJ_instancia_NOUN", + "último_ADJ_lustro_NOUN", + "último_NOUN_permítanme_VERB", + "único_ADJ_puntero_NOUN", + "útil_NOUN_escolar_ADJ", + "şahide_NUM_goekce_NOUN", + "žinio_NOUN_nº_NOUN", + "μg_NUM_kg_NOUN", + "ο_CCONJ_sí_NOUN" + ] +} \ No newline at end of file diff --git a/lexical_minimums/A1_MINIMUM.txt b/lexical_minimums/A1_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..0606ec2de30c59d4283c0277d2924617af68ab83 --- /dev/null +++ b/lexical_minimums/A1_MINIMUM.txt @@ -0,0 +1,596 @@ +Bali +DVD +Este +Gramática +Herramientas +Hispanoamérica +Internet +Laos +Lugares +Madrid +Mozambique +Norte +Oeste +Sur +TV +Transporte +a +abierto +abogado +abrir +abuela +abuelo +acondicionado +actividad +actor +actriz +acuerdo +acá +administrativo +aeropuerto +agua +ahora +aire +al +alegre +alemán +allá +allí +alquilar +alto +ama +amarillo +amiga +amigo +amo +andando +animal +antes +antipático +aparcamiento +apartamento +apellido +aprender +aquí +armario +arroba +ascensor +autobuses +autobús +auxiliar +avenida +avión +ayer +azul +azules +aéreo +año +años +bailar +bajo +bali +baloncesto +banco +bar +barato +barba +barco +bastante +bañarse +baño +beber +biblioteca +bien +bigote +billete +blanco +bocadillo +bolso +bolígrafo +bombero +bonito +budista +buen +bueno +café +calefacción +caliente +calle +calor +cama +camarero +cambiar +camisa +campin +camping +campo +canción +cantante +cantar +capital +cara +cardinal +cardinales +carne +carné +caro +carretera +carta +cartera +casa +casado +catedral +cena +cenar +central +centro +cerca +cerrado +cerrar +cerveza +chica +chico +cine +circo +circulación +ciudad +civil +claro +claros +clase +coche +cocina +colegio +comer +comercial +comida +compañera +compañero +comprador +comprar +comprender +comunicado +con +concierto +conducir +conductor +correo +correr +cortado +corto +costar +creer +cristiano +crédito +cuarto +cuenta +cuándo +céntimo +céntrico +código +de +deberes +dedicar +dedicarse +delgado +deporte +derecha +desayunar +desayuno +despacio +después +diccionario +diente +dientes +difícil +dinero +dirección +director +discoteca +divorciado +doble +dormitorio +ducha +ducharse +dvd +día +días +edad +edificio +ejercicio +el +electrodomésticos +electrónico +empezar +empresa +en +enfermera +enfermero +enfermo +ensalada +entender +entrada +entrar +entre +escalera +escribir +escuchar +escuela +españa +español +esquiar +estación +estado +estantería +estar +este +estudiante +estudiar +estudio +euro +examen +exposición +exterior +extranjero +falda +familia +farmacia +fax +fecha +feo +fiesta +fijo +fin +final +firmar +flor +fluvial +foto +fotocopia +francia +fruta +frío +fácil +fútbol +gafas +garaje +gas +gente +gimnasia +gobierno +goma +gordo +gramática +grande +grandes +gris +grupo +grupos +guapo +guión +haber +habitación +hablar +hacer +hamburguesa +hasta +hermana +hermano +hermoso +herramientas +hija +hijo +hispanoamérica +historia +hombre +hora +horario +hospital +hotel +hoy +huevos +ida +identidad +iglesia +indicativo +individual +información +ingeniero +instituto +inteligente +interesante +interior +internet +invierno +ir +izquierda +jabón +japonés +jardín +jefe +jersey +joven +judío +juego +jugar +kilómetro +la +lado +laos +largo +las +lavabo +lavar +lavarse +lección +leche +leer +lejos +lento +levantar +levantarse +libro +lindo +llamar +llamarse +llaves +llegar +llevar +llover +los +lugar +lugares +lápiz +madre +madrid +mal +maleta +malo +mano +manos +mapa +mar +marido +marrones +marroquí +marrón +marítimo +matemáticas +mañana +mediodía +menos +mensaje +menú +mercado +merendar +merienda +mes +mesa +meses +metro +mexicano +mezquita +mineral +minuto +momento +montaña +monumento +moreno +mozambique +mucho +muchos +mujer +museo +musulmán +muy +más +médico +móvil +música +nacimiento +nacionalidad +nadar +naranja +nariz +negro +negros +nevar +nieta +nieto +niña +niño +no +noche +nombre +norma +normalmente +normas +norte +novia +novio +nuevo +nunca +número +números +o +oeste +oficina +ojo +ojos +okay +ordenador +ordinales +oscuro +oscuros +otoño +padre +padres +paella +pagar +pan +pantalones +papel +parada +pareja +parejas +paro +parque +pasaporte +paseo +país +pelo +película +pequeño +pequeños +periódico +pescado +pie +piso +pizarra +plano +planta +plato +playa +plaza +poco +pocos +policía +por +posible +postal +postre +practicar +precio +pregunta +presente +presidente +prima +primavera +primer +primo +profesión +profesor +pronto +publicidad +pueblo +puerta +puerto +punto +página +quiosco +quizá +radio +recha +recto +regular +reina +religión +reloj +repetir +restaurante +revista +rey +rojo +rubio +rusia +rápido +río +s +saber +sala +salida +salir +salón +segundo +sello +semana +separado +ser +serio +señor +señora +señores +siempre +silla +sillón +simpático +sin +sinagoga +sobre +sobrina +sobrino +sociable +sofá +sol +solo +soltero +sopa +super +supermercado +sur +sándwich +sí +tarde +tarjeta +taxi +taxis +taxista +teatro +televisión +teléfono +temprano +tener +tenis +terminar +terraza +tiempo +tienda +tierra +tinto +todo +todos +tortilla +trabajador +trabajar +trabajo +transporte +tren +turismo +turista +tv +té +tía +tímido +tío +un +una +unidad +universidad +v +vacaciones +vaqueros +veces +vendedor +vender +venir +ventana +ver +verano +verde +verdes +verdura +viajar +viaje +viajes +viejo +viento +vino +viudo +vivir +volver +vuelta +vídeo +web +y +zapatos +árbol diff --git a/lexical_minimums/A2_MINIMUM.txt b/lexical_minimums/A2_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..607bcf1952e6ab0c6819f7c8175649b3d7248253 --- /dev/null +++ b/lexical_minimums/A2_MINIMUM.txt @@ -0,0 +1,678 @@ +Actividades +Alá +Ayuntamiento +CD +Correos +Cruz +Derecho +Dios +Hay +Hipanoamérica +Historia +IVA +Iglesia +La +Matemáticas +Medicina +Navidad +Nordeste +Noroeste +PC +Qué +ROM +Ramadán +Reparación +Roja +Sabbat +Santa +Seguridad +Semana +Social +Sudeste +Suroeste +York +abierta +abrigo +aburrido +acabar +academia +aceite +acostarse +actividades +adivinar +adolescente +adulto +afeitarse +afición +afueras +agencia +agenda +agradable +agricultor +ajedrez +ajo +alcohol +alergia +algo +algunas +alojamiento +alredor +alumno +alá +amable +ambulancia +amigos +amueblado +amueblar +ancho +andar +antigua +antiguo +anuncio +anuncios +apellidarse +aperitivo +aprobar +araña +arquitecto +arriba +arroz +arte +artista +atracciones +atún +aula +automático +ayuntamiento +azafata +azúcar +bajar +ballet +barra +barrio +bañador +bañera +bebida +bebé +bicicleta +biquini +blusa +boca +bomberos +bosque +botas +bote +botella +braga +brazo +buena +bufanda +buscar +caballo +cabeza +cabina +cafetería +caja +cajero +calcetines +calvo +calzoncillo +cambiarse +cambio +caminar +canguro +cansado +carnicero +carnicería +cartas +carácter +casarse +castillo +cava +cazadora +caña +cd +cdrom +cebolla +centímetro +cepillarse +cepillo +cerdo +cereales +certificado +chalé +champán +champú +chat +chatear +chef +cheque +china +chino +chocolate +ciclista +cielo +cien +ciencia +científico +cita +clases +cliente +clientes +clásica +cocinar +cocinero +coger +colonia +color +combinado +cometer +comisaría +como +compartir +completa +completar +compra +compras +conducción +consultar +contento +contestar +copa +corbata +cordero +correos +cosmopolita +costa +crecer +crema +cristal +cruz +cruzar +cuaderno +cuadrado +cuadrados +cuadro +cuello +cuento +cumpleaños +currículum +curso +cámara +dar +decir +decoración +dedo +dejar +del +delante +demasiado +dependiente +deportes +derecho +des +desde +deshacer +desierto +desodorante +despacho +detrás +devolver +dibujar +dibujo +diferente +dios +diploma +discos +discusión +distancia +divorciarse +docena +doler +dolor +doscientos +durante +durar +educación +efectivo +egoísta +ejército +electrónica +eléctrica +emana +emergencia +empleado +empresario +encantar +encima +enfadado +enfermedad +enfrente +entrevista +enviar +error +errores +escritor +espalda +esquina +esta +estanco +estatua +estrecho +estrella +estudiantes +está +estómago +ex +excursión +extensión +factura +fiebre +filete +filetes +fines +flamenco +flores +foro +fotocopiadora +fotocopias +fotografía +fotos +fotógrafo +fresa +frutas +frutero +frutería +fuera +fuerte +funcionario +fábrica +fórmula +galletas +gambas +ganar +garganta +gato +gel +gemelos +generoso +gerundio +gimnasio +ginebra +girar +gorra +gorro +gramo +gramos +gripe +guantes +guerra +guitarra +gustar +guía +habitaciones +habitante +hace +hambre +harina +hay +helado +hermanos +hielo +hipanoamérica +hobby +hoja +idiomas +igual +importante +importar +impresionante +impresora +increíble +indefinido +industrial +infinitivo +informática +informático +infusión +ingrediente +instrumento +interesar +invitación +invitados +invitar +isla +italiano +iva +jamón +japonesa +jazz +jubilado +juez +juntos +kilo +kilómetros +lante +lata +lavadora +lavaplatos +lechuga +letra +libra +libre +librería +limpiar +limpio +limpios +liso +lista +literatura +litro +llamada +lluvia +luna +m +madera +mala +maletas +maletín +mamá +mandar +mantenimiento +mantequilla +manzana +margarita +material +matrícula +mayonesa +mayor +mañanas +mecánico +media +mediana +mediano +medias +medicamento +medicina +medio +mee +mejor +memorizar +merluza +mermelada +metal +metros +mi +microondas +miedo +ministro +mirar +mochila +moderna +moderno +moneda +montar +morir +mosca +mosquito +moto +muchas +muela +multinacional +mundo +municipal +musical +músico +nacer +nada +nadie +naturaleza +navegar +navidad +necesario +necesitar +negocio +nervioso +nevera +niebla +nieve +ningún +noches +nordeste +normal +noroeste +nota +novela +ntro +nube +obra +oca +odiar +olivo +optimista +oración +otra +oído +oír +palacio +panadero +panadería +papelería +papá +paquete +paraguas +parchís +parecido +pared +partido +pasada +pasado +pasar +pasear +pasillo +pasta +patata +patatas +paz +pañuelo +pc +peatonal +pedir +peinarse +peluquería +pensión +peor +pequeña +perejil +perfecto +periodista +perro +persona +pesar +pez +piano +piel +pierna +pijama +piloto +pimienta +pino +pintar +pintor +piscina +pizzería +planes +planeta +platos +plástico +plátano +pobre +poder +poesía +pollo +política +político +ponerse +pop +portátil +prefijo +preguntar +prentar +preocupado +preparar +presentador +presentarse +pretérito +primera +princesa +probable +probador +probarse +producto +programa +propietario +propina +príncipe +pájaro +pública +que +quedar +quedarse +queso +quitarse +qué +ramadán +ramo +rato +receta +recibir +red +redacción +redondo +reencarnación +regalar +regalo +regalos +región +regla +reparación +repasar +reserva +reservado +reservar +responder +respuesta +reunión +rico +rizado +rock +roja +rom +ron +ropa +rosa +rueda +ruido +rápida +sabbat +sal +salmón +salsa +sana +santa +sardina +se +seco +sed +seguir +segunda +seguridad +seguro +semanas +senderismo +sentado +sentarse +sentirse +separarse +serrano +servilleta +sexo +social +socio +socorro +sombrero +subir +subordinada +sucio +sucios +sudeste +suelo +suerte +sueño +sujetador +suroeste +suspender +talla +tan +tango +tapa +tardes +tarta +taza +techo +tecnología +tela +telefónica +temporal +tercera +ternera +tiendas +toalla +tocar +toda +todas +todavía +tolerante +tomar +tomate +tormenta +tos +traer +traje +tranquilo +triste +trás +turístico +típico +uniforme +universitaria +urgencias +vaca +vainilla +vale +valer +vaso +vecino +vegetariano +verdad +vez +vida +viene +violín +virus +visita +visitar +vistas +vuelo +ya +yogur +york +zanahoria +zoo +zoológico +zumo +ópera +única +único +útil +сon diff --git a/lexical_minimums/B1_MINIMUM.txt b/lexical_minimums/B1_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..16240131ebd673a65739cebc5cd668d2976155b0 --- /dev/null +++ b/lexical_minimums/B1_MINIMUM.txt @@ -0,0 +1,1513 @@ +ADSL +América +Argentina +Asia +Asuntos +Atlántico +Año +Biblia +Báltico +C +Chile +Corán +Cuba +DNI +Defensa +Documento +Educación +Estado +Europa +Europea +Exteriores +Fin +Gordo +HH +Identidad +Incidentes +Interior +Me +Mediterráneo +Ministerio +Mundo +México +Nacional +Naciones +Normas +Nuevo +ONG +ONU +Occidente +Oceanía +Organización +Oriente +Pacífico +Papa +RR +Rojo +Saberes +Seguros +Tercer +Torá +Tácticas +UE +Unidas +Unión +Uruguay +Vamos +Venezuela +W +abastecimiento +abrazar +abrazarse +abrazo +abreviado +abrirse +aburrirse +acceder +accidente +accidentes +acciones +acción +aceptar +acero +acordarse +acostado +actitud +actos +actualmente +acueducto +adelgazar +adjetivo +adjuntar +administración +adoptado +adoptar +adsl +afeitar +aficionado +agotado +agricultura +agujero +ala +alcalde +alegrarse +alejarse +alfombra +algodón +alguien +alimentación +alimentar +alimentarse +alimento +alimentos +aliñar +alquiler +alredores +alta +alternativa +aluminio +alumnado +amabilidad +amargo +amarillas +ambiente +amistad +amor +américa +anciano +andaluza +andén +anglicana +anillo +animados +animales +aniversario +anoche +anteayer +antibiótico +antivirus +anular +análisis +apagar +aparcar +aparecer +apartado +apartamentos +aprendizaje +apuntes +apurado +aquel +archivar +archivo +arena +argentina +arquitectura +arreglar +arrogante +artículo +artístico +asar +aseo +aseos +asesino +asia +asiento +asignatura +asistencia +asociación +aspirador +aspirina +astronauta +asuntos +asustado +así +atasco +atender +atentado +ateo +aterrizar +atletismo +atlántico +atmosférico +atmósfera +aumentar +auto +autopista +autónoma +ave +aventura +aventuras +ayuda +ayudante +ayudar +bachillerato +bailarín +baile +baja +bajada +bajarse +balonmano +balón +banca +barca +barrer +barriga +basura +batería +batir +baños +bebidas +beca +berenjena +besar +besarse +beso +biblia +bici +billar +biografía +biología +bisexual +bizcocho +biólogo +blancas +blando +bloque +boda +bolos +bolsa +bomba +borracho +boxeo +brazos +bricolaje +buceador +buenas +buenísimo +bufete +burocracia +bus +buscador +buzón +báltico +béisbol +búsqueda +c +caber +cadena +caducado +caer +caerse +cafetera +calabacín +calendario +calentar +calificaciones +callado +callejero +calorías +calzado +calzar +camino +camión +campaña +campus +canal +cancelar +cansarse +cantidad +capa +capitán +capítulo +car +características +caravana +cargo +cargos +carpeta +carrera +carreteras +carril +carrito +carro +cartel +cartelera +cartero +cartón +casco +casera +casero +casi +casilla +catálogo +católica +católico +cazador +cazo +cebra +celebraciones +celebrar +centros +centígrado +centímetros +cercrse +cereza +cero +cesta +charlar +cheques +chile +chiste +chorizo +chuleta +chándal +ciber +cibercafé +ciclismo +ciclo +ciento +cintura +cinturón +cirujano +ciudadano +clara +clasificar +clic +clima +climático +club +clásico +clínica +cobrar +cocer +coches +cocido +cocodrilo +codo +cohete +cola +colaboración +colaborar +coleccionar +colega +colgar +collar +comedia +comentario +comenzar +comerciales +comercio +comparar +compañía +competición +complementos +completo +complicado +comportamientos +compositor +compromiso +comunicación +comunicando +comunicarse +comunidad +comunista +concertado +concurso +condiciones +condimentar +conducta +conectar +conectarse +conejo +conexión +conferencia +congelador +congelados +congelar +congelarse +congreso +conocer +conseguir +conserje +conservador +conservar +consola +constitución +construcción +construir +consulado +contabilidad +contaminación +contaminado +contaminante +contar +contemporánea +contenedor +contestador +continente +continuación +continuar +contraseña +contratar +contrato +control +conversación +conviviendo +convivir +copas +copia +copiar +corazón +correcto +corregir +correspondencia +corta +cortar +cortarse +corte +cortesía +cortina +corán +coser +costilla +crear +creyente +crisis +croquetas +crucero +crucigramas +crudo +cuadros +cualidad +cualquier +cuba +cuchara +cucharada +cuchilla +cuchillo +cuero +cuerpo +cuidar +culebrón +cultivar +cultivo +cultura +cultural +cumplir +curar +cáncer +cárcel +cáscara +césped +círculo +cómoda +cónsul +da +dado +dardos +darse +datos +debate +deber +decorar +defensa +delta +demanda +democracia +demócrata +dentista +dentro +departamento +depender +deportista +deportiva +deportivos +deprimido +deprimirse +deprisa +derechas +derechos +desarrollo +desastre +desastres +descanso +descargar +descargarse +descolgar +descremada +descubrimiento +descuento +desempleo +desinstalar +desnatada +desnatado +desobedecer +despedida +despedir +despegar +despejado +destinatario +destruir +desviar +devolución +diabéticos +diagonal +diario +diarrea +dibujos +dictadura +dieta +diferencias +digital +discutir +diseñador +diseñar +disfraces +disminuir +disponibilidad +distrito +divertirse +dividir +divorcio +diálogo +dni +doblada +doctor +doctorado +documental +documento +documentos +doméstico +dormir +dos +drama +duda +dudar +dueño +dulce +duración +duro +débil +década +dólares +e +echar +echarse +ecologista +ecología +ecológico +economista +economía +económica +editorial +educado +educar +educativas +educativo +educativos +ejemplo +electricidad +electrodoméstico +elefante +elegir +elemento +eliminar +ellos +embajada +embajador +embarazada +embarque +embotellamiento +embutido +emigrante +emisora +empatar +empresas +enamorado +enamorarse +encender +enchufar +enciclopedia +encontrado +encontrar +encontrarse +encuentro +energía +enfadarse +enfermedades +enfriar +engordar +enorme +enseñanza +enseñar +entera +entidades +entonces +entrenador +entretenimiento +entrevistado +entrevistador +entrevistar +envolver +episodio +equilibrada +equilibrado +equipaje +equipo +equivocarse +escala +escalada +escalador +escaleras +escapar +escenario +escoger +escrita +escrito +escultor +escultura +ese +espacial +espacio +espacios +especial +especiales +especias +espectador +espectáculo +espectáculos +espejo +esperar +espinacas +espuma +esquema +esquíes +estabilidad +estilo +estrategias +estresado +estropeado +estudios +estupendo +estética +europa +europea +evangélica +evaporarse +evidente +evitable +exceso +exhibición +existir +experiencia +experimento +explicación +explicar +exportación +exportar +exposiciones +expresión +exteriores +extraña +extraño +exámenes +fabricación +fabricar +facturar +falta +familiares +fantástico +fatal +fauna +felicitar +feliz +femenino +fenomenal +festivo +fibra +ficción +ficha +figura +fila +filosofía +finalmente +financiero +financieros +finanzas +firma +flash +flexible +flora +florero +folio +folleto +fondo +forma +formación +formal +fotografiar +frase +frecuente +fregar +freír +frigorífico +frito +frutal +frágil +funcionar +futuro +física +físicas +físico +galería +gallina +gallo +ganadería +ganador +garantía +garbanzos +gaseoso +gasoil +gasolina +gasolinera +gastar +gay +gazpacho +general +genio +genética +geografía +geográfico +geográficos +ginecólogo +girasol +globo +gobernar +golf +golpe +gotas +gracias +grado +grados +grafía +gran +granizo +granja +gritar +grito +guardar +guardería +guardia +guisantes +guitarrista +hablador +hacerse +hecho +helicóptero +hembra +hemisferio +herida +heridas +hervido +hervir +heterosexual +hh +hidratante +hierba +hierro +higiene +hijos +hipoteca +historiador +histórica +histórico +hojas +hombros +homosexual +horas +horizontal +horno +horrible +horóscopo +hostal +huelga +huerta +hueso +huevo +humana +humanos +humedad +humor +huracán +húmedo +i +idea +ilegal +iluminar +im +imaginación +imaginar +imaginario +imperfecto +importación +imposible +imprimir +impuestos +imágenes +in +incidentes +incorporación +independencia +india +industria +inevitable +infancia +infierno +informado +informal +informar +informe +ingredientes +ingresar +inmediata +inmediatamente +inmigrante +inorgánico +inscribirse +insecto +insertar +instalaciones +instalar +instante +instituciones +intentar +intercambiar +intercambio +intereses +internacional +interés +introducir +introvertido +inventar +invento +irse +izquierdas +izquierdo +jardinería +jarra +joya +jubilarse +judías +juegos +jugador +juguetes +junto +justicia +kiwi +labios +laborable +laboral +laborales +laboratorio +ladrón +lago +lana +larga +latas +lavavajillas +legal +lenguaje +lentamente +lentejas +lesbiana +levantado +ley +león +liberal +libras +libres +licenciado +ligar +ligera +ligero +lino +llegada +llegadas +llenar +lleno +llevarse +llorar +lo +locutor +lomo +loncha +lotería +luego +lujo +luminoso +luz +lácteos +láser +lástima +línea +líquido +magdalena +malas +maleducado +maletero +malísimo +mamífero +manta +mantel +mantenerse +manzanilla +maquinilla +maravilla +marcar +marcha +marcharse +mareado +margarina +marinero +marisco +masculino +matar +materia +matricularse +matrimonio +mayores +mayoría +me +mecánicas +medicamentos +medida +medieval +medioambientales +medios +medir +mediterráneo +memoria +menor +mensajero +mercados +mercadotecnia +mesilla +meter +metálico +miel +militar +minifalda +ministerio +minoría +minusválidos +minutos +mirada +misa +mismo +mitad +mobiliario +modo +mojado +mojar +monarquía +monedas +montarse +montañero +mostaza +motos +mover +mudanza +mudanzas +muerte +multimedia +multiplicar +mundial +muralla +muñeca +márquetin +máster +médica +método +méxico +músculo +nacido +nacional +naciones +nación +nailon +nata +natación +natural +naturales +navegador +necesariamente +necesidad +negocios +ninguna +notas +noticia +novelista +novios +nublado +nublarse +nuevas +nutrición +obedecer +objetos +obligaciones +obligatoriamente +obligatorio +observar +occidental +occidente +oceania +oceanía +oculista +oculta +ocupada +ocupado +océano +oferta +oficio +ofrecer +ola +olas +oler +oliva +olor +olvidar +ong +onu +opinión +oposición +optimismo +oral +orden +ordenado +ordenar +organización +organizado +organizar +orgánico +oriental +oriente +origen +original +orilla +orina +oro +orquesta +ortodoxo +oscura +otro +oveja +oxigenada +ozono +paciencia +paciente +pacífico +pagos +paisaje +palabra +pantalla +papa +para +parapente +parar +parecer +parecerle +parecerse +parlamento +parte +partes +pasarlo +pasarse +pasarselo +paso +pastilla +pausa +países +peatones +pecho +pechuga +pedido +pegar +peinado +peine +pelar +pelota +pena +pendientes +pensar +península +perdedor +perder +perdido +perfume +periodismo +personaje +personal +personales +personas +pesada +pesado +pesca +pescador +pesimismo +peso +pianista +picante +picnic +piedra +pilas +pintado +pintarse +pintura +piragua +pisos +pista +pistola +piña +plan +plancha +planchar +planos +plantar +plantas +plata +plazas +plomo +pluscuamperfecto +población +pobres +pobreza +poema +poeta +poleo +policiaca +polo +polución +políticas +poner +popular +portarse +portero +posdata +posibilidad +posiblemente +posiciones +positiva +postura +prado +pragmáticas +precios +precioso +prehistórico +premio +prensa +preparación +preparado +presencia +presentación +presentar +preservativos +presupuesto +primero +principio +prisa +privado +probar +problemas +producción +producir +profesiones +profesorado +profundo +programación +programar +progreso +promoción +propuesto +protagonista +protección +proteger +protestante +proteínas +provincia +proyecto +pruebas +práctica +prácticas +práctico +próxima +próximo +psicólogo +publicar +publicitario +puente +puesto +pulmón +pulsar +pulsera +puntual +puntualidad +páginas +píldora +póster +público +públicos +quemadura +quemar +quemarse +quitar +química +químico +r +ración +rama +raqueta +raro +ratón +rayas +raíz +real +realidad +realista +realizan +realizar +rebajas +recado +recepcionista +recepción +recibo +reciclado +reciclaje +reciclar +recién +recoger +recordar +rectangular +rectángulo +recursos +redactar +reenviar +regar +regional +relacionadas +relacionados +relacionar +relaciones +relación +religiosa +religiosos +remitente +renovar +repente +reportaje +reproducción +reptil +republicano +república +resaca +resfriado +residencial +respetar +respirar +responsable +restar +resultado +resumen +retraso +retrato +reuniones +revisión +rezar +ricos +riqueza +risa +robar +robo +rodilla +rollo +romper +romperse +romántica +rosado +roto +rr +ruidoso +rvir +rápidamente +régimen +rústicos +saberes +sabor +sacar +sacerdote +saco +safari +salado +salchichón +saldo +saltar +salud +saludo +salvaje +san +sandalias +sangre +sanitaria +sanitarios +sano +santo +sartén +satélite +secador +secarse +sección +secretaría +seda +seguros +seleccionar +sellos +selva +semáforo +senado +sencillo +senderista +sensible +sentar +sentido +sentimiento +sentir +separación +serie +serpiente +servicio +servicios +servir +sexuales +sida +siglo +siguiente +silencio +silencioso +simple +sincero +sindicato +sintético +sistema +sitio +sociales +socialista +sociedad +socioculturales +sociología +sociólogo +solamente +soldado +soleado +solicitar +solomillo +soltar +soltera +sombrilla +sonar +sonido +soportar +soso +soñar +su +suave +subida +subirse +subrayar +subtitulada +subtítulos +sueldo +suelto +suficiente +sumar +suplemento +suponer +sustituto +símbolo +síntomas +sólido +súper +tablero +tacón +tal +tamaño +tapas +tardar +tecla +teclado +tecnologías +tele +telebasura +telenovela +tema +temperatura +templado +tender +tenedor +tercer +tercio +terminado +terminal +termómetro +terremoto +terror +terrorismo +terrorista +test +texto +teórica +tigre +tila +tinta +tipo +tipos +tirar +tirita +titulaciones +tobillo +toros +torá +total +tradicional +tradición +traductor +tranquilidad +transacciones +transbordo +transexual +transportes +tranvía +traslado +tratar +traumatismos +travieso +triangular +triángulo +tronco +trozo +tráfico +tácticas +típica +tóxico +túnel +ubir +ue +unas +unidas +universal +universo +unión +unos +urbanos +urgente +uruguay +usar +usuario +usuarios +utensilios +utilizar +vacación +vaciar +vacuna +vacío +vago +valle +vamos +varios +varón +velocidad +venezuela +venta +ventanilla +ventas +verduras +versión +vertical +vestido +veterinaria +veterinario +viajero +vicepresidente +victoria +videojuego +vidrio +vigilante +vinagre +violinista +virgen +visado +visible +vista +vitae +vitaminas +vivienda +viviendo +voleibol +voluntario +voz +vía +vías +vítae +w +yema +zapatillas +zona +zum +África +Ártico +áfrica +álbum +árbitro +ártico +éxito +órganos +últimamente +último diff --git a/lexical_minimums/B2_MINIMUM.txt b/lexical_minimums/B2_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d0929e793452b3fd6a340f861230ce9feead117 --- /dev/null +++ b/lexical_minimums/B2_MINIMUM.txt @@ -0,0 +1,2304 @@ +Administración +Antiguo +COI +Capricornio +Central +Colombia +Comercio +Comité +Constitucional +Cámara +Cáncer +ETT +Empleo +Empresa +Empresariales +Escrituras +Españoles +Evangelio +Extremo +Ferrocarriles +Filología +Hacienda +IBERIA +INEM +Instituto +Internacional +JJ +Leo +María +Mayor +Medio +Menor +Mercurio +OO +Olímpico +Osa +Perú +Plata +Próximo +RENFE +Red +Río +SN +Sagradas +Saturno +Supremo +TAC +Temporal +Testamento +Trabajo +Tribunal +Venga +Venus +X +abajo +abandonar +abiertos +aborto +abrebotellas +abrelatas +absolutamente +absorbente +absorber +abstención +abstenerse +abstracta +abstracto +absurdo +abundante +aburrimiento +aburrir +acabado +acabarse +académico +acampada +acampar +acariciar +acceso +accionista +acelerar +aceptable +acera +acertar +aclaración +acogedor +acomodador +acomplejado +acontecimiento +activa +acto +actuación +actual +actualidad +actuar +acuarela +acusado +acuse +acuática +acuático +adaptación +adaptar +adecuado +adelantado +adelantar +adentro +administrador +admiración +adolescencia +adoptiva +adoptivo +adorar +adorno +aduana +adulta +adultos +afectuosamente +afirmación +afirmar +afuera +agachado +agacharse +agente +agnóstico +agobiado +agotar +agotarse +agradecimiento +agresividad +agresión +agridulce +agrio +agrícola +aguantar +agudo +aguja +agurar +ahorrar +ahorro +ahorros +aislado +ajardinada +ajena +ajustado +alarma +alas +albahaca +albañilería +albergue +albornoz +alcanzar +alegría +alejado +alejar +alfiler +alga +alguna +aliado +alianza +alimenticio +alivio +alma +almacén +almeja +almendras +alojarse +alpinismo +alrededor +alrededores +altavoz +altitud +altura +alumnos +alzarse +alérgica +amanecer +amante +amar +amarilla +amarillentos +ambicioso +ambición +ambulatorio +amenaza +amenazar +amistosa +amorosa +ampliación +ampliar +amplio +analgésico +analizar +analógica +analógico +anarquía +anchura +anestesiar +anestesista +angustia +animado +anochecer +anorak +anormal +ansiedad +ante +anterior +anteriormente +anticiclón +anticipada +anticipo +antiguamente +antiguos +antiinflamatorio +anual +anualmente +anunciar +anécdota +apagarse +aparato +aparcado +aparejador +aparentar +aparentemente +apartar +apasionado +apenado +apetito +aplaudir +aplauso +aplicar +apostar +apoyar +apoyo +apretado +apretar +apropiado +aprovechar +aproximada +aproximado +aproximar +apta +apto +apuesta +apuntarse +apurar +apurarse +aquellos +arañar +arbusto +arco +arcoíris +argumento +armada +armas +armoniosamente +armonía +aroma +arquitectónico +arrancar +arrastrar +arreglo +arrogancia +arruga +arrugado +arrugas +arteria +artes +articulación +artificial +artificiales +artística +asada +ascender +ascenso +asco +asegurado +asegurar +asesinar +asesinato +asistente +asistir +aspecto +asqueroso +astrología +astronomía +astrónomo +asunto +asustarse +atacar +ataque +atardecer +atención +atentamente +atentar +atento +ateísmo +atraco +atractivo +atravesar +atómicos +audición +audioconferencia +audiovisual +aumento +ausencia +ausente +autoevaluación +autonómicas +autor +autoservicio +autovía +autóctona +autónomo +avance +avanzar +avellanas +avergonzado +avergonzarse +averiarse +avisar +aviso +ayunar +azar +añadir +aún +bacalao +bache +bala +balneario +bancaria +banda +bandera +banquete +barajar +barbilla +barman +barrancos +barril +barro +barroca +barroco +basarse +base +basuras +basurero +bata +batalla +batidora +bautizo +bañado +belleza +bendecir +beneficioso +besos +bilingüe +biológico +biomasa +biosfera +bisabuelo +blancos +bloquearse +bodas +bol +bollería +bombilla +bor +borrador +borrar +borrasca +bostezar +botiquín +botón +brasa +bravo +breve +brillante +brillar +brindar +brindis +bronce +bronquitis +brotar +brusco +budismo +buenos +bufé +buhardilla +bungaló +butaca +buzoneo +básica +básicamente +básico +básicos +cabaña +cable +cabo +cabra +cacharro +cada +cadáver +calcio +calcular +calidad +calles +calmante +calurosamente +caluroso +calzador +camilla +camisón +campeonato +campesino +campeón +cana +candidato +canicas +cansancio +capacidad +capaz +capricornio +caracterizarse +característica +característico +caramelo +carbón +carga +cargar +cariño +carnívora +carpintería +carreras +carrete +cartucho +cartulina +cascada +castigado +casualidad +casualmente +catarro +catedrático +categoría +catolicismo +catástrofe +caudal +caza +cazuela +caída +cañón +ceda +ceder +ceguera +ceja +celebración +celo +cemento +censura +cera +cercano +cercanías +cercno +cercr +cerebro +ceremonia +cerrados +certeza +certificada +certificar +cerámica +cesárea +chaleco +chaparrón +chequeo +chocar +chorro +chupar +chárter +cicatriz +ciclopedia +ciego +científica +cierta +cierto +cifra +cinematográfico +circular +cirugía +citar +ciudadana +claramente +claridad +clarinete +clasicismo +clasificarse +clavados +claxon +clientela +clip +cláusula +cm +coartada +cobarde +cobardía +cobre +cobro +cohetes +coi +coincidencia +coincidir +colchoneta +coleccionista +colectivo +colesterol +colgante +colina +colocado +colocar +colombia +colorado +colorante +colorantes +colores +colorete +colorido +columna +columpios +coma +comarcal +comba +combinar +comedor +comentar +comercialización +comerciante +comerco +comestible +cometa +comible +comienzo +comisario +comisiones +comisión +comité +compartimento +compasión +competencia +competente +complejidad +complejo +completamente +complicar +componer +componerse +comportamiento +comportarse +comprado +comprensivo +comprensión +comprobar +compuesto +compás +comulgar +comunicar +comunismo +comunitario +comunión +común +conceder +conciertos +concluir +conclusiones +conclusión +concretamente +concretar +concreto +condenar +condensada +conferenciante +confesar +confesarse +confianza +confidencial +configuración +configurar +confirmar +conflictivo +confundirse +congelado +conjunto +conmemorar +conocida +conocimiento +consciente +conservantes +conservarse +considerar +consigna +consistencia +consistir +constancia +constante +constantemente +constelación +constitucional +constitucionales +constructor +constructora +consulta +consultorio +consumidor +consumir +consumo +contacto +contado +contagiar +contagiosa +contemporáneo +contener +contenido +continental +continua +continuamente +continuo +contra +contrabajo +contractura +contraindicaciones +contraindicado +contratado +convencido +convenio +convertirse +convivencia +convocar +cooperación +cooperar +coordinar +corcho +cordialmente +cordillera +coreografía +corona +corral +corrección +correctamente +corresponsal +corriente +cortaúñas +cosecha +cosido +cosmética +cosméticos +costero +cotidiano +cotización +cotizar +creación +creatividad +creativo +crecimiento +creerse +cremallera +criminal +criminales +criminalista +cristalería +cristianismo +criticar +cruce +créditos +crítica +crítico +crónica +cuadriculado +cualificado +cuatrimestral +cuatro +cubismo +cubista +cubo +cubrir +cuenco +cuidado +cuidarse +culpable +cura +curativo +curiosidad +curioso +cursor +curva +curvo +cuánto +cuñado +cálculo +cálido +célula +cíclico +cóctel +cónyuge +dados +danza +dato +debatir +debilidad +decaído +decimal +declaración +declarar +decorado +dedos +deducir +defender +defensor +defido +definido +definir +delantal +delantero +delegado +delicada +delicadeza +delicado +delicioso +delincuente +delincuentes +delito +democrático +demostrar +densidad +denso +dental +denuncia +denunciar +deo +deportivas +deportivo +depresión +desaparición +desarrollar +descenso +describir +desempleado +desempleados +desertización +desfile +deshojar +desigual +desmayo +desocupado +despedido +despedirse +despido +despierto +destacar +destino +destornillador +desértico +detalle +detener +detergente +determinado +detestar +deuda +devorar +diabetes +diagnosticar +diagnóstico +diapositiva +diaria +diariamente +dictador +didáctico +dietas +dietético +dificultad +difícilmente +digerir +digestión +dimensiones +dinamismo +diplomatura +diplomático +diputado +directa +directivo +directo +dirigir +dis +discapacitadas +disco +discreto +discriminación +discriminatorio +discurso +disfrazarse +disfrutar +disgustado +disminución +disparar +disponible +dispuesto +distanciar +distinguir +distraído +distribución +distribuir +do +doblado +doblar +doctoral +doctorarse +dolido +domiciliar +domiciliaria +domicilio +dominar +donde +dorada +dorado +dorar +dormido +dosis +drogas +dudas +dudoso +dulces +duplicar +dureza +dársele +dócil +dúplex +eclipse +eco +ecografía +ecológica +económicos +ecosistema +ecuador +ecuatorial +edición +edificación +editar +editor +educarse +efecto +efectos +eflexionar +egoísmo +eje +ejercer +elaboración +elasticidad +elecciones +electorado +electoral +electricista +elegante +elemental +elevados +eliminatoria +elástico +eléctrico +embarazo +embarcar +emborracharse +emigración +emisión +emoción +empanar +empapado +empapar +empaquetar +empaste +empate +emplear +empleo +empresariales +empujar +enano +encantador +enchufe +encoger +enemigo +energético +energías +enfado +enfocar +enfrentarse +enlace +enmarcar +enredarse +ensaimada +ensaladera +enseguida +ensuciar +enterarse +enterrar +entrega +entregar +entrenamiento +entrenar +entretanto +entretenerse +entretenido +envejecer +enviado +envidia +envío +epiléptico +equilibrio +equivocación +equivocado +es +escalar +escalas +escalofríos +escaparates +escasa +escaso +escayola +escayolar +escena +escenificar +escoba +escolar +esconder +escondido +escondite +escritorio +escrituras +escultórico +escupir +escáner +escénicas +esencia +esencial +esencialmente +esguince +espacioso +espada +espaldas +espantoso +esparadrapo +españoles +especialidad +especialista +especializado +especialmente +especie +espeso +espesor +espíritu +esqueleto +estable +establecer +establecimiento +estadio +estadística +estampado +estatal +estatura +estival +estornudar +estos +estrenar +estreno +estresarse +estropearse +estrés +estudioso +etapa +etiqueta +ett +evaluación +evangelio +evaporación +evaporar +evidencia +evidentemente +evolucionar +evolución +exacta +exacto +examinarse +excelente +excepción +excesivamente +exclusivo +expediente +experimentar +experto +expiración +explotación +exponer +exponerse +expresionista +exprimidor +exprimir +exquisito +exteror +extinción +extinguir +extra +extranjera +extraoficial +extraviar +extremo +exótica +exótico +eólica +fa +fabada +fabricado +fachada +facilidad +facilitar +fallar +fallecer +fallo +falsificación +faltar +fama +familiar +fan +fantasía +faringitis +farola +fascinado +fascismo +fase +fe +fecundación +felicidad +feria +feroz +ferrocarriles +ferry +festival +fiable +ficticio +fidelidad +fija +fijador +fijarse +filología +filosófico +filósofo +fina +finales +finalizar +financiación +financiera +finca +fino +finos +firme +fiscal +flexibilidad +flojo +florecer +flotador +fluidez +fluido +fluorescente +fontanería +forestal +formado +formar +formarse +formulación +formular +fracasar +fragilidad +frambuesa +frecuencia +frecuentemente +fregona +freidora +frenar +frenos +frente +fresco +frontera +fruto +frutos +fría +fuego +fuegos +fuente +fuerzas +funcional +funcionamiento +función +fundación +fundamental +fundamentalmente +fundar +funeral +furioso +fusil +futurista +fácilmente +galaxia +ganadero +ganado +ganancias +ganas +gargantilla +gasa +gastarse +gasto +gastos +generación +generales +generalizar +generalmente +generosidad +genial +genérico +genético +geometría +geométrica +gestión +gesto +gigante +ginecológica +giro +golfo +gomina +gota +grabación +grabar +graduadas +graduado +granizar +grano +granos +grapa +grapadora +graso +gratis +gratuita +grave +grifo +gritos +grosella +gruesa +grueso +gruesos +grúa +guardado +guardarropa +guiar +guionista +guirnalda +guisada +gusto +gótico +habilidad +habitantes +habitual +habitualmente +hacia +hacienda +hallarse +hambriento +hamburguesería +hecha +hectárea +helada +helar +heredar +hereditaria +hidratación +hidratarse +hidro +hidromasaje +hilo +himno +hinduismo +hipocresía +hipotético +hipótesis +histérico +hogar +homeopático +homologado +honradamente +horizonte +horroroso +hospitalizar +huella +huerto +huir +humedecer +humilde +huérfano +hábito +hígado +iberia +ideológico +idénticos +ignorado +igualdad +iluminación +iluminado +ilusionado +ilusionarse +ilusión +imaginarse +imitar +impacto +impar +impermeabilizar +importancia +imprescindible +impresionista +imprudencia +imán +inauguración +inaugurar +incendiar +incendios +incertidumbre +incinerar +inconsciente +incorporarse +increíblemente +indecisión +indefinida +indefinidamente +indemnización +independiente +indicar +indigesto +indignado +indirecta +inem +inestable +inevitablemente +inexistente +infarto +inferioridad +influencia +informativos +ingenio +ingreso +ingresos +iniciación +inicial +inicialmente +iniciar +inicio +injusta +injusto +inmenso +inmigración +inmigrantes +inmobiliaria +inmortal +inocente +insistir +insoportable +inspeccionar +inspección +inspector +inspiración +instalación +instalado +insular +insípido +integración +integral +integrar +intelectual +inteligencia +intensivo +intenso +inter +interino +interminable +intermitente +interpretación +interpretar +interprovincial +interrogar +interruptor +interurbana +interurbano +intestino +introducción +inundación +inundado +inundar +invención +inventarse +invernadero +invernal +inversión +inversor +invertir +investigación +investigador +investigar +invitado +inyección +inútil +irle +irreal +irregular +islamismo +itinerario +jacuzzi +jardinera +jardines +jarrón +jj +jornada +jubilación +judicial +juerga +juicio +juntar +jurado +juro +justa +justo +juvenil +juventud +laboralista +laca +lados +ladrillo +laguna +laica +laico +lamentar +langosta +langostino +lanzamiento +lanzar +largometraje +laringólogo +legislativo +legumbres +lejano +lejno +lenguado +lenta +lentillas +lentitud +leo +lesión +levadura +leve +leyenda +libertad +licenciarse +licenciatura +licor +liga +ligue +lima +limarse +limitar +limpia +limpiadora +limpieza +limón +linterna +listo +literario +litoral +llanura +llena +lluvioso +lmtado +local +locales +localización +loco +lograr +longitud +lubina +luchar +lujoso +luminosidad +lágrima +líder +límite +líneas +lío +lógico +macedonia +maceta +madrugada +madrugar +madurar +madurez +maduro +maestro +mafia +magnífico +magro +malestar +malos +mamar +mancha +manchar +manchas +manejar +manera +maneras +manso +mantener +manual +manía +maquillaje +maquillarse +maravilloso +marea +marearse +maremoto +mareos +marginación +marino +marxismo +maría +masaje +mascota +masticar +mate +matemática +matemático +maternidad +maximizar +mayoritaria +maíz +medalla +mediados +medianoche +medicinal +medioambiental +mejilla +mejillón +mejorar +melena +mellizos +menores +mensajería +menstruación +mensual +mensualmente +mental +mentalmente +mentira +mercancía +mercancías +mercurio +merengue +mesita +meta +metafísico +meteorológico +metraje +mezcla +mezclar +microscopio +mide +miembro +mientras +miga +milagro +millar +milímetro +minimizar +minoritaria +moda +modales +modelo +moderadamente +modernista +modificación +modificar +molde +molestias +molécula +monitor +monja +mono +monoteísta +monte +montón +monumental +monólogo +mora +mortalidad +mostrar +motivación +motivado +movimiento +mudarse +mudo +muestra +multa +multicolor +multitud +municipales +muscular +muslos +máquina +mármol +máxima +máximo +mínima +mínimo +módem +nacionalista +narración +narrador +narrar +natalidad +nave +negación +negar +negociar +negra +nervio +neumonía +neurona +nevada +ni +nitrógeno +nivel +niñez +noble +nocturna +normalidad +notable +noticias +nternaconal +nteror +nuclear +nudista +nueces +nuera +nuevamente +nulo +numerosa +nupcial +nutritiva +nutritivo +náuseas +nómina +objetivo +objeto +obligatoria +obras +observación +obtener +ocasionar +ocasiones +ocio +oculto +ocupación +ocupar +ocurrir +ocurrírsele +odio +oficial +olfato +olimpiada +olla +olvido +olímpico +olímpicos +onda +oo +operar +opinar +optativo +oralmente +ordinal +ordinario +organizada +orgullo +orientación +orientado +originalidad +orégano +osa +oscuridad +otorrino +otoñal +otras +oxígeno +oyente +padecer +paga +pago +pala +palabras +palas +palmera +pana +pancarta +pantano +papelera +papeleta +par +parado +parador +paraíso +parcial +parlamentario +participación +participar +particular +particularmente +partida +partir +parto +parálisis +pasadas +pasajero +pasajeros +pasatiempo +pasatiempos +pastelera +pasárselo +patada +paternidad +patio +pavo +peaje +peatón +pecado +pecador +pecar +pechugas +pediatra +pegatina +pelearse +peligro +peligroso +peludo +penal +pendiente +peninsular +penitencia +pensamiento +pensativo +percha +perderse +perdón +perezoso +perfeccionamiento +perfeccionista +perfección +perfectamente +perfil +perfumado +periferia +periodo +periodístico +periódica +periódicamente +periódicos +perjudicial +perla +permanente +permiso +personalidad +personalmente +perspectiva +pertenecer +perú +pesarse +pesquero +pestaña +petición +petróleo +picadora +picar +pictórico +piernas +pieza +pilotar +pilpil +pinchar +pinchazo +pincho +pirámide +placer +plana +plantear +plantilla +plastificado +plastificar +plateado +plazo +plazos +plumas +plásticas +pna +poblada +poca +poderes +podrido +polen +politeísta +poliéster +polvo +pomada +porcentaje +porción +portada +portería +posición +posterior +posteriormente +potable +practicante +preadolescencia +precisión +preexcombatiente +preferente +preguntarse +preocuparse +presencial +preservar +presión +prestación +prestar +prevenir +previamente +previsión +previsto +primaria +primarios +primaveral +primeros +principal +principalmente +principios +privada +probabilidad +probeta +problema +procedencia +proceder +procesador +procesión +proceso +producirse +productor +productos +profesional +profesionalidad +profesores +profunda +profundidad +progresar +progresista +prohibida +prohibido +prohibir +promesa +prometido +propaganda +propia +propiedad +propio +proponer +proporcional +proporcionalmente +proporción +propuesta +prosa +prospecto +prostitución +protegerse +protegida +protegido +protestantismo +proveedor +provincial +provocar +proximrse +proyectar +prudente +prueba +préstamo +próximamente +publicación +publicitaria +pudrirse +puertas +puesta +puestos +punta +puntos +puntualmente +pureza +purgatorio +puzle +puñetazo +pálido +pánico +párroco +pérdidas +pétalo +quieto +quincenal +quinielas +quirófano +rabino +radiación +radiactivos +radiofónica +radiofónico +radiografía +rallado +rallar +ramillete +rapidez +rascarse +rastrillo +rayos +razonable +razonamiento +razonar +razón +re +reacción +realmente +rebaja +rebajado +rebeldía +rebozar +recalentar +recetar +reciente +recientemente +recipiente +recitar +reclamaciones +reclamación +recogedor +recogerse +recogida +recomendación +recomendada +recorrer +recorrido +recortarse +recrear +recreo +recta +rector +recuerdo +redactor +reducir +reembolso +referencias +referéndum +reflexionar +reflexivo +reflexión +reforma +reformar +refresco +registrar +registrarse +reglas +regulares +reivindicar +relacionarse +relajante +relatar +relato +religioso +relámpago +renfe +renta +repartidor +repartir +reparto +repetidamente +repetitivo +reponer +reportero +representación +representante +representar +representativa +repuesto +residencia +residuos +resignado +resignarse +resistencia +resistente +resistir +resolver +respeto +responsabilidad +resultar +resumir +retirado +retirar +retirarse +retrasar +retrasarse +retroceder +retroproyector +revelar +revertido +revisar +revolución +revés +reñir +rica +ridículo +riesgo +riesgos +rigidez +rimar +ritmo +riñón +robot +rocoso +rodar +rodillas +romance +romanticismo +romero +rompecabezas +románico +rotonda +rotulador +rumor +rural +ruta +rutina +rutinario +rígido +rímel +rítmico +sabroso +sabático +sacacorchos +sacrificio +sagradas +salario +sales +salirle +salirse +saliva +salmonete +saltarse +salto +saludar +sanatorio +sanos +satisfecho +saturno +satánica +sauna +savia +saxofón +sceridad +seca +secos +secta +sector +secuencia +secuestrador +secuestrar +secuestro +secundaria +secundario +secundarios +sedentario +seducir +seguidamente +segundos +selección +semanal +semanalmente +sembrar +semi +semilla +seminario +senador +sensibilidad +sentencia +sentimental +sequía +seriedad +servidor +sesión +seta +señal +señalar +si +siderúrgica +siglos +signo +silbar +silvestre +simplicidad +simulación +simultáneamente +simultáneo +sinceramente +sinfonía +sirena +situación +situado +sn +sobrar +sobresaliente +sobrevivir +socialismo +socios +solar +solemne +solicitud +solidaridad +solidario +solidez +solución +sombra +sonora +sopera +soplar +sorbete +sordo +sorprendente +sorprender +sorprenderse +sorprendido +sospechoso +sostenible +suavizante +sub +subdirector +subjetivo +subjuntivo +submarino +subsidio +subtítulo +suceder +suceso +sucia +suciedad +sudar +sudor +suegro +sufrir +sugerencia +sugerir +suite +sujetar +superar +superficial +superficie +superior +superiores +superioridad +superpoblación +supletoria +supositorio +supremo +supuesto +surrealista +susceptible +suscribirse +sustantivo +síntesis +síntoma +tabla +tac +tacaño +tacos +tacto +talar +taller +talonario +tanque +tanto +tapear +tapón +taquilla +tarea +tarifa +tatarabuelo +tazón +teatral +tecnológico +teleadicto +telefonear +telegrama +telegráfico +telespectador +televisivo +temblor +temor +temperamento +temporada +temático +tendón +tenedores +tensión +tenso +tenue +teoría +terapéutico +ternura +terrestre +terrible +territorial +tesis +testamento +testigo +textil +textos +textualmente +textura +teñido +teñir +tiempos +tiene +tierno +tijeras +timbre +timidez +tinte +tirarse +tirón +titular +titularse +tobogán +tocarle +tolerancia +toma +tomillo +tonelada +tono +tontería +torcerse +torta +totalitario +totalmente +trabajadora +trabajadores +tractor +tragar +tragedia +tragicomedia +trampas +transferencia +transformación +transformar +transfusión +transgénicos +transmitir +transparencia +transparente +transpiración +transpirar +transportar +trapo +trasero +trasladar +trasladarse +trasplantar +tratado +tratamiento +tratos +traumatólogo +través +trayecto +trepadora +tres +tribu +tribunal +trigo +trillizos +trimestral +triplicar +tripulación +tristeza +triunfar +triunfo +trocear +trofeo +trompeta +tropezar +tropical +trozos +trueno +trópico +tumba +tumbado +tumbarse +turno +tutear +tutor +técnica +técnico +tóxicos +tú +unass +unido +unir +universitario +universitarios +uno +urbana +urbanización +urbano +urgencia +urna +usado +uso +usted +uña +uñas +vacacional +vacante +vacunarse +vagón +valentía +validez +valor +vapor +variable +vecindario +vecinos +vejez +vela +vencer +venda +vendar +venenosa +venga +venus +veraniego +verbo +veremos +verlo +vernal +verso +vestuario +vestíbulo +vicio +videoconferencia +vigilancia +violación +violencia +violonchelo +virtual +visión +vistazo +voces +volador +volcánico +volumen +volverse +vomitar +votante +votar +voto +vueltas +válido +víctima +víspera +vísperas +vóley +x +yerno +zapear +zodiaco +zonas +ágil +álgebra +ángulo +ánimos +área +áspero +ático +átomo +época +étnica +índice +íntimo +óleo +óptica +óptico +óptimas +última +únicamente diff --git a/lexical_minimums/C1_MINIMUM.txt b/lexical_minimums/C1_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..93fbfcd6b1b2ae749c632eb3c6d1803d04f41fd8 --- /dev/null +++ b/lexical_minimums/C1_MINIMUM.txt @@ -0,0 +1,2897 @@ +A +ADN +ATS +AVE +Adelante +Ambiente +Anda +Anónima +Arte +Artes +Ayudante +Añadido +BM +Banco +Bellas +CE +Consejero +Consejería +Consejo +Consumidor +Defensor +Dramático +Estados +FMI +Fondo +Físicas +IRPF +Iberoamericanos +Impuesto +L +Limitada +Lo +Monetario +Mundial +OEI +OTAN +PVP +Personas +Pueblo +Renta +S +Salud +Sanitario +Sociedad +Tratado +Técnico +UCI +UVI +Valor +Y +aar +abandonados +abarrotado +abarrotar +abatido +abdominal +abiertamente +ablandar +abolir +abominable +abonado +abonar +abonarse +aborrecer +aborrecible +aborrecibleabominablerepugnante +abrecartas +abrumador +abrupta +absoluta +absorción +abstemio +abundancia +abundantemente +abundar +abusar +abusivo +acabable +acabados +acaban +académica +accesibilidad +accesible +accidentado +aceitoso +aceleración +acelerado +acelerador +acelgas +aceptación +acercamiento +acidez +acierto +ación +aclarar +acoger +acogida +acondicionar +acortar +acoso +acreditado +acreditar +actas +actualización +actualizar +acudir +acumularse +acusar +acústica +adecuación +adecuarse +adefesio +adelantamiento +adelante +adelanto +adentrar +adherente +adhesivo +adhesión +adicional +adiestrado +adjudicar +administrativa +admirable +admirado +admirador +admisible +admitir +adn +adosado +adquirido +adquirir +adquisición +adulterar +adverbio +adversario +adversidades +advertencia +advertencias +aerosol +aerosoles +afectado +afectar +afecto +afiliarse +afluente +africano +afrontar +afrutado +afán +agarrado +agilizar +agitación +agitado +agitar +agobiante +agobiarse +agobio +agosto +agotable +agradar +agradecido +agrandar +agravarse +agresivo +agrupación +agruparse +aguafiestas +aguanieve +aguantarse +aguas +aguda +agudaprofunda +agudizarse +aguileña +ahumado +aires +aislamiento +aislar +aislarse +ajustarse +ajuste +alabar +alargado +alargar +alarmantes +alcance +alcantarilla +alcantarillado +alcoholemia +alcohólica +alcohólico +aldea +alejamiento +alistarse +aliviar +almohada +almohadilla +altar +altas +alterable +alteración +alterar +alternativamente +altruismo +altruista +alubias +alucinaciones +alucinación +alucinante +alucinar +alumbrado +alza +alzar +alérgico +amargor +amargura +amateur +ambientes +ambiguo +ambigüedad +ameno +amoldarse +amorodio +amortizar +anagrama +anda +andadas +andamio +anecdótico +anemia +anfitrión +angular +anillas +animada +anorexia +anormalidad +antecedente +antecedentes +antecesor +antefirma +antelación +antemano +antena +antepasado +antepasados +antepenúltimo +anterioridad +anticaspa +anticelulítica +anticipación +anticipadamente +anticipado +anticipar +anticuado +antiestético +antigüedad +antiniebla +antipersona +antipiojos +antológica +anunciante +anónima +apagada +aparearse +aparente +aparición +apariencia +aparte +apartotel +apasionamiento +apasionante +apenas +apertura +apestar +apestoso +apetitoso +aplastado +aplastante +aplastar +aplazamiento +aplazar +aplicación +aportar +apoteósico +apoyado +apreciación +apreciar +aprendiz +apretón +aprobación +aprovechable +aproximación +aptitud +apuesto +apuntar +arcadas +arcaico +archivador +arcén +arder +ardor +arenoso +argumentación +aristocracia +aristócrata +arma +armarse +armonioso +aromático +arquear +arrastre +arrepentirse +arresto +arriesgada +arrojar +arrugada +arrugar +arruinado +arruinarse +artefacto +arzobispo +as +asalariado +asaltar +asalto +ascuas +asearse +asequible +asesoramiento +asfixiante +asientos +asilo +asimilar +asistida +asociar +asociarse +asombrarse +asombroso +aspiraciones +aspiración +aspirante +aspirar +asterisco +astro +astuto +asumir +atajar +atajo +atar +atenerse +aterrizaje +atmosférica +atontado +atracción +atracón +atraer +atraso +atravesado +atrayente +atraído +atrevido +atrás +ats +atómica +audiencia +auditivo +auditorio +auge +auricular +aurora +ausentarse +austera +austeridad +austero +automática +automóvil +autonómico +auxilio +aval +avería +aves +avestruz +aviador +avioneta +añadido +baba +bahía +bailaor +bailes +bajas +balada +balance +balancearse +balde +bancario +banquero +barata +barbaridad +barnizado +barnizar +basto +bautismal +bautismo +bayeta +baza +beato +becario +bellas +bendita +bendito +beneficio +beneficios +bestia +bicho +bicicletas +bienes +bimensual +biodiversidad +biológica +biotecnología +bisnieto +blanca +blanquear +bm +bocajarro +boceto +bochorno +bolsas +bolsillo +bombardear +bonificación +bordado +borrajas +borrosa +borroso +bosques +bosquesreforestar +botánica +botánico +bovino +bozal +bravas +braza +brecha +brillo +brisa +británica +bruscos +bruto +brutos +brújula +bucal +buenasmalas +buitre +bulto +burguesía +burgués +burlar +burro +butacas +butacasasientos +bélico +cabalgar +caballero +cabe +cabecera +cabello +cachorro +cadenas +cadera +caduca +caducacaducifilio +caducar +caducidad +caducifilio +cae +caerle +cajas +calabazas +calar +calentarse +calificación +calificar +callada +callando +callejón +calumnia +camada +camarote +cambiante +cambios +camillero +camioneta +campanas +campestre +cancelación +canoa +canon +canoso +cantimplora +capacitado +capacitar +capilla +captar +captura +capturar +caracol +caradura +cardenal +carecer +carencia +cariñosamente +carnela +carnosos +carnívoro +carretero +carretilla +carrocería +cartearse +cartílago +caso +caspa +castañas +castillos +casual +cata +catar +catarata +catastrófico +cauce +caucho +caudaloso +causar +cayendo +caído +caótico +ce +cebollas +cejas +celular +centenario +centollo +centralita +centralizar +centrar +centrifugado +centrifugar +cercanía +cerrársele +certamen +certidumbre +cesar +cese +ceñido +ceño +chabola +chapa +chapista +chaqueta +charla +charlatán +chata +chaval +chichón +chillar +chillido +chillona +chillón +chimenea +chiringuito +chirlas +chita +chorrear +choza +chucherías +chupado +chuparse +chuzos +ciberespacio +cicatrizar +ciega +científicamente +cierre +ciertamente +cigala +cigüeña +cima +circulatorio +circunferencia +circunstancia +circunstancial +circunstancias +cisterna +civilizadamente +clan +clasificado +claustro +clausura +clausurar +clavo +clínicos +cobertura +coco +codearse +codorniz +codos +coherencia +coherente +coja +col +colador +colchón +colchóncolchoneta +colectiva +coleta +colgado +colocación +colocarse +colon +colonial +coloración +colorear +columpiar +comandante +comarca +combate +combatir +combustible +comercializar +comerciar +comilón +compacto +compadecer +comparación +comparecer +compatible +competidor +competir +complementaria +complicarse +composición +compostura +compraventa +comprensible +comprimido +comprimir +comprobardemostrar +comúnhabitual +concebir +concejal +concentrarse +concepto +conceptual +conciencia +concluyente +concurrida +concursar +condado +condena +condenarse +confesionario +confesión +confidencia +conflicto +conformarse +confortable +confrontación +confusión +confuso +conjunta +conmemoración +conmemorativo +conmovedora +conocido +conocimientos +conquista +conquistar +conrvar +consejero +consejería +consejo +consenso +consentimiento +consentir +conserva +conservatorio +considerable +considerado +constar +constituido +constituir +contagio +contemplar +continuado +contorno +contrabandista +contrabando +contracorriente +contradecir +contradictorio +contraer +contraria +contrario +contrastar +contraste +contratista +contraventana +contribuyente +convalecencia +convalidar +convencional +conveniencia +conveniente +convento +conventomonasterio +conversar +conversión +convertible +convicción +convincente +copiloto +copo +coraje +cordial +cordialidad +cordura +coro +coronilla +corporal +corpulencia +corpulento +correa +corrector +corriendo +corrupción +corteza +cortés +cosas +cosechar +costal +coste +costear +costoso +creativa +creces +creciente +creencias +creíble +crimen +criterio +crol +cromosoma +cronológico +cronometrar +croquis +crucial +crucifijo +cruzado +cruzarse +cráneo +cría +crío +crónico +cuadra +cuadrada +cual +cuarentón +cuarteto +cuartos +cubero +cubertería +cubierto +cubrirse +cucharilla +cucharón +cuentas +cuerda +cuervo +cuestionable +culata +culo +cultivos +cumplirse +cuota +curación +curarse +cursar +cursillo +curvado +cutis +cápsula +cívico +cólico +córnea +cúbica +cúbico +dadas +dama +darle +daño +daños +debe +debidamente +debido +debut +debutar +decanato +decano +decisiva +decisivo +declaraciones +declarante +decolorar +decorativa +dedicatoria +dedillo +defecto +defectuoso +deficiente +deflación +deformar +degenerar +dejarle +dejarse +delantera +delegación +delegar +delicados +delirar +demora +dencadenar +denegar +denominación +densa +densavegetación +dependencia +depilarse +depilatoria +depreciarse +depuradora +deriva +dermatología +derogar +derrapar +derrape +derretir +derribar +derrota +derrotado +derrotar +derruir +derrumbarse +desactivar +desafiar +desagradable +desagradar +desanimarse +desapercibido +desaprovechar +desarmar +desastroso +desbordar +desbordarse +descapotable +descarga +descender +descendiente +descifrar +descomponer +descomponerse +desconfianza +desconocido +desconocimiento +descontado +descontar +descorchar +descortesía +descuentos +descuidado +descuido +desembocadura +desembocar +desembolsar +desempeñar +desenfadado +desenfocada +desenfrenada +desenlace +desertar +desfilar +desgarradora +desierta +desinfección +desinfectar +deslizar +deslizarse +desmayarse +desolado +desolador +despertar +despistado +despistarse +despiste +desplazado +desplazamiento +desplazar +desplazarse +despoblada +despreciar +desprender +destempladas +desteñido +desteñir +destitución +destituir +desvanecerse +desvelar +desvío +detallista +detectar +detención +deterioro +determado +devaluación +devaluarse +devoto +di +diablo +dialogar +diamante +diapositivas +dicho +dictar +didáctica +diferenciar +dificultades +dificultar +difundir +difunto +difusión +digestivo +dilema +diligencia +diluvia +diluviar +dimensión +dimisión +dimitir +dinastía +diplomáticamente +directiva +discapacitados +disciplina +discreción +discriminar +disculpar +discípulo +diseño +disimular +disolverse +dispararse +disparate +disponer +disposición +dispositivo +disputar +distanciado +distancias +distante +distender +distinguido +distracción +distraerse +diurético +diversidad +diversión +divino +divorciola +divulgación +diámetro +dobladillo +doblaje +docente +doctrina +dominio +doméstica +domésticas +don +donaptitudes +donar +dormirse +dorso +dosificar +dotado +dramático +dudosa +dulzor +dulzón +duradera +duradero +dárselas +débiles +décimo +dúo +ebrio +eca +echado +echarle +echarlo +echo +económico +ecuación +edificar +edil +educador +educativa +edulcorantes +efectuar +eficacia +eficaz +eficiente +efusivamente +ejecutar +ejecutiva +ejecutivo +ejemplar +ejemplarmodélicoexquisitointachable +electo +elevada +elevar +elipse +elogiar +embarcadero +embestir +embrague +emigrantes +emitir +empalagoso +empalagosodulzón +empapelado +empapelar +empedernido +empequeñecer +empinado +empinar +emplearse +empollar +empollón +emprendedor +emprender +empresarial +empresarios +empíricamente +encabezamiento +encaminar +encargado +encerrado +encharcado +encharcar +encoge +encogerse +encontrarsesentirseestar +endeudamiento +endeudarse +enemistad +energúmeno +enfervorizado +enfrentamiento +enfrentarseoponerse +enfriarse +enfrió +engaño +engañoso +enhorabuena +enjabonar +enjabonarse +enjuagarse +enlatado +enorgullecerse +enrojecer +ensanchar +ensayar +ensayo +ensordecedor +entidad +entierro +entorno +entrante +entrarle +entrañable +entregado +entregarse +entremés +entrenado +entristecerse +enumerar +envasado +envejecimiento +envidiar +enviudar +epidemia +equilibrar +equipamiento +equipos +equitativo +era +erre +erupción +esbozo +escapada +escarpada +escasamente +escasear +escayolayeso +escocer +escolaridad +escotado +escribirse +escritura +escrúpulos +esculpir +escurridor +escurrir +eslogan +esmeralda +eso +especializada +especificar +espectacular +específicamente +específico +espermatozoide +espesa +espesar +espiar +espinillas +espiral +espirar +espiritual +esplds +espléndido +esponjosidad +esponjoso +espontáneo +esporádica +esposo +espumoso +esquelético +estabilizar +establecido +establo +estacada +estacionamiento +estados +estallar +estancia +estante +estimulante +estirado +estirar +estor +estorbo +estrategia +estrechar +estrellado +estremecerse +estribos +estridente +estropajo +estropear +estructura +están +estándar +estático +estéril +eternamente +eternidad +eterno +eufórico +evacuar +evaluar +evidentes +evoluciona +exactitud +exagerado +examinar +excedencia +excepcional +excepcionalmente +excesivo +exclamar +excluir +exclusiva +exhaustivo +existencia +existente +expandirse +expansión +expedir +experimentado +explosivo +explotar +exportador +expulsar +expulsión +exquisitos +exquisitosdelicados +extender +extenderse +extendido +extensa +extenso +externa +extingue +extinguirse +extorsión +extracto +extraer +extraordinario +extrema +extremaunción +exuberante +fabricante +facturación +fallecido +fallecimiento +falsa +falsificar +fanatismo +faro +fascinación +fascinante +fascinar +fastidiar +fastidiarse +fastidio +fatigado +fatigarse +favorable +favorablemente +favorecer +fechar +federación +federal +federarse +fertilizar +festejar +festividad +fetichismo +fianza +fichado +fidelizar +fideo +fideoen +fiera +fiestas +figurativo +fijamente +filo +filosófica +filtrar +finalización +finalizado +financiar +firmas +firmeza +fiscales +fisioterapia +flacidez +flan +flequillo +flexionado +florido +flota +fluida +fluir +flácido +fmi +fomentar +fondos +formalizar +formarconstituir +formarcrear +formas +formativa +formato +forofo +forrado +forrar +forro +fortuna +forzoso +fotogénico +fotovoltaico +fracaso +fracción +fractura +fragancia +franco +francés +franquear +franqueo +fraternal +fraude +frecuentar +frenazo +freno +frialdad +frijoles +frondosa +frondoso +frontalmente +frotar +fructífero +fruncir +frustración +frustrado +frívolo +fuerteintensa +fuertes +fuerza +fugaz +fumar +fumigado +fumigar +funciones +fundamentado +fundamentalismo +fundamento +fundir +furgoneta +fábula +fértil +gafe +gajo +gala +galante +gallinero +galopar +gama +ganga +ganso +garantizar +gases +gastado +gatos +gaviota +gen +genealógico +generacional +generalizado +generar +gerencia +gerente +geriatría +germinar +germánica +gigantesco +ginecológico +gira +giratorio +global +globalización +glotón +glándula +golosinas +gorda +gotear +gotera +gozar +grabadora +grada +gradual +granada +granero +granito +granizada +grasa +gratificante +gratuidad +gravedad +gres +grieta +grises +grosero +grosería +grosor +gruesoscarnosos +guante +gubernamental +guerrillas +guiñar +guiñol +género +ha +habilitar +habitar +hacersele +hacesurte +hacha +hallar +helipuerto +herbívoro +heredero +herejía +herencia +hernia +herramienta +hervidero +hexágono +hidratada +hidroavión +higos +hincha +hinchable +hinchado +hipocondriaco +hipotecar +hocico +hoguera +hojear +holgado +hombro +hondo +honor +honorífico +hormigón +hormona +horrorizarse +hospitalario +hospitalidad +hueca +hueco +huecos +huesos +humildad +hundido +hundirse +huracanado +hurto +huésped +iberoamericanos +icono +ideal +ideales +idealizar +idear +ideas +identificación +ideológica +ideólogo +idilio +idolatría +idílico +ignorancia +ignorante +ignorar +iguales +ilegalizar +ilustrador +ilógico +imagen +imagenfotografía +imaginativa +imberbe +imborrable +impactante +imparcial +imparcialmente +impecable +impedir +imperdible +impermeabilizado +impermeable +implantes +implicado +importador +importarle +importe +impotencia +improbabilidad +impropio +improvisar +impuesto +impulsar +impurezas +inacabada +inactividad +inadaptación +inadvertido +inalcanzable +inalterable +inalterablemente +inalámbrico +inapropiado +inaugural +incalculable +incendio +incesante +incidente +incierto +incineración +incineradora +inclinación +inclinado +inclinar +incoherencia +incomprensible +inconfundible +incontable +incrementar +incremento +incubadora +incubar +incuestionable +incógnito +indestructible +indicada +indicado +indiferencia +indignación +indiscutible +indispensable +indisposición +indispuesto +individualizar +inducir +indudable +indudablemente +indulto +industrialización +industrializar +ineptitud +inequívocos +inercia +inesperadamente +inesperado +infección +infectar +infectarse +infiltrar +inflación +inflado +inflamable +inflamación +inflamar +inflamarse +informatizar +infringir +ingenioso +ingerir +ininterrumpidamente +injertar +injerto +injuria +injustamente +inmediaciones +inmediato +inmortalidad +inmóvil +innato +innecesario +innegable +innovación +innovador +innovar +inopia +inorgánica +inquietarse +inquilino +inseparable +inseparables +inserción +inservible +insignificante +insistencia +insistentemente +insolación +insonorizar +inspirar +instancia +instantáneo +institucional +instrucción +instructivo +instructor +instruido +instruir +insulso +insuperable +intachable +integrado +integrarse +integridad +integrismo +intensa +intensidad +interactivo +interesarse +internauta +interpretativo +interprofesional +interrogatorio +interrumpir +interrupción +intersección +intervalo +intervención +intervenir +intestinal +intimidad +intranet +intransigencia +intransigente +intriga +intuición +intuitivo +inusual +invadir +invariable +invariablemente +invasión +invencible +invertebrado +involuntaria +involuntario +inyectar +inútilmente +ira +ironía +irpf +irrealizable +irregularidad +irremediablemente +itinerante +jabonoso +jade +jamás +jerarquía +jugada +jugarse +jugoso +junta +juramento +jurídica +justificante +justificar +juzgado +juzgar +l +labor +labrador +lacio +ladera +ladrar +lamentable +lanar +lancha +lanzarse +latitud +laureles +lavado +lazos +lealtad +lechuza +lector +legalidad +legalzar +legislación +legislar +legislatura +lejanía +lejía +lema +lengua +lentos +lesionar +letras +levantamiento +liado +liar +liberalización +librarse +liceo +lichi +liebre +ligarse +ligeros +lijado +lijar +limbo +limitada +limpiacristales +limusina +lince +lineal +lingüística +liposucción +liquidación +lirón +literaria +llamadas +llamativo +llano +llegarle +llegarlevenirlea +llegará +llegaré +llenarse +lleva +llovizna +lloviznar +localidad +localizar +locas +locutorio +logotipo +logro +logística +lombarda +longanizas +lote +luces +lucha +ludopatía +lumbago +lumbar +lumbre +lunas +lupa +lámina +lógica +lúcido +lúdico +macizo +madrastra +madrina +madrugador +maestra +maestría +magia +magistrado +magistral +magnitud +malabares +malcriar +malgastar +malicia +manada +manantial +manazas +mandato +manejo +manga +manicura +manifestar +maniobra +manipular +manitas +mansión +mantelería +manufactura +manuscrita +manuscrito +maquillador +maquinaria +maracuyá +maravillado +marchar +marchita +marchitamustia +mares +margen +marginado +marginal +marginalidad +marginar +marionetas +marítima +masa +mascarilla +matarlas +matasellos +matemticamente +matemáticamente +matemáticamentedemostrar +materiales +materialización +materiasustancia +maternal +matiz +matricular +mayúsculo +meca +mecanografiada +mecedora +mecer +mechas +mecánica +medicinales +medicinas +medidas +mediocre +melodiosa +melodía +membrete +memorias +mentalista +mente +merecer +merengada +meseta +mesón +metafísica +metalizado +meteorito +meterse +metralleta +metropolitano +metáfora +mezclarse +microscópico +migas +migratorio +milla +millonada +mimo +mina +minerales +minimalista +ministerial +minucioso +minúsculo +mirando +miseria +misil +misionero +misma +modelar +moderación +moderada +moderado +modernidad +modélico +moldeable +moldear +moler +molestia +molestiasmalestar +molesto +momentáneo +momia +momto +monasterio +monetario +monoparental +monos +monovolumen +montaje +montañas +monótono +moqueta +morada +morado +moral +moralista +morirse +mortadela +mortal +moscas +mosquearse +mosto +mostrador +mote +motel +motivar +motor +motora +moverse +movida +movilidad +movilización +movimientos +mozárabe +moño +mucha +muchedumbre +muebles +muecas +muelle +muerde +muerto +muestras +mujeres +municipio +mural +murmullo +murmurar +mustia +máquinas +mártir +méritos +módico +múltiple +múltiplo +músculos +napia +narices +naricesestar +nasal +naturalmente +naufragar +navideña +negativa +negativamente +negligencia +negociante +nervios +nerviosperder +neto +netos +neurología +neuronal +neutro +nido +nivelado +nivelar +nobiliario +nobleza +nombrar +nominativo +normalizar +normativa +notar +notificación +notificar +novatada +novato +novedad +novedoso +novillos +nubes +nublar +nudo +nuestra +nuestro +nuestros +nueva +nula +numeradasos +numerados +numeroso +nítido +núcleo +objetiva +obrero +observatorio +obstrucción +obstruido +obvio +ocasional +ocasionalmente +ocioso +ocultar +odisea +oei +oficialmente +ojeada +ojera +olfatear +olmo +oloroso +ombligo +omnívoro +once +ondulado +opaca +operación +operario +operativo +oponente +oponerse +oportunidad +oportuno +oposiciones +optar +optativa +ordeñar +orgánica +orientarse +originar +originario +orujo +oscurecer +ostentar +ostra +otan +otorgar +otros +ovino +pa +pabellón +pactar +pacto +padrastro +padrino +paisano +pajar +palacete +palanca +palco +palma +palmada +palo +palos +palpable +pandilla +panel +panorámica +papaya +papeles +paquetes +parabólica +paracaídas +paradero +paralelo +paredes +parientes +parir +parpadear +parqué +partdo +partese +particularidad +partirse +parábola +pasable +pasajera +pasarela +pascuas +pastel +pastor +pastoso +pata +patas +paternal +patinar +pato +patrimonio +patrocinador +patrocinar +patronal +patrón +pausado +paño +pe +peca +peculiar +pedagogo +pedagogía +pedagógico +pedazos +pediatría +pedicura +pedirsolicitar +pedro +pegado +pegajoso +pegarse +pegdo +pela +peliculón +peligrosa +pelos +pelotas +penafatal +penales +pendular +penetrante +penitente +penoso +pensador +pensarse +pentágono +penúltimo +pepita +pequeñas +peras +percebe +percepción +perceptible +percibir +percusión +perdiz +perdonable +perdurar +perenne +periférico +perilla +permanecer +permanencia +permanentemente +permitir +perpendicular +perpendiculr +perpetuo +perros +perrosun +persecución +perseverante +perseverar +persistente +personajeen +personalarreglo +personalcorporal +personalcuidado +personalidadcarácter +personalidadde +personalizar +peruano +pesadez +pesadilla +pestañear +pestañearparpadear +peste +pesticidas +peteneras +petrolero +pezuña +picado +pico +picor +piedad +piedras +pies +piezas +pila +pimiento +pinta +pintas +pintoresco +pirata +pisar +pitando +pitar +pito +pizca +planchado +planear +planificación +plantación +planteamiento +plasma +plasticidad +plateresco +platino +platónico +plena +pleno +plumero +pluralidad +poblado +pocilga +poda +podar +podio +polar +policial +policiales +politeísmo +polémico +polígono +polítco +porcino +porosidad +poroso +porquería +porrazo +portador +portaviones +porvenir +posibilidades +posibilitar +positivamente +posponer +posterioridad +potencial +potente +pozo +pradera +pre +precario +precaución +precedente +preceder +precipitaciones +preciso +precoz +predecir +predicador +predicción +preferencia +prematuro +premios +preparador +preparatorio +prepotencia +prepotente +prerrománico +prescindible +prescindir +presenciar +presidencia +presidencial +presidir +presidirelun +presiones +prestigio +presunto +prevención +preventiva +preventivo +prever +previo +previsible +previsor +primario +primeras +primicia +primitivo +prioridad +privatización +prlelo +probado +problemático +profundaaguda +profundohondo +proletariado +proletario +prolongación +prolongadamente +prolongado +prolongar +prometedor +promotor +promover +pronosticado +pronosticar +pronóstico +propagar +propagarse +propicio +propios +proporcionado +proporciones +proposición +prorrogar +prosperar +prosperidad +protesta +prototipo +provecho +provechoso +proveer +provisional +provisionalmente +proyección +proyector +prólogo +prótesis +psicosis +psiquiatría +pulgada +pulgar +pulido +pulir +pulpa +puntas +puntils +puntuar +punzante +puro +puñado +puñalada +puño +pvp +pájaros +páncreas +pésame +pésima +pésimo +pésimos +quebradizo +quebrar +quehacer +quejas +querido +quicio +quiebra +quietud +quintín +rabia +rabo +racha +radiante +radical +radiología +rajas +ramas +ramos +rapapolvo +raparse +rara +raramente +rasgado +rasgo +rasgos +raya +razonablemente +raíces +reafirmante +realizable +realizado +realizador +reaparecer +rebaño +recaer +recambio +recar +recaída +rechazar +rechazo +rechistar +rechoncho +reciclarse +recital +reclamar +recolección +recomendable +reconocer +reconocido +reconocimiento +reconsiderar +recortada +recortar +recreación +rectificación +rectificar +rectorado +recuerdos +recuperación +recuperar +recuperarse +recurrente +recurrir +redención +redondeado +reducción +reducido +reductora +redundante +reencarnar +reencarnarse +referirse +reflexivamente +reforestar +refrescante +regadío +regatear +regañadientes +regañar +reglada +regordete +rehabilitar +rehogar +reinado +reintegro +rejuvenecer +relativa +relevancia +rellenito +rellenitoregordete +rematar +remate +remediable +remedio +remitir +remojo +remolcar +remolino +remolinorizocaracol +remolque +remoto +remunerado +remunerar +renal +rencor +rendimiento +rendir +rendirse +renombre +renovación +rentabilizar +reojo +reojomirar +reparar +repentino +repercusión +repetidor +repoblar +reposo +representativo +reprochar +reproducir +reproducirse +reptar +repugnante +repugnar +reputación +requerida +rereaparecer +resbaladizo +reseca +reseco +resentimiento +resguardo +residencias +residente +residir +residirhabitar +resignación +resonar +respetable +respetuoso +respingona +respiratorio +resucitar +resultados +resurrección +reto +retomar +retornados +retransmitir +retribución +retribuir +retroceso +retrospectivo +retrovisor +revalorizarse +reversible +revivir +revuelto +ribera +riego +rienda +rigos +riguroso +rincones +ritmollevar +rival +rizo +roble +robusto +roc +rocosa +rodaja +rodajas +rodaje +rodear +rodeo +rojos +rombo +rompe +rompeolas +rompible +ronca +roquefort +rosario +rosca +rotos +rotundo +rotura +rozar +rrimrse +ruborizarse +ruedas +rugir +rugoso +ruina +ruinas +rumbo +ráfaga +récord +rústica +rústico +sabana +sabido +sabiduría +sabio +saborear +sacarse +sacudir +sagrado +salió +salpicar +saltear +saltos +saltón +saludable +salvación +salvapantallas +salvarse +salvavidas +sancionar +sanción +sanear +sanitario +santiamén +satinado +satisfacción +satisfactorio +saturarse +sayo +secado +secano +secas +secdor +secreta +secuenciar +sede +sediento +sedoso +seductor +segregar +seguido +seguidor +seguimiento +seis +sellar +selvática +semestral +semiautomática +semifinal +sencillez +sensacional +sensación +sensato +sentada +separar +servirse +seudónimo +señales +siento +sierra +silbido +silueta +simbólico +simpatía +simpatíasentir +simular +simultaneidad +sinceramenteefusivamente +sincronizado +sincronizar +sindicarse +sintetizar +situar +sobado +soborno +sobra +sobrasada +sobrecarga +sobrecargar +sobreproteger +sobrevolar +sobrio +sociabilidad +socorrer +sofista +sofreír +soja +solarpanel +solista +solterón +someter +somos +son +sonata +sonidos +sonoro +sonreírle +sonrie +sonrojarse +sopero +soprano +sorber +sorbo +sospecha +sospechar +sostener +sostenido +stop +suavizar +subasta +subastar +subcontratar +sublevación +succionar +sucesivamente +sucesión +sucesor +sucursal +suela +suelta +suertes +sufrimiento +sumergida +sumergir +suministrar +suministro +sumirse +superación +superdotado +suplente +supletorio +suprimir +surgir +surtidor +surtir +sus +susceptibilidad +suscitar +sustancia +sustituir +susurrar +susurro +suya +sísmica +sísmico +tabarra +taberna +tablón +talento +tambalearse +tangente +tapar +tapia +tapiz +tapizado +tapizar +tardío +tareas +tasa +tasación +tasar +tasca +tataranieto +tecnológica +tejado +tejido +telefonía +telescopio +televisar +televisor +temblar +temer +temerario +temerse +temperaturas +templo +temporales +tendencia +tenermantener +tenersufrirpadecer +tenor +teología +terapia +terceros +terciario +terciopelo +termales +termo +terreno +terrupción +tersa +tesina +testificar +textual +teñirse +teórico +tibio +tiempoel +tientas +tieso +timón +tirado +tirante +tiritando +tiritar +tiro +tiros +titulación +todoterreno +tolerar +ton +tonalidad +tonel +toneladas +tonelcomo +tontas +tonto +tope +topes +torcer +torcido +tormentosa +torneo +torpe +torpedo +torre +torrencial +totalidad +traerle +trago +tragón +traición +trama +tramitar +tramo +tranquila +transacción +transatlántico +transformable +transformador +transformarse +transición +transmisión +transmitirse +trapera +trapos +tras +trasbordador +trascendencia +trasera +trasnochar +traspapelarse +traspasar +trasto +trastorno +trato +travesía +trayectoria +trecho +treintañero +trenza +trepar +tribuna +tripular +triunfalmente +trompa +tronar +troncal +tropa +trotar +truena +tránsito +trío +tuntún +tupida +turnar +turnos +turquesa +turrón +tussusmis +tute +tuya +táctil +tímpano +títere +títeres +título +ubicación +ubicado +uci +unidades +unirse +urbanidad +urbanizada +usual +usualmente +utensilio +utilidad +utilizable +utopía +uvi +vacuno +vado +vagar +vaguear +vajilla +valioso +valoración +valorado +valorar +valores +van +vanguardia +vanguardista +varadar +varas +variación +variar +variedad +vecinal +vegetación +vegetal +vehículo +vehículos +vello +veloz +velozmente +vena +vencimiento +venial +venirle +ventaja +ventajoso +veraneante +veranear +veraneo +verbalizar +verdaderamente +verse +versátil +vertebrado +vertedero +verter +vertiginoso +vestir +veterano +vibración +victoriosamente +vidrios +vientre +vigente +vigilada +vigilar +vigoroso +villa +villancico +vilo +vinagreta +vincularse +violenta +visibilidad +visibles +visillo +visual +vital +vitalicio +vitrina +vitro +vivo +vocación +volantazo +volante +volcarse +volcán +volcánica +voluminoso +voluntaria +voluntariado +vulgar +vulnerabilidad +vértebra +yeso +zambullir +zanjada +zapato +zigzag +zoología +zorro +ácidos +águila +árido +ética +éticamente +íntegro +írsele +óptimo +órbita +óvulo +óvulos +óxidos +úlcera +últimos diff --git a/lexical_minimums/C2_MINIMUM.txt b/lexical_minimums/C2_MINIMUM.txt new file mode 100644 index 0000000000000000000000000000000000000000..376989053d0892a6296e26faa2c6e72ad2d3d70a --- /dev/null +++ b/lexical_minimums/C2_MINIMUM.txt @@ -0,0 +1,3045 @@ +ABS +Agencia +Angora +Arquitectura +Babia +Barco +Cada +Circo +Coche +Cuentas +Cuidados +D +Demonio +Desarrollo +Diablo +Dirección +Distancia +El +Escorial +Escultura +Excelencia +FM +Fiscal +G +General +HTML +I +IBI +ITV +Identificación +Industria +Inspección +Intensiva +Intensivos +Investigación +Las +Letras +Majestad +Maricastaña +Matusalén +NIF +No +Número +P +Pascuas +Pintura +Policía +Potosí +Público +Quién +Ramos +Rey +SV +Satanás +Servicio +Si +Soy +Su +T +Tesoro +Todo +Tren +Tributaria +Tráfico +Técnica +UEFA +UNED +Una +Unidad +Universidad +Vehículos +Vigilancia +abandono +abanico +abarcar +abarrotada +abastecedor +abastecer +abatible +abatir +abismal +abochornado +abolladura +abominar +abono +abrasador +abrevadero +abrillantar +abrupto +abs +absentismo +absolución +absoluto +absolutoria +absolver +abstracción +abuchear +abuelete +abultado +abultar +acaecer +acallar +acalorado +acaloramiento +acantilado +acatamiento +acatar +accionar +accionistas +acelerón +acentuar +acequia +achacoso +achaque +achicar +achicharrarse +acicalar +acicalarse +aclamar +acolchado +acomodada +acomodar +acomodo +acompasado +acontecer +acorde +acordonar +acosar +acotación +acre +acreedor +acritud +acrobático +acrílica +acuarelista +acuoso +acuosos +acupuntor +acupuntura +adecentar +adentrarse +adepto +aderezar +adherencia +adherido +adherir +adición +adinerada +adiposo +adjunto +administrar +admirar +adobar +adoquinado +adscrito +aduanero +aducir +adversa +adyacente +aeronave +aeroplano +afable +afamado +afectivamente +aferrar +aferrarse +afinado +afinar +afinidad +aflorar +afluencia +aforo +agarrar +agasajar +aglutinar +agonizar +agregar +agreste +agriar +aguacero +aguar +aguarrás +agudeza +aguinaldo +aguzar +ahogar +ahuecar +ahumar +airbag +airoso +ajado +ajetreado +ajustadamente +ajustar +alameda +alarido +alarmante +alba +albarán +albergar +alboroto +alcurnia +aleación +aledaño +aledaños +alegar +alegremente +alelado +alfalfa +alféizar +alias +alicatar +alijo +alimaña +alineación +alinear +alisar +alisarse +alisio +allanar +allegado +allegados +alterna +alternador +alternar +altibajos +alud +aludir +alumbrar +alunizar +aluvión +amainar +amarga +amarillenta +ambulante +ameba +amenizar +amigote +amiguismo +amistoso +amnesia +amnistía +amoldar +amonestar +amoniaco +amorfo +amortiguar +amortizable +amortización +amparar +amplificar +ampolla +amuermar +anacardo +analítico +ancestral +ancestros +ancha +anchas +anclado +anclar +anclarse +anclas +andarse +anecdótica +anegado +anegar +anfibio +angora +anguloso +angustiarse +angustiosa +anhídrido +animar +aniquilar +anomalía +ansia +antagonista +antaño +anteanoche +antediluviano +antesala +antigualla +antioxidante +antipirético +antártico +anverso +anómalo +apacible +apaga +apaisado +apalabrar +aparejo +apariencias +apego +apelación +apelar +apero +apilar +aplacar +aplicado +aplicarse +apodo +aposento +apostilla +apostillar +apreciable +aprecio +apremiante +apretarse +aprovechamiento +apuntado +apurada +apuro +arado +arancel +arancelaria +arar +arañazo +arbitrario +arcaísmo +arduo +argüir +aridez +arista +armadas +armador +armar +armisticio +arnés +aro +arqueado +arquetipo +arrabal +arranque +arrasar +arrebatadora +arreciar +arrendador +arrendatario +arrimar +arrinconar +arrolladora +arrolladoramente +arroyo +articular +articulista +artillería +asarse +ascendiente +ascensorista +asediar +asedio +asentamiento +asepsia +aserción +aseveración +aseverar +asfaltado +asfaltar +asiduamente +asiduidad +asiduo +asir +asmática +asolar +asomo +asonancia +asonante +aspereza +astigmatismo +astracán +astral +astrofísica +astronómico +asueto +ataúd +ateneo +atenuar +aterrorizado +atestado +atestiguar +atiborrarse +atinado +atisbo +atosigar +atracar +atrapado +atronador +atropelladamente +atropellado +atroz +atuendo +atufar +atunero +augurar +aullar +aullido +aunar +aureola +aurresku +autoadhesivo +autonómica +autorizado +avalancha +avalar +avalista +avanzada +avecinarse +avejentado +avena +avenencia +avenirse +aventajado +aventajar +aventurero +averiar +aversión +aviación +avidez +avinagrado +axioma +azada +azaroso +azotar +azotea +azulejo +azulejos +aéreas +añejo +babia +babor +bacteria +bacterias +bailotear +bajura +bajón +balbucir +baldosa +ballenero +bancarrota +banderín +baraja +barbilampiño +barniz +barquero +barranco +barras +barreras +barrica +barricada +barullo +bastardo +bastos +batallar +batuta +bazar +bebedero +bebible +beneplácito +bienio +bifurcarse +bigamia +bimotor +bioquímica +bizco +biógrafo +blandengue +blasfemar +blasfemia +blindar +bocacalle +bocanada +bocazas +boga +boletín +bolsillos +bológco +bombo +bonanza +bondad +bonos +boquiabierto +borbotones +borde +bordear +bordo +botar +botavara +botica +botones +botín +bragueta +brebaje +brevas +brizna +broche +bronca +brote +bruma +brusquedad +bujía +bujías +bulo +buque +burbujas +busca +busto +bárbaro +bóveda +cabal +caballerías +caballete +cabelludo +cabezazo +cabida +cabos +cachondeo +caco +cacofonía +cadencia +caderas +caduco +cal +cala +calado +calamidad +calcar +calcinar +caldeado +caldear +caldo +calibrar +calibre +callo +calvicie +calzada +camaleónico +camarada +camaradería +caminata +campal +campana +campeones +camuflar +canas +canasta +candelero +candente +candidatura +canina +canje +canjear +cansada +cantidades +cantina +cantinela +canto +canturrear +capataz +capela +capilar +capitalizar +capitel +caprichoso +carabela +caracteres +carbónico +careo +cargado +cargamento +cargante +cargarse +carguero +caricaturista +carisma +carnes +carpetazo +carterista +cartilla +cartografía +caserío +caserón +casillas +casona +casta +castañuelas +castidad +catastro +catear +catártico +causa +causas +cautela +cautivar +cavilación +cavilar +cebada +cebarse +cefalea +cegar +cegato +cejar +cejijunto +celador +celeridad +celeste +celos +censo +centilitro +centralizado +centrocampista +centrífuga +centrífugo +centrípeta +centrípeto +cerciorarse +ceremonias +cerezo +cerros +certero +cervical +cetrina +cetáceo +ceñirse +chamuscar +chanchullo +chapotear +chapucero +chapurrear +chapuza +chapuzón +charco +chasis +chasquido +chirona +chirriar +chirrido +chisme +chismorreo +chispear +chocante +chorros +chubasco +chulo +churros +chutar +cibernética +ciclón +ciegamente +ciernes +cilindro +cilíndrico +cimientos +cincelador +cincelar +cincuentón +cineclub +cinta +cinéfilo +cinética +circense +circuito +civismo +ciática +clamor +claqueta +clarear +clarificar +claroscuro +clavar +clavícula +climatizador +clorofila +cloroformo +coalición +cocear +cochambroso +cochinillo +codera +codificada +coetáneo +coexistencia +cognición +cognitivismo +cogorza +cohabitar +colación +colapsada +colar +colegial +coletilla +colgarse +colindante +colisionar +colisión +colmado +colmar +colosal +columnas +columnista +colérico +combustión +comedero +comedido +comerse +comidas +comilona +comino +comodín +compadre +compaginar +comparecencia +comparsa +compatibilidad +compañerismo +compenetrarse +competitiva +competitivo +compinche +complaciente +complexión +componente +compulsivamente +compulsivo +computar +concesión +concienzudamente +concienzudo +conciliación +concluyentes +concomitancia +concordia +concurrencia +concurrido +concurrir +condenatoria +condicional +condición +conductismo +confección +conferir +confines +confiscar +confluir +conformidad +confort +congeniar +congratularse +congruente +congénito +conjetura +conjeturas +conmoción +cono +consagrado +consagrar +consanguinidad +consecución +consecuencias +consecuente +consentido +consideración +consolidar +consonante +consternado +constructiva +consumado +contante +contemplaciones +contienda +contiguo +contigüidad +contingencia +contingente +continuidad +contralto +contraluz +contrapeso +contraproducente +contrariado +contrastado +contribución +contribuir +contrincante +controvertido +contusión +convaleciente +convencimiento +converger +convertir +convexo +convocatoria +convulsiones +convulsión +cooperativa +copar +copiosa +copioso +copla +corazonada +corazones +corchea +cordón +corear +corintia +corola +coronar +corpóreo +corre +corren +corroborar +corroer +cortejo +cortijo +cortésmente +cosa +cosaco +cosmos +costumbrista +costura +cotilla +cotillear +cotilleo +cotizado +coyuntura +coyuntural +craneoencefálico +craso +crearse +crecida +credo +creencia +crianza +criar +criatura +crisma +cristalización +criterios +cromado +cronista +crujido +crujir +crupier +crustáceo +cuadrar +cuadrilátero +cuando +cuantiosa +cuantía +cuarentena +cuartel +cuchichear +cuchillada +cuchitril +cucurucho +cuerdo +cuestionar +cuidados +cuidadosamente +cultivado +cumbre +cumplimentar +cuna +cuneta +curiosear +currante +currar +curre +currito +curro +currículo +curvatura +cuscurro +cutáneo +cuántica +cuña +cáliz +cántaros +cárter +célebre +cólera +cómputo +cóncavo +cónica +cónico +córner +cósmico +cúmulo +cúpula +d +dactilares +dale +dañino +deambular +decaer +deceleración +deceso +decilitro +declarado +declararse +declinar +declive +decomisar +decorativo +decrecer +decreciente +decrecimiento +decrepitud +decretar +decreto +decímetro +deducción +deforme +defunción +degustación +degustar +deidad +dejadez +dejado +deje +delatar +deliberar +delinear +delirio +demasía +demoler +demonio +demonios +denotar +dentellada +dentera +depositar +depre +depreciación +depurar +depósito +derbi +derrochar +derroche +desaborido +desacato +desacertado +desacostumbrado +desafiante +desaguar +desaguisado +desagüe +desahogada +desahuciar +desahucio +desajuste +desaliñado +desalojar +desalojo +desapacible +desarme +desarrapado +desarticular +desaseado +desaseo +desasosiego +desatino +desbandada +desbocarse +desbordante +descabellado +descampado +descarrilar +descompuesto +descomunal +desconsolado +descosido +descubierta +descubridor +descuidar +desdeñable +desear +desecado +desecar +desembolso +desempolvar +desencadenarse +desenfrenado +deserción +desestimar +desfigurar +desfiladero +desgarbado +desgarro +desgaste +desgravar +desintoxicación +desistir +desliz +deslizante +desmantelar +desmedido +desmentir +desmenuzar +desmesurado +desorbitado +despachar +despejar +desperdicio +despeñarse +despilfarrar +desplegar +desposarse +despotismo +desprecio +desprendimiento +despropósito +despuntar +destajo +destartalado +destierro +destilación +destilar +destilería +destinar +destreza +destrozado +desuso +desvalorización +desvariar +desvarío +desvencijado +desván +desánimo +detenerse +determada +determinar +detestable +detonación +devaluar +devanarse +devastar +devoción +diafragma +diamantes +dibujada +dicha +diestro +diferido +dificultoso +difundido +digitalizar +digno +dilación +dilatada +dilatado +diligente +dintel +dinámica +diplomática +disciplado +disciplinario +discordancia +discurrir +disecar +disfrazar +disfrute +disipar +dislexia +dislocación +disparo +dispensar +dispersar +dispersas +disquisición +distar +distinguirse +distorsionar +diurna +divagar +divertimento +divisar +divisas +divulgar +diáfano +diálisis +doblegarse +docencia +dolorosa +doma +domador +domiciliación +dominante +dramaturgo +drenado +drenar +drástico +ductilidad +dulcificar +dura +dársena +déficit +dígito +dónde +dórica +dúctil +ebanistería +echa +economato +economizar +ecuanimidad +ecuestre +ecuánime +edificable +efeméride +efluvio +efímero +electrón +elevalunas +elevarse +elixir +elogio +eludir +emanación +emanar +embalaje +embalar +embargar +embargo +embelesar +emboscada +embriagador +emerger +emolumento +emoticón +empadronado +empadronamiento +empadronarse +empalagar +emparentar +empañado +empeoramiento +emperifollarse +empeñarse +empeño +empirismo +emplazado +emplazamiento +empotrado +enajenación +enajenarse +enaltecer +encabezar +encalar +encallar +encaminado +encanecer +encarrilar +encauzar +encañonar +encenderse +encerar +encerrarse +encinar +enclenque +encolar +encomiable +encomiar +encorvado +encrespado +encuadre +encubierto +encubrir +endeble +endecasílabo +enderezar +enderezarse +endémico +enervarse +enfatizar +enfermizo +enfoque +enfriamiento +enfurruñado +enganchado +engañan +engorroso +engrosar +engullir +enigma +enigmático +enjuiciar +enjundia +enjuto +enlazar +enmarañar +enmendar +enmienda +enredar +enrevesado +enrojecidos +ensalzable +ensalzar +ensamblar +ensanche +ensayista +ensombrecer +ensortijado +ensoñación +ensueño +entablar +ente +entendido +entendimiento +entereza +entero +entonado +entonar +entradas +entradilla +entrado +entrecortada +entrecortado +entresuelo +entroncar +entusiasmo +envejecido +envergadura +envoltorio +envolvente +enzarzarse +enérgico +epidermis +epílogo +equilibrista +equitativamente +equívoco +ergonómica +erguido +erguirse +erigirse +erizado +erosión +erradicación +erradicar +errar +errata +esbozar +escabeche +escaldar +escalón +escampar +escanciar +escarpado +escaño +escorial +escote +escozor +escrupulosidad +escuetamente +escuálido +escándalo +eses +esfera +esfumarse +esférica +esférico +esgrimir +esmerado +esmero +espaciarse +espadas +espantarse +espanto +esparcimiento +espartana +espasmos +española +especiar +especificidad +especulación +especular +espejismo +esperanzas +espesura +espinoso +espiritualidad +esporádicamente +esporádico +espumadera +espárragos +esquela +esquilar +esquizofrenia +estacionado +estafeta +estallido +estamento +estandarizar +estanque +estelar +estepa +esterilización +esterilizar +estilográfica +estima +estimación +estimar +estofar +estrafalario +estrato +estratosfera +estrecha +estrechamiento +estrechez +estrellarse +estrellas +estriado +estribillo +estribor +estricta +estricto +estructural +estruendo +estrujarse +estrépito +estuario +estuche +estática +esté +estético +eterniza +eternizar +etéreo +euforia +evento +eventual +eventualidad +eventualmente +evocación +evocar +evolutivo +exasperarse +excarcelar +exceder +excelencia +exclusividad +exclusión +exculpar +excusar +exequias +exfoliar +exhalar +exhausto +exhibir +exilio +existencialismo +expedición +experimental +expirar +explorador +expreso +expropiación +expropiar +exquisita +extensible +extenuante +exteriorizar +exterminar +extremidad +exultante +fabuloso +facciones +factible +factoría +facultativo +faena +fallido +falsas +falso +famélico +fanfarrón +fantasear +farra +farragoso +fatalidad +fauces +faz +fehaciente +felino +felpa +felpudo +fenecer +fermentar +fertilizante +fervientemente +fervor +festejo +festín +fetidez +fiar +fidedigna +fieras +figurar +figurarse +filatelia +filatélico +filial +filmar +filmoteca +filtro +filón +finiquitar +finiquito +fiordo +firmamento +firmes +fisonomía +flacas +flagrante +fleco +floración +floreado +flote +fm +fobia +foco +fofo +follaje +forjar +formatear +fortalecer +fortuito +forzadas +forzosamente +fosa +fosas +fotograma +fotosíntesis +fraccional +fraccionar +fragata +fragmentar +fraguar +franca +francesa +franja +franquicia +fraternidad +frenético +frescor +frescura +frugal +fruncido +fríamente +fuga +fundado +fundición +fundirse +funeraria +furia +fusa +fuselaje +fusible +fusión +férrea +férreo +férreos +fétido +fúnebre +fúnebres +fútil +g +gaceta +galardonado +galerista +gallinas +galáctico +galán +ganarse +gandul +garra +garrafal +gazapo +generalidad +gentes +geofísica +germen +gestionar +giratoria +glacial +glóbulo +goce +gol +golear +goleta +gordas +gordinflón +goteo +gozo +grabado +grabador +graduación +grandeza +granel +granulado +gratificación +grelo +griega +grima +griterío +grotesco +grumoso +gráfica +gráficos +guardameta +guarida +guarismo +guarro +guerrear +gurú +gusanillo +gustillo +gutural +gélido +gérmenes +habladuría +hable +hado +halagüeño +halo +haragán +harapiento +hartar +hastiar +hastío +haya +hazaña +hebilla +hechizar +hechos +hectómetro +hediondo +hedor +hegemonía +helarse +hematoma +henchir +herido +herradura +herrar +hexagonal +hidratar +hidrografía +hidrográfico +higienizar +hilar +hilera +hinchazón +hipermetropía +hiperrequetebién +hipertexto +hipervínculo +hipérbole +histeria +hjo +holgazán +holgura +holístico +hombrera +homenajeado +homeopatía +homeópata +homologar +hondonada +hongo +hongos +honorabilidad +honores +honorífica +honrar +horaria +horizontalidad +horma +hormigueo +hornear +hospedaje +hospedería +hospicio +hostelero +hostelería +hostigamiento +hostigar +html +huel +humanismo +humidificar +husmear +hábitos +ibi +idealismo +ideología +idioma +idoneidad +idóneo +ilusiones +ilusionismo +iluso +ilusorio +ilustrado +ilustrar +impactar +imparable +impartir +imperante +imperar +imperiosa +imperioso +impertinente +imperturbable +impertérrito +impoluto +imponer +impracticable +impregnar +imprevisible +impugnar +inapreciable +inaudible +inaudito +incandescente +incentivar +incitar +incluso +inconcebible +inconclusa +incondicional +inconveniencia +incorporar +increpar +incrustación +incuestionablemente +inculcar +inculpar +inculpatorias +incumbir +incumplir +incurrir +incógnita +incómoda +indefendible +indeleble +indeleblemente +indemnizar +indescriptible +indicador +indiferente +indigencia +indigente +indultar +indumentaria +industriales +ineludible +ineludiblemente +inepto +inexactitud +inextricable +infame +infantería +infantil +infatigable +inferencia +inferior +inferir +infinita +infinito +inflexión +infracción +infractor +infrahumanas +infrarrojos +infundado +infundir +ingente +inherente +inherentemente +inhumación +inhumar +iniciarse +ininteligible +inmaculado +inmovilizar +inmueble +inmuebles +inmundicia +inmutabilidad +inmutable +inquebrantable +insalvable +insecticida +inseguridad +insertarse +insinuación +insinuar +insolencia +insolvente +insostenible +instantánea +instauración +instintivo +institución +insubordinación +insultos +insustancial +insólito +intelecto +intempestiva +intempestivo +intensificar +intensiva +intensivos +intento +interfaz +intermediario +interponer +interrogante +intervalos +interventor +intimidación +intragable +intramuscular +intravenosa +intrincado +intrínsecamente +intrínseco +inutilizar +invalidar +invariabilidad +inverosímil +inverso +investidura +invicto +invocación +invocar +involucionar +involucrarse +inyectable +inédito +irracional +irradiar +irrefrenable +irrefutable +irrefutablemente +irreprochable +irrigado +irrigar +irrisorio +isotérmica +istmo +itv +izar +jalar +jaleo +jaqueca +jarana +jarrear +jolgorio +jornalero +jorobado +jota +jovencito +jovenzuelo +jovial +juicioso +jurar +jónica +júbilo +kilométrico +labranza +labrar +lacado +lacrar +ladeado +ladear +ladrido +lanzamisiles +lapso +largar +largas +larguero +lastre +latente +lateral +latifundio +latina +laxa +laxitud +laxo +lazo +le +lechal +legado +legbldad +legítima +legítmo +lengüeta +lente +levante +levar +levedad +librar +libros +licorería +licores +licuación +licuar +liderar +liderazgo +lidiar +lienzo +ligereza +limitado +limítrofe +linaje +lindante +lingote +lipotimia +liquen +liquidar +liquidez +literato +liviano +llantas +llega +llegado +llevadero +lluvias +loable +locuaz +lona +longevidad +longevo +longitudinal +lonja +losa +loseta +lucidez +lucro +lumbalgia +lustro +luxación +lápida +látigo +macabro +machacar +machaconamente +machacón +maciza +macuto +madero +madriguera +madrugón +magisterio +majestad +malabarista +malcriado +maleabilidad +maleable +malentendido +maleza +malvas +malversación +manejable +manguito +manguitos +manido +manifiesto +manilla +maniobras +manojo +maquetar +maquinista +maravillar +maravillas +maraña +marcados +marchante +marchas +marchitar +marchitarse +marchito +marejada +maricastaña +marina +masajear +mascullar +masivo +masía +mata +matanza +materialidad +materialista +materializarse +matizar +matriarcado +matrona +matusalén +maullar +maullido +mayorista +mayoritario +maña +mañoso +meandro +mecanismo +mecenas +mediar +medición +mediocridad +meditación +meditar +mega +mejoría +melancólico +melisa +melopea +melómano +memo +mencionar +mención +menear +meneo +menguante +menguar +mentor +menudo +mercader +mercadillo +merendero +meridiano +meridional +meridionales +meritorio +merodear +mesura +metalúrgica +metamorfosis +mete +metedura +metodología +metrópoli +michelines +microbio +microorganismo +microprocesador +migaja +migración +migraña +mil +mililitro +mimado +minifundio +minorista +minuciosidad +minuta +miopía +mira +mirilla +misiva +mismas +misticismo +mitológica +moción +mocoso +modulada +mogollón +mojón +moldes +moldura +mole +molecular +mollera +molusco +momificar +monogamia +monopolio +monopolizar +montículo +monzón +morar +mordisco +morfología +moroso +morro +mortales +mortecino +mortuorio +moscatel +mosquita +mota +movilizar +mozo +mudable +mueble +muere +muermo +muerta +mugido +mugir +mugre +mugriento +mula +muletilla +multar +multiuso +munición +muro +mus +musarañas +mustio +mutación +mutante +mutrario +muñeira +mástil +mía +mírame +mísero +mízcalo +nacionalismo +nana +narrativa +nasales +nato +nauseabundo +navaja +navajazo +navegación +naviero +necesida +necesitado +nefasto +negativo +neutrón +neófito +nicho +nif +nimio +niquelado +nitidez +nocivo +nombramiento +notoriedad +notorio +novel +novicio +nubarrón +nuevos +nulidad +nupcias +nutrir +néctar +níscalo +obeso +objetar +objetividad +oblicuo +obrar +obsesiva +obsoleto +obús +octogenario +octosílabo +ocular +ocurrencia +oda +ofensiva +oficiar +oftalmología +ojal +ojival +oleaje +olerse +omitido +omitir +omnipresencia +omnipresente +ondear +onomástica +onza +opaco +opiones +oportunismo +opositor +opulencia +opípara +opíparo +ordenación +ordenadamente +orfanato +orfebrería +orientales +orografía +orográfico +oros +oscilante +oscilar +ostensible +ostracismo +otear +oídos +p +pachucho +padrón +pagado +paisajista +paja +paladar +paladear +paleta +paliativos +paliza +palmas +palpar +pampa +panda +pantalón +papear +papelón +paperas +papista +paradisiaca +paradoja +paradójico +paragüero +paranoia +parcela +parche +parcialidad +parco +parentesco +paripé +parlotear +parranda +particularizar +partidario +partitura +parturienta +partícula +paráfrasis +parámetros +parón +pasa +pasapurés +pase +pasiva +pasma +pasmado +pasos +pastillas +pasto +patadas +patena +patentar +patente +paternofilial +paticorto +patinazo +patitas +patria +patriarcado +patriota +patriotismo +patrocinio +patronaje +patrono +patrullar +paulatino +pavimentar +pavimento +pavor +peces +pedida +pedregoso +pegadizo +pego +pelado +peleón +pellizcar +pelma +penalti +penitenciaría +pensiones +pentagonal +pequeñez +pera +perchero +perdurable +perdurablemente +perecedero +perecer +peregrinación +peregrinar +peregrino +perennemente +perentorio +peripecia +peritación +perito +permisiva +permuta +permutar +pernicioso +pero +perpetua +perpetuamente +perpetuar +perpetuidad +persa +perseguir +perseverantemente +persistir +personarse +perspicacia +pertinaz +pertinente +perturbación +perturbar +pestilencia +pestilente +petardo +peña +peón +piar +picaresca +picas +picudo +pienso +pilar +pillar +pinacoteca +pinar +pincel +pinzas +pipeta +pique +piramidal +pirueta +pisazo +piscifactoría +piscolabis +pisotear +pispás +pistilo +pistoletazo +pitido +pitillo +plaga +planicie +planificar +plantarse +plantón +plasta +platillo +plausibilidad +plausible +plegable +plegaria +plegarse +pleito +plenilunio +pletórico +plisado +plomizo +pluma +plumier +plástica +pocho +poderosa +polca +polemizar +poli +poliedro +poligamia +polinización +poliédrico +pompas +pomposo +ponderar +ponencia +poniente +popa +pormenorizado +pormenorizar +portal +portaminas +porte +posesión +positivismo +posposgrado +post +poste +posteridad +posteriori +postrimerías +postín +potencia +potingue +potingues +potosí +practicable +preceptor +precipicio +precocidad +precursor +predecesor +predilección +predisposición +preeminencia +preexistencia +prefacio +pregón +preliminar +preludio +premisa +premonición +prenda +presa +prescribir +prescripción +presentimiento +prestamista +presumir +presunción +presuponer +presuposición +pretencioso +prevaricación +preámbulo +prieto +primar +primogénito +primordial +primordialmente +primoroso +pringar +pringoso +priori +prisión +prisma +privativo +privatizar +privilegiada +proa +procedente +procedimiento +procrear +prodigarse +prodigioso +profanar +proferir +profesar +profundizar +profusamente +profusión +profuso +programas +prohibitivo +proliferación +proliferar +prolijamente +prolijo +prologuista +prolífico +prominencia +promulgar +prontitud +propenso +propiciar +proporcionadamente +proporcionados +proporcionar +propulsar +prorratear +prorrateo +proseguir +protocolario +protocolo +protón +provechosamente +proxenetismo +proximidas +pródigamente +pródigo +prórroga +puedes +puentear +pugnar +pulcritud +pulcro +pulular +pulverizar +puntiagudo +puntuación +puntualizar +punzada +pupitre +pálpito +páramo +pétreo +pócima +póliza +póquer +públicamente +querella +querellarse +quiera +quimioterapia +quinceañero +quinta +quintal +quirúrgica +quiste +quitamiedos +quién +rabiar +rabillo +rabiosa +racheado +raciocinio +racionalismo +racionalista +racionar +radiodifusión +radioterapia +radioyente +rafia +rajar +rallador +ramaje +rancho +rancio +rasero +rasguño +raso +rastras +ratero +ratificar +raudo +reactor +reafirmar +realzar +reanudar +rebanar +rebasar +rebatir +rebosante +rebosar +rebuscado +recapacitar +recelar +recesión +rechinar +rechupete +reclamo +recluir +recodo +recolectar +recostarse +recrudecerse +rectitud +recubrimiento +recuento +recurrentemente +redimirse +redoblar +redondeados +redondear +redondeo +redundancia +reduplicación +refinado +refracción +refrendar +refrescar +refrigeración +refrigerado +refrigerar +refrigerio +refutable +refutar +regata +regateo +regentar +registro +reglar +regulación +regusto +rehabilitación +rehusar +reinante +reinar +reincidente +reincidir +reintegrar +reiteradamente +reiterar +rejas +relamerse +relativizar +relieve +religiosidad +reliquia +reluce +reluciente +remediar +rememoración +rememorar +remero +remiendo +remodelar +remojón +remolón +remorder +renar +rendición +renegar +renglón +rentabilidad +rentabilización +repatear +repelente +repeler +repelús +repensar +repetirse +repleto +reprender +representatividad +reprimir +reprobar +repuestos +requesón +requete +requisar +rescindir +reservas +reseña +resonancia +respaldo +respiro +responsablemente +restablecer +restauración +restaurador +restos +retaguardia +retintín +retirada +retocar +retorcido +retransmisión +retratista +retumbar +revalorización +revelación +reventado +reventar +reverberación +reverdecer +reverencia +reverso +revestido +revestimiento +revestimientos +revolver +reválida +rezagar +riachuelo +ricino +rigurosa +rima +rivalizar +rizarse +robellón +robusta +robustez +robótica +rociar +rodeos +rollazo +rollizo +rondar +ropero +rostro +rotación +rotativo +rotatorio +rozadura +roña +roñoso +rudeza +ruego +rugido +rumorear +rvicio +rábano +réplica +sabe +sabérselas +saciar +saciedad +sacrilegio +sacudida +sagacidad +salazón +saldar +saldarse +salpicadura +salpimentar +salvar +saneamiento +sangrienta +sanseacabó +santería +santidad +santón +sapiencia +saque +sarampión +sarcófago +sardana +satanás +saturada +satén +sazonar +sborcillo +secuelas +secular +sedante +segar +segmento +segregación +segundas +selectividad +semanario +semblante +semicorchea +semifusa +senda +senectud +senil +seno +sentenciar +sentimientos +sepelio +septentrional +septuagenario +sepulcro +sepultar +sepultura +sequedad +sermonear +sermón +sesentón +sesgado +sesos +severa +sexagenario +señorial +señorito +siamés +sideral +siembra +sietemesino +sigilo +significar +silenciar +simpatizar +simposio +simulacro +simultanear +sincretismo +sincronía +sincrónicamente +sincrónico +sinfín +singladura +singular +siniestro +sino +sinopsis +sintonizar +sintética +sinuosidad +sinuoso +siroco +sitiar +soberanía +sobrado +sobrecargada +sobrecoger +sobreexpuesta +sobrellevar +sobrepasar +sobresalir +sobrestimar +sobrevenir +sofoco +solapa +solariega +solariego +soldar +solera +solfeo +solidificar +solsticio +soltarse +soltura +solvencia +sombrear +sombrío +someterse +somnolencia +sonante +soneto +soniquete +sonoridad +sonsonete +soplo +soponcio +sopor +soporífero +sorbos +sordos +sortear +sota +sotana +soy +sport +suaves +suavidad +subestimar +subidón +subjetiva +subjetividad +sublime +subrogación +subrogar +subsanar +subsiguiente +subsistir +sucederse +sucesivo +suculento +suelos +sulfúrico +sumamente +sumiller +sumisión +sumo +supino +suprema +supurar +suspensión +sustancial +sustancialmente +sustracción +sv +sílabo +síncope +sólidos +súplica +t +tabique +tablas +tachar +taconear +tajada +talante +talasoterapia +tallado +tallaje +tallar +talones +talón +tangible +tantas +tapujos +tara +tararear +tardanza +tarima +tarro +tartamudear +tasado +te +tedio +telefonazo +telefónico +teletipo +televidente +temeraria +tenaz +tenazmente +tendencioso +tendero +tenderse +tendido +tentempié +tergiversar +teridad +termoterapia +territorio +terráqueo +terso +tesoro +tez +tibia +tifón +tildar +timbrado +tino +tira +tirabeque +tirada +tirador +tiranía +tisana +titubear +titubeo +titubeos +toca +tocarse +tocateja +toga +tomarse +topografía +topográfico +toque +toques +tornado +tornar +toro +torpeza +tortuoso +torácico +tosco +tostón +trabar +tracción +traficar +tragaderas +traicionar +tramar +tramontano +trampa +tranquilizarse +transcurrir +transcurso +transeúnte +transfiguración +transgredir +transgresión +translúcido +transversal +trapecio +trapichear +trapicheo +trapillo +traslación +traspié +trasplante +trastero +trastienda +tratante +traumatismo +traumatología +trazar +tregua +trepidante +tributaria +tributo +trienio +trillado +trillar +trina +trinchera +triturar +triunfal +triunfante +trivial +trocar +tropas +tropiezo +trucar +trueque +tránsfuga +tréboles +trípode +tu +tubo +tufo +tumor +tuna +tupido +turbio +tuyo +tácito +térmico +término +tórrido +túnica +ubicar +ubicuidad +uefa +ulterior +ulteriormente +ultimar +ultramarino +ultramarinos +ultratumba +uned +unísono +urbanizable +urbanística +urbe +urdir +urgir +usufructo +utilitario +utilización +uvas +vacas +vacilación +vacilar +vacunación +vaguedad +vaho +vahído +vaivén +valeriana +validar +valija +valorizarse +valía +vano +varicela +vasto +vaticinar +vaya +veas +velada +velado +velar +velatorio +velero +velo +vencido +vendaval +vendimia +venerar +venia +venidero +ventisca +veracidad +veraz +verbalmente +vereda +veredicto +vergüenza +verosimilitud +verosímil +verticalidad +vertiente +vesícula +veta +vetusto +viabilidad +viable +vial +viandante +vicaría +victorioso +vientos +viga +vigencia +vigilia +vigor +vigorosidad +vilipendiar +vinculado +vincular +vinos +violar +viraje +virar +virtualidad +virtuoso +visceral +viscosidad +viscoso +visiones +visto +vistoso +visón +vitalicia +vivero +vocear +volar +voraz +vuelco +vulgaridad +vulnerar +vámonos +vínculo +xenofobia +yacente +yacer +yarda +yermo +yuxtaponer +yuxtapuesto +zaga +zampar +zanjar +zapatear +zarpar +zarrapastroso +zoco +zumbido +Úbeda +ácaros +ácido +ángeles +ánimo +ápice +ávidamente +él +éxodo +ímprobo +índole +íntegros +íntimamente +óbito +óseo +úbeda +últimas +únete diff --git a/news_phrases_s300_cw10_mc50_w4_negative5-075_mean_e10_notshr.bin.gz b/news_phrases_s300_cw10_mc50_w4_negative5-075_mean_e10_notshr.bin.gz new file mode 100644 index 0000000000000000000000000000000000000000..e57f5e44d2187b3cb206a6b9336c424bcfea1212 --- /dev/null +++ b/news_phrases_s300_cw10_mc50_w4_negative5-075_mean_e10_notshr.bin.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f19c2cc6833beed4678a53cddb620295d3beca75dc0f6b1f11b60d48741ea50 +size 91904222 diff --git "a/pages/1_\342\232\231\357\270\217_\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217.py" "b/pages/1_\342\232\231\357\270\217_\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217.py" new file mode 100644 index 0000000000000000000000000000000000000000..38a713bfaec45533cf26ba05ccbbcd2aa8ebcb43 --- /dev/null +++ "b/pages/1_\342\232\231\357\270\217_\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217.py" @@ -0,0 +1,75 @@ +import streamlit as st + + +st.set_page_config(page_title='GenLexTasks', layout="wide", page_icon=':es:') +if st.session_state.get('-LOGGED_IN_BOOL-'): + ANNOUNCES = st.expander('**ВАЖНАЯ ИНФОРМАЦИЯ**', expanded=True) + ANNOUNCES.success( + '**Уважаемые пользователи, пожалуйста, после генерации заданий перейдите на вкладку "📝Онлайн-тест" ' + 'и заполните там опросник. Таким образом Вы очень поможете в улучшении качества заданий! Спасибо!🤗**') + ANNOUNCES.warning( + '**Сейчас генератор проходит завершающую настройку и отладку, для которой необходимо большое количество ' + 'данных об уместности выбранных целевых слов и дистракторов к ним. Поэтому просим Вас отнестись с пониманием ' + 'к излишне большому количеству заданий.**') + ANNOUNCES.warning( + '**❗️ㅤУбедительно просим Вас дожидаться окончания генерации или загрузки и не переходить на ' + 'другие вкладки до выведения соответствующего сообщения.**') + ANNOUNCES.warning( + '**❗ㅤВ случае появления красных сообщений об ошибке, как правило, проблема решается ' + 'повторными нажатиями на нужный Вам элемент. Приносим извинения за неудобства.**') + + INSTRUCTION = st.expander(label='**ИНСТРУКЦИЯ**', expanded=True) + INSTRUCTION.markdown( + '**_I. Выберите режим работы._**' + '\n\n**_:red[СОЗДАНИЕ ЗАДАНИЙ]_**' + '\n\nПосле выбора данного режима работы появится форма, которую необходимо заполнить:' + '\n\n1. Придумайте **название** для файла с заданиями. ' + 'Вы можете оставить это поле пустым - именем по умолчанию служит текущая дата и первые 20 символов ' + 'введенного Вами текста.' + '\n\n2. Введите **текст** или выберите **текстовый файл** с исходным текстом, на основе которого Вы хотите ' + 'создать задания. ' + '\n\n3. Укажите *способ выбора целевых слов*:' + '\n\t* *:green[Автоматически]*: программа сама выберет подходящие по сложности целевые слова.' + '\n\t* *:blue[Самостоятельно]*: введите в соответствующее поле целевые слова через запятую в той форме, ' + 'в которой они встречаются в тексте. В этом случае *:orange[языковой уровень]* можно не указывать, но тогда ' + 'дистракторы будут полностью случайными и несоотнесёнными с уровнем.' + '\n4. Если Вы выбрали *:green[автоматический поиск целевых слов]*, **_:red[обязательно]_** укажите ' + '*:orange[языковой уровень]*. Данный параметр отвечает за выбор лексического минимума, использующегося при ' + 'подборе дистракторов.' + '\n5. Если Вы выбрали *:blue[самостоятельный ввод целевых слов]*, проверьте, что заполнили соответствующее ' + 'поле. ️ \n❗ **:red[Введите слова в той форме, в которой они встречаются в тексте]**.' + '\n\n6. Укажите число дистракторов - неправильных вариантов ответа. Если указано _более четырех_ ' + 'дистракторов, возможно, что в некоторых заданиях будет выведено _меньшее количество, но не менее четырех_ ' + 'вариантов. Данное обстоятельство связано с проверкой наличия дистракторов в лексических минимумах.' + '\n7. Выберите **способы вывода** готовых материалов.' + '\n8. Для начала работы нажмите на кнопку **"Запуск"**. Если все поля заполнены верно, ' + 'начнется процесс генерации заданий. Прогресс будет отображаться на экране.' + '\n9. По окончании процесса генерации заданий будет выведено **_:green[соответсвующее сообщение]_**. ' + 'Затем Вы можете перейти на вкладки **просмотра и 📥 сохранения** заданий, а так же 📝**онлайн-теста**.' + '\n\n**_:red[ЗАГРУЗКА ИЗ АРХИВА]_**' + '\n\nПосле выбора данного режима работы появится таблица, в которой перечислены названия заданий, ' + 'которые Вы сохранили, языковой уровень и дата их создания.' + ' Для загрузки определенного файла с заданиями:' + '\n1. Введите (или скопируйте из таблицы) название.' + '\n2. Укажите соответсвующий языковой уровень.' + '\n3. Нажмите на кнопку **"Загрузить"**.' + '\n4. Если все поля заполнены верно, Вы увидите сообщение о том, что **:green[задания успешно загружены]**.' + '\n\n\nДля того, чтобы свернуть/развернуть блоки **Инструкций** или **Важной информации**, ' + 'кликните по заголовку этого блока или по стрелке (ᐯ / ᐱ), располагающейся в его правом верхнем углу.') + + INSTRUCTION_ONLINE_TEST = st.expander(label='**ИНСТРУКЦИЯ_ОНЛАЙН-ТЕСТ**', expanded=True) + INSTRUCTION_ONLINE_TEST.markdown( + 'Уважаемые пользователи, предлагаем Вам заполнить опросник по оценке качества созданных заданий. ' + '\n\nНиже находится анкета с заданиями в таблице.' + '\n\n- В **первом столбце** приводится ответ - слово, удаленное из оригинального текста.' + '\n\n- Отметьте во **втором столбце**, уместно ли создавать задание с данным словом.' + '\n\n- В **третьем столбце** приведены подобранные программой дистракторы.' + '\n\n- Введите в **четвертый столбец** дистракторы (целиком или букву), которые, по Вашему мнению, ' + '**:red[не уместны]**. ' + '\n\n**:green[Уместными дистракторами]** мы предлагаем считать те, которые одновременно удовлетворяют ' + 'следующим условиям в рамках языкового уровня, для которого они созданы:' + '\n\n1. не слишком очевидно являются неправильными вариантами (*варить суп/стол*);' + '\n\n2. и при этом не могут быть полноценной заменой удаленного слова (*варить суп/кашу*)' + ) +else: + st.warning('**Войдите или зарегистрируйтесь**') diff --git "a/pages/2_\360\237\221\250\342\200\215\360\237\217\253_\320\235\320\260\321\207\320\260\320\273\320\276_\321\200\320\260\320\261\320\276\321\202\321\213.py" "b/pages/2_\360\237\221\250\342\200\215\360\237\217\253_\320\235\320\260\321\207\320\260\320\273\320\276_\321\200\320\260\320\261\320\276\321\202\321\213.py" new file mode 100644 index 0000000000000000000000000000000000000000..91cd4bfec11f9b7d9db2d83a65fb27f3f7210cb3 --- /dev/null +++ "b/pages/2_\360\237\221\250\342\200\215\360\237\217\253_\320\235\320\260\321\207\320\260\320\273\320\276_\321\200\320\260\320\261\320\276\321\202\321\213.py" @@ -0,0 +1,269 @@ +import datetime +import streamlit as st +from utilities_database.user_database_utils import load_user_tasks_data +from utilities_database.user_database_utils import save_data_in_database +from utilities_database.user_database_widgets import user_save_text_table +from utilities_database.user_database_utils import load_users_particular_task +from streamlit_extras.no_default_selectbox import selectbox as custom_select_box + +# Interface +if st.session_state.get('-LOGGED_IN_BOOL-'): + st.set_page_config(page_title='GenLexTasks', layout="wide", page_icon=':es:') + INSTRUCTION = st.expander(label='**ИНСТРУКЦИЯ**', expanded=False) + INSTRUCTION.markdown( + '**_I. Выберите режим работы._**' + '\n\n**_:red[СОЗДАНИЕ ЗАДАНИЙ]_**' + '\n\nПосле выбора данного режима работы появится форма, которую необходимо заполнить:' + '\n\n1. Придумайте **название** для файла с заданиями. ' + 'Вы можете оставить это поле пустым - именем по умолчанию служит текущая дата и первые 20 символов ' + 'введенного Вами текста.' + '\n\n2. Введите **текст** или выберите **текстовый файл** с исходным текстом, на основе которого Вы хотите ' + 'создать задания. ' + '\n\n3. Укажите *способ выбора целевых слов*:' + '\n\t* *:green[Автоматически]*: программа сама выберет подходящие по сложности целевые слова.' + '\n\t* *:blue[Самостоятельно]*: введите в соответствующее поле целевые слова через запятую в той форме, ' + 'в которой они встречаются в тексте. В этом случае *:orange[языковой уровень]* можно не указывать, но тогда ' + 'дистракторы будут полностью случайными и несоотнесёнными с уровнем.' + '\n4. Если Вы выбрали *:green[автоматический поиск целевых слов]*, **_:red[обязательно]_** укажите ' + '*:orange[языковой уровень]*. Данный параметр отвечает за выбор лексического минимума, использующегося при ' + 'подборе дистракторов.' + '\n5. Если Вы выбрали *:blue[самостоятельный ввод целевых слов]*, проверьте, что заполнили соответствующее ' + 'поле. ️ ❗ **:red[Введите слова в той форме, в которой они встречаются в тексте]**.' + '\n6. Укажите число дистракторов - неправильных вариантов ответа. Если указано _более четырех_ ' + 'дистракторов, возможно, что в некоторых заданиях будет выведено _меньшее количество, но не менее четырех_ ' + 'вариантов. Данное обстоятельство связано с проверкой наличия дистракторов в лексических минимумах.' + '\n7. Выберите **способы вывода** готовых материалов.' + '\n8. Для начала работы нажмите на кнопку **"Запуск"**. Если все поля заполнены верно, ' + 'начнется процесс генерации заданий. Прогресс будет отображаться на экране.' + '\n9. По окончании процесса генерации заданий будет выведено **_:green[соответсвующее сообщение]_**. ' + 'Затем Вы можете перейти на вкладки **просмотра и 📥 сохранения** заданий, а так же 📝**онлайн-теста**.' + '\n\n**_:red[ЗАГРУЗКА ИЗ АРХИВА]_**' + '\n\nПосле выбора данного режима работы появится таблица, в которой перечислены названия заданий, ' + 'которые Вы сохранили, языковой уровень и дата их создания.' + ' Для загрузки определенного файла с заданиями:' + '\n1. Введите (или скопируйте из таблицы) название.' + '\n2. Укажите соответсвующий языковой уровень.' + '\n3. Нажмите на кнопку **"Загрузить"**.' + '\n4. Если все поля заполнены верно, Вы увидите сообщение о том, что **:green[задания успешно загружены]**.' + '\n\n\nДля того, чтобы свернуть/развернуть блоки **Инструкций** или **Важной информации**, ' + 'кликните по заголовку этого блока или по стрелке (ᐯ / ᐱ), располагающейся в его правом верхнем углу.') + ANNOUNCES = st.expander('**ВАЖНАЯ ИНФОРМАЦИЯ**', expanded=False) + ANNOUNCES.success( + '**Уважаемые пользователи, пожалуйста, после генерации заданий перейдите на вкладку "📝Онлайн-тест" ' + 'и заполните там опросник. Таким образом Вы очень поможете в улучшении качества заданий! Спасибо!🤗**') + ANNOUNCES.warning( + '**Сейчас генератор проходит завершающую настройку и отладку, для которой необходимо большое количество ' + 'данных об уместности выбранных целевых слов и дистракторов к ним. Поэтому просим Вас отнестись с пониманием ' + 'к излишне большому количеству заданий.**') + ANNOUNCES.warning( + '**❗️ㅤУбедительно просим Вас дожидаться окончания генерации или загрузки и не переходить на ' + 'другие вкладки до выведения соответствующего сообщения.**') + ANNOUNCES.warning( + '**❗ㅤВ случае появления красных сообщений об ошибке, как правило, проблема решается ' + 'повторными нажатиями на нужный Вам элемент. Приносим извинения за неудобства.**') + WHAT_TO_DO = st.radio( + label='**Выберите режим работы**', + options=[ + 'Создать новые задания', + 'Загрузить задания из моего архива'], + key='-WHAT_TO_DO_MODE-', + horizontal=True) + if WHAT_TO_DO == 'Загрузить задания из моего архива': + LOAD_FORM = st.form('LOAD_FORM') + UPLOAD_CLOUD_USER_NAME = st.session_state.get('-USER_NAME-') + loaded_data = load_user_tasks_data( + user_task_database=user_save_text_table, + save_type='download', + creator_name=UPLOAD_CLOUD_USER_NAME) + LOAD_FORM.table(loaded_data) + COL1, COL2 = LOAD_FORM.columns([1, 1]) + UPLOAD_CLOUD_FILE_NAME = COL1.text_input('Введите название заданий', placeholder='Жду название') + with COL2: + UPLOAD_CLOUD_CEFR_LEVEL = custom_select_box( + 'Выберите языковой уровень', + ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'Нет'], + no_selection_label='-Выберите языковой уровень-') + st.session_state['-UPLOAD_CLOUD_CEFR_LEVEL-'] = UPLOAD_CLOUD_CEFR_LEVEL + LOAD_BUTTON = LOAD_FORM.form_submit_button('Загрузить') + if LOAD_BUTTON: + if UPLOAD_CLOUD_USER_NAME in (None, '') or UPLOAD_CLOUD_FILE_NAME in (None, ''): + st.error('Вы не заполнили все поля') + st.stop() + __TASK_DATA__ = load_users_particular_task( + user_task_database=user_save_text_table, + load_mode='download', + creator_name=UPLOAD_CLOUD_USER_NAME, + save_name=UPLOAD_CLOUD_FILE_NAME, + cefr_level=UPLOAD_CLOUD_CEFR_LEVEL) + # In order to bypass further + st.session_state['UPLOAD_CLOUD_USER_NAME'] = UPLOAD_CLOUD_USER_NAME + st.session_state['-UPLOAD_CLOUD_FILE_NAME-'] = UPLOAD_CLOUD_FILE_NAME + st.session_state['RESULT'] = __TASK_DATA__ + st.session_state['-LOADED_CEFR_LEVEL-'] = UPLOAD_CLOUD_CEFR_LEVEL + st.session_state['-DISPLAY_READY-'] = True + st.session_state['-DISPLAY_VERSION-'] = True + st.session_state['-DOWNLOAD_VERSION-'] = True + st.session_state['-ONLINE_TEST_READY-'] = True + st.success('Данные загружены. Можете переходить на следующие страницы.') + else: + # Upload text form + FORM = st.form('CREATE_FORM') + USER__SAVE_IN_CLOUD_FILE_NAME = FORM.text_input( + '**Введите название**', + placeholder='Жду название', + key='-USER__SAVE_IN_CLOUD_FILE_NAME-') + UPLOAD_TEXT = FORM.text_area( + label='**Вставьте текст:**', + value='', + placeholder='Жду текст', + key='-USER_INPUT_TEXT-') + UPLOAD_FILE = FORM.file_uploader( + label='**Или выберите файл:**', + type='txt', + key='-USER_INPUT_FILE-') + TW_MODE_COL, DISTRACTOR_MODEL_COL = FORM.columns(2) + TARGET_WORDS_MODE = TW_MODE_COL.radio( + label='**Как выбирать целевые слова?**', + options=['Автоматически', 'Самостоятельно'], + key='-TARGET_WORDS_MODE-', horizontal=True) + DISTRACTOR_MODEL = DISTRACTOR_MODEL_COL.radio( + label='**Модель для выбора неправильных вариантов**', + options=['Худ. лит-ра', 'Новости', 'Все вместе', 'BERT'], + key='-DISTRACTOR_MODEL_MODE-', horizontal=True) + CEFR_NUM_DISTRACTORS_COL, UTW_COL = FORM.columns([2, 2]) + with CEFR_NUM_DISTRACTORS_COL: + CEFR_TEXT_LEVEL = custom_select_box( + 'Укажите уровень по CEFR:', + ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'Нет'], + no_selection_label='-Выберите языковой уровень-') + st.session_state['-CEFR_TEXT_LEVEL-'] = CEFR_TEXT_LEVEL + NUMBER_DISTRACTORS = CEFR_NUM_DISTRACTORS_COL.number_input( + label='**Выберите количество дистракторов в задании:**', + min_value=1, + max_value=9, + value=3, + key='-NUM_DISTRACTORS-') + TARGET_WORDS = UTW_COL.text_area( + label='**Если "Самостоятельно", введите целевые слова:**', + value='', + height=120, + placeholder='Через запятую и пробел', + key='-INPUT_TARGET_WORDS-') + FORM.markdown('**Выберите формат(-ы) вывода:**') + col1, col2, col3 = FORM.columns(3) + SAVE_IN_CLOUD = col1.checkbox( + label='**Сохранить в облаке**', + value=False, + key='-SAVE_IN_CLOUD-') + DOWNLOAD_VERSION = col2.checkbox( + label='**Скачать**', + value=False, + key='-DOWNLOAD_VERSION-') + ONLINE_TEST_VERSION = col3.checkbox( + label='**Онлайн тест**', + value=False, + key='-ONLINE_TEST_VERSION-') + + START_COL, RERUN_COL, EXIT_COL = FORM.columns([1, 1, 1]) + START_BUTTON = START_COL.form_submit_button( + label='**Запуск**', + use_container_width=True) + RERUN_BUTTON = RERUN_COL.form_submit_button( + label='**Перезагрузка**', + use_container_width=True) + EXIT_BUTTON = EXIT_COL.form_submit_button( + label='**Выход**', + use_container_width=True) + + if START_BUTTON: + LOGS = st.empty() + LOGS.success('**Готовые задания или онлайн-тест появятся на отдельных страницах**') + + # Initiate interface structure + PROGRESS_BAR = st.progress(0) + LOGS_D = st.empty() + PROGRESS_BAR_D = st.progress(0) + PROGRESS_BAR_S = st.progress(0) + + # Start generation process. Everything happens inside main_workflow func + if DISTRACTOR_MODEL == 'BERT': + from utilities_language_bert.esp_main_workflow_bert import main_workflow + __TASK_DATA__ = main_workflow( + file=UPLOAD_FILE, + text=UPLOAD_TEXT, + logs=LOGS, + logs_d=LOGS_D, + progress=PROGRESS_BAR, + progress_d=PROGRESS_BAR_D, + progress_s=PROGRESS_BAR_S, + level=CEFR_TEXT_LEVEL, + tw_mode_automatic_mode=TARGET_WORDS_MODE, + target_words=TARGET_WORDS, + num_distractors=NUMBER_DISTRACTORS, + save_name=USER__SAVE_IN_CLOUD_FILE_NAME) + else: + from utilities_language_w2v.esp_main_workflow_w2v import main_workflow + __TASK_DATA__ = main_workflow( + file=UPLOAD_FILE, + text=UPLOAD_TEXT, + logs=LOGS, + logs_d=LOGS_D, + progress=PROGRESS_BAR, + progress_d=PROGRESS_BAR_D, + progress_s=PROGRESS_BAR_S, + level=CEFR_TEXT_LEVEL, + tw_mode_automatic_mode=TARGET_WORDS_MODE, + target_words=TARGET_WORDS, + num_distractors=NUMBER_DISTRACTORS, + save_name=USER__SAVE_IN_CLOUD_FILE_NAME, + distractor_model=DISTRACTOR_MODEL) + + # In order to bypass further + USER__SAVE_IN_CLOUD_FILE_NAME = USER__SAVE_IN_CLOUD_FILE_NAME if USER__SAVE_IN_CLOUD_FILE_NAME != '' \ + else __TASK_DATA__['name'] + st.session_state['RESULT'] = __TASK_DATA__ + st.session_state['-DISPLAY_READY-'] = True + st.session_state['-DISPLAY_VERSION-'] = True + st.session_state['-ONLINE_TEST_READY-'] = True + st.session_state['-LOADED_CEFR_LEVEL-'] = CEFR_TEXT_LEVEL + st.session_state['-UPLOAD_CLOUD_FILE_NAME-'] = USER__SAVE_IN_CLOUD_FILE_NAME + + PROGRESS_BAR.progress(100) + PROGRESS_BAR_S.progress(100) + LOGS.success('**Все готово! Готовые задания и/или онлайн-тест доступны в соответствующих вкладках.**') + if SAVE_IN_CLOUD: + save_data_in_database( + user_task_database=user_save_text_table, + save_type='download', + save_name=USER__SAVE_IN_CLOUD_FILE_NAME, + cefr_level=CEFR_TEXT_LEVEL, + time_stamp=str(datetime.datetime.now())[:-7], + creator_name=st.session_state.get('-USER_NAME-'), + generated_result=__TASK_DATA__, + distractor_model=DISTRACTOR_MODEL) + + PROGRESS_BAR = '' + PROGRESS_BAR_S = '' + LOGS_D = '' + + if EXIT_BUTTON: + for key in st.session_state: + del st.session_state[key] + st.error('Я устал. Я ухожу') + st.session_state["START_GENERATION"] = False + st.stop() + if RERUN_BUTTON: + for key in st.session_state: + del st.session_state[key] + st.error('Что-то пошло не так?! Перезагружаюсь!') + st.session_state["START_GENERATION"] = False + st.stop() + st.experimental_rerun() + + # LABEL + st.markdown('*Автор-разработчик: А.В.Белый, кафедра математической лингвистики, филологический факультет СПбГУ,' + ' 3 курс, бакалавриат, "Прикладная, компьютерная и математическая лингвистика (английский язык)"*' + '\n\n*Научный руководитель: канд. филол. наук, доц. О.А.Митрофанова*') + st.markdown('*E-mail: st087202@student.spbu.ru*') +else: + st.warning('**Войдите или зарегистрируйтесь**') diff --git "a/pages/3_\360\237\223\245_\320\241\320\272\320\260\321\207\320\260\321\202\321\214.py" "b/pages/3_\360\237\223\245_\320\241\320\272\320\260\321\207\320\260\321\202\321\214.py" new file mode 100644 index 0000000000000000000000000000000000000000..a4a5f7ea883b847a202e82ca5d5baf3fba9d27e1 --- /dev/null +++ "b/pages/3_\360\237\223\245_\320\241\320\272\320\260\321\207\320\260\321\202\321\214.py" @@ -0,0 +1,44 @@ +import streamlit as st +from utilities_ui.custom_download_button import download_button as d_button + +st.set_page_config(page_title='Скачать', layout="wide", page_icon=':es:') +if st.session_state.get('-LOGGED_IN_BOOL-') and (st.session_state.get('-DISPLAY_READY-') + or st.session_state.get('-DOWNLOAD_VERSION-')): + result = st.session_state.get('RESULT') + if result is None: + st.error('Не можем ничего загрузить! Вы ничего не просили!') + st.stop() + # Download buttons + if st.session_state.get('-DOWNLOAD_VERSION-'): + invite, tasks_col, tasks_with_answers_col, keys_only_col, full_coll, rest = st.columns([1, 1, 2, 1, 3, 1]) + invite.write('Скачать:') + with tasks_col: + d_button( + label='Задания', + data=result['STUDENT_OUT'], + file_name=f'{result["name"]}_tasks.txt') + with tasks_with_answers_col: + d_button( + label='Задания+Ключи', + data=result['TEACHER_OUT'], + file_name=f'{result["name"]}_tasks_and_keys.txt') + with keys_only_col: + d_button( + label='Ключи', + data=result['KEYS_ONLY'], + file_name=f'{result["name"]}_keys.txt') + with full_coll: + d_button( + label='Исходник+Задания+Ключи', + data=result['TOTAL_OUT'], + file_name=f'{result["name"]}_all.txt') + + if st.session_state.get('-DISPLAY_VERSION-'): + display_tasks_with_answers, display_tasks_only = st.tabs(['Задания+Ответы', 'Задания']) + display_tasks_with_answers.write(str(result['TEACHER_OUT'].replace('_', '\_'))) + display_tasks_only.write(str(result['STUDENT_OUT'].replace('_', '\_'))) + +elif st.session_state.get('-LOGGED_IN_BOOL-'): + st.warning('**Сначала введите текст**') +else: + st.warning('**Войдите или зарегистрируйтесь**') diff --git "a/pages/4_\360\237\223\235_\320\236\320\275\320\273\320\260\320\271\320\275-\321\202\320\265\321\201\321\202.py" "b/pages/4_\360\237\223\235_\320\236\320\275\320\273\320\260\320\271\320\275-\321\202\320\265\321\201\321\202.py" new file mode 100644 index 0000000000000000000000000000000000000000..d728686638cc73a3eeab851e945aaccd6836cd49 --- /dev/null +++ "b/pages/4_\360\237\223\235_\320\236\320\275\320\273\320\260\320\271\320\275-\321\202\320\265\321\201\321\202.py" @@ -0,0 +1,66 @@ +import datetime +import pandas as pd +import streamlit as st +from utilities_database.user_database_utils import save_data_in_database +from utilities_database.user_database_widgets import user_save_text_table + +st.set_page_config(page_title='Онлайн-тест', layout="wide", page_icon=':es:') +if st.session_state.get('-ONLINE_TEST_READY-') and st.session_state.get('-LOGGED_IN_BOOL-'): + INSTRUCTION = st.expander(label='**ИНСТРУКЦИЯ**', expanded=True) + INSTRUCTION.markdown( + 'Уважаемые пользователи, предлагаем Вам заполнить опросник по оценке качества созданных заданий. ' + '\n\nНиже находится анкета с заданиями в таблице.' + '\n\n- В **первом столбце** приводится ответ - слово, удаленное из оригинального текста.' + '\n\n- Отметьте во **втором столбце**, уместно ли создавать задание с данным словом.' + '\n\n- В **третьем столбце** приведены подобранные программой дистракторы.' + '\n\n- Введите в **четвертый столбец** дистракторы (целиком или букву), которые, по Вашему мнению, ' + '**:red[не уместны]**. ' + '\n\n**:green[Уместными дистракторами]** мы предлагаем считать те, которые одновременно удовлетворяют ' + 'следующим условиям в рамках языкового уровня, для которого они созданы:' + '\n\n1. не слишком очевидно являются неправильными вариантами (*варить суп/стол*);' + '\n\n2. и при этом не могут быть полноценной заменой удаленного слова (*варить суп/кашу*)' + ) + result = st.session_state.get('RESULT') + if result is None: + st.error('Не можем ничего загрузить! Вы ничего не просили!') + st.stop() + tasks = result['TASKS_ONLY'] + answers = result['KEYS_ONLY_RAW'] + len_answers = len(answers) + st.header('Онлайн-тест') + ONLINE_TEST = st.form('Онлайн тест') + ONLINE_TEST.write(result['TEXT_WITH_GAPS'].replace('_', '\_')) + BAD_DISTRACTORS_AND_ANSWERS_temp = ONLINE_TEST.experimental_data_editor( + pd.DataFrame([{"Задание №": i+1, + "Ответ": [answers[i][1]], + "Задание уместно": False, + "Дистракторы": tasks[i][1], + "Неуместные дистракторы": ''} + for i in range(len(tasks))]), + num_rows="fixed", + height=40*len_answers, + use_container_width=True) + COMMENTS = ONLINE_TEST.text_input(label='**Прокомментировать**', + placeholder='Напишите комментарий') + SUBMIT = ONLINE_TEST.form_submit_button('READY') + if SUBMIT: + points = test_mark = 'Teacher' + appropriate_tasks = BAD_DISTRACTORS_AND_ANSWERS_temp["Задание уместно"].values.tolist() + inappropriate_distractors = BAD_DISTRACTORS_AND_ANSWERS_temp["Неуместные дистракторы"].values.tolist() + RETURN_TEST_DATA = [{'ANSWER': answers[i], + 'APPROPRIATE_TASK': appropriate_tasks[i], + 'INAPPROPRIATE_DISTRACTORS': inappropriate_distractors[i]} for i in range(len_answers)] + save_data_in_database(user_task_database=user_save_text_table, + save_type='online_test', + save_name=st.session_state['-UPLOAD_CLOUD_FILE_NAME-'], + cefr_level=st.session_state['-LOADED_CEFR_LEVEL-'], + time_stamp=str(datetime.datetime.now())[:-7], + creator_name=st.session_state.get('-USER_NAME-'), + test_taker_name=st.session_state.get('-USER_NAME-'), + test_taker_answers=RETURN_TEST_DATA, + test_taker_result={'Баллов': points, 'Всего': len_answers, 'Оценка': test_mark}, + comments=COMMENTS) +elif st.session_state.get('-LOGGED_IN_BOOL-'): + st.warning('**Не можем ничего загрузить! Вы ничего не просили!**') +else: + st.warning('**Войдите или зарегистрируйтесь**') diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..694d2c1da03f5fce49227b35098f721b01da7ec8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,13 @@ +deta>=1.1.0 +nltk>=3.8.1 +spacy>=3.5.1 +gensim>=4.3.1 +pandas>=1.5.2 +requests>=2.28.1 +trycourier>=4.4.0 +streamlit>=1.20.0 +argon2-cffi>=21.3.0 +cryptography>=39.0.2 +transformers>=4.25.1 +streamlit-extras>=0.2.6 +es_core_news_lg @ https://github.com/explosion/spacy-models/releases/download/es_core_news_lg-3.5.0/es_core_news_lg-3.5.0-py3-none-any.whl diff --git a/utilities/__pycache__/utils.cpython-310.pyc b/utilities/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..344537d8d84e103fb351dfa48337e0eed8b8ac54 Binary files /dev/null and b/utilities/__pycache__/utils.cpython-310.pyc differ diff --git a/utilities/utils.py b/utilities/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..09d0a305617073abe045cb235d79daca38d36434 --- /dev/null +++ b/utilities/utils.py @@ -0,0 +1,28 @@ +import uuid + + +def points_to_mark(good, total): + percents = good / total * 100 + if percents < 50: + return 2 + elif percents < 66: + return 3 + elif percents < 90: + return 4 + else: + return 5 + + +def answer_letter(answer, variants): + for var in variants: + letter, var = var.split(') ') + if var == answer: + return letter + ') ' + answer + + +def is_valid_uuid(value): + try: + uuid.UUID(str(value)) + return True + except ValueError: + return False diff --git a/utilities_cookies/__pycache__/cookie_manager.cpython-310.pyc b/utilities_cookies/__pycache__/cookie_manager.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79f9dba6831ec0f3f42145c4ddc0cd97055fac4d Binary files /dev/null and b/utilities_cookies/__pycache__/cookie_manager.cpython-310.pyc differ diff --git a/utilities_cookies/__pycache__/encrypted_cookie_manager.cpython-310.pyc b/utilities_cookies/__pycache__/encrypted_cookie_manager.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dfdb4c10862a626957054b23d5f3beeefdb92eeb Binary files /dev/null and b/utilities_cookies/__pycache__/encrypted_cookie_manager.cpython-310.pyc differ diff --git a/utilities_cookies/build/asset-manifest.json b/utilities_cookies/build/asset-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..8ee921ec81b0c7dc6175ceb3d13ed55547623c65 --- /dev/null +++ b/utilities_cookies/build/asset-manifest.json @@ -0,0 +1,17 @@ +{ + "files": { + "main.js": "./static/js/main.666d1b34.chunk.js", + "main.js.map": "./static/js/main.666d1b34.chunk.js.map", + "runtime-main.js": "./static/js/runtime-main.9b51049f.js", + "runtime-main.js.map": "./static/js/runtime-main.9b51049f.js.map", + "static/js/2.422ca0c4.chunk.js": "./static/js/2.422ca0c4.chunk.js", + "static/js/2.422ca0c4.chunk.js.map": "./static/js/2.422ca0c4.chunk.js.map", + "index.html": "./index.html", + "static/js/2.422ca0c4.chunk.js.LICENSE.txt": "./static/js/2.422ca0c4.chunk.js.LICENSE.txt" + }, + "entrypoints": [ + "static/js/runtime-main.9b51049f.js", + "static/js/2.422ca0c4.chunk.js", + "static/js/main.666d1b34.chunk.js" + ] +} \ No newline at end of file diff --git a/utilities_cookies/build/index.html b/utilities_cookies/build/index.html new file mode 100644 index 0000000000000000000000000000000000000000..39c8dcfa6c4939d89305768faa02d92bf85bb99d --- /dev/null +++ b/utilities_cookies/build/index.html @@ -0,0 +1 @@ +Cookies Manager \ No newline at end of file diff --git a/utilities_cookies/build/static/js/2.422ca0c4.chunk.js b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js new file mode 100644 index 0000000000000000000000000000000000000000..1fd17f11d35fc387466e4141d5ff5ba07823b5ae --- /dev/null +++ b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 2.422ca0c4.chunk.js.LICENSE.txt */ +(this.webpackJsonpstreamlit_cookie_manager=this.webpackJsonpstreamlit_cookie_manager||[]).push([[2],[function(t,e,n){t.exports=n(10)},function(t,e,n){"use strict";t.exports=n(8)},function(t,e,n){"use strict";n.d(e,"a",(function(){return xf}));var r={};n.r(r),n.d(r,"memcpy",(function(){return Yt})),n.d(r,"joinUint8Arrays",(function(){return Wt})),n.d(r,"toArrayBufferView",(function(){return Ht})),n.d(r,"toInt8Array",(function(){return $t})),n.d(r,"toInt16Array",(function(){return Kt})),n.d(r,"toInt32Array",(function(){return Gt})),n.d(r,"toBigInt64Array",(function(){return qt})),n.d(r,"toUint8Array",(function(){return Jt})),n.d(r,"toUint16Array",(function(){return Zt})),n.d(r,"toUint32Array",(function(){return Qt})),n.d(r,"toBigUint64Array",(function(){return Xt})),n.d(r,"toFloat32Array",(function(){return te})),n.d(r,"toFloat64Array",(function(){return ee})),n.d(r,"toUint8ClampedArray",(function(){return ne})),n.d(r,"toArrayBufferViewIterator",(function(){return ie})),n.d(r,"toInt8ArrayIterator",(function(){return ae})),n.d(r,"toInt16ArrayIterator",(function(){return oe})),n.d(r,"toInt32ArrayIterator",(function(){return ue})),n.d(r,"toUint8ArrayIterator",(function(){return se})),n.d(r,"toUint16ArrayIterator",(function(){return ce})),n.d(r,"toUint32ArrayIterator",(function(){return fe})),n.d(r,"toFloat32ArrayIterator",(function(){return le})),n.d(r,"toFloat64ArrayIterator",(function(){return he})),n.d(r,"toUint8ClampedArrayIterator",(function(){return ye})),n.d(r,"toArrayBufferViewAsyncIterator",(function(){return pe})),n.d(r,"toInt8ArrayAsyncIterator",(function(){return ve})),n.d(r,"toInt16ArrayAsyncIterator",(function(){return be})),n.d(r,"toInt32ArrayAsyncIterator",(function(){return ge})),n.d(r,"toUint8ArrayAsyncIterator",(function(){return me})),n.d(r,"toUint16ArrayAsyncIterator",(function(){return ke})),n.d(r,"toUint32ArrayAsyncIterator",(function(){return we})),n.d(r,"toFloat32ArrayAsyncIterator",(function(){return _e})),n.d(r,"toFloat64ArrayAsyncIterator",(function(){return Ie})),n.d(r,"toUint8ClampedArrayAsyncIterator",(function(){return Se})),n.d(r,"rebaseValueOffsets",(function(){return xe})),n.d(r,"compareArrayLike",(function(){return Ae}));var i={};n.r(i),n.d(i,"getBool",(function(){return un})),n.d(i,"getBit",(function(){return sn})),n.d(i,"setBool",(function(){return cn})),n.d(i,"truncateBitmap",(function(){return fn})),n.d(i,"packBools",(function(){return ln})),n.d(i,"iterateBits",(function(){return hn})),n.d(i,"popcnt_bit_range",(function(){return yn})),n.d(i,"popcnt_array",(function(){return pn})),n.d(i,"popcnt_uint32",(function(){return dn}));var a={};n.r(a),n.d(a,"uint16ToFloat64",(function(){return Nr})),n.d(a,"float64ToUint16",(function(){return Cr}));var o={};n.r(o),n.d(o,"isArrowBigNumSymbol",(function(){return Hr})),n.d(o,"bignumToString",(function(){return Yr})),n.d(o,"bignumToBigInt",(function(){return Wr})),n.d(o,"BN",(function(){return Xr}));var u={};n.r(u),n.d(u,"clampIndex",(function(){return Ci})),n.d(u,"clampRange",(function(){return Vi})),n.d(u,"createElementComparator",(function(){return Pi}));var s={};n.r(s),n.d(s,"BaseInt64",(function(){return ao})),n.d(s,"Uint64",(function(){return oo})),n.d(s,"Int64",(function(){return uo})),n.d(s,"Int128",(function(){return so}));n(3);var c=n(1),f=n.n(c),l=new WeakMap,h=new WeakMap;function y(t){var e=l.get(t);return console.assert(null!=e,"'this' is expected an Event object, but got",t),e}function p(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"===typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!==typeof console&&"function"===typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function d(t,e){l.set(this,{eventTarget:t,event:e,eventPhase:2,currentTarget:t,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:e.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});for(var n=Object.keys(e),r=0;r0){for(var t=new Array(arguments.length),e=0;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return o=t.done,t},e:function(t){u=!0,a=t},f:function(){try{o||null==n.return||n.return()}finally{if(u)throw a}}}}function D(t,e,n,r,i,a,o){try{var u=t[a](o),s=u.value}catch(c){return void n(c)}u.done?e(s):Promise.resolve(s).then(r,i)}function L(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var a=t.apply(e,n);function o(t){D(a,r,i,o,u,"next",t)}function u(t){D(a,r,i,o,u,"throw",t)}o(void 0)}))}}function F(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function M(t,e){for(var n=0;n>>0)+4294967296*this.high},W.Long.prototype.equals=function(t){return this.low==t.low&&this.high==t.high},W.Long.ZERO=new W.Long(0,0),W.Builder=function(t){if(t)e=t;else var e=1024;this.bb=W.ByteBuffer.allocate(e),this.space=e,this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},W.Builder.prototype.clear=function(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},W.Builder.prototype.forceDefaults=function(t){this.force_defaults=t},W.Builder.prototype.dataBuffer=function(){return this.bb},W.Builder.prototype.asUint8Array=function(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())},W.Builder.prototype.prep=function(t,e){t>this.minalign&&(this.minalign=t);for(var n=1+~(this.bb.capacity()-this.space+e)&t-1;this.space=0&&0==this.vtable[e];e--);for(var n=e+1;e>=0;e--)this.addInt16(0!=this.vtable[e]?t-this.vtable[e]:0);this.addInt16(t-this.object_start);var r=(n+2)*W.SIZEOF_SHORT;this.addInt16(r);var i=0,a=this.space;t:for(e=0;e=0;r--)this.writeInt8(n.charCodeAt(r))}this.prep(this.minalign,W.SIZEOF_INT),this.addOffset(t),this.bb.setPosition(this.space)},W.Builder.prototype.requiredField=function(t,e){var n=this.bb.capacity()-t,r=n-this.bb.readInt32(n);if(!(0!=this.bb.readInt16(r+e)))throw new Error("FlatBuffers: field "+e+" must be set")},W.Builder.prototype.startVector=function(t,e,n){this.notNested(),this.vector_num_elems=e,this.prep(W.SIZEOF_INT,t*e),this.prep(n,t*e)},W.Builder.prototype.endVector=function(){return this.writeInt32(this.vector_num_elems),this.offset()},W.Builder.prototype.createString=function(t){if(t instanceof Uint8Array)var e=t;else{e=[];for(var n=0;n=56320)r=i;else r=(i<<10)+t.charCodeAt(n++)+-56613888;r<128?e.push(r):(r<2048?e.push(r>>6&31|192):(r<65536?e.push(r>>12&15|224):e.push(r>>18&7|240,r>>12&63|128),e.push(r>>6&63|128)),e.push(63&r|128))}}this.addInt8(0),this.startVector(1,e.length,1),this.bb.setPosition(this.space-=e.length);n=0;for(var a=this.space,o=this.bb.bytes();n>24},W.ByteBuffer.prototype.readUint8=function(t){return this.bytes_[t]},W.ByteBuffer.prototype.readInt16=function(t){return this.readUint16(t)<<16>>16},W.ByteBuffer.prototype.readUint16=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8},W.ByteBuffer.prototype.readInt32=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24},W.ByteBuffer.prototype.readUint32=function(t){return this.readInt32(t)>>>0},W.ByteBuffer.prototype.readInt64=function(t){return new W.Long(this.readInt32(t),this.readInt32(t+4))},W.ByteBuffer.prototype.readUint64=function(t){return new W.Long(this.readUint32(t),this.readUint32(t+4))},W.ByteBuffer.prototype.readFloat32=function(t){return W.int32[0]=this.readInt32(t),W.float32[0]},W.ByteBuffer.prototype.readFloat64=function(t){return W.int32[W.isLittleEndian?0:1]=this.readInt32(t),W.int32[W.isLittleEndian?1:0]=this.readInt32(t+4),W.float64[0]},W.ByteBuffer.prototype.writeInt8=function(t,e){this.bytes_[t]=e},W.ByteBuffer.prototype.writeUint8=function(t,e){this.bytes_[t]=e},W.ByteBuffer.prototype.writeInt16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},W.ByteBuffer.prototype.writeUint16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},W.ByteBuffer.prototype.writeInt32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},W.ByteBuffer.prototype.writeUint32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},W.ByteBuffer.prototype.writeInt64=function(t,e){this.writeInt32(t,e.low),this.writeInt32(t+4,e.high)},W.ByteBuffer.prototype.writeUint64=function(t,e){this.writeUint32(t,e.low),this.writeUint32(t+4,e.high)},W.ByteBuffer.prototype.writeFloat32=function(t,e){W.float32[0]=e,this.writeInt32(t,W.int32[0])},W.ByteBuffer.prototype.writeFloat64=function(t,e){W.float64[0]=e,this.writeInt32(t,W.int32[W.isLittleEndian?0:1]),this.writeInt32(t+4,W.int32[W.isLittleEndian?1:0])},W.ByteBuffer.prototype.getBufferIdentifier=function(){if(this.bytes_.length>10),56320+(1023&a)))}return r},W.ByteBuffer.prototype.__indirect=function(t){return t+this.readInt32(t)},W.ByteBuffer.prototype.__vector=function(t){return t+this.readInt32(t)+W.SIZEOF_INT},W.ByteBuffer.prototype.__vector_len=function(t){return this.readInt32(t+this.readInt32(t))},W.ByteBuffer.prototype.__has_identifier=function(t){if(t.length!=W.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+W.FILE_IDENTIFIER_LENGTH);for(var e=0;e>6*n)+r];n>0;){var a=e>>6*(n-1);i.push(128|63&a),n-=1}return i}}Z.prototype={decode:function(t,e){var n;n="object"===typeof t&&t instanceof ArrayBuffer?new Uint8Array(t):"object"===typeof t&&"buffer"in t&&t.buffer instanceof ArrayBuffer?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(0),e=$(e),this._streaming||(this._decoder=new X({fatal:this._fatal}),this._BOMseen=!1),this._streaming=Boolean(e.stream);for(var r,i=new K(n),a=[];!i.endOfStream()&&(r=this._decoder.handler(i,i.read()))!==G;)null!==r&&(Array.isArray(r)?a.push.apply(a,r):a.push(r));if(!this._streaming){do{if((r=this._decoder.handler(i,i.read()))===G)break;null!==r&&(Array.isArray(r)?a.push.apply(a,r):a.push(r))}while(!i.endOfStream());this._decoder=null}return a.length&&(-1===["utf-8"].indexOf(this.encoding)||this._ignoreBOM||this._BOMseen||(65279===a[0]?(this._BOMseen=!0,a.shift()):this._BOMseen=!0)),function(t){for(var e="",n=0;n>10),56320+(1023&r)))}return e}(a)}},Q.prototype={encode:function(t,e){t=t?String(t):"",e=$(e),this._streaming||(this._encoder=new tt(this._options)),this._streaming=Boolean(e.stream);for(var n,r=[],i=new K(function(t){for(var e=String(t),n=e.length,r=0,i=[];r57343)i.push(a);else if(56320<=a&&a<=57343)i.push(65533);else if(55296<=a&&a<=56319)if(r===n-1)i.push(65533);else{var o=t.charCodeAt(r+1);if(56320<=o&&o<=57343){var u=1023&a,s=1023&o;i.push(65536+(u<<10)+s),r+=1}else i.push(65533)}r+=1}return i}(t));!i.endOfStream()&&(n=this._encoder.handler(i,i.read()))!==G;)Array.isArray(n)?r.push.apply(r,n):r.push(n);if(!this._streaming){for(;(n=this._encoder.handler(i,i.read()))!==G;)Array.isArray(n)?r.push.apply(r,n):r.push(n);this._encoder=null}return new Uint8Array(r)}};var et="function"===typeof Buffer?Buffer:null,nt="function"===typeof TextDecoder&&"function"===typeof TextEncoder,rt=function(t){if(nt||!et){var e=new t("utf-8");return function(t){return e.decode(t)}}return function(t){var e=Jt(t),n=e.buffer,r=e.byteOffset,i=e.length;return et.from(n,r,i).toString()}}("undefined"!==typeof TextDecoder?TextDecoder:Z),it=function(t){if(nt||!et){var e=new t;return function(t){return e.encode(t)}}return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return Jt(et.from(t,"utf8"))}}("undefined"!==typeof TextEncoder?TextEncoder:Q);function at(t,e){return at=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},at(t,e)}function ot(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(t,"prototype",{value:Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),writable:!1}),e&&at(t,e)}function ut(t){return ut=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},ut(t)}function st(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var ct=n(4),ft=n.n(ct);function lt(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function ht(t,e){if(e&&("object"===ft()(e)||"function"===typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return lt(t)}function yt(t){var e=st();return function(){var n,r=ut(t);if(e){var i=ut(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return ht(this,n)}}var pt=Object.freeze({done:!0,value:void 0}),dt=function(){function t(e){F(this,t),this._json=e}return E(t,[{key:"schema",get:function(){return this._json.schema}},{key:"batches",get:function(){return this._json.batches||[]}},{key:"dictionaries",get:function(){return this._json.dictionaries||[]}}]),t}(),vt=function(){function t(){F(this,t)}return E(t,[{key:"tee",value:function(){return this._getDOMStream().tee()}},{key:"pipe",value:function(t,e){return this._getNodeStream().pipe(t,e)}},{key:"pipeTo",value:function(t,e){return this._getDOMStream().pipeTo(t,e)}},{key:"pipeThrough",value:function(t,e){return this._getDOMStream().pipeThrough(t,e)}},{key:"_getDOMStream",value:function(){return this._DOMStream||(this._DOMStream=this.toDOMStream())}},{key:"_getNodeStream",value:function(){return this._nodeStream||(this._nodeStream=this.toNodeStream())}}]),t}(),bt=function(t,e){ot(r,t);var n=yt(r);function r(){var t;return F(this,r),(t=n.call(this))._values=[],t.resolvers=[],t._closedPromise=new Promise((function(e){return t._closedPromiseResolve=e})),t}return E(r,[{key:"closed",get:function(){return this._closedPromise}},{key:"cancel",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.return(e);case 2:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"write",value:function(t){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(t):this.resolvers.shift().resolve({done:!1,value:t}))}},{key:"abort",value:function(t){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:t}:this.resolvers.shift().reject({done:!0,value:t}))}},{key:"close",value:function(){if(this._closedPromiseResolve){for(var t=this.resolvers;t.length>0;)t.shift().resolve(pt);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}},{key:e,value:function(){return this}},{key:"toDOMStream",value:function(t){return Be.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,t)}},{key:"toNodeStream",value:function(t){return Be.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,t)}},{key:"throw",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.abort(e);case 2:return t.abrupt("return",pt);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"return",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.close();case 2:return t.abrupt("return",pt);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"read",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.next(e,"read");case 2:return t.abrupt("return",t.sent.value);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"peek",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.next(e,"peek");case 2:return t.abrupt("return",t.sent.value);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"next",value:function(){var t=this;return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((function(e,n){t.resolvers.push({resolve:e,reject:n})})):Promise.resolve(pt)}},{key:"_ensureOpen",value:function(){if(this._closedPromiseResolve)return!0;throw new Error("".concat(this," is closed"))}}]),r}(vt,Symbol.asyncIterator),gt=U(function(){var t=function(){throw new Error("BigInt is not available in this environment")};function e(){throw t()}return e.asIntN=function(){throw t()},e.asUintN=function(){throw t()},"undefined"!==typeof BigInt?[BigInt,!0]:[e,!1]}(),2),mt=gt[0],kt=gt[1],wt=U(function(){var t=function(){throw new Error("BigInt64Array is not available in this environment")};return"undefined"!==typeof BigInt64Array?[BigInt64Array,!0]:[function(){function e(){throw F(this,e),t()}return E(e,null,[{key:"BYTES_PER_ELEMENT",get:function(){return 8}},{key:"of",value:function(){throw t()}},{key:"from",value:function(){throw t()}}]),e}(),!1]}(),2),_t=wt[0],It=(wt[1],U(function(){var t=function(){throw new Error("BigUint64Array is not available in this environment")};return"undefined"!==typeof BigUint64Array?[BigUint64Array,!0]:[function(){function e(){throw F(this,e),t()}return E(e,null,[{key:"BYTES_PER_ELEMENT",get:function(){return 8}},{key:"of",value:function(){throw t()}},{key:"from",value:function(){throw t()}}]),e}(),!1]}(),2)),St=It[0],xt=(It[1],function(t){return"number"===typeof t}),At=function(t){return"boolean"===typeof t},Tt=function(t){return"function"===typeof t},Bt=function(t){return null!=t&&Object(t)===t},Ot=function(t){return Bt(t)&&Tt(t.then)},Dt=function(t){return Bt(t)&&Tt(t[Symbol.iterator])},Lt=function(t){return Bt(t)&&Tt(t[Symbol.asyncIterator])},Ft=function(t){return Bt(t)&&Bt(t.schema)},Mt=function(t){return Bt(t)&&"done"in t&&"value"in t},Et=function(t){return Bt(t)&&Tt(t.stat)&&xt(t.fd)},Ut=function(t){return Bt(t)&&Ct(t.body)},Nt=function(t){return Bt(t)&&Tt(t.abort)&&Tt(t.getWriter)&&!(t instanceof vt)},Ct=function(t){return Bt(t)&&Tt(t.cancel)&&Tt(t.getReader)&&!(t instanceof vt)},Vt=function(t){return Bt(t)&&Tt(t.end)&&Tt(t.write)&&At(t.writable)&&!(t instanceof vt)},jt=function(t){return Bt(t)&&Tt(t.read)&&Tt(t.pipe)&&At(t.readable)&&!(t instanceof vt)},Rt=R.mark(ie),Pt=W.ByteBuffer,zt="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;function Yt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.byteLength,i=t.byteLength,a=new Uint8Array(t.buffer,t.byteOffset,i),o=new Uint8Array(e.buffer,e.byteOffset,Math.min(r,i));return a.set(o,n),t}function Wt(t,e){for(var n,r,i,a=function(t){for(var e,n,r,i,a,o,u=t[0]?[t[0]]:[],s=0,c=0,f=t.length;++s0)do{if(t[n]!==e[n])return!1}while(++n0&&(r.push(i),u+=i.byteLength),!(e||o<=u)){y.next=22;break}case 16:return y.next=18,s();case 18:h=y.sent,a=h.cmd,o=h.size;case 21:if(o0&&(i.push(a),s+=a.byteLength),!(n||u<=s)){t.next=31;break}case 25:return t.next=27,c();case 27:y=t.sent,o=y.cmd,u=y.size;case 30:if(u0&&(i.push(Jt(a)),s+=a.byteLength),!(n||u<=s)){t.next=31;break}case 25:return t.next=27,c();case 27:y=t.sent,o=y.cmd,u=y.size;case 30:if(u=i)){t.next=2;break}return t.abrupt("return",{done:!1,value:new Uint8Array(n,0,i)});case 2:return t.next=4,e.read(new Uint8Array(n,r,i-r));case 4:if(a=t.sent,o=a.done,u=a.value,!((r+=u.byteLength)0&&(c.push(f),s+=f.byteLength)),!(i||u<=s)){t.next=36;break}case 30:return t.next=32,l();case 32:d=t.sent,o=d.cmd,u=d.size;case 35:if(u=0;n--)t.addInt32(e[n]);return t.endVector()}},{key:"startTypeIdsVector",value:function(t,e){t.startVector(4,e,4)}},{key:"endUnion",value:function(t){return t.endObject()}},{key:"createUnion",value:function(t,n,r){return e.startUnion(t),e.addMode(t,n),e.addTypeIds(t,r),e.endUnion(t)}}]),e}();e.Union=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"bitWidth",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}},{key:"isSigned",value:function(){var t=this.bb.__offset(this.bb_pos,6);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}}],[{key:"getRootAsInt",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startInt",value:function(t){t.startObject(2)}},{key:"addBitWidth",value:function(t,e){t.addFieldInt32(0,e,0)}},{key:"addIsSigned",value:function(t,e){t.addFieldInt8(1,+e,0)}},{key:"endInt",value:function(t){return t.endObject()}},{key:"createInt",value:function(e,n,r){return t.startInt(e),t.addBitWidth(e,n),t.addIsSigned(e,r),t.endInt(e)}}]),t}();t.Int=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"precision",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.Precision.HALF}}],[{key:"getRootAsFloatingPoint",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startFloatingPoint",value:function(t){t.startObject(1)}},{key:"addPrecision",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.Precision.HALF)}},{key:"endFloatingPoint",value:function(t){return t.endObject()}},{key:"createFloatingPoint",value:function(t,n){return e.startFloatingPoint(t),e.addPrecision(t,n),e.endFloatingPoint(t)}}]),e}();e.FloatingPoint=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}}],[{key:"getRootAsUtf8",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startUtf8",value:function(t){t.startObject(0)}},{key:"endUtf8",value:function(t){return t.endObject()}},{key:"createUtf8",value:function(e){return t.startUtf8(e),t.endUtf8(e)}}]),t}();t.Utf8=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}}],[{key:"getRootAsBinary",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startBinary",value:function(t){t.startObject(0)}},{key:"endBinary",value:function(t){return t.endObject()}},{key:"createBinary",value:function(e){return t.startBinary(e),t.endBinary(e)}}]),t}();t.Binary=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}}],[{key:"getRootAsLargeUtf8",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startLargeUtf8",value:function(t){t.startObject(0)}},{key:"endLargeUtf8",value:function(t){return t.endObject()}},{key:"createLargeUtf8",value:function(e){return t.startLargeUtf8(e),t.endLargeUtf8(e)}}]),t}();t.LargeUtf8=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}}],[{key:"getRootAsLargeBinary",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startLargeBinary",value:function(t){t.startObject(0)}},{key:"endLargeBinary",value:function(t){return t.endObject()}},{key:"createLargeBinary",value:function(e){return t.startLargeBinary(e),t.endLargeBinary(e)}}]),t}();t.LargeBinary=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"byteWidth",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}}],[{key:"getRootAsFixedSizeBinary",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startFixedSizeBinary",value:function(t){t.startObject(1)}},{key:"addByteWidth",value:function(t,e){t.addFieldInt32(0,e,0)}},{key:"endFixedSizeBinary",value:function(t){return t.endObject()}},{key:"createFixedSizeBinary",value:function(e,n){return t.startFixedSizeBinary(e),t.addByteWidth(e,n),t.endFixedSizeBinary(e)}}]),t}();t.FixedSizeBinary=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}}],[{key:"getRootAsBool",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startBool",value:function(t){t.startObject(0)}},{key:"endBool",value:function(t){return t.endObject()}},{key:"createBool",value:function(e){return t.startBool(e),t.endBool(e)}}]),t}();t.Bool=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"precision",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}},{key:"scale",value:function(){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt32(this.bb_pos+t):0}}],[{key:"getRootAsDecimal",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startDecimal",value:function(t){t.startObject(2)}},{key:"addPrecision",value:function(t,e){t.addFieldInt32(0,e,0)}},{key:"addScale",value:function(t,e){t.addFieldInt32(1,e,0)}},{key:"endDecimal",value:function(t){return t.endObject()}},{key:"createDecimal",value:function(e,n,r){return t.startDecimal(e),t.addPrecision(e,n),t.addScale(e,r),t.endDecimal(e)}}]),t}();t.Decimal=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"unit",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.DateUnit.MILLISECOND}}],[{key:"getRootAsDate",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startDate",value:function(t){t.startObject(1)}},{key:"addUnit",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.DateUnit.MILLISECOND)}},{key:"endDate",value:function(t){return t.endObject()}},{key:"createDate",value:function(t,n){return e.startDate(t),e.addUnit(t,n),e.endDate(t)}}]),e}();e.Date=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"unit",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.MILLISECOND}},{key:"bitWidth",value:function(){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt32(this.bb_pos+t):32}}],[{key:"getRootAsTime",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startTime",value:function(t){t.startObject(2)}},{key:"addUnit",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.MILLISECOND)}},{key:"addBitWidth",value:function(t,e){t.addFieldInt32(1,e,32)}},{key:"endTime",value:function(t){return t.endObject()}},{key:"createTime",value:function(t,n,r){return e.startTime(t),e.addUnit(t,n),e.addBitWidth(t,r),e.endTime(t)}}]),e}();e.Time=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"unit",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.SECOND}},{key:"timezone",value:function(t){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}}],[{key:"getRootAsTimestamp",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startTimestamp",value:function(t){t.startObject(2)}},{key:"addUnit",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.SECOND)}},{key:"addTimezone",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"endTimestamp",value:function(t){return t.endObject()}},{key:"createTimestamp",value:function(t,n,r){return e.startTimestamp(t),e.addUnit(t,n),e.addTimezone(t,r),e.endTimestamp(t)}}]),e}();e.Timestamp=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"unit",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH}}],[{key:"getRootAsInterval",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startInterval",value:function(t){t.startObject(1)}},{key:"addUnit",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH)}},{key:"endInterval",value:function(t){return t.endObject()}},{key:"createInterval",value:function(t,n){return e.startInterval(t),e.addUnit(t,n),e.endInterval(t)}}]),e}();e.Interval=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"unit",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.MILLISECOND}}],[{key:"getRootAsDuration",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startDuration",value:function(t){t.startObject(1)}},{key:"addUnit",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.MILLISECOND)}},{key:"endDuration",value:function(t){return t.endObject()}},{key:"createDuration",value:function(t,n){return e.startDuration(t),e.addUnit(t,n),e.endDuration(t)}}]),e}();e.Duration=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"key",value:function(t){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}},{key:"value",value:function(t){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}}],[{key:"getRootAsKeyValue",value:function(e,n){return(n||new t).__init(e.readInt32(e.position())+e.position(),e)}},{key:"startKeyValue",value:function(t){t.startObject(2)}},{key:"addKey",value:function(t,e){t.addFieldOffset(0,e,0)}},{key:"addValue",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"endKeyValue",value:function(t){return t.endObject()}},{key:"createKeyValue",value:function(e,n,r){return t.startKeyValue(e),t.addKey(e,n),t.addValue(e,r),t.endKeyValue(e)}}]),t}();t.KeyValue=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"id",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}},{key:"indexType",value:function(e){var n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.apache.arrow.flatbuf.Int).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}},{key:"isOrdered",value:function(){var t=this.bb.__offset(this.bb_pos,8);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}}],[{key:"getRootAsDictionaryEncoding",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startDictionaryEncoding",value:function(t){t.startObject(3)}},{key:"addId",value:function(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}},{key:"addIndexType",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"addIsOrdered",value:function(t,e){t.addFieldInt8(2,+e,0)}},{key:"endDictionaryEncoding",value:function(t){return t.endObject()}},{key:"createDictionaryEncoding",value:function(t,n,r,i){return e.startDictionaryEncoding(t),e.addId(t,n),e.addIndexType(t,r),e.addIsOrdered(t,i),e.endDictionaryEncoding(t)}}]),e}();e.DictionaryEncoding=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"name",value:function(t){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}},{key:"nullable",value:function(){var t=this.bb.__offset(this.bb_pos,6);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}},{key:"typeType",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb_pos+e):t.apache.arrow.flatbuf.Type.NONE}},{key:"type",value:function(t){var e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__union(t,this.bb_pos+e):null}},{key:"dictionary",value:function(e){var n=this.bb.__offset(this.bb_pos,12);return n?(e||new t.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}},{key:"children",value:function(e,n){var r=this.bb.__offset(this.bb_pos,14);return r?(n||new t.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"childrenLength",value:function(){var t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}},{key:"customMetadata",value:function(e,n){var r=this.bb.__offset(this.bb_pos,16);return r?(n||new t.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"customMetadataLength",value:function(){var t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}}],[{key:"getRootAsField",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startField",value:function(t){t.startObject(7)}},{key:"addName",value:function(t,e){t.addFieldOffset(0,e,0)}},{key:"addNullable",value:function(t,e){t.addFieldInt8(1,+e,0)}},{key:"addTypeType",value:function(e,n){e.addFieldInt8(2,n,t.apache.arrow.flatbuf.Type.NONE)}},{key:"addType",value:function(t,e){t.addFieldOffset(3,e,0)}},{key:"addDictionary",value:function(t,e){t.addFieldOffset(4,e,0)}},{key:"addChildren",value:function(t,e){t.addFieldOffset(5,e,0)}},{key:"createChildrenVector",value:function(t,e){t.startVector(4,e.length,4);for(var n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}},{key:"startChildrenVector",value:function(t,e){t.startVector(4,e,4)}},{key:"addCustomMetadata",value:function(t,e){t.addFieldOffset(6,e,0)}},{key:"createCustomMetadataVector",value:function(t,e){t.startVector(4,e.length,4);for(var n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}},{key:"startCustomMetadataVector",value:function(t,e){t.startVector(4,e,4)}},{key:"endField",value:function(t){return t.endObject()}},{key:"createField",value:function(t,n,r,i,a,o,u,s){return e.startField(t),e.addName(t,n),e.addNullable(t,r),e.addTypeType(t,i),e.addType(t,a),e.addDictionary(t,o),e.addChildren(t,u),e.addCustomMetadata(t,s),e.endField(t)}}]),e}();e.Field=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"offset",value:function(){return this.bb.readInt64(this.bb_pos)}},{key:"length",value:function(){return this.bb.readInt64(this.bb_pos+8)}}],[{key:"createBuffer",value:function(t,e,n){return t.prep(8,16),t.writeInt64(n),t.writeInt64(e),t.offset()}}]),t}();t.Buffer=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"endianness",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.Endianness.Little}},{key:"fields",value:function(e,n){var r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"fieldsLength",value:function(){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}},{key:"customMetadata",value:function(e,n){var r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"customMetadataLength",value:function(){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}}],[{key:"getRootAsSchema",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startSchema",value:function(t){t.startObject(3)}},{key:"addEndianness",value:function(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.Endianness.Little)}},{key:"addFields",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"createFieldsVector",value:function(t,e){t.startVector(4,e.length,4);for(var n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}},{key:"startFieldsVector",value:function(t,e){t.startVector(4,e,4)}},{key:"addCustomMetadata",value:function(t,e){t.addFieldOffset(2,e,0)}},{key:"createCustomMetadataVector",value:function(t,e){t.startVector(4,e.length,4);for(var n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}},{key:"startCustomMetadataVector",value:function(t,e){t.startVector(4,e,4)}},{key:"endSchema",value:function(t){return t.endObject()}},{key:"finishSchemaBuffer",value:function(t,e){t.finish(e)}},{key:"createSchema",value:function(t,n,r,i){return e.startSchema(t),e.addEndianness(t,n),e.addFields(t,r),e.addCustomMetadata(t,i),e.endSchema(t)}}]),e}();e.Schema=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ye||(Ye={})),function(t){!function(t){!function(t){!function(t){t.Schema=Ye.apache.arrow.flatbuf.Schema}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={})),function(t){!function(t){!function(t){!function(t){!function(t){t[t.NONE=0]="NONE",t[t.Schema=1]="Schema",t[t.DictionaryBatch=2]="DictionaryBatch",t[t.RecordBatch=3]="RecordBatch",t[t.Tensor=4]="Tensor",t[t.SparseTensor=5]="SparseTensor"}(t.MessageHeader||(t.MessageHeader={}))}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"length",value:function(){return this.bb.readInt64(this.bb_pos)}},{key:"nullCount",value:function(){return this.bb.readInt64(this.bb_pos+8)}}],[{key:"createFieldNode",value:function(t,e,n){return t.prep(8,16),t.writeInt64(n),t.writeInt64(e),t.offset()}}]),t}();t.FieldNode=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"length",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}},{key:"nodes",value:function(e,n){var r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.apache.arrow.flatbuf.FieldNode).__init(this.bb.__vector(this.bb_pos+r)+16*e,this.bb):null}},{key:"nodesLength",value:function(){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}},{key:"buffers",value:function(t,e){var n=this.bb.__offset(this.bb_pos,8);return n?(e||new Ye.apache.arrow.flatbuf.Buffer).__init(this.bb.__vector(this.bb_pos+n)+16*t,this.bb):null}},{key:"buffersLength",value:function(){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}}],[{key:"getRootAsRecordBatch",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startRecordBatch",value:function(t){t.startObject(3)}},{key:"addLength",value:function(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}},{key:"addNodes",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"startNodesVector",value:function(t,e){t.startVector(16,e,8)}},{key:"addBuffers",value:function(t,e){t.addFieldOffset(2,e,0)}},{key:"startBuffersVector",value:function(t,e){t.startVector(16,e,8)}},{key:"endRecordBatch",value:function(t){return t.endObject()}},{key:"createRecordBatch",value:function(t,n,r,i){return e.startRecordBatch(t),e.addLength(t,n),e.addNodes(t,r),e.addBuffers(t,i),e.endRecordBatch(t)}}]),e}();e.RecordBatch=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"id",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}},{key:"data",value:function(e){var n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.apache.arrow.flatbuf.RecordBatch).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}},{key:"isDelta",value:function(){var t=this.bb.__offset(this.bb_pos,8);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}}],[{key:"getRootAsDictionaryBatch",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startDictionaryBatch",value:function(t){t.startObject(3)}},{key:"addId",value:function(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}},{key:"addData",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"addIsDelta",value:function(t,e){t.addFieldInt8(2,+e,0)}},{key:"endDictionaryBatch",value:function(t){return t.endObject()}},{key:"createDictionaryBatch",value:function(t,n,r,i){return e.startDictionaryBatch(t),e.addId(t,n),e.addData(t,r),e.addIsDelta(t,i),e.endDictionaryBatch(t)}}]),e}();e.DictionaryBatch=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={})),function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"version",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):Ye.apache.arrow.flatbuf.MetadataVersion.V1}},{key:"headerType",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint8(this.bb_pos+e):t.apache.arrow.flatbuf.MessageHeader.NONE}},{key:"header",value:function(t){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__union(t,this.bb_pos+e):null}},{key:"bodyLength",value:function(){var t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}},{key:"customMetadata",value:function(t,e){var n=this.bb.__offset(this.bb_pos,12);return n?(e||new Ye.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+4*t),this.bb):null}},{key:"customMetadataLength",value:function(){var t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}}],[{key:"getRootAsMessage",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startMessage",value:function(t){t.startObject(5)}},{key:"addVersion",value:function(t,e){t.addFieldInt16(0,e,Ye.apache.arrow.flatbuf.MetadataVersion.V1)}},{key:"addHeaderType",value:function(e,n){e.addFieldInt8(1,n,t.apache.arrow.flatbuf.MessageHeader.NONE)}},{key:"addHeader",value:function(t,e){t.addFieldOffset(2,e,0)}},{key:"addBodyLength",value:function(t,e){t.addFieldInt64(3,e,t.createLong(0,0))}},{key:"addCustomMetadata",value:function(t,e){t.addFieldOffset(4,e,0)}},{key:"createCustomMetadataVector",value:function(t,e){t.startVector(4,e.length,4);for(var n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}},{key:"startCustomMetadataVector",value:function(t,e){t.startVector(4,e,4)}},{key:"endMessage",value:function(t){return t.endObject()}},{key:"finishMessageBuffer",value:function(t,e){t.finish(e)}},{key:"createMessage",value:function(t,n,r,i,a,o){return e.startMessage(t),e.addVersion(t,n),e.addHeaderType(t,r),e.addHeader(t,i),e.addBodyLength(t,a),e.addCustomMetadata(t,o),e.endMessage(t)}}]),e}();e.Message=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Ge||(Ge={}));Ye.apache.arrow.flatbuf.Type;var Je,Ze,Qe=Ye.apache.arrow.flatbuf.DateUnit,Xe=Ye.apache.arrow.flatbuf.TimeUnit,tn=Ye.apache.arrow.flatbuf.Precision,en=Ye.apache.arrow.flatbuf.UnionMode,nn=Ye.apache.arrow.flatbuf.IntervalUnit,rn=Ge.apache.arrow.flatbuf.MessageHeader,an=Ye.apache.arrow.flatbuf.MetadataVersion;!function(t){t[t.NONE=0]="NONE",t[t.Null=1]="Null",t[t.Int=2]="Int",t[t.Float=3]="Float",t[t.Binary=4]="Binary",t[t.Utf8=5]="Utf8",t[t.Bool=6]="Bool",t[t.Decimal=7]="Decimal",t[t.Date=8]="Date",t[t.Time=9]="Time",t[t.Timestamp=10]="Timestamp",t[t.Interval=11]="Interval",t[t.List=12]="List",t[t.Struct=13]="Struct",t[t.Union=14]="Union",t[t.FixedSizeBinary=15]="FixedSizeBinary",t[t.FixedSizeList=16]="FixedSizeList",t[t.Map=17]="Map",t[t.Dictionary=-1]="Dictionary",t[t.Int8=-2]="Int8",t[t.Int16=-3]="Int16",t[t.Int32=-4]="Int32",t[t.Int64=-5]="Int64",t[t.Uint8=-6]="Uint8",t[t.Uint16=-7]="Uint16",t[t.Uint32=-8]="Uint32",t[t.Uint64=-9]="Uint64",t[t.Float16=-10]="Float16",t[t.Float32=-11]="Float32",t[t.Float64=-12]="Float64",t[t.DateDay=-13]="DateDay",t[t.DateMillisecond=-14]="DateMillisecond",t[t.TimestampSecond=-15]="TimestampSecond",t[t.TimestampMillisecond=-16]="TimestampMillisecond",t[t.TimestampMicrosecond=-17]="TimestampMicrosecond",t[t.TimestampNanosecond=-18]="TimestampNanosecond",t[t.TimeSecond=-19]="TimeSecond",t[t.TimeMillisecond=-20]="TimeMillisecond",t[t.TimeMicrosecond=-21]="TimeMicrosecond",t[t.TimeNanosecond=-22]="TimeNanosecond",t[t.DenseUnion=-23]="DenseUnion",t[t.SparseUnion=-24]="SparseUnion",t[t.IntervalDayTime=-25]="IntervalDayTime",t[t.IntervalYearMonth=-26]="IntervalYearMonth"}(Je||(Je={})),function(t){t[t.OFFSET=0]="OFFSET",t[t.DATA=1]="DATA",t[t.VALIDITY=2]="VALIDITY",t[t.TYPE=3]="TYPE"}(Ze||(Ze={}));var on=R.mark(hn);function un(t,e,n,r){return 0!==(n&1<>r}function cn(t,e,n){return n?!!(t[e>>3]|=1<>3]&=~(1<0||n.byteLength>3):ln(hn(n,t,e,null,un)).subarray(0,r)),i}return n}function ln(t){var e,n=[],r=0,i=0,a=0,o=O(t);try{for(o.s();!(e=o.n()).done;){e.value&&(a|=1<0)&&(n[r++]=a);var u=new Uint8Array(n.length+7&-8);return u.set(n),u}function hn(t,e,n,r,i){var a,o,u,s,c;return R.wrap((function(f){for(;;)switch(f.prev=f.next){case 0:a=e%8,o=e>>3,u=0,s=n;case 3:if(!(s>0)){f.next=11;break}c=t[o++];case 5:return f.next=7,i(r,u++,c,a);case 7:if(--s>0&&++a<8){f.next=5;break}case 8:a=0,f.next=3;break;case 11:case"end":return f.stop()}}),on)}function yn(t,e,n){if(n-e<=0)return 0;if(n-e<8){var r,i=0,a=O(hn(t,e,n-e,t,sn));try{for(a.s();!(r=a.n()).done;){i+=r.value}}catch(s){a.e(s)}finally{a.f()}return i}var o=n>>3<<3,u=e+(e%8===0?0:8-e%8);return yn(t,e,u)+yn(t,o,n)+pn(t,u>>3,o-u>>3)}function pn(t,e,n){for(var r=0,i=0|e,a=new DataView(t.buffer,t.byteOffset,t.byteLength),o=void 0===n?t.byteLength:i+n;o-i>=4;)r+=dn(a.getUint32(i)),i+=4;for(;o-i>=2;)r+=dn(a.getUint16(i)),i+=2;for(;o-i>=1;)r+=dn(a.getUint8(i)),i+=1;return r}function dn(t){var e=0|t;return 16843009*((e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135)>>>24}function vn(t){return function(t){if(Array.isArray(t))return T(t)}(t)||function(t){if("undefined"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||B(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var bn=function(){function t(){F(this,t)}return E(t,[{key:"visitMany",value:function(t){for(var e=this,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1&&void 0!==arguments[1])||arguments[1];return gn(this,t,e)}},{key:"visitNull",value:function(t){return null}},{key:"visitBool",value:function(t){return null}},{key:"visitInt",value:function(t){return null}},{key:"visitFloat",value:function(t){return null}},{key:"visitUtf8",value:function(t){return null}},{key:"visitBinary",value:function(t){return null}},{key:"visitFixedSizeBinary",value:function(t){return null}},{key:"visitDate",value:function(t){return null}},{key:"visitTimestamp",value:function(t){return null}},{key:"visitTime",value:function(t){return null}},{key:"visitDecimal",value:function(t){return null}},{key:"visitList",value:function(t){return null}},{key:"visitStruct",value:function(t){return null}},{key:"visitUnion",value:function(t){return null}},{key:"visitDictionary",value:function(t){return null}},{key:"visitInterval",value:function(t){return null}},{key:"visitFixedSizeList",value:function(t){return null}},{key:"visitMap",value:function(t){return null}}]),t}();function gn(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=null,i=Je.NONE;switch(e instanceof yr||e instanceof qe?i=mn(e.type):e instanceof Fn?i=mn(e):"number"!==typeof(i=e)&&(i=Je[e]),i){case Je.Null:r=t.visitNull;break;case Je.Bool:r=t.visitBool;break;case Je.Int:r=t.visitInt;break;case Je.Int8:r=t.visitInt8||t.visitInt;break;case Je.Int16:r=t.visitInt16||t.visitInt;break;case Je.Int32:r=t.visitInt32||t.visitInt;break;case Je.Int64:r=t.visitInt64||t.visitInt;break;case Je.Uint8:r=t.visitUint8||t.visitInt;break;case Je.Uint16:r=t.visitUint16||t.visitInt;break;case Je.Uint32:r=t.visitUint32||t.visitInt;break;case Je.Uint64:r=t.visitUint64||t.visitInt;break;case Je.Float:r=t.visitFloat;break;case Je.Float16:r=t.visitFloat16||t.visitFloat;break;case Je.Float32:r=t.visitFloat32||t.visitFloat;break;case Je.Float64:r=t.visitFloat64||t.visitFloat;break;case Je.Utf8:r=t.visitUtf8;break;case Je.Binary:r=t.visitBinary;break;case Je.FixedSizeBinary:r=t.visitFixedSizeBinary;break;case Je.Date:r=t.visitDate;break;case Je.DateDay:r=t.visitDateDay||t.visitDate;break;case Je.DateMillisecond:r=t.visitDateMillisecond||t.visitDate;break;case Je.Timestamp:r=t.visitTimestamp;break;case Je.TimestampSecond:r=t.visitTimestampSecond||t.visitTimestamp;break;case Je.TimestampMillisecond:r=t.visitTimestampMillisecond||t.visitTimestamp;break;case Je.TimestampMicrosecond:r=t.visitTimestampMicrosecond||t.visitTimestamp;break;case Je.TimestampNanosecond:r=t.visitTimestampNanosecond||t.visitTimestamp;break;case Je.Time:r=t.visitTime;break;case Je.TimeSecond:r=t.visitTimeSecond||t.visitTime;break;case Je.TimeMillisecond:r=t.visitTimeMillisecond||t.visitTime;break;case Je.TimeMicrosecond:r=t.visitTimeMicrosecond||t.visitTime;break;case Je.TimeNanosecond:r=t.visitTimeNanosecond||t.visitTime;break;case Je.Decimal:r=t.visitDecimal;break;case Je.List:r=t.visitList;break;case Je.Struct:r=t.visitStruct;break;case Je.Union:r=t.visitUnion;break;case Je.DenseUnion:r=t.visitDenseUnion||t.visitUnion;break;case Je.SparseUnion:r=t.visitSparseUnion||t.visitUnion;break;case Je.Dictionary:r=t.visitDictionary;break;case Je.Interval:r=t.visitInterval;break;case Je.IntervalDayTime:r=t.visitIntervalDayTime||t.visitInterval;break;case Je.IntervalYearMonth:r=t.visitIntervalYearMonth||t.visitInterval;break;case Je.FixedSizeList:r=t.visitFixedSizeList;break;case Je.Map:r=t.visitMap}if("function"===typeof r)return r;if(!n)return function(){return null};throw new Error("Unrecognized type '".concat(Je[i],"'"))}function mn(t){switch(t.typeId){case Je.Null:return Je.Null;case Je.Int:var e=t.bitWidth,n=t.isSigned;switch(e){case 8:return n?Je.Int8:Je.Uint8;case 16:return n?Je.Int16:Je.Uint16;case 32:return n?Je.Int32:Je.Uint32;case 64:return n?Je.Int64:Je.Uint64}return Je.Int;case Je.Float:switch(t.precision){case tn.HALF:return Je.Float16;case tn.SINGLE:return Je.Float32;case tn.DOUBLE:return Je.Float64}return Je.Float;case Je.Binary:return Je.Binary;case Je.Utf8:return Je.Utf8;case Je.Bool:return Je.Bool;case Je.Decimal:return Je.Decimal;case Je.Time:switch(t.unit){case Xe.SECOND:return Je.TimeSecond;case Xe.MILLISECOND:return Je.TimeMillisecond;case Xe.MICROSECOND:return Je.TimeMicrosecond;case Xe.NANOSECOND:return Je.TimeNanosecond}return Je.Time;case Je.Timestamp:switch(t.unit){case Xe.SECOND:return Je.TimestampSecond;case Xe.MILLISECOND:return Je.TimestampMillisecond;case Xe.MICROSECOND:return Je.TimestampMicrosecond;case Xe.NANOSECOND:return Je.TimestampNanosecond}return Je.Timestamp;case Je.Date:switch(t.unit){case Qe.DAY:return Je.DateDay;case Qe.MILLISECOND:return Je.DateMillisecond}return Je.Date;case Je.Interval:switch(t.unit){case nn.DAY_TIME:return Je.IntervalDayTime;case nn.YEAR_MONTH:return Je.IntervalYearMonth}return Je.Interval;case Je.Map:return Je.Map;case Je.List:return Je.List;case Je.Struct:return Je.Struct;case Je.Union:switch(t.mode){case en.Dense:return Je.DenseUnion;case en.Sparse:return Je.SparseUnion}return Je.Union;case Je.FixedSizeBinary:return Je.FixedSizeBinary;case Je.FixedSizeList:return Je.FixedSizeList;case Je.Dictionary:return Je.Dictionary}throw new Error("Unrecognized type '".concat(Je[t.typeId],"'"))}bn.prototype.visitInt8=null,bn.prototype.visitInt16=null,bn.prototype.visitInt32=null,bn.prototype.visitInt64=null,bn.prototype.visitUint8=null,bn.prototype.visitUint16=null,bn.prototype.visitUint32=null,bn.prototype.visitUint64=null,bn.prototype.visitFloat16=null,bn.prototype.visitFloat32=null,bn.prototype.visitFloat64=null,bn.prototype.visitDateDay=null,bn.prototype.visitDateMillisecond=null,bn.prototype.visitTimestampSecond=null,bn.prototype.visitTimestampMillisecond=null,bn.prototype.visitTimestampMicrosecond=null,bn.prototype.visitTimestampNanosecond=null,bn.prototype.visitTimeSecond=null,bn.prototype.visitTimeMillisecond=null,bn.prototype.visitTimeMicrosecond=null,bn.prototype.visitTimeNanosecond=null,bn.prototype.visitDenseUnion=null,bn.prototype.visitSparseUnion=null,bn.prototype.visitIntervalDayTime=null,bn.prototype.visitIntervalYearMonth=null;var kn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"compareSchemas",value:function(t,e){return t===e||e instanceof t.constructor&&Ln.compareFields(t.fields,e.fields)}},{key:"compareFields",value:function(t,e){return t===e||Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every((function(t,n){return Ln.compareField(t,e[n])}))}},{key:"compareField",value:function(t,e){return t===e||e instanceof t.constructor&&t.name===e.name&&t.nullable===e.nullable&&Ln.visit(t.type,e.type)}}]),n}(bn);function wn(t,e){return e instanceof t.constructor}function _n(t,e){return t===e||wn(t,e)}function In(t,e){return t===e||wn(t,e)&&t.bitWidth===e.bitWidth&&t.isSigned===e.isSigned}function Sn(t,e){return t===e||wn(t,e)&&t.precision===e.precision}function xn(t,e){return t===e||wn(t,e)&&t.unit===e.unit}function An(t,e){return t===e||wn(t,e)&&t.unit===e.unit&&t.timezone===e.timezone}function Tn(t,e){return t===e||wn(t,e)&&t.unit===e.unit&&t.bitWidth===e.bitWidth}function Bn(t,e){return t===e||wn(t,e)&&t.mode===e.mode&&t.typeIds.every((function(t,n){return t===e.typeIds[n]}))&&Ln.compareFields(t.children,e.children)}function On(t,e){return t===e||wn(t,e)&&t.unit===e.unit}kn.prototype.visitNull=_n,kn.prototype.visitBool=_n,kn.prototype.visitInt=In,kn.prototype.visitInt8=In,kn.prototype.visitInt16=In,kn.prototype.visitInt32=In,kn.prototype.visitInt64=In,kn.prototype.visitUint8=In,kn.prototype.visitUint16=In,kn.prototype.visitUint32=In,kn.prototype.visitUint64=In,kn.prototype.visitFloat=Sn,kn.prototype.visitFloat16=Sn,kn.prototype.visitFloat32=Sn,kn.prototype.visitFloat64=Sn,kn.prototype.visitUtf8=_n,kn.prototype.visitBinary=_n,kn.prototype.visitFixedSizeBinary=function(t,e){return t===e||wn(t,e)&&t.byteWidth===e.byteWidth},kn.prototype.visitDate=xn,kn.prototype.visitDateDay=xn,kn.prototype.visitDateMillisecond=xn,kn.prototype.visitTimestamp=An,kn.prototype.visitTimestampSecond=An,kn.prototype.visitTimestampMillisecond=An,kn.prototype.visitTimestampMicrosecond=An,kn.prototype.visitTimestampNanosecond=An,kn.prototype.visitTime=Tn,kn.prototype.visitTimeSecond=Tn,kn.prototype.visitTimeMillisecond=Tn,kn.prototype.visitTimeMicrosecond=Tn,kn.prototype.visitTimeNanosecond=Tn,kn.prototype.visitDecimal=_n,kn.prototype.visitList=function(t,e){return t===e||wn(t,e)&&t.children.length===e.children.length&&Ln.compareFields(t.children,e.children)},kn.prototype.visitStruct=function(t,e){return t===e||wn(t,e)&&t.children.length===e.children.length&&Ln.compareFields(t.children,e.children)},kn.prototype.visitUnion=Bn,kn.prototype.visitDenseUnion=Bn,kn.prototype.visitSparseUnion=Bn,kn.prototype.visitDictionary=function(t,e){return t===e||wn(t,e)&&t.id===e.id&&t.isOrdered===e.isOrdered&&Ln.visit(t.indices,e.indices)&&Ln.visit(t.dictionary,e.dictionary)},kn.prototype.visitInterval=On,kn.prototype.visitIntervalDayTime=On,kn.prototype.visitIntervalYearMonth=On,kn.prototype.visitFixedSizeList=function(t,e){return t===e||wn(t,e)&&t.listSize===e.listSize&&t.children.length===e.children.length&&Ln.compareFields(t.children,e.children)},kn.prototype.visitMap=function(t,e){return t===e||wn(t,e)&&t.keysSorted===e.keysSorted&&t.children.length===e.children.length&&Ln.compareFields(t.children,e.children)};var Dn,Ln=new kn,Fn=function(){function t(){F(this,t)}return E(t,[{key:"typeId",get:function(){return Je.NONE}},{key:"compareTo",value:function(t){return Ln.visit(this,t)}}],[{key:"isNull",value:function(t){return t&&t.typeId===Je.Null}},{key:"isInt",value:function(t){return t&&t.typeId===Je.Int}},{key:"isFloat",value:function(t){return t&&t.typeId===Je.Float}},{key:"isBinary",value:function(t){return t&&t.typeId===Je.Binary}},{key:"isUtf8",value:function(t){return t&&t.typeId===Je.Utf8}},{key:"isBool",value:function(t){return t&&t.typeId===Je.Bool}},{key:"isDecimal",value:function(t){return t&&t.typeId===Je.Decimal}},{key:"isDate",value:function(t){return t&&t.typeId===Je.Date}},{key:"isTime",value:function(t){return t&&t.typeId===Je.Time}},{key:"isTimestamp",value:function(t){return t&&t.typeId===Je.Timestamp}},{key:"isInterval",value:function(t){return t&&t.typeId===Je.Interval}},{key:"isList",value:function(t){return t&&t.typeId===Je.List}},{key:"isStruct",value:function(t){return t&&t.typeId===Je.Struct}},{key:"isUnion",value:function(t){return t&&t.typeId===Je.Union}},{key:"isFixedSizeBinary",value:function(t){return t&&t.typeId===Je.FixedSizeBinary}},{key:"isFixedSizeList",value:function(t){return t&&t.typeId===Je.FixedSizeList}},{key:"isMap",value:function(t){return t&&t.typeId===Je.Map}},{key:"isDictionary",value:function(t){return t&&t.typeId===Je.Dictionary}}]),t}();Fn[Symbol.toStringTag]=((Dn=Fn.prototype).children=null,Dn.ArrayType=Array,Dn[Symbol.toStringTag]="DataType");var Mn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"toString",value:function(){return"Null"}},{key:"typeId",get:function(){return Je.Null}}]),n}(Fn);Mn[Symbol.toStringTag]=function(t){return t[Symbol.toStringTag]="Null"}(Mn.prototype);var En=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).isSigned=t,i.bitWidth=r,i}return E(n,[{key:"typeId",get:function(){return Je.Int}},{key:"ArrayType",get:function(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:case 64:return this.isSigned?Int32Array:Uint32Array}throw new Error("Unrecognized ".concat(this[Symbol.toStringTag]," type"))}},{key:"toString",value:function(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}}]),n}(Fn);En[Symbol.toStringTag]=function(t){return t.isSigned=null,t.bitWidth=null,t[Symbol.toStringTag]="Int"}(En.prototype);var Un=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!0,8)}return E(n)}(En),Nn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!0,16)}return E(n)}(En),Cn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!0,32)}return E(n)}(En),Vn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!0,64)}return E(n)}(En),jn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!1,8)}return E(n)}(En),Rn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!1,16)}return E(n)}(En),Pn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!1,32)}return E(n)}(En),zn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,!1,64)}return E(n)}(En);Object.defineProperty(Un.prototype,"ArrayType",{value:Int8Array}),Object.defineProperty(Nn.prototype,"ArrayType",{value:Int16Array}),Object.defineProperty(Cn.prototype,"ArrayType",{value:Int32Array}),Object.defineProperty(Vn.prototype,"ArrayType",{value:Int32Array}),Object.defineProperty(jn.prototype,"ArrayType",{value:Uint8Array}),Object.defineProperty(Rn.prototype,"ArrayType",{value:Uint16Array}),Object.defineProperty(Pn.prototype,"ArrayType",{value:Uint32Array}),Object.defineProperty(zn.prototype,"ArrayType",{value:Uint32Array});var Yn=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).precision=t,r}return E(n,[{key:"typeId",get:function(){return Je.Float}},{key:"ArrayType",get:function(){switch(this.precision){case tn.HALF:return Uint16Array;case tn.SINGLE:return Float32Array;case tn.DOUBLE:return Float64Array}throw new Error("Unrecognized ".concat(this[Symbol.toStringTag]," type"))}},{key:"toString",value:function(){return"Float".concat(this.precision<<5||16)}}]),n}(Fn);Yn[Symbol.toStringTag]=function(t){return t.precision=null,t[Symbol.toStringTag]="Float"}(Yn.prototype);var Wn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,tn.HALF)}return E(n)}(Yn),Hn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,tn.SINGLE)}return E(n)}(Yn),$n=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,tn.DOUBLE)}return E(n)}(Yn);Object.defineProperty(Wn.prototype,"ArrayType",{value:Uint16Array}),Object.defineProperty(Hn.prototype,"ArrayType",{value:Float32Array}),Object.defineProperty($n.prototype,"ArrayType",{value:Float64Array});var Kn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this)}return E(n,[{key:"typeId",get:function(){return Je.Binary}},{key:"toString",value:function(){return"Binary"}}]),n}(Fn);Kn[Symbol.toStringTag]=function(t){return t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Binary"}(Kn.prototype);var Gn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this)}return E(n,[{key:"typeId",get:function(){return Je.Utf8}},{key:"toString",value:function(){return"Utf8"}}]),n}(Fn);Gn[Symbol.toStringTag]=function(t){return t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Utf8"}(Gn.prototype);var qn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this)}return E(n,[{key:"typeId",get:function(){return Je.Bool}},{key:"toString",value:function(){return"Bool"}}]),n}(Fn);qn[Symbol.toStringTag]=function(t){return t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Bool"}(qn.prototype);var Jn=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).scale=t,i.precision=r,i}return E(n,[{key:"typeId",get:function(){return Je.Decimal}},{key:"toString",value:function(){return"Decimal[".concat(this.precision,"e").concat(this.scale>0?"+":"").concat(this.scale,"]")}}]),n}(Fn);Jn[Symbol.toStringTag]=function(t){return t.scale=null,t.precision=null,t.ArrayType=Uint32Array,t[Symbol.toStringTag]="Decimal"}(Jn.prototype);var Zn=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).unit=t,r}return E(n,[{key:"typeId",get:function(){return Je.Date}},{key:"toString",value:function(){return"Date".concat(32*(this.unit+1),"<").concat(Qe[this.unit],">")}}]),n}(Fn);Zn[Symbol.toStringTag]=function(t){return t.unit=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Date"}(Zn.prototype);var Qn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,Qe.DAY)}return E(n)}(Zn),Xn=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.call(this,Qe.MILLISECOND)}return E(n)}(Zn),tr=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).unit=t,i.bitWidth=r,i}return E(n,[{key:"typeId",get:function(){return Je.Time}},{key:"toString",value:function(){return"Time".concat(this.bitWidth,"<").concat(Xe[this.unit],">")}}]),n}(Fn);tr[Symbol.toStringTag]=function(t){return t.unit=null,t.bitWidth=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Time"}(tr.prototype);var er=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).unit=t,i.timezone=r,i}return E(n,[{key:"typeId",get:function(){return Je.Timestamp}},{key:"toString",value:function(){return"Timestamp<".concat(Xe[this.unit]).concat(this.timezone?", ".concat(this.timezone):"",">")}}]),n}(Fn);er[Symbol.toStringTag]=function(t){return t.unit=null,t.timezone=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Timestamp"}(er.prototype);var nr=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).unit=t,r}return E(n,[{key:"typeId",get:function(){return Je.Interval}},{key:"toString",value:function(){return"Interval<".concat(nn[this.unit],">")}}]),n}(Fn);nr[Symbol.toStringTag]=function(t){return t.unit=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Interval"}(nr.prototype);var rr=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).children=[t],r}return E(n,[{key:"typeId",get:function(){return Je.List}},{key:"toString",value:function(){return"List<".concat(this.valueType,">")}},{key:"valueType",get:function(){return this.children[0].type}},{key:"valueField",get:function(){return this.children[0]}},{key:"ArrayType",get:function(){return this.valueType.ArrayType}}]),n}(Fn);rr[Symbol.toStringTag]=function(t){return t.children=null,t[Symbol.toStringTag]="List"}(rr.prototype);var ir=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).children=t,r}return E(n,[{key:"typeId",get:function(){return Je.Struct}},{key:"toString",value:function(){return"Struct<{".concat(this.children.map((function(t){return"".concat(t.name,":").concat(t.type)})).join(", "),"}>")}}]),n}(Fn);ir[Symbol.toStringTag]=function(t){return t.children=null,t[Symbol.toStringTag]="Struct"}(ir.prototype);var ar=function(t){ot(n,t);var e=yt(n);function n(t,r,i){var a;return F(this,n),(a=e.call(this)).mode=t,a.children=i,a.typeIds=r=Int32Array.from(r),a.typeIdToChildIndex=r.reduce((function(t,e,n){return(t[e]=n)&&t||t}),Object.create(null)),a}return E(n,[{key:"typeId",get:function(){return Je.Union}},{key:"toString",value:function(){return"".concat(this[Symbol.toStringTag],"<").concat(this.children.map((function(t){return"".concat(t.type)})).join(" | "),">")}}]),n}(Fn);ar[Symbol.toStringTag]=function(t){return t.mode=null,t.typeIds=null,t.children=null,t.typeIdToChildIndex=null,t.ArrayType=Int8Array,t[Symbol.toStringTag]="Union"}(ar.prototype);var or=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).byteWidth=t,r}return E(n,[{key:"typeId",get:function(){return Je.FixedSizeBinary}},{key:"toString",value:function(){return"FixedSizeBinary[".concat(this.byteWidth,"]")}}]),n}(Fn);or[Symbol.toStringTag]=function(t){return t.byteWidth=null,t.ArrayType=Uint8Array,t[Symbol.toStringTag]="FixedSizeBinary"}(or.prototype);var ur=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).listSize=t,i.children=[r],i}return E(n,[{key:"typeId",get:function(){return Je.FixedSizeList}},{key:"valueType",get:function(){return this.children[0].type}},{key:"valueField",get:function(){return this.children[0]}},{key:"ArrayType",get:function(){return this.valueType.ArrayType}},{key:"toString",value:function(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}}]),n}(Fn);ur[Symbol.toStringTag]=function(t){return t.children=null,t.listSize=null,t[Symbol.toStringTag]="FixedSizeList"}(ur.prototype);var sr=function(t){ot(n,t);var e=yt(n);function n(t){var r,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return F(this,n),(r=e.call(this)).children=[t],r.keysSorted=i,r}return E(n,[{key:"typeId",get:function(){return Je.Map}},{key:"keyType",get:function(){return this.children[0].type.children[0].type}},{key:"valueType",get:function(){return this.children[0].type.children[1].type}},{key:"toString",value:function(){return"Map<{".concat(this.children[0].type.children.map((function(t){return"".concat(t.name,":").concat(t.type)})).join(", "),"}>")}}]),n}(Fn);sr[Symbol.toStringTag]=function(t){return t.children=null,t.keysSorted=null,t[Symbol.toStringTag]="Map_"}(sr.prototype);var cr,fr=(cr=-1,function(){return++cr}),lr=function(t){ot(n,t);var e=yt(n);function n(t,r,i,a){var o;return F(this,n),(o=e.call(this)).indices=r,o.dictionary=t,o.isOrdered=a||!1,o.id=null==i?fr():"number"===typeof i?i:i.low,o}return E(n,[{key:"typeId",get:function(){return Je.Dictionary}},{key:"children",get:function(){return this.dictionary.children}},{key:"valueType",get:function(){return this.dictionary}},{key:"ArrayType",get:function(){return this.dictionary.ArrayType}},{key:"toString",value:function(){return"Dictionary<".concat(this.indices,", ").concat(this.dictionary,">")}}]),n}(Fn);function hr(t){var e=t;switch(t.typeId){case Je.Decimal:return 4;case Je.Timestamp:return 2;case Je.Date:case Je.Interval:return 1+e.unit;case Je.Int:case Je.Time:return+(e.bitWidth>32)+1;case Je.FixedSizeList:return e.listSize;case Je.FixedSizeBinary:return e.byteWidth;default:return 1}}lr[Symbol.toStringTag]=function(t){return t.id=null,t.indices=null,t.isOrdered=null,t.dictionary=null,t[Symbol.toStringTag]="Dictionary"}(lr.prototype);var yr=function(){function t(e,n,r,i,a,o,u){var s;F(this,t),this.type=e,this.dictionary=u,this.offset=Math.floor(Math.max(n||0,0)),this.length=Math.floor(Math.max(r||0,0)),this._nullCount=Math.floor(Math.max(i||0,-1)),this.childData=(o||[]).map((function(e){return e instanceof t?e:e.data})),a instanceof t?(this.stride=a.stride,this.values=a.values,this.typeIds=a.typeIds,this.nullBitmap=a.nullBitmap,this.valueOffsets=a.valueOffsets):(this.stride=hr(e),a&&((s=a[0])&&(this.valueOffsets=s),(s=a[1])&&(this.values=s),(s=a[2])&&(this.nullBitmap=s),(s=a[3])&&(this.typeIds=s)))}return E(t,[{key:"typeId",get:function(){return this.type.typeId}},{key:"ArrayType",get:function(){return this.type.ArrayType}},{key:"buffers",get:function(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}},{key:"byteLength",get:function(){var t=0,e=this.valueOffsets,n=this.values,r=this.nullBitmap,i=this.typeIds;return e&&(t+=e.byteLength),n&&(t+=n.byteLength),r&&(t+=r.byteLength),i&&(t+=i.byteLength),this.childData.reduce((function(t,e){return t+e.byteLength}),t)}},{key:"nullCount",get:function(){var t,e=this._nullCount;return e<=-1&&(t=this.nullBitmap)&&(this._nullCount=e=this.length-yn(t,this.offset,this.offset+this.length)),e}},{key:"clone",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.offset,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.length,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this._nullCount,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:this.childData;return new t(e,n,r,i,a,o,this.dictionary)}},{key:"slice",value:function(t,e){var n=this.stride,r=this.typeId,i=this.childData,a=+(0===this._nullCount)-1,o=16===r?n:1,u=this._sliceBuffers(t,e,n,r);return this.clone(this.type,this.offset+t,e,a,u,!i.length||this.valueOffsets?i:this._sliceChildren(i,o*t,o*e))}},{key:"_changeLengthAndBackfillNullBitmap",value:function(t){if(this.typeId===Je.Null)return this.clone(this.type,0,t,0);var e=this.length,n=this.nullCount,r=new Uint8Array((t+63&-64)>>3).fill(255,0,e>>3);r[e>>3]=(1<0&&r.set(fn(this.offset,e,this.nullBitmap),0);var i=this.buffers;return i[Ze.VALIDITY]=r,this.clone(this.type,0,t,n+(t-e),i)}},{key:"_sliceBuffers",value:function(t,e,n,r){var i,a=this.buffers;return(i=a[Ze.TYPE])&&(a[Ze.TYPE]=i.subarray(t,t+e)),(i=a[Ze.OFFSET])&&(a[Ze.OFFSET]=i.subarray(t,t+e+1))||(i=a[Ze.DATA])&&(a[Ze.DATA]=6===r?i:i.subarray(n*t,n*(t+e))),a}},{key:"_sliceChildren",value:function(t,e,n){return t.map((function(t){return t.slice(e,n)}))}}],[{key:"new",value:function(e,n,r,i,a,o,u){switch(a instanceof t?a=a.buffers:a||(a=[]),e.typeId){case Je.Null:return t.Null(e,n,r);case Je.Int:return t.Int(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Dictionary:return t.Dictionary(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[],u);case Je.Float:return t.Float(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Bool:return t.Bool(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Decimal:return t.Decimal(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Date:return t.Date(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Time:return t.Time(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Timestamp:return t.Timestamp(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Interval:return t.Interval(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.FixedSizeBinary:return t.FixedSizeBinary(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.DATA]||[]);case Je.Binary:return t.Binary(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.OFFSET]||[],a[Ze.DATA]||[]);case Je.Utf8:return t.Utf8(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.OFFSET]||[],a[Ze.DATA]||[]);case Je.List:return t.List(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.OFFSET]||[],(o||[])[0]);case Je.FixedSizeList:return t.FixedSizeList(e,n,r,i||0,a[Ze.VALIDITY],(o||[])[0]);case Je.Struct:return t.Struct(e,n,r,i||0,a[Ze.VALIDITY],o||[]);case Je.Map:return t.Map(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.OFFSET]||[],(o||[])[0]);case Je.Union:return t.Union(e,n,r,i||0,a[Ze.VALIDITY],a[Ze.TYPE]||[],a[Ze.OFFSET]||o,o)}throw new Error("Unrecognized typeId ".concat(e.typeId))}},{key:"Null",value:function(e,n,r){return new t(e,n,r,0)}},{key:"Int",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Dictionary",value:function(e,n,r,i,a,o,u){return new t(e,n,r,i,[void 0,Ht(e.indices.ArrayType,o),Jt(a)],[],u)}},{key:"Float",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Bool",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Decimal",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Date",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Time",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Timestamp",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Interval",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"FixedSizeBinary",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,Ht(e.ArrayType,o),Jt(a)])}},{key:"Binary",value:function(e,n,r,i,a,o,u){return new t(e,n,r,i,[Gt(o),Jt(u),Jt(a)])}},{key:"Utf8",value:function(e,n,r,i,a,o,u){return new t(e,n,r,i,[Gt(o),Jt(u),Jt(a)])}},{key:"List",value:function(e,n,r,i,a,o,u){return new t(e,n,r,i,[Gt(o),void 0,Jt(a)],[u])}},{key:"FixedSizeList",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,void 0,Jt(a)],[o])}},{key:"Struct",value:function(e,n,r,i,a,o){return new t(e,n,r,i,[void 0,void 0,Jt(a)],o)}},{key:"Map",value:function(e,n,r,i,a,o,u){return new t(e,n,r,i,[Gt(o),void 0,Jt(a)],[u])}},{key:"Union",value:function(e,n,r,i,a,o,u,s){var c=[void 0,void 0,Jt(a),Ht(e.ArrayType,o)];return e.mode===en.Sparse?new t(e,n,r,i,c,u):(c[Ze.OFFSET]=Gt(u),new t(e,n,r,i,c,s))}}]),t}();yr.prototype.childData=Object.freeze([]);function pr(t){if(null===t)return"null";if(undefined===t)return"undefined";switch(typeof t){case"number":case"bigint":return"".concat(t);case"string":return'"'.concat(t,'"')}return"function"===typeof t[Symbol.toPrimitive]?t[Symbol.toPrimitive]("string"):ArrayBuffer.isView(t)?"[".concat(t,"]"):JSON.stringify(t)}function dr(t){if(!t||t.length<=0)return function(t){return!0};var e="",n=t.filter((function(t){return t===t}));return n.length>0&&(e="\n switch (x) {".concat(n.map((function(t){return"\n case ".concat(function(t){if("bigint"!==typeof t)return pr(t);if(kt)return"".concat(pr(t),"n");return'"'.concat(pr(t),'"')}(t),":")})).join(""),"\n return false;\n }")),t.length!==n.length&&(e="if (x !== x) return false;\n".concat(e)),new Function("x","".concat(e,"\nreturn true;"))}var vr=function(t,e){return(t*e+63&-64||64)/e},br=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.length>=e?t.subarray(0,e):Yt(new t.constructor(e),t,0)},gr=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;F(this,t),this.buffer=e,this.stride=n,this.BYTES_PER_ELEMENT=e.BYTES_PER_ELEMENT,this.ArrayType=e.constructor,this._resize(this.length=e.length/n|0)}return E(t,[{key:"byteLength",get:function(){return this.length*this.stride*this.BYTES_PER_ELEMENT|0}},{key:"reservedLength",get:function(){return this.buffer.length/this.stride}},{key:"reservedByteLength",get:function(){return this.buffer.byteLength}},{key:"set",value:function(t,e){return this}},{key:"append",value:function(t){return this.set(this.length,t)}},{key:"reserve",value:function(t){if(t>0){this.length+=t;var e=this.stride,n=this.length*e,r=this.buffer.length;n>=r&&this._resize(vr(0===r?1*n:2*n,this.BYTES_PER_ELEMENT))}return this}},{key:"flush",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.length;t=vr(t*this.stride,this.BYTES_PER_ELEMENT);var e=br(this.buffer,t);return this.clear(),e}},{key:"clear",value:function(){return this.length=0,this._resize(0),this}},{key:"_resize",value:function(t){return this.buffer=Yt(new this.ArrayType(t),this.buffer)}}]),t}();gr.prototype.offset=0;var mr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"last",value:function(){return this.get(this.length-1)}},{key:"get",value:function(t){return this.buffer[t]}},{key:"set",value:function(t,e){return this.reserve(t-this.length+1),this.buffer[t*this.stride]=e,this}}]),n}(gr),kr=function(t){ot(n,t);var e=yt(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Uint8Array(0);return F(this,n),(t=e.call(this,r,1/8)).numValid=0,t}return E(n,[{key:"numInvalid",get:function(){return this.length-this.numValid}},{key:"get",value:function(t){return this.buffer[t>>3]>>t%8&1}},{key:"set",value:function(t,e){var n=this.reserve(t-this.length+1).buffer,r=t>>3,i=t%8,a=n[r]>>i&1;return e?0===a&&(n[r]|=1<0&&void 0!==arguments[0]?arguments[0]:new Int32Array(1);return F(this,n),e.call(this,t,1)}return E(n,[{key:"append",value:function(t){return this.set(this.length-1,t)}},{key:"set",value:function(t,e){var n=this.length-1,r=this.reserve(t-n+1).buffer;return n0&&void 0!==arguments[0]?arguments[0]:this.length-1;return t>this.length&&this.set(t-1,0),ze(ut(n.prototype),"flush",this).call(this,t+1)}}]),n}(mr),_r=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"ArrayType64",get:function(){return this._ArrayType64||(this._ArrayType64=this.buffer instanceof Int32Array?_t:St)}},{key:"set",value:function(t,e){switch(this.reserve(t-this.length+1),typeof e){case"bigint":this.buffer64[t]=e;break;case"number":this.buffer[t*this.stride]=e;break;default:this.buffer.set(e,t*this.stride)}return this}},{key:"_resize",value:function(t){var e=ze(ut(n.prototype),"_resize",this).call(this,t),r=e.byteLength/(this.BYTES_PER_ELEMENT*this.stride);return kt&&(this.buffer64=new this.ArrayType64(e.buffer,e.byteOffset,r)),e}}]),n}(gr),Ir=function(){function t(e){var n=e.type,r=e.nullValues;F(this,t),this.length=0,this.finished=!1,this.type=n,this.children=[],this.nullValues=r,this.stride=hr(n),this._nulls=new kr,r&&r.length>0&&(this._isValid=dr(r))}return E(t,[{key:"toVector",value:function(){return qe.new(this.flush())}},{key:"ArrayType",get:function(){return this.type.ArrayType}},{key:"nullCount",get:function(){return this._nulls.numInvalid}},{key:"numChildren",get:function(){return this.children.length}},{key:"byteLength",get:function(){var t=0;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),this._typeIds&&(t+=this._typeIds.byteLength),this.children.reduce((function(t,e){return t+e.byteLength}),t)}},{key:"reservedLength",get:function(){return this._nulls.reservedLength}},{key:"reservedByteLength",get:function(){var t=0;return this._offsets&&(t+=this._offsets.reservedByteLength),this._values&&(t+=this._values.reservedByteLength),this._nulls&&(t+=this._nulls.reservedByteLength),this._typeIds&&(t+=this._typeIds.reservedByteLength),this.children.reduce((function(t,e){return t+e.reservedByteLength}),t)}},{key:"valueOffsets",get:function(){return this._offsets?this._offsets.buffer:null}},{key:"values",get:function(){return this._values?this._values.buffer:null}},{key:"nullBitmap",get:function(){return this._nulls?this._nulls.buffer:null}},{key:"typeIds",get:function(){return this._typeIds?this._typeIds.buffer:null}},{key:"append",value:function(t){return this.set(this.length,t)}},{key:"isValid",value:function(t){return this._isValid(t)}},{key:"set",value:function(t,e){return this.setValid(t,this.isValid(e))&&this.setValue(t,e),this}},{key:"setValue",value:function(t,e){this._setValue(this,t,e)}},{key:"setValid",value:function(t,e){return this.length=this._nulls.set(t,+e).length,e}},{key:"addChild",value:function(t){arguments.length>1&&void 0!==arguments[1]||"".concat(this.numChildren);throw new Error('Cannot append children to non-nested type "'.concat(this.type,'"'))}},{key:"getChildAt",value:function(t){return this.children[t]||null}},{key:"flush",value:function(){var t=[],e=this._values,n=this._offsets,r=this._typeIds,i=this.length,a=this.nullCount;r?(t[Ze.TYPE]=r.flush(i),n&&(t[Ze.OFFSET]=n.flush(i))):n?(e&&(t[Ze.DATA]=e.flush(n.last())),t[Ze.OFFSET]=n.flush(i)):e&&(t[Ze.DATA]=e.flush(i)),a>0&&(t[Ze.VALIDITY]=this._nulls.flush(i));var o=yr.new(this.type,0,i,a,t,this.children.map((function(t){return t.flush()})));return this.clear(),o}},{key:"finish",value:function(){return this.finished=!0,this.children.forEach((function(t){return t.finish()})),this}},{key:"clear",value:function(){return this.length=0,this._offsets&&this._offsets.clear(),this._values&&this._values.clear(),this._nulls&&this._nulls.clear(),this._typeIds&&this._typeIds.clear(),this.children.forEach((function(t){return t.clear()})),this}}],[{key:"new",value:function(t){}},{key:"throughNode",value:function(t){throw new Error('"throughNode" not available in this environment')}},{key:"throughDOM",value:function(t){throw new Error('"throughDOM" not available in this environment')}},{key:"throughIterable",value:function(t){return function(t){var e=t.queueingStrategy,n=void 0===e?"count":e,r=t.highWaterMark,i=void 0===r?"bytes"!==n?1e3:Math.pow(2,14):r,a="bytes"!==n?"length":"byteLength";return R.mark((function e(n){var r,o,u,s,c;return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=0,o=Ir.new(t),u=O(n),e.prev=3,u.s();case 5:if((s=u.n()).done){e.next=14;break}if(c=s.value,!(o.append(c)[a]>=i)){e.next=12;break}if(e.t0=++r,!e.t0){e.next=12;break}return e.next=12,o.toVector();case 12:e.next=5;break;case 14:e.next=19;break;case 16:e.prev=16,e.t1=e.catch(3),u.e(e.t1);case 19:return e.prev=19,u.f(),e.finish(19);case 22:if(!(o.finish().length>0||0===r)){e.next=25;break}return e.next=25,o.toVector();case 25:case"end":return e.stop()}}),e,null,[[3,16,19,22]])}))}(t)}},{key:"throughAsyncIterable",value:function(t){return function(t){var e=t.queueingStrategy,n=void 0===e?"count":e,r=t.highWaterMark,i=void 0===r?"bytes"!==n?1e3:Math.pow(2,14):r,a="bytes"!==n?"length":"byteLength";return function(){var e=j(R.mark((function e(n){var r,o,u,s,c,f,l,h;return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=0,o=Ir.new(t),u=!1,s=!1,e.prev=4,f=P(n);case 6:return e.next=8,C(f.next());case 8:if(!(u=!(l=e.sent).done)){e.next=18;break}if(h=l.value,!(o.append(h)[a]>=i)){e.next=15;break}if(e.t0=++r,!e.t0){e.next=15;break}return e.next=15,o.toVector();case 15:u=!1,e.next=6;break;case 18:e.next=24;break;case 20:e.prev=20,e.t1=e.catch(4),s=!0,c=e.t1;case 24:if(e.prev=24,e.prev=25,!u||null==f.return){e.next=29;break}return e.next=29,C(f.return());case 29:if(e.prev=29,!s){e.next=32;break}throw c;case 32:return e.finish(29);case 33:return e.finish(24);case 34:if(!(o.finish().length>0||0===r)){e.next=37;break}return e.next=37,o.toVector();case 37:case"end":return e.stop()}}),e,null,[[4,20,24,34],[25,,29,33]])})));return function(t){return e.apply(this,arguments)}}()}(t)}}]),t}();Ir.prototype.length=1,Ir.prototype.stride=1,Ir.prototype.children=null,Ir.prototype.finished=!1,Ir.prototype.nullValues=null,Ir.prototype._isValid=function(){return!0};var Sr=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._values=new mr(new r.ArrayType(0),r.stride),r}return E(n,[{key:"setValue",value:function(t,e){var r=this._values;return r.reserve(t-r.length+1),ze(ut(n.prototype),"setValue",this).call(this,t,e)}}]),n}(Ir),xr=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._pendingLength=0,r._offsets=new wr,r}return E(n,[{key:"setValue",value:function(t,e){var n=this._pending||(this._pending=new Map),r=n.get(t);r&&(this._pendingLength-=r.length),this._pendingLength+=e.length,n.set(t,e)}},{key:"setValid",value:function(t,e){return!!ze(ut(n.prototype),"setValid",this).call(this,t,e)||((this._pending||(this._pending=new Map)).set(t,void 0),!1)}},{key:"clear",value:function(){return this._pendingLength=0,this._pending=void 0,ze(ut(n.prototype),"clear",this).call(this)}},{key:"flush",value:function(){return this._flush(),ze(ut(n.prototype),"flush",this).call(this)}},{key:"finish",value:function(){return this._flush(),ze(ut(n.prototype),"finish",this).call(this)}},{key:"_flush",value:function(){var t=this._pending,e=this._pendingLength;return this._pendingLength=0,this._pending=void 0,t&&t.size>0&&this._flushPending(t,e),this}}]),n}(Ir);var Ar=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._values=new kr,r}return E(n,[{key:"setValue",value:function(t,e){this._values.set(t,+e)}}]),n}(Ir),Tr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"setValue",value:function(t,e){}},{key:"setValid",value:function(t,e){return this.length=Math.max(t+1,this.length),e}}]),n}(Ir),Br=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),Or=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Br),Dr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Br),Lr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),Fr=function(t){ot(n,t);var e=yt(n);function n(t){var r,i=t.type,a=t.nullValues,o=t.dictionaryHashFunction;return F(this,n),(r=e.call(this,{type:new lr(i.dictionary,i.indices,i.id,i.isOrdered)}))._nulls=null,r._dictionaryOffset=0,r._keysToIndices=Object.create(null),r.indices=Ir.new({type:r.type.indices,nullValues:a}),r.dictionary=Ir.new({type:r.type.dictionary,nullValues:null}),"function"===typeof o&&(r.valueToKey=o),r}return E(n,[{key:"values",get:function(){return this.indices.values}},{key:"nullCount",get:function(){return this.indices.nullCount}},{key:"nullBitmap",get:function(){return this.indices.nullBitmap}},{key:"byteLength",get:function(){return this.indices.byteLength+this.dictionary.byteLength}},{key:"reservedLength",get:function(){return this.indices.reservedLength+this.dictionary.reservedLength}},{key:"reservedByteLength",get:function(){return this.indices.reservedByteLength+this.dictionary.reservedByteLength}},{key:"isValid",value:function(t){return this.indices.isValid(t)}},{key:"setValid",value:function(t,e){var n=this.indices;return e=n.setValid(t,e),this.length=n.length,e}},{key:"setValue",value:function(t,e){var n=this._keysToIndices,r=this.valueToKey(e),i=n[r];return void 0===i&&(n[r]=i=this._dictionaryOffset+this.dictionary.append(e).length-1),this.indices.setValue(t,i)}},{key:"flush",value:function(){var t=this.type,e=this._dictionary,n=this.dictionary.toVector(),r=this.indices.flush().clone(t);return r.dictionary=e?e.concat(n):n,this.finished||(this._dictionaryOffset+=n.length),this._dictionary=r.dictionary,this.clear(),r}},{key:"finish",value:function(){return this.indices.finish(),this.dictionary.finish(),this._dictionaryOffset=0,this._keysToIndices=Object.create(null),ze(ut(n.prototype),"finish",this).call(this)}},{key:"clear",value:function(){return this.indices.clear(),this.dictionary.clear(),ze(ut(n.prototype),"clear",this).call(this)}},{key:"valueToKey",value:function(t){return"string"===typeof t?t:"".concat(t)}}]),n}(Ir),Mr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),Er=new Float64Array(1),Ur=new Uint32Array(Er.buffer);function Nr(t){var e=(31744&t)>>10,n=(1023&t)/1024,r=Math.pow(-1,(32768&t)>>15);switch(e){case 31:return r*(n?NaN:1/0);case 0:return r*(n?6103515625e-14*n:0)}return r*Math.pow(2,e-15)*(1+n)}function Cr(t){if(t!==t)return 32256;Er[0]=t;var e=(2147483648&Ur[1])>>16&65535,n=2146435072&Ur[1],r=0;return n>=1089470464?Ur[0]>0?n=31744:(n=(2080374784&n)>>16,r=(1048575&Ur[1])>>10):n<=1056964608?(r=1048576+((r=1048576+(1048575&Ur[1]))<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,r=512+(1048575&Ur[1])>>10),e|n|65535&r}var Vr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),jr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"setValue",value:function(t,e){this._values.set(t,Cr(e))}}]),n}(Vr),Rr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"setValue",value:function(t,e){this._values.set(t,e)}}]),n}(Vr),Pr=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"setValue",value:function(t,e){this._values.set(t,e)}}]),n}(Vr);function zr(t,e,n){return zr=st()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&at(i,n.prototype),i},zr.apply(null,arguments)}var Yr,Wr,Hr=Symbol.for("isArrowBigNum");function $r(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r>>=0),s+=(n>>>0)+e*Math.pow(c,32);return s}function Zr(t){var e="",n=new Uint32Array(2),r=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),i=new Uint32Array((r=new Uint16Array(r).reverse()).buffer),a=-1,o=r.length-1;do{for(n[0]=r[a=0];a0&&void 0!==arguments[0]?arguments[0]:"default";switch(t){case"number":return Jr(this);case"string":return Yr(this);case"default":return Wr(this)}return Yr(this)},Object.setPrototypeOf(Kr.prototype,Object.create(Int32Array.prototype)),Object.setPrototypeOf(Gr.prototype,Object.create(Uint32Array.prototype)),Object.setPrototypeOf(qr.prototype,Object.create(Uint32Array.prototype)),Object.assign(Kr.prototype,$r.prototype,{constructor:Kr,signed:!0,TypedArray:Int32Array,BigIntArray:_t}),Object.assign(Gr.prototype,$r.prototype,{constructor:Gr,signed:!1,TypedArray:Uint32Array,BigIntArray:St}),Object.assign(qr.prototype,$r.prototype,{constructor:qr,signed:!0,TypedArray:Uint32Array,BigIntArray:St}),kt?(Wr=function(t){return 8===t.byteLength?new t.BigIntArray(t.buffer,t.byteOffset,1)[0]:Zr(t)},Yr=function(t){return 8===t.byteLength?"".concat(new t.BigIntArray(t.buffer,t.byteOffset,1)[0]):Zr(t)}):Wr=Yr=Zr;var Qr,Xr=function(){function t(e,n){return F(this,t),t.new(e,n)}return E(t,null,[{key:"new",value:function(t,e){switch(e){case!0:return new Kr(t);case!1:return new Gr(t)}switch(t.constructor){case Int8Array:case Int16Array:case Int32Array:case _t:return new Kr(t)}return 16===t.byteLength?new qr(t):new Gr(t)}},{key:"signed",value:function(t){return new Kr(t)}},{key:"unsigned",value:function(t){return new Gr(t)}},{key:"decimal",value:function(t){return new qr(t)}}]),t}(),ti=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"setValue",value:function(t,e){this._values.set(t,e)}}]),n}(Sr),ei=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),ni=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),ri=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),ii=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),t.nullValues&&(t.nullValues=t.nullValues.map(ci)),(r=e.call(this,t))._values=new _r(new Int32Array(0),2),r}return E(n,[{key:"values64",get:function(){return this._values.buffer64}},{key:"isValid",value:function(t){return ze(ut(n.prototype),"isValid",this).call(this,ci(t))}}]),n}(ti),ai=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),oi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),ui=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ti),si=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),t.nullValues&&(t.nullValues=t.nullValues.map(ci)),(r=e.call(this,t))._values=new _r(new Uint32Array(0),2),r}return E(n,[{key:"values64",get:function(){return this._values.buffer64}},{key:"isValid",value:function(t){return ze(ut(n.prototype),"isValid",this).call(this,ci(t))}}]),n}(ti),ci=(Qr={BigIntArray:_t},function(t){return ArrayBuffer.isView(t)&&(Qr.buffer=t.buffer,Qr.byteOffset=t.byteOffset,Qr.byteLength=t.byteLength,t=Wr(Qr),Qr.buffer=null),t}),fi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),li=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(fi),hi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(fi),yi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(fi),pi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(fi),di=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),vi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(di),bi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(di),gi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(di),mi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(di),ki=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(Sr),wi=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ki),_i=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(ki),Ii=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._values=new gr(new Uint8Array(0)),r}return E(n,[{key:"byteLength",get:function(){var t=this._pendingLength+4*this.length;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}},{key:"setValue",value:function(t,e){return ze(ut(n.prototype),"setValue",this).call(this,t,Jt(e))}},{key:"_flushPending",value:function(t,e){var n,r,i=this._offsets,a=this._values.reserve(e).buffer,o=0,u=0,s=0,c=O(t);try{for(c.s();!(r=c.n()).done;){var f=U(r.value,2);o=f[0],void 0===(n=f[1])?i.set(o,0):(u=n.length,a.set(n,s),i.set(o,u),s+=u)}}catch(l){c.e(l)}finally{c.f()}}}]),n}(xr),Si=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._values=new gr(new Uint8Array(0)),r}return E(n,[{key:"byteLength",get:function(){var t=this._pendingLength+4*this.length;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}},{key:"setValue",value:function(t,e){return ze(ut(n.prototype),"setValue",this).call(this,t,it(e))}},{key:"_flushPending",value:function(t,e){}}]),n}(xr);Si.prototype._flushPending=Ii.prototype._flushPending;var xi=function(){function t(){F(this,t)}return E(t,[{key:"length",get:function(){return this._values.length}},{key:"get",value:function(t){return this._values[t]}},{key:"clear",value:function(){return this._values=null,this}},{key:"bind",value:function(t){return t instanceof qe?t:(this._values=t,this)}}]),t}(),Ai=Symbol.for("parent"),Ti=Symbol.for("rowIndex"),Bi=Symbol.for("keyToIdx"),Oi=Symbol.for("idxToVal"),Di=Symbol.for("nodejs.util.inspect.custom"),Li=function(t){function e(t,n){F(this,e),this[Ai]=t,this.size=n}return E(e,[{key:"entries",value:function(){return this[Symbol.iterator]()}},{key:"has",value:function(t){return void 0!==this.get(t)}},{key:"get",value:function(t){var e=void 0;if(null!==t&&void 0!==t){var n=this[Bi]||(this[Bi]=new Map),r=n.get(t);if(void 0!==r){var i=this[Oi]||(this[Oi]=new Array(this.size));void 0!==(e=i[r])||(i[r]=e=this.getValue(r))}else if((r=this.getIndex(t))>-1){n.set(t,r);var a=this[Oi]||(this[Oi]=new Array(this.size));void 0!==(e=a[r])||(a[r]=e=this.getValue(r))}}return e}},{key:"set",value:function(t,e){if(null!==t&&void 0!==t){var n=this[Bi]||(this[Bi]=new Map),r=n.get(t);if(void 0===r&&n.set(t,r=this.getIndex(t)),r>-1)(this[Oi]||(this[Oi]=new Array(this.size)))[r]=this.setValue(r,e)}return this}},{key:"clear",value:function(){throw new Error("Clearing ".concat(this[Symbol.toStringTag]," not supported."))}},{key:"delete",value:function(t){throw new Error("Deleting ".concat(this[Symbol.toStringTag]," values not supported."))}},{key:Symbol.iterator,value:R.mark((function t(){var e,n,r,i,a,o,u,s,c;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=this.keys(),n=this.values(),r=this[Bi]||(this[Bi]=new Map),i=this[Oi]||(this[Oi]=new Array(this.size)),u=0;case 5:if((s=e.next()).done||(c=n.next()).done){t.next=15;break}return a=s.value,o=c.value,i[u]=o,r.has(a)||r.set(a,u),t.next=12,[a,o];case 12:++u,t.next=5;break;case 15:case"end":return t.stop()}}),t,this)}))},{key:"forEach",value:function(t,e){for(var n,r,i,a,o=this.keys(),u=this.values(),s=void 0===e?t:function(n,r,i){return t.call(e,n,r,i)},c=this[Bi]||(this[Bi]=new Map),f=this[Oi]||(this[Oi]=new Array(this.size)),l=0;!(i=o.next()).done&&!(a=u.next()).done;++l)n=i.value,r=a.value,f[l]=r,c.has(n)||c.set(n,l),s(r,n,this)}},{key:"toArray",value:function(){return vn(this.values())}},{key:"toJSON",value:function(){var t={};return this.forEach((function(e,n){return t[n]=e})),t}},{key:"inspect",value:function(){return this.toString()}},{key:Di,value:function(){return this.toString()}},{key:"toString",value:function(){var t=[];return this.forEach((function(e,n){n=pr(n),e=pr(e),t.push("".concat(n,": ").concat(e))})),"{ ".concat(t.join(", ")," }")}}]),e}();Li[Symbol.toStringTag]=function(t){var e;return Object.defineProperties(t,(Ve(e={size:{writable:!0,enumerable:!1,configurable:!1,value:0}},Ai,{writable:!0,enumerable:!1,configurable:!1,value:null}),Ve(e,Ti,{writable:!0,enumerable:!1,configurable:!1,value:-1}),e)),t[Symbol.toStringTag]="Row"}(Li.prototype);var Fi=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),ht(r=e.call(this,t,t.length),Ni(lt(r)))}return E(n,[{key:"keys",value:function(){return this[Ai].getChildAt(0)[Symbol.iterator]()}},{key:"values",value:function(){return this[Ai].getChildAt(1)[Symbol.iterator]()}},{key:"getKey",value:function(t){return this[Ai].getChildAt(0).get(t)}},{key:"getIndex",value:function(t){return this[Ai].getChildAt(0).indexOf(t)}},{key:"getValue",value:function(t){return this[Ai].getChildAt(1).get(t)}},{key:"setValue",value:function(t,e){this[Ai].getChildAt(1).set(t,e)}}]),n}(Li),Mi=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),ht(r=e.call(this,t,t.type.children.length),Ui(lt(r)))}return E(n,[{key:"keys",value:R.mark((function t(){var e,n,r;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=O(this[Ai].type.children),t.prev=1,e.s();case 3:if((n=e.n()).done){t.next=9;break}return r=n.value,t.next=7,r.name;case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case"end":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:"values",value:R.mark((function t(){var e,n,r;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=O(this[Ai].type.children),t.prev=1,e.s();case 3:if((n=e.n()).done){t.next=9;break}return r=n.value,t.next=7,this[r.name];case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case"end":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:"getKey",value:function(t){return this[Ai].type.children[t].name}},{key:"getIndex",value:function(t){return this[Ai].type.children.findIndex((function(e){return e.name===t}))}},{key:"getValue",value:function(t){return this[Ai].getChildAt(t).get(this[Ti])}},{key:"setValue",value:function(t,e){return this[Ai].getChildAt(t).set(this[Ti],e)}}]),n}(Li);Object.setPrototypeOf(Li.prototype,Map.prototype);var Ei,Ui=function(){var t={enumerable:!0,configurable:!1,get:null,set:null};return function(e){var n,r=-1,i=e[Bi]||(e[Bi]=new Map),a=function(t){return function(){return this.get(t)}},o=function(t){return function(e){return this.set(t,e)}},u=O(e.keys());try{for(u.s();!(n=u.n()).done;){var s=n.value;i.set(s,++r),t.get=a(s),t.set=o(s),e.hasOwnProperty(s)||(t.enumerable=!0,Object.defineProperty(e,s,t)),e.hasOwnProperty(r)||(t.enumerable=!1,Object.defineProperty(e,r,t))}}catch(c){u.e(c)}finally{u.f()}return t.get=t.set=null,e}}(),Ni=function(){if("undefined"===typeof Proxy)return Ui;var t=Li.prototype.has,e=Li.prototype.get,n=Li.prototype.set,r=Li.prototype.getKey,i={isExtensible:function(){return!1},deleteProperty:function(){return!1},preventExtensions:function(){return!0},ownKeys:function(t){return vn(t.keys()).map((function(t){return"".concat(t)}))},has:function(t,e){switch(e){case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:case Ai:case Ti:case Oi:case Bi:case Di:return!0}return"number"!==typeof e||t.has(e)||(e=t.getKey(e)),t.has(e)},get:function(n,i,a){switch(i){case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:case Ai:case Ti:case Oi:case Bi:case Di:return Reflect.get(n,i,a)}return"number"!==typeof i||t.call(a,i)||(i=r.call(a,i)),e.call(a,i)},set:function(e,i,a,o){switch(i){case Ai:case Ti:case Oi:case Bi:return Reflect.set(e,i,a,o);case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:return!1}return"number"!==typeof i||t.call(o,i)||(i=r.call(o,i)),!!t.call(o,i)&&!!n.call(o,i,a)}};return function(t){return new Proxy(t,i)}}();function Ci(t,e,n){var r=t.length,i=e>-1?e:r+e%r;return n?n(t,i):i}function Vi(t,e,n,r){var i=t.length,a=void 0===i?0:i,o="number"!==typeof e?0:e,u="number"!==typeof n?a:n;return o<0&&(o=(o%a+a)%a),u<0&&(u=(u%a+a)%a),ua&&(u=a),r?r(t,o,u):[o,u]}var ji=kt?mt(0):0,Ri=function(t){return t!==t};function Pi(t){var e=typeof t;if("object"!==e||null===t)return Ri(t)?Ri:"bigint"!==e?function(e){return e===t}:function(e){return ji+e===t};if(t instanceof Date){var n=t.valueOf();return function(t){return t instanceof Date&&t.valueOf()===n}}return ArrayBuffer.isView(t)?function(e){return!!e&&Ae(t,e)}:t instanceof Map?function(t){var e=-1,n=[];return t.forEach((function(t){return n[++e]=Pi(t)})),zi(n)}(t):Array.isArray(t)?function(t){for(var e=[],n=-1,r=t.length;++n1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Hi(i);return F(this,r),(e=n.call(this))._nullCount=-1,e._type=t,e._chunks=i,e._chunkOffsets=a,e._length=a[a.length-1],e._numChildren=(e._type.children||[]).length,e}return E(r,[{key:"type",get:function(){return this._type}},{key:"length",get:function(){return this._length}},{key:"chunks",get:function(){return this._chunks}},{key:"typeId",get:function(){return this._type.typeId}},{key:"VectorName",get:function(){return"Chunked<".concat(this._type,">")}},{key:"data",get:function(){return this._chunks[0]?this._chunks[0].data:null}},{key:"ArrayType",get:function(){return this._type.ArrayType}},{key:"numChildren",get:function(){return this._numChildren}},{key:"stride",get:function(){return this._chunks[0]?this._chunks[0].stride:1}},{key:"byteLength",get:function(){return this._chunks.reduce((function(t,e){return t+e.byteLength}),0)}},{key:"nullCount",get:function(){var t=this._nullCount;return t<0&&(this._nullCount=t=this._chunks.reduce((function(t,e){return t+e.nullCount}),0)),t}},{key:"indices",get:function(){if(Fn.isDictionary(this._type)){if(!this._indices){var t=this._chunks;this._indices=1===t.length?t[0].indices:r.concat.apply(r,vn(t.map((function(t){return t.indices}))))}return this._indices}return null}},{key:"dictionary",get:function(){return Fn.isDictionary(this._type)?this._chunks[this._chunks.length-1].data.dictionary:null}},{key:e,value:R.mark((function t(){var e,n,r;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=O(this._chunks),t.prev=1,e.s();case 3:if((n=e.n()).done){t.next=8;break}return r=n.value,t.delegateYield(r,"t0",6);case 6:t.next=3;break;case 8:t.next=13;break;case 10:t.prev=10,t.t1=t.catch(1),e.e(t.t1);case 13:return t.prev=13,e.f(),t.finish(13);case 16:case"end":return t.stop()}}),t,this,[[1,10,13,16]])}))},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._chunks;return new r(this._type,t)}},{key:"concat",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n=this._numChildren)return null;var e,n,i,a=this._children||(this._children=[]);return(e=a[t])?e:(n=(this._type.children||[])[t])&&(i=this._chunks.map((function(e){return e.getChildAt(t)})).filter((function(t){return null!=t}))).length>0?a[t]=new r(n.type,i):null}},{key:"search",value:function(t,e){var n=t,r=this._chunkOffsets,i=r.length-1;if(n<0)return null;if(n>=r[i])return null;if(i<=1)return e?e(this,0,n):[0,n];var a=0,o=0,u=0;do{if(a+1===i)return e?e(this,a,n-o):[a,n-o];n>=r[u=a+(i-a)/2|0]?a=u:i=u}while(n=(o=r[a]));return null}},{key:"isValid",value:function(t){return!!this.search(t,this.isValidInternal)}},{key:"get",value:function(t){return this.search(t,this.getInternal)}},{key:"set",value:function(t,e){this.search(t,(function(t,n,r){return t.chunks[n].set(r,e)}))}},{key:"indexOf",value:function(t,e){var n=this;return e&&"number"===typeof e?this.search(e,(function(e,r,i){return n.indexOfInternal(e,r,i,t)})):this.indexOfInternal(this,0,Math.max(0,e||0),t)}},{key:"toArray",value:function(){var t=this.chunks,e=t.length,n=this._type.ArrayType;if(e<=0)return new n(0);if(e<=1)return t[0].toArray();for(var r=0,i=new Array(e),a=-1;++a=n)break;if(!(e>=f+c))if(f>=e&&f+c<=n)r.push(s);else{var l=Math.max(0,e-f),h=Math.min(n-f,c);r.push(s.slice(l,h))}}return t.clone(r)}}],[{key:"flatten",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0;return F(this,n),i=Wi.flatten.apply(Wi,vn(i)),(r=e.call(this,t.type,i,a))._field=t,1!==i.length||lt(r)instanceof qi?r:ht(r,new qi(t,i[0],r._chunkOffsets))}return E(n,[{key:"field",get:function(){return this._field}},{key:"name",get:function(){return this._field.name}},{key:"nullable",get:function(){return this._field.nullable}},{key:"metadata",get:function(){return this._field.metadata}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._chunks;return new n(this._field,t)}},{key:"getChildAt",value:function(t){if(t<0||t>=this.numChildren)return null;var e,r,i,a=this._children||(this._children=[]);return(e=a[t])?e:(r=(this.type.children||[])[t])&&(i=this._chunks.map((function(e){return e.getChildAt(t)})).filter((function(t){return null!=t}))).length>0?a[t]=new n(r,i):null}}],[{key:"new",value:function(t,e){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a0}))&&(t=t.clone({nullable:!0}));return new n(t,o)}}]),n}(Wi),qi=function(t){ot(n,t);var e=yt(n);function n(t,r,i){var a;return F(this,n),(a=e.call(this,t,[r],i))._chunk=r,a}return E(n,[{key:"search",value:function(t,e){return e?e(this,0,t):[0,t]}},{key:"isValid",value:function(t){return this._chunk.isValid(t)}},{key:"get",value:function(t){return this._chunk.get(t)}},{key:"set",value:function(t,e){this._chunk.set(t,e)}},{key:"indexOf",value:function(t,e){return this._chunk.indexOf(t,e)}}]),n}(Gi),Ji=Array.isArray,Zi=function(t,e){return na(t,e,[],0)},Qi=function(t){var e=U(oa(t,[[],[]]),2),n=e[0];return e[1].map((function(t,e){return t instanceof Gi?Gi.new(t.field.clone(n[e]),t):t instanceof qe?Gi.new(n[e],t):Gi.new(n[e],[])}))},Xi=function(t){return oa(t,[[],[]])},ta=function(t,e){return ra(t,e,[],0)},ea=function(t,e){return ia(t,e,[],0)};function na(t,e,n,r){for(var i,a=r,o=-1,u=e.length;++o0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;F(this,e),this.fields=t||[],this.metadata=n||new Map,r||(r=fa(t)),this.dictionaries=r}return E(e,[{key:Symbol.toStringTag,get:function(){return"Schema"}},{key:"toString",value:function(){return"Schema<{ ".concat(this.fields.map((function(t,e){return"".concat(e,": ").concat(t)})).join(", ")," }>")}},{key:"compareTo",value:function(t){return Ln.compareSchemas(this,t)}},{key:"select",value:function(){for(var t=arguments.length,n=new Array(t),r=0;r2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0;F(this,e),this.name=t,this.type=n,this.nullable=r,this.metadata=i||new Map}return E(e,[{key:"typeId",get:function(){return this.type.typeId}},{key:Symbol.toStringTag,get:function(){return"Field"}},{key:"toString",value:function(){return"".concat(this.name,": ").concat(this.type)}},{key:"compareTo",value:function(t){return Ln.compareField(this,t)}},{key:"clone",value:function(){for(var t,n,r,i,a,o,u,s,c,f,l=arguments.length,h=new Array(l),y=0;y1&&void 0!==arguments[1]?arguments[1]:new Map,n=-1,r=t.length;++n0&&fa(a.children,e)}return e}ua.prototype.fields=null,ua.prototype.metadata=null,ua.prototype.dictionaries=null,sa.prototype.type=null,sa.prototype.name=null,sa.prototype.nullable=null,sa.prototype.metadata=null;var la=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._run=new xi,r._offsets=new wr,r}return E(n,[{key:"addChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0";if(this.numChildren>0)throw new Error("ListBuilder can only have one child.");return this.children[this.numChildren]=t,this.type=new rr(new sa(e,t.type,!0)),this.numChildren-1}},{key:"clear",value:function(){return this._run.clear(),ze(ut(n.prototype),"clear",this).call(this)}},{key:"_flushPending",value:function(t){var e,n,r=this._run,i=this._offsets,a=this._setValue,o=0,u=O(t);try{for(u.s();!(n=u.n()).done;){var s=U(n.value,2);o=s[0],void 0===(e=s[1])?i.set(o,0):(i.set(o,e.length),a(this,o,r.bind(e)))}}catch(c){u.e(c)}finally{u.f()}}}]),n}(xr),ha=function(t){ot(n,t);var e=yt(n);function n(){var t;return F(this,n),(t=e.apply(this,arguments))._run=new xi,t}return E(n,[{key:"setValue",value:function(t,e){ze(ut(n.prototype),"setValue",this).call(this,t,this._run.bind(e))}},{key:"addChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0";if(this.numChildren>0)throw new Error("FixedSizeListBuilder can only have one child.");var n=this.children.push(t);return this.type=new ur(this.type.listSize,new sa(e,t.type,!0)),n}},{key:"clear",value:function(){return this._run.clear(),ze(ut(n.prototype),"clear",this).call(this)}}]),n}(Ir),ya=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"set",value:function(t,e){return ze(ut(n.prototype),"set",this).call(this,t,e)}},{key:"setValue",value:function(t,e){e=e instanceof Map?e:new Map(Object.entries(e));var n=this._pending||(this._pending=new Map),r=n.get(t);r&&(this._pendingLength-=r.size),this._pendingLength+=e.size,n.set(t,e)}},{key:"addChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"".concat(this.numChildren);if(this.numChildren>0)throw new Error("ListBuilder can only have one child.");return this.children[this.numChildren]=t,this.type=new sr(new sa(e,t.type,!0),this.type.keysSorted),this.numChildren-1}},{key:"_flushPending",value:function(t){var e=this,n=this._offsets,r=this._setValue;t.forEach((function(t,i){void 0===t?n.set(i,0):(n.set(i,t.size),r(e,i,t))}))}}]),n}(xr),pa=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"addChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"".concat(this.numChildren),n=this.children.push(t);return this.type=new ir([].concat(vn(this.type.children),[new sa(e,t.type,!0)])),n}}]),n}(Ir),da=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._typeIds=new mr(new Int8Array(0),1),"function"===typeof t.valueToChildTypeId&&(r._valueToChildTypeId=t.valueToChildTypeId),r}return E(n,[{key:"typeIdToChildIndex",get:function(){return this.type.typeIdToChildIndex}},{key:"append",value:function(t,e){return this.set(this.length,t,e)}},{key:"set",value:function(t,e,n){return void 0===n&&(n=this._valueToChildTypeId(this,e,t)),this.setValid(t,this.isValid(e))&&this.setValue(t,e,n),this}},{key:"setValue",value:function(t,e,r){this._typeIds.set(t,r),ze(ut(n.prototype),"setValue",this).call(this,t,e)}},{key:"addChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"".concat(this.children.length),n=this.children.push(t),r=this.type,i=r.children,a=r.mode,o=r.typeIds,u=[].concat(vn(i),[new sa(e,t.type)]);return this.type=new ar(a,[].concat(vn(o),[n]),u),n}},{key:"_valueToChildTypeId",value:function(t,e,n){throw new Error("Cannot map UnionBuilder value to child typeId. Pass the `childTypeId` as the second argument to unionBuilder.append(), or supply a `valueToChildTypeId` function as part of the UnionBuilder constructor options.")}}]),n}(Ir),va=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(da),ba=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._offsets=new mr(new Int32Array(0)),r}return E(n,[{key:"setValue",value:function(t,e,r){var i=this.type.typeIdToChildIndex[r];return this._offsets.set(t,this.getChildAt(i).length),ze(ut(n.prototype),"setValue",this).call(this,t,e,r)}}]),n}(da),ga=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(bn),ma=function(t,e,n){t[e]=n%4294967296|0,t[e+1]=n/4294967296|0},ka=function(t,e,n,r){var i=e[n],a=e[n+1];null!=i&&null!=a&&t.set(r.subarray(0,a-i),i)},wa=function(t,e,n){!function(t,e,n){t[e]=n/864e5|0}(t.values,e,n.valueOf())},_a=function(t,e,n){var r=t.values;ma(r,2*e,n.valueOf())},Ia=function(t,e,n){var r=t.stride;t.values[r*e]=n},Sa=function(t,e,n){var r=t.stride;t.values[r*e]=Cr(n)},xa=function(t,e,n){switch(typeof n){case"bigint":t.values64[e]=n;break;case"number":t.values[e*t.stride]=n;break;default:var r=n,i=t.stride,a=Ht(t.ArrayType,r);t.values.set(a.subarray(0,i),i*e)}},Aa=function(t,e,n){var r=t.values;return ma(r,2*e,n/1e3)},Ta=function(t,e,n){var r=t.values;return ma(r,2*e,n)},Ba=function(t,e,n){return function(t,e,n){t[e]=1e3*n%4294967296|0,t[e+1]=1e3*n/4294967296|0}(t.values,2*e,n)},Oa=function(t,e,n){return function(t,e,n){t[e]=1e6*n%4294967296|0,t[e+1]=1e6*n/4294967296|0}(t.values,2*e,n)},Da=function(t,e,n){t.values[t.stride*e]=n},La=function(t,e,n){t.values[t.stride*e]=n},Fa=function(t,e,n){t.values.set(n.subarray(0,2),2*e)},Ma=function(t,e,n){t.values.set(n.subarray(0,2),2*e)},Ea=function(t,e,n){var r=t.typeIdToChildIndex[t.typeIds[e]],i=t.getChildAt(r);i&&i.set(t.valueOffsets[e],n)},Ua=function(t,e,n){var r=t.typeIdToChildIndex[t.typeIds[e]],i=t.getChildAt(r);i&&i.set(e,n)},Na=function(t,e,n){t.values.set(n.subarray(0,2),2*e)},Ca=function(t,e,n){t.values[e]=12*n[0]+n[1]%12};ga.prototype.visitBool=function(t,e,n){var r=t.offset,i=t.values,a=r+e;n?i[a>>3]|=1<>3]&=~(1<0){var i=e.children||[],a={nullValues:e.nullValues},o=Array.isArray(i)?function(t,e){return i[e]||a}:function(t){var e=t.name;return i[e]||a};n.children.forEach((function(e,n){var i=e.type,a=o(e,n);r.children.push(t(Re(Re({},a),{},{type:i})))}))}return r},Object.keys(Je).map((function(t){return Je[t]})).filter((function(t){return"number"===typeof t&&t!==Je.NONE})).forEach((function(t){Pa.visit(t).prototype._setValue=ja.getVisitFn(t)})),Si.prototype._setValue=ja.visitBinary,function(t){!function(e){!function(e){!function(e){var n=function(){function e(){F(this,e),this.bb=null,this.bb_pos=0}return E(e,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"version",value:function(){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):Ye.apache.arrow.flatbuf.MetadataVersion.V1}},{key:"schema",value:function(t){var e=this.bb.__offset(this.bb_pos,6);return e?(t||new Ye.apache.arrow.flatbuf.Schema).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}},{key:"dictionaries",value:function(e,n){var r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.apache.arrow.flatbuf.Block).__init(this.bb.__vector(this.bb_pos+r)+24*e,this.bb):null}},{key:"dictionariesLength",value:function(){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}},{key:"recordBatches",value:function(e,n){var r=this.bb.__offset(this.bb_pos,10);return r?(n||new t.apache.arrow.flatbuf.Block).__init(this.bb.__vector(this.bb_pos+r)+24*e,this.bb):null}},{key:"recordBatchesLength",value:function(){var t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}}],[{key:"getRootAsFooter",value:function(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startFooter",value:function(t){t.startObject(4)}},{key:"addVersion",value:function(t,e){t.addFieldInt16(0,e,Ye.apache.arrow.flatbuf.MetadataVersion.V1)}},{key:"addSchema",value:function(t,e){t.addFieldOffset(1,e,0)}},{key:"addDictionaries",value:function(t,e){t.addFieldOffset(2,e,0)}},{key:"startDictionariesVector",value:function(t,e){t.startVector(24,e,8)}},{key:"addRecordBatches",value:function(t,e){t.addFieldOffset(3,e,0)}},{key:"startRecordBatchesVector",value:function(t,e){t.startVector(24,e,8)}},{key:"endFooter",value:function(t){return t.endObject()}},{key:"finishFooterBuffer",value:function(t,e){t.finish(e)}},{key:"createFooter",value:function(t,n,r,i,a){return e.startFooter(t),e.addVersion(t,n),e.addSchema(t,r),e.addDictionaries(t,i),e.addRecordBatches(t,a),e.endFooter(t)}}]),e}();e.Footer=n}(e.flatbuf||(e.flatbuf={}))}(e.arrow||(e.arrow={}))}(t.apache||(t.apache={}))}(Va||(Va={})),function(t){!function(t){!function(t){!function(t){var e=function(){function t(){F(this,t),this.bb=null,this.bb_pos=0}return E(t,[{key:"__init",value:function(t,e){return this.bb_pos=t,this.bb=e,this}},{key:"offset",value:function(){return this.bb.readInt64(this.bb_pos)}},{key:"metaDataLength",value:function(){return this.bb.readInt32(this.bb_pos+8)}},{key:"bodyLength",value:function(){return this.bb.readInt64(this.bb_pos+16)}}],[{key:"createBlock",value:function(t,e,n,r){return t.prep(8,24),t.writeInt64(r),t.pad(4),t.writeInt32(n),t.writeInt64(e),t.offset()}}]),t}();t.Block=e}(t.flatbuf||(t.flatbuf={}))}(t.arrow||(t.arrow={}))}(t.apache||(t.apache={}))}(Va||(Va={}));var za=W.Long,Ya=W.Builder,Wa=W.ByteBuffer,Ha=Va.apache.arrow.flatbuf.Block,$a=Va.apache.arrow.flatbuf.Footer,Ka=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:an.V4,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;F(this,t),this.schema=e,this.version=n,r&&(this._recordBatches=r),i&&(this._dictionaryBatches=i)}return E(t,[{key:"numRecordBatches",get:function(){return this._recordBatches.length}},{key:"numDictionaries",get:function(){return this._dictionaryBatches.length}},{key:"recordBatches",value:R.mark((function t(){var e,n,r;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=-1,r=this.numRecordBatches;case 1:if(!(++n=0&&t=0&&t=0&&t=0&&t0)return ze(ut(n.prototype),"write",this).call(this,t)}},{key:"toString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t?rt(this.toUint8Array(!0)):this.toUint8Array(!1).then(rt)}},{key:"toUint8Array",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?Wt(this._values)[0]:L(R.mark((function e(){var n,r,i,a,o,u,s,c;return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=[],r=0,i=!1,a=!1,e.prev=3,u=P(t);case 5:return e.next=7,u.next();case 7:if(!(i=!(s=e.sent).done)){e.next=14;break}c=s.value,n.push(c),r+=c.byteLength;case 11:i=!1,e.next=5;break;case 14:e.next=20;break;case 16:e.prev=16,e.t0=e.catch(3),a=!0,o=e.t0;case 20:if(e.prev=20,e.prev=21,!i||null==u.return){e.next=25;break}return e.next=25,u.return();case 25:if(e.prev=25,!a){e.next=28;break}throw o;case 28:return e.finish(25);case 29:return e.finish(20);case 30:return e.abrupt("return",Wt(n,r)[0]);case 31:case"end":return e.stop()}}),e,null,[[3,16,20,30],[21,,25,29]])})))()}}]),n}(bt),Za=function(t){function e(t){F(this,e),t&&(this.source=new Xa(Be.fromIterable(t)))}return E(e,[{key:Symbol.iterator,value:function(){return this}},{key:"next",value:function(t){return this.source.next(t)}},{key:"throw",value:function(t){return this.source.throw(t)}},{key:"return",value:function(t){return this.source.return(t)}},{key:"peek",value:function(t){return this.source.peek(t)}},{key:"read",value:function(t){return this.source.read(t)}}]),e}(),Qa=function(t){function e(t){F(this,e),t instanceof e?this.source=t.source:t instanceof Ja?this.source=new to(Be.fromAsyncIterable(t)):jt(t)?this.source=new to(Be.fromNodeStream(t)):Ct(t)?this.source=new to(Be.fromDOMStream(t)):Ut(t)?this.source=new to(Be.fromDOMStream(t.body)):Dt(t)?this.source=new to(Be.fromIterable(t)):(Ot(t)||Lt(t))&&(this.source=new to(Be.fromAsyncIterable(t)))}return E(e,[{key:Symbol.asyncIterator,value:function(){return this}},{key:"next",value:function(t){return this.source.next(t)}},{key:"throw",value:function(t){return this.source.throw(t)}},{key:"return",value:function(t){return this.source.return(t)}},{key:"closed",get:function(){return this.source.closed}},{key:"cancel",value:function(t){return this.source.cancel(t)}},{key:"peek",value:function(t){return this.source.peek(t)}},{key:"read",value:function(t){return this.source.read(t)}}]),e}(),Xa=function(){function t(e){F(this,t),this.source=e}return E(t,[{key:"cancel",value:function(t){this.return(t)}},{key:"peek",value:function(t){return this.next(t,"peek").value}},{key:"read",value:function(t){return this.next(t,"read").value}},{key:"next",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"read";return this.source.next({cmd:e,size:t})}},{key:"throw",value:function(t){return Object.create(this.source.throw&&this.source.throw(t)||pt)}},{key:"return",value:function(t){return Object.create(this.source.return&&this.source.return(t)||pt)}}]),t}(),to=function(){function t(e){var n=this;F(this,t),this.source=e,this._closedPromise=new Promise((function(t){return n._closedPromiseResolve=t}))}return E(t,[{key:"cancel",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.return(e);case 2:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"closed",get:function(){return this._closedPromise}},{key:"read",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.next(e,"read");case 2:return t.abrupt("return",t.sent.value);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"peek",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.next(e,"peek");case 2:return t.abrupt("return",t.sent.value);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"next",value:function(){var t=L(R.mark((function t(e){var n,r=arguments;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:"read",t.next=3,this.source.next({cmd:n,size:e});case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"throw",value:function(){var t=L(R.mark((function t(e){var n;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.t1=this.source.throw,!t.t1){t.next=5;break}return t.next=4,this.source.throw(e);case 4:t.t1=t.sent;case 5:if(t.t0=t.t1,t.t0){t.next=8;break}t.t0=pt;case 8:return n=t.t0,this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,t.abrupt("return",Object.create(n));case 12:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"return",value:function(){var t=L(R.mark((function t(e){var n;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.t1=this.source.return,!t.t1){t.next=5;break}return t.next=4,this.source.return(e);case 4:t.t1=t.sent;case 5:if(t.t0=t.t1,t.t0){t.next=8;break}t.t0=pt;case 8:return n=t.t0,this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,t.abrupt("return",Object.create(n));case 12:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()}]),t}(),eo=function(t){ot(n,t);var e=yt(n);function n(t,r){var i;return F(this,n),(i=e.call(this)).position=0,i.buffer=Jt(t),i.size="undefined"===typeof r?i.buffer.byteLength:r,i}return E(n,[{key:"readInt32",value:function(t){var e=this.readAt(t,4),n=e.buffer,r=e.byteOffset;return new DataView(n,r).getInt32(0,!0)}},{key:"seek",value:function(t){return this.position=Math.min(t,this.size),t>>16,65535&this.buffer[1],this.buffer[0]>>>16,65535&this.buffer[0]]),n=new Uint32Array([t.buffer[1]>>>16,65535&t.buffer[1],t.buffer[0]>>>16,65535&t.buffer[0]]),r=e[3]*n[3];this.buffer[0]=65535&r;var i=r>>>16;return i+=r=e[2]*n[3],i+=r=e[3]*n[2]>>>0,this.buffer[0]+=i<<16,this.buffer[1]=i>>>0>>16,this.buffer[1]+=e[1]*n[3]+e[2]*n[2]+e[3]*n[1],this.buffer[1]+=e[0]*n[3]+e[1]*n[2]+e[2]*n[1]+e[3]*n[0]<<16,this}},{key:"_plus",value:function(t){var e=this.buffer[0]+t.buffer[0]>>>0;this.buffer[1]+=t.buffer[1],e>>0&&++this.buffer[1],this.buffer[0]=e}},{key:"lessThan",value:function(t){return this.buffer[1]1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2);return n.fromString("string"===typeof t?t:t.toString(),e)}},{key:"fromNumber",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2);return n.fromString(t.toString(),e)}},{key:"fromString",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2),r=t.length,i=new n(e),a=0;a1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2);return n.fromString("string"===typeof t?t:t.toString(),e)}},{key:"fromNumber",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2);return n.fromString(t.toString(),e)}},{key:"fromString",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(2),r=t.startsWith("-"),i=t.length,a=new n(e),o=r?1:0;o>>0,e[2]=this.buffer[2]+t.buffer[2]>>>0,e[1]=this.buffer[1]+t.buffer[1]>>>0,e[0]=this.buffer[0]+t.buffer[0]>>>0,e[0]>>0&&++e[1],e[1]>>0&&++e[2],e[2]>>0&&++e[3],this.buffer[3]=e[3],this.buffer[2]=e[2],this.buffer[1]=e[1],this.buffer[0]=e[0],this}},{key:"hex",value:function(){return"".concat(ro(this.buffer[3])," ").concat(ro(this.buffer[2])," ").concat(ro(this.buffer[1])," ").concat(ro(this.buffer[0]))}}],[{key:"multiply",value:function(e,n){return new t(new Uint32Array(e.buffer)).times(n)}},{key:"add",value:function(e,n){return new t(new Uint32Array(e.buffer)).plus(n)}},{key:"from",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(4);return t.fromString("string"===typeof e?e:e.toString(),n)}},{key:"fromNumber",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(4);return t.fromString(e.toString(),n)}},{key:"fromString",value:function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint32Array(4),r=e.startsWith("-"),i=e.length,a=new t(n),o=r?1:0;o1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length;return yr.Null(t,0,n)}},{key:"visitBool",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Bool(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitInt",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Int(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitFloat",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Float(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitUtf8",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Utf8(t,0,n,r,this.readNullBitmap(t,r),this.readOffsets(t),this.readData(t))}},{key:"visitBinary",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Binary(t,0,n,r,this.readNullBitmap(t,r),this.readOffsets(t),this.readData(t))}},{key:"visitFixedSizeBinary",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.FixedSizeBinary(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitDate",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Date(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitTimestamp",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Timestamp(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitTime",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Time(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitDecimal",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Decimal(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitList",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.List(t,0,n,r,this.readNullBitmap(t,r),this.readOffsets(t),this.visit(t.children[0]))}},{key:"visitStruct",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Struct(t,0,n,r,this.readNullBitmap(t,r),this.visitMany(t.children))}},{key:"visitUnion",value:function(t){return t.mode===en.Sparse?this.visitSparseUnion(t):this.visitDenseUnion(t)}},{key:"visitDenseUnion",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Union(t,0,n,r,this.readNullBitmap(t,r),this.readTypeIds(t),this.readOffsets(t),this.visitMany(t.children))}},{key:"visitSparseUnion",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Union(t,0,n,r,this.readNullBitmap(t,r),this.readTypeIds(t),this.visitMany(t.children))}},{key:"visitDictionary",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Dictionary(t,0,n,r,this.readNullBitmap(t,r),this.readData(t.indices),this.readDictionary(t))}},{key:"visitInterval",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Interval(t,0,n,r,this.readNullBitmap(t,r),this.readData(t))}},{key:"visitFixedSizeList",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.FixedSizeList(t,0,n,r,this.readNullBitmap(t,r),this.visit(t.children[0]))}},{key:"visitMap",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextFieldNode(),n=e.length,r=e.nullCount;return yr.Map(t,0,n,r,this.readNullBitmap(t,r),this.readOffsets(t),this.visit(t.children[0]))}},{key:"nextFieldNode",value:function(){return this.nodes[++this.nodesIndex]}},{key:"nextBufferRange",value:function(){return this.buffers[++this.buffersIndex]}},{key:"readNullBitmap",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.nextBufferRange();return e>0&&this.readData(t,n)||new Uint8Array(0)}},{key:"readOffsets",value:function(t,e){return this.readData(t,e)}},{key:"readTypeIds",value:function(t,e){return this.readData(t,e)}},{key:"readData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextBufferRange(),n=e.length,r=e.offset;return this.bytes.subarray(r,r+n)}},{key:"readDictionary",value:function(t){return this.dictionaries.get(t.id)}}]),n}(bn),fo=function(t){ot(n,t);var e=yt(n);function n(t,r,i,a){var o;return F(this,n),(o=e.call(this,new Uint8Array(0),r,i,a)).sources=t,o}return E(n,[{key:"readNullBitmap",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.nextBufferRange(),r=n.offset;return e<=0?new Uint8Array(0):ln(this.sources[r])}},{key:"readOffsets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextBufferRange(),n=e.offset;return Ht(Uint8Array,Ht(Int32Array,this.sources[n]))}},{key:"readTypeIds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextBufferRange(),n=e.offset;return Ht(Uint8Array,Ht(t.ArrayType,this.sources[n]))}},{key:"readData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.nextBufferRange(),n=e.offset,r=this.sources;return Fn.isTimestamp(t)||(Fn.isInt(t)||Fn.isTime(t))&&64===t.bitWidth||Fn.isDate(t)&&t.unit===Qe.MILLISECOND?Ht(Uint8Array,uo.convertArray(r[n])):Fn.isDecimal(t)?Ht(Uint8Array,so.convertArray(r[n])):Fn.isBinary(t)||Fn.isFixedSizeBinary(t)?lo(r[n]):Fn.isBool(t)?ln(r[n]):Fn.isUtf8(t)?it(r[n].join("")):Ht(Uint8Array,Ht(t.ArrayType,r[n].map((function(t){return+t}))))}}]),n}(co);function lo(t){for(var e=t.join(""),n=new Uint8Array(e.length/2),r=0;r>1]=parseInt(e.substr(r,2),16);return n}var ho=W.Long,yo=Ye.apache.arrow.flatbuf.Null,po=Ye.apache.arrow.flatbuf.Int,vo=Ye.apache.arrow.flatbuf.FloatingPoint,bo=Ye.apache.arrow.flatbuf.Binary,go=Ye.apache.arrow.flatbuf.Bool,mo=Ye.apache.arrow.flatbuf.Utf8,ko=Ye.apache.arrow.flatbuf.Decimal,wo=Ye.apache.arrow.flatbuf.Date,_o=Ye.apache.arrow.flatbuf.Time,Io=Ye.apache.arrow.flatbuf.Timestamp,So=Ye.apache.arrow.flatbuf.Interval,xo=Ye.apache.arrow.flatbuf.List,Ao=Ye.apache.arrow.flatbuf.Struct_,To=Ye.apache.arrow.flatbuf.Union,Bo=Ye.apache.arrow.flatbuf.DictionaryEncoding,Oo=Ye.apache.arrow.flatbuf.FixedSizeBinary,Do=Ye.apache.arrow.flatbuf.FixedSizeList,Lo=Ye.apache.arrow.flatbuf.Map,Fo=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"visit",value:function(t,e){return null==t||null==e?void 0:ze(ut(n.prototype),"visit",this).call(this,t,e)}},{key:"visitNull",value:function(t,e){return yo.startNull(e),yo.endNull(e)}},{key:"visitInt",value:function(t,e){return po.startInt(e),po.addBitWidth(e,t.bitWidth),po.addIsSigned(e,t.isSigned),po.endInt(e)}},{key:"visitFloat",value:function(t,e){return vo.startFloatingPoint(e),vo.addPrecision(e,t.precision),vo.endFloatingPoint(e)}},{key:"visitBinary",value:function(t,e){return bo.startBinary(e),bo.endBinary(e)}},{key:"visitBool",value:function(t,e){return go.startBool(e),go.endBool(e)}},{key:"visitUtf8",value:function(t,e){return mo.startUtf8(e),mo.endUtf8(e)}},{key:"visitDecimal",value:function(t,e){return ko.startDecimal(e),ko.addScale(e,t.scale),ko.addPrecision(e,t.precision),ko.endDecimal(e)}},{key:"visitDate",value:function(t,e){return wo.startDate(e),wo.addUnit(e,t.unit),wo.endDate(e)}},{key:"visitTime",value:function(t,e){return _o.startTime(e),_o.addUnit(e,t.unit),_o.addBitWidth(e,t.bitWidth),_o.endTime(e)}},{key:"visitTimestamp",value:function(t,e){var n=t.timezone&&e.createString(t.timezone)||void 0;return Io.startTimestamp(e),Io.addUnit(e,t.unit),void 0!==n&&Io.addTimezone(e,n),Io.endTimestamp(e)}},{key:"visitInterval",value:function(t,e){return So.startInterval(e),So.addUnit(e,t.unit),So.endInterval(e)}},{key:"visitList",value:function(t,e){return xo.startList(e),xo.endList(e)}},{key:"visitStruct",value:function(t,e){return Ao.startStruct_(e),Ao.endStruct_(e)}},{key:"visitUnion",value:function(t,e){To.startTypeIdsVector(e,t.typeIds.length);var n=To.createTypeIdsVector(e,t.typeIds);return To.startUnion(e),To.addMode(e,t.mode),To.addTypeIds(e,n),To.endUnion(e)}},{key:"visitDictionary",value:function(t,e){var n=this.visit(t.indices,e);return Bo.startDictionaryEncoding(e),Bo.addId(e,new ho(t.id,0)),Bo.addIsOrdered(e,t.isOrdered),void 0!==n&&Bo.addIndexType(e,n),Bo.endDictionaryEncoding(e)}},{key:"visitFixedSizeBinary",value:function(t,e){return Oo.startFixedSizeBinary(e),Oo.addByteWidth(e,t.byteWidth),Oo.endFixedSizeBinary(e)}},{key:"visitFixedSizeList",value:function(t,e){return Do.startFixedSizeList(e),Do.addListSize(e,t.listSize),Do.endFixedSizeList(e)}},{key:"visitMap",value:function(t,e){return Lo.startMap(e),Lo.addKeysSorted(e,t.keysSorted),Lo.endMap(e)}}]),n}(bn),Mo=new Fo;function Eo(t){return new nu(t.count,Co(t.columns),Vo(t.columns))}function Uo(t,e){return(t.fields||[]).filter(Boolean).map((function(t){return sa.fromJSON(t,e)}))}function No(t,e){return(t.children||[]).filter(Boolean).map((function(t){return sa.fromJSON(t,e)}))}function Co(t){return(t||[]).reduce((function(t,e){return[].concat(vn(t),[new au(e.count,(n=e.VALIDITY,(n||[]).reduce((function(t,e){return t+ +(0===e)}),0)))],vn(Co(e.children)));var n}),[])}function Vo(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=-1,r=(t||[]).length;++n1&&void 0!==arguments[1]?arguments[1]:0;if(e instanceof ua)return new t(0,an.V4,rn.Schema,e);if(e instanceof nu)return new t(n,an.V4,rn.RecordBatch,e);if(e instanceof ru)return new t(n,an.V4,rn.DictionaryBatch,e);throw new Error("Unrecognized Message header: ".concat(e))}}]),t}(),nu=function(){function t(e,n,r){F(this,t),this._nodes=n,this._buffers=r,this._length="number"===typeof e?e:e.low}return E(t,[{key:"nodes",get:function(){return this._nodes}},{key:"length",get:function(){return this._length}},{key:"buffers",get:function(){return this._buffers}}]),t}(),ru=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];F(this,t),this._data=e,this._isDelta=r,this._id="number"===typeof n?n:n.low}return E(t,[{key:"id",get:function(){return this._id}},{key:"data",get:function(){return this._data}},{key:"isDelta",get:function(){return this._isDelta}},{key:"length",get:function(){return this.data.length}},{key:"nodes",get:function(){return this.data.nodes}},{key:"buffers",get:function(){return this.data.buffers}}]),t}(),iu=E((function t(e,n){F(this,t),this.offset="number"===typeof e?e:e.low,this.length="number"===typeof n?n:n.low})),au=E((function t(e,n){F(this,t),this.length="number"===typeof e?e:e.low,this.nullCount="number"===typeof n?n:n.low}));function ou(t){for(var e,n=[],r=-1,i=-1,a=t.nodesLength();++r0?$o.createCustomMetadataVector(t,vn(e.metadata).map((function(e){var n=U(e,2),r=n[0],i=n[1],a=t.createString("".concat(r)),o=t.createString("".concat(i));return Jo.startKeyValue(t),Jo.addKey(t,a),Jo.addValue(t,o),Jo.endKeyValue(t)}))):-1;e.name&&(n=t.createString(e.name));$o.startField(t),$o.addType(t,r),$o.addTypeType(t,o),$o.addChildren(t,s),$o.addNullable(t,!!e.nullable),-1!==n&&$o.addName(t,n);-1!==i&&$o.addDictionary(t,i);-1!==c&&$o.addCustomMetadata(t,c);return $o.endField(t)},sa.decode=function(t,e){var n,r,i,a,o,u;e&&(u=t.dictionary())?e.has(n=u.id().low)?(a=(a=u.indexType())?lu(a):new Cn,o=new lr(e.get(n),a,n,u.isOrdered()),r=new sa(t.name(),o,t.nullable(),fu(t))):(a=(a=u.indexType())?lu(a):new Cn,e.set(n,i=hu(t,cu(t,e))),o=new lr(i,a,n,u.isOrdered()),r=new sa(t.name(),o,t.nullable(),fu(t))):(i=hu(t,cu(t,e)),r=new sa(t.name(),i,t.nullable(),fu(t)));return r||null},sa.fromJSON=function(t,e){var n,r,i,a,o,u;return e&&(a=t.dictionary)?e.has(n=a.id)?(r=(r=a.indexType)?Ro(r):new Cn,u=new lr(e.get(n),r,n,a.isOrdered),i=new sa(t.name,u,t.nullable,jo(t.customMetadata))):(r=(r=a.indexType)?Ro(r):new Cn,e.set(n,o=Po(t,No(t,e))),u=new lr(o,r,n,a.isOrdered),i=new sa(t.name,u,t.nullable,jo(t.customMetadata))):(o=Po(t,No(t,e)),i=new sa(t.name,o,t.nullable,jo(t.customMetadata))),i||null},ua.encode=function(t,e){var n=e.fields.map((function(e){return sa.encode(t,e)}));Ko.startFieldsVector(t,n.length);var r=Ko.createFieldsVector(t,n),i=e.metadata&&e.metadata.size>0?Ko.createCustomMetadataVector(t,vn(e.metadata).map((function(e){var n=U(e,2),r=n[0],i=n[1],a=t.createString("".concat(r)),o=t.createString("".concat(i));return Jo.startKeyValue(t),Jo.addKey(t,a),Jo.addValue(t,o),Jo.endKeyValue(t)}))):-1;Ko.startSchema(t),Ko.addFields(t,r),Ko.addEndianness(t,yu?Qo.Little:Qo.Big),-1!==i&&Ko.addCustomMetadata(t,i);return Ko.endSchema(t)},ua.decode=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map,n=su(t,e);return new ua(n,fu(t),e)},ua.fromJSON=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;return new ua(Uo(t,e),jo(t.customMetadata),e)},nu.encode=function(t,e){var n=e.nodes||[],r=e.buffers||[];Xo.startNodesVector(t,n.length),n.slice().reverse().forEach((function(e){return au.encode(t,e)}));var i=t.endVector();Xo.startBuffersVector(t,r.length),r.slice().reverse().forEach((function(e){return iu.encode(t,e)}));var a=t.endVector();return Xo.startRecordBatch(t),Xo.addLength(t,new zo(e.length,0)),Xo.addNodes(t,i),Xo.addBuffers(t,a),Xo.endRecordBatch(t)},nu.decode=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:an.V4;return new nu(t.length(),ou(t),uu(t,e))},nu.fromJSON=Eo,ru.encode=function(t,e){var n=nu.encode(t,e.data);return tu.startDictionaryBatch(t),tu.addId(t,new zo(e.id,0)),tu.addIsDelta(t,e.isDelta),tu.addData(t,n),tu.endDictionaryBatch(t)},ru.decode=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:an.V4;return new ru(nu.decode(t.data(),e),t.id(),t.isDelta())},ru.fromJSON=function(t){return new ru(Eo(t.data),t.id,t.isDelta)},au.encode=function(t,e){return Zo.createFieldNode(t,new zo(e.length,0),new zo(e.nullCount,0))},au.decode=function(t){return new au(t.length(),t.nullCount())},iu.encode=function(t,e){return Go.createBuffer(t,new zo(e.offset,0),new zo(e.length,0))},iu.decode=function(t){return new iu(t.offset(),t.length())};for(var yu=function(){var t=new ArrayBuffer(2);return new DataView(t).setInt16(0,256,!0),256===new Int16Array(t)[0]}(),pu=W.ByteBuffer,du=function(t){return"Expected ".concat(rn[t]," Message in stream, but was null or length 0.")},vu=function(t){return"Header pointer of flatbuffer-encoded ".concat(rn[t]," Message is null or length 0.")},bu=function(t,e){return"Expected to read ".concat(t," metadata bytes, but only read ").concat(e,".")},gu=function(t,e){return"Expected to read ".concat(t," bytes for message body, but only read ").concat(e,".")},mu=function(t){function e(t){F(this,e),this.source=t instanceof Za?t:new Za(t)}return E(e,[{key:Symbol.iterator,value:function(){return this}},{key:"next",value:function(){var t;return(t=this.readMetadataLength()).done||-1===t.value&&(t=this.readMetadataLength()).done||(t=this.readMetadata(t.value)).done?pt:t}},{key:"throw",value:function(t){return this.source.throw(t)}},{key:"return",value:function(t){return this.source.return(t)}},{key:"readMessage",value:function(t){var e;if((e=this.next()).done)return null;if(null!=t&&e.value.headerType!==t)throw new Error(du(t));return e.value}},{key:"readMessageBody",value:function(t){if(t<=0)return new Uint8Array(0);var e=Jt(this.source.read(t));if(e.byteLength0&&void 0!==arguments[0]&&arguments[0],e=rn.Schema,n=this.readMessage(e),r=n&&n.header();if(t&&!r)throw new Error(vu(e));return r}},{key:"readMetadataLength",value:function(){var t=this.source.read(_u),e=t&&new pu(t),n=e&&e.readInt32(0)||0;return{done:0===n,value:n}}},{key:"readMetadata",value:function(t){var e=this.source.read(t);if(!e)return pt;if(e.byteLength0&&void 0!==a[0]&&a[0],n=rn.Schema,t.next=4,this.readMessage(n);case 4:if(r=t.sent,i=r&&r.header(),!e||i){t.next=8;break}throw new Error(vu(n));case 8:return t.abrupt("return",i);case 9:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"readMetadataLength",value:function(){var t=L(R.mark((function t(){var e,n,r;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.source.read(_u);case 2:return e=t.sent,n=e&&new pu(e),r=n&&n.readInt32(0)||0,t.abrupt("return",{done:0===r,value:r});case 6:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"readMetadata",value:function(){var t=L(R.mark((function t(e){var n;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.source.read(e);case 2:if(n=t.sent){t.next=5;break}return t.abrupt("return",pt);case 5:if(!(n.byteLength1&&void 0!==arguments[1]?arguments[1]:0,n=-1,r=Su.length;++n2147483647)throw new RangeError("Cannot write arrays larger than 2^31 - 1 in length");Fn.isNull(t.type)||Lu.call(this,i<=0?new Uint8Array(0):fn(e.offset,r,e.nullBitmap)),this.nodes.push(new au(r,i))}return ze(ut(n.prototype),"visit",this).call(this,t)}},{key:"visitNull",value:function(t){return this}},{key:"visitDictionary",value:function(t){return this.visit(t.indices)}},{key:"nodes",get:function(){return this._nodes}},{key:"buffers",get:function(){return this._buffers}},{key:"byteLength",get:function(){return this._byteLength}},{key:"bufferRegions",get:function(){return this._bufferRegions}}],[{key:"assemble",value:function(){for(var t=new n,e=arguments.length,r=new Array(e),i=0;i=t.length?Lu.call(this,new Uint8Array(0)):(e=t.values)instanceof Uint8Array?Lu.call(this,fn(t.offset,t.length,e)):Lu.call(this,ln(t))},Du.prototype.visitInt=Fu,Du.prototype.visitFloat=Fu,Du.prototype.visitUtf8=Mu,Du.prototype.visitBinary=Mu,Du.prototype.visitFixedSizeBinary=Fu,Du.prototype.visitDate=Fu,Du.prototype.visitTimestamp=Fu,Du.prototype.visitTime=Fu,Du.prototype.visitDecimal=Fu,Du.prototype.visitList=Eu,Du.prototype.visitStruct=Uu,Du.prototype.visitUnion=function(t){var e=t.type,n=t.length,r=t.typeIds,i=t.valueOffsets;if(Lu.call(this,r),e.mode===en.Sparse)return Uu.call(this,t);if(e.mode===en.Dense){if(t.offset<=0)return Lu.call(this,i),Uu.call(this,t);for(var a,o,u=r.reduce((function(t,e){return Math.max(t,e)}),r[0]),s=new Int32Array(u+1),c=new Int32Array(u+1).fill(-1),f=new Int32Array(n),l=xe(-i[0],n,i),h=-1;++h0&&void 0!==arguments[0]&&arguments[0];return this._sink.toString(t)}},{key:"toUint8Array",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._sink.toUint8Array(t)}},{key:"writeAll",value:function(t){var e=this;return Ot(t)?t.then((function(t){return e.writeAll(t)})):Lt(t)?Ru(this,t):ju(this,t)}},{key:"closed",get:function(){return this._sink.closed}},{key:e,value:function(){return this._sink[Symbol.asyncIterator]()}},{key:"toDOMStream",value:function(t){return this._sink.toDOMStream(t)}},{key:"toNodeStream",value:function(t){return this._sink.toNodeStream(t)}},{key:"close",value:function(){return this.reset()._sink.close()}},{key:"abort",value:function(t){return this.reset()._sink.abort(t)}},{key:"finish",value:function(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}},{key:"reset",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._sink,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t===this._sink||t instanceof Ja?this._sink=t:(this._sink=new Ja,t&&Nt(t)?this.toDOMStream({type:"bytes"}).pipeTo(t):t&&Vt(t)&&this.toNodeStream({objectMode:!1}).pipe(t)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,e&&e.compareTo(this._schema)||(null===e?(this._position=0,this._schema=null):(this._started=!0,this._schema=e,this._writeSchema(e))),this}},{key:"write",value:function(t){var e=null;if(!this._sink)throw new Error("RecordBatchWriter is closed");if(null===t||void 0===t)return this.finish()&&void 0;if(t instanceof Ec&&!(e=t.schema))return this.finish()&&void 0;if(t instanceof Uc&&!(e=t.schema))return this.finish()&&void 0;if(e&&!e.compareTo(this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,e)}t instanceof Uc?t instanceof Nc||this._writeRecordBatch(t):t instanceof Ec?this.writeAll(t.chunks):Dt(t)&&this.writeAll(t)}},{key:"_writeMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=e-1,r=eu.encode(t),i=r.byteLength,a=this._writeLegacyIpcFormat?4:8,o=i+a+n&~n,u=o-i-a;return t.headerType===rn.RecordBatch?this._recordBatchBlocks.push(new qa(o,t.bodyLength,this._position)):t.headerType===rn.DictionaryBatch&&this._dictionaryBlocks.push(new qa(o,t.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(o-a)),i>0&&this._write(r),this._writePadding(u)}},{key:"_write",value:function(t){if(this._started){var e=Jt(t);e&&e.byteLength>0&&(this._sink.write(e),this._position+=e.byteLength)}return this}},{key:"_writeSchema",value:function(t){return this._writeMessage(eu.from(t))}},{key:"_writeFooter",value:function(t){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}},{key:"_writeMagic",value:function(){return this._write(Su)}},{key:"_writePadding",value:function(t){return t>0?this._write(new Uint8Array(t)):this}},{key:"_writeRecordBatch",value:function(t){var e=Du.assemble(t),n=e.byteLength,r=e.nodes,i=e.bufferRegions,a=e.buffers,o=new nu(t.length,r,i),u=eu.from(o,n);return this._writeDictionaries(t)._writeMessage(u)._writeBodyBuffers(a)}},{key:"_writeDictionaryBatch",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._dictionaryDeltaOffsets.set(e,t.length+(this._dictionaryDeltaOffsets.get(e)||0));var r=Du.assemble(t),i=r.byteLength,a=r.nodes,o=r.bufferRegions,u=r.buffers,s=new nu(t.length,a,o),c=new ru(s,e,n),f=eu.from(c,i);return this._writeMessage(f)._writeBodyBuffers(u)}},{key:"_writeBodyBuffers",value:function(t){for(var e,n,r,i=-1,a=t.length;++i0&&(this._write(e),(r=(n+7&-8)-n)>0&&this._writePadding(r));return this}},{key:"_writeDictionaries",value:function(t){var e,n=O(t.dictionaries);try{for(n.s();!(e=n.n()).done;){var r=U(e.value,2),i=r[0],a=r[1],o=this._dictionaryDeltaOffsets.get(i)||0;if(0===o||(a=a.slice(o)).length>0){var u,s=O("chunks"in a?a.chunks:[a]);try{for(s.s();!(u=s.n()).done;){var c=u.value;this._writeDictionaryBatch(c,i,o>0),o+=c.length}}catch(f){s.e(f)}finally{s.f()}}}}catch(f){n.e(f)}finally{n.f()}return this}}],[{key:"throughNode",value:function(t){throw new Error('"throughNode" not available in this environment')}},{key:"throughDOM",value:function(t,e){throw new Error('"throughDOM" not available in this environment')}}]),r}(vt,Symbol.asyncIterator),Cu=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,null,[{key:"writeAll",value:function(t,e){var r=new n(e);return Ot(t)?t.then((function(t){return r.writeAll(t)})):Lt(t)?Ru(r,t):ju(r,t)}}]),n}(Nu),Vu=function(t){ot(n,t);var e=yt(n);function n(){var t;return F(this,n),(t=e.call(this))._autoDestroy=!0,t}return E(n,[{key:"_writeSchema",value:function(t){return this._writeMagic()._writePadding(2)}},{key:"_writeFooter",value:function(t){var e=Ka.encode(new Ka(t,an.V4,this._recordBatchBlocks,this._dictionaryBlocks));return ze(ut(n.prototype),"_writeFooter",this).call(this,t)._write(e)._write(Int32Array.of(e.byteLength))._writeMagic()}}],[{key:"writeAll",value:function(t){var e=new n;return Ot(t)?t.then((function(t){return e.writeAll(t)})):Lt(t)?Ru(e,t):ju(e,t)}}]),n}(Nu);function ju(t,e){var n=e;e instanceof Ec&&(n=e.chunks,t.reset(void 0,e.schema));var r,i=O(n);try{for(i.s();!(r=i.n()).done;){var a=r.value;t.write(a)}}catch(o){i.e(o)}finally{i.f()}return t.finish()}function Ru(t,e){return Pu.apply(this,arguments)}function Pu(){return(Pu=L(R.mark((function t(e,n){var r,i,a,o,u,s;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=!1,i=!1,t.prev=2,o=P(n);case 4:return t.next=6,o.next();case 6:if(!(r=!(u=t.sent).done)){t.next=12;break}s=u.value,e.write(s);case 9:r=!1,t.next=4;break;case 12:t.next=18;break;case 14:t.prev=14,t.t0=t.catch(2),i=!0,a=t.t0;case 18:if(t.prev=18,t.prev=19,!r||null==o.return){t.next=23;break}return t.next=23,o.return();case 23:if(t.prev=23,!i){t.next=26;break}throw a;case 26:return t.finish(23);case 27:return t.finish(18);case 28:return t.abrupt("return",e.finish());case 29:case"end":return t.stop()}}),t,null,[[2,14,18,28],[19,,23,27]])})))).apply(this,arguments)}var zu=new Uint8Array(0),Yu=function(t){return[zu,zu,new Uint8Array(t),zu]};function Wu(t,e){for(var n,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.reduce((function(t,e){return Math.max(t,e.length)}),0),a=-1,o=e.length,u=vn(t.fields),s=[],c=(i+63&-64)>>3;++a0;){for(u=Number.POSITIVE_INFINITY,s=-1;++s0&&(i[o++]=[u,f.slice()]))}return[t=new ua(r,t.metadata),i.map((function(e){return zr(Uc,[t].concat(vn(e)))}))]}(t,e.map((function(t){return t instanceof Wi?t.chunks.map((function(t){return t.data})):[t.data]})))}function Ku(t,e,n,r,i){for(var a,o,u=0,s=-1,c=r.length,f=(e+63&-64)>>3;++s=e?u===e?n[s]=a:(n[s]=a.slice(0,e),a=a.slice(e,u-e),i.numBatches=Math.max(i.numBatches,r[s].unshift(a))):((o=t[s]).nullable||(t[s]=o.clone({nullable:!0})),n[s]=a?a._changeLengthAndBackfillNullBitmap(e):yr.new(o.type,0,e,e,Yu(f)));return n}function Gu(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},a=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var qu=function(t,e){ot(r,t);var n=yt(r);function r(t,e){var i;return F(this,r),(i=n.call(this))._children=e,i.numChildren=t.childData.length,i._bindDataAccessors(i.data=t),i}return E(r,[{key:"type",get:function(){return this.data.type}},{key:"typeId",get:function(){return this.data.typeId}},{key:"length",get:function(){return this.data.length}},{key:"offset",get:function(){return this.data.offset}},{key:"stride",get:function(){return this.data.stride}},{key:"nullCount",get:function(){return this.data.nullCount}},{key:"byteLength",get:function(){return this.data.byteLength}},{key:"VectorName",get:function(){return"".concat(Je[this.typeId],"Vector")}},{key:"ArrayType",get:function(){return this.type.ArrayType}},{key:"values",get:function(){return this.data.values}},{key:"typeIds",get:function(){return this.data.typeIds}},{key:"nullBitmap",get:function(){return this.data.nullBitmap}},{key:"valueOffsets",get:function(){return this.data.valueOffsets}},{key:e,get:function(){return"".concat(this.VectorName,"<").concat(this.type[Symbol.toStringTag],">")}},{key:"clone",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._children;return qe.new(t,e)}},{key:"concat",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n0){var e=this.offset+t;return 0!==(this.nullBitmap[e>>3]&1<=this.numChildren?null:(this._children||(this._children=[]))[t]||(this._children[t]=qe.new(this.data.childData[t]))}},{key:"toJSON",value:function(){return vn(this)}},{key:"_sliceInternal",value:function(t,e,n){return t.clone(t.data.slice(e,n-e),null)}},{key:"_bindDataAccessors",value:function(t){}}]),r}(qe,Symbol.toStringTag);qu.prototype[Symbol.isConcatSpreadable]=!0;var Ju=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"asUtf8",value:function(){return qe.new(this.data.clone(new Gn))}}]),n}(qu),Zu=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,null,[{key:"from",value:function(t){return Mc((function(){return new qn}),t)}}]),n}(qu),Qu=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,null,[{key:"from",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n>>0)},Js=function(t){return new Date(t)},Zs=function(t,e,n){var r=e[n],i=e[n+1];return null!=r&&null!=i?t.subarray(r,i):null},Qs=function(t,e){return function(t,e){return Js(function(t,e){return 864e5*t[e]}(t,e))}(t.values,e)},Xs=function(t,e){return function(t,e){return Js(qs(t,e))}(t.values,2*e)},tc=function(t,e){var n=t.stride;return t.values[n*e]},ec=function(t,e){var n=t.stride;return Nr(t.values[n*e])},nc=function(t,e){var n=t.stride,r=t.values,i=t.type;return Xr.new(r.subarray(n*e,n*(e+1)),i.isSigned)},rc=function(t,e){var n=t.values;return 1e3*qs(n,2*e)},ic=function(t,e){var n=t.values;return qs(n,2*e)},ac=function(t,e){return function(t,e){return t[e+1]/1e3*4294967296+(t[e]>>>0)/1e3}(t.values,2*e)},oc=function(t,e){return function(t,e){return t[e+1]/1e6*4294967296+(t[e]>>>0)/1e6}(t.values,2*e)},uc=function(t,e){return t.values[t.stride*e]},sc=function(t,e){return t.values[t.stride*e]},cc=function(t,e){var n=t.values;return Xr.signed(n.subarray(2*e,2*(e+1)))},fc=function(t,e){var n=t.values;return Xr.signed(n.subarray(2*e,2*(e+1)))},lc=function(t,e){var n=t.typeIdToChildIndex[t.typeIds[e]],r=t.getChildAt(n);return r?r.get(t.valueOffsets[e]):null},hc=function(t,e){var n=t.typeIdToChildIndex[t.typeIds[e]],r=t.getChildAt(n);return r?r.get(e):null},yc=function(t,e){return t.values.subarray(2*e,2*(e+1))},pc=function(t,e){var n=t.values[e],r=new Int32Array(2);return r[0]=n/12|0,r[1]=n%12|0,r};Gs.prototype.visitNull=function(t,e){return null},Gs.prototype.visitBool=function(t,e){var n=t.offset+e;return 0!==(t.values[n>>3]&1<0?0:-1},vc.prototype.visitBool=bc,vc.prototype.visitInt=bc,vc.prototype.visitInt8=bc,vc.prototype.visitInt16=bc,vc.prototype.visitInt32=bc,vc.prototype.visitInt64=bc,vc.prototype.visitUint8=bc,vc.prototype.visitUint16=bc,vc.prototype.visitUint32=bc,vc.prototype.visitUint64=bc,vc.prototype.visitFloat=bc,vc.prototype.visitFloat16=bc,vc.prototype.visitFloat32=bc,vc.prototype.visitFloat64=bc,vc.prototype.visitUtf8=bc,vc.prototype.visitBinary=bc,vc.prototype.visitFixedSizeBinary=bc,vc.prototype.visitDate=bc,vc.prototype.visitDateDay=bc,vc.prototype.visitDateMillisecond=bc,vc.prototype.visitTimestamp=bc,vc.prototype.visitTimestampSecond=bc,vc.prototype.visitTimestampMillisecond=bc,vc.prototype.visitTimestampMicrosecond=bc,vc.prototype.visitTimestampNanosecond=bc,vc.prototype.visitTime=bc,vc.prototype.visitTimeSecond=bc,vc.prototype.visitTimeMillisecond=bc,vc.prototype.visitTimeMicrosecond=bc,vc.prototype.visitTimeNanosecond=bc,vc.prototype.visitDecimal=bc,vc.prototype.visitList=bc,vc.prototype.visitStruct=bc,vc.prototype.visitUnion=bc,vc.prototype.visitDenseUnion=gc,vc.prototype.visitSparseUnion=gc,vc.prototype.visitDictionary=bc,vc.prototype.visitInterval=bc,vc.prototype.visitIntervalDayTime=bc,vc.prototype.visitIntervalYearMonth=bc,vc.prototype.visitFixedSizeList=bc,vc.prototype.visitMap=bc;var mc=new vc,kc=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n)}(bn);function wc(t){if(t.nullCount>0)return function(t){var e=dc.getVisitFn(t);return hn(t.nullBitmap,t.offset,t.length,t,(function(t,n,r,i){return 0!==(r&1<0)?t.values.subarray(0,r)[Symbol.iterator]():R.mark((function e(n){var i;return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=-1;case 1:if(!(++i1?e-1:0),r=1;r0&&(this.get=(e=this.get,function(t){return this.isValid(t)?e.call(this,t):null}),this.set=function(t){return function(e,n){cn(this.nullBitmap,this.offset+e,!(null===n||void 0===n))&&t.call(this,e,n)}}(this.set));var e},Object.keys(Je).map((function(t){return Je[t]})).filter((function(t){return"number"===typeof t})).filter((function(t){return t!==Je.NONE})).forEach((function(t){var e,n=Lc.visit(t);n.prototype.get=(e=dc.getVisitFn(t),function(t){return e(this,t)}),n.prototype.set=Ks(ja.getVisitFn(t)),n.prototype.indexOf=Ks(mc.getVisitFn(t)),n.prototype.toArray=$s(xc.getVisitFn(t)),n.prototype.getByteWidth=function(t){return function(){return t(this.type)}}(Oc.getVisitFn(t)),n.prototype[Symbol.iterator]=$s(_c.getVisitFn(t))}));var Ec=function(t){ot(n,t);var e=yt(n);function n(){var t;F(this,n);for(var r=null,i=arguments.length,a=new Array(i),o=0;o0&&void 0!==arguments[0]?arguments[0]:this._chunks;return new n(this._schema,t)}},{key:"getColumn",value:function(t){return this.getColumnAt(this.getColumnIndex(t))}},{key:"getColumnAt",value:function(t){return this.getChildAt(t)}},{key:"getColumnIndex",value:function(t){return this._schema.fields.findIndex((function(e){return e.name===t}))}},{key:"getChildAt",value:function(t){if(t<0||t>=this.numChildren)return null;var e,n,r=this._schema.fields,i=this._children||(this._children=[]);if(n=i[t])return n;if(e=r[t]){var a=this._chunks.map((function(e){return e.getChildAt(t)})).filter((function(t){return null!=t}));if(a.length>0)return i[t]=new Gi(e,a)}return null}},{key:"serialize",value:function(){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],e=t?Cu:Vu;return e.writeAll(this).toUint8Array(!0)}},{key:"count",value:function(){return this._length}},{key:"select",value:function(){for(var t=this._schema.fields.reduce((function(t,e,n){return t.set(e.name,n)}),new Map),e=arguments.length,n=new Array(e),r=0;r-1}))))}},{key:"selectAt",value:function(){for(var t,e=arguments.length,r=new Array(e),i=0;i3&&void 0!==arguments[3]?arguments[3]:u[r];return void 0===a?e.getColumnAt(r):t.getColumnAt(a)}))),vn(o.map((function(e){return t.getColumnAt(e)})))).filter(Boolean);return zr(n,vn($u(s,c)))}}],[{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new ua([]);return new n(t,[])}},{key:"from",value:function(t){if(!t)return n.empty();if("object"===typeof t){var e=Dt(t.values)?function(t){if(t.type instanceof ir)return Ec.fromStruct(Ls.from(t));return null}(t):Lt(t.values)?function(t){if(t.type instanceof ir)return Ls.from(t).then((function(t){return Ec.fromStruct(t)}));return null}(t):null;if(null!==e)return e}var r=jc.from(t);return Ot(r)?L(R.mark((function t(){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=n,t.next=3,r;case 3:return t.t1=t.sent,t.next=6,t.t0.from.call(t.t0,t.t1);case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)})))():r.isSync()&&(r=r.open())?r.schema?new n(r.schema,vn(r)):n.empty():function(){var t=L(R.mark((function t(e){var r,i,a,o,u,s,c,f,l;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e;case 2:if(r=t.sent,i=r.schema,a=[],!i){t.next=35;break}o=!1,u=!1,t.prev=8,c=P(r);case 10:return t.next=12,c.next();case 12:if(!(o=!(f=t.sent).done)){t.next=18;break}l=f.value,a.push(l);case 15:o=!1,t.next=10;break;case 18:t.next=24;break;case 20:t.prev=20,t.t0=t.catch(8),u=!0,s=t.t0;case 24:if(t.prev=24,t.prev=25,!o||null==c.return){t.next=29;break}return t.next=29,c.return();case 29:if(t.prev=29,!u){t.next=32;break}throw s;case 32:return t.finish(29);case 33:return t.finish(24);case 34:return t.abrupt("return",new n(i,a));case 35:return t.abrupt("return",n.empty());case 36:case"end":return t.stop()}}),t,null,[[8,20,24,34],[25,,29,33]])})));return function(e){return t.apply(this,arguments)}}()(r.open())}},{key:"fromAsync",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.from(e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},{key:"fromStruct",value:function(t){return n.new(t.data.childData,t.type.children)}},{key:"new",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:this._children;return new n(this._schema,t,e)}},{key:"concat",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r-1}))))}},{key:"selectAt",value:function(){for(var t,e=this,r=arguments.length,i=new Array(r),a=0;a0&&this.dictionaries.set(e.id,n),this}}],[{key:"collect",value:function(t){return(new n).visit(t.data,new ir(t.schema.fields)).dictionaries}}]),n}(bn),Vc=R.mark(Zc),jc=function(t,e,n){ot(i,t);var r=yt(i);function i(t){var e;return F(this,i),(e=r.call(this))._impl=t,e}return E(i,[{key:"closed",get:function(){return this._impl.closed}},{key:"schema",get:function(){return this._impl.schema}},{key:"autoDestroy",get:function(){return this._impl.autoDestroy}},{key:"dictionaries",get:function(){return this._impl.dictionaries}},{key:"numDictionaries",get:function(){return this._impl.numDictionaries}},{key:"numRecordBatches",get:function(){return this._impl.numRecordBatches}},{key:"footer",get:function(){return this._impl.isFile()?this._impl.footer:null}},{key:"isSync",value:function(){return this._impl.isSync()}},{key:"isAsync",value:function(){return this._impl.isAsync()}},{key:"isFile",value:function(){return this._impl.isFile()}},{key:"isStream",value:function(){return this._impl.isStream()}},{key:"next",value:function(){return this._impl.next()}},{key:"throw",value:function(t){return this._impl.throw(t)}},{key:"return",value:function(t){return this._impl.return(t)}},{key:"cancel",value:function(){return this._impl.cancel()}},{key:"reset",value:function(t){return this._impl.reset(t),this._DOMStream=void 0,this._nodeStream=void 0,this}},{key:"open",value:function(t){var e=this,n=this._impl.open(t);return Ot(n)?n.then((function(){return e})):this}},{key:"readRecordBatch",value:function(t){return this._impl.isFile()?this._impl.readRecordBatch(t):null}},{key:e,value:function(){return this._impl[Symbol.iterator]()}},{key:n,value:function(){return this._impl[Symbol.asyncIterator]()}},{key:"toDOMStream",value:function(){var t=this;return Be.toDOMStream(this.isSync()?Ve({},Symbol.iterator,(function(){return t})):Ve({},Symbol.asyncIterator,(function(){return t})))}},{key:"toNodeStream",value:function(){var t=this;return Be.toNodeStream(this.isSync()?Ve({},Symbol.iterator,(function(){return t})):Ve({},Symbol.asyncIterator,(function(){return t})),{objectMode:!0})}}],[{key:"throughNode",value:function(t){throw new Error('"throughNode" not available in this environment')}},{key:"throughDOM",value:function(t,e){throw new Error('"throughDOM" not available in this environment')}},{key:"from",value:function(t){return t instanceof i?t:Ft(t)?function(t){return new Rc(new qc(t))}(t):Et(t)?function(t){return ef.apply(this,arguments)}(t):Ot(t)?L(R.mark((function e(){return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=i,e.next=3,t;case 3:return e.t1=e.sent,e.next=6,e.t0.from.call(e.t0,e.t1);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))():Ut(t)||Ct(t)||jt(t)||Lt(t)?function(t){return tf.apply(this,arguments)}(new Qa(t)):function(t){var e=t.peek(Tu+7&-8);return e&&e.byteLength>=4?Au(e)?new zc(new Kc(t.read())):new Rc(new Hc(t)):new Rc(new Hc(R.mark((function t(){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)}))()))}(new Za(t))}},{key:"readAll",value:function(t){return t instanceof i?t.isSync()?Zc(t):Qc(t):Ft(t)||ArrayBuffer.isView(t)||Dt(t)||Mt(t)?Zc(t):Qc(t)}}]),i}(vt,Symbol.iterator,Symbol.asyncIterator),Rc=function(t,e,n){ot(i,t);var r=yt(i);function i(t){var e;return F(this,i),(e=r.call(this,t))._impl=t,e}return E(i,[{key:e,value:function(){return this._impl[Symbol.iterator]()}},{key:n,value:function(){var t=this;return j(R.mark((function e(){return R.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(Y(P(t[Symbol.iterator]()),C),"t0",1);case 1:case"end":return e.stop()}}),e)})))()}}]),i}(jc,Symbol.iterator,Symbol.asyncIterator),Pc=function(t,e,n){ot(i,t);var r=yt(i);function i(t){var e;return F(this,i),(e=r.call(this,t))._impl=t,e}return E(i,[{key:e,value:function(){throw new Error("AsyncRecordBatchStreamReader is not Iterable")}},{key:n,value:function(){return this._impl[Symbol.asyncIterator]()}}]),i}(jc,Symbol.iterator,Symbol.asyncIterator),zc=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._impl=t,r}return E(n)}(Rc),Yc=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this,t))._impl=t,r}return E(n)}(Pc),Wc=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;F(this,t),this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=e}return E(t,[{key:"numDictionaries",get:function(){return this._dictionaryIndex}},{key:"numRecordBatches",get:function(){return this._recordBatchIndex}},{key:"isSync",value:function(){return!1}},{key:"isAsync",value:function(){return!1}},{key:"isFile",value:function(){return!1}},{key:"isStream",value:function(){return!1}},{key:"reset",value:function(t){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=t,this.dictionaries=new Map,this}},{key:"_loadRecordBatch",value:function(t,e){return new Uc(this.schema,t.length,this._loadVectors(t,e,this.schema.fields))}},{key:"_loadDictionaryBatch",value:function(t,e){var n=t.id,r=t.isDelta,i=t.data,a=this.dictionaries,o=this.schema,u=a.get(n);if(r||!u){var s=o.dictionaries.get(n);return u&&r?u.concat(qe.new(this._loadVectors(i,e,[s])[0])):qe.new(this._loadVectors(i,e,[s])[0])}return u}},{key:"_loadVectors",value:function(t,e,n){return new co(e,t.nodes,t.buffers,this.dictionaries).visitMany(n)}}]),t}(),Hc=function(t,e){ot(r,t);var n=yt(r);function r(t,e){var i;return F(this,r),(i=n.call(this,e))._reader=Ft(t)?new wu(i._handle=t):new mu(i._handle=t),i}return E(r,[{key:"isSync",value:function(){return!0}},{key:"isStream",value:function(){return!0}},{key:e,value:function(){return this}},{key:"cancel",value:function(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}},{key:"open",value:function(t){return this.closed||(this.autoDestroy=Jc(this,t),this.schema||(this.schema=this._reader.readSchema())||this.cancel()),this}},{key:"throw",value:function(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(t):pt}},{key:"return",value:function(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(t):pt}},{key:"next",value:function(){if(this.closed)return pt;for(var t,e=this._reader;t=this._readNextMessageAndValidate();)if(t.isSchema())this.reset(t.header());else{if(t.isRecordBatch()){this._recordBatchIndex++;var n=t.header(),r=e.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(n,r)}}if(t.isDictionaryBatch()){this._dictionaryIndex++;var i=t.header(),a=e.readMessageBody(t.bodyLength),o=this._loadDictionaryBatch(i,a);this.dictionaries.set(i.id,o)}}return this.schema&&0===this._recordBatchIndex?(this._recordBatchIndex++,{done:!1,value:new Nc(this.schema)}):this.return()}},{key:"_readNextMessageAndValidate",value:function(t){return this._reader.readMessage(t)}}]),r}(Wc,Symbol.iterator),$c=function(t,e){ot(r,t);var n=yt(r);function r(t,e){var i;return F(this,r),(i=n.call(this,e))._reader=new ku(i._handle=t),i}return E(r,[{key:"isAsync",value:function(){return!0}},{key:"isStream",value:function(){return!0}},{key:e,value:function(){return this}},{key:"cancel",value:function(){var t=L(R.mark((function t(){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.closed||!(this.closed=!0)){t.next=5;break}return t.next=3,this.reset()._reader.return();case 3:this._reader=null,this.dictionaries=null;case 5:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"open",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.closed){t.next=10;break}if(this.autoDestroy=Jc(this,e),t.t0=this.schema,t.t0){t.next=7;break}return t.next=6,this._reader.readSchema();case 6:t.t0=this.schema=t.sent;case 7:if(t.t0){t.next=10;break}return t.next=10,this.cancel();case 10:return t.abrupt("return",this);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"throw",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.closed||!this.autoDestroy||!(this.closed=!0)){t.next=4;break}return t.next=3,this.reset()._reader.throw(e);case 3:return t.abrupt("return",t.sent);case 4:return t.abrupt("return",pt);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"return",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.closed||!this.autoDestroy||!(this.closed=!0)){t.next=4;break}return t.next=3,this.reset()._reader.return(e);case 3:return t.abrupt("return",t.sent);case 4:return t.abrupt("return",pt);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"next",value:function(){var t=L(R.mark((function t(){var e,n,r,i,a,o,u,s;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.closed){t.next=2;break}return t.abrupt("return",pt);case 2:n=this._reader;case 3:return t.next=5,this._readNextMessageAndValidate();case 5:if(!(e=t.sent)){t.next=31;break}if(!e.isSchema()){t.next=11;break}return t.next=9,this.reset(e.header());case 9:t.next=29;break;case 11:if(!e.isRecordBatch()){t.next=21;break}return this._recordBatchIndex++,r=e.header(),t.next=16,n.readMessageBody(e.bodyLength);case 16:return i=t.sent,a=this._loadRecordBatch(r,i),t.abrupt("return",{done:!1,value:a});case 21:if(!e.isDictionaryBatch()){t.next=29;break}return this._dictionaryIndex++,o=e.header(),t.next=26,n.readMessageBody(e.bodyLength);case 26:u=t.sent,s=this._loadDictionaryBatch(o,u),this.dictionaries.set(o.id,s);case 29:t.next=3;break;case 31:if(!this.schema||0!==this._recordBatchIndex){t.next=34;break}return this._recordBatchIndex++,t.abrupt("return",{done:!1,value:new Nc(this.schema)});case 34:return t.next=36,this.return();case 36:return t.abrupt("return",t.sent);case 37:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"_readNextMessageAndValidate",value:function(){var t=L(R.mark((function t(e){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._reader.readMessage(e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()}]),r}(Wc,Symbol.asyncIterator),Kc=function(t){ot(n,t);var e=yt(n);function n(t,r){return F(this,n),e.call(this,t instanceof eo?t:new eo(t),r)}return E(n,[{key:"footer",get:function(){return this._footer}},{key:"numDictionaries",get:function(){return this._footer?this._footer.numDictionaries:0}},{key:"numRecordBatches",get:function(){return this._footer?this._footer.numRecordBatches:0}},{key:"isSync",value:function(){return!0}},{key:"isFile",value:function(){return!0}},{key:"open",value:function(t){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;var e,r=O(this._footer.dictionaryBatches());try{for(r.s();!(e=r.n()).done;){e.value&&this._readDictionaryBatch(this._dictionaryIndex++)}}catch(i){r.e(i)}finally{r.f()}}return ze(ut(n.prototype),"open",this).call(this,t)}},{key:"readRecordBatch",value:function(t){if(this.closed)return null;this._footer||this.open();var e=this._footer&&this._footer.getRecordBatch(t);if(e&&this._handle.seek(e.offset)){var n=this._reader.readMessage(rn.RecordBatch);if(n&&n.isRecordBatch()){var r=n.header(),i=this._reader.readMessageBody(n.bodyLength);return this._loadRecordBatch(r,i)}}return null}},{key:"_readDictionaryBatch",value:function(t){var e=this._footer&&this._footer.getDictionaryBatch(t);if(e&&this._handle.seek(e.offset)){var n=this._reader.readMessage(rn.DictionaryBatch);if(n&&n.isDictionaryBatch()){var r=n.header(),i=this._reader.readMessageBody(n.bodyLength),a=this._loadDictionaryBatch(r,i);this.dictionaries.set(r.id,a)}}}},{key:"_readFooter",value:function(){var t=this._handle,e=t.size-Bu,n=t.readInt32(e),r=t.readAt(e-n,n);return Ka.decode(r)}},{key:"_readNextMessageAndValidate",value:function(t){if(this._footer||this.open(),this._footer&&this._recordBatchIndex1?r-1:0),a=1;a=4)){t.next=18;break}if(Au(n)){t.next=8;break}t.t1=new Pc(new $c(e)),t.next=15;break;case 8:return t.t2=zc,t.t3=Kc,t.next=12,e.read();case 12:t.t4=t.sent,t.t5=new t.t3(t.t4),t.t1=new t.t2(t.t5);case 15:t.t0=t.t1,t.next=19;break;case 18:t.t0=new Pc(new $c(j(R.mark((function t(){return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)})))()));case 19:return t.abrupt("return",t.t0);case 20:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function ef(){return(ef=L(R.mark((function t(e){var n,r,i;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.stat();case 2:if(n=t.sent,r=n.size,i=new no(e,r),!(r>=Ou)){t.next=12;break}return t.t0=Au,t.next=9,i.readAt(0,Tu+7&-8);case 9:if(t.t1=t.sent,!(0,t.t0)(t.t1)){t.next=12;break}return t.abrupt("return",new Yc(new Gc(i)));case 12:return t.abrupt("return",new Pc(new $c(i)));case 13:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var nf=["readableStrategy","writableStrategy","queueingStrategy"];var rf=function(){function t(e){var n,r,i=this;F(this,t),this._numChunks=0,this._finished=!1,this._bufferedSize=0;var a=e.readableStrategy,o=e.writableStrategy,u=e.queueingStrategy,s=void 0===u?"count":u,c=Gu(e,nf);this._controller=null,this._builder=Ir.new(c),this._getSize="bytes"!==s?af:of;var f=Re({},a).highWaterMark,l=void 0===f?"bytes"===s?Math.pow(2,14):1e3:f,h=Re({},o).highWaterMark,y=void 0===h?"bytes"===s?Math.pow(2,14):1e3:h;this.readable=new ReadableStream((Ve(n={},"cancel",(function(){i._builder.clear()})),Ve(n,"pull",(function(t){i._maybeFlush(i._builder,i._controller=t)})),Ve(n,"start",(function(t){i._maybeFlush(i._builder,i._controller=t)})),n),{highWaterMark:l,size:"bytes"!==s?af:of}),this.writable=new WritableStream((Ve(r={},"abort",(function(){i._builder.clear()})),Ve(r,"write",(function(){i._maybeFlush(i._builder,i._controller)})),Ve(r,"close",(function(){i._maybeFlush(i._builder.finish(),i._controller)})),r),{highWaterMark:y,size:function(t){return i._writeValueAndReturnChunkSize(t)}})}return E(t,[{key:"_writeValueAndReturnChunkSize",value:function(t){var e=this._bufferedSize;return this._bufferedSize=this._getSize(this._builder.append(t)),this._bufferedSize-e}},{key:"_maybeFlush",value:function(t,e){null!==e&&(this._bufferedSize>=e.desiredSize&&++this._numChunks&&this._enqueue(e,t.toVector()),t.finished&&((t.length>0||0===this._numChunks)&&++this._numChunks&&this._enqueue(e,t.toVector()),!this._finished&&(this._finished=!0)&&this._enqueue(e,null)))}},{key:"_enqueue",value:function(t,e){this._bufferedSize=0,this._controller=null,null===e?t.close():t.enqueue(e)}}]),t}(),af=function(t){return t.length},of=function(t){return t.byteLength};var uf=function(){function t(){F(this,t)}return E(t,[{key:"eq",value:function(e){return e instanceof t||(e=new sf(e)),new df(this,e)}},{key:"le",value:function(e){return e instanceof t||(e=new sf(e)),new vf(this,e)}},{key:"ge",value:function(e){return e instanceof t||(e=new sf(e)),new bf(this,e)}},{key:"lt",value:function(t){return new gf(this.ge(t))}},{key:"gt",value:function(t){return new gf(this.le(t))}},{key:"ne",value:function(t){return new gf(this.eq(t))}}]),t}(),sf=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).v=t,r}return E(n)}(uf),cf=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).name=t,r}return E(n,[{key:"bind",value:function(t){if(!this.colidx){this.colidx=-1;for(var e=t.schema.fields,n=-1;++n=n.v;return function(){return r}}},{key:"_bindColCol",value:function(t,e,n){var r=e.bind(t),i=n.bind(t);return function(t,e){return r(t,e)>=i(t,e)}}},{key:"_bindColLit",value:function(t,e,n){var r=e.bind(t);return function(t,e){return r(t,e)>=n.v}}},{key:"_bindLitCol",value:function(t,e,n){var r=n.bind(t);return function(t,n){return e.v>=r(t,n)}}}]),n}(lf),gf=function(t){ot(n,t);var e=yt(n);function n(t){var r;return F(this,n),(r=e.call(this)).child=t,r}return E(n,[{key:"bind",value:function(t){var e=this.child.bind(t);return function(t,n){return!e(t,n)}}}]),n}(ff);Ec.prototype.countBy=function(t){return new mf(this.chunks).countBy(t)},Ec.prototype.scan=function(t,e){return new mf(this.chunks).scan(t,e)},Ec.prototype.scanReverse=function(t,e){return new mf(this.chunks).scanReverse(t,e)},Ec.prototype.filter=function(t){return new mf(this.chunks).filter(t)};var mf=function(t){ot(n,t);var e=yt(n);function n(){return F(this,n),e.apply(this,arguments)}return E(n,[{key:"filter",value:function(t){return new wf(this.chunks,t)}},{key:"scan",value:function(t,e){for(var n=this.chunks,r=n.length,i=-1;++i=0;){var i=n[r];e&&e(i);for(var a=i.length;--a>=0;)t(a,i)}}},{key:"countBy",value:function(t){var e=this.chunks,n=e.length,r="string"===typeof t?new cf(t):t;r.bind(e[n-1]);var i=r.vector;if(!Fn.isDictionary(i.type))throw new Error("countBy currently only supports dictionary-encoded columns");for(var a=Math.ceil(Math.log(i.length)/Math.log(256)),o=new(4==a?Uint32Array:a>=2?Uint16Array:Uint8Array)(i.dictionary.length),u=-1;++u=0;)for(var i=n[r],a=this._predicate.bind(i),o=!1,u=i.length;--u>=0;)a(u,i)&&(e&&!o&&(e(i),o=!0),t(u,i))}},{key:"count",value:function(){for(var t=0,e=this._chunks,n=e.length,r=-1;++r=2?Uint16Array:Uint8Array)(i.dictionary.length),u=-1;++u=i.headerRows&&e=i.headerColumns;if(n){var o=["blank"];return e>0&&o.push("level"+t),{type:"blank",classNames:o.join(" "),content:""}}if(a)return{type:"columns",classNames:(o=["col_heading","level"+t,"col"+(s=e-i.headerColumns)]).join(" "),content:i.getContent(i.columnsTable,s,t)};if(r){o=["row_heading","level"+e,"row"+(u=t-i.headerRows)];return{type:"index",id:"T_"+i.uuid+"level"+e+"_row"+u,classNames:o.join(" "),content:i.getContent(i.indexTable,u,e)}}o=["data","row"+(u=t-i.headerRows),"col"+(s=e-i.headerColumns)];var u,s,c=i.styler?i.getContent(i.styler.displayValuesTable,u,s):i.getContent(i.dataTable,u,s);return{type:"data",id:"T_"+i.uuid+"row"+u+"_col"+s,classNames:o.join(" "),content:c}},this.getContent=function(t,e,n){var r=t.getColumnAt(n);return null===r?"":i.getColumnTypeId(t,n)===Je.Timestamp?i.nanosToDate(r.get(e)):r.get(e)},this.dataTable=Ec.from(t),this.indexTable=Ec.from(e),this.columnsTable=Ec.from(n),this.styler=r?{caption:r.caption,displayValuesTable:Ec.from(r.displayValues),styles:r.styles,uuid:r.uuid}:void 0}return Object.defineProperty(t.prototype,"rows",{get:function(){return this.indexTable.length+this.columnsTable.numCols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this.indexTable.numCols+this.columnsTable.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerRows",{get:function(){return this.rows-this.dataRows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerColumns",{get:function(){return this.columns-this.dataColumns},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataRows",{get:function(){return this.dataTable.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataColumns",{get:function(){return this.dataTable.numCols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"uuid",{get:function(){return this.styler&&this.styler.uuid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"caption",{get:function(){return this.styler&&this.styler.caption},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"styles",{get:function(){return this.styler&&this.styler.styles},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"table",{get:function(){return this.dataTable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"index",{get:function(){return this.indexTable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTable",{get:function(){return this.columnsTable},enumerable:!0,configurable:!0}),t.prototype.serialize=function(){return{data:this.dataTable.serialize(),index:this.indexTable.serialize(),columns:this.columnsTable.serialize()}},t.prototype.getColumnTypeId=function(t,e){return t.schema.fields[e].type.typeId},t.prototype.nanosToDate=function(t){return new Date(t/1e6)},t}(),Sf=function(){return Sf=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0?t.argsDataframeToObject(e.dfs):{};n=Sf(Sf({},n),r);var i=Boolean(e.disabled),a=e.theme;a&&Af(a);var o={disabled:i,args:n,theme:a},u=new CustomEvent(t.RENDER_EVENT,{detail:o});t.events.dispatchEvent(u)},t.argsDataframeToObject=function(e){var n=e.map((function(e){var n=e.key,r=e.value;return[n,t.toArrowTable(r)]}));return Object.fromEntries(n)},t.toArrowTable=function(t){var e=t.data,n=e.data,r=e.index,i=e.columns,a=e.styler;return new If(n,r,i,a)},t.sendBackMsg=function(t,e){window.parent.postMessage(Sf({isStreamlitMessage:!0,type:t},e),"*")},t}(),Af=function(t){var e=document.createElement("style");document.head.appendChild(e),e.innerHTML="\n :root {\n --primary-color: "+t.primaryColor+";\n --background-color: "+t.backgroundColor+";\n --secondary-background-color: "+t.secondaryBackgroundColor+";\n --text-color: "+t.textColor+";\n --font: "+t.font+";\n }\n\n body {\n background-color: var(--background-color);\n color: var(--text-color);\n }\n "};var Tf=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},t(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}Tf(e,t),e.prototype.componentDidMount=function(){xf.setFrameHeight()},e.prototype.componentDidUpdate=function(){xf.setFrameHeight()}}(f.a.PureComponent)},function(t,e,n){"use strict";var r=n(6),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function s(t){return r.isMemo(t)?o:u[t.$$typeof]||i}u[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[r.Memo]=o;var c=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,p=Object.prototype;t.exports=function t(e,n,r){if("string"!==typeof n){if(p){var i=y(n);i&&i!==p&&t(e,i,r)}var o=f(n);l&&(o=o.concat(l(n)));for(var u=s(e),d=s(n),v=0;vD.length&&D.push(t)}function M(t,e,n,r){var i=typeof t;"undefined"!==i&&"boolean"!==i||(t=null);var u=!1;if(null===t)u=!0;else switch(i){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case a:case o:u=!0}}if(u)return n(r,t,""===e?"."+U(t,0):e),1;if(u=0,e=""===e?".":e+":",Array.isArray(t))for(var s=0;s=0;--a){var o=this.tryEntries[a],u=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),T(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;T(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=r}catch(i){"object"===typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}]]); +//# sourceMappingURL=2.422ca0c4.chunk.js.map \ No newline at end of file diff --git a/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.LICENSE.txt b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65a9ce6da1e7b127ca04a506d396e5cf5d77113 --- /dev/null +++ b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.LICENSE.txt @@ -0,0 +1,40 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/** + * @license + * Copyright 2018-2021 Streamlit Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.map b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.map new file mode 100644 index 0000000000000000000000000000000000000000..03854ebae3adfbc04c1e3f9c14b250e97f87cd04 --- /dev/null +++ b/utilities_cookies/build/static/js/2.422ca0c4.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../../src/event.mjs","../../src/event-target.mjs","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/flatbuffers/js/flatbuffers.mjs","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../util/utf8.ts","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../io/interfaces.ts","../util/compat.ts","../util/buffer.ts","../io/adapters.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../vector.ts","../fb/Schema.ts","../fb/Message.ts","../enum.ts","../util/bit.ts","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../visitor.ts","../visitor/typecomparator.ts","../type.ts","../data.ts","../util/pretty.ts","../builder/valid.ts","../builder/buffer.ts","../builder.ts","../builder/bool.ts","../builder/null.ts","../builder/date.ts","../builder/decimal.ts","../builder/dictionary.ts","../builder/fixedsizebinary.ts","../util/math.ts","../builder/float.ts","../node_modules/@babel/runtime/helpers/esm/construct.js","../util/bn.ts","../builder/int.ts","../builder/time.ts","../builder/timestamp.ts","../builder/interval.ts","../builder/binary.ts","../builder/utf8.ts","../builder/run.ts","../vector/row.ts","../util/vector.ts","../vector/chunked.ts","../column.ts","../util/args.ts","../schema.ts","../builder/list.ts","../builder/fixedsizelist.ts","../builder/map.ts","../builder/struct.ts","../builder/union.ts","../visitor/set.ts","../fb/File.ts","../visitor/builderctor.ts","../builder/index.ts","../ipc/metadata/file.ts","../io/stream.ts","../io/file.ts","../util/int.ts","../visitor/vectorloader.ts","../visitor/typeassembler.ts","../ipc/metadata/json.ts","../ipc/metadata/message.ts","../ipc/message.ts","../visitor/vectorassembler.ts","../ipc/writer.ts","../util/recordbatch.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../vector/base.ts","../vector/binary.ts","../vector/bool.ts","../vector/date.ts","../vector/decimal.ts","../vector/dictionary.ts","../vector/fixedsizebinary.ts","../vector/fixedsizelist.ts","../vector/float.ts","../vector/interval.ts","../vector/int.ts","../vector/list.ts","../vector/map.ts","../vector/null.ts","../vector/struct.ts","../vector/timestamp.ts","../vector/time.ts","../vector/union.ts","../vector/utf8.ts","../util/fn.ts","../visitor/get.ts","../visitor/indexof.ts","../visitor/iterator.ts","../visitor/toarray.ts","../visitor/bytewidth.ts","../visitor/vectorctor.ts","../vector/index.ts","../table.ts","../recordbatch.ts","../ipc/reader.ts","../io/whatwg/builder.ts","../compute/predicate.ts","../compute/dataframe.ts","../Arrow.ts","../Arrow.dom.ts","../io/whatwg/iterable.ts","../io/whatwg/reader.ts","../io/whatwg/writer.ts","../node_modules/streamlit-component-lib/dist/ArrowTable.js","../node_modules/streamlit-component-lib/dist/streamlit.js","../node_modules/streamlit-component-lib/dist/StreamlitReact.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/object-assign/index.js","../node_modules/regenerator-runtime/runtime.js"],"names":["module","exports","require","privateData","WeakMap","wrappers","pd","event","retv","get","console","assert","setCancelFlag","data","passiveListener","cancelable","canceled","preventDefault","error","Event","eventTarget","set","this","eventPhase","currentTarget","stopped","immediateStopped","timeStamp","Date","now","Object","defineProperty","value","enumerable","keys","i","length","key","defineRedirectDescriptor","configurable","defineCallDescriptor","apply","arguments","getWrapper","proto","prototype","wrapper","BaseEvent","CustomEvent","call","create","constructor","writable","isFunc","getOwnPropertyDescriptor","defineWrapper","getPrototypeOf","isStopped","setPassiveListener","type","target","composedPath","NONE","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","stopPropagation","stopImmediatePropagation","bubbles","Boolean","defaultPrevented","composed","srcElement","cancelBubble","returnValue","initEvent","window","setPrototypeOf","listenersMap","isObject","x","getListeners","listeners","TypeError","defineEventAttribute","eventTargetPrototype","eventName","node","listenerType","listener","next","prev","delete","newNode","passive","once","defineEventAttributeDescriptor","defineCustomEventTarget","eventNames","CustomEventTarget","EventTarget","Array","isArray","types","Map","addEventListener","options","optionsIsObj","capture","undefined","removeEventListener","dispatchEvent","wrappedEvent","wrapEvent","err","handleEvent","setEventPhase","setCurrentTarget","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","o","minLen","n","toString","slice","name","from","test","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","F","s","done","e","_e","f","normalCompletion","didErr","step","_e2","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","self","args","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_slicedToArray","_i","_s","_arr","_n","_d","push","_AwaitValue","wrapped","_awaitAsyncGenerator","AsyncGenerator","front","back","resume","result","wrappedAwait","settle","_invoke","request","_wrapAsyncGenerator","asyncIterator","_asyncIterator","iterable","method","async","sync","retry","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","r","ret","thr","_asyncGeneratorDelegate","inner","awaitWrap","iter","waiting","pump","flatbuffers","inRange","a","min","max","ToDictionary","Offset","Table","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","Int32Array","float32","Float32Array","buffer","float64","Float64Array","isLittleEndian","Uint16Array","Uint8Array","Long","low","high","ZERO","toFloat64","equals","other","Builder","opt_initial_size","initial_size","bb","ByteBuffer","allocate","space","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","clear","capacity","forceDefaults","dataBuffer","asUint8Array","bytes","subarray","position","offset","prep","size","additional_bytes","align_size","old_buf_size","growByteBuffer","pad","byte_size","writeInt8","writeInt16","writeInt32","writeInt64","writeFloat32","writeFloat64","addInt8","addInt16","addInt32","addInt64","addFloat32","addFloat64","addFieldInt8","voffset","defaultValue","slot","addFieldInt16","addFieldInt32","addFieldInt64","addFieldFloat32","addFieldFloat64","addFieldOffset","addOffset","addFieldStruct","nested","obj","Error","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","existing_vtable","vt1","outer_loop","vt2","readInt16","j","finish","root_table","opt_file_identifier","file_identifier","charCodeAt","requiredField","table","field","table_start","vtable_start","readInt32","startVector","elem_size","num_elems","alignment","endVector","createString","utf8","codePoint","createLong","bytes_","position_","readInt8","readUint8","readUint16","readUint32","readInt64","readUint64","readFloat32","readFloat64","writeUint8","writeUint16","writeUint32","writeUint64","getBufferIdentifier","String","fromCharCode","__offset","bb_pos","vtable_offset","__union","t","__string","opt_encoding","b","c","__indirect","__vector","__vector_len","__has_identifier","ident","Stream","tokens","endOfStream","read","shift","prepend","token","unshift","pop","finished","decoderError","fatal","opt_code_point","DEFAULT_ENCODING","TextDecoder","encoding","toLowerCase","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","TextEncoder","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","count","temp","decode","input","ArrayBuffer","byteOffset","byteLength","input_stream","code_points","indexOf","cp","codePointsToString","encode","opt_string","string","u","d","stringToCodePoints","_Buffer","Buffer","useNativeEncoders","decodeUtf8","decoder","encodeUtf8","encoder","_setPrototypeOf","p","__proto__","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","ITERATOR_DONE","freeze","_json","_getDOMStream","tee","_getNodeStream","pipe","pipeTo","duplex","pipeThrough","_DOMStream","toDOMStream","_nodeStream","toNodeStream","_values","resolvers","_closedPromise","_closedPromiseResolve","reason","return","_ensureOpen","_error","_","abort","close","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt","BigIntCtor","BigIntAvailable","BigInt64ArrayUnavailableError","BigInt64Array","BigInt64ArrayCtor","BigUint64ArrayUnavailableError","BigUint64Array","BigUint64ArrayCtor","isNumber","isBoolean","isFunction","isPromise","isIterable","isAsyncIterable","isArrowJSON","isIteratorResult","isFileHandle","isFetchResponse","toArrayBufferViewIterator","SharedArrayBuf","SharedArrayBuffer","memcpy","source","targetByteOffset","sourceByteLength","targetByteLength","dst","src","Math","joinUint8Arrays","chunks","sliced","xOffset","yOffset","xLen","yLen","y","collapseContiguousByteRanges","reduce","index","Infinity","toArrayBufferView","ArrayBufferViewCtor","isView","BYTES_PER_ELEMENT","toInt8Array","Int8Array","toInt16Array","Int16Array","toInt32Array","toUint16Array","toUint32Array","Uint32Array","toFloat32Array","toFloat64Array","toUint8ClampedArray","Uint8ClampedArray","ArrayCtor","wrap","buffers","toInt8ArrayIterator","toInt16ArrayIterator","toInt32ArrayIterator","toUint8ArrayIterator","toUint16ArrayIterator","toUint32ArrayIterator","toFloat32ArrayIterator","toFloat64ArrayIterator","toUint8ClampedArrayIterator","toArrayBufferViewAsyncIterator","emit","toInt8ArrayAsyncIterator","toInt16ArrayAsyncIterator","toInt32ArrayAsyncIterator","toUint8ArrayAsyncIterator","toUint16ArrayAsyncIterator","toUint32ArrayAsyncIterator","toFloat32ArrayAsyncIterator","toFloat64ArrayAsyncIterator","toUint8ClampedArrayAsyncIterator","rebaseValueOffsets","valueOffsets","compareArrayLike","fromIterable","fromAsyncIterable","fromDOMStream","fromNodeStream","byteRange","cmd","bufferLength","threw","isNaN","throw","releaseLock","byobReader","defaultReader","supportsBYOB","reader","getBYOBReader","getDefaultReader","catch","readFromBYOBReader","mode","readInto","onEvent","cleanup","events","evt","destroy","race","map","isFinite","_defineProperty","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_superPropBase","property","hasOwnProperty","receiver","base","desc","flatbuf","arrow","apache","org","MetadataVersion","UnionMode","Precision","DateUnit","TimeUnit","IntervalUnit","Type","Endianness","Null","__init","builder","startNull","endNull","Struct_","startStruct_","endStruct_","List","startList","endList","LargeList","startLargeList","endLargeList","FixedSizeList","listSize","startFixedSizeList","addListSize","endFixedSizeList","keysSorted","startMap","addKeysSorted","endMap","Union","Sparse","typeIdsOffset","numElems","startUnion","addMode","addTypeIds","endUnion","Int","bitWidth","isSigned","startInt","addBitWidth","addIsSigned","endInt","FloatingPoint","HALF","precision","startFloatingPoint","addPrecision","endFloatingPoint","Utf8","startUtf8","endUtf8","Binary","startBinary","endBinary","LargeUtf8","startLargeUtf8","endLargeUtf8","LargeBinary","startLargeBinary","endLargeBinary","FixedSizeBinary","byteWidth","startFixedSizeBinary","addByteWidth","endFixedSizeBinary","Bool","startBool","endBool","Decimal","scale","startDecimal","addScale","endDecimal","MILLISECOND","unit","startDate","addUnit","endDate","Time","startTime","endTime","Timestamp","SECOND","optionalEncoding","timezoneOffset","startTimestamp","addTimezone","endTimestamp","Interval","YEAR_MONTH","startInterval","endInterval","Duration","startDuration","endDuration","KeyValue","keyOffset","valueOffset","startKeyValue","addKey","addValue","endKeyValue","DictionaryEncoding","id","indexTypeOffset","isOrdered","startDictionaryEncoding","addId","addIndexType","addIsOrdered","endDictionaryEncoding","Field","nameOffset","nullable","typeType","typeOffset","dictionaryOffset","childrenOffset","customMetadataOffset","startField","addName","addNullable","addTypeType","addType","addDictionary","addChildren","addCustomMetadata","endField","Schema","Little","endianness","fieldsOffset","startSchema","addEndianness","addFields","endSchema","MessageHeader","FieldNode","null_count","RecordBatch","nodesOffset","buffersOffset","startRecordBatch","addLength","addNodes","addBuffers","endRecordBatch","DictionaryBatch","dataOffset","isDelta","startDictionaryBatch","addData","addIsDelta","endDictionaryBatch","Message","V1","version","headerType","headerOffset","bodyLength","startMessage","addVersion","addHeaderType","addHeader","addBodyLength","endMessage","BufferType","iterateBits","getBool","_data","_index","byte","bit","getBit","setBool","truncateBitmap","bitmap","alignedSize","packBools","values","xs","begin","context","byteIndex","remaining","popcnt_bit_range","lhs","rhs","sum","rhsInside","lhsInside","popcnt_array","cnt","pos","view","DataView","popcnt_uint32","getUint32","getUint16","getUint8","uint32","_toConsumableArray","nodes","visit","getVisitFn","throwIfNotFound","_node","visitor","dtype","inferDType","visitNull","visitBool","visitInt","Int8","visitInt8","Int16","visitInt16","Int32","visitInt32","Int64","visitInt64","Uint8","visitUint8","Uint16","visitUint16","Uint32","visitUint32","Uint64","visitUint64","Float","visitFloat","Float16","visitFloat16","Float32","visitFloat32","Float64","visitFloat64","visitUtf8","visitBinary","visitFixedSizeBinary","visitDate","DateDay","visitDateDay","DateMillisecond","visitDateMillisecond","visitTimestamp","TimestampSecond","visitTimestampSecond","TimestampMillisecond","visitTimestampMillisecond","TimestampMicrosecond","visitTimestampMicrosecond","TimestampNanosecond","visitTimestampNanosecond","visitTime","TimeSecond","visitTimeSecond","TimeMillisecond","visitTimeMillisecond","TimeMicrosecond","visitTimeMicrosecond","TimeNanosecond","visitTimeNanosecond","visitDecimal","visitList","Struct","visitStruct","visitUnion","DenseUnion","visitDenseUnion","SparseUnion","visitSparseUnion","Dictionary","visitDictionary","visitInterval","IntervalDayTime","visitIntervalDayTime","IntervalYearMonth","visitIntervalYearMonth","visitFixedSizeList","visitMap","typeId","SINGLE","DOUBLE","MICROSECOND","NANOSECOND","DAY","DAY_TIME","Dense","schema","compareFields","fields","others","every","compareField","compareConstructor","compareAny","compareInt","compareFloat","compareDate","compareTimestamp","timezone","compareTime","compareUnion","typeIds","children","compareInterval","indices","dictionary","toStringTag","ArrayType","child","valueType","join","typeIdToChildIndex","idx","atomicDictionaryId","getId","strideForType","nullCount","childData","floor","_nullCount","Data","stride","nullBitmap","childStride","_sliceBuffers","clone","_sliceChildren","newLength","fill","VALIDITY","TYPE","OFFSET","DATA","valueOffsetsOrChildren","valueToString","toPrimitive","JSON","stringify","createIsValidFunction","nullValues","fnBody","noNaNs","valueToCase","Function","roundLengthUpToNearest64Bytes","BPE","_resize","extra","reserved","array","reserve","numValid","val","cur","_ArrayType64","buffer64","ArrayType64","nulls","_nulls","_isValid","new","flush","numInvalid","_offsets","_typeIds","reservedLength","reservedByteLength","setValid","isValid","setValue","_setValue","valid","numChildren","offsets","last","queueingStrategy","highWaterMark","sizeProperty","numChunks","append","toVector","opts","_pendingLength","pending","_pending","current","_flush","pendingLength","_flushPending","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","_dictionary","curr","concat","f64","u32","uint16ToFloat64","h","expo","sigf","sign","NaN","float64ToUint16","Parent","Class","bind","bignumToString","bignumToBigInt","isArrowBigNumSymbol","for","BigNum","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","hi","lo","signed","words","number","decimalToString","digits","base64","base32","checks","reverse","toJSON","hint","assign","memo","num","BN","toBigInt","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","parent","numKeys","ktoi","itov","getValue","getIndex","ki","vi","kr","vr","k","v","has","callbackfn","thisArg","callback","m","str","createRowProxy","getChildAt","defineRowProxyProperties","findIndex","tmp","row","getter","setter","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","ownKeys","clampIndex","adjust","clampRange","end","big0","isNaNFast","createElementComparator","search","typeofSearch","valueOfSearch","comparators","createSubElementsComparator","creatMapComparator","createArrayLikeComparator","createVectorComparator","createObjectComparator","compareArray","compareObject","vec","compareVector","lKeyItr","rKeyItr","rValItr","rVal","lKey","rKey","calculateOffsets","_type","_chunks","_chunkOffsets","_length","_numChildren","chunk","isDictionary","_indices","Chunked","flatten","_sliceInternal","columns","_children","vector","mid","isValidInternal","getInternal","element","indexOfInternal","toArray","arraySet","typedSet","chunkIndex","fromIndex","start","found","slices","chunkOffsets","chunkLength","chunkOffset","to","vectors","selectChunkArgs","_field","metadata","Column","column","rest","some","_chunk","selectArgs","Ctor","vals","_selectArgs","selectFieldArgs","_selectChunkArgs","selectVectorChildrenArgs","_selectVectorChildrenArgs","res","entries","fieldIndex","valueIndex","dictionaries","generateDictionaryMap","compareSchemas","columnNames","names","columnIndices","curFields","mergeMaps","newFields","f2","newDictionaries","m1","m2","_run","run","childIndex","_valueToChildTypeId","childTypeId","setEpochMsToMillisecondsLong","epochMs","setVariableWidthBytes","setDateDay","setEpochMsToDays","setDateMillisecond","setNumeric","values64","long","setTimestampSecond","setTimestampMillisecond","setTimestampMicrosecond","setEpochMsToMicrosecondsLong","setTimestampNanosecond","setEpochMsToNanosecondsLong","setTimeSecond","setTimeMillisecond","setTimeMicrosecond","setTimeNanosecond","setDenseUnion","setSparseUnion","setIntervalDayTime","setIntervalYearMonth","itr","_setStructVectorValue","_setStructArrayValue","_setStructObjectValue","newBuilder","defaultOptions","getChildOptions","T","Footer","Block","schemaOffset","dictionariesOffset","recordBatchesOffset","startFooter","addSchema","addDictionaries","addRecordBatches","endFooter","metaDataLength","_Block","_Footer","V4","recordBatches","dictionaryBatches","_recordBatches","_dictionaryBatches","numRecordBatches","block","getRecordBatch","numDictionaries","getDictionaryBatch","buf","footer","getRootAsFooter","startRecordBatchesVector","rb","startDictionariesVector","db","dictionaryBatchesOffset","finishFooterBuffer","_footer","recordBatchesLength","dictionariesLength","fileBlock","FileBlock","createBlock","toUint8Array","peek","AsyncByteStream","body","closed","cancel","readAt","getInt32","nBytes","file","_handle","stat","bytesRead","intAsHex","kPowersOfTen","L","R","product","lessThan","_times","_plus","out_buffer","fromString","out","posn","group","parseInt","substr","multiple","times","plus","left","right","this_high","other_high","negate","startsWith","L0","L1","L2","L3","R0","R1","R2","R3","multiply","sums","Int128","nodesIndex","buffersIndex","nextFieldNode","readNullBitmap","readData","readOffsets","visitMany","readTypeIds","readDictionary","nextBufferRange","sources","isTimestamp","isInt","isTime","isDate","convertArray","isDecimal","isBinary","isFixedSizeBinary","binaryDataFromJSON","isBool","isUtf8","joined","startTypeIdsVector","createTypeIdsVector","indexType","recordBatchFromJSON","fieldNodesFromJSON","buffersFromJSON","schemaFieldsFromJSON","_schema","fromJSON","fieldChildrenFromJSON","fieldNodes","validity","customMetadataFromJSON","_metadata","indexTypeFromJSON","typeFromJSON","_Field","_Schema","_Message","_KeyValue","_FieldNode","_Endianness","_DictionaryBatch","header","_version","_headerType","_createHeader","_bodyLength","msg","message","messageHeaderFromJSON","_message","getRootAsMessage","decodeMessageHeader","isSchema","isRecordBatch","isDictionaryBatch","finishMessageBuffer","_nodes","_buffers","_isDelta","_id","decodeFieldNodes","batch","nodesLength","decodeBuffers","bufferRegions","buffersLength","decodeSchemaFields","fieldsLength","decodeFieldChildren","childrenLength","decodeCustomMetadata","entry","customMetadataLength","customMetadata","decodeIndexType","decodeFieldType","typeIdsArray","childOffsets","childrenVectorOffset","createChildrenVector","metadataOffset","createCustomMetadataVector","dictType","dictMeta","fieldOffsets","startFieldsVector","fieldsVectorOffset","createFieldsVector","platformIsLittleEndian","Big","recordBatch","startNodesVector","nodesVectorOffset","startBuffersVector","b_","buffersVectorOffset","dictionaryBatch","createFieldNode","createBuffer","setInt16","invalidMessageMetadata","expected","actual","invalidMessageBodyLength","readMetadataLength","readMetadata","throwIfNull","readMessage","PADDING","metadataLength","_body","_batchIndex","_dictionaryIndex","batches","flattenDataSources","MAGIC_STR","MAGIC","checkForMagicArrowString","magicLength","magicAndPadding","magicX2AndPadding","_byteLength","_bufferRegions","RangeError","isNull","addBuffer","_nullV","assembler","VectorAssembler","vectorChildren","assembleResult","assembleFlatVector","assembleFlatListVector","firstOffset","lastOffset","assembleListVector","assembleNestedVector","maxChildTypeId","childLengths","shiftedOffsets","unshiftedOffsets","childLength","_position","_started","_sink","_dictionaryBlocks","_recordBatchBlocks","_dictionaryDeltaOffsets","autoDestroy","writeLegacyIpcFormat","_autoDestroy","_writeLegacyIpcFormat","writeAll","writeAllAsync","reset","sink","objectMode","_writeFooter","compareTo","_writeSchema","payload","_writeRecordBatch","flatbufferSize","prefixSize","nPaddingBytes","_write","of","_writePadding","write","_writeMessage","assemble","_writeDictionaries","_writeBodyBuffers","padding","_writeDictionaryBatch","writableStrategy","readableStrategy","writer","RecordBatchStreamWriter","_writeMagic","RecordBatchFileWriter","noopBuf","nullBufs","bitmapLength","ensureSameLengthData","batchLength","l","batchData","_changeLengthAndBackfillNullBitmap","distributeColumnsIntoRecordBatches","distributeVectorsIntoRecordBatches","vecs","batchArgs","numBatches","numColumns","Number","POSITIVE_INFINITY","distributeChildData","uniformlyDistributeChunksAcrossRecordBatches","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_bindDataAccessors","VectorName","isConcatSpreadable","vectorFromValuesWithType","ArrowType","InputType","typeCtor","dataCtor","ctor","is64bit","_values64","toBigInt64Array","toBigUint64Array","_row","bound","partial0","partial2","epochMillisecondsLongToMs","epochMillisecondsToDate","getVariableWidthBytes","getDateDay","epochDaysToMs","epochDaysToDate","getDateMillisecond","epochMillisecondsLongToDate","getNumeric","getTimestampSecond","getTimestampMillisecond","getTimestampMicrosecond","epochMicrosecondsLongToMs","getTimestampNanosecond","epochNanosecondsLongToMs","getTimeSecond","getTimeMillisecond","getDenseUnion","getSparseUnion","getIntervalDayTime","getIntervalYearMonth","interval","int32s","_vector","decimal","indexOfValue","searchElement","indexOfNull","compare","indexOfUnion","vectorIterator","getFn","nullByte","nullBit","nullableIterator","arrayOfVector","variableWidthColumnErrorMessage","____","visitFields","newDataType","throughIterable","transform","throughAsyncIterable","getByteWidth","wrapNullableSet","VectorCtor","partialType0","getColumnAt","getColumnIndex","Writer","nameToIndex","selectAt","columnName","newIdx","oldToNew","_f","_fs","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","isSync","open","opening","cols","_dictionaries","collect","fs","vs","DictionaryCollector","readAllSync","impl","_impl","isFile","isAsync","isStream","readRecordBatch","RecordBatchReader","fromArrowJSON","fromFileHandle","fromAsyncByteStream","fromByteStream","readAllAsync","_recordBatchIndex","_loadVectors","_reader","shouldAutoDestroy","readSchema","_readNextMessageAndValidate","readMessageBody","_loadRecordBatch","_loadDictionaryBatch","_readFooter","_readDictionaryBatch","seek","_numChunks","_finished","_bufferedSize","builderOptions","_controller","_builder","_getSize","chunkByteLength","readableHighWaterMark","writableHighWaterMark","ReadableStream","_maybeFlush","WritableStream","_writeValueAndReturnChunkSize","bufferedSize","controller","desiredSize","_enqueue","enqueue","Value","ge","le","eq","colidx","expr","_bindLitLit","_bindLitCol","_bindColLit","_bindColCol","accum","And","Or","_batch","rtrn","left_func","right_func","col","lit","col_func","lastDictionary","reverseLookup","lastKey","func","countBy","scan","scanReverse","predicate","batchIndex","numRows","count_by","countByteLength","ceil","log","counts","_predicate","isBound","FilteredDataFrame","and","bm","hwm","pull","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","queue","readable","ComponentMessageType","ArrowTable","indexBuffer","columnsBuffer","styler","_this","getCell","rowIndex","columnIndex","isBlankCell","headerRows","headerColumns","isIndexCell","isColumnsCell","classNames","content","dataColumnIndex","getContent","columnsTable","dataRowIndex","uuid","indexTable","displayValuesTable","dataTable","getColumnTypeId","nanosToDate","caption","displayValues","styles","numCols","rows","dataRows","dataColumns","serialize","nanos","__assign","Streamlit","API_VERSION","RENDER_EVENT","registeredMessageListener","setComponentReady","onMessageEvent","sendBackMsg","COMPONENT_READY","apiVersion","setFrameHeight","height","document","scrollHeight","lastFrameHeight","SET_FRAME_HEIGHT","setComponentValue","dataType","isBigIntArray","isTypedArray","SET_COMPONENT_VALUE","onRenderMessage","dataframeArgs","argsDataframeToObject","disabled","theme","_injectTheme","eventData","detail","argsDataframe","argsDataframeArrow","_a","toArrowTable","fromEntries","df","postMessage","isStreamlitMessage","style","createElement","head","appendChild","innerHTML","primaryColor","backgroundColor","secondaryBackgroundColor","textColor","font","__extends","extendStatics","__","_super","StreamlitComponentBase","componentDidMount","componentDidUpdate","React","PureComponent","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_typeof","__esModule","g","q","w","z","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","setState","forceUpdate","I","isPureReactComponent","J","K","ref","__self","__source","M","_owner","O","P","Q","keyPrefix","S","U","V","replace","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","propIsEnumerable","toObject","test1","test2","test3","split","letter","shouldUseNative","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","skipTempReset","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis"],"mappings":"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","file":"static/js/2.422ca0c4.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap()\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap()\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event)\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n )\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n )\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault()\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n })\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true })\n\n // Define accessors\n const keys = Object.keys(event)\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key))\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation()\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this)\n\n data.stopped = true\n data.immediateStopped = true\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation()\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this))\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this))\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n})\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype)\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event)\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto)\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event)\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n })\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key)\n const isFunc = typeof descriptor.value === \"function\"\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n )\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto)\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto)\n wrappers.set(proto, wrapper)\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nexport function wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event))\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nexport function isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nexport function setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nexport function setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nexport function setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener\n}\n","import {\n isStopped,\n setCurrentTarget,\n setEventPhase,\n setPassiveListener,\n wrapEvent,\n} from \"./event.mjs\"\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap()\n\n// Listener types\nconst CAPTURE = 1\nconst BUBBLE = 2\nconst ATTRIBUTE = 3\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget)\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this)\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this)\n\n // Traverse to the tail while removing old value.\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n node = node.next\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n }\n if (prev === null) {\n listeners.set(eventName, newNode)\n } else {\n prev.next = newNode\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n )\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this)\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n })\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i])\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map())\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length)\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i]\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this)\n const optionsIsObj = isObject(options)\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n }\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName)\n if (node === undefined) {\n listeners.set(eventName, newNode)\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node\n node = node.next\n }\n\n // Add it.\n prev.next = newNode\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this)\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n return\n }\n\n prev = node\n node = node.next\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this)\n const eventName = event.type\n let node = listeners.get(eventName)\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event)\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n )\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent)\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err)\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent)\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next\n }\n setPassiveListener(wrappedEvent, null)\n setEventPhase(wrappedEvent, 0)\n setCurrentTarget(wrappedEvent, null)\n\n return !wrappedEvent.defaultPrevented\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n})\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype)\n}\n\nexport { defineEventAttribute, EventTarget }\nexport default EventTarget\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","import AwaitValue from \"./AwaitValue.js\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","import AwaitValue from \"./AwaitValue.js\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nAsyncGenerator.prototype[typeof Symbol === \"function\" && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n};\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator.js\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","export default function _asyncIterator(iterable) {\n var method,\n async,\n sync,\n retry = 2;\n\n for (\"undefined\" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) {\n if (async && null != (method = iterable[async])) return method.call(iterable);\n if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));\n async = \"@@asyncIterator\", sync = \"@@iterator\";\n }\n\n throw new TypeError(\"Object is not async iterable\");\n}\n\nfunction AsyncFromSyncIterator(s) {\n function AsyncFromSyncIteratorContinuation(r) {\n if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n var done = r.done;\n return Promise.resolve(r.value).then(function (value) {\n return {\n value: value,\n done: done\n };\n });\n }\n\n return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {\n this.s = s, this.n = s.next;\n }, AsyncFromSyncIterator.prototype = {\n s: null,\n n: null,\n next: function next() {\n return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n },\n \"return\": function _return(value) {\n var ret = this.s[\"return\"];\n return void 0 === ret ? Promise.resolve({\n value: value,\n done: !0\n }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));\n },\n \"throw\": function _throw(value) {\n var thr = this.s[\"return\"];\n return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));\n }\n }, new AsyncFromSyncIterator(s);\n}","export default function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n ;\n\n iter[typeof Symbol !== \"undefined\" && Symbol.iterator || \"@@iterator\"] = function () {\n return this;\n };\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"next\", value);\n };\n\n if (typeof inner[\"throw\"] === \"function\") {\n iter[\"throw\"] = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump(\"throw\", value);\n };\n }\n\n if (typeof inner[\"return\"] === \"function\") {\n iter[\"return\"] = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"return\", value);\n };\n }\n\n return iter;\n}","/// @file\n/// @addtogroup flatbuffers_javascript_api\n/// @{\n/// @cond FLATBUFFERS_INTERNAL\n\n/**\n * @fileoverview\n *\n * Need to suppress 'global this' error so the Node.js export line doesn't cause\n * closure compile to error out.\n * @suppress {globalThis}\n */\n\n/**\n * @const\n * @namespace\n */\nvar flatbuffers = {};\n\n/**\n * @typedef {number}\n */\nflatbuffers.Offset;\n\n/**\n * @typedef {{\n * bb: flatbuffers.ByteBuffer,\n * bb_pos: number\n * }}\n */\nflatbuffers.Table;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_SHORT = 2;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_INT = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.FILE_IDENTIFIER_LENGTH = 4;\n\n/**\n * @enum {number}\n */\nflatbuffers.Encoding = {\n UTF8_BYTES: 1,\n UTF16_STRING: 2\n};\n\n/**\n * @type {Int32Array}\n * @const\n */\nflatbuffers.int32 = new Int32Array(2);\n\n/**\n * @type {Float32Array}\n * @const\n */\nflatbuffers.float32 = new Float32Array(flatbuffers.int32.buffer);\n\n/**\n * @type {Float64Array}\n * @const\n */\nflatbuffers.float64 = new Float64Array(flatbuffers.int32.buffer);\n\n/**\n * @type {boolean}\n * @const\n */\nflatbuffers.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @constructor\n * @param {number} low\n * @param {number} high\n */\nflatbuffers.Long = function(low, high) {\n /**\n * @type {number}\n * @const\n */\n this.low = low | 0;\n\n /**\n * @type {number}\n * @const\n */\n this.high = high | 0;\n};\n\n/**\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Long.create = function(low, high) {\n // Special-case zero to avoid GC overhead for default values\n return low == 0 && high == 0 ? flatbuffers.Long.ZERO : new flatbuffers.Long(low, high);\n};\n\n/**\n * @returns {number}\n */\nflatbuffers.Long.prototype.toFloat64 = function() {\n return (this.low >>> 0) + this.high * 0x100000000;\n};\n\n/**\n * @param {flatbuffers.Long} other\n * @returns {boolean}\n */\nflatbuffers.Long.prototype.equals = function(other) {\n return this.low == other.low && this.high == other.high;\n};\n\n/**\n * @type {flatbuffers.Long}\n * @const\n */\nflatbuffers.Long.ZERO = new flatbuffers.Long(0, 0);\n\n/// @endcond\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a FlatBufferBuilder.\n *\n * @constructor\n * @param {number=} opt_initial_size\n */\nflatbuffers.Builder = function(opt_initial_size) {\n if (!opt_initial_size) {\n var initial_size = 1024;\n } else {\n var initial_size = opt_initial_size;\n }\n\n /**\n * @type {flatbuffers.ByteBuffer}\n * @private\n */\n this.bb = flatbuffers.ByteBuffer.allocate(initial_size);\n\n /**\n * Remaining space in the ByteBuffer.\n *\n * @type {number}\n * @private\n */\n this.space = initial_size;\n\n /**\n * Minimum alignment encountered so far.\n *\n * @type {number}\n * @private\n */\n this.minalign = 1;\n\n /**\n * The vtable for the current table.\n *\n * @type {Array.}\n * @private\n */\n this.vtable = null;\n\n /**\n * The amount of fields we're actually using.\n *\n * @type {number}\n * @private\n */\n this.vtable_in_use = 0;\n\n /**\n * Whether we are currently serializing a table.\n *\n * @type {boolean}\n * @private\n */\n this.isNested = false;\n\n /**\n * Starting offset of the current struct/table.\n *\n * @type {number}\n * @private\n */\n this.object_start = 0;\n\n /**\n * List of offsets of all vtables.\n *\n * @type {Array.}\n * @private\n */\n this.vtables = [];\n\n /**\n * For the current vector being built.\n *\n * @type {number}\n * @private\n */\n this.vector_num_elems = 0;\n\n /**\n * False omits default values from the serialized data\n *\n * @type {boolean}\n * @private\n */\n this.force_defaults = false;\n};\n\nflatbuffers.Builder.prototype.clear = function() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n};\n\n/**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param {boolean} forceDefaults true always serializes default values\n */\nflatbuffers.Builder.prototype.forceDefaults = function(forceDefaults) {\n this.force_defaults = forceDefaults;\n};\n\n/**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n *\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.Builder.prototype.dataBuffer = function() {\n return this.bb;\n};\n\n/**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n *\n * @returns {Uint8Array}\n */\nflatbuffers.Builder.prototype.asUint8Array = function() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param {number} size This is the of the new element to write\n * @param {number} additional_bytes The padding size\n */\nflatbuffers.Builder.prototype.prep = function(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n var align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1);\n\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n var old_buf_size = this.bb.capacity();\n this.bb = flatbuffers.Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n\n this.pad(align_size);\n};\n\n/**\n * @param {number} byte_size\n */\nflatbuffers.Builder.prototype.pad = function(byte_size) {\n for (var i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt8 = function(value) {\n this.bb.writeInt8(this.space -= 1, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt16 = function(value) {\n this.bb.writeInt16(this.space -= 2, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt32 = function(value) {\n this.bb.writeInt32(this.space -= 4, value);\n};\n\n/**\n * @param {flatbuffers.Long} value\n */\nflatbuffers.Builder.prototype.writeInt64 = function(value) {\n this.bb.writeInt64(this.space -= 8, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat32 = function(value) {\n this.bb.writeFloat32(this.space -= 4, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat64 = function(value) {\n this.bb.writeFloat64(this.space -= 8, value);\n};\n/// @endcond\n\n/**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int8` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt8 = function(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n};\n\n/**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int16` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt16 = function(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n};\n\n/**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt32 = function(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n};\n\n/**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {flatbuffers.Long} value The `int64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt64 = function(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n};\n\n/**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat32 = function(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n};\n\n/**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat64 = function(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt8 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt16 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Long} value\n * @param {flatbuffers.Long} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || !value.equals(defaultValue)) {\n this.addInt64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldOffset = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n *\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldStruct = function(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n *\n * @param {flatbuffers.Offset} obj The offset of the created object\n */\nflatbuffers.Builder.prototype.nested = function(obj) {\n if (obj != this.offset()) {\n throw new Error('FlatBuffers: struct must be serialized inline.');\n }\n};\n\n/**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\nflatbuffers.Builder.prototype.notNested = function() {\n if (this.isNested) {\n throw new Error('FlatBuffers: object serialization must not be nested.');\n }\n};\n\n/**\n * Set the current vtable at `voffset` to the current location in the buffer.\n *\n * @param {number} voffset\n */\nflatbuffers.Builder.prototype.slot = function(voffset) {\n this.vtable[voffset] = this.offset();\n};\n\n/**\n * @returns {flatbuffers.Offset} Offset relative to the end of the buffer.\n */\nflatbuffers.Builder.prototype.offset = function() {\n return this.bb.capacity() - this.space;\n};\n\n/**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param {flatbuffers.ByteBuffer} bb The current buffer with the existing data\n * @returns {flatbuffers.ByteBuffer} A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\nflatbuffers.Builder.growByteBuffer = function(bb) {\n var old_buf_size = bb.capacity();\n\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xC0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n\n var new_buf_size = old_buf_size << 1;\n var nbb = flatbuffers.ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n};\n/// @endcond\n\n/**\n * Adds on offset, relative to where it will be written.\n *\n * @param {flatbuffers.Offset} offset The offset to add.\n */\nflatbuffers.Builder.prototype.addOffset = function(offset) {\n this.prep(flatbuffers.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + flatbuffers.SIZEOF_INT);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n *\n * @param {number} numfields\n */\nflatbuffers.Builder.prototype.startObject = function(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (var i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n};\n\n/**\n * Finish off writing the object that is under construction.\n *\n * @returns {flatbuffers.Offset} The offset to the object inside `dataBuffer`\n */\nflatbuffers.Builder.prototype.endObject = function() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n\n this.addInt32(0);\n var vtableloc = this.offset();\n\n // Trim trailing zeroes.\n var i = this.vtable_in_use - 1;\n for (; i >= 0 && this.vtable[i] == 0; i--) {}\n var trimmed_size = i + 1;\n\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n\n var standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n var len = (trimmed_size + standard_fields) * flatbuffers.SIZEOF_SHORT;\n this.addInt16(len);\n\n // Search for an existing vtable that matches the current one.\n var existing_vtable = 0;\n var vt1 = this.space;\nouter_loop:\n for (i = 0; i < this.vtables.length; i++) {\n var vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (var j = flatbuffers.SIZEOF_SHORT; j < len; j += flatbuffers.SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n } else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n\n this.isNested = false;\n return vtableloc;\n};\n/// @endcond\n\n/**\n * Finalize a buffer, poiting to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier) {\n if (opt_file_identifier) {\n var file_identifier = opt_file_identifier;\n this.prep(this.minalign, flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n if (file_identifier.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = flatbuffers.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, flatbuffers.SIZEOF_INT);\n this.addOffset(root_table);\n this.bb.setPosition(this.space);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n *\n * @param {flatbuffers.Offset} table\n * @param {number} field\n */\nflatbuffers.Builder.prototype.requiredField = function(table, field) {\n var table_start = this.bb.capacity() - table;\n var vtable_start = table_start - this.bb.readInt32(table_start);\n var ok = this.bb.readInt16(vtable_start + field) != 0;\n\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new Error('FlatBuffers: field ' + field + ' must be set');\n }\n};\n\n/**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param {number} elem_size The size of each element in the array\n * @param {number} num_elems The number of elements in the array\n * @param {number} alignment The alignment of the array\n */\nflatbuffers.Builder.prototype.startVector = function(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(flatbuffers.SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n};\n\n/**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns {flatbuffers.Offset} The offset at which the newly created array\n * starts.\n */\nflatbuffers.Builder.prototype.endVector = function() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n};\n/// @endcond\n\n/**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param {string|Uint8Array} s The string to encode\n * @return {flatbuffers.Offset} The offset in the buffer where the encoded string starts\n */\nflatbuffers.Builder.prototype.createString = function(s) {\n if (s instanceof Uint8Array) {\n var utf8 = s;\n } else {\n var utf8 = [];\n var i = 0;\n\n while (i < s.length) {\n var codePoint;\n\n // Decode UTF-16\n var a = s.charCodeAt(i++);\n if (a < 0xD800 || a >= 0xDC00) {\n codePoint = a;\n } else {\n var b = s.charCodeAt(i++);\n codePoint = (a << 10) + b + (0x10000 - (0xD800 << 10) - 0xDC00);\n }\n\n // Encode UTF-8\n if (codePoint < 0x80) {\n utf8.push(codePoint);\n } else {\n if (codePoint < 0x800) {\n utf8.push(((codePoint >> 6) & 0x1F) | 0xC0);\n } else {\n if (codePoint < 0x10000) {\n utf8.push(((codePoint >> 12) & 0x0F) | 0xE0);\n } else {\n utf8.push(\n ((codePoint >> 18) & 0x07) | 0xF0,\n ((codePoint >> 12) & 0x3F) | 0x80);\n }\n utf8.push(((codePoint >> 6) & 0x3F) | 0x80);\n }\n utf8.push((codePoint & 0x3F) | 0x80);\n }\n }\n }\n\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition(this.space -= utf8.length);\n for (var i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) {\n bytes[offset++] = utf8[i];\n }\n return this.endVector();\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Builder.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n////////////////////////////////////////////////////////////////////////////////\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`).\n *\n * @constructor\n * @param {Uint8Array} bytes\n */\nflatbuffers.ByteBuffer = function(bytes) {\n /**\n * @type {Uint8Array}\n * @private\n */\n this.bytes_ = bytes;\n\n /**\n * @type {number}\n * @private\n */\n this.position_ = 0;\n};\n\n/**\n * Create and allocate a new ByteBuffer with a given size.\n *\n * @param {number} byte_size\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.ByteBuffer.allocate = function(byte_size) {\n return new flatbuffers.ByteBuffer(new Uint8Array(byte_size));\n};\n\nflatbuffers.ByteBuffer.prototype.clear = function() {\n this.position_ = 0;\n};\n\n/**\n * Get the underlying `Uint8Array`.\n *\n * @returns {Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.bytes = function() {\n return this.bytes_;\n};\n\n/**\n * Get the buffer's position.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.position = function() {\n return this.position_;\n};\n\n/**\n * Set the buffer's position.\n *\n * @param {number} position\n */\nflatbuffers.ByteBuffer.prototype.setPosition = function(position) {\n this.position_ = position;\n};\n\n/**\n * Get the buffer's capacity.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.capacity = function() {\n return this.bytes_.length;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt8 = function(offset) {\n return this.readUint8(offset) << 24 >> 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint8 = function(offset) {\n return this.bytes_[offset];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt16 = function(offset) {\n return this.readUint16(offset) << 16 >> 16;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint16 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt32 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint32 = function(offset) {\n return this.readInt32(offset) >>> 0;\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readInt64 = function(offset) {\n return new flatbuffers.Long(this.readInt32(offset), this.readInt32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readUint64 = function(offset) {\n return new flatbuffers.Long(this.readUint32(offset), this.readUint32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat32 = function(offset) {\n flatbuffers.int32[0] = this.readInt32(offset);\n return flatbuffers.float32[0];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat64 = function(offset) {\n flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return flatbuffers.float64[0];\n};\n\n/**\n * @param {number} offset\n * @param {number|boolean} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt8 = function(offset, value) {\n this.bytes_[offset] = /** @type {number} */(value);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint8 = function(offset, value) {\n this.bytes_[offset] = value;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt64 = function(offset, value) {\n this.writeInt32(offset, value.low);\n this.writeInt32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint64 = function(offset, value) {\n this.writeUint32(offset, value.low);\n this.writeUint32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat32 = function(offset, value) {\n flatbuffers.float32[0] = value;\n this.writeInt32(offset, flatbuffers.int32[0]);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat64 = function(offset, value) {\n flatbuffers.float64[0] = value;\n this.writeInt32(offset, flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0]);\n};\n\n/**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n * @returns {string}\n */\nflatbuffers.ByteBuffer.prototype.getBufferIdentifier = function() {\n if (this.bytes_.length < this.position_ + flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error(\n 'FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n var result = \"\";\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(\n this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i));\n }\n return result;\n};\n\n/**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n *\n * @param {number} bb_pos\n * @param {number} vtable_offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__offset = function(bb_pos, vtable_offset) {\n var vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0;\n};\n\n/**\n * Initialize any Table-derived type to point to the union at the given offset.\n *\n * @param {flatbuffers.Table} t\n * @param {number} offset\n * @returns {flatbuffers.Table}\n */\nflatbuffers.ByteBuffer.prototype.__union = function(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n};\n\n/**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to UTF-16, pass flatbuffers.Encoding.UTF8_BYTES as\n * the \"optionalEncoding\" argument. This is useful for avoiding conversion to\n * and from UTF-16 when the data will just be packaged back up in another\n * FlatBuffer later on.\n *\n * @param {number} offset\n * @param {flatbuffers.Encoding=} opt_encoding Defaults to UTF16_STRING\n * @returns {string|Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.__string = function(offset, opt_encoding) {\n offset += this.readInt32(offset);\n\n var length = this.readInt32(offset);\n var result = '';\n var i = 0;\n\n offset += flatbuffers.SIZEOF_INT;\n\n if (opt_encoding === flatbuffers.Encoding.UTF8_BYTES) {\n return this.bytes_.subarray(offset, offset + length);\n }\n\n while (i < length) {\n var codePoint;\n\n // Decode UTF-8\n var a = this.readUint8(offset + i++);\n if (a < 0xC0) {\n codePoint = a;\n } else {\n var b = this.readUint8(offset + i++);\n if (a < 0xE0) {\n codePoint =\n ((a & 0x1F) << 6) |\n (b & 0x3F);\n } else {\n var c = this.readUint8(offset + i++);\n if (a < 0xF0) {\n codePoint =\n ((a & 0x0F) << 12) |\n ((b & 0x3F) << 6) |\n (c & 0x3F);\n } else {\n var d = this.readUint8(offset + i++);\n codePoint =\n ((a & 0x07) << 18) |\n ((b & 0x3F) << 12) |\n ((c & 0x3F) << 6) |\n (d & 0x3F);\n }\n }\n }\n\n // Encode UTF-16\n if (codePoint < 0x10000) {\n result += String.fromCharCode(codePoint);\n } else {\n codePoint -= 0x10000;\n result += String.fromCharCode(\n (codePoint >> 10) + 0xD800,\n (codePoint & ((1 << 10) - 1)) + 0xDC00);\n }\n }\n\n return result;\n};\n\n/**\n * Retrieve the relative offset stored at \"offset\"\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__indirect = function(offset) {\n return offset + this.readInt32(offset);\n};\n\n/**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector = function(offset) {\n return offset + this.readInt32(offset) + flatbuffers.SIZEOF_INT; // data starts after the length\n};\n\n/**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector_len = function(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n};\n\n/**\n * @param {string} ident\n * @returns {boolean}\n */\nflatbuffers.ByteBuffer.prototype.__has_identifier = function(ident) {\n if (ident.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n\n// Exports for Node.js and RequireJS\nexport { flatbuffers };\n\n/// @endcond\n/// @}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n};\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexport {TextEncoder, TextDecoder};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from './buffer';\nimport {\n TextDecoder as TextDecoderPolyfill,\n TextEncoder as TextEncoderPolyfill,\n} from 'text-encoding-utf-8';\n\n/** @ignore @suppress {missingRequire} */\nconst _Buffer = typeof Buffer === 'function' ? Buffer : null;\n/** @ignore */\nconst useNativeEncoders = typeof TextDecoder === 'function' && typeof TextEncoder === 'function';\n\n/** @ignore */\nexport const decodeUtf8 = ((TextDecoder) => {\n if (useNativeEncoders || !_Buffer) {\n const decoder = new TextDecoder('utf-8');\n return (buffer?: ArrayBuffer | ArrayBufferView) => decoder.decode(buffer);\n }\n return (input: ArrayBufferLike | ArrayBufferView) => {\n const { buffer, byteOffset, length } = toUint8Array(input);\n return _Buffer.from(buffer, byteOffset, length).toString();\n };\n})(typeof TextDecoder !== 'undefined' ? TextDecoder : TextDecoderPolyfill);\n\n/** @ignore */\nexport const encodeUtf8 = ((TextEncoder) => {\n if (useNativeEncoders || !_Buffer) {\n const encoder = new TextEncoder();\n return (value?: string) => encoder.encode(value);\n }\n return (input = '') => toUint8Array(_Buffer.from(input, 'utf8'));\n})(typeof TextEncoder !== 'undefined' ? TextEncoder : TextEncoderPolyfill);\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n Object.defineProperty(subClass, \"prototype\", {\n value: Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n }),\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\n\n/** @ignore */\nexport const ITERATOR_DONE: any = Object.freeze({ done: true, value: void (0) });\n\n/** @ignore */\nexport type FileHandle = import('fs').promises.FileHandle;\n/** @ignore */\nexport type ArrowJSONLike = { schema: any; batches?: any[]; dictionaries?: any[]; };\n/** @ignore */\nexport type ReadableDOMStreamOptions = { type: 'bytes' | undefined, autoAllocateChunkSize?: number, highWaterMark?: number };\n\n/** @ignore */\nexport class ArrowJSON {\n // @ts-ignore\n constructor(private _json: ArrowJSONLike) {}\n public get schema(): any { return this._json['schema']; }\n public get batches(): any[] { return (this._json['batches'] || []) as any[]; }\n public get dictionaries(): any[] { return (this._json['dictionaries'] || []) as any[]; }\n}\n\n/** @ignore */\nexport interface Readable {\n\n readonly closed: Promise;\n cancel(reason?: any): Promise;\n\n read(size?: number | null): Promise;\n peek(size?: number | null): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(size?: number | null): Promise>;\n}\n\n/** @ignore */\nexport interface Writable {\n readonly closed: Promise;\n close(): void;\n write(chunk: T): void;\n abort(reason?: any): void;\n}\n\n/** @ignore */\nexport interface ReadableWritable extends Readable, Writable {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n}\n\n/** @ignore */\nexport abstract class ReadableInterop {\n\n public abstract toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n public abstract toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n\n public tee(): [ReadableStream, ReadableStream] {\n return this._getDOMStream().tee();\n }\n public pipe(writable: R, options?: { end?: boolean; }) {\n return this._getNodeStream().pipe(writable, options);\n }\n public pipeTo(writable: WritableStream, options?: PipeOptions) { return this._getDOMStream().pipeTo(writable, options); }\n public pipeThrough>(duplex: { writable: WritableStream, readable: R }, options?: PipeOptions) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n\n protected _DOMStream?: ReadableStream;\n private _getDOMStream() {\n return this._DOMStream || (this._DOMStream = this.toDOMStream());\n }\n\n protected _nodeStream?: import('stream').Readable;\n private _getNodeStream() {\n return this._nodeStream || (this._nodeStream = this.toNodeStream());\n }\n}\n\n/** @ignore */\ntype Resolution = { resolve: (value?: T | PromiseLike) => void; reject: (reason?: any) => void; };\n\n/** @ignore */\nexport class AsyncQueue extends ReadableInterop\n implements AsyncIterableIterator, ReadableWritable {\n\n protected _values: TWritable[] = [];\n protected _error?: { error: any; };\n protected _closedPromise: Promise;\n protected _closedPromiseResolve?: (value?: any) => void;\n protected resolvers: Resolution>[] = [];\n\n constructor() {\n super();\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n\n public get closed(): Promise { return this._closedPromise; }\n public async cancel(reason?: any) { await this.return(reason); }\n public write(value: TWritable) {\n if (this._ensureOpen()) {\n this.resolvers.length <= 0\n ? (this._values.push(value))\n : (this.resolvers.shift()!.resolve({ done: false, value } as any));\n }\n }\n public abort(value?: any) {\n if (this._closedPromiseResolve) {\n this.resolvers.length <= 0\n ? (this._error = { error: value })\n : (this.resolvers.shift()!.reject({ done: true, value }));\n }\n }\n public close() {\n if (this._closedPromiseResolve) {\n const { resolvers } = this;\n while (resolvers.length > 0) {\n resolvers.shift()!.resolve(ITERATOR_DONE);\n }\n this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n }\n }\n\n public [Symbol.asyncIterator]() { return this; }\n public toDOMStream(options?: ReadableDOMStreamOptions) {\n return streamAdapters.toDOMStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public toNodeStream(options?: import('stream').ReadableOptions) {\n return streamAdapters.toNodeStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public async throw(_?: any) { await this.abort(_); return ITERATOR_DONE; }\n public async return(_?: any) { await this.close(); return ITERATOR_DONE; }\n\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public next(..._args: any[]): Promise> {\n if (this._values.length > 0) {\n return Promise.resolve({ done: false, value: this._values.shift()! } as any);\n } else if (this._error) {\n return Promise.reject({ done: true, value: this._error.error });\n } else if (!this._closedPromiseResolve) {\n return Promise.resolve(ITERATOR_DONE);\n } else {\n return new Promise>((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n }\n\n protected _ensureOpen() {\n if (this._closedPromiseResolve) {\n return true;\n }\n throw new Error(`${this} is closed`);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ReadableInterop, ArrowJSONLike } from '../io/interfaces';\n\n/** @ignore */\ntype FSReadStream = import('fs').ReadStream;\n/** @ignore */\ntype FileHandle = import('fs').promises.FileHandle;\n\n/** @ignore */\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n/** @ignore */\nexport interface Observer {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\n/** @ignore */\nexport interface Observable {\n subscribe: (observer: Observer) => Subscription;\n}\n\n/** @ignore */\nconst [BigIntCtor, BigIntAvailable] = (() => {\n const BigIntUnavailableError = () => { throw new Error('BigInt is not available in this environment'); };\n function BigIntUnavailable() { throw BigIntUnavailableError(); }\n BigIntUnavailable.asIntN = () => { throw BigIntUnavailableError(); };\n BigIntUnavailable.asUintN = () => { throw BigIntUnavailableError(); };\n return typeof BigInt !== 'undefined' ? [BigInt, true] : [ BigIntUnavailable, false];\n})() as [BigIntConstructor, boolean];\n\n/** @ignore */\nconst [BigInt64ArrayCtor, BigInt64ArrayAvailable] = (() => {\n const BigInt64ArrayUnavailableError = () => { throw new Error('BigInt64Array is not available in this environment'); };\n class BigInt64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigInt64ArrayUnavailableError(); }\n static from() { throw BigInt64ArrayUnavailableError(); }\n constructor() { throw BigInt64ArrayUnavailableError(); }\n }\n return typeof BigInt64Array !== 'undefined' ? [BigInt64Array, true] : [ BigInt64ArrayUnavailable, false];\n})() as [BigInt64ArrayConstructor, boolean];\n\n/** @ignore */\nconst [BigUint64ArrayCtor, BigUint64ArrayAvailable] = (() => {\n const BigUint64ArrayUnavailableError = () => { throw new Error('BigUint64Array is not available in this environment'); };\n class BigUint64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigUint64ArrayUnavailableError(); }\n static from() { throw BigUint64ArrayUnavailableError(); }\n constructor() { throw BigUint64ArrayUnavailableError(); }\n }\n return typeof BigUint64Array !== 'undefined' ? [BigUint64Array, true] : [ BigUint64ArrayUnavailable, false];\n})() as [BigUint64ArrayConstructor, boolean];\n\nexport { BigIntCtor as BigInt, BigIntAvailable };\nexport { BigInt64ArrayCtor as BigInt64Array, BigInt64ArrayAvailable };\nexport { BigUint64ArrayCtor as BigUint64Array, BigUint64ArrayAvailable };\n\n/** @ignore */ const isNumber = (x: any) => typeof x === 'number';\n/** @ignore */ const isBoolean = (x: any) => typeof x === 'boolean';\n/** @ignore */ const isFunction = (x: any) => typeof x === 'function';\n/** @ignore */\nexport const isObject = (x: any): x is Object => x != null && Object(x) === x;\n\n/** @ignore */\nexport const isPromise = (x: any): x is PromiseLike => {\n return isObject(x) && isFunction(x.then);\n};\n\n/** @ignore */\nexport const isObservable = (x: any): x is Observable => {\n return isObject(x) && isFunction(x.subscribe);\n};\n\n/** @ignore */\nexport const isIterable = (x: any): x is Iterable => {\n return isObject(x) && isFunction(x[Symbol.iterator]);\n};\n\n/** @ignore */\nexport const isAsyncIterable = (x: any): x is AsyncIterable => {\n return isObject(x) && isFunction(x[Symbol.asyncIterator]);\n};\n\n/** @ignore */\nexport const isArrowJSON = (x: any): x is ArrowJSONLike => {\n return isObject(x) && isObject(x['schema']);\n};\n\n/** @ignore */\nexport const isArrayLike = (x: any): x is ArrayLike => {\n return isObject(x) && isNumber(x['length']);\n};\n\n/** @ignore */\nexport const isIteratorResult = (x: any): x is IteratorResult => {\n return isObject(x) && ('done' in x) && ('value' in x);\n};\n\n/** @ignore */\nexport const isUnderlyingSink = (x: any): x is UnderlyingSink => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['close']) &&\n isFunction(x['start']) &&\n isFunction(x['write']);\n};\n\n/** @ignore */\nexport const isFileHandle = (x: any): x is FileHandle => {\n return isObject(x) && isFunction(x['stat']) && isNumber(x['fd']);\n};\n\n/** @ignore */\nexport const isFSReadStream = (x: any): x is FSReadStream => {\n return isReadableNodeStream(x) && isNumber(( x)['bytesRead']);\n};\n\n/** @ignore */\nexport const isFetchResponse = (x: any): x is Response => {\n return isObject(x) && isReadableDOMStream(x['body']);\n};\n\n/** @ignore */\nexport const isWritableDOMStream = (x: any): x is WritableStream => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableDOMStream = (x: any): x is ReadableStream => {\n return isObject(x) &&\n isFunction(x['cancel']) &&\n isFunction(x['getReader']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isWritableNodeStream = (x: any): x is NodeJS.WritableStream => {\n return isObject(x) &&\n isFunction(x['end']) &&\n isFunction(x['write']) &&\n isBoolean(x['writable']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableNodeStream = (x: any): x is NodeJS.ReadableStream => {\n return isObject(x) &&\n isFunction(x['read']) &&\n isFunction(x['pipe']) &&\n isBoolean(x['readable']) &&\n !(x instanceof ReadableInterop);\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport { encodeUtf8 } from '../util/utf8';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { isPromise, isIterable, isAsyncIterable, isIteratorResult, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks: Uint8Array[]) {\n let result = chunks[0] ? [chunks[0]] : [];\n let xOffset: number, yOffset: number, xLen: number, yLen: number;\n for (let x, y, i = 0, j = 0, n = chunks.length; ++i < n;) {\n x = result[j];\n y = chunks[i];\n // continue if x and y don't share the same underlying ArrayBuffer, or if x isn't before y\n if (!x || !y || x.buffer !== y.buffer || y.byteOffset < x.byteOffset) {\n y && (result[++j] = y);\n continue;\n }\n ({ byteOffset: xOffset, byteLength: xLen } = x);\n ({ byteOffset: yOffset, byteLength: yLen } = y);\n // continue if the byte ranges of x and y aren't contiguous\n if ((xOffset + xLen) < yOffset || (yOffset + yLen) < xOffset) {\n y && (result[++j] = y);\n continue;\n }\n result[j] = new Uint8Array(x.buffer, xOffset, yOffset - xOffset + yLen);\n }\n return result;\n}\n\n/** @ignore */\nexport function memcpy(target: TTarget, source: TSource, targetByteOffset = 0, sourceByteLength = source.byteLength) {\n const targetByteLength = target.byteLength;\n const dst = new Uint8Array(target.buffer, target.byteOffset, targetByteLength);\n const src = new Uint8Array(source.buffer, source.byteOffset, Math.min(sourceByteLength, targetByteLength));\n dst.set(src, targetByteOffset);\n return target;\n}\n\n/** @ignore */\nexport function joinUint8Arrays(chunks: Uint8Array[], size?: number | null): [Uint8Array, Uint8Array[], number] {\n // collapse chunks that share the same underlying ArrayBuffer and whose byte ranges overlap,\n // to avoid unnecessarily copying the bytes to do this buffer join. This is a common case during\n // streaming, where we may be reading partial byte ranges out of the same underlying ArrayBuffer\n let result = collapseContiguousByteRanges(chunks);\n let byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n let offset = 0, index = -1, length = Math.min(size || Infinity, byteLength);\n for (let n = result.length; ++index < n;) {\n source = result[index];\n sliced = source.subarray(0, Math.min(source.length, length - offset));\n if (length <= (offset + sliced.length)) {\n if (sliced.length < source.length) {\n result[index] = source.subarray(sliced.length);\n } else if (sliced.length === source.length) { index++; }\n buffer ? memcpy(buffer, sliced, offset) : (buffer = sliced);\n break;\n }\n memcpy(buffer || (buffer = new Uint8Array(length)), sliced, offset);\n offset += sliced.length;\n }\n return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];\n}\n\n/** @ignore */\nexport type ArrayBufferViewInput = ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable | ArrayLike | ByteBuffer | string | null | undefined |\n IteratorResult | ArrayLike | ByteBuffer | string | null | undefined> |\n ReadableStreamReadResult | ArrayLike | ByteBuffer | string | null | undefined> ;\n\n/** @ignore */\nexport function toArrayBufferView(ArrayBufferViewCtor: TypedArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: BigIntArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: any, input: ArrayBufferViewInput) {\n\n let value: any = isIteratorResult(input) ? input.value : input;\n\n if (value instanceof ArrayBufferViewCtor) {\n if (ArrayBufferViewCtor === Uint8Array) {\n // Node's `Buffer` class passes the `instanceof Uint8Array` check, but we need\n // a real Uint8Array, since Buffer#slice isn't the same as Uint8Array#slice :/\n return new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength);\n }\n return value;\n }\n if (!value) { return new ArrayBufferViewCtor(0); }\n if (typeof value === 'string') { value = encodeUtf8(value); }\n if (value instanceof ArrayBuffer) { return new ArrayBufferViewCtor(value); }\n if (value instanceof SharedArrayBuf) { return new ArrayBufferViewCtor(value); }\n if (value instanceof ByteBuffer) { return toArrayBufferView(ArrayBufferViewCtor, value.bytes()); }\n return !ArrayBuffer.isView(value) ? ArrayBufferViewCtor.from(value) : value.byteLength <= 0 ? new ArrayBufferViewCtor(0)\n : new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength / ArrayBufferViewCtor.BYTES_PER_ELEMENT);\n}\n\n/** @ignore */ export const toInt8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int8Array, input);\n/** @ignore */ export const toInt16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int16Array, input);\n/** @ignore */ export const toInt32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int32Array, input);\n/** @ignore */ export const toBigInt64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigInt64Array, input);\n/** @ignore */ export const toUint8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8Array, input);\n/** @ignore */ export const toUint16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint16Array, input);\n/** @ignore */ export const toUint32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint32Array, input);\n/** @ignore */ export const toBigUint64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigUint64Array, input);\n/** @ignore */ export const toFloat32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float32Array, input);\n/** @ignore */ export const toFloat64Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArray = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewIteratorInput = Iterable | ArrayBufferViewInput;\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nexport function* toArrayBufferViewIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewIteratorInput) {\n\n const wrap = function*(x: T) { yield x; };\n const buffers: Iterable =\n (typeof source === 'string') ? wrap(source)\n : (ArrayBuffer.isView(source)) ? wrap(source)\n : (source instanceof ArrayBuffer) ? wrap(source)\n : (source instanceof SharedArrayBuf) ? wrap(source)\n : !isIterable(source) ? wrap(source) : source;\n\n yield* pump((function* (it) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewAsyncIteratorInput = AsyncIterable | Iterable | PromiseLike | ArrayBufferViewInput;\n\n/** @ignore */\nexport async function* toArrayBufferViewAsyncIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewAsyncIteratorInput): AsyncIterableIterator {\n\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (isPromise(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n\n const wrap = async function*(x: T) { yield await x; };\n const emit = async function* >(source: T) {\n yield* pump((function*(it: Iterator) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield r && r.value);\n } while (!r.done);\n })(source[Symbol.iterator]()));\n };\n\n const buffers: AsyncIterable =\n (typeof source === 'string') ? wrap(source) // if string, wrap in an AsyncIterableIterator\n : (ArrayBuffer.isView(source)) ? wrap(source) // if TypedArray, wrap in an AsyncIterableIterator\n : (source instanceof ArrayBuffer) ? wrap(source) // if ArrayBuffer, wrap in an AsyncIterableIterator\n : (source instanceof SharedArrayBuf) ? wrap(source) // if SharedArrayBuffer, wrap in an AsyncIterableIterator\n : isIterable(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !isAsyncIterable(source) ? wrap(source) // If not an AsyncIterable, treat as a sentinel and wrap in an AsyncIterableIterator\n : source; // otherwise if AsyncIterable, use it\n\n yield* pump((async function* (it) {\n let r: IteratorResult = null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8ClampedArray, input);\n\n/** @ignore */\nexport function rebaseValueOffsets(offset: number, length: number, valueOffsets: Int32Array) {\n // If we have a non-zero offset, create a new offsets array with the values\n // shifted by the start offset, such that the new start offset is 0\n if (offset !== 0) {\n valueOffsets = valueOffsets.slice(0, length + 1);\n for (let i = -1; ++i <= length;) {\n valueOffsets[i] += offset;\n }\n }\n return valueOffsets;\n}\n\n/** @ignore */\nexport function compareArrayLike>(a: T, b: T) {\n let i = 0, n = a.length;\n if (n !== b.length) { return false; }\n if (n > 0) {\n do { if (a[i] !== b[i]) { return false; } } while (++i < n);\n }\n return true;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport {\n toUint8Array,\n joinUint8Arrays,\n ArrayBufferViewInput,\n toUint8ArrayIterator,\n toUint8ArrayAsyncIterator\n} from '../util/buffer';\n\nimport { ReadableDOMStreamOptions } from './interfaces';\n\n/** @ignore */\nexport default {\n fromIterable(source: Iterable | T): IterableIterator {\n return pump(fromIterable(source));\n },\n fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n return pump(fromAsyncIterable(source));\n },\n fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n return pump(fromDOMStream(source));\n },\n fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream(source: Iterable | AsyncIterable, options?: import('stream').ReadableOptions): import('stream').Readable {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nfunction* fromIterable(source: Iterable | T): IterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source Iterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayIterator(source)[Symbol.iterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength) ?\n it.next(undefined) : it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (it.return());\n }\n}\n\n/** @ignore */\nasync function* fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source AsyncIterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayAsyncIterator(source)[Symbol.asyncIterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it.next(undefined)\n : await it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (await it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (await it.return());\n }\n}\n\n// All this manual Uint8Array chunk management can be avoided if/when engines\n// add support for ArrayBuffer.transfer() or ArrayBuffer.prototype.realloc():\n// https://github.com/domenic/proposal-arraybuffer-transfer\n/** @ignore */\nasync function* fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n\n let done = false, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we establish the ReadableStream lock\n ({ cmd, size } = yield null);\n\n // initialize the reader and lock the stream\n let it = new AdaptiveByteReader(source);\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it['read'](undefined)\n : await it['read'](size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(toUint8Array(buffer));\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (await it['cancel'](e));\n } finally {\n (threw === false) ? (await it['cancel']())\n : source['locked'] && it.releaseLock();\n }\n}\n\n/** @ignore */\nclass AdaptiveByteReader {\n\n private supportsBYOB: boolean;\n private byobReader: ReadableStreamBYOBReader | null = null;\n private defaultReader: ReadableStreamDefaultReader | null = null;\n private reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader | null;\n\n constructor(private source: ReadableStream) {\n try {\n this.supportsBYOB = !!(this.reader = this.getBYOBReader());\n } catch (e) {\n this.supportsBYOB = !!!(this.reader = this.getDefaultReader());\n }\n }\n\n get closed(): Promise {\n return this.reader ? this.reader['closed'].catch(() => {}) : Promise.resolve();\n }\n\n releaseLock(): void {\n if (this.reader) {\n this.reader.releaseLock();\n }\n this.reader = this.byobReader = this.defaultReader = null;\n }\n\n async cancel(reason?: any): Promise {\n const { reader, source } = this;\n reader && (await reader['cancel'](reason).catch(() => {}));\n source && (source['locked'] && this.releaseLock());\n }\n\n async read(size?: number): Promise> {\n if (size === 0) {\n return { done: this.reader == null, value: new Uint8Array(0) };\n }\n const result = !this.supportsBYOB || typeof size !== 'number'\n ? await this.getDefaultReader().read()\n : await this.readFromBYOBReader(size);\n !result.done && (result.value = toUint8Array(result as ReadableStreamReadResult));\n return result as ReadableStreamReadResult;\n }\n\n private getDefaultReader() {\n if (this.byobReader) { this.releaseLock(); }\n if (!this.defaultReader) {\n this.defaultReader = this.source['getReader']();\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.defaultReader['closed'].catch(() => {});\n }\n return (this.reader = this.defaultReader);\n }\n\n private getBYOBReader() {\n if (this.defaultReader) { this.releaseLock(); }\n if (!this.byobReader) {\n this.byobReader = this.source['getReader']({ mode: 'byob' });\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.byobReader['closed'].catch(() => {});\n }\n return (this.reader = this.byobReader);\n }\n\n // This strategy plucked from the example in the streams spec:\n // https://streams.spec.whatwg.org/#example-manual-read-bytes\n private async readFromBYOBReader(size: number) {\n return await readInto(this.getBYOBReader(), new ArrayBuffer(size), 0, size);\n }\n}\n\n/** @ignore */\nasync function readInto(reader: ReadableStreamBYOBReader, buffer: ArrayBufferLike, offset: number, size: number): Promise> {\n if (offset >= size) {\n return { done: false, value: new Uint8Array(buffer, 0, size) };\n }\n const { done, value } = await reader.read(new Uint8Array(buffer, offset, size - offset));\n if (((offset += value.byteLength) < size) && !done) {\n return await readInto(reader, value.buffer, offset, size);\n }\n return { done, value: new Uint8Array(value.buffer, 0, offset) };\n}\n\n/** @ignore */\ntype EventName = 'end' | 'error' | 'readable';\n/** @ignore */\ntype Event = [EventName, (_: any) => void, Promise<[EventName, Error | null]>];\n/** @ignore */\nconst onEvent = (stream: NodeJS.ReadableStream, event: T) => {\n let handler = (_: any) => resolve([event, _]);\n let resolve: (value?: [T, any] | PromiseLike<[T, any]>) => void;\n return [event, handler, new Promise<[T, any]>(\n (r) => (resolve = r) && stream['once'](event, handler)\n )] as Event;\n};\n\n/** @ignore */\nasync function* fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n\n let events: Event[] = [];\n let event: EventName = 'error';\n let done = false, err: Error | null = null;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n let buffers: Uint8Array[] = [], buffer: Uint8Array | Buffer | string;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we\n // add the listener for the source stream's 'readable' event.\n ({ cmd, size } = yield null);\n\n // ignore stdin if it's a TTY\n if ((stream as any)['isTTY']) { return yield new Uint8Array(0); }\n\n try {\n // initialize the stream event handlers\n events[0] = onEvent(stream, 'end');\n events[1] = onEvent(stream, 'error');\n\n do {\n events[2] = onEvent(stream, 'readable');\n\n // wait on the first message event from the stream\n [event, err] = await Promise.race(events.map((x) => x[2]));\n\n // if the stream emitted an Error, rethrow it\n if (event === 'error') { break; }\n if (!(done = event === 'end')) {\n // If the size is NaN, request to read everything in the stream's internal buffer\n if (!isFinite(size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n } else {\n buffer = toUint8Array(stream['read'](size - bufferLength));\n // If the byteLength is 0, then the requested amount is more than the stream has\n // in its internal buffer. In this case the stream needs a \"kick\" to tell it to\n // continue emitting readable events, so request to read everything the stream\n // has in its internal buffer right now.\n if (buffer.byteLength < (size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n }\n }\n // if chunk is not null or empty, push it onto the queue\n if (buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } finally {\n await cleanup(events, event === 'error' ? err : null);\n }\n\n function cleanup(events: Event[], err?: T) {\n buffer = buffers = null;\n return new Promise(async (resolve, reject) => {\n for (const [evt, fn] of events) {\n stream['off'](evt, fn);\n }\n try {\n // Some stream implementations don't call the destroy callback,\n // because it's really a node-internal API. Just calling `destroy`\n // here should be enough to conform to the ReadableStream contract\n const destroy = (stream as any)['destroy'];\n destroy && destroy.call(stream, err);\n err = undefined;\n } catch (e) { err = e || err; } finally {\n err != null ? reject(err) : resolve();\n }\n });\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { DataType } from './type';\nimport { Chunked } from './vector/chunked';\n\n/** @ignore */\nexport interface Clonable {\n clone(...args: any[]): R;\n}\n\n/** @ignore */\nexport interface Sliceable {\n slice(begin?: number, end?: number): R;\n}\n\n/** @ignore */\nexport interface Applicative {\n concat(...others: Vector[]): R;\n readonly [Symbol.isConcatSpreadable]: boolean;\n}\n\nexport interface AbstractVector\n extends Clonable>,\n Sliceable>,\n Applicative> {\n\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\nexport abstract class AbstractVector implements Iterable {\n\n public abstract readonly data: Data;\n public abstract readonly type: T;\n public abstract readonly typeId: T['TType'];\n public abstract readonly length: number;\n public abstract readonly stride: number;\n public abstract readonly nullCount: number;\n public abstract readonly byteLength: number;\n public abstract readonly numChildren: number;\n\n public abstract readonly ArrayType: T['ArrayType'];\n\n public abstract isValid(index: number): boolean;\n public abstract get(index: number): T['TValue'] | null;\n public abstract set(index: number, value: T['TValue'] | null): void;\n public abstract indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n public abstract [Symbol.iterator](): IterableIterator;\n\n public abstract toArray(): T['TArray'];\n public abstract getChildAt(index: number): Vector | null;\n}\n\nexport { AbstractVector as Vector };\n","/* tslint:disable:class-name */\n\n// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MetadataVersion {\n /**\n * 0.1.0\n */\n V1 = 0,\n\n /**\n * 0.2.0\n */\n V2 = 1,\n\n /**\n * 0.3.0 -> 0.7.1\n */\n V3 = 2,\n\n /**\n * >= 0.8.0\n */\n V4 = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum UnionMode {\n Sparse = 0,\n Dense = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Precision {\n HALF = 0,\n SINGLE = 1,\n DOUBLE = 2\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum DateUnit {\n DAY = 0,\n MILLISECOND = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum TimeUnit {\n SECOND = 0,\n MILLISECOND = 1,\n MICROSECOND = 2,\n NANOSECOND = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum IntervalUnit {\n YEAR_MONTH = 0,\n DAY_TIME = 1\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Top-level Type value, enabling extensible type-specific metadata. We can\n * add new logical types to Type without breaking backwards compatibility\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Type {\n NONE = 0,\n Null = 1,\n Int = 2,\n FloatingPoint = 3,\n Binary = 4,\n Utf8 = 5,\n Bool = 6,\n Decimal = 7,\n Date = 8,\n Time = 9,\n Timestamp = 10,\n Interval = 11,\n List = 12,\n Struct_ = 13,\n Union = 14,\n FixedSizeBinary = 15,\n FixedSizeList = 16,\n Map = 17,\n Duration = 18,\n LargeBinary = 19,\n LargeUtf8 = 20,\n LargeList = 21\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Endianness {\n Little = 0,\n Big = 1\n }\n}\n\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Null {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Null\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Null {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {\n return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startNull(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n Null.startNull(builder);\n return Null.endNull(builder);\n }\n }\n}\n/**\n * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct\n * (according to the physical memory layout). We used Struct_ here as\n * Struct is a reserved word in Flatbuffers\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Struct_ {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Struct_\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Struct_ {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {\n return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startStruct_(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n Struct_.startStruct_(builder);\n return Struct_.endStruct_(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class List {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns List\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): List {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {\n return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createList(builder: flatbuffers.Builder): flatbuffers.Offset {\n List.startList(builder);\n return List.endList(builder);\n }\n }\n}\n/**\n * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getRootAsLargeList(bb: flatbuffers.ByteBuffer, obj?: LargeList): LargeList {\n return (obj || new LargeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeList.startLargeList(builder);\n return LargeList.endLargeList(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {\n return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of list items per value\n *\n * @returns number\n */\n listSize(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeList(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number listSize\n */\n static addListSize(builder: flatbuffers.Builder, listSize: number) {\n builder.addFieldInt32(0, listSize, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeList(builder: flatbuffers.Builder, listSize: number): flatbuffers.Offset {\n FixedSizeList.startFixedSizeList(builder);\n FixedSizeList.addListSize(builder, listSize);\n return FixedSizeList.endFixedSizeList(builder);\n }\n }\n}\n/**\n * A Map is a logical nested type that is represented as\n *\n * List>\n *\n * In this layout, the keys and values are each respectively contiguous. We do\n * not constrain the key and value types, so the application is responsible\n * for ensuring that the keys are hashable and unique. Whether the keys are sorted\n * may be set in the metadata for this field\n *\n * In a Field with Map type, the Field has a child Struct field, which then\n * has two children: key type and the second the value type. The names of the\n * child fields may be respectively \"entry\", \"key\", and \"value\", but this is\n * not enforced\n *\n * Map\n * - child[0] entry: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entry\" field nor the \"key\" field may be nullable.\n *\n * The metadata is structured so that Arrow systems without special handling\n * for Map can make Map an alias for List. The \"layout\" attribute for the Map\n * field must have the same contents as a List.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Map {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Map\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Map {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {\n return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Set to true if the keys within each value are sorted\n *\n * @returns boolean\n */\n keysSorted(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMap(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean keysSorted\n */\n static addKeysSorted(builder: flatbuffers.Builder, keysSorted: boolean) {\n builder.addFieldInt8(0, +keysSorted, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMap(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createMap(builder: flatbuffers.Builder, keysSorted: boolean): flatbuffers.Offset {\n Map.startMap(builder);\n Map.addKeysSorted(builder, keysSorted);\n return Map.endMap(builder);\n }\n }\n}\n/**\n * A union is a complex type with children in Field\n * By default ids in the type vector refer to the offsets in the children\n * optionally typeIds provides an indirection between the child offset and the type id\n * for each child typeIds[offset] is the id used in the type vector\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Union {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Union\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Union {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {\n return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.UnionMode\n */\n mode(): org.apache.arrow.flatbuf.UnionMode {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.UnionMode.Sparse;\n }\n\n /**\n * @param number index\n * @returns number\n */\n typeIds(index: number): number | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb!.__vector(this.bb_pos + offset) + index * 4) : 0;\n }\n\n /**\n * @returns number\n */\n typeIdsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns Int32Array\n */\n typeIdsArray(): Int32Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? new Int32Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUnion(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.UnionMode mode\n */\n static addMode(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode) {\n builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeIdsOffset\n */\n static addTypeIds(builder: flatbuffers.Builder, typeIdsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, typeIdsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createTypeIdsVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt32(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startTypeIdsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUnion(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUnion(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode, typeIdsOffset: flatbuffers.Offset): flatbuffers.Offset {\n Union.startUnion(builder);\n Union.addMode(builder, mode);\n Union.addTypeIds(builder, typeIdsOffset);\n return Union.endUnion(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Int {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Int\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Int {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {\n return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns boolean\n */\n isSigned(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInt(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(0, bitWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isSigned\n */\n static addIsSigned(builder: flatbuffers.Builder, isSigned: boolean) {\n builder.addFieldInt8(1, +isSigned, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInt(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInt(builder: flatbuffers.Builder, bitWidth: number, isSigned: boolean): flatbuffers.Offset {\n Int.startInt(builder);\n Int.addBitWidth(builder, bitWidth);\n Int.addIsSigned(builder, isSigned);\n return Int.endInt(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FloatingPoint {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FloatingPoint\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FloatingPoint {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {\n return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Precision\n */\n precision(): org.apache.arrow.flatbuf.Precision {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Precision.HALF;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFloatingPoint(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Precision precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision) {\n builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFloatingPoint(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision): flatbuffers.Offset {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n }\n}\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Utf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Utf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Utf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {\n return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n Utf8.startUtf8(builder);\n return Utf8.endUtf8(builder);\n }\n }\n}\n/**\n * Opaque binary data\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Binary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Binary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Binary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {\n return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n Binary.startBinary(builder);\n return Binary.endBinary(builder);\n }\n }\n}\n/**\n * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeUtf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeUtf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeUtf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getRootAsLargeUtf8(bb: flatbuffers.ByteBuffer, obj?: LargeUtf8): LargeUtf8 {\n return (obj || new LargeUtf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeUtf8.startLargeUtf8(builder);\n return LargeUtf8.endLargeUtf8(builder);\n }\n }\n}\n/**\n * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getRootAsLargeBinary(bb: flatbuffers.ByteBuffer, obj?: LargeBinary): LargeBinary {\n return (obj || new LargeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeBinary.startLargeBinary(builder);\n return LargeBinary.endLargeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {\n return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of bytes per value\n *\n * @returns number\n */\n byteWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeBinary(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number byteWidth\n */\n static addByteWidth(builder: flatbuffers.Builder, byteWidth: number) {\n builder.addFieldInt32(0, byteWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeBinary(builder: flatbuffers.Builder, byteWidth: number): flatbuffers.Offset {\n FixedSizeBinary.startFixedSizeBinary(builder);\n FixedSizeBinary.addByteWidth(builder, byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Bool {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Bool\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Bool {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {\n return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBool(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n Bool.startBool(builder);\n return Bool.endBool(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Decimal {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Decimal\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Decimal {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {\n return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Total number of decimal digits\n *\n * @returns number\n */\n precision(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * Number of digits after the decimal point \".\"\n *\n * @returns number\n */\n scale(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: number) {\n builder.addFieldInt32(0, precision, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number scale\n */\n static addScale(builder: flatbuffers.Builder, scale: number) {\n builder.addFieldInt32(1, scale, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number): flatbuffers.Offset {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n return Decimal.endDecimal(builder);\n }\n }\n}\n/**\n * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX\n * epoch (1970-01-01), stored in either of two units:\n *\n * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no\n * leap seconds), where the values are evenly divisible by 86400000\n * * Days (32 bits) since the UNIX epoch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Date {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Date\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Date {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {\n return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.DateUnit\n */\n unit(): org.apache.arrow.flatbuf.DateUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.DateUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDate(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.DateUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.DateUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDate(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit): flatbuffers.Offset {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\n }\n }\n}\n/**\n * Time type. The physical storage type depends on the unit\n * - SECOND and MILLISECOND: 32 bits\n * - MICROSECOND and NANOSECOND: 64 bits\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Time {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Time\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Time {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {\n return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 32;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTime(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(1, bitWidth, 32);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTime(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTime(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, bitWidth: number): flatbuffers.Offset {\n Time.startTime(builder);\n Time.addUnit(builder, unit);\n Time.addBitWidth(builder, bitWidth);\n return Time.endTime(builder);\n }\n }\n}\n/**\n * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding\n * leap seconds, as a 64-bit integer. Note that UNIX time does not include\n * leap seconds.\n *\n * The Timestamp metadata supports both \"time zone naive\" and \"time zone\n * aware\" timestamps. Read about the timezone attribute for more detail\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Timestamp {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Timestamp\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Timestamp {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {\n return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.SECOND;\n }\n\n /**\n * The time zone is a string indicating the name of a time zone, one of:\n *\n * * As used in the Olson time zone database (the \"tz database\" or\n * \"tzdata\"), such as \"America/New_York\"\n * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30\n *\n * Whether a timezone string is present indicates different semantics about\n * the data:\n *\n * * If the time zone is null or equal to an empty string, the data is \"time\n * zone naive\" and shall be displayed *as is* to the user, not localized\n * to the locale of the user. This data can be though of as UTC but\n * without having \"UTC\" as the time zone, it is not considered to be\n * localized to any time zone\n *\n * * If the time zone is set to a valid value, values can be displayed as\n * \"localized\" to that time zone, even though the underlying 64-bit\n * integers are identical to the same data stored in UTC. Converting\n * between time zones is a metadata-only operation and does not change the\n * underlying values\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n timezone(): string | null;\n timezone(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n timezone(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTimestamp(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset timezoneOffset\n */\n static addTimezone(builder: flatbuffers.Builder, timezoneOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, timezoneOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTimestamp(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTimestamp(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, timezoneOffset: flatbuffers.Offset): flatbuffers.Offset {\n Timestamp.startTimestamp(builder);\n Timestamp.addUnit(builder, unit);\n Timestamp.addTimezone(builder, timezoneOffset);\n return Timestamp.endTimestamp(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Interval {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Interval\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Interval {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {\n return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.IntervalUnit\n */\n unit(): org.apache.arrow.flatbuf.IntervalUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInterval(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.IntervalUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInterval(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInterval(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit): flatbuffers.Offset {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Duration {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Duration\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Duration {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {\n return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDuration(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDuration(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit): flatbuffers.Offset {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * user defined key value pairs to add custom metadata to arrow\n * key namespacing is the responsibility of the user\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class KeyValue {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns KeyValue\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {\n return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n key(): string | null;\n key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n key(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n value(): string | null;\n value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n value(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startKeyValue(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset keyOffset\n */\n static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, keyOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset valueOffset\n */\n static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, valueOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset {\n KeyValue.startKeyValue(builder);\n KeyValue.addKey(builder, keyOffset);\n KeyValue.addValue(builder, valueOffset);\n return KeyValue.endKeyValue(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * Dictionary encoding metadata\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryEncoding {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryEncoding\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryEncoding {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {\n return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * The known dictionary id in the application where this data is used. In\n * the file or streaming formats, the dictionary ids are found in the\n * DictionaryBatch messages\n *\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * The dictionary indices are constrained to be positive integers. If this\n * field is null, the indices must be signed int32\n *\n * @param org.apache.arrow.flatbuf.Int= obj\n * @returns org.apache.arrow.flatbuf.Int|null\n */\n indexType(obj?: org.apache.arrow.flatbuf.Int): org.apache.arrow.flatbuf.Int | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Int).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * By default, dictionaries are not ordered, or the order does not have\n * semantic meaning. In some statistical, applications, dictionary-encoding\n * is used to represent ordered categorical data, and we provide a way to\n * preserve that metadata here\n *\n * @returns boolean\n */\n isOrdered(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset indexTypeOffset\n */\n static addIndexType(builder: flatbuffers.Builder, indexTypeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, indexTypeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isOrdered\n */\n static addIsOrdered(builder: flatbuffers.Builder, isOrdered: boolean) {\n builder.addFieldInt8(2, +isOrdered, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean): flatbuffers.Offset {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A field represents a named column in a record / row batch or child of a\n * nested type.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Field {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Field\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Field {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {\n return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Name is not required, in i.e. a List\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n name(): string | null;\n name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n name(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * Whether or not this field can contain nulls. Should be true in general.\n *\n * @returns boolean\n */\n nullable(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Type\n */\n typeType(): org.apache.arrow.flatbuf.Type {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;\n }\n\n /**\n * This is the type of the decoded value if the field is dictionary encoded.\n *\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n type(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param org.apache.arrow.flatbuf.DictionaryEncoding= obj\n * @returns org.apache.arrow.flatbuf.DictionaryEncoding|null\n */\n dictionary(obj?: org.apache.arrow.flatbuf.DictionaryEncoding): org.apache.arrow.flatbuf.DictionaryEncoding | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * children apply only to nested data types like Struct, List and Union. For\n * primitive types children will have length 0.\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n children(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n childrenLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startField(builder: flatbuffers.Builder) {\n builder.startObject(7);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nameOffset\n */\n static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, nameOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean nullable\n */\n static addNullable(builder: flatbuffers.Builder, nullable: boolean) {\n builder.addFieldInt8(1, +nullable, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Type typeType\n */\n static addTypeType(builder: flatbuffers.Builder, typeType: org.apache.arrow.flatbuf.Type) {\n builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeOffset\n */\n static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, typeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionaryOffset\n */\n static addDictionary(builder: flatbuffers.Builder, dictionaryOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, dictionaryOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset childrenOffset\n */\n static addChildren(builder: flatbuffers.Builder, childrenOffset: flatbuffers.Offset) {\n builder.addFieldOffset(5, childrenOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createChildrenVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startChildrenVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(6, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endField(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: org.apache.arrow.flatbuf.Type, typeOffset: flatbuffers.Offset, dictionaryOffset: flatbuffers.Offset, childrenOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Field.startField(builder);\n Field.addName(builder, nameOffset);\n Field.addNullable(builder, nullable);\n Field.addTypeType(builder, typeType);\n Field.addType(builder, typeOffset);\n Field.addDictionary(builder, dictionaryOffset);\n Field.addChildren(builder, childrenOffset);\n Field.addCustomMetadata(builder, customMetadataOffset);\n return Field.endField(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Buffer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Buffer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Buffer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The relative offset into the shared memory page where the bytes for this\n * buffer starts\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The absolute length (in bytes) of the memory buffer. The memory is found\n * from offset (inclusive) to offset + length (non-inclusive).\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param flatbuffers.Long length\n * @returns flatbuffers.Offset\n */\n static createBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Long, length: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(length);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Schema {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Schema\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Schema {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {\n return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * endianness of the buffer\n * it is Little Endian by default\n * if endianness doesn't match the underlying system then the vectors need to be converted\n *\n * @returns org.apache.arrow.flatbuf.Endianness\n */\n endianness(): org.apache.arrow.flatbuf.Endianness {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Endianness.Little;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n fields(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n fieldsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Endianness endianness\n */\n static addEndianness(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness) {\n builder.addFieldInt16(0, endianness, org.apache.arrow.flatbuf.Endianness.Little);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset fieldsOffset\n */\n static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, fieldsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFieldsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createSchema(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n return Schema.endSchema(builder);\n }\n }\n}\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\nexport namespace org.apache.arrow.flatbuf {\n export import Schema = NS7624605610262437867.org.apache.arrow.flatbuf.Schema;\n}\n/**\n * ----------------------------------------------------------------------\n * The root Message type\n * This union enables us to easily send different message types without\n * redundant storage, and in the future we can easily add new message types.\n *\n * Arrow implementations do not need to implement all of the message types,\n * which may include experimental metadata types. For maximum compatibility,\n * it is best to send data using RecordBatch\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MessageHeader {\n NONE = 0,\n Schema = 1,\n DictionaryBatch = 2,\n RecordBatch = 3,\n Tensor = 4,\n SparseTensor = 5\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Data structures for describing a table row batch (a collection of\n * equal-length Arrow arrays)\n * Metadata about a field at some level of a nested type tree (but not\n * its children).\n *\n * For example, a List with values [[1, 2, 3], null, [4], [5, 6], null]\n * would have {length: 5, null_count: 2} for its List node, and {length: 6,\n * null_count: 0} for its Int16 node, as separate FieldNode structs\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FieldNode {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FieldNode\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FieldNode {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The number of value slots in the Arrow array at this level of a nested\n * tree\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The number of observed nulls. Fields with null_count == 0 may choose not\n * to write their physical validity bitmap out as a materialized buffer,\n * instead setting the length of the bitmap buffer to 0.\n *\n * @returns flatbuffers.Long\n */\n nullCount(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n * @param flatbuffers.Long null_count\n * @returns flatbuffers.Offset\n */\n static createFieldNode(builder: flatbuffers.Builder, length: flatbuffers.Long, null_count: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(null_count);\n builder.writeInt64(length);\n return builder.offset();\n }\n\n }\n}\n/**\n * A data header describing the shared memory layout of a \"record\" or \"row\"\n * batch. Some systems call this a \"row batch\" internally and others a \"record\n * batch\".\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class RecordBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns RecordBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): RecordBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getRootAsRecordBatch(bb: flatbuffers.ByteBuffer, obj?: RecordBatch): RecordBatch {\n return (obj || new RecordBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * number of records / rows. The arrays in the batch should all have this\n * length\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.FieldNode= obj\n * @returns org.apache.arrow.flatbuf.FieldNode\n */\n nodes(index: number, obj?: org.apache.arrow.flatbuf.FieldNode): org.apache.arrow.flatbuf.FieldNode | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.FieldNode).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n nodesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Buffers correspond to the pre-ordered flattened buffer tree\n *\n * The number of buffers appended to this list depends on the schema. For\n * example, most primitive arrays will have 2 buffers, 1 for the validity\n * bitmap and 1 for the values. For struct arrays, there will only be a\n * single buffer for the validity (nulls) bitmap\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Buffer= obj\n * @returns org.apache.arrow.flatbuf.Buffer\n */\n buffers(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Buffer): NS7624605610262437867.org.apache.arrow.flatbuf.Buffer | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Buffer).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n buffersLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n */\n static addLength(builder: flatbuffers.Builder, length: flatbuffers.Long) {\n builder.addFieldInt64(0, length, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nodesOffset\n */\n static addNodes(builder: flatbuffers.Builder, nodesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, nodesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startNodesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset buffersOffset\n */\n static addBuffers(builder: flatbuffers.Builder, buffersOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, buffersOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startBuffersVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createRecordBatch(builder: flatbuffers.Builder, length: flatbuffers.Long, nodesOffset: flatbuffers.Offset, buffersOffset: flatbuffers.Offset): flatbuffers.Offset {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n }\n}\n/**\n * For sending dictionary encoding information. Any Field can be\n * dictionary-encoded, but in this case none of its children may be\n * dictionary-encoded.\n * There is one vector / column per dictionary, but that vector / column\n * may be spread across multiple dictionary batches by using the isDelta\n * flag\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getRootAsDictionaryBatch(bb: flatbuffers.ByteBuffer, obj?: DictionaryBatch): DictionaryBatch {\n return (obj || new DictionaryBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param org.apache.arrow.flatbuf.RecordBatch= obj\n * @returns org.apache.arrow.flatbuf.RecordBatch|null\n */\n data(obj?: org.apache.arrow.flatbuf.RecordBatch): org.apache.arrow.flatbuf.RecordBatch | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.RecordBatch).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id\n *\n * @returns boolean\n */\n isDelta(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dataOffset\n */\n static addData(builder: flatbuffers.Builder, dataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, dataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isDelta\n */\n static addIsDelta(builder: flatbuffers.Builder, isDelta: boolean) {\n builder.addFieldInt8(2, +isDelta, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryBatch(builder: flatbuffers.Builder, id: flatbuffers.Long, dataOffset: flatbuffers.Offset, isDelta: boolean): flatbuffers.Offset {\n DictionaryBatch.startDictionaryBatch(builder);\n DictionaryBatch.addId(builder, id);\n DictionaryBatch.addData(builder, dataOffset);\n DictionaryBatch.addIsDelta(builder, isDelta);\n return DictionaryBatch.endDictionaryBatch(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Message {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Message\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Message {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getRootAsMessage(bb: flatbuffers.ByteBuffer, obj?: Message): Message {\n return (obj || new Message).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MessageHeader\n */\n headerType(): org.apache.arrow.flatbuf.MessageHeader {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.MessageHeader.NONE;\n }\n\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue): NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMessage(builder: flatbuffers.Builder) {\n builder.startObject(5);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MessageHeader headerType\n */\n static addHeaderType(builder: flatbuffers.Builder, headerType: org.apache.arrow.flatbuf.MessageHeader) {\n builder.addFieldInt8(1, headerType, org.apache.arrow.flatbuf.MessageHeader.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset headerOffset\n */\n static addHeader(builder: flatbuffers.Builder, headerOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, headerOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long bodyLength\n */\n static addBodyLength(builder: flatbuffers.Builder, bodyLength: flatbuffers.Long) {\n builder.addFieldInt64(3, bodyLength, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMessage(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishMessageBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createMessage(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, headerType: org.apache.arrow.flatbuf.MessageHeader, headerOffset: flatbuffers.Offset, bodyLength: flatbuffers.Long, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Message.startMessage(builder);\n Message.addVersion(builder, version);\n Message.addHeaderType(builder, headerType);\n Message.addHeader(builder, headerOffset);\n Message.addBodyLength(builder, bodyLength);\n Message.addCustomMetadata(builder, customMetadataOffset);\n return Message.endMessage(builder);\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport * as Schema_ from './fb/Schema';\nimport * as Message_ from './fb/Message';\n\nexport import ArrowType = Schema_.org.apache.arrow.flatbuf.Type;\nexport import DateUnit = Schema_.org.apache.arrow.flatbuf.DateUnit;\nexport import TimeUnit = Schema_.org.apache.arrow.flatbuf.TimeUnit;\nexport import Precision = Schema_.org.apache.arrow.flatbuf.Precision;\nexport import UnionMode = Schema_.org.apache.arrow.flatbuf.UnionMode;\nexport import IntervalUnit = Schema_.org.apache.arrow.flatbuf.IntervalUnit;\nexport import MessageHeader = Message_.org.apache.arrow.flatbuf.MessageHeader;\nexport import MetadataVersion = Schema_.org.apache.arrow.flatbuf.MetadataVersion;\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n /** The default placeholder type */\n NONE = 0,\n /** A NULL type having no physical storage */\n Null = 1,\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Int = 2,\n /** 2, 4, or 8-byte floating point value */\n Float = 3,\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Binary = 4,\n /** UTF8 variable-length string as List */\n Utf8 = 5,\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Bool = 6,\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Decimal = 7,\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Date = 8,\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Time = 9,\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Timestamp = 10,\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Interval = 11,\n /** A list of some logical data type */\n List = 12,\n /** Struct of logical types */\n Struct = 13,\n /** Union of logical types */\n Union = 14,\n /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeBinary = 15,\n /** Fixed-size list. Each value occupies the same number of bytes */\n FixedSizeList = 16,\n /** Map of named logical types */\n Map = 17,\n\n /** Dictionary aka Category type */\n Dictionary = -1,\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26,\n}\n\nexport enum BufferType {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n OFFSET = 0,\n\n /**\n * actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n DATA = 1,\n\n /**\n * Bit vector indicating if each value is null\n */\n VALIDITY = 2,\n\n /**\n * Type vector used in Union type\n */\n TYPE = 3\n }\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function getBool(_data: any, _index: number, byte: number, bit: number) {\n return (byte & 1 << bit) !== 0;\n}\n\n/** @ignore */\nexport function getBit(_data: any, _index: number, byte: number, bit: number): 0 | 1 {\n return (byte & 1 << bit) >> bit as (0 | 1);\n}\n\n/** @ignore */\nexport function setBool(bytes: Uint8Array, index: number, value: any) {\n return value ?\n !!(bytes[index >> 3] |= (1 << (index % 8))) || true :\n !(bytes[index >> 3] &= ~(1 << (index % 8))) && false ;\n}\n\n/** @ignore */\nexport function truncateBitmap(offset: number, length: number, bitmap: Uint8Array) {\n const alignedSize = (bitmap.byteLength + 7) & ~7;\n if (offset > 0 || bitmap.byteLength < alignedSize) {\n const bytes = new Uint8Array(alignedSize);\n // If the offset is a multiple of 8 bits, it's safe to slice the bitmap\n bytes.set(offset % 8 === 0 ? bitmap.subarray(offset >> 3) :\n // Otherwise iterate each bit from the offset and return a new one\n packBools(iterateBits(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\n\n/** @ignore */\nexport function packBools(values: Iterable) {\n let xs: number[] = [];\n let i = 0, bit = 0, byte = 0;\n for (const value of values) {\n value && (byte |= 1 << bit);\n if (++bit === 8) {\n xs[i++] = byte;\n byte = bit = 0;\n }\n }\n if (i === 0 || bit > 0) { xs[i++] = byte; }\n let b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\n\n/** @ignore */\nexport function* iterateBits(bytes: Uint8Array, begin: number, length: number, context: any,\n get: (context: any, index: number, byte: number, bit: number) => T) {\n let bit = begin % 8;\n let byteIndex = begin >> 3;\n let index = 0, remaining = length;\n for (; remaining > 0; bit = 0) {\n let byte = bytes[byteIndex++];\n do {\n yield get(context, index++, byte, bit);\n } while (--remaining > 0 && ++bit < 8);\n }\n}\n\n/**\n * Compute the population count (the number of bits set to 1) for a range of bits in a Uint8Array.\n * @param vector The Uint8Array of bits for which to compute the population count.\n * @param lhs The range's left-hand side (or start) bit\n * @param rhs The range's right-hand side (or end) bit\n */\n/** @ignore */\nexport function popcnt_bit_range(data: Uint8Array, lhs: number, rhs: number): number {\n if (rhs - lhs <= 0) { return 0; }\n // If the bit range is less than one byte, sum the 1 bits in the bit range\n if (rhs - lhs < 8) {\n let sum = 0;\n for (const bit of iterateBits(data, lhs, rhs - lhs, data, getBit)) {\n sum += bit;\n }\n return sum;\n }\n // Get the next lowest multiple of 8 from the right hand side\n const rhsInside = rhs >> 3 << 3;\n // Get the next highest multiple of 8 from the left hand side\n const lhsInside = lhs + (lhs % 8 === 0 ? 0 : 8 - lhs % 8);\n return (\n // Get the popcnt of bits between the left hand side, and the next highest multiple of 8\n popcnt_bit_range(data, lhs, lhsInside) +\n // Get the popcnt of bits between the right hand side, and the next lowest multiple of 8\n popcnt_bit_range(data, rhsInside, rhs) +\n // Get the popcnt of all bits between the left and right hand sides' multiples of 8\n popcnt_array(data, lhsInside >> 3, (rhsInside - lhsInside) >> 3)\n );\n}\n\n/** @ignore */\nexport function popcnt_array(arr: ArrayBufferView, byteOffset?: number, byteLength?: number) {\n let cnt = 0, pos = byteOffset! | 0;\n const view = new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n const len = byteLength === void 0 ? arr.byteLength : pos + byteLength;\n while (len - pos >= 4) {\n cnt += popcnt_uint32(view.getUint32(pos));\n pos += 4;\n }\n while (len - pos >= 2) {\n cnt += popcnt_uint32(view.getUint16(pos));\n pos += 2;\n }\n while (len - pos >= 1) {\n cnt += popcnt_uint32(view.getUint8(pos));\n pos += 1;\n }\n return cnt;\n}\n\n/** @ignore */\nexport function popcnt_uint32(uint32: number): number {\n let i = uint32 | 0;\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n return (((i + (i >>> 4)) & 0x0F0F0F0F) * 0x01010101) >>> 24;\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { Type, Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from './enum';\nimport { DataType, Float, Int, Date_, Interval, Time, Timestamp, Union, } from './type';\n\nexport abstract class Visitor {\n public visitMany(nodes: any[], ...args: any[][]) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n public visit(...args: any[]) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n public getVisitFn(node: any, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n public visitNull (_node: any, ..._args: any[]): any { return null; }\n public visitBool (_node: any, ..._args: any[]): any { return null; }\n public visitInt (_node: any, ..._args: any[]): any { return null; }\n public visitFloat (_node: any, ..._args: any[]): any { return null; }\n public visitUtf8 (_node: any, ..._args: any[]): any { return null; }\n public visitBinary (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeBinary (_node: any, ..._args: any[]): any { return null; }\n public visitDate (_node: any, ..._args: any[]): any { return null; }\n public visitTimestamp (_node: any, ..._args: any[]): any { return null; }\n public visitTime (_node: any, ..._args: any[]): any { return null; }\n public visitDecimal (_node: any, ..._args: any[]): any { return null; }\n public visitList (_node: any, ..._args: any[]): any { return null; }\n public visitStruct (_node: any, ..._args: any[]): any { return null; }\n public visitUnion (_node: any, ..._args: any[]): any { return null; }\n public visitDictionary (_node: any, ..._args: any[]): any { return null; }\n public visitInterval (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeList (_node: any, ..._args: any[]): any { return null; }\n public visitMap (_node: any, ..._args: any[]): any { return null; }\n}\n\n/** @ignore */\nfunction getVisitFn(visitor: Visitor, node: any, throwIfNotFound = true) {\n let fn: any = null;\n let dtype: T['TType'] = Type.NONE;\n // tslint:disable\n if (node instanceof Data ) { dtype = inferDType(node.type as T); }\n else if (node instanceof Vector ) { dtype = inferDType(node.type as T); }\n else if (node instanceof DataType) { dtype = inferDType(node as T); }\n else if (typeof (dtype = node) !== 'number') { dtype = Type[node] as any as T['TType']; }\n\n switch (dtype) {\n case Type.Null: fn = visitor.visitNull; break;\n case Type.Bool: fn = visitor.visitBool; break;\n case Type.Int: fn = visitor.visitInt; break;\n case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;\n case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;\n case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;\n case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;\n case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;\n case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;\n case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;\n case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;\n case Type.Float: fn = visitor.visitFloat; break;\n case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;\n case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;\n case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;\n case Type.Utf8: fn = visitor.visitUtf8; break;\n case Type.Binary: fn = visitor.visitBinary; break;\n case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;\n case Type.Date: fn = visitor.visitDate; break;\n case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;\n case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;\n case Type.Timestamp: fn = visitor.visitTimestamp; break;\n case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;\n case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;\n case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;\n case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;\n case Type.Time: fn = visitor.visitTime; break;\n case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;\n case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;\n case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;\n case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;\n case Type.Decimal: fn = visitor.visitDecimal; break;\n case Type.List: fn = visitor.visitList; break;\n case Type.Struct: fn = visitor.visitStruct; break;\n case Type.Union: fn = visitor.visitUnion; break;\n case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;\n case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;\n case Type.Dictionary: fn = visitor.visitDictionary; break;\n case Type.Interval: fn = visitor.visitInterval; break;\n case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;\n case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;\n case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;\n case Type.Map: fn = visitor.visitMap; break;\n }\n if (typeof fn === 'function') return fn;\n if (!throwIfNotFound) return () => null;\n throw new Error(`Unrecognized type '${Type[dtype]}'`);\n}\n\n/** @ignore */\nfunction inferDType(type: T): Type {\n switch (type.typeId) {\n case Type.Null: return Type.Null;\n case Type.Int:\n const { bitWidth, isSigned } = (type as any as Int);\n switch (bitWidth) {\n case 8: return isSigned ? Type.Int8 : Type.Uint8 ;\n case 16: return isSigned ? Type.Int16 : Type.Uint16;\n case 32: return isSigned ? Type.Int32 : Type.Uint32;\n case 64: return isSigned ? Type.Int64 : Type.Uint64;\n }\n return Type.Int;\n case Type.Float:\n switch((type as any as Float).precision) {\n case Precision.HALF: return Type.Float16;\n case Precision.SINGLE: return Type.Float32;\n case Precision.DOUBLE: return Type.Float64;\n }\n return Type.Float;\n case Type.Binary: return Type.Binary;\n case Type.Utf8: return Type.Utf8;\n case Type.Bool: return Type.Bool;\n case Type.Decimal: return Type.Decimal;\n case Type.Time:\n switch ((type as any as Time).unit) {\n case TimeUnit.SECOND: return Type.TimeSecond;\n case TimeUnit.MILLISECOND: return Type.TimeMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimeMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimeNanosecond;\n }\n return Type.Time;\n case Type.Timestamp:\n switch ((type as any as Timestamp).unit) {\n case TimeUnit.SECOND: return Type.TimestampSecond;\n case TimeUnit.MILLISECOND: return Type.TimestampMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimestampMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimestampNanosecond;\n }\n return Type.Timestamp;\n case Type.Date:\n switch ((type as any as Date_).unit) {\n case DateUnit.DAY: return Type.DateDay;\n case DateUnit.MILLISECOND: return Type.DateMillisecond;\n }\n return Type.Date;\n case Type.Interval:\n switch ((type as any as Interval).unit) {\n case IntervalUnit.DAY_TIME: return Type.IntervalDayTime;\n case IntervalUnit.YEAR_MONTH: return Type.IntervalYearMonth;\n }\n return Type.Interval;\n case Type.Map: return Type.Map;\n case Type.List: return Type.List;\n case Type.Struct: return Type.Struct;\n case Type.Union:\n switch ((type as any as Union).mode) {\n case UnionMode.Dense: return Type.DenseUnion;\n case UnionMode.Sparse: return Type.SparseUnion;\n }\n return Type.Union;\n case Type.FixedSizeBinary: return Type.FixedSizeBinary;\n case Type.FixedSizeList: return Type.FixedSizeList;\n case Type.Dictionary: return Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${Type[type.typeId]}'`);\n}\n\nexport interface Visitor {\n visitNull (node: any, ...args: any[]): any;\n visitBool (node: any, ...args: any[]): any;\n visitInt (node: any, ...args: any[]): any;\n visitInt8? (node: any, ...args: any[]): any;\n visitInt16? (node: any, ...args: any[]): any;\n visitInt32? (node: any, ...args: any[]): any;\n visitInt64? (node: any, ...args: any[]): any;\n visitUint8? (node: any, ...args: any[]): any;\n visitUint16? (node: any, ...args: any[]): any;\n visitUint32? (node: any, ...args: any[]): any;\n visitUint64? (node: any, ...args: any[]): any;\n visitFloat (node: any, ...args: any[]): any;\n visitFloat16? (node: any, ...args: any[]): any;\n visitFloat32? (node: any, ...args: any[]): any;\n visitFloat64? (node: any, ...args: any[]): any;\n visitUtf8 (node: any, ...args: any[]): any;\n visitBinary (node: any, ...args: any[]): any;\n visitFixedSizeBinary (node: any, ...args: any[]): any;\n visitDate (node: any, ...args: any[]): any;\n visitDateDay? (node: any, ...args: any[]): any;\n visitDateMillisecond? (node: any, ...args: any[]): any;\n visitTimestamp (node: any, ...args: any[]): any;\n visitTimestampSecond? (node: any, ...args: any[]): any;\n visitTimestampMillisecond? (node: any, ...args: any[]): any;\n visitTimestampMicrosecond? (node: any, ...args: any[]): any;\n visitTimestampNanosecond? (node: any, ...args: any[]): any;\n visitTime (node: any, ...args: any[]): any;\n visitTimeSecond? (node: any, ...args: any[]): any;\n visitTimeMillisecond? (node: any, ...args: any[]): any;\n visitTimeMicrosecond? (node: any, ...args: any[]): any;\n visitTimeNanosecond? (node: any, ...args: any[]): any;\n visitDecimal (node: any, ...args: any[]): any;\n visitList (node: any, ...args: any[]): any;\n visitStruct (node: any, ...args: any[]): any;\n visitUnion (node: any, ...args: any[]): any;\n visitDenseUnion? (node: any, ...args: any[]): any;\n visitSparseUnion? (node: any, ...args: any[]): any;\n visitDictionary (node: any, ...args: any[]): any;\n visitInterval (node: any, ...args: any[]): any;\n visitIntervalDayTime? (node: any, ...args: any[]): any;\n visitIntervalYearMonth? (node: any, ...args: any[]): any;\n visitFixedSizeList (node: any, ...args: any[]): any;\n visitMap (node: any, ...args: any[]): any;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Visitor.prototype as any).visitInt8 = null;\n(Visitor.prototype as any).visitInt16 = null;\n(Visitor.prototype as any).visitInt32 = null;\n(Visitor.prototype as any).visitInt64 = null;\n(Visitor.prototype as any).visitUint8 = null;\n(Visitor.prototype as any).visitUint16 = null;\n(Visitor.prototype as any).visitUint32 = null;\n(Visitor.prototype as any).visitUint64 = null;\n(Visitor.prototype as any).visitFloat16 = null;\n(Visitor.prototype as any).visitFloat32 = null;\n(Visitor.prototype as any).visitFloat64 = null;\n(Visitor.prototype as any).visitDateDay = null;\n(Visitor.prototype as any).visitDateMillisecond = null;\n(Visitor.prototype as any).visitTimestampSecond = null;\n(Visitor.prototype as any).visitTimestampMillisecond = null;\n(Visitor.prototype as any).visitTimestampMicrosecond = null;\n(Visitor.prototype as any).visitTimestampNanosecond = null;\n(Visitor.prototype as any).visitTimeSecond = null;\n(Visitor.prototype as any).visitTimeMillisecond = null;\n(Visitor.prototype as any).visitTimeMicrosecond = null;\n(Visitor.prototype as any).visitTimeNanosecond = null;\n(Visitor.prototype as any).visitDenseUnion = null;\n(Visitor.prototype as any).visitSparseUnion = null;\n(Visitor.prototype as any).visitIntervalDayTime = null;\n(Visitor.prototype as any).visitIntervalYearMonth = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface TypeComparator extends Visitor {\n visit(type: T, other?: DataType | null): other is T;\n visitMany(nodes: T[], others?: DataType[] | null): boolean[];\n getVisitFn(node: VectorType | Data | T): (other?: DataType | null) => other is T;\n visitNull (type: T, other?: DataType | null): other is T;\n visitBool (type: T, other?: DataType | null): other is T;\n visitInt (type: T, other?: DataType | null): other is T;\n visitInt8 (type: T, other?: DataType | null): other is T;\n visitInt16 (type: T, other?: DataType | null): other is T;\n visitInt32 (type: T, other?: DataType | null): other is T;\n visitInt64 (type: T, other?: DataType | null): other is T;\n visitUint8 (type: T, other?: DataType | null): other is T;\n visitUint16 (type: T, other?: DataType | null): other is T;\n visitUint32 (type: T, other?: DataType | null): other is T;\n visitUint64 (type: T, other?: DataType | null): other is T;\n visitFloat (type: T, other?: DataType | null): other is T;\n visitFloat16 (type: T, other?: DataType | null): other is T;\n visitFloat32 (type: T, other?: DataType | null): other is T;\n visitFloat64 (type: T, other?: DataType | null): other is T;\n visitUtf8 (type: T, other?: DataType | null): other is T;\n visitBinary (type: T, other?: DataType | null): other is T;\n visitFixedSizeBinary (type: T, other?: DataType | null): other is T;\n visitDate (type: T, other?: DataType | null): other is T;\n visitDateDay (type: T, other?: DataType | null): other is T;\n visitDateMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestamp (type: T, other?: DataType | null): other is T;\n visitTimestampSecond (type: T, other?: DataType | null): other is T;\n visitTimestampMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestampMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimestampNanosecond (type: T, other?: DataType | null): other is T;\n visitTime (type: T, other?: DataType | null): other is T;\n visitTimeSecond (type: T, other?: DataType | null): other is T;\n visitTimeMillisecond (type: T, other?: DataType | null): other is T;\n visitTimeMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimeNanosecond (type: T, other?: DataType | null): other is T;\n visitDecimal (type: T, other?: DataType | null): other is T;\n visitList (type: T, other?: DataType | null): other is T;\n visitStruct (type: T, other?: DataType | null): other is T;\n visitUnion (type: T, other?: DataType | null): other is T;\n visitDenseUnion (type: T, other?: DataType | null): other is T;\n visitSparseUnion (type: T, other?: DataType | null): other is T;\n visitDictionary (type: T, other?: DataType | null): other is T;\n visitInterval (type: T, other?: DataType | null): other is T;\n visitIntervalDayTime (type: T, other?: DataType | null): other is T;\n visitIntervalYearMonth (type: T, other?: DataType | null): other is T;\n visitFixedSizeList (type: T, other?: DataType | null): other is T;\n visitMap (type: T, other?: DataType | null): other is T;\n}\n\n/** @ignore */\nexport class TypeComparator extends Visitor {\n compareSchemas(schema: Schema, other?: Schema | null): other is Schema {\n return (schema === other) || (\n other instanceof schema.constructor &&\n instance.compareFields(schema.fields, other.fields)\n );\n }\n compareFields(fields: Field[], others?: Field[] | null): others is Field[] {\n return (fields === others) || (\n Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => instance.compareField(f, others[i]))\n );\n }\n compareField(field: Field, other?: Field | null): other is Field {\n return (field === other) || (\n other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n instance.visit(field.type, other.type)\n );\n }\n}\n\nfunction compareConstructor(type: T, other?: DataType | null): other is T {\n return other instanceof type.constructor;\n}\n\nfunction compareAny(type: T, other?: DataType | null): other is T {\n return (type === other) || compareConstructor(type, other);\n}\n\nfunction compareInt(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.bitWidth === other.bitWidth &&\n type.isSigned === other.isSigned\n );\n}\n\nfunction compareFloat(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.precision === other.precision\n );\n}\n\nfunction compareFixedSizeBinary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.byteWidth === other.byteWidth\n );\n}\n\nfunction compareDate(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareTimestamp(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.timezone === other.timezone\n );\n}\n\nfunction compareTime(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.bitWidth === other.bitWidth\n );\n}\n\nfunction compareList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareStruct(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareUnion(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.mode === other.mode &&\n type.typeIds.every((x, i) => x === other.typeIds[i]) &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareDictionary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.id === other.id &&\n type.isOrdered === other.isOrdered &&\n instance.visit( type.indices, other.indices) &&\n instance.visit(type.dictionary, other.dictionary)\n );\n}\n\nfunction compareInterval(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareFixedSizeList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.listSize === other.listSize &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareMap(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.keysSorted === other.keysSorted &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nTypeComparator.prototype.visitNull = compareAny;\nTypeComparator.prototype.visitBool = compareAny;\nTypeComparator.prototype.visitInt = compareInt;\nTypeComparator.prototype.visitInt8 = compareInt;\nTypeComparator.prototype.visitInt16 = compareInt;\nTypeComparator.prototype.visitInt32 = compareInt;\nTypeComparator.prototype.visitInt64 = compareInt;\nTypeComparator.prototype.visitUint8 = compareInt;\nTypeComparator.prototype.visitUint16 = compareInt;\nTypeComparator.prototype.visitUint32 = compareInt;\nTypeComparator.prototype.visitUint64 = compareInt;\nTypeComparator.prototype.visitFloat = compareFloat;\nTypeComparator.prototype.visitFloat16 = compareFloat;\nTypeComparator.prototype.visitFloat32 = compareFloat;\nTypeComparator.prototype.visitFloat64 = compareFloat;\nTypeComparator.prototype.visitUtf8 = compareAny;\nTypeComparator.prototype.visitBinary = compareAny;\nTypeComparator.prototype.visitFixedSizeBinary = compareFixedSizeBinary;\nTypeComparator.prototype.visitDate = compareDate;\nTypeComparator.prototype.visitDateDay = compareDate;\nTypeComparator.prototype.visitDateMillisecond = compareDate;\nTypeComparator.prototype.visitTimestamp = compareTimestamp;\nTypeComparator.prototype.visitTimestampSecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMillisecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMicrosecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampNanosecond = compareTimestamp;\nTypeComparator.prototype.visitTime = compareTime;\nTypeComparator.prototype.visitTimeSecond = compareTime;\nTypeComparator.prototype.visitTimeMillisecond = compareTime;\nTypeComparator.prototype.visitTimeMicrosecond = compareTime;\nTypeComparator.prototype.visitTimeNanosecond = compareTime;\nTypeComparator.prototype.visitDecimal = compareAny;\nTypeComparator.prototype.visitList = compareList;\nTypeComparator.prototype.visitStruct = compareStruct;\nTypeComparator.prototype.visitUnion = compareUnion;\nTypeComparator.prototype.visitDenseUnion = compareUnion;\nTypeComparator.prototype.visitSparseUnion = compareUnion;\nTypeComparator.prototype.visitDictionary = compareDictionary;\nTypeComparator.prototype.visitInterval = compareInterval;\nTypeComparator.prototype.visitIntervalDayTime = compareInterval;\nTypeComparator.prototype.visitIntervalYearMonth = compareInterval;\nTypeComparator.prototype.visitFixedSizeList = compareFixedSizeList;\nTypeComparator.prototype.visitMap = compareMap;\n\n/** @ignore */\nexport const instance = new TypeComparator();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport { Field } from './schema';\nimport { flatbuffers } from 'flatbuffers';\nimport { TypedArrayConstructor } from './interfaces';\nimport { VectorType as V, TypeToDataType } from './interfaces';\nimport { instance as comparer } from './visitor/typecomparator';\n\nimport Long = flatbuffers.Long;\nimport {\n Type,\n Precision, UnionMode,\n DateUnit, TimeUnit, IntervalUnit\n} from './enum';\n\n/** @ignore */\nexport type TimeBitWidth = 32 | 64;\n/** @ignore */\nexport type IntBitWidth = 8 | 16 | 32 | 64;\n/** @ignore */\nexport type IsSigned = { 'true': true; 'false': false };\n/** @ignore */\nexport type RowLike =\n ( Iterable<[string, T[keyof T]['TValue'] | null]> )\n & { [P in keyof T]: T[P]['TValue'] | null }\n & { get(key: K): T[K]['TValue'] | null; }\n & { set(key: K, val: T[K]['TValue'] | null): void; }\n ;\n\n/** @ignore */\nexport type MapLike =\n { [P in K['TValue']]: V['TValue'] | null }\n & ( Map )\n ;\n\nexport interface DataType {\n readonly TType: TType;\n readonly TArray: any;\n readonly TValue: any;\n readonly ArrayType: any;\n readonly children: Field[];\n}\n\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nexport abstract class DataType {\n\n // @ts-ignore\n public [Symbol.toStringTag]: string;\n\n /** @nocollapse */ static isNull (x: any): x is Null { return x && x.typeId === Type.Null; }\n /** @nocollapse */ static isInt (x: any): x is Int_ { return x && x.typeId === Type.Int; }\n /** @nocollapse */ static isFloat (x: any): x is Float { return x && x.typeId === Type.Float; }\n /** @nocollapse */ static isBinary (x: any): x is Binary { return x && x.typeId === Type.Binary; }\n /** @nocollapse */ static isUtf8 (x: any): x is Utf8 { return x && x.typeId === Type.Utf8; }\n /** @nocollapse */ static isBool (x: any): x is Bool { return x && x.typeId === Type.Bool; }\n /** @nocollapse */ static isDecimal (x: any): x is Decimal { return x && x.typeId === Type.Decimal; }\n /** @nocollapse */ static isDate (x: any): x is Date_ { return x && x.typeId === Type.Date; }\n /** @nocollapse */ static isTime (x: any): x is Time_ { return x && x.typeId === Type.Time; }\n /** @nocollapse */ static isTimestamp (x: any): x is Timestamp_ { return x && x.typeId === Type.Timestamp; }\n /** @nocollapse */ static isInterval (x: any): x is Interval_ { return x && x.typeId === Type.Interval; }\n /** @nocollapse */ static isList (x: any): x is List { return x && x.typeId === Type.List; }\n /** @nocollapse */ static isStruct (x: any): x is Struct { return x && x.typeId === Type.Struct; }\n /** @nocollapse */ static isUnion (x: any): x is Union_ { return x && x.typeId === Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary (x: any): x is FixedSizeBinary { return x && x.typeId === Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList (x: any): x is FixedSizeList { return x && x.typeId === Type.FixedSizeList; }\n /** @nocollapse */ static isMap (x: any): x is Map_ { return x && x.typeId === Type.Map; }\n /** @nocollapse */ static isDictionary (x: any): x is Dictionary { return x && x.typeId === Type.Dictionary; }\n\n public get typeId(): TType { return Type.NONE; }\n public compareTo(other: DataType): other is TypeToDataType {\n return comparer.visit(this, other);\n }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n ( proto).children = null;\n ( proto).ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType { TArray: void; TValue: null; }\n/** @ignore */\nexport class Null extends DataType {\n public toString() { return `Null`; }\n public get typeId() { return Type.Null as Type.Null; }\n protected static [Symbol.toStringTag] = ((proto: Null) => {\n return proto[Symbol.toStringTag] = 'Null';\n })(Null.prototype);\n}\n\n/** @ignore */\ntype Ints = Type.Int | Type.Int8 | Type.Int16 | Type.Int32 | Type.Int64 | Type.Uint8 | Type.Uint16 | Type.Uint32 | Type.Uint64;\n/** @ignore */\ntype IType = {\n [Type.Int ]: { bitWidth: IntBitWidth; isSigned: true | false; TArray: IntArray; TValue: number | bigint | Int32Array | Uint32Array; };\n [Type.Int8 ]: { bitWidth: 8; isSigned: true; TArray: Int8Array; TValue: number; };\n [Type.Int16 ]: { bitWidth: 16; isSigned: true; TArray: Int16Array; TValue: number; };\n [Type.Int32 ]: { bitWidth: 32; isSigned: true; TArray: Int32Array; TValue: number; };\n [Type.Int64 ]: { bitWidth: 64; isSigned: true; TArray: Int32Array; TValue: bigint | Int32Array | Uint32Array; };\n [Type.Uint8 ]: { bitWidth: 8; isSigned: false; TArray: Uint8Array; TValue: number; };\n [Type.Uint16]: { bitWidth: 16; isSigned: false; TArray: Uint16Array; TValue: number; };\n [Type.Uint32]: { bitWidth: 32; isSigned: false; TArray: Uint32Array; TValue: number; };\n [Type.Uint64]: { bitWidth: 64; isSigned: false; TArray: Uint32Array; TValue: bigint | Int32Array | Uint32Array; };\n};\n\n/** @ignore */\ninterface Int_ extends DataType { TArray: IType[T]['TArray']; TValue: IType[T]['TValue']; }\n/** @ignore */\nclass Int_ extends DataType {\n constructor(public readonly isSigned: IType[T]['isSigned'],\n public readonly bitWidth: IType[T]['bitWidth']) {\n super();\n }\n public get typeId() { return Type.Int as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.bitWidth) {\n case 8: return this.isSigned ? Int8Array : Uint8Array;\n case 16: return this.isSigned ? Int16Array : Uint16Array;\n case 32: return this.isSigned ? Int32Array : Uint32Array;\n case 64: return this.isSigned ? Int32Array : Uint32Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n protected static [Symbol.toStringTag] = ((proto: Int_) => {\n ( proto).isSigned = null;\n ( proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n })(Int_.prototype);\n}\n\nexport { Int_ as Int };\n\n/** @ignore */\nexport class Int8 extends Int_ { constructor() { super(true, 8); } }\n/** @ignore */\nexport class Int16 extends Int_ { constructor() { super(true, 16); } }\n/** @ignore */\nexport class Int32 extends Int_ { constructor() { super(true, 32); } }\n/** @ignore */\nexport class Int64 extends Int_ { constructor() { super(true, 64); } }\n/** @ignore */\nexport class Uint8 extends Int_ { constructor() { super(false, 8); } }\n/** @ignore */\nexport class Uint16 extends Int_ { constructor() { super(false, 16); } }\n/** @ignore */\nexport class Uint32 extends Int_ { constructor() { super(false, 32); } }\n/** @ignore */\nexport class Uint64 extends Int_ { constructor() { super(false, 64); } }\n\nObject.defineProperty(Int8.prototype, 'ArrayType', { value: Int8Array });\nObject.defineProperty(Int16.prototype, 'ArrayType', { value: Int16Array });\nObject.defineProperty(Int32.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Int64.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Uint8.prototype, 'ArrayType', { value: Uint8Array });\nObject.defineProperty(Uint16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Uint32.prototype, 'ArrayType', { value: Uint32Array });\nObject.defineProperty(Uint64.prototype, 'ArrayType', { value: Uint32Array });\n\n/** @ignore */\ntype Floats = Type.Float | Type.Float16 | Type.Float32 | Type.Float64;\n/** @ignore */\ntype FType = {\n [Type.Float ]: { precision: Precision; TArray: FloatArray; TValue: number; };\n [Type.Float16]: { precision: Precision.HALF; TArray: Uint16Array; TValue: number; };\n [Type.Float32]: { precision: Precision.SINGLE; TArray: Float32Array; TValue: number; };\n [Type.Float64]: { precision: Precision.DOUBLE; TArray: Float64Array; TValue: number; };\n};\n\n/** @ignore */\nexport interface Float extends DataType { TArray: FType[T]['TArray']; TValue: number; }\n/** @ignore */\nexport class Float extends DataType {\n constructor(public readonly precision: Precision) {\n super();\n }\n public get typeId() { return Type.Float as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `Float${(this.precision << 5) || 16}`; }\n protected static [Symbol.toStringTag] = ((proto: Float) => {\n ( proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float { constructor() { super(Precision.DOUBLE); } }\n\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n\n/** @ignore */\nexport interface Binary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Binary extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Binary as Type.Binary; }\n public toString() { return `Binary`; }\n protected static [Symbol.toStringTag] = ((proto: Binary) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface Utf8 extends DataType { TArray: Uint8Array; TValue: string; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Utf8 extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Utf8 as Type.Utf8; }\n public toString() { return `Utf8`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Bool extends DataType { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Bool extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Bool as Type.Bool; }\n public toString() { return `Bool`; }\n protected static [Symbol.toStringTag] = ((proto: Bool) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Decimal extends DataType {\n constructor(public readonly scale: number,\n public readonly precision: number) {\n super();\n }\n public get typeId() { return Type.Decimal as Type.Decimal; }\n public toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n protected static [Symbol.toStringTag] = ((proto: Decimal) => {\n ( proto).scale = null;\n ( proto).precision = null;\n ( proto).ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n })(Decimal.prototype);\n}\n\n/** @ignore */\nexport type Dates = Type.Date | Type.DateDay | Type.DateMillisecond;\n/** @ignore */\nexport interface Date_ extends DataType { TArray: Int32Array; TValue: Date; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Date_ extends DataType {\n constructor(public readonly unit: DateUnit) {\n super();\n }\n public get typeId() { return Type.Date as T; }\n public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Date_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_ { constructor() { super(DateUnit.DAY); } }\n/** @ignore */\nexport class DateMillisecond extends Date_ { constructor() { super(DateUnit.MILLISECOND); } }\n\n/** @ignore */\ntype Times = Type.Time | Type.TimeSecond | Type.TimeMillisecond | Type.TimeMicrosecond | Type.TimeNanosecond;\n/** @ignore */\ntype TimesType = {\n [Type.Time ]: { unit: TimeUnit; TValue: number | Int32Array };\n [Type.TimeSecond ]: { unit: TimeUnit.SECOND; TValue: number; };\n [Type.TimeMillisecond]: { unit: TimeUnit.MILLISECOND; TValue: number; };\n [Type.TimeMicrosecond]: { unit: TimeUnit.MICROSECOND; TValue: Int32Array; };\n [Type.TimeNanosecond ]: { unit: TimeUnit.NANOSECOND; TValue: Int32Array; };\n};\n\n/** @ignore */\ninterface Time_ extends DataType { TArray: Int32Array; TValue: TimesType[T]['TValue']; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Time_ extends DataType {\n constructor(public readonly unit: TimesType[T]['unit'],\n public readonly bitWidth: TimeBitWidth) {\n super();\n }\n public get typeId() { return Type.Time as T; }\n public toString() { return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Time_) => {\n ( proto).unit = null;\n ( proto).bitWidth = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Time';\n })(Time_.prototype);\n}\n\nexport { Time_ as Time };\n\n/** @ignore */\nexport class TimeSecond extends Time_ { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_ { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_ { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_ { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_ extends DataType { TArray: Int32Array; TValue: number; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Timestamp_ extends DataType {\n constructor(public readonly unit: TimeUnit,\n public readonly timezone?: string | null) {\n super();\n }\n public get typeId() { return Type.Timestamp as T; }\n public toString() { return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n protected static [Symbol.toStringTag] = ((proto: Timestamp_) => {\n ( proto).unit = null;\n ( proto).timezone = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n })(Timestamp_.prototype);\n}\n\nexport { Timestamp_ as Timestamp };\n\n/** @ignore */\nexport class TimestampSecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth;\n/** @ignore */\ninterface Interval_ extends DataType { TArray: Int32Array; TValue: Int32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Interval_ extends DataType {\n constructor(public readonly unit: IntervalUnit) {\n super();\n }\n public get typeId() { return Type.Interval as T; }\n public toString() { return `Interval<${IntervalUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Interval_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n })(Interval_.prototype);\n}\n\nexport { Interval_ as Interval };\n\n/** @ignore */\nexport class IntervalDayTime extends Interval_ { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_ { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n\n/** @ignore */\nexport interface List extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class List extends DataType {\n constructor(child: Field) {\n super();\n this.children = [child];\n }\n public readonly children: Field[];\n public get typeId() { return Type.List as Type.List; }\n public toString() { return `List<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface Struct extends DataType { TArray: IterableArrayLike>; TValue: RowLike; dataTypes: T; }\n/** @ignore */\nexport class Struct extends DataType {\n public readonly children: Field[];\n constructor(children: Field[]) {\n super();\n this.children = children;\n }\n public get typeId() { return Type.Struct as Type.Struct; }\n public toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Struct) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n })(Struct.prototype);\n}\n\n/** @ignore */\ntype Unions = Type.Union | Type.DenseUnion | Type.SparseUnion;\n/** @ignore */\ninterface Union_ extends DataType { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Union_ extends DataType {\n public readonly mode: UnionMode;\n public readonly typeIds: Int32Array;\n public readonly children: Field[];\n public readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field[]) {\n super();\n this.mode = mode;\n this.children = children;\n this.typeIds = typeIds = Int32Array.from(typeIds);\n this.typeIdToChildIndex = typeIds.reduce((typeIdToChildIndex, typeId, idx) => {\n return (typeIdToChildIndex[typeId] = idx) && typeIdToChildIndex || typeIdToChildIndex;\n }, Object.create(null) as { [key: number]: number });\n }\n public get typeId() { return Type.Union as T; }\n public toString() { return `${this[Symbol.toStringTag]}<${\n this.children.map((x) => `${x.type}`).join(` | `)\n }>`; }\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\n ( proto).mode = null;\n ( proto).typeIds = null;\n ( proto).children = null;\n ( proto).typeIdToChildIndex = null;\n ( proto).ArrayType = Int8Array;\n return proto[Symbol.toStringTag] = 'Union';\n })(Union_.prototype);\n}\n\nexport { Union_ as Union };\n\n/** @ignore */\nexport class DenseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class FixedSizeBinary extends DataType {\n constructor(public readonly byteWidth: number) {\n super();\n }\n public get typeId() { return Type.FixedSizeBinary as Type.FixedSizeBinary; }\n public toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeBinary) => {\n ( proto).byteWidth = null;\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class FixedSizeList extends DataType {\n public readonly children: Field[];\n constructor(public readonly listSize: number, child: Field) {\n super();\n this.children = [child];\n }\n public get typeId() { return Type.FixedSizeList as Type.FixedSizeList; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n public toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeList) => {\n ( proto).children = null;\n ( proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_ extends DataType {\n TArray: IterableArrayLike>;\n TChild: Struct<{ key: TKey, value: TValue }>;\n TValue: MapLike;\n}\n\n/** @ignore */\nexport class Map_ extends DataType {\n constructor(child: Field>, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n public readonly keysSorted: boolean;\n public readonly children: Field>[];\n public get typeId() { return Type.Map as Type.Map; }\n public get keyType(): TKey { return this.children[0].type.children[0].type as TKey; }\n public get valueType(): TValue { return this.children[0].type.children[1].type as TValue; }\n public toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Map_) => {\n ( proto).children = null;\n ( proto).keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n })(Map_.prototype);\n}\n\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n\n/** @ignore */\nexport type TKeys = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32;\n\n/** @ignore */\nexport interface Dictionary extends DataType { TArray: TKey['TArray']; TValue: T['TValue']; }\n/** @ignore */\nexport class Dictionary extends DataType {\n public readonly id: number;\n public readonly indices: TKey;\n public readonly dictionary: T;\n public readonly isOrdered: boolean;\n constructor(dictionary: T, indices: TKey, id?: Long | number | null, isOrdered?: boolean | null) {\n super();\n this.indices = indices;\n this.dictionary = dictionary;\n this.isOrdered = isOrdered || false;\n this.id = id == null ? getId() : typeof id === 'number' ? id : id.low;\n }\n public get typeId() { return Type.Dictionary as Type.Dictionary; }\n public get children() { return this.dictionary.children; }\n public get valueType(): T { return this.dictionary as T; }\n public get ArrayType(): T['ArrayType'] { return this.dictionary.ArrayType; }\n public toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n protected static [Symbol.toStringTag] = ((proto: Dictionary) => {\n ( proto).id = null;\n ( proto).indices = null;\n ( proto).isOrdered = null;\n ( proto).dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n })(Dictionary.prototype);\n}\n\n/** @ignore */\nexport interface IterableArrayLike extends ArrayLike, Iterable {}\n/** @ignore */\nexport type FloatArray = Uint16Array | Float32Array | Float64Array;\n/** @ignore */\nexport type IntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;\n\n/** @ignore */\nexport function strideForType(type: DataType) {\n let t: any = type;\n switch (type.typeId) {\n case Type.Decimal: return 4;\n case Type.Timestamp: return 2;\n case Type.Date: return 1 + (t as Date_).unit;\n case Type.Interval: return 1 + (t as Interval_).unit;\n case Type.Int: return 1 + +((t as Int_).bitWidth > 32);\n case Type.Time: return 1 + +((t as Time_).bitWidth > 32);\n case Type.FixedSizeList: return (t as FixedSizeList).listSize;\n case Type.FixedSizeBinary: return (t as FixedSizeBinary).byteWidth;\n default: return 1;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { truncateBitmap } from './util/bit';\nimport { popcnt_bit_range } from './util/bit';\nimport { BufferType, UnionMode, Type } from './enum';\nimport { DataType, SparseUnion, DenseUnion, strideForType } from './type';\nimport { toArrayBufferView, toUint8Array, toInt32Array } from './util/buffer';\nimport {\n Dictionary,\n Null, Int, Float,\n Binary, Bool, Utf8, Decimal,\n Date_, Time, Timestamp, Interval,\n List, Struct, Union, FixedSizeBinary, FixedSizeList, Map_,\n} from './type';\n\n// When slicing, we do not know the null count of the sliced range without\n// doing some computation. To avoid doing this eagerly, we set the null count\n// to -1 (any negative number will do). When Vector.nullCount is called the\n// first time, the null count will be computed. See ARROW-33\n/** @ignore */ export type kUnknownNullCount = -1;\n/** @ignore */ export const kUnknownNullCount = -1;\n\n/** @ignore */ export type NullBuffer = Uint8Array | null | undefined;\n/** @ignore */ export type TypeIdsBuffer = Int8Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type DataBuffer = T['TArray'] | ArrayLike | Iterable | undefined;\n\n/** @ignore */\nexport interface Buffers {\n [BufferType.OFFSET]: Int32Array;\n [BufferType.DATA]: T['TArray'];\n [BufferType.VALIDITY]: Uint8Array;\n [BufferType.TYPE]: T['TArray'];\n}\n\n/** @ignore */\nexport interface Data {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Data {\n\n public readonly type: T;\n public readonly length: number;\n public readonly offset: number;\n public readonly stride: number;\n public readonly childData: Data[];\n\n /**\n * The dictionary for this Vector, if any. Only used for Dictionary type.\n */\n public dictionary?: Vector;\n\n public readonly values: Buffers[BufferType.DATA];\n // @ts-ignore\n public readonly typeIds: Buffers[BufferType.TYPE];\n // @ts-ignore\n public readonly nullBitmap: Buffers[BufferType.VALIDITY];\n // @ts-ignore\n public readonly valueOffsets: Buffers[BufferType.OFFSET];\n\n public get typeId(): T['TType'] { return this.type.typeId; }\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n public get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds] as Buffers;\n }\n public get byteLength(): number {\n let byteLength = 0;\n let { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n return this.childData.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n\n protected _nullCount: number | kUnknownNullCount;\n\n public get nullCount() {\n let nullCount = this._nullCount;\n let nullBitmap: Uint8Array | undefined;\n if (nullCount <= kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = this.length - popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n\n constructor(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector) {\n this.type = type;\n this.dictionary = dictionary;\n this.offset = Math.floor(Math.max(offset || 0, 0));\n this.length = Math.floor(Math.max(length || 0, 0));\n this._nullCount = Math.floor(Math.max(nullCount || 0, -1));\n this.childData = (childData || []).map((x) => x instanceof Data ? x : x.data) as Data[];\n let buffer: Buffers[keyof Buffers];\n if (buffers instanceof Data) {\n this.stride = buffers.stride;\n this.values = buffers.values;\n this.typeIds = buffers.typeIds;\n this.nullBitmap = buffers.nullBitmap;\n this.valueOffsets = buffers.valueOffsets;\n } else {\n this.stride = strideForType(type);\n if (buffers) {\n (buffer = (buffers as Buffers)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers)[3]) && (this.typeIds = buffer);\n }\n }\n }\n\n public clone(type: R, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers: Buffers = this, childData: (Data | Vector)[] = this.childData) {\n return new Data(type, offset, length, nullCount, buffers, childData, this.dictionary);\n }\n\n public slice(offset: number, length: number): Data {\n const { stride, typeId, childData } = this;\n // +true === 1, +false === 0, so this means\n // we keep nullCount at 0 if it's already 0,\n // otherwise set to the invalidated flag -1\n const nullCount = +(this._nullCount === 0) - 1;\n const childStride = typeId === 16 /* FixedSizeList */ ? stride : 1;\n const buffers = this._sliceBuffers(offset, length, stride, typeId);\n return this.clone(this.type, this.offset + offset, length, nullCount, buffers,\n // Don't slice children if we have value offsets (the variable-width types)\n (!childData.length || this.valueOffsets) ? childData : this._sliceChildren(childData, childStride * offset, childStride * length));\n }\n\n public _changeLengthAndBackfillNullBitmap(newLength: number): Data {\n if (this.typeId === Type.Null) {\n return this.clone(this.type, 0, newLength, 0);\n }\n const { length, nullCount } = this;\n // start initialized with 0s (nulls), then fill from 0 to length with 1s (not null)\n const bitmap = new Uint8Array(((newLength + 63) & ~63) >> 3).fill(255, 0, length >> 3);\n // set all the bits in the last byte (up to bit `length - length % 8`) to 1 (not null)\n bitmap[length >> 3] = (1 << (length - (length & ~7))) - 1;\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (nullCount > 0) {\n bitmap.set(truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers);\n }\n\n protected _sliceBuffers(offset: number, length: number, stride: number, typeId: T['TType']): Buffers {\n let arr: any, { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[BufferType.TYPE]) && (buffers[BufferType.TYPE] = arr.subarray(offset, offset + length));\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[BufferType.OFFSET]) && (buffers[BufferType.OFFSET] = arr.subarray(offset, offset + length + 1)) ||\n // Otherwise if no offsets, slice the data buffer. Don't slice the data vector for Booleans, since the offset goes by bits not bytes\n (arr = buffers[BufferType.DATA]) && (buffers[BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n return buffers;\n }\n\n protected _sliceChildren(childData: Data[], offset: number, length: number): Data[] {\n return childData.map((child) => child.slice(offset, length));\n }\n\n //\n // Convenience methods for creating Data instances for each of the Arrow Vector types\n //\n /** @nocollapse */\n public static new(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector): Data {\n if (buffers instanceof Data) { buffers = buffers.buffers; } else if (!buffers) { buffers = [] as Partial>; }\n switch (type.typeId) {\n case Type.Null: return Data.Null( type as Null, offset, length) as Data;\n case Type.Int: return Data.Int( type as Int, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Dictionary: return Data.Dictionary( type as Dictionary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || [], dictionary!) as Data;\n case Type.Float: return Data.Float( type as Float, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Bool: return Data.Bool( type as Bool, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Decimal: return Data.Decimal( type as Decimal, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Date: return Data.Date( type as Date_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Time: return Data.Time( type as Time, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Timestamp: return Data.Timestamp( type as Timestamp, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Interval: return Data.Interval( type as Interval, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.FixedSizeBinary: return Data.FixedSizeBinary( type as FixedSizeBinary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Binary: return Data.Binary( type as Binary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.Utf8: return Data.Utf8( type as Utf8, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.List: return Data.List( type as List, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.FixedSizeList: return Data.FixedSizeList( type as FixedSizeList, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], (childData || [])[0]) as Data;\n case Type.Struct: return Data.Struct( type as Struct, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], childData || []) as Data;\n case Type.Map: return Data.Map( type as Map_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.Union: return Data.Union( type as Union, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.TYPE] || [], buffers[BufferType.OFFSET] || childData, childData) as Data;\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n\n /** @nocollapse */\n public static Null(type: T, offset: number, length: number) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n public static Int(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Dictionary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer, dictionary: Vector) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.indices.ArrayType, data), toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n public static Float(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Bool(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Decimal(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Date(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Time(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Timestamp(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Interval(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static FixedSizeBinary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Binary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Utf8(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static List(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static FixedSizeList(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static Struct(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, children: (Data | Vector)[]) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], children);\n }\n /** @nocollapse */\n public static Map(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: (Data | Vector)) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, children: (Data | Vector)[], _?: any): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsets: ValueOffsetsBuffer, children: (Data | Vector)[]): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]): Data;\n /** @nocollapse */\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]) {\n const buffers = [\n undefined, undefined,\n toUint8Array(nullBitmap),\n toArrayBufferView(type.ArrayType, typeIds)\n ] as Partial>;\n if (type.mode === UnionMode.Sparse) {\n return new Data(type, offset, length, nullCount, buffers, valueOffsetsOrChildren as (Data | Vector)[]);\n }\n buffers[BufferType.OFFSET] = toInt32Array( valueOffsetsOrChildren);\n return new Data(type, offset, length, nullCount, buffers, children);\n }\n}\n\n(Data.prototype as any).childData = Object.freeze([]);\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */ const undf = void (0);\n\n/** @ignore */\nexport function valueToString(x: any) {\n if (x === null) { return 'null'; }\n if (x === undf) { return 'undefined'; }\n switch (typeof x) {\n case 'number': return `${x}`;\n case 'bigint': return `${x}`;\n case 'string': return `\"${x}\"`;\n }\n // If [Symbol.toPrimitive] is implemented (like in BN)\n // use it instead of JSON.stringify(). This ensures we\n // print BigInts, Decimals, and Binary in their native\n // representation\n if (typeof x[Symbol.toPrimitive] === 'function') {\n return x[Symbol.toPrimitive]('string');\n }\n return ArrayBuffer.isView(x) ? `[${x}]` : JSON.stringify(x);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../type';\nimport { valueToString } from '../util/pretty';\nimport { BigIntAvailable } from '../util/compat';\n\n/**\n * Dynamically compile the null values into an `isValid()` function whose\n * implementation is a switch statement. Microbenchmarks in v8 indicate\n * this approach is 25% faster than using an ES6 Map.\n *\n * @example\n * console.log(createIsValidFunction([null, 'N/A', NaN]));\n * `function (x) {\n * if (x !== x) return false;\n * switch (x) {\n * case null:\n * case \"N/A\":\n * return false;\n * }\n * return true;\n * }`\n *\n * @ignore\n * @param nullValues\n */\nexport function createIsValidFunction(nullValues?: ReadonlyArray) {\n\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value: any) { return true; };\n }\n\n let fnBody = '';\n let noNaNs = nullValues.filter((x) => x === x);\n\n if (noNaNs.length > 0) {\n fnBody = `\n switch (x) {${noNaNs.map((x) => `\n case ${valueToCase(x)}:`).join('')}\n return false;\n }`;\n }\n\n // NaN doesn't equal anything including itself, so it doesn't work as a\n // switch case. Instead we must explicitly check for NaN before the switch.\n if (nullValues.length !== noNaNs.length) {\n fnBody = `if (x !== x) return false;\\n${fnBody}`;\n }\n\n return new Function(`x`, `${fnBody}\\nreturn true;`) as (value: T['TValue'] | TNull) => boolean;\n}\n\n/** @ignore */\nfunction valueToCase(x: any) {\n if (typeof x !== 'bigint') {\n return valueToString(x);\n } else if (BigIntAvailable) {\n return `${valueToString(x)}n`;\n }\n return `\"${valueToString(x)}\"`;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { memcpy } from '../util/buffer';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from '../util/compat';\nimport {\n TypedArray, TypedArrayConstructor,\n BigIntArray, BigIntArrayConstructor\n} from '../interfaces';\n\n/** @ignore */ type DataValue = T extends TypedArray ? number : T extends BigIntArray ? WideValue : T;\n/** @ignore */ type WideValue = T extends BigIntArray ? bigint | Int32Array | Uint32Array : never;\n/** @ignore */ type ArrayCtor =\n T extends TypedArray ? TypedArrayConstructor :\n T extends BigIntArray ? BigIntArrayConstructor :\n any;\n\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len: number, BPE: number) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = (arr: T, len = 0) => (\n arr.length >= len ? arr.subarray(0, len) : memcpy(new (arr.constructor as any)(len), arr, 0)\n) as T;\n\n/** @ignore */\nexport interface BufferBuilder> {\n readonly offset: number;\n}\n\n/** @ignore */\nexport class BufferBuilder> {\n\n constructor(buffer: T, stride = 1) {\n this.buffer = buffer;\n this.stride = stride;\n this.BYTES_PER_ELEMENT = buffer.BYTES_PER_ELEMENT;\n this.ArrayType = buffer.constructor as ArrayCtor;\n this._resize(this.length = buffer.length / stride | 0);\n }\n\n public buffer: T;\n public length: number;\n public readonly stride: number;\n public readonly ArrayType: ArrayCtor;\n public readonly BYTES_PER_ELEMENT: number;\n\n public get byteLength() { return this.length * this.stride * this.BYTES_PER_ELEMENT | 0; }\n public get reservedLength() { return this.buffer.length / this.stride; }\n public get reservedByteLength() { return this.buffer.byteLength; }\n\n // @ts-ignore\n public set(index: number, value: TValue) { return this; }\n public append(value: TValue) { return this.set(this.length, value); }\n public reserve(extra: number) {\n if (extra > 0) {\n this.length += extra;\n const stride = this.stride;\n const length = this.length * stride;\n const reserved = this.buffer.length;\n if (length >= reserved) {\n this._resize(reserved === 0\n ? roundLengthUpToNearest64Bytes(length * 1, this.BYTES_PER_ELEMENT)\n : roundLengthUpToNearest64Bytes(length * 2, this.BYTES_PER_ELEMENT)\n );\n }\n }\n return this;\n }\n public flush(length = this.length) {\n length = roundLengthUpToNearest64Bytes(length * this.stride, this.BYTES_PER_ELEMENT);\n const array = sliceOrExtendArray(this.buffer, length);\n this.clear();\n return array;\n }\n public clear() {\n this.length = 0;\n this._resize(0);\n return this;\n }\n protected _resize(newLength: number) {\n return this.buffer = memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\n\n(BufferBuilder.prototype as any).offset = 0;\n\n/** @ignore */\nexport class DataBufferBuilder extends BufferBuilder {\n public last() { return this.get(this.length - 1); }\n public get(index: number) { return this.buffer[index]; }\n public set(index: number, value: number) {\n this.reserve(index - this.length + 1);\n this.buffer[index * this.stride] = value;\n return this;\n }\n}\n\n/** @ignore */\nexport class BitmapBufferBuilder extends DataBufferBuilder {\n\n constructor(data = new Uint8Array(0)) { super(data, 1 / 8); }\n\n public numValid = 0;\n public get numInvalid() { return this.length - this.numValid; }\n public get(idx: number) { return this.buffer[idx >> 3] >> idx % 8 & 1; }\n public set(idx: number, val: number) {\n const { buffer } = this.reserve(idx - this.length + 1);\n const byte = idx >> 3, bit = idx % 8, cur = buffer[byte] >> bit & 1;\n // If `val` is truthy and the current bit is 0, flip it to 1 and increment `numValid`.\n // If `val` is falsey and the current bit is 1, flip it to 0 and decrement `numValid`.\n val ? cur === 0 && ((buffer[byte] |= (1 << bit)), ++this.numValid)\n : cur === 1 && ((buffer[byte] &= ~(1 << bit)), --this.numValid);\n return this;\n }\n public clear() {\n this.numValid = 0;\n return super.clear();\n }\n}\n\n/** @ignore */\nexport class OffsetsBufferBuilder extends DataBufferBuilder {\n constructor(data = new Int32Array(1)) { super(data, 1); }\n public append(value: number) {\n return this.set(this.length - 1, value);\n }\n public set(index: number, value: number) {\n const offset = this.length - 1;\n const buffer = this.reserve(index - offset + 1).buffer;\n if (offset < index++) {\n buffer.fill(buffer[offset], offset, index);\n }\n buffer[index] = buffer[index - 1] + value;\n return this;\n }\n public flush(length = this.length - 1) {\n if (length > this.length) {\n this.set(length - 1, 0);\n }\n return super.flush(length + 1);\n }\n}\n\n/** @ignore */\nexport class WideBufferBuilder extends BufferBuilder> {\n // @ts-ignore\n public buffer64: R;\n // @ts-ignore\n protected _ArrayType64: BigIntArrayConstructor;\n public get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = > (this.buffer instanceof Int32Array ? BigInt64Array : BigUint64Array));\n }\n public set(index: number, value: DataValue) {\n this.reserve(index - this.length + 1);\n switch (typeof value) {\n case 'bigint': this.buffer64[index] = value; break;\n case 'number': this.buffer[index * this.stride] = value; break;\n default: this.buffer.set(value as TypedArray, index * this.stride);\n }\n return this;\n }\n protected _resize(newLength: number) {\n const data = super._resize(newLength);\n const length = data.byteLength / (this.BYTES_PER_ELEMENT * this.stride);\n if (BigIntAvailable) {\n this.buffer64 = new this.ArrayType64(data.buffer, data.byteOffset, length);\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { BufferType } from './enum';\nimport { Data, Buffers } from './data';\nimport { createIsValidFunction } from './builder/valid';\nimport { BuilderType as B, VectorType as V} from './interfaces';\nimport { BufferBuilder, BitmapBufferBuilder, DataBufferBuilder, OffsetsBufferBuilder } from './builder/buffer';\nimport {\n DataType, strideForType,\n Float, Int, Decimal, FixedSizeBinary,\n Date_, Time, Timestamp, Interval,\n Utf8, Binary, List, Map_\n} from './type';\n\n/**\n * A set of options required to create a `Builder` instance for a given `DataType`.\n * @see {@link Builder}\n */\nexport interface BuilderOptions {\n type: T;\n nullValues?: TNull[] | ReadonlyArray | null;\n children?: { [key: string]: BuilderOptions; } | BuilderOptions[];\n}\n\n/**\n * A set of options to create an Iterable or AsyncIterable `Builder` transform function.\n * @see {@link Builder.throughIterable}\n * @see {@link Builder.throughAsyncIterable}\n */\n\nexport interface IterableBuilderOptions extends BuilderOptions {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/**\n * An abstract base class for types that construct Arrow Vectors from arbitrary JavaScript values.\n *\n * A `Builder` is responsible for writing arbitrary JavaScript values\n * to ArrayBuffers and/or child Builders according to the Arrow specification\n * for each DataType, creating or resizing the underlying ArrayBuffers as necessary.\n *\n * The `Builder` for each Arrow `DataType` handles converting and appending\n * values for a given `DataType`. The high-level {@link Builder.new `Builder.new()`} convenience\n * method creates the specific `Builder` subclass for the supplied `DataType`.\n *\n * Once created, `Builder` instances support both appending values to the end\n * of the `Builder`, and random-access writes to specific indices\n * (`Builder.prototype.append(value)` is a convenience method for\n * `builder.set(builder.length, value)`). Appending or setting values beyond the\n * Builder's current length may cause the builder to grow its underlying buffers\n * or child Builders (if applicable) to accommodate the new values.\n *\n * After enough values have been written to a `Builder`, `Builder.prototype.flush()`\n * will commit the values to the underlying ArrayBuffers (or child Builders). The\n * internal Builder state will be reset, and an instance of `Data` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * ```ts\n * import { Builder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = Builder.new({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nexport abstract class Builder {\n\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions} options An object with a required `DataType` instance\n * and other optional parameters to be passed to the `Builder` subclass for the given `type`.\n *\n * @typeparam T The `DataType` of the `Builder` to create.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n * @nocollapse\n */\n // @ts-ignore\n public static new(options: BuilderOptions): B {}\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options: import('./io/node/builder').BuilderDuplexOptions): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM(options: import('./io/whatwg/builder').BuilderTransformOptions): import('./io/whatwg/builder').BuilderTransform {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n /**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector`.\n *\n * The resulting `Iterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\n public static throughIterable(options: IterableBuilderOptions) {\n return throughIterable(options);\n }\n\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector`.\n *\n * The resulting `AsyncIterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\n public static throughAsyncIterable(options: IterableBuilderOptions) {\n return throughAsyncIterable(options);\n }\n\n /**\n * Construct a builder with the given Arrow DataType with optional null values,\n * which will be interpreted as \"null\" when set or appended to the `Builder`.\n * @param {{ type: T, nullValues?: any[] }} options A `BuilderOptions` object used to create this `Builder`.\n */\n constructor({ 'type': type, 'nullValues': nulls }: BuilderOptions) {\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = strideForType(type);\n this._nulls = new BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = createIsValidFunction(nulls);\n }\n }\n\n /**\n * The Builder's `DataType` instance.\n * @readonly\n */\n public type: T;\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n public length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n public finished = false;\n /**\n * The number of elements in the underlying values TypedArray that\n * represent a single logical element, determined by this Builder's\n * `DataType`. This is 1 for most types, but is larger when the `DataType`\n * is `Int64`, `Uint64`, `Decimal`, `DateMillisecond`, certain variants of\n * `Interval`, `Time`, or `Timestamp`, `FixedSizeBinary`, and `FixedSizeList`.\n * @readonly\n */\n public readonly stride: number;\n public readonly children: Builder[];\n /**\n * The list of null-value sentinels for this `Builder`. When one of these values\n * is written to the `Builder` (either via `Builder.prototype.set()` or `Builder.prototype.append()`),\n * a 1-bit is written to this Builder's underlying null BitmapBufferBuilder.\n * @readonly\n */\n public readonly nullValues?: TNull[] | ReadonlyArray | null;\n\n /**\n * Flush the `Builder` and return a `Vector`.\n * @returns {Vector} A `Vector` of the flushed values.\n */\n public toVector() { return Vector.new(this.flush()); }\n\n public get ArrayType() { return this.type.ArrayType; }\n public get nullCount() { return this._nulls.numInvalid; }\n public get numChildren() { return this.children.length; }\n\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n public get byteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n this._typeIds && (size += this._typeIds.byteLength);\n return this.children.reduce((size, child) => size + child.byteLength, size);\n }\n\n /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n public get reservedLength(): number {\n return this._nulls.reservedLength;\n }\n\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n public get reservedByteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.reservedByteLength);\n this._values && (size += this._values.reservedByteLength);\n this._nulls && (size += this._nulls.reservedByteLength);\n this._typeIds && (size += this._typeIds.reservedByteLength);\n return this.children.reduce((size, child) => size + child.reservedByteLength, size);\n }\n\n // @ts-ignore\n protected _offsets: DataBufferBuilder;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n // @ts-ignore\n protected _values: BufferBuilder;\n public get values() { return this._values ? this._values.buffer : null; }\n\n protected _nulls: BitmapBufferBuilder;\n public get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n\n // @ts-ignore\n protected _typeIds: DataBufferBuilder;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n // @ts-ignore\n protected _isValid: (value: T['TValue'] | TNull) => boolean;\n // @ts-ignore\n protected _setValue: (inst: Builder, index: number, value: T['TValue']) => void;\n\n /**\n * Appends a value (or null) to this `Builder`.\n * This is equivalent to `builder.set(builder.length, value)`.\n * @param {T['TValue'] | TNull } value The value to append.\n */\n public append(value: T['TValue'] | TNull) { return this.set(this.length, value); }\n\n /**\n * Validates whether a value is valid (true), or null (false)\n * @param {T['TValue'] | TNull } value The value to compare against null the value representations\n */\n // @ts-ignore\n public isValid(value: T['TValue'] | TNull): boolean { return this._isValid(value); }\n\n /**\n * Write a value (or null-value sentinel) at the supplied index.\n * If the value matches one of the null-value representations, a 1-bit is\n * written to the null `BitmapBufferBuilder`. Otherwise, a 0 is written to\n * the null `BitmapBufferBuilder`, and the value is passed to\n * `Builder.prototype.setValue()`.\n * @param {number} index The index of the value to write.\n * @param {T['TValue'] | TNull } value The value to write at the supplied index.\n * @returns {this} The updated `Builder` instance.\n */\n public set(index: number, value: T['TValue'] | TNull) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\n\n /**\n * Write a value to the underlying buffers at the supplied index, bypassing\n * the null-value check. This is a low-level method that\n * @param {number} index\n * @param {T['TValue'] | TNull } value\n */\n // @ts-ignore\n public setValue(index: number, value: T['TValue']) { this._setValue(this, index, value); }\n public setValid(index: number, valid: boolean) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\n\n /**\n * Retrieve the child `Builder` at the supplied `index`, or null if no child\n * exists at that index.\n * @param {number} index The index of the child `Builder` to retrieve.\n * @returns {Builder | null} The child Builder at the supplied index or null.\n */\n public getChildAt(index: number): Builder | null {\n return this.children[index] || null;\n }\n\n /**\n * Commit all the values that have been written to their underlying\n * ArrayBuffers, including any child Builders if applicable, and reset\n * the internal `Builder` state.\n * @returns A `Data` of the buffers and childData representing the values written.\n */\n public flush() {\n\n const buffers: any = [];\n const values = this._values;\n const offsets = this._offsets;\n const typeIds = this._typeIds;\n const { length, nullCount } = this;\n\n if (typeIds) { /* Unions */\n buffers[BufferType.TYPE] = typeIds.flush(length);\n // DenseUnions\n offsets && (buffers[BufferType.OFFSET] = offsets.flush(length));\n } else if (offsets) { /* Variable-width primitives (Binary, Utf8) and Lists */\n // Binary, Utf8\n values && (buffers[BufferType.DATA] = values.flush(offsets.last()));\n buffers[BufferType.OFFSET] = offsets.flush(length);\n } else if (values) { /* Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, and Interval) */\n buffers[BufferType.DATA] = values.flush(length);\n }\n\n nullCount > 0 && (buffers[BufferType.VALIDITY] = this._nulls.flush(length));\n\n const data = Data.new(\n this.type, 0, length, nullCount, buffers as Buffers,\n this.children.map((child) => child.flush())) as Data;\n\n this.clear();\n\n return data;\n }\n\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n public finish() {\n this.finished = true;\n this.children.forEach((child) => child.finish());\n return this;\n }\n\n /**\n * Clear this Builder's internal state, including child Builders if applicable, and reset the length to 0.\n * @returns {this} The cleared `Builder` instance.\n */\n public clear() {\n this.length = 0;\n this._offsets && (this._offsets.clear());\n this._values && (this._values.clear());\n this._nulls && (this._nulls.clear());\n this._typeIds && (this._typeIds.clear());\n this.children.forEach((child) => child.clear());\n return this;\n }\n}\n\n(Builder.prototype as any).length = 1;\n(Builder.prototype as any).stride = 1;\n(Builder.prototype as any).children = null;\n(Builder.prototype as any).finished = false;\n(Builder.prototype as any).nullValues = null;\n(Builder.prototype as any)._isValid = () => true;\n\n/** @ignore */\nexport abstract class FixedWidthBuilder extends Builder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new DataBufferBuilder(new this.ArrayType(0), this.stride);\n }\n public setValue(index: number, value: T['TValue']) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\n\n/** @ignore */\nexport abstract class VariableWidthBuilder extends Builder {\n protected _pendingLength: number = 0;\n protected _offsets: OffsetsBufferBuilder;\n protected _pending: Map | undefined;\n constructor(opts: BuilderOptions) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public setValue(index: number, value: T['TValue']) {\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.length);\n this._pendingLength += value.length;\n pending.set(index, value);\n }\n public setValid(index: number, isValid: boolean) {\n if (!super.setValid(index, isValid)) {\n (this._pending || (this._pending = new Map())).set(index, undefined);\n return false;\n }\n return true;\n }\n public clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n public flush() {\n this._flush();\n return super.flush();\n }\n public finish() {\n this._flush();\n return super.finish();\n }\n protected _flush() {\n const pending = this._pending;\n const pendingLength = this._pendingLength;\n this._pendingLength = 0;\n this._pending = undefined;\n if (pending && pending.size > 0) {\n this._flushPending(pending, pendingLength);\n }\n return this;\n }\n protected abstract _flushPending(pending: Map, pendingLength: number): void;\n}\n\n/** @ignore */\ntype ThroughIterable = (source: Iterable) => IterableIterator>;\n\n/** @ignore */\nfunction throughIterable(options: IterableBuilderOptions): ThroughIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function*(source: Iterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n\n/** @ignore */\ntype ThroughAsyncIterable = (source: Iterable | AsyncIterable) => AsyncIterableIterator>;\n\n/** @ignore */\nfunction throughAsyncIterable(options: IterableBuilderOptions): ThroughAsyncIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source: Iterable | AsyncIterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { BitmapBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BoolBuilder extends Builder {\n constructor(options: BuilderOptions) {\n super(options);\n this._values = new BitmapBufferBuilder();\n }\n public setValue(index: number, value: boolean) {\n this._values.set(index, +value);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { Builder } from '../builder';\n\n/** @ignore */\nexport class NullBuilder extends Builder {\n // @ts-ignore\n public setValue(index: number, value: null) {}\n public setValid(index: number, valid: boolean) {\n this.length = Math.max(index + 1, this.length);\n return valid;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\nexport class DateBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class DateDayBuilder extends DateBuilder {}\n/** @ignore */\nexport class DateMillisecondBuilder extends DateBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class DecimalBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { IntBuilder } from './int';\nimport { Dictionary, DataType } from '../type';\nimport { Builder, BuilderOptions } from '../builder';\n\ntype DictionaryHashFunction = (x: any) => string | number;\n\nexport interface DictionaryBuilderOptions extends BuilderOptions {\n dictionaryHashFunction?: DictionaryHashFunction;\n}\n\n/** @ignore */\nexport class DictionaryBuilder extends Builder {\n\n protected _dictionaryOffset: number;\n protected _dictionary?: Vector;\n protected _keysToIndices: { [key: string]: number };\n public readonly indices: IntBuilder;\n public readonly dictionary: Builder;\n\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }: DictionaryBuilderOptions) {\n super({ type: new Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) as T });\n this._nulls = null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = Builder.new({ 'type': this.type.indices, 'nullValues': nulls }) as IntBuilder;\n this.dictionary = Builder.new({ 'type': this.type.dictionary, 'nullValues': null }) as Builder;\n if (typeof hashFn === 'function') {\n this.valueToKey = hashFn;\n }\n }\n\n public get values() { return this.indices.values; }\n public get nullCount() { return this.indices.nullCount; }\n public get nullBitmap() { return this.indices.nullBitmap; }\n public get byteLength() { return this.indices.byteLength + this.dictionary.byteLength; }\n public get reservedLength() { return this.indices.reservedLength + this.dictionary.reservedLength; }\n public get reservedByteLength() { return this.indices.reservedByteLength + this.dictionary.reservedByteLength; }\n public isValid(value: T['TValue'] | TNull) { return this.indices.isValid(value); }\n public setValid(index: number, valid: boolean) {\n const indices = this.indices;\n valid = indices.setValid(index, valid);\n this.length = indices.length;\n return valid;\n }\n public setValue(index: number, value: T['TValue']) {\n let keysToIndices = this._keysToIndices;\n let key = this.valueToKey(value);\n let idx = keysToIndices[key];\n if (idx === undefined) {\n keysToIndices[key] = idx = this._dictionaryOffset + this.dictionary.append(value).length - 1;\n }\n return this.indices.setValue(index, idx);\n }\n public flush() {\n const type = this.type;\n const prev = this._dictionary;\n const curr = this.dictionary.toVector();\n const data = this.indices.flush().clone(type);\n data.dictionary = prev ? prev.concat(curr) : curr;\n this.finished || (this._dictionaryOffset += curr.length);\n this._dictionary = data.dictionary as Vector;\n this.clear();\n return data;\n }\n public finish() {\n this.indices.finish();\n this.dictionary.finish();\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n return super.finish();\n }\n public clear() {\n this.indices.clear();\n this.dictionary.clear();\n return super.clear();\n }\n public valueToKey(val: any): string | number {\n return typeof val === 'string' ? val : `${val}`;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedSizeBinary } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class FixedSizeBinaryBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nconst f64 = new Float64Array(1);\nconst u32 = new Uint32Array(f64.buffer);\n\n/**\n * Convert uint16 (logically a float16) to a JS float64. Inspired by numpy's `npy_half_to_double`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L29\n * @param h {number} the uint16 to convert\n * @private\n * @ignore\n */\nexport function uint16ToFloat64(h: number) {\n let expo = (h & 0x7C00) >> 10;\n let sigf = (h & 0x03FF) / 1024;\n let sign = (-1) ** ((h & 0x8000) >> 15);\n switch (expo) {\n case 0x1F: return sign * (sigf ? NaN : 1 / 0);\n case 0x00: return sign * (sigf ? 6.103515625e-5 * sigf : 0);\n }\n return sign * (2 ** (expo - 15)) * (1 + sigf);\n}\n\n/**\n * Convert a float64 to uint16 (assuming the float64 is logically a float16). Inspired by numpy's `npy_double_to_half`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L43\n * @param d {number} The float64 to convert\n * @private\n * @ignore\n */\nexport function float64ToUint16(d: number) {\n\n if (d !== d) { return 0x7E00; } // NaN\n\n f64[0] = d;\n\n // Magic numbers:\n // 0x80000000 = 10000000 00000000 00000000 00000000 -- masks the 32nd bit\n // 0x7ff00000 = 01111111 11110000 00000000 00000000 -- masks the 21st-31st bits\n // 0x000fffff = 00000000 00001111 11111111 11111111 -- masks the 1st-20th bit\n\n let sign = (u32[1] & 0x80000000) >> 16 & 0xFFFF;\n let expo = (u32[1] & 0x7ff00000), sigf = 0x0000;\n\n if (expo >= 0x40f00000) {\n //\n // If exponent overflowed, the float16 is either NaN or Infinity.\n // Rules to propagate the sign bit: mantissa > 0 ? NaN : +/-Infinity\n //\n // Magic numbers:\n // 0x40F00000 = 01000000 11110000 00000000 00000000 -- 6-bit exponent overflow\n // 0x7C000000 = 01111100 00000000 00000000 00000000 -- masks the 27th-31st bits\n //\n // returns:\n // qNaN, aka 32256 decimal, 0x7E00 hex, or 01111110 00000000 binary\n // sNaN, aka 32000 decimal, 0x7D00 hex, or 01111101 00000000 binary\n // +inf, aka 31744 decimal, 0x7C00 hex, or 01111100 00000000 binary\n // -inf, aka 64512 decimal, 0xFC00 hex, or 11111100 00000000 binary\n //\n // If mantissa is greater than 23 bits, set to +Infinity like numpy\n if (u32[0] > 0) {\n expo = 0x7C00;\n } else {\n expo = (expo & 0x7C000000) >> 16;\n sigf = (u32[1] & 0x000fffff) >> 10;\n }\n } else if (expo <= 0x3f000000) {\n //\n // If exponent underflowed, the float is either signed zero or subnormal.\n //\n // Magic numbers:\n // 0x3F000000 = 00111111 00000000 00000000 00000000 -- 6-bit exponent underflow\n //\n sigf = 0x100000 + (u32[1] & 0x000fffff);\n sigf = 0x100000 + (sigf << ((expo >> 20) - 998)) >> 21;\n expo = 0;\n } else {\n //\n // No overflow or underflow, rebase the exponent and round the mantissa\n // Magic numbers:\n // 0x200 = 00000010 00000000 -- masks off the 10th bit\n //\n\n // Ensure the first mantissa bit (the 10th one) is 1 and round\n expo = (expo - 0x3f000000) >> 10;\n sigf = ((u32[1] & 0x000fffff) + 0x200) >> 10;\n }\n\n return sign | expo | sigf & 0xFFFF;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { float64ToUint16 } from '../util/math';\nimport { FixedWidthBuilder } from '../builder';\nimport { Float, Float16, Float32, Float64 } from '../type';\n\n/** @ignore */\nexport class FloatBuilder extends FixedWidthBuilder {}\n\n/** @ignore */\nexport class Float16Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n // convert JS float64 to a uint16\n this._values.set(index, float64ToUint16(value));\n }\n}\n\n/** @ignore */\nexport class Float32Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Float64Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ArrayBufferViewInput, toArrayBufferView } from './buffer';\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nexport const isArrowBigNumSymbol = Symbol.for('isArrowBigNum');\n\n/** @ignore */ type BigNumArray = IntArray | UintArray;\n/** @ignore */ type IntArray = Int8Array | Int16Array | Int32Array;\n/** @ignore */ type UintArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray;\n\n/** @ignore */\nfunction BigNum(this: any, x: any, ...xs: any) {\n if (xs.length === 0) {\n return Object.setPrototypeOf(toArrayBufferView(this['TypedArray'], x), this.constructor.prototype);\n }\n return Object.setPrototypeOf(new this['TypedArray'](x, ...xs), this.constructor.prototype);\n}\n\nBigNum.prototype[isArrowBigNumSymbol] = true;\nBigNum.prototype.toJSON = function>(this: T) { return `\"${bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function>(this: T) { return bignumToNumber(this); };\nBigNum.prototype.toString = function>(this: T) { return bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function>(this: T, hint: 'string' | 'number' | 'default' = 'default') {\n switch (hint) {\n case 'number': return bignumToNumber(this);\n case 'string': return bignumToString(this);\n case 'default': return bignumToBigInt(this);\n }\n return bignumToString(this);\n};\n\n/** @ignore */\ntype TypedArrayConstructorArgs =\n [number | void] |\n [Iterable | Iterable] |\n [ArrayBufferLike, number | void, number | void] ;\n\n/** @ignore */\nfunction SignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction UnsignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction DecimalBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n\nObject.setPrototypeOf(SignedBigNum.prototype, Object.create(Int32Array.prototype));\nObject.setPrototypeOf(UnsignedBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.setPrototypeOf(DecimalBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.assign(SignedBigNum.prototype, BigNum.prototype, { 'constructor': SignedBigNum, 'signed': true, 'TypedArray': Int32Array, 'BigIntArray': BigInt64Array });\nObject.assign(UnsignedBigNum.prototype, BigNum.prototype, { 'constructor': UnsignedBigNum, 'signed': false, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\nObject.assign(DecimalBigNum.prototype, BigNum.prototype, { 'constructor': DecimalBigNum, 'signed': true, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\n\n/** @ignore */\nfunction bignumToNumber>(bn: T) {\n let { buffer, byteOffset, length, 'signed': signed } = bn;\n let words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0, n = words.length, hi, lo;\n while (i < n) {\n lo = words[i++];\n hi = words[i++];\n signed || (hi = hi >>> 0);\n number += (lo >>> 0) + (hi * (i ** 32));\n }\n return number;\n}\n\n/** @ignore */\nexport let bignumToString: { >(a: T): string; };\n/** @ignore */\nexport let bignumToBigInt: { >(a: T): bigint; };\n\nif (!BigIntAvailable) {\n bignumToString = decimalToString;\n bignumToBigInt = bignumToString;\n} else {\n bignumToBigInt = (>(a: T) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : decimalToString(a));\n bignumToString = (>(a: T) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n\n/** @ignore */\nfunction decimalToString>(a: T) {\n let digits = '';\n let base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n let checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1, n = base32.length - 1;\n do {\n for (base64[0] = base32[i = 0]; i < n;) {\n base32[i++] = base64[1] = base64[0] / 10;\n base64[0] = ((base64[0] - base64[1] * 10) << 16) + base32[i];\n }\n base32[i] = base64[1] = base64[0] / 10;\n base64[0] = base64[0] - base64[1] * 10;\n digits = `${base64[0]}${digits}`;\n } while (checks[0] || checks[1] || checks[2] || checks[3]);\n return digits ? digits : `0`;\n}\n\n/** @ignore */\nexport class BN {\n /** @nocollapse */\n public static new(num: T, isSigned?: boolean): (T & BN) {\n switch (isSigned) {\n case true: return new ( SignedBigNum)(num) as (T & BN);\n case false: return new ( UnsignedBigNum)(num) as (T & BN);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case BigInt64Array:\n return new ( SignedBigNum)(num) as (T & BN);\n }\n if (num.byteLength === 16) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static signed(num: T): (T & BN) {\n return new ( SignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static unsigned(num: T): (T & BN) {\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static decimal(num: T): (T & BN) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n constructor(num: T, isSigned?: boolean) {\n return BN.new(num, isSigned) as any;\n }\n}\n\n/** @ignore */\nexport interface BN extends TypedArrayLike {\n\n new(buffer: T, signed?: boolean): T;\n\n readonly signed: boolean;\n readonly TypedArray: TypedArrayConstructor;\n readonly BigIntArray: BigIntArrayConstructor;\n\n [Symbol.toStringTag]:\n 'Int8Array' |\n 'Int16Array' |\n 'Int32Array' |\n 'Uint8Array' |\n 'Uint16Array' |\n 'Uint32Array' |\n 'Uint8ClampedArray';\n\n /**\n * Convert the bytes to their (positive) decimal representation for printing\n */\n toString(): string;\n /**\n * Down-convert the bytes to a 53-bit precision integer. Invoked by JS for\n * arithmetic operators, like `+`. Easy (and unsafe) way to convert BN to\n * number via `+bn_inst`\n */\n valueOf(): number;\n /**\n * Return the JSON representation of the bytes. Must be wrapped in double-quotes,\n * so it's compatible with JSON.stringify().\n */\n toJSON(): string;\n [Symbol.toPrimitive](hint?: any): number | string | bigint;\n}\n\n/** @ignore */\ninterface TypedArrayLike {\n\n readonly length: number;\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n readonly BYTES_PER_ELEMENT: number;\n\n includes(searchElement: number, fromIndex?: number | undefined): boolean;\n copyWithin(target: number, start: number, end?: number | undefined): this;\n every(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n fill(value: number, start?: number | undefined, end?: number | undefined): this;\n filter(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): T;\n find(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number | undefined;\n findIndex(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number;\n forEach(callbackfn: (value: number, index: number, array: T) => void, thisArg?: any): void;\n indexOf(searchElement: number, fromIndex?: number | undefined): number;\n join(separator?: string | undefined): string;\n lastIndexOf(searchElement: number, fromIndex?: number | undefined): number;\n map(callbackfn: (value: number, index: number, array: T) => number, thisArg?: any): T;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reverse(): T;\n set(array: ArrayLike, offset?: number | undefined): void;\n slice(start?: number | undefined, end?: number | undefined): T;\n some(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n sort(compareFn?: ((a: number, b: number) => number) | undefined): this;\n subarray(begin: number, end?: number | undefined): T;\n toLocaleString(): string;\n entries(): IterableIterator<[number, number]>;\n keys(): IterableIterator;\n values(): IterableIterator;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { bignumToBigInt } from '../util/bn';\nimport { WideBufferBuilder } from './buffer';\nimport { BigInt64Array } from '../util/compat';\nimport { FixedWidthBuilder, BuilderOptions } from '../builder';\nimport { Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64 } from '../type';\n\n/** @ignore */\nexport class IntBuilder extends FixedWidthBuilder {\n public setValue(index: number, value: T['TValue']) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Int8Builder extends IntBuilder {}\n/** @ignore */\nexport class Int16Builder extends IntBuilder {}\n/** @ignore */\nexport class Int32Builder extends IntBuilder {}\n/** @ignore */\nexport class Int64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Int32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Int32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\n/** @ignore */\nexport class Uint8Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint16Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint32Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Uint32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Uint32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\nconst toBigInt = ((memo: any) => (value: any) => {\n if (ArrayBuffer.isView(value)) {\n memo.buffer = value.buffer;\n memo.byteOffset = value.byteOffset;\n memo.byteLength = value.byteLength;\n value = bignumToBigInt(memo);\n memo.buffer = null;\n }\n return value;\n})({ 'BigIntArray': BigInt64Array });\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimeSecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMillisecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMicrosecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeNanosecondBuilder extends TimeBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimestampSecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMillisecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMicrosecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampNanosecondBuilder extends TimestampBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class IntervalDayTimeBuilder extends IntervalBuilder {}\n/** @ignore */\nexport class IntervalYearMonthBuilder extends IntervalBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Binary } from '../type';\nimport { toUint8Array } from '../util/buffer';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BinaryBuilder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: Uint8Array) {\n return super.setValue(index, toUint8Array(value));\n }\n protected _flushPending(pending: Map, pendingLength: number) {\n const offsets = this._offsets;\n const data = this._values.reserve(pendingLength).buffer;\n let index = 0, length = 0, offset = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n length = value.length;\n data.set(value, offset);\n offsets.set(index, length);\n offset += length;\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Utf8 } from '../type';\nimport { encodeUtf8 } from '../util/utf8';\nimport { BinaryBuilder } from './binary';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class Utf8Builder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: string) {\n return super.setValue(index, encodeUtf8(value) as any);\n }\n // @ts-ignore\n protected _flushPending(pending: Map, pendingLength: number): void {}\n}\n\n(Utf8Builder.prototype as any)._flushPending = (BinaryBuilder.prototype as any)._flushPending;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\n\n/** @ignore */\nexport class Run {\n // @ts-ignore\n protected _values: ArrayLike;\n public get length() { return this._values.length; }\n public get(index: number) { return this._values[index]; }\n public clear() { this._values = null; return this; }\n public bind(values: Vector | ArrayLike) {\n if (values instanceof Vector) {\n return values;\n }\n this._values = values;\n return this as any;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { StructVector } from './struct';\nimport { valueToString } from '../util/pretty';\nimport { DataType, Struct, RowLike } from '../type';\n\n/** @ignore */ const kParent = Symbol.for('parent');\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */ const kKeyToIdx = Symbol.for('keyToIdx');\n/** @ignore */ const kIdxToVal = Symbol.for('idxToVal');\n/** @ignore */ const kCustomInspect = Symbol.for('nodejs.util.inspect.custom');\n\nabstract class Row implements Map {\n\n public readonly size: number;\n public readonly [Symbol.toStringTag]: string;\n\n protected [kRowIndex]: number;\n protected [kParent]: Vector;\n protected [kKeyToIdx]: Map;\n protected [kIdxToVal]: V[];\n\n constructor(parent: Vector, numKeys: number) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n\n public abstract keys(): IterableIterator;\n public abstract values(): IterableIterator;\n public abstract getKey(idx: number): K;\n public abstract getIndex(key: K): number;\n public abstract getValue(idx: number): V;\n public abstract setValue(idx: number, val: V): void;\n\n public entries() { return this[Symbol.iterator](); }\n\n public has(key: K) { return this.get(key) !== undefined; }\n\n public get(key: K) {\n let val = undefined;\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx !== undefined) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n } else if ((idx = this.getIndex(key)) > -1) {\n ktoi.set(key, idx);\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n }\n }\n return val;\n }\n\n public set(key: K, val: V) {\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx === undefined) {\n ktoi.set(key, idx = this.getIndex(key));\n }\n if (idx > -1) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n itov[idx] = this.setValue(idx, val);\n }\n }\n return this;\n }\n\n public clear(): void { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n\n public delete(_: K): boolean { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n\n public *[Symbol.iterator](): IterableIterator<[K, V]> {\n\n const ki = this.keys();\n const vi = this.values();\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n yield [k, v];\n }\n }\n\n public forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void {\n\n const ki = this.keys();\n const vi = this.values();\n const callback = thisArg === undefined ? callbackfn :\n (v: V, k: K, m: Map) => callbackfn.call(thisArg, v, k, m);\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n callback(v, k, this);\n }\n }\n\n public toArray() { return [...this.values()]; }\n public toJSON() {\n const obj = {} as any;\n this.forEach((val, key) => obj[key] = val);\n return obj;\n }\n\n public inspect() { return this.toString(); }\n public [kCustomInspect]() { return this.toString(); }\n public toString() {\n const str: string[] = [];\n this.forEach((val, key) => {\n key = valueToString(key);\n val = valueToString(val);\n str.push(`${key}: ${val}`);\n });\n return `{ ${str.join(', ')} }`;\n }\n\n protected static [Symbol.toStringTag] = ((proto: Row) => {\n Object.defineProperties(proto, {\n 'size': { writable: true, enumerable: false, configurable: false, value: 0 },\n [kParent]: { writable: true, enumerable: false, configurable: false, value: null },\n [kRowIndex]: { writable: true, enumerable: false, configurable: false, value: -1 },\n });\n return (proto as any)[Symbol.toStringTag] = 'Row';\n })(Row.prototype);\n}\n\nexport class MapRow extends Row {\n constructor(slice: Vector>) {\n super(slice, slice.length);\n return createRowProxy(this);\n }\n public keys() {\n return this[kParent].getChildAt(0)![Symbol.iterator]();\n }\n public values() {\n return this[kParent].getChildAt(1)![Symbol.iterator]();\n }\n public getKey(idx: number): K['TValue'] {\n return this[kParent].getChildAt(0)!.get(idx);\n }\n public getIndex(key: K['TValue']): number {\n return this[kParent].getChildAt(0)!.indexOf(key);\n }\n public getValue(index: number): V['TValue'] | null {\n return this[kParent].getChildAt(1)!.get(index);\n }\n public setValue(index: number, value: V['TValue'] | null): void {\n this[kParent].getChildAt(1)!.set(index, value);\n }\n}\n\nexport class StructRow extends Row {\n constructor(parent: StructVector) {\n super(parent, parent.type.children.length);\n return defineRowProxyProperties(this);\n }\n public *keys() {\n for (const field of this[kParent].type.children) {\n yield field.name as keyof T;\n }\n }\n public *values() {\n for (const field of this[kParent].type.children) {\n yield (this as RowLike)[field.name];\n }\n }\n public getKey(idx: number): keyof T {\n return this[kParent].type.children[idx].name as keyof T;\n }\n public getIndex(key: keyof T): number {\n return this[kParent].type.children.findIndex((f) => f.name === key);\n }\n public getValue(index: number): T[keyof T]['TValue'] | null {\n return this[kParent].getChildAt(index)!.get(this[kRowIndex]);\n }\n public setValue(index: number, value: T[keyof T]['TValue'] | null): void {\n return this[kParent].getChildAt(index)!.set(this[kRowIndex], value);\n }\n}\n\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n const desc = { enumerable: true, configurable: false, get: null as any, set: null as any };\n return (row: T) => {\n let idx = -1, ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n const getter = (key: any) => function(this: T) { return this.get(key); };\n const setter = (key: any) => function(this: T, val: any) { return this.set(key, val); };\n for (const key of row.keys()) {\n ktoi.set(key, ++idx);\n desc.get = getter(key);\n desc.set = setter(key);\n row.hasOwnProperty(key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n row.hasOwnProperty(idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\n})();\n\n/** @ignore */\nconst createRowProxy = (() => {\n if (typeof Proxy === 'undefined') {\n return defineRowProxyProperties;\n }\n const has = Row.prototype.has;\n const get = Row.prototype.get;\n const set = Row.prototype.set;\n const getKey = Row.prototype.getKey;\n const RowProxyHandler: ProxyHandler = {\n isExtensible() { return false; },\n deleteProperty() { return false; },\n preventExtensions() { return true; },\n ownKeys(row: Row) { return [...row.keys()].map((x) => `${x}`); },\n has(row: Row, key: PropertyKey) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return true;\n }\n if (typeof key === 'number' && !row.has(key)) {\n key = row.getKey(key);\n }\n return row.has(key);\n },\n get(row: Row, key: PropertyKey, receiver: any) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return Reflect.get(row, key, receiver);\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return get.call(receiver, key);\n },\n set(row: Row, key: PropertyKey, val: any, receiver: any) {\n switch (key) {\n case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx:\n return Reflect.set(row, key, val, receiver);\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag:\n return false;\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return has.call(receiver, key) ? !!set.call(receiver, key, val) : false;\n },\n };\n return (row: T) => new Proxy(row, RowProxyHandler) as T;\n})();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { MapRow, StructRow } from '../vector/row';\nimport { compareArrayLike } from '../util/buffer';\nimport { BigInt, BigIntAvailable } from './compat';\n\n/** @ignore */\ntype RangeLike = { length: number; stride?: number };\n/** @ignore */\ntype ClampThen = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex(source: T, index: number): number;\nexport function clampIndex = ClampThen>(source: T, index: number, then: N): ReturnType;\n/** @ignore */\nexport function clampIndex = ClampThen>(source: T, index: number, then?: N) {\n const length = source.length;\n const adjust = index > -1 ? index : (length + (index % length));\n return then ? then(source, adjust) : adjust;\n}\n\n/** @ignore */\nlet tmp: number;\nexport function clampRange(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType;\n/** @ignore */\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then?: N) {\n\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n let { length: len = 0 } = source;\n let lhs = typeof begin !== 'number' ? 0 : begin;\n let rhs = typeof end !== 'number' ? len : end;\n // wrap around on negative start/end positions\n (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n // ensure lhs <= rhs\n (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n // ensure rhs <= length\n (rhs > len) && (rhs = len);\n\n return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\n\nconst big0 = BigIntAvailable ? BigInt(0) : 0;\nconst isNaNFast = (value: any) => value !== value;\n\n/** @ignore */\nexport function createElementComparator(search: any) {\n let typeofSearch = typeof search;\n // Compare primitives\n if (typeofSearch !== 'object' || search === null) {\n // Compare NaN\n if (isNaNFast(search)) {\n return isNaNFast;\n }\n return typeofSearch !== 'bigint'\n ? (value: any) => value === search\n : (value: any) => (big0 + value) === search;\n }\n // Compare Dates\n if (search instanceof Date) {\n const valueOfSearch = search.valueOf();\n return (value: any) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n }\n // Compare TypedArrays\n if (ArrayBuffer.isView(search)) {\n return (value: any) => value ? compareArrayLike(search, value) : false;\n }\n // Compare Maps and Rows\n if (search instanceof Map) { return creatMapComparator(search); }\n // Compare Array-likes\n if (Array.isArray(search)) { return createArrayLikeComparator(search); }\n // Compare Vectors\n if (search instanceof Vector) { return createVectorComparator(search); }\n // Compare non-empty Objects\n return createObjectComparator(search);\n}\n\n/** @ignore */\nfunction createArrayLikeComparator(lhs: ArrayLike) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[i]);\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction creatMapComparator(lhs: Map) {\n let i = -1;\n const comparators = [] as ((x: any) => boolean)[];\n lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createVectorComparator(lhs: Vector) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs.get(i));\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createObjectComparator(lhs: any) {\n const keys = Object.keys(lhs);\n // Only compare non-empty Objects\n if (keys.length === 0) { return () => false; }\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = keys.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[keys[i]]);\n }\n return createSubElementsComparator(comparators, keys);\n}\n\nfunction createSubElementsComparator(comparators: ((x: any) => boolean)[], keys?: Iterable) {\n return (rhs: any) => {\n if (!rhs || typeof rhs !== 'object') {\n return false;\n }\n switch (rhs.constructor) {\n case Array: return compareArray(comparators, rhs);\n case Map:\n case MapRow:\n case StructRow:\n return compareObject(comparators, rhs, rhs.keys());\n case Object:\n case undefined: // support `Object.create(null)` objects\n return compareObject(comparators, rhs, keys || Object.keys(rhs));\n }\n return rhs instanceof Vector ? compareVector(comparators, rhs) : false;\n };\n}\n\nfunction compareArray(comparators: ((x: any) => boolean)[], arr: any[]) {\n const n = comparators.length;\n if (arr.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](arr[i]))) { return false; }\n }\n return true;\n}\n\nfunction compareVector(comparators: ((x: any) => boolean)[], vec: Vector) {\n const n = comparators.length;\n if (vec.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](vec.get(i)))) { return false; }\n }\n return true;\n}\n\nfunction compareObject(comparators: ((x: any) => boolean)[], obj: Map, keys: Iterable) {\n\n const lKeyItr = keys[Symbol.iterator]();\n const rKeyItr = obj instanceof Map ? obj.keys() : Object.keys(obj)[Symbol.iterator]();\n const rValItr = obj instanceof Map ? obj.values() : Object.values(obj)[Symbol.iterator]();\n\n let i = 0;\n let n = comparators.length;\n let rVal = rValItr.next();\n let lKey = lKeyItr.next();\n let rKey = rKeyItr.next();\n\n for (; i < n && !lKey.done && !rKey.done && !rVal.done;\n ++i, lKey = lKeyItr.next(), rKey = rKeyItr.next(), rVal = rValItr.next()) {\n if (lKey.value !== rKey.value || !comparators[i](rVal.value)) {\n break;\n }\n }\n if (i === n && lKey.done && rKey.done && rVal.done) {\n return true;\n }\n lKeyItr.return && lKeyItr.return();\n rKeyItr.return && rKeyItr.return();\n rValItr.return && rValItr.return();\n return false;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { clampRange } from '../util/vector';\nimport { DataType, Dictionary } from '../type';\nimport { selectChunkArgs } from '../util/args';\nimport { DictionaryVector } from './dictionary';\nimport { AbstractVector, Vector } from '../vector';\nimport { Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\ntype ChunkedDict = T extends Dictionary ? Vector : null | never;\n/** @ignore */\ntype ChunkedKeys = T extends Dictionary ? Vector | Chunked : null | never;\n\n/** @ignore */\nexport type SearchContinuation = (column: T, chunkIndex: number, valueIndex: number) => any;\n\n/** @ignore */\nexport class Chunked\n extends AbstractVector\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n /** @nocollapse */\n public static flatten(...vectors: (Vector | Vector[])[]) {\n return selectChunkArgs>(Vector, vectors);\n }\n\n /** @nocollapse */\n public static concat(...vectors: (Vector | Vector[])[]) {\n const chunks = Chunked.flatten(...vectors);\n return new Chunked(chunks[0].type, chunks);\n }\n\n protected _type: T;\n protected _length: number;\n protected _chunks: Vector[];\n protected _numChildren: number;\n protected _children?: Chunked[];\n protected _nullCount: number = -1;\n protected _chunkOffsets: Uint32Array;\n\n constructor(type: T, chunks: Vector[] = [], offsets = calculateOffsets(chunks)) {\n super();\n this._type = type;\n this._chunks = chunks;\n this._chunkOffsets = offsets;\n this._length = offsets[offsets.length - 1];\n this._numChildren = (this._type.children || []).length;\n }\n\n public get type() { return this._type; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get typeId(): T['TType'] { return this._type.typeId; }\n public get VectorName() { return `Chunked<${this._type}>`; }\n public get data(): Data {\n return this._chunks[0] ? this._chunks[0].data : null;\n }\n\n public get ArrayType() { return this._type.ArrayType; }\n public get numChildren() { return this._numChildren; }\n public get stride() { return this._chunks[0] ? this._chunks[0].stride : 1; }\n public get byteLength(): number {\n return this._chunks.reduce((byteLength, chunk) => byteLength + chunk.byteLength, 0);\n }\n public get nullCount() {\n let nullCount = this._nullCount;\n if (nullCount < 0) {\n this._nullCount = nullCount = this._chunks.reduce((x, { nullCount }) => x + nullCount, 0);\n }\n return nullCount;\n }\n\n protected _indices?: ChunkedKeys;\n public get indices(): ChunkedKeys | null {\n if (DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = ( this._chunks) as DictionaryVector[];\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices))) as ChunkedKeys;\n }\n return this._indices;\n }\n return null;\n }\n public get dictionary(): ChunkedDict | null {\n if (DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary as ChunkedDict;\n }\n return null;\n }\n\n public *[Symbol.iterator](): IterableIterator {\n for (const chunk of this._chunks) {\n yield* chunk;\n }\n }\n\n public clone(chunks = this._chunks): Chunked {\n return new Chunked(this._type, chunks);\n }\n\n public concat(...others: Vector[]): Chunked {\n return this.clone(Chunked.flatten(this, ...others));\n }\n\n public slice(begin?: number, end?: number): Chunked {\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public getChildAt(index: number): Chunked | null {\n\n if (index < 0 || index >= this._numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let child: Chunked, field: Field, chunks: Vector[];\n\n if (child = columns[index]) { return child; }\n if (field = ((this._type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked(field.type, chunks));\n }\n }\n\n return null;\n }\n\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n let idx = index;\n // binary search to find the child vector and value indices\n let offsets = this._chunkOffsets, rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0 ) { return null; }\n if (idx >= offsets[rhs]) { return null; }\n if (rhs <= 1 ) { return then ? then(this, 0, idx) : [0, idx]; }\n let lhs = 0, pos = 0, mid = 0;\n do {\n if (lhs + 1 === rhs) {\n return then ? then(this, lhs, idx - pos) : [lhs, idx - pos];\n }\n mid = lhs + ((rhs - lhs) / 2) | 0;\n idx >= offsets[mid] ? (lhs = mid) : (rhs = mid);\n } while (idx < offsets[rhs] && idx >= (pos = offsets[lhs]));\n return null;\n }\n\n public isValid(index: number): boolean {\n return !!this.search(index, this.isValidInternal);\n }\n\n public get(index: number): T['TValue'] | null {\n return this.search(index, this.getInternal);\n }\n\n public set(index: number, value: T['TValue'] | null): void {\n this.search(index, ({ chunks }, i, j) => chunks[i].set(j, value));\n }\n\n public indexOf(element: T['TValue'], offset?: number): number {\n if (offset && typeof offset === 'number') {\n return this.search(offset, (self, i, j) => this.indexOfInternal(self, i, j, element))!;\n }\n return this.indexOfInternal(this, 0, Math.max(0, offset || 0), element);\n }\n\n public toArray(): T['TArray'] {\n const { chunks } = this;\n const n = chunks.length;\n let ArrayType: any = this._type.ArrayType;\n if (n <= 0) { return new ArrayType(0); }\n if (n <= 1) { return chunks[0].toArray(); }\n let len = 0, src = new Array(n);\n for (let i = -1; ++i < n;) {\n len += (src[i] = chunks[i].toArray()).length;\n }\n if (ArrayType !== src[0].constructor) {\n ArrayType = src[0].constructor;\n }\n let dst = new ArrayType(len);\n let set: any = ArrayType === Array ? arraySet : typedSet;\n for (let i = -1, idx = 0; ++i < n;) {\n idx = set(src[i], dst, idx);\n }\n return dst;\n }\n\n protected getInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].get(j); }\n protected isValidInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].isValid(j); }\n protected indexOfInternal({ _chunks }: Chunked, chunkIndex: number, fromIndex: number, element: T['TValue']) {\n let i = chunkIndex - 1, n = _chunks.length;\n let start = fromIndex, offset = 0, found = -1;\n while (++i < n) {\n if (~(found = _chunks[i].indexOf(element, start))) {\n return offset + found;\n }\n start = 0;\n offset += _chunks[i].length;\n }\n return -1;\n }\n\n protected _sliceInternal(self: Chunked, begin: number, end: number) {\n const slices: Vector[] = [];\n const { chunks, _chunkOffsets: chunkOffsets } = self;\n for (let i = -1, n = chunks.length; ++i < n;) {\n const chunk = chunks[i];\n const chunkLength = chunk.length;\n const chunkOffset = chunkOffsets[i];\n // If the child is to the right of the slice boundary, we can stop\n if (chunkOffset >= end) { break; }\n // If the child is to the left of of the slice boundary, exclude\n if (begin >= chunkOffset + chunkLength) { continue; }\n // If the child is between both left and right boundaries, include w/o slicing\n if (chunkOffset >= begin && (chunkOffset + chunkLength) <= end) {\n slices.push(chunk);\n continue;\n }\n // If the child overlaps one of the slice boundaries, include that slice\n const from = Math.max(0, begin - chunkOffset);\n const to = Math.min(end - chunkOffset, chunkLength);\n slices.push(chunk.slice(from, to) as Vector);\n }\n return self.clone(slices);\n }\n}\n\n/** @ignore */\nfunction calculateOffsets(vectors: Vector[]) {\n let offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0, length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n\n/** @ignore */\nconst typedSet = (src: TypedArray, dst: TypedArray, offset: number) => {\n dst.set(src, offset);\n return (offset + src.length);\n};\n\n/** @ignore */\nconst arraySet = (src: any[], dst: any[], offset: number) => {\n let idx = offset;\n for (let i = -1, n = src.length; ++i < n;) {\n dst[idx++] = src[i];\n }\n return idx;\n};\n\n/** @ignore */\ninterface TypedArray extends ArrayBufferView {\n readonly length: number;\n readonly [n: number]: number;\n set(array: ArrayLike, offset?: number): void;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Field } from './schema';\nimport { DataType } from './type';\nimport { Vector } from './vector';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { VectorCtorArgs, VectorType as V } from './interfaces';\nimport { Chunked, SearchContinuation } from './vector/chunked';\n\nexport interface Column {\n typeId: T['TType'];\n concat(...others: Vector[]): Column;\n slice(begin?: number, end?: number): Column;\n clone(chunks?: Vector[], offsets?: Uint32Array): Column;\n}\n\nexport class Column\n extends Chunked\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n public static new(field: string | Field, ...chunks: (Vector | Vector[])[]): Column;\n public static new(field: string | Field, data: Data, ...args: VectorCtorArgs>): Column;\n /** @nocollapse */\n public static new(field: string | Field, data: Data | Vector | (Data | Vector)[], ...rest: any[]) {\n\n const chunks = Chunked.flatten(\n Array.isArray(data) ? [...data, ...rest] :\n data instanceof Vector ? [data, ...rest] :\n [Vector.new(data, ...rest)]\n );\n\n if (typeof field === 'string') {\n const type = chunks[0].data.type;\n field = new Field(field, type, true);\n } else if (!field.nullable && chunks.some(({ nullCount }) => nullCount > 0)) {\n field = field.clone({ nullable: true });\n }\n return new Column(field, chunks);\n }\n\n constructor(field: Field, vectors: Vector[] = [], offsets?: Uint32Array) {\n vectors = Chunked.flatten(...vectors);\n super(field.type, vectors, offsets);\n this._field = field;\n if (vectors.length === 1 && !(this instanceof SingleChunkColumn)) {\n return new SingleChunkColumn(field, vectors[0], this._chunkOffsets);\n }\n }\n\n protected _field: Field;\n protected _children?: Column[];\n\n public get field() { return this._field; }\n public get name() { return this._field.name; }\n public get nullable() { return this._field.nullable; }\n public get metadata() { return this._field.metadata; }\n\n public clone(chunks = this._chunks) {\n return new Column(this._field, chunks);\n }\n\n public getChildAt(index: number): Column | null {\n\n if (index < 0 || index >= this.numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let column: Column, field: Field, chunks: Vector[];\n\n if (column = columns[index]) { return column; }\n if (field = ((this.type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n\n return null;\n }\n}\n\n/** @ignore */\nclass SingleChunkColumn extends Column {\n protected _chunk: Vector;\n constructor(field: Field, vector: Vector, offsets?: Uint32Array) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n return then ? then(this, 0, index) : [0, index];\n }\n public isValid(index: number): boolean {\n return this._chunk.isValid(index);\n }\n public get(index: number): T['TValue'] | null {\n return this._chunk.get(index);\n }\n public set(index: number, value: T['TValue'] | null): void {\n this._chunk.set(index, value);\n }\n public indexOf(element: T['TValue'], offset?: number): number {\n return this._chunk.indexOf(element, offset);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from '../vector/chunked';\n\ntype RecordBatchCtor = typeof import('../recordbatch').RecordBatch;\n\nconst isArray = Array.isArray;\n\n/** @ignore */\nexport const selectArgs = (Ctor: any, vals: any[]) => _selectArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnArgs = (args: any[]) => {\n const [fields, values] = _selectFieldArgs(args, [[], []]);\n return values.map((x, i) =>\n x instanceof Column ? Column.new(x.field.clone(fields[i]), x) :\n x instanceof Vector ? Column.new(fields[i], x) as Column :\n Column.new(fields[i], [] as Vector[]));\n};\n\n/** @ignore */\nexport const selectFieldArgs = (args: any[]) => _selectFieldArgs(args, [[], []]);\n/** @ignore */\nexport const selectChunkArgs = (Ctor: any, vals: any[]) => _selectChunkArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectVectorChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectVectorChildrenArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectColumnChildrenArgs(Ctor, vals, [], 0) as T[];\n\n/** @ignore */\nfunction _selectArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectChunkArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n } else if (value instanceof Chunked) {\n j = _selectChunkArgs(Ctor, value.chunks, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectVectorChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Vector, value.schema.fields.map((_, i) => value.getChildAt(i)!), res, j).length;\n } else if (value instanceof Vector) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectColumnChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Column, value.schema.fields.map((f, i) => Column.new(f, value.getChildAt(i)!)), res, j).length;\n } else if (value instanceof Column) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nconst toKeysAndValues = (xs: [any[], any[]], [k, v]: [any, any], i: number) => (xs[0][i] = k, xs[1][i] = v, xs);\n\n/** @ignore */\nfunction _selectFieldArgs(vals: any[], ret: [Field[], Vector[]]): [Field[], (T[keyof T] | Vector)[]] {\n let keys: any[], n: number;\n switch (n = vals.length) {\n case 0: return ret;\n case 1:\n keys = ret[0];\n if (!(vals[0])) { return ret; }\n if (isArray(vals[0])) { return _selectFieldArgs(vals[0], ret); }\n if (!(vals[0] instanceof Data || vals[0] instanceof Vector || vals[0] instanceof DataType)) {\n [keys, vals] = Object.entries(vals[0]).reduce(toKeysAndValues, ret);\n }\n break;\n default:\n !isArray(keys = vals[n - 1])\n ? (vals = isArray(vals[0]) ? vals[0] : vals, keys = [])\n : (vals = isArray(vals[0]) ? vals[0] : vals.slice(0, n - 1));\n }\n\n let fieldIndex = -1;\n let valueIndex = -1;\n let idx = -1, len = vals.length;\n let field: number | string | Field;\n let val: Vector | Data;\n let [fields, values] = ret as [Field[], any[]];\n\n while (++idx < len) {\n val = vals[idx];\n if (val instanceof Column && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = val.field.clone(keys[idx], val.type, true);\n } else {\n ({ [idx]: field = idx } = keys);\n if (val instanceof DataType && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = Field.new(field, val as DataType, true) as Field;\n } else if (val && val.type && (values[++valueIndex] = val)) {\n val instanceof Data && (values[valueIndex] = val = Vector.new(val) as Vector);\n fields[++fieldIndex] = Field.new(field, val.type, true) as Field;\n }\n }\n }\n return ret;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { DataType } from './type';\nimport { selectArgs } from './util/args';\nimport { selectFieldArgs } from './util/args';\nimport { instance as comparer } from './visitor/typecomparator';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = T[keyof T][] | Data[] | Vector[];\n\nexport class Schema {\n\n public static from(children: T): Schema;\n public static from(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static from(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static from(...args: any[]) {\n return Schema.new(args[0], args[1]);\n }\n\n public static new(children: T): Schema;\n public static new(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static new(...args: any[]) {\n return new Schema(selectFieldArgs(args)[0]);\n }\n\n public readonly fields: Field[];\n public readonly metadata: Map;\n public readonly dictionaries: Map;\n\n constructor(fields: Field[] = [],\n metadata?: Map | null,\n dictionaries?: Map | null) {\n this.fields = (fields || []) as Field[];\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(fields);\n }\n this.dictionaries = dictionaries;\n }\n public get [Symbol.toStringTag]() { return 'Schema'; }\n public toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n\n public compareTo(other?: Schema | null): other is Schema {\n return comparer.compareSchemas(this, other);\n }\n\n public select(...columnNames: K[]) {\n const names = columnNames.reduce((xs, x) => (xs[x] = true) && xs, Object.create(null));\n return new Schema<{ [P in K]: T[P] }>(this.fields.filter((f) => names[f.name]), this.metadata);\n }\n public selectAt(...columnIndices: number[]) {\n return new Schema<{ [key: string]: K }>(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n\n public assign(schema: Schema): Schema;\n public assign(...fields: (Field | Field[])[]): Schema;\n public assign(...args: (Schema | Field | Field[])[]) {\n\n const other = args[0] instanceof Schema ? args[0] as Schema\n : new Schema(selectArgs>(Field, args));\n\n const curFields = [...this.fields] as Field[];\n const metadata = mergeMaps(mergeMaps(new Map(), this.metadata), other.metadata);\n const newFields = other.fields.filter((f2) => {\n const i = curFields.findIndex((f) => f.name === f2.name);\n return ~i ? (curFields[i] = f2.clone({\n metadata: mergeMaps(mergeMaps(new Map(), curFields[i].metadata), f2.metadata)\n })) && false : true;\n }) as Field[];\n\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n\n return new Schema(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\nexport class Field {\n\n public static new(props: { name: string | number, type: T, nullable?: boolean, metadata?: Map | null }): Field;\n public static new(name: string | number | Field, type: T, nullable?: boolean, metadata?: Map | null): Field;\n /** @nocollapse */\n public static new(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n if (args[0] && typeof args[0] === 'object') {\n ({ name } = args[0]);\n (type === undefined) && (type = args[0].type);\n (nullable === undefined) && (nullable = args[0].nullable);\n (metadata === undefined) && (metadata = args[0].metadata);\n }\n return new Field(`${name}`, type, nullable, metadata);\n }\n\n public readonly type: T;\n public readonly name: string;\n public readonly nullable: boolean;\n public readonly metadata: Map;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map | null) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n\n public get typeId() { return this.type.typeId; }\n public get [Symbol.toStringTag]() { return 'Field'; }\n public toString() { return `${this.name}: ${this.type}`; }\n public compareTo(other?: Field | null): other is Field {\n return comparer.compareField(this, other);\n }\n public clone(props: { name?: string | number, type?: R, nullable?: boolean, metadata?: Map | null }): Field;\n public clone(name?: string | number | Field, type?: R, nullable?: boolean, metadata?: Map | null): Field;\n public clone(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n (!args[0] || typeof args[0] !== 'object')\n ? ([name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata] = args)\n : ({name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata} = args[0]);\n return Field.new(name, type, nullable, metadata);\n }\n}\n\n/** @ignore */\nfunction mergeMaps(m1?: Map | null, m2?: Map | null): Map {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map()): Map {\n\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\n } else if (dictionaries.get(type.id) !== type.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n if (type.children && type.children.length > 0) {\n generateDictionaryMap(type.children, dictionaries);\n }\n }\n\n return dictionaries;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Schema.prototype as any).fields = null;\n(Schema.prototype as any).metadata = null;\n(Schema.prototype as any).dictionaries = null;\n\n(Field.prototype as any).type = null;\n(Field.prototype as any).name = null;\n(Field.prototype as any).nullable = null;\n(Field.prototype as any).metadata = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { DataType, List } from '../type';\nimport { OffsetsBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions, VariableWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class ListBuilder extends VariableWidthBuilder, TNull> {\n protected _run = new Run();\n protected _offsets: OffsetsBufferBuilder;\n constructor(opts: BuilderOptions, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new List(new Field(name, child.type, true));\n return this.numChildren - 1;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n protected _flushPending(pending: Map) {\n const run = this._run;\n const offsets = this._offsets;\n const setValue = this._setValue;\n let index = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.length);\n setValue(this, index, run.bind(value));\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListBuilder extends Builder, TNull> {\n protected _run = new Run();\n public setValue(index: number, value: T['TValue']) {\n super.setValue(index, this._run.bind(value));\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('FixedSizeListBuilder can only have one child.');\n }\n const childIndex = this.children.push(child);\n this.type = new FixedSizeList(this.type.listSize, new Field(name, child.type, true));\n return childIndex;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataType, Map_, Struct } from '../type';\nimport { Builder, VariableWidthBuilder } from '../builder';\n\n/** @ignore */ type MapValue = Map_['TValue'];\n/** @ignore */ type MapValues = Map | undefined>;\n/** @ignore */ type MapValueExt = MapValue | { [key: string]: V } | { [key: number]: V } ;\n\n/** @ignore */\nexport class MapBuilder extends VariableWidthBuilder, TNull> {\n\n protected _pending: MapValues | undefined;\n public set(index: number, value: MapValueExt | TNull) {\n return super.set(index, value as MapValue | TNull);\n }\n\n public setValue(index: number, value: MapValueExt) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map() as MapValues);\n const current = pending.get(index);\n current && (this._pendingLength -= current.size);\n this._pendingLength += value.size;\n pending.set(index, value);\n }\n\n public addChild(child: Builder>, name = `${this.numChildren}`) {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new Map_(new Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n\n protected _flushPending(pending: MapValues) {\n const offsets = this._offsets;\n const setValue = this._setValue;\n pending.forEach((value, index) => {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.size);\n setValue(this, index, value);\n }\n });\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */\nexport class StructBuilder extends Builder, TNull> {\n public addChild(child: Builder, name = `${this.numChildren}`) {\n const childIndex = this.children.push(child);\n this.type = new Struct([...this.type.children, new Field(name, child.type, true)]);\n return childIndex;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\nimport { Union, SparseUnion, DenseUnion } from '../type';\n\nexport interface UnionBuilderOptions extends BuilderOptions {\n valueToChildTypeId?: (builder: UnionBuilder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport abstract class UnionBuilder extends Builder {\n\n protected _typeIds: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._typeIds = new DataBufferBuilder(new Int8Array(0), 1);\n if (typeof options['valueToChildTypeId'] === 'function') {\n this._valueToChildTypeId = options['valueToChildTypeId'];\n }\n }\n\n public get typeIdToChildIndex() { return this.type.typeIdToChildIndex; }\n\n public append(value: T['TValue'] | TNull, childTypeId?: number) {\n return this.set(this.length, value, childTypeId);\n }\n\n public set(index: number, value: T['TValue'] | TNull, childTypeId?: number) {\n if (childTypeId === undefined) {\n childTypeId = this._valueToChildTypeId(this, value, index);\n }\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value, childTypeId);\n }\n return this;\n }\n\n // @ts-ignore\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n this._typeIds.set(index, childTypeId!);\n super.setValue(index, value);\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.children.length}`) {\n const childTypeId = this.children.push(child);\n const { type: { children, mode, typeIds } } = this;\n const fields = [...children, new Field(name, child.type)];\n this.type = new Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n\n /** @ignore */\n // @ts-ignore\n protected _valueToChildTypeId(builder: UnionBuilder, value: any, offset: number): number {\n throw new Error(`Cannot map UnionBuilder value to child typeId. \\\nPass the \\`childTypeId\\` as the second argument to unionBuilder.append(), \\\nor supply a \\`valueToChildTypeId\\` function as part of the UnionBuilder constructor options.`);\n }\n}\n\n/** @ignore */\nexport class SparseUnionBuilder extends UnionBuilder {}\n/** @ignore */\nexport class DenseUnionBuilder extends UnionBuilder {\n\n protected _offsets: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._offsets = new DataBufferBuilder(new Int32Array(0));\n }\n\n /** @ignore */\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n const childIndex = this.type.typeIdToChildIndex[childTypeId!];\n this._offsets.set(index, this.getChildAt(childIndex)!.length);\n return super.setValue(index, value, childTypeId);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { encodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { float64ToUint16 } from '../util/math';\nimport { toArrayBufferView } from '../util/buffer';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface SetVisitor extends Visitor {\n visit(node: T, index: number, value: T['TValue']): void;\n visitMany(nodes: T[], indices: number[], values: T['TValue'][]): void[];\n getVisitFn(node: T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n visitNull (vector: VectorType, index: number, value: T['TValue']): void;\n visitBool (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUtf8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitDate (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateDay (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestamp (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitDecimal (vector: VectorType, index: number, value: T['TValue']): void;\n visitList (vector: VectorType, index: number, value: T['TValue']): void;\n visitStruct (vector: VectorType, index: number, value: T['TValue']): void;\n visitUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDenseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitSparseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDictionary (vector: VectorType, index: number, value: T['TValue']): void;\n visitInterval (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalDayTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalYearMonth (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeList (vector: VectorType, index: number, value: T['TValue']): void;\n visitMap (vector: VectorType, index: number, value: T['TValue']): void;\n}\n\n/** @ignore */\nexport class SetVisitor extends Visitor {}\n\n/** @ignore */\nconst setEpochMsToDays = (data: Int32Array, index: number, epochMs: number) => { data[index] = (epochMs / 86400000) | 0; };\n/** @ignore */\nconst setEpochMsToMillisecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = (epochMs % 4294967296) | 0;\n data[index + 1] = (epochMs / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToMicrosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToNanosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000000) / 4294967296) | 0;\n};\n\n/** @ignore */\nconst setVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number, value: Uint8Array) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n if (x != null && y != null) {\n values.set(value.subarray(0, y - x), x);\n }\n};\n\n/** @ignore */\nconst setBool = ({ offset, values }: VectorType, index: number, val: boolean) => {\n const idx = offset + index;\n val ? (values[idx >> 3] |= (1 << (idx % 8))) // true\n : (values[idx >> 3] &= ~(1 << (idx % 8))); // false\n\n};\n\n/** @ignore */ type Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */ type Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst setDateDay = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (typeof value) {\n case 'bigint': vector.values64[index] = value; break;\n case 'number': vector.values[index * vector.stride] = value; break;\n default:\n const val = value as T['TArray'];\n const { stride, ArrayType } = vector;\n const long = toArrayBufferView(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, stride), stride * index); };\n\n/** @ignore */\nconst setBinary = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => {\n setVariableWidthBytes(values, valueOffsets, index, encodeUtf8(value));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.bitWidth < 64\n ? setNumeric(vector as VectorType, index, value as Numeric1X['TValue'])\n : setNumericX2(vector as VectorType, index, value as Numeric2X['TValue']);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.precision !== Precision.HALF\n ? setNumeric(vector as VectorType, index, value)\n : setFloat16(vector as VectorType, index, value);\n};\n\n/* istanbul ignore next */\nconst setDate = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.unit === DateUnit.DAY\n ? setDateDay(vector as VectorType, index, value)\n : setDateMillisecond(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setTimestampSecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimestampSecond(vector as VectorType, index, value);\n case TimeUnit.MILLISECOND: return setTimestampMillisecond(vector as VectorType, index, value);\n case TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector as VectorType, index, value);\n case TimeUnit.NANOSECOND: return setTimestampNanosecond(vector as VectorType, index, value);\n }\n};\n\n/** @ignore */\nconst setTimeSecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimeSecond(vector as VectorType, index, value as TimeSecond['TValue']);\n case TimeUnit.MILLISECOND: return setTimeMillisecond(vector as VectorType, index, value as TimeMillisecond['TValue']);\n case TimeUnit.MICROSECOND: return setTimeMicrosecond(vector as VectorType, index, value as TimeMicrosecond['TValue']);\n case TimeUnit.NANOSECOND: return setTimeNanosecond(vector as VectorType, index, value as TimeNanosecond['TValue']);\n }\n};\n\n/** @ignore */\nconst setDecimal = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 4), 4 * index); };\n\n/** @ignore */\nconst setList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, value.get(++idx));\n }\n};\n\n/** @ignore */\nconst setMap = (vector: VectorType, index: number, value: T['TValue']) => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n const entries = value instanceof Map ? [...value] : Object.entries(value);\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, entries[++idx]);\n }\n};\n\n/** @ignore */ const _setStructArrayValue = (o: number, v: any[]) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v[i]);\n/** @ignore */ const _setStructVectorValue = (o: number, v: Vector) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v.get(i));\n/** @ignore */ const _setStructMapValue = (o: number, v: Map) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v.get(f.name));\n/** @ignore */ const _setStructObjectValue = (o: number, v: { [key: string]: any }) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v[f.name]);\n/** @ignore */\nconst setStruct = (vector: VectorType, index: number, value: T['TValue']) => {\n\n const setValue = value instanceof Map ? _setStructMapValue(index, value) :\n value instanceof Vector ? _setStructVectorValue(index, value) :\n Array.isArray(value) ? _setStructArrayValue(index, value) :\n _setStructObjectValue(index, value) ;\n\n vector.type.children.forEach((f: Field, i: number) => setValue(vector.getChildAt(i), f, i));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number, value: V['TValue']) => {\n vector.type.mode === UnionMode.Dense ?\n setDenseUnion(vector as VectorType, index, value) :\n setSparseUnion(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setDenseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(vector.valueOffsets[index], value);\n};\n\n/** @ignore */\nconst setSparseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(index, value);\n};\n\n/** @ignore */\nconst setDictionary = (vector: VectorType, index: number, value: T['TValue']): void => {\n const key = vector.getKey(index);\n if (key !== null) {\n vector.setValue(key, value);\n }\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setIntervalValue = (vector: VectorType, index: number, value: T['TValue']): void => {\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector as VectorType, index, value)\n : setIntervalYearMonth(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setIntervalDayTime = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = ({ values }: VectorType, index: number, value: T['TValue']): void => { values[index] = (value[0] * 12) + (value[1] % 12); };\n\n/** @ignore */\nconst setFixedSizeList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n for (let idx = -1, offset = index * stride; ++idx < stride;) {\n child.set(offset + idx, value.get(idx));\n }\n};\n\nSetVisitor.prototype.visitBool = setBool;\nSetVisitor.prototype.visitInt = setInt;\nSetVisitor.prototype.visitInt8 = setNumeric;\nSetVisitor.prototype.visitInt16 = setNumeric;\nSetVisitor.prototype.visitInt32 = setNumeric;\nSetVisitor.prototype.visitInt64 = setNumericX2;\nSetVisitor.prototype.visitUint8 = setNumeric;\nSetVisitor.prototype.visitUint16 = setNumeric;\nSetVisitor.prototype.visitUint32 = setNumeric;\nSetVisitor.prototype.visitUint64 = setNumericX2;\nSetVisitor.prototype.visitFloat = setFloat;\nSetVisitor.prototype.visitFloat16 = setFloat16;\nSetVisitor.prototype.visitFloat32 = setNumeric;\nSetVisitor.prototype.visitFloat64 = setNumeric;\nSetVisitor.prototype.visitUtf8 = setUtf8;\nSetVisitor.prototype.visitBinary = setBinary;\nSetVisitor.prototype.visitFixedSizeBinary = setFixedSizeBinary;\nSetVisitor.prototype.visitDate = setDate;\nSetVisitor.prototype.visitDateDay = setDateDay;\nSetVisitor.prototype.visitDateMillisecond = setDateMillisecond;\nSetVisitor.prototype.visitTimestamp = setTimestamp;\nSetVisitor.prototype.visitTimestampSecond = setTimestampSecond;\nSetVisitor.prototype.visitTimestampMillisecond = setTimestampMillisecond;\nSetVisitor.prototype.visitTimestampMicrosecond = setTimestampMicrosecond;\nSetVisitor.prototype.visitTimestampNanosecond = setTimestampNanosecond;\nSetVisitor.prototype.visitTime = setTime;\nSetVisitor.prototype.visitTimeSecond = setTimeSecond;\nSetVisitor.prototype.visitTimeMillisecond = setTimeMillisecond;\nSetVisitor.prototype.visitTimeMicrosecond = setTimeMicrosecond;\nSetVisitor.prototype.visitTimeNanosecond = setTimeNanosecond;\nSetVisitor.prototype.visitDecimal = setDecimal;\nSetVisitor.prototype.visitList = setList;\nSetVisitor.prototype.visitStruct = setStruct;\nSetVisitor.prototype.visitUnion = setUnion;\nSetVisitor.prototype.visitDenseUnion = setDenseUnion;\nSetVisitor.prototype.visitSparseUnion = setSparseUnion;\nSetVisitor.prototype.visitDictionary = setDictionary;\nSetVisitor.prototype.visitInterval = setIntervalValue;\nSetVisitor.prototype.visitIntervalDayTime = setIntervalDayTime;\nSetVisitor.prototype.visitIntervalYearMonth = setIntervalYearMonth;\nSetVisitor.prototype.visitFixedSizeList = setFixedSizeList;\nSetVisitor.prototype.visitMap = setMap;\n\n/** @ignore */\nexport const instance = new SetVisitor();\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Footer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Footer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Footer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getRootAsFooter(bb: flatbuffers.ByteBuffer, obj?: Footer): Footer {\n return (obj || new Footer).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @param org.apache.arrow.flatbuf.Schema= obj\n * @returns org.apache.arrow.flatbuf.Schema|null\n */\n schema(obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Schema): NS7624605610262437867.org.apache.arrow.flatbuf.Schema | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Schema).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n dictionaries(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n dictionariesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n recordBatches(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n recordBatchesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder: flatbuffers.Builder) {\n builder.startObject(4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset schemaOffset\n */\n static addSchema(builder: flatbuffers.Builder, schemaOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, schemaOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionariesOffset\n */\n static addDictionaries(builder: flatbuffers.Builder, dictionariesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, dictionariesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startDictionariesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset recordBatchesOffset\n */\n static addRecordBatches(builder: flatbuffers.Builder, recordBatchesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, recordBatchesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startRecordBatchesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFooter(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishFooterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createFooter(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, schemaOffset: flatbuffers.Offset, dictionariesOffset: flatbuffers.Offset, recordBatchesOffset: flatbuffers.Offset): flatbuffers.Offset {\n Footer.startFooter(builder);\n Footer.addVersion(builder, version);\n Footer.addSchema(builder, schemaOffset);\n Footer.addDictionaries(builder, dictionariesOffset);\n Footer.addRecordBatches(builder, recordBatchesOffset);\n return Footer.endFooter(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Block {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Block\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Block {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * Index to the start of the RecordBlock (note this is past the Message header)\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * Length of the metadata\n *\n * @returns number\n */\n metaDataLength(): number {\n return this.bb!.readInt32(this.bb_pos + 8);\n }\n\n /**\n * Length of the data (this is aligned so there can be a gap between this and\n * the metatdata).\n *\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 16);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param number metaDataLength\n * @param flatbuffers.Long bodyLength\n * @returns flatbuffers.Offset\n */\n static createBlock(builder: flatbuffers.Builder, offset: flatbuffers.Long, metaDataLength: number, bodyLength: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 24);\n builder.writeInt64(bodyLength);\n builder.pad(4);\n builder.writeInt32(metaDataLength);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, BuilderCtor } from '../interfaces';\nimport { BinaryBuilder } from '../builder/binary';\nimport { BoolBuilder } from '../builder/bool';\nimport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from '../builder/date';\nimport { DecimalBuilder } from '../builder/decimal';\nimport { DictionaryBuilder } from '../builder/dictionary';\nimport { FixedSizeBinaryBuilder } from '../builder/fixedsizebinary';\nimport { FixedSizeListBuilder } from '../builder/fixedsizelist';\nimport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from '../builder/float';\nimport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from '../builder/interval';\nimport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from '../builder/int';\nimport { ListBuilder } from '../builder/list';\nimport { MapBuilder } from '../builder/map';\nimport { NullBuilder } from '../builder/null';\nimport { StructBuilder } from '../builder/struct';\nimport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from '../builder/timestamp';\nimport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from '../builder/time';\nimport { UnionBuilder, DenseUnionBuilder, SparseUnionBuilder } from '../builder/union';\nimport { Utf8Builder } from '../builder/utf8';\n\n/** @ignore */\nexport interface GetBuilderCtor extends Visitor {\n visit(type: T): BuilderCtor;\n visitMany(types: T[]): BuilderCtor[];\n getVisitFn(type: T): () => BuilderCtor;\n getVisitFn(node: VectorType | Data | T): () => BuilderCtor;\n}\n\n/** @ignore */\nexport class GetBuilderCtor extends Visitor {\n public visitNull () { return NullBuilder; }\n public visitBool () { return BoolBuilder; }\n public visitInt () { return IntBuilder; }\n public visitInt8 () { return Int8Builder; }\n public visitInt16 () { return Int16Builder; }\n public visitInt32 () { return Int32Builder; }\n public visitInt64 () { return Int64Builder; }\n public visitUint8 () { return Uint8Builder; }\n public visitUint16 () { return Uint16Builder; }\n public visitUint32 () { return Uint32Builder; }\n public visitUint64 () { return Uint64Builder; }\n public visitFloat () { return FloatBuilder; }\n public visitFloat16 () { return Float16Builder; }\n public visitFloat32 () { return Float32Builder; }\n public visitFloat64 () { return Float64Builder; }\n public visitUtf8 () { return Utf8Builder; }\n public visitBinary () { return BinaryBuilder; }\n public visitFixedSizeBinary () { return FixedSizeBinaryBuilder; }\n public visitDate () { return DateBuilder; }\n public visitDateDay () { return DateDayBuilder; }\n public visitDateMillisecond () { return DateMillisecondBuilder; }\n public visitTimestamp () { return TimestampBuilder; }\n public visitTimestampSecond () { return TimestampSecondBuilder; }\n public visitTimestampMillisecond () { return TimestampMillisecondBuilder; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondBuilder; }\n public visitTimestampNanosecond () { return TimestampNanosecondBuilder; }\n public visitTime () { return TimeBuilder; }\n public visitTimeSecond () { return TimeSecondBuilder; }\n public visitTimeMillisecond () { return TimeMillisecondBuilder; }\n public visitTimeMicrosecond () { return TimeMicrosecondBuilder; }\n public visitTimeNanosecond () { return TimeNanosecondBuilder; }\n public visitDecimal () { return DecimalBuilder; }\n public visitList () { return ListBuilder; }\n public visitStruct () { return StructBuilder; }\n public visitUnion () { return UnionBuilder; }\n public visitDenseUnion () { return DenseUnionBuilder; }\n public visitSparseUnion () { return SparseUnionBuilder; }\n public visitDictionary () { return DictionaryBuilder; }\n public visitInterval () { return IntervalBuilder; }\n public visitIntervalDayTime () { return IntervalDayTimeBuilder; }\n public visitIntervalYearMonth () { return IntervalYearMonthBuilder; }\n public visitFixedSizeList () { return FixedSizeListBuilder; }\n public visitMap () { return MapBuilder; }\n}\n\n/** @ignore */\nexport const instance = new GetBuilderCtor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport { Builder, BuilderOptions } from '../builder';\nexport { BoolBuilder } from './bool';\nexport { NullBuilder } from './null';\nexport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './date';\nexport { DecimalBuilder } from './decimal';\nexport { DictionaryBuilder } from './dictionary';\nexport { FixedSizeBinaryBuilder } from './fixedsizebinary';\nexport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './float';\nexport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './int';\nexport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './time';\nexport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './timestamp';\nexport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from './interval';\nexport { Utf8Builder } from './utf8';\nexport { BinaryBuilder } from './binary';\nexport { ListBuilder } from './list';\nexport { FixedSizeListBuilder } from './fixedsizelist';\nexport { MapBuilder } from './map';\nexport { StructBuilder } from './struct';\nexport { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './union';\n\nimport { Type } from '../enum';\nimport { Field } from '../schema';\nimport { DataType } from '../type';\nimport { Utf8Builder } from './utf8';\nimport { BuilderType as B } from '../interfaces';\nimport { Builder, BuilderOptions } from '../builder';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as getBuilderConstructor } from '../visitor/builderctor';\n\n/** @nocollapse */\nBuilder.new = newBuilder;\n\nfunction newBuilder(options: BuilderOptions): B {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn(type)())(options) as Builder;\n\n if (type.children && type.children.length > 0) {\n\n const children = options['children'] || [] as BuilderOptions[];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_: Field, i: number) => children[i] || defaultOptions)\n : (({ name }: Field) => children[name] || defaultOptions);\n\n type.children.forEach((field, index) => {\n const { type } = field;\n const opts = getChildOptions(field, index);\n builder.children.push(newBuilder({ ...opts, type }));\n });\n }\n\n return builder as B;\n}\n\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number' && T !== Type.NONE)\n .forEach((typeId) => {\n const BuilderCtor = getBuilderConstructor.visit(typeId);\n BuilderCtor.prototype._setValue = setVisitor.getVisitFn(typeId);\n });\n\n(Utf8Builder.prototype as any)._setValue = setVisitor.visitBinary;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport * as File_ from '../../fb/File';\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Block = File_.org.apache.arrow.flatbuf.Block;\nimport _Footer = File_.org.apache.arrow.flatbuf.Footer;\n\nimport { Schema } from '../../schema';\nimport { MetadataVersion } from '../../enum';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\n\n/** @ignore */\nclass Footer_ {\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const footer = _Footer.getRootAsFooter(buf);\n const schema = Schema.decode(footer.schema()!);\n return new OffHeapFooter(schema, footer) as Footer_;\n }\n\n /** @nocollapse */\n public static encode(footer: Footer_) {\n\n const b: Builder = new Builder();\n const schemaOffset = Schema.encode(b, footer.schema);\n\n _Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n const recordBatchesOffset = b.endVector();\n\n _Footer.startDictionariesVector(b, footer.numDictionaries);\n [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n\n const dictionaryBatchesOffset = b.endVector();\n\n _Footer.startFooter(b);\n _Footer.addSchema(b, schemaOffset);\n _Footer.addVersion(b, MetadataVersion.V4);\n _Footer.addRecordBatches(b, recordBatchesOffset);\n _Footer.addDictionaries(b, dictionaryBatchesOffset);\n _Footer.finishFooterBuffer(b, _Footer.endFooter(b));\n\n return b.asUint8Array();\n }\n\n // @ts-ignore\n protected _recordBatches: FileBlock[];\n // @ts-ignore\n protected _dictionaryBatches: FileBlock[];\n public get numRecordBatches() { return this._recordBatches.length; }\n public get numDictionaries() { return this._dictionaryBatches.length; }\n\n constructor(public schema: Schema,\n public version: MetadataVersion = MetadataVersion.V4,\n recordBatches?: FileBlock[], dictionaryBatches?: FileBlock[]) {\n recordBatches && (this._recordBatches = recordBatches);\n dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n }\n\n public *recordBatches(): Iterable {\n for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n if (block = this.getRecordBatch(i)) { yield block; }\n }\n }\n\n public *dictionaryBatches(): Iterable {\n for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n if (block = this.getDictionaryBatch(i)) { yield block; }\n }\n }\n\n public getRecordBatch(index: number) {\n return index >= 0\n && index < this.numRecordBatches\n && this._recordBatches[index] || null;\n }\n\n public getDictionaryBatch(index: number) {\n return index >= 0\n && index < this.numDictionaries\n && this._dictionaryBatches[index] || null;\n }\n}\n\nexport { Footer_ as Footer };\n\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n\n public get numRecordBatches() { return this._footer.recordBatchesLength(); }\n public get numDictionaries() { return this._footer.dictionariesLength(); }\n\n constructor(schema: Schema, protected _footer: _Footer) {\n super(schema, _footer.version());\n }\n\n public getRecordBatch(index: number) {\n if (index >= 0 && index < this.numRecordBatches) {\n const fileBlock = this._footer.recordBatches(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n\n public getDictionaryBatch(index: number) {\n if (index >= 0 && index < this.numDictionaries) {\n const fileBlock = this._footer.dictionaries(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n}\n\n/** @ignore */\nexport class FileBlock {\n\n /** @nocollapse */\n public static decode(block: _Block) {\n return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n }\n\n /** @nocollapse */\n public static encode(b: Builder, fileBlock: FileBlock) {\n const { metaDataLength } = fileBlock;\n const offset = new Long(fileBlock.offset, 0);\n const bodyLength = new Long(fileBlock.bodyLength, 0);\n return _Block.createBlock(b, offset, metaDataLength, bodyLength);\n }\n\n public offset: number;\n public bodyLength: number;\n public metaDataLength: number;\n\n constructor(metaDataLength: number, bodyLength: Long | number, offset: Long | number) {\n this.metaDataLength = metaDataLength;\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\nimport { decodeUtf8 } from '../util/utf8';\nimport { ITERATOR_DONE, Readable, Writable, AsyncQueue } from './interfaces';\nimport { toUint8Array, joinUint8Arrays, ArrayBufferViewInput } from '../util/buffer';\n\nimport {\n isPromise, isFetchResponse,\n isIterable, isAsyncIterable,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */\nexport type WritableSink = Writable | WritableStream | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource = Readable | PromiseLike | AsyncIterable | ReadableStream | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue extends AsyncQueue {\n public write(value: ArrayBufferViewInput | Uint8Array) {\n if ((value = toUint8Array(value)).byteLength > 0) {\n return super.write(value as T);\n }\n }\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync = false) {\n return sync\n ? decodeUtf8(this.toUint8Array(true))\n : this.toUint8Array(false).then(decodeUtf8);\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync = false) {\n return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n let buffers = [], byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator {\n // @ts-ignore\n private source: ByteStreamSource;\n constructor(source?: Iterable | ArrayBufferViewInput) {\n if (source) {\n this.source = new ByteStreamSource(streamAdapters.fromIterable(source));\n }\n }\n [Symbol.iterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\nexport class AsyncByteStream implements Readable, AsyncIterableIterator {\n // @ts-ignore\n private source: AsyncByteStreamSource;\n constructor(source?: PromiseLike | Response | ReadableStream | NodeJS.ReadableStream | AsyncIterable | Iterable) {\n if (source instanceof AsyncByteStream) {\n this.source = (source as AsyncByteStream).source;\n } else if (source instanceof AsyncByteQueue) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isReadableNodeStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromNodeStream(source));\n } else if (isReadableDOMStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source));\n } else if (isFetchResponse(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source.body!));\n } else if (isIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n } else if (isPromise(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isAsyncIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n }\n }\n [Symbol.asyncIterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public get closed(): Promise { return this.source.closed; }\n public cancel(reason?: any) { return this.source.cancel(reason); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\ninterface ByteStreamSourceIterator extends IterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): IteratorResult;\n}\n\n/** @ignore */\ninterface AsyncByteStreamSourceIterator extends AsyncIterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): Promise>;\n}\n\n/** @ignore */\nclass ByteStreamSource {\n constructor(protected source: ByteStreamSourceIterator) {}\n public cancel(reason?: any) { this.return(reason); }\n public peek(size?: number | null): T | null { return this.next(size, 'peek').value; }\n public read(size?: number | null): T | null { return this.next(size, 'read').value; }\n public next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return this.source.next({ cmd, size }); }\n public throw(value?: any) { return Object.create((this.source.throw && this.source.throw(value)) || ITERATOR_DONE); }\n public return(value?: any) { return Object.create((this.source.return && this.source.return(value)) || ITERATOR_DONE); }\n}\n\n/** @ignore */\nclass AsyncByteStreamSource implements Readable {\n\n private _closedPromise: Promise;\n private _closedPromiseResolve?: (value?: any) => void;\n constructor (protected source: ByteStreamSourceIterator | AsyncByteStreamSourceIterator) {\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n public async cancel(reason?: any) { await this.return(reason); }\n public get closed(): Promise { return this._closedPromise; }\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public async next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return (await this.source.next({ cmd, size })); }\n public async throw(value?: any) {\n const result = (this.source.throw && await this.source.throw(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n public async return(value?: any) {\n const result = (this.source.return && await this.source.return(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FileHandle } from './interfaces';\nimport { ByteStream, AsyncByteStream } from './stream';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\n\n/** @ignore */\nexport class RandomAccessFile extends ByteStream {\n public size: number;\n public position: number = 0;\n protected buffer: Uint8Array | null;\n constructor(buffer: ArrayBufferViewInput, byteLength?: number) {\n super();\n this.buffer = toUint8Array(buffer);\n this.size = typeof byteLength === 'undefined' ? this.buffer.byteLength : byteLength;\n }\n public readInt32(position: number) {\n const { buffer, byteOffset } = this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public seek(position: number) {\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public read(nBytes?: number | null) {\n const { buffer, size, position } = this;\n if (buffer && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n this.position = Math.min(size,\n position + Math.min(size - position, nBytes));\n return buffer.subarray(position, this.position);\n }\n return null;\n }\n public readAt(position: number, nBytes: number) {\n const buf = this.buffer;\n const end = Math.min(this.size, position + nBytes);\n return buf ? buf.subarray(position, end) : new Uint8Array(nBytes);\n }\n public close() { this.buffer && (this.buffer = null); }\n public throw(value?: any) { this.close(); return { done: true, value }; }\n public return(value?: any) { this.close(); return { done: true, value }; }\n}\n\n/** @ignore */\nexport class AsyncRandomAccessFile extends AsyncByteStream {\n // @ts-ignore\n public size: number;\n public position: number = 0;\n public _pending?: Promise;\n protected _handle: FileHandle | null;\n constructor(file: FileHandle, byteLength?: number) {\n super();\n this._handle = file;\n if (typeof byteLength === 'number') {\n this.size = byteLength;\n } else {\n this._pending = (async () => {\n this.size = (await file.stat()).size;\n delete this._pending;\n })();\n }\n }\n public async readInt32(position: number) {\n const { buffer, byteOffset } = await this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public async seek(position: number) {\n this._pending && await this._pending;\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public async read(nBytes?: number | null) {\n this._pending && await this._pending;\n const { _handle: file, size, position } = this;\n if (file && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n let pos = position, offset = 0, bytesRead = 0;\n let end = Math.min(size, pos + Math.min(size - pos, nBytes));\n let buffer = new Uint8Array(Math.max(0, (this.position = end) - pos));\n while ((pos += bytesRead) < end && (offset += bytesRead) < buffer.byteLength) {\n ({ bytesRead } = await file.read(buffer, offset, buffer.byteLength - offset, pos));\n }\n return buffer;\n }\n return null;\n }\n public async readAt(position: number, nBytes: number) {\n this._pending && await this._pending;\n const { _handle: file, size } = this;\n if (file && (position + nBytes) < size) {\n const end = Math.min(size, position + nBytes);\n const buffer = new Uint8Array(end - position);\n return (await file.read(buffer, 0, nBytes, position)).buffer;\n }\n return new Uint8Array(nBytes);\n }\n public async close() { const f = this._handle; this._handle = null; f && await f.close(); }\n public async throw(value?: any) { await this.close(); return { done: true, value }; }\n public async return(value?: any) { await this.close(); return { done: true, value }; }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nconst carryBit16 = 1 << 16;\n\n/** @ignore */\nfunction intAsHex(value: number): string {\n if (value < 0) {\n value = 0xFFFFFFFF + value + 1;\n }\n return `0x${value.toString(16)}`;\n}\n\n/** @ignore */\nconst kInt32DecimalDigits = 8;\n/** @ignore */\nconst kPowersOfTen = [1,\n 10,\n 100,\n 1000,\n 10000,\n 100000,\n 1000000,\n 10000000,\n 100000000];\n\n/** @ignore */\nexport class BaseInt64 {\n constructor (protected buffer: Uint32Array) {}\n\n public high(): number { return this.buffer[1]; }\n public low (): number { return this.buffer[0]; }\n\n protected _times(other: BaseInt64) {\n // Break the left and right numbers into 16 bit chunks\n // so that we can multiply them without overflow.\n const L = new Uint32Array([\n this.buffer[1] >>> 16,\n this.buffer[1] & 0xFFFF,\n this.buffer[0] >>> 16,\n this.buffer[0] & 0xFFFF\n ]);\n\n const R = new Uint32Array([\n other.buffer[1] >>> 16,\n other.buffer[1] & 0xFFFF,\n other.buffer[0] >>> 16,\n other.buffer[0] & 0xFFFF\n ]);\n\n let product = L[3] * R[3];\n this.buffer[0] = product & 0xFFFF;\n\n let sum = product >>> 16;\n\n product = L[2] * R[3];\n sum += product;\n\n product = (L[3] * R[2]) >>> 0;\n sum += product;\n\n this.buffer[0] += sum << 16;\n\n this.buffer[1] = (sum >>> 0 < product ? carryBit16 : 0);\n\n this.buffer[1] += sum >>> 16;\n this.buffer[1] += L[1] * R[3] + L[2] * R[2] + L[3] * R[1];\n this.buffer[1] += (L[0] * R[3] + L[1] * R[2] + L[2] * R[1] + L[3] * R[0]) << 16;\n\n return this;\n }\n\n protected _plus(other: BaseInt64) {\n const sum = (this.buffer[0] + other.buffer[0]) >>> 0;\n this.buffer[1] += other.buffer[1];\n if (sum < (this.buffer[0] >>> 0)) {\n ++this.buffer[1];\n }\n this.buffer[0] = sum;\n }\n\n public lessThan(other: BaseInt64): boolean {\n return this.buffer[1] < other.buffer[1] ||\n (this.buffer[1] === other.buffer[1] && this.buffer[0] < other.buffer[0]);\n }\n\n public equals(other: BaseInt64): boolean {\n return this.buffer[1] === other.buffer[1] && this.buffer[0] == other.buffer[0];\n }\n\n public greaterThan(other: BaseInt64): boolean {\n return other.lessThan(this);\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n}\n\n/** @ignore */\nexport class Uint64 extends BaseInt64 {\n public times(other: Uint64): Uint64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Uint64): Uint64 {\n this._plus(other);\n return this;\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Uint64 {\n return Uint64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Uint64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Uint64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Uint64 {\n const length = str.length;\n\n let out = new Uint64(out_buffer);\n for (let posn = 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Uint64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Uint64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Uint64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int64 extends BaseInt64 {\n public negate(): Int64 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n return this;\n }\n\n public times(other: Int64): Int64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Int64): Int64 {\n this._plus(other);\n return this;\n }\n\n public lessThan(other: Int64): boolean {\n // force high bytes to be signed\n const this_high = this.buffer[1] << 0;\n const other_high = other.buffer[1] << 0;\n return this_high < other_high ||\n (this_high === other_high && this.buffer[0] < other.buffer[0]);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Int64 {\n return Int64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Int64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Int64 {\n // TODO: Assert that out_buffer is 0 and length = 2\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int64(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Int64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Int64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int128 {\n constructor (private buffer: Uint32Array) {\n // buffer[3] MSB (high)\n // buffer[2]\n // buffer[1]\n // buffer[0] LSB (low)\n }\n\n public high(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n }\n\n public low(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset, 2));\n }\n\n public negate(): Int128 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n this.buffer[2] = ~this.buffer[2];\n this.buffer[3] = ~this.buffer[3];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n if (this.buffer[1] == 0) { ++this.buffer[2]; }\n if (this.buffer[2] == 0) { ++this.buffer[3]; }\n return this;\n }\n\n public times(other: Int128): Int128 {\n // Break the left and right numbers into 32 bit chunks\n // so that we can multiply them without overflow.\n const L0 = new Uint64(new Uint32Array([this.buffer[3], 0]));\n const L1 = new Uint64(new Uint32Array([this.buffer[2], 0]));\n const L2 = new Uint64(new Uint32Array([this.buffer[1], 0]));\n const L3 = new Uint64(new Uint32Array([this.buffer[0], 0]));\n\n const R0 = new Uint64(new Uint32Array([other.buffer[3], 0]));\n const R1 = new Uint64(new Uint32Array([other.buffer[2], 0]));\n const R2 = new Uint64(new Uint32Array([other.buffer[1], 0]));\n const R3 = new Uint64(new Uint32Array([other.buffer[0], 0]));\n\n let product = Uint64.multiply(L3, R3);\n this.buffer[0] = product.low();\n\n let sum = new Uint64(new Uint32Array([product.high(), 0]));\n\n product = Uint64.multiply(L2, R3);\n sum.plus(product);\n\n product = Uint64.multiply(L3, R2);\n sum.plus(product);\n\n this.buffer[1] = sum.low();\n\n this.buffer[3] = (sum.lessThan(product) ? 1 : 0);\n\n this.buffer[2] = sum.high();\n let high = new Uint64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n\n high.plus(Uint64.multiply(L1, R3))\n .plus(Uint64.multiply(L2, R2))\n .plus(Uint64.multiply(L3, R1));\n this.buffer[3] += Uint64.multiply(L0, R3)\n .plus(Uint64.multiply(L1, R2))\n .plus(Uint64.multiply(L2, R1))\n .plus(Uint64.multiply(L3, R0)).low();\n\n return this;\n }\n\n public plus(other: Int128): Int128 {\n let sums = new Uint32Array(4);\n sums[3] = (this.buffer[3] + other.buffer[3]) >>> 0;\n sums[2] = (this.buffer[2] + other.buffer[2]) >>> 0;\n sums[1] = (this.buffer[1] + other.buffer[1]) >>> 0;\n sums[0] = (this.buffer[0] + other.buffer[0]) >>> 0;\n\n if (sums[0] < (this.buffer[0] >>> 0)) {\n ++sums[1];\n }\n if (sums[1] < (this.buffer[1] >>> 0)) {\n ++sums[2];\n }\n if (sums[2] < (this.buffer[2] >>> 0)) {\n ++sums[3];\n }\n\n this.buffer[3] = sums[3];\n this.buffer[2] = sums[2];\n this.buffer[1] = sums[1];\n this.buffer[0] = sums[0];\n\n return this;\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[3])} ${intAsHex(this.buffer[2])} ${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n\n /** @nocollapse */\n public static multiply(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(4)): Int128 {\n return Int128.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(4)): Int128 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int128.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(4)): Int128 {\n // TODO: Assert that out_buffer is 0 and length = 4\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int128(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int128(new Uint32Array([parseInt(str.substr(posn, group), 10), 0, 0, 0]));\n const multiple = new Int128(new Uint32Array([kPowersOfTen[group], 0, 0, 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n // TODO: Distinguish between string and number at compile-time\n const data = new Uint32Array(values.length * 4);\n for (let i = -1, n = values.length; ++i < n;) {\n Int128.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 4 * 4 * i, 4));\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport * as type from '../type';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { packBools } from '../util/bit';\nimport { encodeUtf8 } from '../util/utf8';\nimport { Int64, Int128 } from '../util/int';\nimport { UnionMode, DateUnit } from '../enum';\nimport { toArrayBufferView } from '../util/buffer';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\n\n/** @ignore */\nexport interface VectorLoader extends Visitor {\n visit(node: Field | T): Data;\n visitMany(nodes: (Field | T)[]): Data[];\n}\n\n/** @ignore */\nexport class VectorLoader extends Visitor {\n private bytes: Uint8Array;\n private nodes: FieldNode[];\n private nodesIndex: number = -1;\n private buffers: BufferRegion[];\n private buffersIndex: number = -1;\n private dictionaries: Map>;\n constructor(bytes: Uint8Array, nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super();\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n\n public visit(node: Field | T): Data {\n return super.visit(node instanceof Field ? node.type : node);\n }\n\n public visitNull (type: T, { length, } = this.nextFieldNode()) { return Data.Null(type, 0, length); }\n public visitBool (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitInt (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFloat (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitUtf8 (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Utf8(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Binary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitFixedSizeBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDate (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTimestamp (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTime (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDecimal (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.List(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n public visitStruct (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n public visitUnion (type: T ) { return type.mode === UnionMode.Sparse ? this.visitSparseUnion(type as type.SparseUnion) : this.visitDenseUnion(type as type.DenseUnion); }\n public visitDenseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.readOffsets(type), this.visitMany(type.children)); }\n public visitSparseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.visitMany(type.children)); }\n public visitDictionary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Dictionary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type.indices), this.readDictionary(type)); }\n public visitInterval (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFixedSizeList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeList(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visit(type.children[0])); }\n public visitMap (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Map(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n\n protected nextFieldNode() { return this.nodes[++this.nodesIndex]; }\n protected nextBufferRange() { return this.buffers[++this.buffersIndex]; }\n protected readNullBitmap(type: T, nullCount: number, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n protected readOffsets(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readTypeIds(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readData(_type: T, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n protected readDictionary(type: T): Vector {\n return this.dictionaries.get(type.id)!;\n }\n}\n\n/** @ignore */\nexport class JSONVectorLoader extends VectorLoader {\n private sources: any[][];\n constructor(sources: any[][], nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n protected readNullBitmap(_type: T, nullCount: number, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);\n }\n protected readOffsets(_type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(Int32Array, this.sources[offset]));\n }\n protected readTypeIds(type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n protected readData(type: T, { offset } = this.nextBufferRange()) {\n const { sources } = this;\n if (DataType.isTimestamp(type)) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if ((DataType.isInt(type) || DataType.isTime(type)) && type.bitWidth === 64) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDate(type) && type.unit === DateUnit.MILLISECOND) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDecimal(type)) {\n return toArrayBufferView(Uint8Array, Int128.convertArray(sources[offset] as string[]));\n } else if (DataType.isBinary(type) || DataType.isFixedSizeBinary(type)) {\n return binaryDataFromJSON(sources[offset] as string[]);\n } else if (DataType.isBool(type)) {\n return packBools(sources[offset] as number[]);\n } else if (DataType.isUtf8(type)) {\n return encodeUtf8((sources[offset] as string[]).join(''));\n }\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));\n }\n}\n\n/** @ignore */\nfunction binaryDataFromJSON(values: string[]) {\n // \"DATA\": [\"49BC7D5B6C47D2\",\"3F5FB6D9322026\"]\n // There are definitely more efficient ways to do this... but it gets the\n // job done.\n const joined = values.join('');\n const data = new Uint8Array(joined.length / 2);\n for (let i = 0; i < joined.length; i += 2) {\n data[i >> 1] = parseInt(joined.substr(i, 2), 16);\n }\n return data;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport * as Schema_ from '../fb/Schema';\n\nimport * as type from '../type';\nimport { Visitor } from '../visitor';\n\nimport Null = Schema_.org.apache.arrow.flatbuf.Null;\nimport Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport FloatingPoint = Schema_.org.apache.arrow.flatbuf.FloatingPoint;\nimport Binary = Schema_.org.apache.arrow.flatbuf.Binary;\nimport Bool = Schema_.org.apache.arrow.flatbuf.Bool;\nimport Utf8 = Schema_.org.apache.arrow.flatbuf.Utf8;\nimport Decimal = Schema_.org.apache.arrow.flatbuf.Decimal;\nimport Date = Schema_.org.apache.arrow.flatbuf.Date;\nimport Time = Schema_.org.apache.arrow.flatbuf.Time;\nimport Timestamp = Schema_.org.apache.arrow.flatbuf.Timestamp;\nimport Interval = Schema_.org.apache.arrow.flatbuf.Interval;\nimport List = Schema_.org.apache.arrow.flatbuf.List;\nimport Struct = Schema_.org.apache.arrow.flatbuf.Struct_;\nimport Union = Schema_.org.apache.arrow.flatbuf.Union;\nimport DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\nimport FixedSizeBinary = Schema_.org.apache.arrow.flatbuf.FixedSizeBinary;\nimport FixedSizeList = Schema_.org.apache.arrow.flatbuf.FixedSizeList;\nimport Map_ = Schema_.org.apache.arrow.flatbuf.Map;\n\n/** @ignore */\nexport interface TypeAssembler extends Visitor {\n visit(node: T, builder: Builder): number | undefined;\n}\n\n/** @ignore */\nexport class TypeAssembler extends Visitor {\n public visit(node: T, builder: Builder): number | undefined {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n public visitNull(_node: T, b: Builder) {\n Null.startNull(b);\n return Null.endNull(b);\n }\n public visitInt(node: T, b: Builder) {\n Int.startInt(b);\n Int.addBitWidth(b, node.bitWidth);\n Int.addIsSigned(b, node.isSigned);\n return Int.endInt(b);\n }\n public visitFloat(node: T, b: Builder) {\n FloatingPoint.startFloatingPoint(b);\n FloatingPoint.addPrecision(b, node.precision);\n return FloatingPoint.endFloatingPoint(b);\n }\n public visitBinary(_node: T, b: Builder) {\n Binary.startBinary(b);\n return Binary.endBinary(b);\n }\n public visitBool(_node: T, b: Builder) {\n Bool.startBool(b);\n return Bool.endBool(b);\n }\n public visitUtf8(_node: T, b: Builder) {\n Utf8.startUtf8(b);\n return Utf8.endUtf8(b);\n }\n public visitDecimal(node: T, b: Builder) {\n Decimal.startDecimal(b);\n Decimal.addScale(b, node.scale);\n Decimal.addPrecision(b, node.precision);\n return Decimal.endDecimal(b);\n }\n public visitDate(node: T, b: Builder) {\n Date.startDate(b);\n Date.addUnit(b, node.unit);\n return Date.endDate(b);\n }\n public visitTime(node: T, b: Builder) {\n Time.startTime(b);\n Time.addUnit(b, node.unit);\n Time.addBitWidth(b, node.bitWidth);\n return Time.endTime(b);\n }\n public visitTimestamp(node: T, b: Builder) {\n const timezone = (node.timezone && b.createString(node.timezone)) || undefined;\n Timestamp.startTimestamp(b);\n Timestamp.addUnit(b, node.unit);\n if (timezone !== undefined) {\n Timestamp.addTimezone(b, timezone);\n }\n return Timestamp.endTimestamp(b);\n }\n public visitInterval(node: T, b: Builder) {\n Interval.startInterval(b);\n Interval.addUnit(b, node.unit);\n return Interval.endInterval(b);\n }\n public visitList(_node: T, b: Builder) {\n List.startList(b);\n return List.endList(b);\n }\n public visitStruct(_node: T, b: Builder) {\n Struct.startStruct_(b);\n return Struct.endStruct_(b);\n }\n public visitUnion(node: T, b: Builder) {\n Union.startTypeIdsVector(b, node.typeIds.length);\n const typeIds = Union.createTypeIdsVector(b, node.typeIds);\n Union.startUnion(b);\n Union.addMode(b, node.mode);\n Union.addTypeIds(b, typeIds);\n return Union.endUnion(b);\n }\n public visitDictionary(node: T, b: Builder) {\n const indexType = this.visit(node.indices, b);\n DictionaryEncoding.startDictionaryEncoding(b);\n DictionaryEncoding.addId(b, new Long(node.id, 0));\n DictionaryEncoding.addIsOrdered(b, node.isOrdered);\n if (indexType !== undefined) {\n DictionaryEncoding.addIndexType(b, indexType);\n }\n return DictionaryEncoding.endDictionaryEncoding(b);\n }\n public visitFixedSizeBinary(node: T, b: Builder) {\n FixedSizeBinary.startFixedSizeBinary(b);\n FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(b);\n }\n public visitFixedSizeList(node: T, b: Builder) {\n FixedSizeList.startFixedSizeList(b);\n FixedSizeList.addListSize(b, node.listSize);\n return FixedSizeList.endFixedSizeList(b);\n }\n public visitMap(node: T, b: Builder) {\n Map_.startMap(b);\n Map_.addKeysSorted(b, node.keysSorted);\n return Map_.endMap(b);\n }\n}\n\n/** @ignore */\nexport const instance = new TypeAssembler();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Schema, Field } from '../../schema';\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\nimport { DictionaryBatch, RecordBatch, FieldNode, BufferRegion } from './message';\nimport { TimeUnit, Precision, IntervalUnit, UnionMode, DateUnit } from '../../enum';\n\n/** @ignore */\nexport function schemaFromJSON(_schema: any, dictionaries: Map = new Map()) {\n return new Schema(\n schemaFieldsFromJSON(_schema, dictionaries),\n customMetadataFromJSON(_schema['customMetadata']),\n dictionaries\n );\n}\n\n/** @ignore */\nexport function recordBatchFromJSON(b: any) {\n return new RecordBatch(\n b['count'],\n fieldNodesFromJSON(b['columns']),\n buffersFromJSON(b['columns'])\n );\n}\n\n/** @ignore */\nexport function dictionaryBatchFromJSON(b: any) {\n return new DictionaryBatch(\n recordBatchFromJSON(b['data']),\n b['id'], b['isDelta']\n );\n}\n\n/** @ignore */\nfunction schemaFieldsFromJSON(_schema: any, dictionaries?: Map) {\n return (_schema['fields'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldChildrenFromJSON(_field: any, dictionaries?: Map): Field[] {\n return (_field['children'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldNodesFromJSON(xs: any[]): FieldNode[] {\n return (xs || []).reduce((fieldNodes, column: any) => [\n ...fieldNodes,\n new FieldNode(\n column['count'],\n nullCountFromJSON(column['VALIDITY'])\n ),\n ...fieldNodesFromJSON(column['children'])\n ], [] as FieldNode[]);\n}\n\n/** @ignore */\nfunction buffersFromJSON(xs: any[], buffers: BufferRegion[] = []): BufferRegion[] {\n for (let i = -1, n = (xs || []).length; ++i < n;) {\n const column = xs[i];\n column['VALIDITY'] && buffers.push(new BufferRegion(buffers.length, column['VALIDITY'].length));\n column['TYPE'] && buffers.push(new BufferRegion(buffers.length, column['TYPE'].length));\n column['OFFSET'] && buffers.push(new BufferRegion(buffers.length, column['OFFSET'].length));\n column['DATA'] && buffers.push(new BufferRegion(buffers.length, column['DATA'].length));\n buffers = buffersFromJSON(column['children'], buffers);\n }\n return buffers;\n}\n\n/** @ignore */\nfunction nullCountFromJSON(validity: number[]) {\n return (validity || []).reduce((sum, val) => sum + +(val === 0), 0);\n}\n\n/** @ignore */\nexport function fieldFromJSON(_field: any, dictionaries?: Map) {\n\n let id: number;\n let keys: TKeys | null;\n let field: Field | void;\n let dictMeta: any;\n let type: DataType;\n let dictType: Dictionary;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = _field['dictionary'])) {\n type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries));\n field = new Field(_field['name'], type, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta['id'])) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictionaries.set(id, type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction customMetadataFromJSON(_metadata?: object) {\n return new Map(Object.entries(_metadata || {}));\n}\n\n/** @ignore */\nfunction indexTypeFromJSON(_type: any) {\n return new Int(_type['isSigned'], _type['bitWidth']);\n}\n\n/** @ignore */\nfunction typeFromJSON(f: any, children?: Field[]): DataType {\n\n const typeId = f['type']['name'];\n\n switch (typeId) {\n case 'NONE': return new Null();\n case 'null': return new Null();\n case 'binary': return new Binary();\n case 'utf8': return new Utf8();\n case 'bool': return new Bool();\n case 'list': return new List((children || [])[0]);\n case 'struct': return new Struct(children || []);\n case 'struct_': return new Struct(children || []);\n }\n\n switch (typeId) {\n case 'int': {\n const t = f['type'];\n return new Int(t['isSigned'], t['bitWidth'] as IntBitWidth);\n }\n case 'floatingpoint': {\n const t = f['type'];\n return new Float(Precision[t['precision']] as any);\n }\n case 'decimal': {\n const t = f['type'];\n return new Decimal(t['scale'], t['precision']);\n }\n case 'date': {\n const t = f['type'];\n return new Date_(DateUnit[t['unit']] as any);\n }\n case 'time': {\n const t = f['type'];\n return new Time(TimeUnit[t['unit']] as any, t['bitWidth'] as TimeBitWidth);\n }\n case 'timestamp': {\n const t = f['type'];\n return new Timestamp(TimeUnit[t['unit']] as any, t['timezone']);\n }\n case 'interval': {\n const t = f['type'];\n return new Interval(IntervalUnit[t['unit']] as any);\n }\n case 'union': {\n const t = f['type'];\n return new Union(UnionMode[t['mode']] as any, (t['typeIds'] || []), children || []);\n }\n case 'fixedsizebinary': {\n const t = f['type'];\n return new FixedSizeBinary(t['byteWidth']);\n }\n case 'fixedsizelist': {\n const t = f['type'];\n return new FixedSizeList(t['listSize'], (children || [])[0]);\n }\n case 'map': {\n const t = f['type'];\n return new Map_((children || [])[0], t['keysSorted']);\n }\n }\n throw new Error(`Unrecognized type: \"${typeId}\"`);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as Schema_ from '../../fb/Schema';\nimport * as Message_ from '../../fb/Message';\n\nimport { Schema, Field } from '../../schema';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\nimport { MessageHeader, MetadataVersion } from '../../enum';\nimport { instance as typeAssembler } from '../../visitor/typeassembler';\nimport { fieldFromJSON, schemaFromJSON, recordBatchFromJSON, dictionaryBatchFromJSON } from './json';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport Type = Schema_.org.apache.arrow.flatbuf.Type;\nimport _Field = Schema_.org.apache.arrow.flatbuf.Field;\nimport _Schema = Schema_.org.apache.arrow.flatbuf.Schema;\nimport _Buffer = Schema_.org.apache.arrow.flatbuf.Buffer;\nimport _Message = Message_.org.apache.arrow.flatbuf.Message;\nimport _KeyValue = Schema_.org.apache.arrow.flatbuf.KeyValue;\nimport _FieldNode = Message_.org.apache.arrow.flatbuf.FieldNode;\nimport _Endianness = Schema_.org.apache.arrow.flatbuf.Endianness;\nimport _RecordBatch = Message_.org.apache.arrow.flatbuf.RecordBatch;\nimport _DictionaryBatch = Message_.org.apache.arrow.flatbuf.DictionaryBatch;\nimport _DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\n\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\n/**\n * @ignore\n * @private\n **/\nexport class Message {\n\n /** @nocollapse */\n public static fromJSON(msg: any, headerType: T): Message {\n const message = new Message(0, MetadataVersion.V4, headerType);\n message._createHeader = messageHeaderFromJSON(msg, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const _message = _Message.getRootAsMessage(buf);\n const bodyLength: Long = _message.bodyLength()!;\n const version: MetadataVersion = _message.version();\n const headerType: MessageHeader = _message.headerType();\n const message = new Message(bodyLength, version, headerType);\n message._createHeader = decodeMessageHeader(_message, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static encode(message: Message) {\n let b = new Builder(), headerOffset = -1;\n if (message.isSchema()) {\n headerOffset = Schema.encode(b, message.header() as Schema);\n } else if (message.isRecordBatch()) {\n headerOffset = RecordBatch.encode(b, message.header() as RecordBatch);\n } else if (message.isDictionaryBatch()) {\n headerOffset = DictionaryBatch.encode(b, message.header() as DictionaryBatch);\n }\n _Message.startMessage(b);\n _Message.addVersion(b, MetadataVersion.V4);\n _Message.addHeader(b, headerOffset);\n _Message.addHeaderType(b, message.headerType);\n _Message.addBodyLength(b, new Long(message.bodyLength, 0));\n _Message.finishMessageBuffer(b, _Message.endMessage(b));\n return b.asUint8Array();\n }\n\n /** @nocollapse */\n public static from(header: Schema | RecordBatch | DictionaryBatch, bodyLength = 0) {\n if (header instanceof Schema) {\n return new Message(0, MetadataVersion.V4, MessageHeader.Schema, header);\n }\n if (header instanceof RecordBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.RecordBatch, header);\n }\n if (header instanceof DictionaryBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.DictionaryBatch, header);\n }\n throw new Error(`Unrecognized Message header: ${header}`);\n }\n\n // @ts-ignore\n public body: Uint8Array;\n protected _headerType: T;\n protected _bodyLength: number;\n protected _version: MetadataVersion;\n public get type() { return this.headerType; }\n public get version() { return this._version; }\n public get headerType() { return this._headerType; }\n public get bodyLength() { return this._bodyLength; }\n // @ts-ignore\n protected _createHeader: MessageHeaderDecoder;\n public header() { return this._createHeader(); }\n public isSchema(): this is Message { return this.headerType === MessageHeader.Schema; }\n public isRecordBatch(): this is Message { return this.headerType === MessageHeader.RecordBatch; }\n public isDictionaryBatch(): this is Message { return this.headerType === MessageHeader.DictionaryBatch; }\n\n constructor(bodyLength: Long | number, version: MetadataVersion, headerType: T, header?: any) {\n this._version = version;\n this._headerType = headerType;\n this.body = new Uint8Array(0);\n header && (this._createHeader = () => header);\n this._bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class RecordBatch {\n protected _length: number;\n protected _nodes: FieldNode[];\n protected _buffers: BufferRegion[];\n public get nodes() { return this._nodes; }\n public get length() { return this._length; }\n public get buffers() { return this._buffers; }\n constructor(length: Long | number, nodes: FieldNode[], buffers: BufferRegion[]) {\n this._nodes = nodes;\n this._buffers = buffers;\n this._length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class DictionaryBatch {\n\n protected _id: number;\n protected _isDelta: boolean;\n protected _data: RecordBatch;\n public get id() { return this._id; }\n public get data() { return this._data; }\n public get isDelta() { return this._isDelta; }\n public get length(): number { return this.data.length; }\n public get nodes(): FieldNode[] { return this.data.nodes; }\n public get buffers(): BufferRegion[] { return this.data.buffers; }\n\n constructor(data: RecordBatch, id: Long | number, isDelta: boolean = false) {\n this._data = data;\n this._isDelta = isDelta;\n this._id = typeof id === 'number' ? id : id.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class BufferRegion {\n public offset: number;\n public length: number;\n constructor(offset: Long | number, length: Long | number) {\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class FieldNode {\n public length: number;\n public nullCount: number;\n constructor(length: Long | number, nullCount: Long | number) {\n this.length = typeof length === 'number' ? length : length.low;\n this.nullCount = typeof nullCount === 'number' ? nullCount : nullCount.low;\n }\n}\n\n/** @ignore */\nfunction messageHeaderFromJSON(message: any, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.fromJSON(message);\n case MessageHeader.RecordBatch: return RecordBatch.fromJSON(message);\n case MessageHeader.DictionaryBatch: return DictionaryBatch.fromJSON(message);\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\n/** @ignore */\nfunction decodeMessageHeader(message: _Message, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.decode(message.header(new _Schema())!);\n case MessageHeader.RecordBatch: return RecordBatch.decode(message.header(new _RecordBatch())!, message.version());\n case MessageHeader.DictionaryBatch: return DictionaryBatch.decode(message.header(new _DictionaryBatch())!, message.version());\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\nField['encode'] = encodeField;\nField['decode'] = decodeField;\nField['fromJSON'] = fieldFromJSON;\n\nSchema['encode'] = encodeSchema;\nSchema['decode'] = decodeSchema;\nSchema['fromJSON'] = schemaFromJSON;\n\nRecordBatch['encode'] = encodeRecordBatch;\nRecordBatch['decode'] = decodeRecordBatch;\nRecordBatch['fromJSON'] = recordBatchFromJSON;\n\nDictionaryBatch['encode'] = encodeDictionaryBatch;\nDictionaryBatch['decode'] = decodeDictionaryBatch;\nDictionaryBatch['fromJSON'] = dictionaryBatchFromJSON;\n\nFieldNode['encode'] = encodeFieldNode;\nFieldNode['decode'] = decodeFieldNode;\n\nBufferRegion['encode'] = encodeBufferRegion;\nBufferRegion['decode'] = decodeBufferRegion;\n\ndeclare module '../../schema' {\n namespace Field {\n export { encodeField as encode };\n export { decodeField as decode };\n export { fieldFromJSON as fromJSON };\n }\n namespace Schema {\n export { encodeSchema as encode };\n export { decodeSchema as decode };\n export { schemaFromJSON as fromJSON };\n }\n}\n\ndeclare module './message' {\n namespace RecordBatch {\n export { encodeRecordBatch as encode };\n export { decodeRecordBatch as decode };\n export { recordBatchFromJSON as fromJSON };\n }\n namespace DictionaryBatch {\n export { encodeDictionaryBatch as encode };\n export { decodeDictionaryBatch as decode };\n export { dictionaryBatchFromJSON as fromJSON };\n }\n namespace FieldNode {\n export { encodeFieldNode as encode };\n export { decodeFieldNode as decode };\n }\n namespace BufferRegion {\n export { encodeBufferRegion as encode };\n export { decodeBufferRegion as decode };\n }\n}\n\n/** @ignore */\nfunction decodeSchema(_schema: _Schema, dictionaries: Map = new Map()) {\n const fields = decodeSchemaFields(_schema, dictionaries);\n return new Schema(fields, decodeCustomMetadata(_schema), dictionaries);\n}\n\n/** @ignore */\nfunction decodeRecordBatch(batch: _RecordBatch, version = MetadataVersion.V4) {\n return new RecordBatch(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version));\n}\n\n/** @ignore */\nfunction decodeDictionaryBatch(batch: _DictionaryBatch, version = MetadataVersion.V4) {\n return new DictionaryBatch(RecordBatch.decode(batch.data()!, version), batch.id(), batch.isDelta());\n}\n\n/** @ignore */\nfunction decodeBufferRegion(b: _Buffer) {\n return new BufferRegion(b.offset(), b.length());\n}\n\n/** @ignore */\nfunction decodeFieldNode(f: _FieldNode) {\n return new FieldNode(f.length(), f.nullCount());\n}\n\n/** @ignore */\nfunction decodeFieldNodes(batch: _RecordBatch) {\n const nodes = [] as FieldNode[];\n for (let f, i = -1, j = -1, n = batch.nodesLength(); ++i < n;) {\n if (f = batch.nodes(i)) {\n nodes[++j] = FieldNode.decode(f);\n }\n }\n return nodes;\n}\n\n/** @ignore */\nfunction decodeBuffers(batch: _RecordBatch, version: MetadataVersion) {\n const bufferRegions = [] as BufferRegion[];\n for (let b, i = -1, j = -1, n = batch.buffersLength(); ++i < n;) {\n if (b = batch.buffers(i)) {\n // If this Arrow buffer was written before version 4,\n // advance the buffer's bb_pos 8 bytes to skip past\n // the now-removed page_id field\n if (version < MetadataVersion.V4) {\n b.bb_pos += (8 * (i + 1));\n }\n bufferRegions[++j] = BufferRegion.decode(b);\n }\n }\n return bufferRegions;\n}\n\n/** @ignore */\nfunction decodeSchemaFields(schema: _Schema, dictionaries?: Map) {\n const fields = [] as Field[];\n for (let f, i = -1, j = -1, n = schema.fieldsLength(); ++i < n;) {\n if (f = schema.fields(i)) {\n fields[++j] = Field.decode(f, dictionaries);\n }\n }\n return fields;\n}\n\n/** @ignore */\nfunction decodeFieldChildren(field: _Field, dictionaries?: Map): Field[] {\n const children = [] as Field[];\n for (let f, i = -1, j = -1, n = field.childrenLength(); ++i < n;) {\n if (f = field.children(i)) {\n children[++j] = Field.decode(f, dictionaries);\n }\n }\n return children;\n}\n\n/** @ignore */\nfunction decodeField(f: _Field, dictionaries?: Map) {\n\n let id: number;\n let field: Field | void;\n let type: DataType;\n let keys: _Int | TKeys | null;\n let dictType: Dictionary;\n let dictMeta: _DictionaryEncoding | null;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = f.dictionary())) {\n type = decodeFieldType(f, decodeFieldChildren(f, dictionaries));\n field = new Field(f.name()!, type, f.nullable(), decodeCustomMetadata(f));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta.id().low)) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictionaries.set(id, type = decodeFieldType(f, decodeFieldChildren(f, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction decodeCustomMetadata(parent?: _Schema | _Field | null) {\n const data = new Map();\n if (parent) {\n for (let entry, key, i = -1, n = parent.customMetadataLength() | 0; ++i < n;) {\n if ((entry = parent.customMetadata(i)) && (key = entry.key()) != null) {\n data.set(key, entry.value()!);\n }\n }\n }\n return data;\n}\n\n/** @ignore */\nfunction decodeIndexType(_type: _Int) {\n return new Int(_type.isSigned(), _type.bitWidth() as IntBitWidth);\n}\n\n/** @ignore */\nfunction decodeFieldType(f: _Field, children?: Field[]): DataType {\n\n const typeId = f.typeType();\n\n switch (typeId) {\n case Type.NONE: return new Null();\n case Type.Null: return new Null();\n case Type.Binary: return new Binary();\n case Type.Utf8: return new Utf8();\n case Type.Bool: return new Bool();\n case Type.List: return new List((children || [])[0]);\n case Type.Struct_: return new Struct(children || []);\n }\n\n switch (typeId) {\n case Type.Int: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Int())!;\n return new Int(t.isSigned(), t.bitWidth());\n }\n case Type.FloatingPoint: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FloatingPoint())!;\n return new Float(t.precision());\n }\n case Type.Decimal: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Decimal())!;\n return new Decimal(t.scale(), t.precision());\n }\n case Type.Date: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Date())!;\n return new Date_(t.unit());\n }\n case Type.Time: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Time())!;\n return new Time(t.unit(), t.bitWidth() as TimeBitWidth);\n }\n case Type.Timestamp: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Timestamp())!;\n return new Timestamp(t.unit(), t.timezone());\n }\n case Type.Interval: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Interval())!;\n return new Interval(t.unit());\n }\n case Type.Union: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Union())!;\n return new Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Type.FixedSizeBinary: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeBinary())!;\n return new FixedSizeBinary(t.byteWidth());\n }\n case Type.FixedSizeList: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeList())!;\n return new FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Type.Map: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Map())!;\n return new Map_((children || [])[0], t.keysSorted());\n }\n }\n throw new Error(`Unrecognized type: \"${Type[typeId]}\" (${typeId})`);\n}\n\n/** @ignore */\nfunction encodeSchema(b: Builder, schema: Schema) {\n\n const fieldOffsets = schema.fields.map((f) => Field.encode(b, f));\n\n _Schema.startFieldsVector(b, fieldOffsets.length);\n\n const fieldsVectorOffset = _Schema.createFieldsVector(b, fieldOffsets);\n\n const metadataOffset = !(schema.metadata && schema.metadata.size > 0) ? -1 :\n _Schema.createCustomMetadataVector(b, [...schema.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n _Schema.startSchema(b);\n _Schema.addFields(b, fieldsVectorOffset);\n _Schema.addEndianness(b, platformIsLittleEndian ? _Endianness.Little : _Endianness.Big);\n\n if (metadataOffset !== -1) { _Schema.addCustomMetadata(b, metadataOffset); }\n\n return _Schema.endSchema(b);\n}\n\n/** @ignore */\nfunction encodeField(b: Builder, field: Field) {\n\n let nameOffset = -1;\n let typeOffset = -1;\n let dictionaryOffset = -1;\n\n let type = field.type;\n let typeId: Type = field.typeId;\n\n if (!DataType.isDictionary(type)) {\n typeOffset = typeAssembler.visit(type, b)!;\n } else {\n typeId = type.dictionary.typeId;\n dictionaryOffset = typeAssembler.visit(type, b)!;\n typeOffset = typeAssembler.visit(type.dictionary, b)!;\n }\n\n const childOffsets = (type.children || []).map((f: Field) => Field.encode(b, f));\n const childrenVectorOffset = _Field.createChildrenVector(b, childOffsets);\n\n const metadataOffset = !(field.metadata && field.metadata.size > 0) ? -1 :\n _Field.createCustomMetadataVector(b, [...field.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n if (field.name) {\n nameOffset = b.createString(field.name);\n }\n\n _Field.startField(b);\n _Field.addType(b, typeOffset);\n _Field.addTypeType(b, typeId);\n _Field.addChildren(b, childrenVectorOffset);\n _Field.addNullable(b, !!field.nullable);\n\n if (nameOffset !== -1) { _Field.addName(b, nameOffset); }\n if (dictionaryOffset !== -1) { _Field.addDictionary(b, dictionaryOffset); }\n if (metadataOffset !== -1) { _Field.addCustomMetadata(b, metadataOffset); }\n\n return _Field.endField(b);\n}\n\n/** @ignore */\nfunction encodeRecordBatch(b: Builder, recordBatch: RecordBatch) {\n\n const nodes = recordBatch.nodes || [];\n const buffers = recordBatch.buffers || [];\n\n _RecordBatch.startNodesVector(b, nodes.length);\n nodes.slice().reverse().forEach((n) => FieldNode.encode(b, n));\n\n const nodesVectorOffset = b.endVector();\n\n _RecordBatch.startBuffersVector(b, buffers.length);\n buffers.slice().reverse().forEach((b_) => BufferRegion.encode(b, b_));\n\n const buffersVectorOffset = b.endVector();\n\n _RecordBatch.startRecordBatch(b);\n _RecordBatch.addLength(b, new Long(recordBatch.length, 0));\n _RecordBatch.addNodes(b, nodesVectorOffset);\n _RecordBatch.addBuffers(b, buffersVectorOffset);\n return _RecordBatch.endRecordBatch(b);\n}\n\n/** @ignore */\nfunction encodeDictionaryBatch(b: Builder, dictionaryBatch: DictionaryBatch) {\n const dataOffset = RecordBatch.encode(b, dictionaryBatch.data);\n _DictionaryBatch.startDictionaryBatch(b);\n _DictionaryBatch.addId(b, new Long(dictionaryBatch.id, 0));\n _DictionaryBatch.addIsDelta(b, dictionaryBatch.isDelta);\n _DictionaryBatch.addData(b, dataOffset);\n return _DictionaryBatch.endDictionaryBatch(b);\n}\n\n/** @ignore */\nfunction encodeFieldNode(b: Builder, node: FieldNode) {\n return _FieldNode.createFieldNode(b, new Long(node.length, 0), new Long(node.nullCount, 0));\n}\n\n/** @ignore */\nfunction encodeBufferRegion(b: Builder, node: BufferRegion) {\n return _Buffer.createBuffer(b, new Long(node.offset, 0), new Long(node.length, 0));\n}\n\n/** @ignore */\nconst platformIsLittleEndian = (function() {\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256;\n})();\n\n/** @ignore */\ntype MessageHeaderDecoder = () => T extends MessageHeader.Schema ? Schema\n : T extends MessageHeader.RecordBatch ? RecordBatch\n : T extends MessageHeader.DictionaryBatch ? DictionaryBatch : never;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MessageHeader } from '../enum';\nimport { flatbuffers } from 'flatbuffers';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { Message } from './metadata/message';\nimport { isFileHandle } from '../util/compat';\nimport { AsyncRandomAccessFile } from '../io/file';\nimport { toUint8Array, ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, ReadableSource, AsyncByteStream } from '../io/stream';\nimport { ArrowJSON, ArrowJSONLike, ITERATOR_DONE, FileHandle } from '../io/interfaces';\n\n/** @ignore */ const invalidMessageType = (type: MessageHeader) => `Expected ${MessageHeader[type]} Message in stream, but was null or length 0.`;\n/** @ignore */ const nullMessage = (type: MessageHeader) => `Header pointer of flatbuffer-encoded ${MessageHeader[type]} Message is null or length 0.`;\n/** @ignore */ const invalidMessageMetadata = (expected: number, actual: number) => `Expected to read ${expected} metadata bytes, but only read ${actual}.`;\n/** @ignore */ const invalidMessageBodyLength = (expected: number, actual: number) => `Expected to read ${expected} bytes for message body, but only read ${actual}.`;\n\n/** @ignore */\nexport class MessageReader implements IterableIterator {\n protected source: ByteStream;\n constructor(source: ByteStream | ArrayBufferViewInput | Iterable) {\n this.source = source instanceof ByteStream ? source : new ByteStream(source);\n }\n public [Symbol.iterator](): IterableIterator { return this as IterableIterator; }\n public next(): IteratorResult {\n let r;\n if ((r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readMessageBody(bodyLength: number): Uint8Array {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected readMetadataLength(): IteratorResult {\n const buf = this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected readMetadata(metadataLength: number): IteratorResult {\n const buf = this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class AsyncMessageReader implements AsyncIterableIterator {\n protected source: AsyncByteStream;\n constructor(source: ReadableSource);\n constructor(source: FileHandle, byteLength?: number);\n constructor(source: any, byteLength?: number) {\n this.source = source instanceof AsyncByteStream ? source\n : isFileHandle(source)\n ? new AsyncRandomAccessFile(source, byteLength!)\n : new AsyncByteStream(source);\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator { return this as AsyncIterableIterator; }\n public async next(): Promise> {\n let r;\n if ((r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = await this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public async throw(value?: any) { return await this.source.throw(value); }\n public async return(value?: any) { return await this.source.return(value); }\n public async readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = await this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public async readMessageBody(bodyLength: number): Promise {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(await this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public async readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = await this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected async readMetadataLength(): Promise> {\n const buf = await this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected async readMetadata(metadataLength: number): Promise> {\n const buf = await this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class JSONMessageReader extends MessageReader {\n private _schema = false;\n private _json: ArrowJSON;\n private _body: any[] = [];\n private _batchIndex = 0;\n private _dictionaryIndex = 0;\n constructor(source: ArrowJSON | ArrowJSONLike) {\n super(new Uint8Array(0));\n this._json = source instanceof ArrowJSON ? source : new ArrowJSON(source);\n }\n public next() {\n const { _json } = this;\n if (!this._schema) {\n this._schema = true;\n const message = Message.fromJSON(_json.schema, MessageHeader.Schema);\n return { done: false, value: message };\n }\n if (this._dictionaryIndex < _json.dictionaries.length) {\n const batch = _json.dictionaries[this._dictionaryIndex++];\n this._body = batch['data']['columns'];\n const message = Message.fromJSON(batch, MessageHeader.DictionaryBatch);\n return { done: false, value: message };\n }\n if (this._batchIndex < _json.batches.length) {\n const batch = _json.batches[this._batchIndex++];\n this._body = batch['columns'];\n const message = Message.fromJSON(batch, MessageHeader.RecordBatch);\n return { done: false, value: message };\n }\n this._body = [];\n return ITERATOR_DONE;\n }\n public readMessageBody(_bodyLength?: number) {\n return flattenDataSources(this._body) as any;\n function flattenDataSources(xs: any[]): any[][] {\n return (xs || []).reduce((buffers, column: any) => [\n ...buffers,\n ...(column['VALIDITY'] && [column['VALIDITY']] || []),\n ...(column['TYPE'] && [column['TYPE']] || []),\n ...(column['OFFSET'] && [column['OFFSET']] || []),\n ...(column['DATA'] && [column['DATA']] || []),\n ...flattenDataSources(column['children'])\n ], [] as any[][]);\n }\n }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readSchema() {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (!message || !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n}\n\n/** @ignore */\nexport const PADDING = 4;\n/** @ignore */\nexport const MAGIC_STR = 'ARROW1';\n/** @ignore */\nexport const MAGIC = new Uint8Array(MAGIC_STR.length);\n\nfor (let i = 0; i < MAGIC_STR.length; i += 1 | 0) {\n MAGIC[i] = MAGIC_STR.charCodeAt(i);\n}\n\n/** @ignore */\nexport function checkForMagicArrowString(buffer: Uint8Array, index = 0) {\n for (let i = -1, n = MAGIC.length; ++i < n;) {\n if (MAGIC[i] !== buffer[index + i]) {\n return false;\n }\n }\n return true;\n}\n\n/** @ignore */\nexport const magicLength = MAGIC.length;\n/** @ignore */\nexport const magicAndPadding = magicLength + PADDING;\n/** @ignore */\nexport const magicX2AndPadding = magicLength * 2 + PADDING;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { Type, UnionMode } from '../enum';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { rebaseValueOffsets } from '../util/buffer';\nimport { packBools, truncateBitmap } from '../util/bit';\nimport { selectVectorChildrenArgs } from '../util/args';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp, Union,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n} from '../type';\n\n/** @ignore */\nexport interface VectorAssembler extends Visitor {\n visit(node: T): this;\n visitMany(nodes: T[]): this[];\n getVisitFn(node: T): (vector: V) => this;\n getVisitFn(node: V | Data | T): (vector: V) => this;\n\n visitBool (vector: V): this;\n visitInt (vector: V): this;\n visitFloat (vector: V): this;\n visitUtf8 (vector: V): this;\n visitBinary (vector: V): this;\n visitFixedSizeBinary (vector: V): this;\n visitDate (vector: V): this;\n visitTimestamp (vector: V): this;\n visitTime (vector: V): this;\n visitDecimal (vector: V): this;\n visitList (vector: V): this;\n visitStruct (vector: V): this;\n visitUnion (vector: V): this;\n visitInterval (vector: V): this;\n visitFixedSizeList (vector: V): this;\n visitMap (vector: V): this;\n}\n\n/** @ignore */\nexport class VectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble(...args: (T | T[])[]) {\n const assembler = new VectorAssembler();\n const vectorChildren = selectVectorChildrenArgs(RecordBatch, args);\n const [assembleResult = assembler] = assembler.visitMany(vectorChildren);\n return assembleResult;\n }\n\n private constructor() { super(); }\n\n public visit(vector: T): this {\n if (!DataType.isDictionary(vector.type)) {\n const { data, length, nullCount } = vector;\n if (length > 2147483647) {\n /* istanbul ignore next */\n throw new RangeError('Cannot write arrays larger than 2^31 - 1 in length');\n }\n if (!DataType.isNull(vector.type)) {\n addBuffer.call(this, nullCount <= 0\n ? new Uint8Array(0) // placeholder validity buffer\n : truncateBitmap(data.offset, length, data.nullBitmap)\n );\n }\n this.nodes.push(new FieldNode(length, nullCount));\n }\n return super.visit(vector);\n }\n\n public visitNull(_nullV: V) {\n return this;\n }\n public visitDictionary(vector: V) {\n // Assemble the indices here, Dictionary assembled separately.\n return this.visit(vector.indices);\n }\n\n public get nodes() { return this._nodes; }\n public get buffers() { return this._buffers; }\n public get byteLength() { return this._byteLength; }\n public get bufferRegions() { return this._bufferRegions; }\n\n protected _byteLength = 0;\n protected _nodes: FieldNode[] = [];\n protected _buffers: ArrayBufferView[] = [];\n protected _bufferRegions: BufferRegion[] = [];\n}\n\n/** @ignore */\nfunction addBuffer(this: VectorAssembler, values: ArrayBufferView) {\n const byteLength = (values.byteLength + 7) & ~7; // Round up to a multiple of 8\n this.buffers.push(values);\n this.bufferRegions.push(new BufferRegion(this._byteLength, byteLength));\n this._byteLength += byteLength;\n return this;\n}\n\n/** @ignore */\nfunction assembleUnion(this: VectorAssembler, vector: V) {\n const { type, length, typeIds, valueOffsets } = vector;\n // All Union Vectors have a typeIds buffer\n addBuffer.call(this, typeIds);\n // If this is a Sparse Union, treat it like all other Nested types\n if (type.mode === UnionMode.Sparse) {\n return assembleNestedVector.call(this, vector);\n } else if (type.mode === UnionMode.Dense) {\n // If this is a Dense Union, add the valueOffsets buffer and potentially slice the children\n if (vector.offset <= 0) {\n // If the Vector hasn't been sliced, write the existing valueOffsets\n addBuffer.call(this, valueOffsets);\n // We can treat this like all other Nested types\n return assembleNestedVector.call(this, vector);\n } else {\n // A sliced Dense Union is an unpleasant case. Because the offsets are different for\n // each child vector, we need to \"rebase\" the valueOffsets for each child\n // Union typeIds are not necessary 0-indexed\n const maxChildTypeId = typeIds.reduce((x, y) => Math.max(x, y), typeIds[0]);\n const childLengths = new Int32Array(maxChildTypeId + 1);\n // Set all to -1 to indicate that we haven't observed a first occurrence of a particular child yet\n const childOffsets = new Int32Array(maxChildTypeId + 1).fill(-1);\n const shiftedOffsets = new Int32Array(length);\n // If we have a non-zero offset, then the value offsets do not start at\n // zero. We must a) create a new offsets array with shifted offsets and\n // b) slice the values array accordingly\n const unshiftedOffsets = rebaseValueOffsets(-valueOffsets[0], length, valueOffsets);\n for (let typeId, shift, index = -1; ++index < length;) {\n if ((shift = childOffsets[typeId = typeIds[index]]) === -1) {\n shift = childOffsets[typeId] = unshiftedOffsets[typeId];\n }\n shiftedOffsets[index] = unshiftedOffsets[index] - shift;\n ++childLengths[typeId];\n }\n addBuffer.call(this, shiftedOffsets);\n // Slice and visit children accordingly\n for (let child: Vector | null, childIndex = -1, numChildren = type.children.length; ++childIndex < numChildren;) {\n if (child = vector.getChildAt(childIndex)) {\n const typeId = type.typeIds[childIndex];\n const childLength = Math.min(length, childLengths[typeId]);\n this.visit(child.slice(childOffsets[typeId], childLength));\n }\n }\n }\n }\n return this;\n}\n\n/** @ignore */\nfunction assembleBoolVector(this: VectorAssembler, vector: V) {\n // Bool vector is a special case of FlatVector, as its data buffer needs to stay packed\n let values: Uint8Array;\n if (vector.nullCount >= vector.length) {\n // If all values are null, just insert a placeholder empty data buffer (fastest path)\n return addBuffer.call(this, new Uint8Array(0));\n } else if ((values = vector.values) instanceof Uint8Array) {\n // If values is already a Uint8Array, slice the bitmap (fast path)\n return addBuffer.call(this, truncateBitmap(vector.offset, vector.length, values));\n }\n // Otherwise if the underlying data *isn't* a Uint8Array, enumerate the\n // values as bools and re-pack them into a Uint8Array. This code isn't\n // reachable unless you're trying to manipulate the Data internals,\n // we we're only doing this for safety.\n /* istanbul ignore next */\n return addBuffer.call(this, packBools(vector));\n}\n\n/** @ignore */\nfunction assembleFlatVector(this: VectorAssembler, vector: V) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n\n/** @ignore */\nfunction assembleFlatListVector(this: VectorAssembler, vector: V) {\n const { length, values, valueOffsets } = vector;\n const firstOffset = valueOffsets[0];\n const lastOffset = valueOffsets[length];\n const byteLength = Math.min(lastOffset - firstOffset, values.byteLength - firstOffset);\n // Push in the order FlatList types read their buffers\n addBuffer.call(this, rebaseValueOffsets(-valueOffsets[0], length, valueOffsets)); // valueOffsets buffer first\n addBuffer.call(this, values.subarray(firstOffset, firstOffset + byteLength)); // sliced values buffer second\n return this;\n}\n\n/** @ignore */\nfunction assembleListVector(this: VectorAssembler, vector: V) {\n const { length, valueOffsets } = vector;\n // If we have valueOffsets (MapVector, ListVector), push that buffer first\n if (valueOffsets) {\n addBuffer.call(this, rebaseValueOffsets(valueOffsets[0], length, valueOffsets));\n }\n // Then insert the List's values child\n return this.visit(vector.getChildAt(0)!);\n}\n\n/** @ignore */\nfunction assembleNestedVector(this: VectorAssembler, vector: V) {\n return this.visitMany(vector.type.children.map((_, i) => vector.getChildAt(i)!).filter(Boolean))[0];\n}\n\nVectorAssembler.prototype.visitBool = assembleBoolVector;\nVectorAssembler.prototype.visitInt = assembleFlatVector;\nVectorAssembler.prototype.visitFloat = assembleFlatVector;\nVectorAssembler.prototype.visitUtf8 = assembleFlatListVector;\nVectorAssembler.prototype.visitBinary = assembleFlatListVector;\nVectorAssembler.prototype.visitFixedSizeBinary = assembleFlatVector;\nVectorAssembler.prototype.visitDate = assembleFlatVector;\nVectorAssembler.prototype.visitTimestamp = assembleFlatVector;\nVectorAssembler.prototype.visitTime = assembleFlatVector;\nVectorAssembler.prototype.visitDecimal = assembleFlatVector;\nVectorAssembler.prototype.visitList = assembleListVector;\nVectorAssembler.prototype.visitStruct = assembleNestedVector;\nVectorAssembler.prototype.visitUnion = assembleUnion;\nVectorAssembler.prototype.visitInterval = assembleFlatVector;\nVectorAssembler.prototype.visitFixedSizeList = assembleListVector;\nVectorAssembler.prototype.visitMap = assembleListVector;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { MAGIC } from './message';\nimport { Vector } from '../vector';\nimport { Column } from '../column';\nimport { DataType } from '../type';\nimport { Schema, Field } from '../schema';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { FileBlock, Footer } from './metadata/file';\nimport { MessageHeader, MetadataVersion } from '../enum';\nimport { WritableSink, AsyncByteQueue } from '../io/stream';\nimport { VectorAssembler } from '../visitor/vectorassembler';\nimport { JSONTypeAssembler } from '../visitor/jsontypeassembler';\nimport { JSONVectorAssembler } from '../visitor/jsonvectorassembler';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport { Writable, ReadableInterop, ReadableDOMStreamOptions } from '../io/interfaces';\nimport { isPromise, isAsyncIterable, isWritableDOMStream, isWritableNodeStream, isIterable, isObject } from '../util/compat';\n\nexport interface RecordBatchStreamWriterOptions {\n /**\n *\n */\n autoDestroy?: boolean;\n /**\n * A flag indicating whether the RecordBatchWriter should construct pre-0.15.0\n * encapsulated IPC Messages, which reserves 4 bytes for the Message metadata\n * length instead of 8.\n * @see https://issues.apache.org/jira/browse/ARROW-6313\n */\n writeLegacyIpcFormat?: boolean;\n}\n\nexport class RecordBatchWriter extends ReadableInterop implements Writable> {\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n // @ts-ignore\n readableStrategy?: { highWaterMark?: number, size?: any }\n ): { writable: WritableStream | RecordBatch>, readable: ReadableStream } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n constructor(options?: RecordBatchStreamWriterOptions) {\n super();\n isObject(options) || (options = { autoDestroy: true, writeLegacyIpcFormat: false });\n this._autoDestroy = (typeof options.autoDestroy === 'boolean') ? options.autoDestroy : true;\n this._writeLegacyIpcFormat = (typeof options.writeLegacyIpcFormat === 'boolean') ? options.writeLegacyIpcFormat : false;\n }\n\n protected _position = 0;\n protected _started = false;\n protected _autoDestroy: boolean;\n protected _writeLegacyIpcFormat: boolean;\n // @ts-ignore\n protected _sink = new AsyncByteQueue();\n protected _schema: Schema | null = null;\n protected _dictionaryBlocks: FileBlock[] = [];\n protected _recordBatchBlocks: FileBlock[] = [];\n protected _dictionaryDeltaOffsets = new Map();\n\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync: any = false) {\n return this._sink.toString(sync) as Promise | string;\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync: any = false) {\n return this._sink.toUint8Array(sync) as Promise | Uint8Array;\n }\n\n public writeAll(input: Table | Iterable>): this;\n public writeAll(input: AsyncIterable>): Promise;\n public writeAll(input: PromiseLike>>): Promise;\n public writeAll(input: PromiseLike | Iterable>>): Promise;\n public writeAll(input: PromiseLike | Table | Iterable> | AsyncIterable>) {\n if (isPromise(input)) {\n return input.then((x) => this.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, input);\n }\n\n public get closed() { return this._sink.closed; }\n public [Symbol.asyncIterator]() { return this._sink[Symbol.asyncIterator](); }\n public toDOMStream(options?: ReadableDOMStreamOptions) { return this._sink.toDOMStream(options); }\n public toNodeStream(options?: import('stream').ReadableOptions) { return this._sink.toNodeStream(options); }\n\n public close() {\n return this.reset()._sink.close();\n }\n public abort(reason?: any) {\n return this.reset()._sink.abort(reason);\n }\n public finish() {\n this._autoDestroy ? this.close() : this.reset(this._sink, this._schema);\n return this;\n }\n public reset(sink: WritableSink = this._sink, schema: Schema | null = null) {\n\n if ((sink === this._sink) || (sink instanceof AsyncByteQueue)) {\n this._sink = sink as AsyncByteQueue;\n } else {\n this._sink = new AsyncByteQueue();\n if (sink && isWritableDOMStream(sink)) {\n this.toDOMStream({ type: 'bytes' }).pipeTo(sink);\n } else if (sink && isWritableNodeStream(sink)) {\n this.toNodeStream({ objectMode: false }).pipe(sink);\n }\n }\n\n if (this._started && this._schema) {\n this._writeFooter(this._schema);\n }\n\n this._started = false;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n\n if (!schema || !(schema.compareTo(this._schema))) {\n if (schema === null) {\n this._position = 0;\n this._schema = null;\n } else {\n this._started = true;\n this._schema = schema;\n this._writeSchema(schema);\n }\n }\n\n return this;\n }\n\n public write(payload?: Table | RecordBatch | Iterable> | null) {\n\n let schema: Schema | null = null;\n\n if (!this._sink) {\n throw new Error(`RecordBatchWriter is closed`);\n } else if (payload === null || payload === undefined) {\n return this.finish() && undefined;\n } else if (payload instanceof Table && !(schema = payload.schema)) {\n return this.finish() && undefined;\n } else if (payload instanceof RecordBatch && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n\n if (schema && !schema.compareTo(this._schema)) {\n if (this._started && this._autoDestroy) {\n return this.close();\n }\n this.reset(this._sink, schema);\n }\n\n if (payload instanceof RecordBatch) {\n if (!(payload instanceof _InternalEmptyPlaceholderRecordBatch)) {\n this._writeRecordBatch(payload);\n }\n } else if (payload instanceof Table) {\n this.writeAll(payload.chunks);\n } else if (isIterable(payload)) {\n this.writeAll(payload);\n }\n }\n\n protected _writeMessage(message: Message, alignment = 8) {\n\n const a = alignment - 1;\n const buffer = Message.encode(message);\n const flatbufferSize = buffer.byteLength;\n const prefixSize = !this._writeLegacyIpcFormat ? 8 : 4;\n const alignedSize = (flatbufferSize + prefixSize + a) & ~a;\n const nPaddingBytes = alignedSize - flatbufferSize - prefixSize;\n\n if (message.headerType === MessageHeader.RecordBatch) {\n this._recordBatchBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n } else if (message.headerType === MessageHeader.DictionaryBatch) {\n this._dictionaryBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n }\n\n // If not in legacy pre-0.15.0 mode, write the stream continuation indicator\n if (!this._writeLegacyIpcFormat) {\n this._write(Int32Array.of(-1));\n }\n // Write the flatbuffer size prefix including padding\n this._write(Int32Array.of(alignedSize - prefixSize));\n // Write the flatbuffer\n if (flatbufferSize > 0) { this._write(buffer); }\n // Write any padding\n return this._writePadding(nPaddingBytes);\n }\n\n protected _write(chunk: ArrayBufferViewInput) {\n if (this._started) {\n const buffer = toUint8Array(chunk);\n if (buffer && buffer.byteLength > 0) {\n this._sink.write(buffer);\n this._position += buffer.byteLength;\n }\n }\n return this;\n }\n\n protected _writeSchema(schema: Schema) {\n return this._writeMessage(Message.from(schema));\n }\n\n // @ts-ignore\n protected _writeFooter(schema: Schema) {\n // eos bytes\n return this._writeLegacyIpcFormat\n ? this._write(Int32Array.of(0))\n : this._write(Int32Array.of(-1, 0));\n }\n\n protected _writeMagic() {\n return this._write(MAGIC);\n }\n\n protected _writePadding(nBytes: number) {\n return nBytes > 0 ? this._write(new Uint8Array(nBytes)) : this;\n }\n\n protected _writeRecordBatch(batch: RecordBatch) {\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(batch);\n const recordBatch = new metadata.RecordBatch(batch.length, nodes, bufferRegions);\n const message = Message.from(recordBatch, byteLength);\n return this\n ._writeDictionaries(batch)\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(dictionary);\n const recordBatch = new metadata.RecordBatch(dictionary.length, nodes, bufferRegions);\n const dictionaryBatch = new metadata.DictionaryBatch(recordBatch, id, isDelta);\n const message = Message.from(dictionaryBatch, byteLength);\n return this\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeBodyBuffers(buffers: ArrayBufferView[]) {\n let buffer: ArrayBufferView;\n let size: number, padding: number;\n for (let i = -1, n = buffers.length; ++i < n;) {\n if ((buffer = buffers[i]) && (size = buffer.byteLength) > 0) {\n this._write(buffer);\n if ((padding = ((size + 7) & ~7) - size) > 0) {\n this._writePadding(padding);\n }\n }\n }\n return this;\n }\n\n protected _writeDictionaries(batch: RecordBatch) {\n for (let [id, dictionary] of batch.dictionaries) {\n let offset = this._dictionaryDeltaOffsets.get(id) || 0;\n if (offset === 0 || (dictionary = dictionary.slice(offset)).length > 0) {\n const chunks = 'chunks' in dictionary ? (dictionary as any).chunks : [dictionary];\n for (const chunk of chunks) {\n this._writeDictionaryBatch(chunk, id, offset > 0);\n offset += chunk.length;\n }\n }\n }\n return this;\n }\n}\n\n/** @ignore */\nexport class RecordBatchStreamWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>, options?: RecordBatchStreamWriterOptions): RecordBatchStreamWriter;\n public static writeAll(input: AsyncIterable>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike>>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>, options?: RecordBatchStreamWriterOptions): Promise>;\n /** @nocollapse */\n public static writeAll(input: any, options?: RecordBatchStreamWriterOptions) {\n const writer = new RecordBatchStreamWriter(options);\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\n\n/** @ignore */\nexport class RecordBatchFileWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>): RecordBatchFileWriter;\n public static writeAll(input: AsyncIterable>): Promise>;\n public static writeAll(input: PromiseLike>>): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(input: any) {\n const writer = new RecordBatchFileWriter();\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n\n constructor() {\n super();\n this._autoDestroy = true;\n }\n\n // @ts-ignore\n protected _writeSchema(schema: Schema) {\n return this._writeMagic()._writePadding(2);\n }\n\n protected _writeFooter(schema: Schema) {\n const buffer = Footer.encode(new Footer(\n schema, MetadataVersion.V4,\n this._recordBatchBlocks, this._dictionaryBlocks\n ));\n return super\n ._writeFooter(schema) // EOS bytes for sequential readers\n ._write(buffer) // Write the flatbuffer\n ._write(Int32Array.of(buffer.byteLength)) // then the footer size suffix\n ._writeMagic(); // then the magic suffix\n }\n}\n\n/** @ignore */\nexport class RecordBatchJSONWriter extends RecordBatchWriter {\n\n public static writeAll(this: typeof RecordBatchWriter, input: Table | Iterable>): RecordBatchJSONWriter;\n // @ts-ignore\n public static writeAll(this: typeof RecordBatchWriter, input: AsyncIterable>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike>>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(this: typeof RecordBatchWriter, input: any) {\n return new RecordBatchJSONWriter().writeAll(input as any);\n }\n\n private _recordBatches: RecordBatch[];\n private _dictionaries: RecordBatch[];\n\n constructor() {\n super();\n this._autoDestroy = true;\n this._recordBatches = [];\n this._dictionaries = [];\n }\n\n protected _writeMessage() { return this; }\n // @ts-ignore\n protected _writeFooter(schema: Schema) { return this; }\n protected _writeSchema(schema: Schema) {\n return this._write(`{\\n \"schema\": ${\n JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)\n }`);\n }\n protected _writeDictionaries(batch: RecordBatch) {\n if (batch.dictionaries.size > 0) {\n this._dictionaries.push(batch);\n }\n return this;\n }\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n this._write(this._dictionaryBlocks.length === 0 ? ` ` : `,\\n `);\n this._write(`${dictionaryBatchToJSON(dictionary, id, isDelta)}`);\n this._dictionaryBlocks.push(new FileBlock(0, 0, 0));\n return this;\n }\n protected _writeRecordBatch(batch: RecordBatch) {\n this._writeDictionaries(batch);\n this._recordBatches.push(batch);\n return this;\n }\n public close() {\n\n if (this._dictionaries.length > 0) {\n this._write(`,\\n \"dictionaries\": [\\n`);\n for (const batch of this._dictionaries) {\n super._writeDictionaries(batch);\n }\n this._write(`\\n ]`);\n }\n\n if (this._recordBatches.length > 0) {\n for (let i = -1, n = this._recordBatches.length; ++i < n;) {\n this._write(i === 0 ? `,\\n \"batches\": [\\n ` : `,\\n `);\n this._write(`${recordBatchToJSON(this._recordBatches[i])}`);\n this._recordBatchBlocks.push(new FileBlock(0, 0, 0));\n }\n this._write(`\\n ]`);\n }\n\n if (this._schema) {\n this._write(`\\n}`);\n }\n\n this._dictionaries = [];\n this._recordBatches = [];\n\n return super.close();\n }\n}\n\n/** @ignore */\nfunction writeAll(writer: RecordBatchWriter, input: Table | Iterable>) {\n let chunks = input as Iterable>;\n if (input instanceof Table) {\n chunks = input.chunks;\n writer.reset(undefined, input.schema);\n }\n for (const batch of chunks) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nasync function writeAllAsync(writer: RecordBatchWriter, batches: AsyncIterable>) {\n for await (const batch of batches) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nfunction fieldToJSON({ name, type, nullable }: Field): object {\n const assembler = new JSONTypeAssembler();\n return {\n 'name': name, 'nullable': nullable,\n 'type': assembler.visit(type),\n 'children': (type.children || []).map(fieldToJSON),\n 'dictionary': !DataType.isDictionary(type) ? undefined : {\n 'id': type.id,\n 'isOrdered': type.isOrdered,\n 'indexType': assembler.visit(type.indices)\n }\n };\n}\n\n/** @ignore */\nfunction dictionaryBatchToJSON(dictionary: Vector, id: number, isDelta = false) {\n const field = new Field(`${id}`, dictionary.type, dictionary.nullCount > 0);\n const columns = JSONVectorAssembler.assemble(new Column(field, [dictionary]));\n return JSON.stringify({\n 'id': id,\n 'isDelta': isDelta,\n 'data': {\n 'count': dictionary.length,\n 'columns': columns\n }\n }, null, 2);\n}\n\n/** @ignore */\nfunction recordBatchToJSON(records: RecordBatch) {\n return JSON.stringify({\n 'count': records.length,\n 'columns': JSONVectorAssembler.assemble(records)\n }, null, 2);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Data, Buffers } from '../data';\nimport { Schema, Field } from '../schema';\nimport { Chunked } from '../vector/chunked';\nimport { RecordBatch } from '../recordbatch';\n\nconst noopBuf = new Uint8Array(0);\nconst nullBufs = (bitmapLength: number) => [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n] as Buffers;\n\n/** @ignore */\nexport function ensureSameLengthData(\n schema: Schema,\n chunks: Data[],\n batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)\n) {\n let data: Data;\n let field: Field;\n let i = -1, n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [] as Data[];\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = chunks[i]) && data.length === batchLength) {\n batchData[i] = data;\n } else {\n (field = fields[i]).nullable || (fields[i] = fields[i].clone({ nullable: true }) as Field);\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return [new Schema(fields), batchLength, batchData] as [Schema, number, Data[]];\n}\n\n/** @ignore */\nexport function distributeColumnsIntoRecordBatches(columns: Column[]): [Schema, RecordBatch[]] {\n return distributeVectorsIntoRecordBatches(new Schema(columns.map(({ field }) => field)), columns);\n}\n\n/** @ignore */\nexport function distributeVectorsIntoRecordBatches(schema: Schema, vecs: (Vector | Chunked)[]): [Schema, RecordBatch[]] {\n return uniformlyDistributeChunksAcrossRecordBatches(schema, vecs.map((v) => v instanceof Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\n\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches(schema: Schema, columns: Data[][]): [Schema, RecordBatch[]] {\n\n const fields = [...schema.fields];\n const batchArgs = [] as [number, Data[]][];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n\n let numBatches = 0, batchLength = 0;\n let i: number = -1, numColumns = columns.length;\n let child: Data, childData: Data[] = [];\n\n while (memo.numBatches-- > 0) {\n\n for (batchLength = Number.POSITIVE_INFINITY, i = -1; ++i < numColumns;) {\n childData[i] = child = columns[i].shift()!;\n batchLength = Math.min(batchLength, child ? child.length : batchLength);\n }\n\n if (isFinite(batchLength)) {\n childData = distributeChildData(fields, batchLength, childData, columns, memo);\n if (batchLength > 0) {\n batchArgs[numBatches++] = [batchLength, childData.slice()];\n }\n }\n }\n return [\n schema = new Schema(fields, schema.metadata),\n batchArgs.map((xs) => new RecordBatch(schema, ...xs))\n ];\n}\n\n/** @ignore */\nfunction distributeChildData(fields: Field[], batchLength: number, childData: Data[], columns: Data[][], memo: { numBatches: number }) {\n let data: Data;\n let field: Field;\n let length = 0, i = -1, n = columns.length;\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = childData[i]) && ((length = data.length) >= batchLength)) {\n if (length === batchLength) {\n childData[i] = data;\n } else {\n childData[i] = data.slice(0, batchLength);\n data = data.slice(batchLength, length - batchLength);\n memo.numBatches = Math.max(memo.numBatches, columns[i].unshift(data));\n }\n } else {\n (field = fields[i]).nullable || (fields[i] = field.clone({ nullable: true }) as Field);\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return childData;\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { clampRange } from '../util/vector';\nimport { VectorType as V } from '../interfaces';\nimport { AbstractVector, Vector, Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\nexport interface BaseVector extends Clonable>, Sliceable>, Applicative> {\n slice(begin?: number, end?: number): V;\n concat(...others: Vector[]): Chunked;\n clone(data: Data, children?: Vector[]): V;\n}\n\n/** @ignore */\nexport abstract class BaseVector extends AbstractVector\n implements Clonable>, Sliceable>, Applicative> {\n\n protected _children?: Vector[];\n\n constructor(data: Data, children?: Vector[]) {\n super();\n this._children = children;\n this.numChildren = data.childData.length;\n this._bindDataAccessors(this.data = data);\n }\n\n public readonly data: Data;\n public readonly numChildren: number;\n\n public get type() { return this.data.type; }\n public get typeId() { return this.data.typeId; }\n public get length() { return this.data.length; }\n public get offset() { return this.data.offset; }\n public get stride() { return this.data.stride; }\n public get nullCount() { return this.data.nullCount; }\n public get byteLength() { return this.data.byteLength; }\n public get VectorName() { return `${Type[this.typeId]}Vector`; }\n\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n public get values() { return this.data.values; }\n public get typeIds() { return this.data.typeIds; }\n public get nullBitmap() { return this.data.nullBitmap; }\n public get valueOffsets() { return this.data.valueOffsets; }\n\n public get [Symbol.toStringTag]() { return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`; }\n\n public clone(data: Data, children = this._children) {\n return Vector.new(data, children) as any;\n }\n\n public concat(...others: Vector[]) {\n return Chunked.concat(this, ...others);\n }\n\n public slice(begin?: number, end?: number) {\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public isValid(index: number): boolean {\n if (this.nullCount > 0) {\n const idx = this.offset + index;\n const val = this.nullBitmap[idx >> 3];\n const mask = (val & (1 << (idx % 8)));\n return mask !== 0;\n }\n return true;\n }\n\n public getChildAt(index: number): Vector | null {\n return index < 0 || index >= this.numChildren ? null : (\n (this._children || (this._children = []))[index] ||\n (this._children[index] = Vector.new(this.data.childData[index] as Data))\n ) as Vector;\n }\n\n public toJSON(): any { return [...this]; }\n\n protected _sliceInternal(self: this, begin: number, end: number) {\n return self.clone(self.data.slice(begin, end - begin), null!);\n }\n\n // @ts-ignore\n protected _bindDataAccessors(data: Data) {\n // Implementation in src/vectors/index.ts due to circular dependency/packaging shenanigans\n }\n}\n\n(BaseVector.prototype as any)[Symbol.isConcatSpreadable] = true;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\n\n/** @ignore */\nexport class BinaryVector extends BaseVector {\n public asUtf8() {\n return Vector.new(this.data.clone(new Utf8()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class BoolVector extends BaseVector {\n public static from(input: Iterable): BoolVector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Bool(), input);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DateUnit } from '../enum';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\ntype FromArgs = [Iterable, T['unit']];\n\n/** @ignore */\nexport class DateVector extends BaseVector {\n public static from(...args: FromArgs): V;\n public static from(...args: FromArgs): V;\n public static from(input: Iterable): V;\n public static from(input: AsyncIterable): Promise>;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(...args: FromArgs | [Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync]) {\n if (args.length === 2) {\n return vectorFromValuesWithType(() => args[1] === DateUnit.DAY ? new DateDay() : new DateMillisecond() as T, args[0]);\n }\n return vectorFromValuesWithType(() => new DateMillisecond() as T, args[0]);\n }\n}\n\n/** @ignore */\nexport class DateDayVector extends DateVector {}\n\n/** @ignore */\nexport class DateMillisecondVector extends DateVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class DecimalVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { DataType, Dictionary, TKeys } from '../type';\n\n/** @ignore */\ntype FromArgs = [Vector, TKey, ArrayLike | TKey['TArray']];\n\n/** @ignore */\nexport class DictionaryVector extends BaseVector> {\n public static from(...args: FromArgs): V>;\n public static from(input: VectorBuilderOptions>): Vector>;\n public static from(input: VectorBuilderOptionsAsync>): Promise>>;\n /** @nocollapse */\n public static from(...args: any[]) {\n if (args.length === 3) {\n const [values, indices, keys] = args as FromArgs;\n const type = new Dictionary(values.type, indices, null, null);\n return Vector.new(Data.Dictionary(type, 0, keys.length, 0, null, keys, values));\n }\n return vectorFromValuesWithType(() => args[0].type, args[0]);\n }\n\n constructor(data: Data>) {\n super(data);\n this.indices = Vector.new(data.clone(this.type.indices));\n }\n\n public readonly indices: V;\n\n public get dictionary() { return > this.data.dictionary; }\n public reverseLookup(value: T) { return this.dictionary.indexOf(value); }\n public getKey(idx: number): TKey['TValue'] | null { return this.indices.get(idx); }\n public getValue(key: number): T['TValue'] | null { return this.dictionary.get(key); }\n public setKey(idx: number, key: TKey['TValue'] | null) { return this.indices.set(idx, key); }\n public setValue(key: number, value: T['TValue'] | null) { return this.dictionary.set(key, value); }\n}\n\n(DictionaryVector.prototype as any).indices = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { FixedSizeBinary } from '../type';\n\n/** @ignore */\nexport class FixedSizeBinaryVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Float, Float16, Float32, Float64, FloatArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor } from '../interfaces';\n\n/** @ignore */\ntype FloatVectorConstructors =\n typeof FloatVector |\n typeof Float16Vector |\n typeof Float32Vector |\n typeof Float64Vector ;\n\n/** @ignore */\ntype FromInput =\n FloatArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FloatArrayCtor = TypedArrayConstructor;\n\n/** @ignore */\nexport class FloatVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof FloatVector, input: Uint16Array): Float16Vector;\n public static from(this: typeof FloatVector, input: Float32Array): Float32Vector;\n public static from(this: typeof FloatVector, input: Float64Array): Float64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Float16Vector, input: FromInput): Float16Vector;\n public static from(this: typeof Float32Vector, input: FromInput): Float32Vector;\n public static from(this: typeof Float64Vector, input: FromInput): Float64Vector;\n\n // Not zero-copy\n public static from(this: typeof FloatVector, input: Iterable): V;\n public static from(this: typeof FloatVector, input: AsyncIterable): Promise>;\n public static from(this: typeof FloatVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof FloatVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: FloatVectorConstructors, input: FromInput) {\n\n let ArrowType = vectorTypeToDataType(this);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as FloatArrayCtor) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // FloatVector.from with a TypedArray, e.g. `FloatVector.from(new Float32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is Float16 but the input type isn't a Uint16Array,\n // let the Float16Builder handle casting the input values to Uint16s.\n if (!convertTo16Bit(ArrowType, input.constructor)) {\n return Vector.new(Data.Float(type, 0, length, 0, null, input as FloatArray));\n }\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer float type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized FloatVector input');\n }\n}\n\n/** @ignore */\nexport class Float16Vector extends FloatVector {\n // Since JS doesn't have half floats, `toArray()` returns a zero-copy slice\n // of the underlying Uint16Array data. This behavior ensures we don't incur\n // extra compute or copies if you're calling `toArray()` in order to create\n // a buffer for something like WebGL. Buf if you're using JS and want typed\n // arrays of 4-to-8-byte precision, these methods will enumerate the values\n // and clamp to the desired byte lengths.\n public toFloat32Array() { return new Float32Array(this as Iterable); }\n public toFloat64Array() { return new Float64Array(this as Iterable); }\n}\n\n/** @ignore */\nexport class Float32Vector extends FloatVector {}\n/** @ignore */\nexport class Float64Vector extends FloatVector {}\n\nconst convertTo16Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Float16) && (dataCtor !== Uint16Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: FloatArrayCtor) => {\n switch (ctor) {\n case Uint16Array: return Float16;\n case Float32Array: return Float32;\n case Float64Array: return Float64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: FloatVectorConstructors) => {\n switch (ctor) {\n case Float16Vector: return Float16;\n case Float32Vector: return Float32;\n case Float64Vector: return Float64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalVector extends BaseVector {}\n/** @ignore */\nexport class IntervalDayTimeVector extends IntervalVector {}\n/** @ignore */\nexport class IntervalYearMonthVector extends IntervalVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { BigInt64Array, BigUint64Array } from '../util/compat';\nimport { toBigInt64Array, toBigUint64Array } from '../util/buffer';\nimport { Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64, IntArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor, BigIntArrayConstructor, BigIntArray } from '../interfaces';\n\n/** @ignore */\ntype IntVectorConstructors =\n typeof IntVector |\n typeof Int8Vector |\n typeof Int16Vector |\n typeof Int32Vector |\n typeof Uint8Vector |\n typeof Uint16Vector |\n typeof Uint32Vector |\n typeof Int64Vector |\n typeof Uint64Vector ;\n\n/** @ignore */\ntype FromInput =\n IntArray | BigIntArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FromArgs = [FromInput, boolean?];\n\n/** @ignore */\ntype IntArrayCtor = TypedArrayConstructor | BigIntArrayConstructor;\n\n/** @ignore */\nexport class IntVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof IntVector, input: Int8Array): Int8Vector;\n public static from(this: typeof IntVector, input: Int16Array): Int16Vector;\n public static from(this: typeof IntVector, input: Int32Array): Int32Vector;\n public static from(this: typeof IntVector, input: BigInt64Array): Int64Vector;\n public static from(this: typeof IntVector, input: Int32Array, is64bit: true): Int64Vector;\n public static from(this: typeof IntVector, input: Uint8Array): Uint8Vector;\n public static from(this: typeof IntVector, input: Uint16Array): Uint16Vector;\n public static from(this: typeof IntVector, input: Uint32Array): Uint32Vector;\n public static from(this: typeof IntVector, input: BigUint64Array): Uint64Vector;\n public static from(this: typeof IntVector, input: Uint32Array, is64bit: true): Uint64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Int8Vector, input: FromInput): Int8Vector;\n public static from(this: typeof Int16Vector, input: FromInput): Int16Vector;\n public static from(this: typeof Int32Vector, input: FromInput): Int32Vector;\n public static from(this: typeof Int64Vector, input: FromInput): Int64Vector;\n public static from(this: typeof Uint8Vector, input: FromInput): Uint8Vector;\n public static from(this: typeof Uint16Vector, input: FromInput): Uint16Vector;\n public static from(this: typeof Uint32Vector, input: FromInput): Uint32Vector;\n public static from(this: typeof Uint64Vector, input: FromInput): Uint64Vector;\n\n // Not zero-copy\n public static from(this: typeof IntVector, input: Iterable): V;\n public static from(this: typeof IntVector, input: AsyncIterable): Promise>;\n public static from(this: typeof IntVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof IntVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: IntVectorConstructors, ...args: FromArgs) {\n\n let [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as IntArrayCtor, is64bit) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // IntVector.from with a TypedArray, e.g. `IntVector.from(new Int32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is 64bit but the input type is 32bit pairs, update the logical length\n if (convert32To64Bit(ArrowType, input.constructor)) {\n length *= 0.5;\n }\n return Vector.new(Data.Int(type, 0, length, 0, null, input as IntArray));\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer integer type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized IntVector input');\n }\n}\n\n/** @ignore */\nexport class Int8Vector extends IntVector {}\n/** @ignore */\nexport class Int16Vector extends IntVector {}\n/** @ignore */\nexport class Int32Vector extends IntVector {}\n/** @ignore */\nexport class Int64Vector extends IntVector {\n public toBigInt64Array() {\n return toBigInt64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigInt64Array;\n public get values64(): BigInt64Array {\n return this._values64 || (this._values64 = this.toBigInt64Array());\n }\n}\n\n/** @ignore */\nexport class Uint8Vector extends IntVector {}\n/** @ignore */\nexport class Uint16Vector extends IntVector {}\n/** @ignore */\nexport class Uint32Vector extends IntVector {}\n/** @ignore */\nexport class Uint64Vector extends IntVector {\n public toBigUint64Array() {\n return toBigUint64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigUint64Array;\n public get values64(): BigUint64Array {\n return this._values64 || (this._values64 = this.toBigUint64Array());\n }\n}\n\nconst convert32To64Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Int64 || typeCtor === Uint64) &&\n (dataCtor === Int32Array || dataCtor === Uint32Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: IntArrayCtor, is64bit: boolean) => {\n switch (ctor) {\n case Int8Array: return Int8;\n case Int16Array: return Int16;\n case Int32Array: return is64bit ? Int64 : Int32;\n case BigInt64Array: return Int64;\n case Uint8Array: return Uint8;\n case Uint16Array: return Uint16;\n case Uint32Array: return is64bit ? Uint64 : Uint32;\n case BigUint64Array: return Uint64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: IntVectorConstructors, is64bit: boolean) => {\n switch (ctor) {\n case Int8Vector: return Int8;\n case Int16Vector: return Int16;\n case Int32Vector: return is64bit ? Int64 : Int32;\n case Int64Vector: return Int64;\n case Uint8Vector: return Uint8;\n case Uint16Vector: return Uint16;\n case Uint32Vector: return is64bit ? Uint64 : Uint32;\n case Uint64Vector: return Uint64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, List } from '../type';\n\n/** @ignore */\nexport class ListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MapRow } from './row';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { DataType, Map_, Struct, List } from '../type';\n\n/** @ignore */\nexport class MapVector extends BaseVector> {\n public asList() {\n const child = this.type.children[0] as Field>;\n return Vector.new(this.data.clone(new List>(child)));\n }\n public bind(index: number): Map_['TValue'] {\n const child = this.getChildAt>(0);\n const { [index]: begin, [index + 1]: end } = this.valueOffsets;\n return new MapRow(child!.slice(begin, end));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class NullVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { StructRow } from './row';\nimport { BaseVector } from './base';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */\nexport class StructVector extends BaseVector> {\n // @ts-ignore\n private _row: StructRow;\n public bind(index: number): Struct['TValue'] {\n const proto = this._row || (this._row = new StructRow(this));\n const bound = Object.create(proto);\n bound[kRowIndex] = index;\n return bound;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampVector extends BaseVector {}\n/** @ignore */\nexport class TimestampSecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMillisecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMicrosecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampNanosecondVector extends TimestampVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeVector extends BaseVector {}\n/** @ignore */\nexport class TimeSecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMillisecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMicrosecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeNanosecondVector extends TimeVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Union, DenseUnion, SparseUnion} from '../type';\n\n/** @ignore */\nexport class UnionVector extends BaseVector {\n public get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\n\n/** @ignore */\nexport class DenseUnionVector extends UnionVector {\n public get valueOffsets() { return this.data.valueOffsets!; }\n}\n\n/** @ignore */\nexport class SparseUnionVector extends UnionVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class Utf8Vector extends BaseVector {\n public static from(input: Iterable): Utf8Vector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Utf8(), input);\n }\n public asBinary() {\n return Vector.new(this.data.clone(new Binary()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function partial0(visit: (node: T) => any) {\n return function(this: T) { return visit(this); };\n}\n\n/** @ignore */\nexport function partial1(visit: (node: T, a: any) => any) {\n return function(this: T, a: any) { return visit(this, a); };\n}\n\n/** @ignore */\nexport function partial2(visit: (node: T, a: any, b: any) => any) {\n return function(this: T, a: any, b: any) { return visit(this, a, b); };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { BN } from '../util/bn';\nimport { Visitor } from '../visitor';\nimport { decodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { uint16ToFloat64 } from '../util/math';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface GetVisitor extends Visitor {\n visit (node: T, index: number): T['TValue'];\n visitMany (nodes: T[], indices: number[]): T['TValue'][];\n getVisitFn (node: T): (vector: VectorType, index: number) => VectorType['TValue'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number) => VectorType['TValue'];\n visitNull (vector: VectorType, index: number): T['TValue'];\n visitBool (vector: VectorType, index: number): T['TValue'];\n visitInt (vector: VectorType, index: number): T['TValue'];\n visitInt8 (vector: VectorType, index: number): T['TValue'];\n visitInt16 (vector: VectorType, index: number): T['TValue'];\n visitInt32 (vector: VectorType, index: number): T['TValue'];\n visitInt64 (vector: VectorType, index: number): T['TValue'];\n visitUint8 (vector: VectorType, index: number): T['TValue'];\n visitUint16 (vector: VectorType, index: number): T['TValue'];\n visitUint32 (vector: VectorType, index: number): T['TValue'];\n visitUint64 (vector: VectorType, index: number): T['TValue'];\n visitFloat (vector: VectorType, index: number): T['TValue'];\n visitFloat16 (vector: VectorType, index: number): T['TValue'];\n visitFloat32 (vector: VectorType, index: number): T['TValue'];\n visitFloat64 (vector: VectorType, index: number): T['TValue'];\n visitUtf8 (vector: VectorType, index: number): T['TValue'];\n visitBinary (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeBinary (vector: VectorType, index: number): T['TValue'];\n visitDate (vector: VectorType, index: number): T['TValue'];\n visitDateDay (vector: VectorType, index: number): T['TValue'];\n visitDateMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestamp (vector: VectorType, index: number): T['TValue'];\n visitTimestampSecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampNanosecond (vector: VectorType, index: number): T['TValue'];\n visitTime (vector: VectorType, index: number): T['TValue'];\n visitTimeSecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimeNanosecond (vector: VectorType, index: number): T['TValue'];\n visitDecimal (vector: VectorType, index: number): T['TValue'];\n visitList (vector: VectorType, index: number): T['TValue'];\n visitStruct (vector: VectorType, index: number): T['TValue'];\n visitUnion (vector: VectorType, index: number): T['TValue'];\n visitDenseUnion (vector: VectorType, index: number): T['TValue'];\n visitSparseUnion (vector: VectorType, index: number): T['TValue'];\n visitDictionary (vector: VectorType, index: number): T['TValue'];\n visitInterval (vector: VectorType, index: number): T['TValue'];\n visitIntervalDayTime (vector: VectorType, index: number): T['TValue'];\n visitIntervalYearMonth (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeList (vector: VectorType, index: number): T['TValue'];\n visitMap (vector: VectorType, index: number): T['TValue'];\n}\n\n/** @ignore */\nexport class GetVisitor extends Visitor {}\n\n/** @ignore */const epochDaysToMs = (data: Int32Array, index: number) => 86400000 * data[index];\n/** @ignore */const epochMillisecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1]) + (data[index] >>> 0);\n/** @ignore */const epochMicrosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000) + ((data[index] >>> 0) / 1000);\n/** @ignore */const epochNanosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000000) + ((data[index] >>> 0) / 1000000);\n\n/** @ignore */const epochMillisecondsToDate = (epochMs: number) => new Date(epochMs);\n/** @ignore */const epochDaysToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochDaysToMs(data, index));\n/** @ignore */const epochMillisecondsLongToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochMillisecondsLongToMs(data, index));\n\n/** @ignore */\nconst getNull = (_vector: VectorType, _index: number): T['TValue'] => null;\n/** @ignore */\nconst getVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n return x != null && y != null ? values.subarray(x, y) : null as any;\n};\n\n/** @ignore */\nconst getBool = ({ offset, values }: VectorType, index: number): T['TValue'] => {\n const idx = offset + index;\n const byte = values[idx >> 3];\n return (byte & 1 << (idx % 8)) !== 0;\n};\n\n/** @ignore */\ntype Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */\ntype Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst getDateDay = ({ values }: VectorType, index: number): T['TValue'] => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = ({ stride, values }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getFloat16 = ({ stride, values }: VectorType, index: number): T['TValue'] => uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = ({ stride, values, type }: VectorType, index: number): T['TValue'] => BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = ({ stride, values }: VectorType, index: number): T['TValue'] => values.subarray(stride * index, stride * (index + 1));\n\n/** @ignore */\nconst getBinary = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => {\n const bytes = getVariableWidthBytes(values, valueOffsets, index);\n return bytes !== null ? decodeUtf8(bytes) : null as any;\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInt = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.bitWidth < 64\n ? getNumeric(vector as VectorType, index)\n : getBigInts(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.precision !== Precision.HALF\n ? getNumeric(vector as VectorType, index)\n : getFloat16(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.unit === DateUnit.DAY\n ? getDateDay(vector as VectorType, index)\n : getDateMillisecond(vector as VectorType, index)\n);\n\n/** @ignore */\nconst getTimestampSecond = ({ values }: VectorType, index: number): T['TValue'] => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = ({ values }: VectorType, index: number): T['TValue'] => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimestampSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimestampMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimestampNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getTimeSecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimeSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimeMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimeMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimeNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getDecimal = ({ values }: VectorType, index: number): T['TValue'] => BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n\n/** @ignore */\nconst getList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { valueOffsets, stride } = vector;\n return child.slice(valueOffsets[index * stride], valueOffsets[(index * stride) + 1]) as T['TValue'];\n};\n\n/** @ignore */\nconst getMap = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/** @ignore */\nconst getStruct = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number): V['TValue'] => {\n return vector.type.mode === UnionMode.Dense ?\n getDenseUnion(vector as VectorType, index) :\n getSparseUnion(vector as VectorType, index);\n};\n\n/** @ignore */\nconst getDenseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(vector.valueOffsets[index]) : null;\n};\n\n/** @ignore */\nconst getSparseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(index) : null;\n};\n\n/** @ignore */\nconst getDictionary = (vector: VectorType, index: number): T['TValue'] => {\n return vector.getValue(vector.getKey(index)!);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = (vector: VectorType, index: number): T['TValue'] =>\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector as VectorType, index)\n : getIntervalYearMonth(vector as VectorType, index);\n\n/** @ignore */\nconst getIntervalDayTime = ({ values }: VectorType, index: number): T['TValue'] => values.subarray(2 * index, 2 * (index + 1));\n\n/** @ignore */\nconst getIntervalYearMonth = ({ values }: VectorType, index: number): T['TValue'] => {\n const interval = values[index];\n const int32s = new Int32Array(2);\n int32s[0] = interval / 12 | 0; /* years */\n int32s[1] = interval % 12 | 0; /* months */\n return int32s;\n};\n\n/** @ignore */\nconst getFixedSizeList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n return child.slice(index * stride, (index + 1) * stride) as T['TValue'];\n};\n\nGetVisitor.prototype.visitNull = getNull;\nGetVisitor.prototype.visitBool = getBool;\nGetVisitor.prototype.visitInt = getInt;\nGetVisitor.prototype.visitInt8 = getNumeric;\nGetVisitor.prototype.visitInt16 = getNumeric;\nGetVisitor.prototype.visitInt32 = getNumeric;\nGetVisitor.prototype.visitInt64 = getBigInts;\nGetVisitor.prototype.visitUint8 = getNumeric;\nGetVisitor.prototype.visitUint16 = getNumeric;\nGetVisitor.prototype.visitUint32 = getNumeric;\nGetVisitor.prototype.visitUint64 = getBigInts;\nGetVisitor.prototype.visitFloat = getFloat;\nGetVisitor.prototype.visitFloat16 = getFloat16;\nGetVisitor.prototype.visitFloat32 = getNumeric;\nGetVisitor.prototype.visitFloat64 = getNumeric;\nGetVisitor.prototype.visitUtf8 = getUtf8;\nGetVisitor.prototype.visitBinary = getBinary;\nGetVisitor.prototype.visitFixedSizeBinary = getFixedSizeBinary;\nGetVisitor.prototype.visitDate = getDate;\nGetVisitor.prototype.visitDateDay = getDateDay;\nGetVisitor.prototype.visitDateMillisecond = getDateMillisecond;\nGetVisitor.prototype.visitTimestamp = getTimestamp;\nGetVisitor.prototype.visitTimestampSecond = getTimestampSecond;\nGetVisitor.prototype.visitTimestampMillisecond = getTimestampMillisecond;\nGetVisitor.prototype.visitTimestampMicrosecond = getTimestampMicrosecond;\nGetVisitor.prototype.visitTimestampNanosecond = getTimestampNanosecond;\nGetVisitor.prototype.visitTime = getTime;\nGetVisitor.prototype.visitTimeSecond = getTimeSecond;\nGetVisitor.prototype.visitTimeMillisecond = getTimeMillisecond;\nGetVisitor.prototype.visitTimeMicrosecond = getTimeMicrosecond;\nGetVisitor.prototype.visitTimeNanosecond = getTimeNanosecond;\nGetVisitor.prototype.visitDecimal = getDecimal;\nGetVisitor.prototype.visitList = getList;\nGetVisitor.prototype.visitStruct = getStruct;\nGetVisitor.prototype.visitUnion = getUnion;\nGetVisitor.prototype.visitDenseUnion = getDenseUnion;\nGetVisitor.prototype.visitSparseUnion = getSparseUnion;\nGetVisitor.prototype.visitDictionary = getDictionary;\nGetVisitor.prototype.visitInterval = getInterval;\nGetVisitor.prototype.visitIntervalDayTime = getIntervalDayTime;\nGetVisitor.prototype.visitIntervalYearMonth = getIntervalYearMonth;\nGetVisitor.prototype.visitFixedSizeList = getFixedSizeList;\nGetVisitor.prototype.visitMap = getMap;\n\n/** @ignore */\nexport const instance = new GetVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { getBool, iterateBits } from '../util/bit';\nimport { createElementComparator } from '../util/vector';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IndexOfVisitor extends Visitor {\n visit (node: T, value: T['TValue'] | null, index?: number): number;\n visitMany (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];\n getVisitFn (node: T): (vector: VectorType, value: VectorType['TValue'] | null, index?: number) => number;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, value: T['TValue'] | null, index?: number) => number;\n visitNull (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBool (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUtf8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDate (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateDay (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestamp (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDecimal (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitStruct (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDenseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitSparseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDictionary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInterval (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalDayTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalYearMonth (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitMap (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n}\n\n/** @ignore */\nexport class IndexOfVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullIndexOf(vector: VectorType, searchElement?: null) {\n // if you're looking for nulls and the vector isn't empty, we've got 'em!\n return searchElement === null && vector.length > 0 ? 0 : -1;\n}\n\n/** @ignore */\nfunction indexOfNull(vector: VectorType, fromIndex?: number): number {\n const { nullBitmap } = vector;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of iterateBits(nullBitmap, vector.data.offset + (fromIndex || 0), vector.length, nullBitmap, getBool)) {\n if (!isValid) { return i; }\n ++i;\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfValue(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n if (searchElement === undefined) { return -1; }\n if (searchElement === null) { return indexOfNull(vector, fromIndex); }\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfUnion(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n // Unions are special -- they do have a nullBitmap, but so can their children.\n // If the searchElement is null, we don't know whether it came from the Union's\n // bitmap or one of its childrens'. So we don't interrogate the Union's bitmap,\n // since that will report the wrong index if a child has a null before the Union.\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\nIndexOfVisitor.prototype.visitNull = nullIndexOf;\nIndexOfVisitor.prototype.visitBool = indexOfValue;\nIndexOfVisitor.prototype.visitInt = indexOfValue;\nIndexOfVisitor.prototype.visitInt8 = indexOfValue;\nIndexOfVisitor.prototype.visitInt16 = indexOfValue;\nIndexOfVisitor.prototype.visitInt32 = indexOfValue;\nIndexOfVisitor.prototype.visitInt64 = indexOfValue;\nIndexOfVisitor.prototype.visitUint8 = indexOfValue;\nIndexOfVisitor.prototype.visitUint16 = indexOfValue;\nIndexOfVisitor.prototype.visitUint32 = indexOfValue;\nIndexOfVisitor.prototype.visitUint64 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat = indexOfValue;\nIndexOfVisitor.prototype.visitFloat16 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat32 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat64 = indexOfValue;\nIndexOfVisitor.prototype.visitUtf8 = indexOfValue;\nIndexOfVisitor.prototype.visitBinary = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeBinary = indexOfValue;\nIndexOfVisitor.prototype.visitDate = indexOfValue;\nIndexOfVisitor.prototype.visitDateDay = indexOfValue;\nIndexOfVisitor.prototype.visitDateMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestamp = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTime = indexOfValue;\nIndexOfVisitor.prototype.visitTimeSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitDecimal = indexOfValue;\nIndexOfVisitor.prototype.visitList = indexOfValue;\nIndexOfVisitor.prototype.visitStruct = indexOfValue;\nIndexOfVisitor.prototype.visitUnion = indexOfValue;\nIndexOfVisitor.prototype.visitDenseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitSparseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitDictionary = indexOfValue;\nIndexOfVisitor.prototype.visitInterval = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalDayTime = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalYearMonth = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeList = indexOfValue;\nIndexOfVisitor.prototype.visitMap = indexOfValue;\n\n/** @ignore */\nexport const instance = new IndexOfVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { iterateBits } from '../util/bit';\nimport { instance as getVisitor } from './get';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IteratorVisitor extends Visitor {\n visit(node: T): IterableIterator;\n visitMany (nodes: T[]): IterableIterator[];\n getVisitFn(node: T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n visitNull (vector: VectorType): IterableIterator;\n visitBool (vector: VectorType): IterableIterator;\n visitInt (vector: VectorType): IterableIterator;\n visitInt8 (vector: VectorType): IterableIterator;\n visitInt16 (vector: VectorType): IterableIterator;\n visitInt32 (vector: VectorType): IterableIterator;\n visitInt64 (vector: VectorType): IterableIterator;\n visitUint8 (vector: VectorType): IterableIterator;\n visitUint16 (vector: VectorType): IterableIterator;\n visitUint32 (vector: VectorType): IterableIterator;\n visitUint64 (vector: VectorType): IterableIterator;\n visitFloat (vector: VectorType): IterableIterator;\n visitFloat16 (vector: VectorType): IterableIterator;\n visitFloat32 (vector: VectorType): IterableIterator;\n visitFloat64 (vector: VectorType): IterableIterator;\n visitUtf8 (vector: VectorType): IterableIterator;\n visitBinary (vector: VectorType): IterableIterator;\n visitFixedSizeBinary (vector: VectorType): IterableIterator;\n visitDate (vector: VectorType): IterableIterator;\n visitDateDay (vector: VectorType): IterableIterator;\n visitDateMillisecond (vector: VectorType): IterableIterator;\n visitTimestamp (vector: VectorType): IterableIterator;\n visitTimestampSecond (vector: VectorType): IterableIterator;\n visitTimestampMillisecond (vector: VectorType): IterableIterator;\n visitTimestampMicrosecond (vector: VectorType): IterableIterator;\n visitTimestampNanosecond (vector: VectorType): IterableIterator;\n visitTime (vector: VectorType): IterableIterator;\n visitTimeSecond (vector: VectorType): IterableIterator;\n visitTimeMillisecond (vector: VectorType): IterableIterator;\n visitTimeMicrosecond (vector: VectorType): IterableIterator;\n visitTimeNanosecond (vector: VectorType): IterableIterator;\n visitDecimal (vector: VectorType): IterableIterator;\n visitList (vector: VectorType): IterableIterator;\n visitStruct (vector: VectorType): IterableIterator;\n visitUnion (vector: VectorType): IterableIterator;\n visitDenseUnion (vector: VectorType): IterableIterator;\n visitSparseUnion (vector: VectorType): IterableIterator;\n visitDictionary (vector: VectorType): IterableIterator;\n visitInterval (vector: VectorType): IterableIterator;\n visitIntervalDayTime (vector: VectorType): IterableIterator;\n visitIntervalYearMonth (vector: VectorType): IterableIterator;\n visitFixedSizeList (vector: VectorType): IterableIterator;\n visitMap (vector: VectorType): IterableIterator;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator(vector: VectorType): IterableIterator {\n const getFn = getVisitor.getVisitFn(vector);\n return iterateBits(\n vector.nullBitmap, vector.offset, vector.length, vector,\n (vec: VectorType, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nfunction vectorIterator(vector: VectorType): IterableIterator {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator(vector);\n }\n\n const { type, typeId, length } = vector;\n\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && (\n (typeId === Type.Timestamp) ||\n (typeId === Type.Int && (type as Int).bitWidth !== 64) ||\n (typeId === Type.Time && (type as Time).bitWidth !== 64) ||\n (typeId === Type.Float && (type as Float).precision > 0 /* Precision.HALF */)\n )) {\n return vector.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return (function* (getFn) {\n for (let index = -1; ++index < length;) {\n yield getFn(vector, index);\n }\n })(getVisitor.getVisitFn(vector));\n}\n\nIteratorVisitor.prototype.visitNull = vectorIterator;\nIteratorVisitor.prototype.visitBool = vectorIterator;\nIteratorVisitor.prototype.visitInt = vectorIterator;\nIteratorVisitor.prototype.visitInt8 = vectorIterator;\nIteratorVisitor.prototype.visitInt16 = vectorIterator;\nIteratorVisitor.prototype.visitInt32 = vectorIterator;\nIteratorVisitor.prototype.visitInt64 = vectorIterator;\nIteratorVisitor.prototype.visitUint8 = vectorIterator;\nIteratorVisitor.prototype.visitUint16 = vectorIterator;\nIteratorVisitor.prototype.visitUint32 = vectorIterator;\nIteratorVisitor.prototype.visitUint64 = vectorIterator;\nIteratorVisitor.prototype.visitFloat = vectorIterator;\nIteratorVisitor.prototype.visitFloat16 = vectorIterator;\nIteratorVisitor.prototype.visitFloat32 = vectorIterator;\nIteratorVisitor.prototype.visitFloat64 = vectorIterator;\nIteratorVisitor.prototype.visitUtf8 = vectorIterator;\nIteratorVisitor.prototype.visitBinary = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeBinary = vectorIterator;\nIteratorVisitor.prototype.visitDate = vectorIterator;\nIteratorVisitor.prototype.visitDateDay = vectorIterator;\nIteratorVisitor.prototype.visitDateMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestamp = vectorIterator;\nIteratorVisitor.prototype.visitTimestampSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitTime = vectorIterator;\nIteratorVisitor.prototype.visitTimeSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitDecimal = vectorIterator;\nIteratorVisitor.prototype.visitList = vectorIterator;\nIteratorVisitor.prototype.visitStruct = vectorIterator;\nIteratorVisitor.prototype.visitUnion = vectorIterator;\nIteratorVisitor.prototype.visitDenseUnion = vectorIterator;\nIteratorVisitor.prototype.visitSparseUnion = vectorIterator;\nIteratorVisitor.prototype.visitDictionary = vectorIterator;\nIteratorVisitor.prototype.visitInterval = vectorIterator;\nIteratorVisitor.prototype.visitIntervalDayTime = vectorIterator;\nIteratorVisitor.prototype.visitIntervalYearMonth = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeList = vectorIterator;\nIteratorVisitor.prototype.visitMap = vectorIterator;\n\n/** @ignore */\nexport const instance = new IteratorVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { instance as iteratorVisitor } from './iterator';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface ToArrayVisitor extends Visitor {\n visit(node: T): T['TArray'];\n visitMany(nodes: T[]): T['TArray'][];\n getVisitFn(node: T): (vector: VectorType) => VectorType['TArray'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => VectorType['TArray'];\n visitNull (vector: VectorType): VectorType['TArray'];\n visitBool (vector: VectorType): VectorType['TArray'];\n visitInt (vector: VectorType): VectorType['TArray'];\n visitInt8 (vector: VectorType): VectorType['TArray'];\n visitInt16 (vector: VectorType): VectorType['TArray'];\n visitInt32 (vector: VectorType): VectorType['TArray'];\n visitInt64 (vector: VectorType): VectorType['TArray'];\n visitUint8 (vector: VectorType): VectorType['TArray'];\n visitUint16 (vector: VectorType): VectorType['TArray'];\n visitUint32 (vector: VectorType): VectorType['TArray'];\n visitUint64 (vector: VectorType): VectorType['TArray'];\n visitFloat (vector: VectorType): VectorType['TArray'];\n visitFloat16 (vector: VectorType): VectorType['TArray'];\n visitFloat32 (vector: VectorType): VectorType['TArray'];\n visitFloat64 (vector: VectorType): VectorType['TArray'];\n visitUtf8 (vector: VectorType): VectorType['TArray'];\n visitBinary (vector: VectorType): VectorType['TArray'];\n visitFixedSizeBinary (vector: VectorType): VectorType['TArray'];\n visitDate (vector: VectorType): VectorType['TArray'];\n visitDateDay (vector: VectorType): VectorType['TArray'];\n visitDateMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestamp (vector: VectorType): VectorType['TArray'];\n visitTimestampSecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimestampNanosecond (vector: VectorType): VectorType['TArray'];\n visitTime (vector: VectorType): VectorType['TArray'];\n visitTimeSecond (vector: VectorType): VectorType['TArray'];\n visitTimeMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimeMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimeNanosecond (vector: VectorType): VectorType['TArray'];\n visitDecimal (vector: VectorType): VectorType['TArray'];\n visitList > (vector: VectorType): VectorType['TArray'];\n visitStruct (vector: VectorType): VectorType['TArray'];\n visitUnion (vector: VectorType): VectorType['TArray'];\n visitDenseUnion (vector: VectorType): VectorType['TArray'];\n visitSparseUnion (vector: VectorType): VectorType['TArray'];\n visitDictionary > (vector: VectorType): VectorType['TArray'];\n visitInterval (vector: VectorType): VectorType['TArray'];\n visitIntervalDayTime (vector: VectorType): VectorType['TArray'];\n visitIntervalYearMonth (vector: VectorType): VectorType['TArray'];\n visitFixedSizeList > (vector: VectorType): VectorType['TArray'];\n visitMap (vector: VectorType): VectorType['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector(vector: VectorType): T['TArray'] {\n\n const { type, length, stride } = vector;\n\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float: case Type.Decimal:\n case Type.Time: case Type.Timestamp:\n return vector.values.subarray(0, length * stride);\n }\n\n // Otherwise if not primitive, slow copy\n return [...iteratorVisitor.visit(vector)] as T['TArray'];\n}\n\nToArrayVisitor.prototype.visitNull = arrayOfVector;\nToArrayVisitor.prototype.visitBool = arrayOfVector;\nToArrayVisitor.prototype.visitInt = arrayOfVector;\nToArrayVisitor.prototype.visitInt8 = arrayOfVector;\nToArrayVisitor.prototype.visitInt16 = arrayOfVector;\nToArrayVisitor.prototype.visitInt32 = arrayOfVector;\nToArrayVisitor.prototype.visitInt64 = arrayOfVector;\nToArrayVisitor.prototype.visitUint8 = arrayOfVector;\nToArrayVisitor.prototype.visitUint16 = arrayOfVector;\nToArrayVisitor.prototype.visitUint32 = arrayOfVector;\nToArrayVisitor.prototype.visitUint64 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat = arrayOfVector;\nToArrayVisitor.prototype.visitFloat16 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat32 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat64 = arrayOfVector;\nToArrayVisitor.prototype.visitUtf8 = arrayOfVector;\nToArrayVisitor.prototype.visitBinary = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeBinary = arrayOfVector;\nToArrayVisitor.prototype.visitDate = arrayOfVector;\nToArrayVisitor.prototype.visitDateDay = arrayOfVector;\nToArrayVisitor.prototype.visitDateMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestamp = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTime = arrayOfVector;\nToArrayVisitor.prototype.visitTimeSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitDecimal = arrayOfVector;\nToArrayVisitor.prototype.visitList = arrayOfVector;\nToArrayVisitor.prototype.visitStruct = arrayOfVector;\nToArrayVisitor.prototype.visitUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDenseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitSparseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDictionary = arrayOfVector;\nToArrayVisitor.prototype.visitInterval = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalDayTime = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalYearMonth = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeList = arrayOfVector;\nToArrayVisitor.prototype.visitMap = arrayOfVector;\n\n/** @ignore */\nexport const instance = new ToArrayVisitor();\n","/* istanbul ignore file */\n\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Type, TimeUnit } from '../enum';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n} from '../type';\n\n/** @ignore */ const sum = (x: number, y: number) => x + y;\n/** @ignore */ const variableWidthColumnErrorMessage = (type: DataType) => `Cannot compute the byte width of variable-width column ${type}`;\n\n/** @ignore */\nexport interface ByteWidthVisitor extends Visitor {\n visit(node: T): number;\n visitMany(nodes: T[]): number[];\n getVisitFn (node: T): (type: DataType) => number;\n getVisitFn(node: VectorType | Data | T): (type: T) => number;\n}\n\n/** @ignore */\nexport class ByteWidthVisitor extends Visitor {\n public visitNull (____: Null ) { return 0; }\n public visitInt (type: Int ) { return type.bitWidth / 8; }\n public visitFloat (type: Float ) { return type.ArrayType.BYTES_PER_ELEMENT; }\n public visitBinary (type: Binary ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitUtf8 (type: Utf8 ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitBool (____: Bool ) { return 1 / 8; }\n public visitDecimal (____: Decimal ) { return 16; }\n public visitDate (type: Date_ ) { return (type.unit + 1) * 4; }\n public visitTime (type: Time ) { return type.bitWidth / 8; }\n public visitTimestamp (type: Timestamp ) { return type.unit === TimeUnit.SECOND ? 4 : 8; }\n public visitInterval (type: Interval ) { return (type.unit + 1) * 4; }\n public visitList (type: List ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitStruct (type: Struct ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitUnion (type: Union ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitFixedSizeBinary (type: FixedSizeBinary ) { return type.byteWidth; }\n public visitFixedSizeList (type: FixedSizeList ) { return type.listSize * this.visitFields(type.children).reduce(sum, 0); }\n public visitMap (type: Map_ ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitDictionary (type: Dictionary ) { return this.visit(type.indices); }\n public visitFields (fields: Field[] ) { return (fields || []).map((field) => this.visit(field.type)); }\n public visitSchema (schema: Schema ) { return this.visitFields(schema.fields).reduce(sum, 0); }\n}\n\n/** @ignore */\nexport const instance = new ByteWidthVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, VectorCtor } from '../interfaces';\n\nimport { BinaryVector } from '../vector/binary';\nimport { BoolVector } from '../vector/bool';\nimport { DateVector, DateDayVector, DateMillisecondVector } from '../vector/date';\nimport { DecimalVector } from '../vector/decimal';\nimport { DictionaryVector } from '../vector/dictionary';\nimport { FixedSizeBinaryVector } from '../vector/fixedsizebinary';\nimport { FixedSizeListVector } from '../vector/fixedsizelist';\nimport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from '../vector/float';\nimport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from '../vector/interval';\nimport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from '../vector/int';\nimport { ListVector } from '../vector/list';\nimport { MapVector } from '../vector/map';\nimport { NullVector } from '../vector/null';\nimport { StructVector } from '../vector/struct';\nimport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from '../vector/timestamp';\nimport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from '../vector/time';\nimport { UnionVector, DenseUnionVector, SparseUnionVector } from '../vector/union';\nimport { Utf8Vector } from '../vector/utf8';\n\n/** @ignore */\nexport interface GetVectorConstructor extends Visitor {\n visit(node: T): VectorCtor;\n visitMany (nodes: T[]): VectorCtor[];\n getVisitFn(node: T): () => VectorCtor;\n getVisitFn(node: VectorType | Data | T): () => VectorCtor;\n}\n\n/** @ignore */\nexport class GetVectorConstructor extends Visitor {\n public visitNull () { return NullVector; }\n public visitBool () { return BoolVector; }\n public visitInt () { return IntVector; }\n public visitInt8 () { return Int8Vector; }\n public visitInt16 () { return Int16Vector; }\n public visitInt32 () { return Int32Vector; }\n public visitInt64 () { return Int64Vector; }\n public visitUint8 () { return Uint8Vector; }\n public visitUint16 () { return Uint16Vector; }\n public visitUint32 () { return Uint32Vector; }\n public visitUint64 () { return Uint64Vector; }\n public visitFloat () { return FloatVector; }\n public visitFloat16 () { return Float16Vector; }\n public visitFloat32 () { return Float32Vector; }\n public visitFloat64 () { return Float64Vector; }\n public visitUtf8 () { return Utf8Vector; }\n public visitBinary () { return BinaryVector; }\n public visitFixedSizeBinary () { return FixedSizeBinaryVector; }\n public visitDate () { return DateVector; }\n public visitDateDay () { return DateDayVector; }\n public visitDateMillisecond () { return DateMillisecondVector; }\n public visitTimestamp () { return TimestampVector; }\n public visitTimestampSecond () { return TimestampSecondVector; }\n public visitTimestampMillisecond () { return TimestampMillisecondVector; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondVector; }\n public visitTimestampNanosecond () { return TimestampNanosecondVector; }\n public visitTime () { return TimeVector; }\n public visitTimeSecond () { return TimeSecondVector; }\n public visitTimeMillisecond () { return TimeMillisecondVector; }\n public visitTimeMicrosecond () { return TimeMicrosecondVector; }\n public visitTimeNanosecond () { return TimeNanosecondVector; }\n public visitDecimal () { return DecimalVector; }\n public visitList () { return ListVector; }\n public visitStruct () { return StructVector; }\n public visitUnion () { return UnionVector; }\n public visitDenseUnion () { return DenseUnionVector; }\n public visitSparseUnion () { return SparseUnionVector; }\n public visitDictionary () { return DictionaryVector; }\n public visitInterval () { return IntervalVector; }\n public visitIntervalDayTime () { return IntervalDayTimeVector; }\n public visitIntervalYearMonth () { return IntervalYearMonthVector; }\n public visitFixedSizeList () { return FixedSizeListVector; }\n public visitMap () { return MapVector; }\n}\n\n/** @ignore */\nexport const instance = new GetVectorConstructor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { Vector } from '../vector';\nexport { BaseVector } from './base';\nexport { BinaryVector } from './binary';\nexport { BoolVector } from './bool';\nexport { Chunked } from './chunked';\nexport { DateVector, DateDayVector, DateMillisecondVector } from './date';\nexport { DecimalVector } from './decimal';\nexport { DictionaryVector } from './dictionary';\nexport { FixedSizeBinaryVector } from './fixedsizebinary';\nexport { FixedSizeListVector } from './fixedsizelist';\nexport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from './float';\nexport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from './interval';\nexport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from './int';\nexport { ListVector } from './list';\nexport { MapVector } from './map';\nexport { NullVector } from './null';\nexport { StructVector } from './struct';\nexport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from './timestamp';\nexport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from './time';\nexport { UnionVector, DenseUnionVector, SparseUnionVector } from './union';\nexport { Utf8Vector } from './utf8';\nexport { MapRow, StructRow } from './row';\n\nimport * as fn from '../util/fn';\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { setBool } from '../util/bit';\nimport { isIterable, isAsyncIterable } from '../util/compat';\nimport { Builder, IterableBuilderOptions } from '../builder';\nimport { VectorType as V, VectorCtorArgs } from '../interfaces';\nimport { instance as getVisitor } from '../visitor/get';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as indexOfVisitor } from '../visitor/indexof';\nimport { instance as toArrayVisitor } from '../visitor/toarray';\nimport { instance as iteratorVisitor } from '../visitor/iterator';\nimport { instance as byteWidthVisitor } from '../visitor/bytewidth';\nimport { instance as getVectorConstructor } from '../visitor/vectorctor';\n\ndeclare module '../vector' {\n namespace Vector {\n export { newVector as new };\n export { vectorFrom as from };\n }\n}\n\ndeclare module './base' {\n namespace BaseVector {\n export { vectorFrom as from };\n }\n interface BaseVector {\n get(index: number): T['TValue'] | null;\n set(index: number, value: T['TValue'] | null): void;\n indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n toArray(): T['TArray'];\n getByteWidth(): number;\n [Symbol.iterator](): IterableIterator;\n }\n}\n\n/** @nocollapse */\nVector.new = newVector;\n\n/** @nocollapse */\nVector.from = vectorFrom;\n\n/** @ignore */\nfunction newVector(data: Data, ...args: VectorCtorArgs>): V {\n return new (getVectorConstructor.getVisitFn(data)())(data, ...args) as V;\n}\n\n/** @ignore */\nexport interface VectorBuilderOptions extends IterableBuilderOptions { values: Iterable; }\n/** @ignore */\nexport interface VectorBuilderOptionsAsync extends IterableBuilderOptions { values: AsyncIterable; }\n\n/** @ignore */\nexport function vectorFromValuesWithType(newDataType: () => T, input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n if (isIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as V;\n } else if (isAsyncIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as Promise>;\n }\n const {\n 'values': values = [],\n 'type': type = newDataType(),\n 'nullValues': nullValues = [null, undefined],\n } = { ...input };\n return isIterable(values)\n ? Vector.from({ nullValues, ...input, type } as VectorBuilderOptions)\n : Vector.from({ nullValues, ...input, type } as VectorBuilderOptionsAsync);\n}\n\n/** @ignore */\nfunction vectorFrom(input: VectorBuilderOptions): Vector;\nfunction vectorFrom(input: VectorBuilderOptionsAsync): Promise>;\nfunction vectorFrom(input: VectorBuilderOptions | VectorBuilderOptionsAsync) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input } as VectorBuilderOptions | VectorBuilderOptionsAsync;\n if (isIterable(values)) {\n const chunks = [...Builder.throughIterable(options)(values)];\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n }\n return (async (chunks: V[]) => {\n const transform = Builder.throughAsyncIterable(options);\n for await (const chunk of transform(values)) {\n chunks.push(chunk);\n }\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n })([]);\n}\n\n//\n// We provide the following method implementations for code navigability purposes only.\n// They're overridden at runtime below with the specific Visitor implementation for each type,\n// short-circuiting the usual Visitor traversal and reducing intermediate lookups and calls.\n// This comment is here to remind you to not set breakpoints in these function bodies, or to inform\n// you why the breakpoints you have already set are not being triggered. Have a great day!\n//\n\nBaseVector.prototype.get = function baseVectorGet(this: BaseVector, index: number): T['TValue'] | null {\n return getVisitor.visit(this, index);\n};\n\nBaseVector.prototype.set = function baseVectorSet(this: BaseVector, index: number, value: T['TValue'] | null): void {\n return setVisitor.visit(this, index, value);\n};\n\nBaseVector.prototype.indexOf = function baseVectorIndexOf(this: BaseVector, value: T['TValue'] | null, fromIndex?: number): number {\n return indexOfVisitor.visit(this, value, fromIndex);\n};\n\nBaseVector.prototype.toArray = function baseVectorToArray(this: BaseVector): T['TArray'] {\n return toArrayVisitor.visit(this);\n};\n\nBaseVector.prototype.getByteWidth = function baseVectorGetByteWidth(this: BaseVector): number {\n return byteWidthVisitor.visit(this.type);\n};\n\nBaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator(this: BaseVector): IterableIterator {\n return iteratorVisitor.visit(this);\n};\n\n(BaseVector.prototype as any)._bindDataAccessors = bindBaseVectorDataAccessors;\n\n// Perf: bind and assign the operator Visitor methods to each of the Vector subclasses for each Type\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number')\n .filter((typeId) => typeId !== Type.NONE)\n .forEach((typeId) => {\n const VectorCtor = getVectorConstructor.visit(typeId);\n VectorCtor.prototype['get'] = fn.partial1(getVisitor.getVisitFn(typeId));\n VectorCtor.prototype['set'] = fn.partial2(setVisitor.getVisitFn(typeId));\n VectorCtor.prototype['indexOf'] = fn.partial2(indexOfVisitor.getVisitFn(typeId));\n VectorCtor.prototype['toArray'] = fn.partial0(toArrayVisitor.getVisitFn(typeId));\n VectorCtor.prototype['getByteWidth'] = partialType0(byteWidthVisitor.getVisitFn(typeId));\n VectorCtor.prototype[Symbol.iterator] = fn.partial0(iteratorVisitor.getVisitFn(typeId));\n });\n\n/** @ignore */\nfunction partialType0(visit: (node: T['type']) => any) {\n return function(this: T) { return visit(this.type); };\n}\n\n/** @ignore */\nfunction wrapNullableGet, F extends (i: number) => any>(fn: F): (...args: Parameters) => ReturnType {\n return function(this: V, i: number) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n\n/** @ignore */\nfunction wrapNullableSet, F extends (i: number, a: any) => void>(fn: F): (...args: Parameters) => void {\n return function(this: V, i: number, a: any) {\n if (setBool(this.nullBitmap, this.offset + i, !(a === null || a === undefined))) {\n fn.call(this, i, a);\n }\n };\n}\n\n/** @ignore */\nfunction bindBaseVectorDataAccessors(this: BaseVector) {\n const nullBitmap = this.nullBitmap;\n if (nullBitmap && nullBitmap.byteLength > 0) {\n this.get = wrapNullableGet(this.get);\n this.set = wrapNullableSet(this.set);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Column } from './column';\nimport { Schema, Field } from './schema';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from './recordbatch';\nimport { DataFrame } from './compute/dataframe';\nimport { RecordBatchReader } from './ipc/reader';\nimport { DataType, RowLike, Struct } from './type';\nimport { selectColumnArgs, selectArgs } from './util/args';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { isPromise, isIterable, isAsyncIterable } from './util/compat';\nimport { RecordBatchFileWriter, RecordBatchStreamWriter } from './ipc/writer';\nimport { distributeColumnsIntoRecordBatches, distributeVectorsIntoRecordBatches } from './util/recordbatch';\nimport { Vector, Chunked, StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = Data[] | Vector[];\ntype Columns = Column[] | Column[][];\n\nexport interface Table {\n\n get(index: number): Struct['TValue'];\n [Symbol.iterator](): IterableIterator>;\n\n slice(begin?: number, end?: number): Table;\n concat(...others: Vector>[]): Table;\n clone(chunks?: RecordBatch[], offsets?: Uint32Array): Table;\n\n scan(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n scanReverse(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n countBy(name: import('./compute/predicate').Col | string): import('./compute/dataframe').CountByResult;\n filter(predicate: import('./compute/predicate').Predicate): import('./compute/dataframe').FilteredDataFrame;\n}\n\nexport class Table\n extends Chunked>\n implements DataFrame,\n Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n /** @nocollapse */\n public static empty(schema = new Schema([])) { return new Table(schema, []); }\n\n public static from(): Table<{}>;\n public static from(source: RecordBatchReader): Table;\n public static from(source: import('./ipc/reader').FromArg0): Table;\n public static from(source: import('./ipc/reader').FromArg2): Table;\n public static from(source: import('./ipc/reader').FromArg1): Promise>;\n public static from(source: import('./ipc/reader').FromArg3): Promise>;\n public static from(source: import('./ipc/reader').FromArg4): Promise>;\n public static from(source: import('./ipc/reader').FromArg5): Promise>;\n public static from(source: PromiseLike>): Promise>;\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(input?: any) {\n\n if (!input) { return Table.empty(); }\n\n if (typeof input === 'object') {\n let table = isIterable(input['values']) ? tableFromIterable(input)\n : isAsyncIterable(input['values']) ? tableFromAsyncIterable(input)\n : null;\n if (table !== null) { return table; }\n }\n\n let reader = RecordBatchReader.from(input) as RecordBatchReader | Promise>;\n\n if (isPromise>(reader)) {\n return (async () => await Table.from(await reader))();\n }\n if (reader.isSync() && (reader = reader.open())) {\n return !reader.schema ? Table.empty() : new Table(reader.schema, [...reader]);\n }\n return (async (opening) => {\n const reader = await opening;\n const schema = reader.schema;\n const batches: RecordBatch[] = [];\n if (schema) {\n for await (let batch of reader) {\n batches.push(batch);\n }\n return new Table(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n\n /** @nocollapse */\n public static async fromAsync(source: import('./ipc/reader').FromArgs): Promise> {\n return await Table.from(source as any);\n }\n\n /** @nocollapse */\n public static fromStruct(vector: Vector>) {\n return Table.new(vector.data.childData as Data[], vector.type.children);\n }\n\n /**\n * @summary Create a new Table from a collection of Columns or Vectors,\n * with an optional list of names or Fields.\n *\n *\n * `Table.new` accepts an Object of\n * Columns or Vectors, where the keys will be used as the field names\n * for the Schema:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new({ i32: i32s, f32: f32s });\n * assert(table.schema.fields[0].name === 'i32');\n * ```\n *\n * It also accepts a a list of Vectors with an optional list of names or\n * Fields for the resulting Schema. If the list is omitted or a name is\n * missing, the numeric index of each Vector will be used as the name:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new([i32s, f32s], ['i32']);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === '1');\n * ```\n *\n * If the supplied arguments are Columns, `Table.new` will infer the Schema\n * from the Columns:\n * ```ts\n * const i32s = Column.new('i32', Int32Vector.from([1, 2, 3]));\n * const f32s = Column.new('f32', Float32Vector.from([.1, .2, .3]));\n * const table = Table.new(i32s, f32s);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === 'f32');\n * ```\n *\n * If the supplied Vector or Column lengths are unequal, `Table.new` will\n * extend the lengths of the shorter Columns, allocating additional bytes\n * to represent the additional null slots. The memory required to allocate\n * these additional bitmaps can be computed as:\n * ```ts\n * let additionalBytes = 0;\n * for (let vec in shorter_vectors) {\n * additionalBytes += (((longestLength - vec.length) + 63) & ~63) >> 3;\n * }\n * ```\n *\n * For example, an additional null bitmap for one million null values would require\n * 125,000 bytes (`((1e6 + 63) & ~63) >> 3`), or approx. `0.11MiB`\n */\n public static new(...columns: Columns): Table;\n public static new(children: T): Table<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Table;\n /** @nocollapse */\n public static new(...cols: any[]) {\n return new Table(...distributeColumnsIntoRecordBatches(selectColumnArgs(cols)));\n }\n\n constructor(batches: RecordBatch[]);\n constructor(...batches: RecordBatch[]);\n constructor(schema: Schema, batches: RecordBatch[]);\n constructor(schema: Schema, ...batches: RecordBatch[]);\n constructor(...args: any[]) {\n\n let schema: Schema = null!;\n\n if (args[0] instanceof Schema) { schema = args.shift(); }\n\n let chunks = selectArgs>(RecordBatch, args);\n\n if (!schema && !(schema = chunks[0] && chunks[0].schema)) {\n throw new TypeError('Table must be initialized with a Schema or at least one RecordBatch');\n }\n\n chunks[0] || (chunks[0] = new _InternalEmptyPlaceholderRecordBatch(schema));\n\n super(new Struct(schema.fields), chunks);\n\n this._schema = schema;\n this._chunks = chunks;\n }\n\n protected _schema: Schema;\n // List of inner RecordBatches\n protected _chunks: RecordBatch[];\n protected _children?: Column[];\n\n public get schema() { return this._schema; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get numCols() { return this._numChildren; }\n\n public clone(chunks = this._chunks) {\n return new Table(this._schema, chunks);\n }\n\n public getColumn(name: R): Column {\n return this.getColumnAt(this.getColumnIndex(name)) as Column;\n }\n public getColumnAt(index: number): Column | null {\n return this.getChildAt(index);\n }\n public getColumnIndex(name: R) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n public getChildAt(index: number): Column | null {\n if (index < 0 || index >= this.numChildren) { return null; }\n let field: Field, child: Column;\n const fields = (this._schema as Schema).fields;\n const columns = this._children || (this._children = []) as Column[];\n if (child = columns[index]) { return child as Column; }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n return null;\n }\n\n // @ts-ignore\n public serialize(encoding = 'binary', stream = true) {\n const Writer = !stream\n ? RecordBatchFileWriter\n : RecordBatchStreamWriter;\n return Writer.writeAll(this).toUint8Array(true);\n }\n public count(): number {\n return this._length;\n }\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n return new Table(schema, this._chunks.map(({ length, data: { childData } }) => {\n return new RecordBatch(schema, length, columnIndices.map((i) => childData[i]).filter(Boolean));\n }));\n }\n public assign(other: Table) {\n\n const fields = this._schema.fields;\n const [indices, oldToNew] = other.schema.fields.reduce((memo, f2, newIdx) => {\n const [indices, oldToNew] = memo;\n const i = fields.findIndex((f) => f.name === f2.name);\n ~i ? (oldToNew[i] = newIdx) : indices.push(newIdx);\n return memo;\n }, [[], []] as number[][]);\n\n const schema = this._schema.assign(other.schema);\n const columns = [\n ...fields.map((_f, i, _fs, j = oldToNew[i]) =>\n (j === undefined ? this.getColumnAt(i) : other.getColumnAt(j))!),\n ...indices.map((i) => other.getColumnAt(i)!)\n ].filter(Boolean) as Column<(T & R)[keyof T | keyof R]>[];\n\n return new Table(...distributeVectorsIntoRecordBatches(schema, columns));\n }\n}\n\nfunction tableFromIterable(input: VectorBuilderOptions, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return Table.fromStruct(StructVector.from(input as VectorBuilderOptions, TNull>));\n }\n return null;\n}\n\nfunction tableFromAsyncIterable(input: VectorBuilderOptionsAsync, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return StructVector.from(input as VectorBuilderOptionsAsync, TNull>).then((vector) => Table.fromStruct(vector));\n }\n return null;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Table } from './table';\nimport { Vector } from './vector';\nimport { Visitor } from './visitor';\nimport { Schema, Field } from './schema';\nimport { isIterable } from './util/compat';\nimport { Chunked } from './vector/chunked';\nimport { selectFieldArgs } from './util/args';\nimport { DataType, Struct, Dictionary } from './type';\nimport { ensureSameLengthData } from './util/recordbatch';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = (Data | Vector)[];\n\nexport interface RecordBatch {\n concat(...others: Vector>[]): Table;\n slice(begin?: number, end?: number): RecordBatch;\n clone(data: Data>, children?: Vector[]): RecordBatch;\n}\n\nexport class RecordBatch\n extends StructVector\n implements Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(options: VectorBuilderOptions, TNull> | VectorBuilderOptionsAsync, TNull>) {\n if (isIterable<(Struct)['TValue'] | TNull>(options['values'])) {\n return Table.from(options as VectorBuilderOptions, TNull>);\n }\n return Table.from(options as VectorBuilderOptionsAsync, TNull>);\n }\n\n public static new(children: T): RecordBatch<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): RecordBatch;\n /** @nocollapse */\n public static new(...args: any[]) {\n const [fs, xs] = selectFieldArgs(args);\n const vs = xs.filter((x): x is Vector => x instanceof Vector);\n return new RecordBatch(...ensureSameLengthData(new Schema(fs), vs.map((x) => x.data)));\n }\n\n protected _schema: Schema;\n protected _dictionaries?: Map;\n\n constructor(schema: Schema, length: number, children: (Data | Vector)[]);\n constructor(schema: Schema, data: Data>, children?: Vector[]);\n constructor(...args: any[]) {\n let data: Data>;\n let schema = args[0] as Schema;\n let children: Vector[] | undefined;\n if (args[1] instanceof Data) {\n [, data, children] = (args as [any, Data>, Vector[]?]);\n } else {\n const fields = schema.fields as Field[];\n const [, length, childData] = args as [any, number, Data[]];\n data = Data.Struct(new Struct(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n\n public clone(data: Data>, children = this._children) {\n return new RecordBatch(this._schema, data, children);\n }\n\n public concat(...others: Vector>[]): Table {\n const schema = this._schema, chunks = Chunked.flatten(this, ...others);\n return new Table(schema, chunks.map(({ data }) => new RecordBatch(schema, data)));\n }\n\n public get schema() { return this._schema; }\n public get numCols() { return this._schema.fields.length; }\n public get dictionaries() {\n return this._dictionaries || (this._dictionaries = DictionaryCollector.collect(this));\n }\n\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n const childData = columnIndices.map((i) => this.data.childData[i]).filter(Boolean);\n return new RecordBatch<{ [key: string]: K }>(schema, this.length, childData);\n }\n}\n\n/**\n * An internal class used by the `RecordBatchReader` and `RecordBatchWriter`\n * implementations to differentiate between a stream with valid zero-length\n * RecordBatches, and a stream with a Schema message, but no RecordBatches.\n * @see https://github.com/apache/arrow/pull/4373\n * @ignore\n * @private\n */\n/* tslint:disable:class-name */\nexport class _InternalEmptyPlaceholderRecordBatch extends RecordBatch {\n constructor(schema: Schema) {\n super(schema, 0, schema.fields.map((f) => Data.new(f.type, 0, 0, 0)));\n }\n}\n\n/** @ignore */\nclass DictionaryCollector extends Visitor {\n public dictionaries = new Map();\n public static collect(batch: T) {\n return new DictionaryCollector().visit(\n batch.data, new Struct(batch.schema.fields)\n ).dictionaries;\n }\n public visit(data: Data, type: DataType) {\n if (DataType.isDictionary(type)) {\n return this.visitDictionary(data, type);\n } else {\n data.childData.forEach((child, i) =>\n this.visit(child, type.children[i].type));\n }\n return this;\n }\n public visitDictionary(data: Data, type: Dictionary) {\n const dictionary = data.dictionary;\n if (dictionary && dictionary.length > 0) {\n this.dictionaries.set(type.id, dictionary);\n }\n return this;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { MessageHeader } from '../enum';\nimport { Footer } from './metadata/file';\nimport { Schema, Field } from '../schema';\nimport streamAdapters from '../io/adapters';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, AsyncByteStream } from '../io/stream';\nimport { RandomAccessFile, AsyncRandomAccessFile } from '../io/file';\nimport { VectorLoader, JSONVectorLoader } from '../visitor/vectorloader';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport {\n FileHandle,\n ArrowJSONLike,\n ITERATOR_DONE,\n ReadableInterop,\n} from '../io/interfaces';\nimport {\n MessageReader, AsyncMessageReader, JSONMessageReader,\n checkForMagicArrowString, magicLength, magicAndPadding, magicX2AndPadding\n} from './message';\nimport {\n isPromise,\n isIterable, isAsyncIterable,\n isIteratorResult, isArrowJSON,\n isFileHandle, isFetchResponse,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */ export type FromArg0 = ArrowJSONLike;\n/** @ignore */ export type FromArg1 = PromiseLike;\n/** @ignore */ export type FromArg2 = Iterable | ArrayBufferViewInput;\n/** @ignore */ export type FromArg3 = PromiseLike | ArrayBufferViewInput>;\n/** @ignore */ export type FromArg4 = Response | NodeJS.ReadableStream | ReadableStream | AsyncIterable;\n/** @ignore */ export type FromArg5 = FileHandle | PromiseLike | PromiseLike;\n/** @ignore */ export type FromArgs = FromArg0 | FromArg1 | FromArg2 | FromArg3 | FromArg4 | FromArg5;\n\n/** @ignore */ type OpenOptions = { autoDestroy?: boolean; };\n/** @ignore */ type RecordBatchReaders = RecordBatchFileReader | RecordBatchStreamReader;\n/** @ignore */ type AsyncRecordBatchReaders = AsyncRecordBatchFileReader | AsyncRecordBatchStreamReader;\n/** @ignore */ type RecordBatchFileReaders = RecordBatchFileReader | AsyncRecordBatchFileReader;\n/** @ignore */ type RecordBatchStreamReaders = RecordBatchStreamReader | AsyncRecordBatchStreamReader;\n\nexport class RecordBatchReader extends ReadableInterop> {\n\n protected _impl: RecordBatchReaderImpls;\n protected constructor(impl: RecordBatchReaderImpls) {\n super();\n this._impl = impl;\n }\n\n public get closed() { return this._impl.closed; }\n public get schema() { return this._impl.schema; }\n public get autoDestroy() { return this._impl.autoDestroy; }\n public get dictionaries() { return this._impl.dictionaries; }\n public get numDictionaries() { return this._impl.numDictionaries; }\n public get numRecordBatches() { return this._impl.numRecordBatches; }\n public get footer() { return this._impl.isFile() ? this._impl.footer : null; }\n\n public isSync(): this is RecordBatchReaders { return this._impl.isSync(); }\n public isAsync(): this is AsyncRecordBatchReaders { return this._impl.isAsync(); }\n public isFile(): this is RecordBatchFileReaders { return this._impl.isFile(); }\n public isStream(): this is RecordBatchStreamReaders { return this._impl.isStream(); }\n\n public next() {\n return this._impl.next();\n }\n public throw(value?: any) {\n return this._impl.throw(value);\n }\n public return(value?: any) {\n return this._impl.return(value);\n }\n public cancel() {\n return this._impl.cancel();\n }\n public reset(schema?: Schema | null): this {\n this._impl.reset(schema);\n this._DOMStream = undefined;\n this._nodeStream = undefined;\n return this;\n }\n public open(options?: OpenOptions) {\n const opening = this._impl.open(options);\n return isPromise(opening) ? opening.then(() => this) : this;\n }\n public readRecordBatch(index: number): RecordBatch | null | Promise | null> {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n public [Symbol.iterator](): IterableIterator> {\n return (>> this._impl)[Symbol.iterator]();\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return (>> this._impl)[Symbol.asyncIterator]();\n }\n public toDOMStream() {\n return streamAdapters.toDOMStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>));\n }\n public toNodeStream() {\n return streamAdapters.toNodeStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>),\n { objectMode: true });\n }\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: ByteLengthQueuingStrategy,\n // @ts-ignore\n readableStrategy?: { autoDestroy: boolean }\n ): { writable: WritableStream, readable: ReadableStream> } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n public static from(source: T): T;\n public static from(source: FromArg0): RecordBatchStreamReader;\n public static from(source: FromArg1): Promise>;\n public static from(source: FromArg2): RecordBatchFileReader | RecordBatchStreamReader;\n public static from(source: FromArg3): Promise | RecordBatchStreamReader>;\n public static from(source: FromArg4): Promise | AsyncRecordBatchReaders>;\n public static from(source: FromArg5): Promise | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static from(source: any) {\n if (source instanceof RecordBatchReader) {\n return source;\n } else if (isArrowJSON(source)) {\n return fromArrowJSON(source);\n } else if (isFileHandle(source)) {\n return fromFileHandle(source);\n } else if (isPromise(source)) {\n return (async () => await RecordBatchReader.from(await source))();\n } else if (isFetchResponse(source) || isReadableDOMStream(source) || isReadableNodeStream(source) || isAsyncIterable(source)) {\n return fromAsyncByteStream(new AsyncByteStream(source));\n }\n return fromByteStream(new ByteStream(source));\n }\n\n public static readAll(source: T): T extends RecordBatchReaders ? IterableIterator : AsyncIterableIterator;\n public static readAll(source: FromArg0): IterableIterator>;\n public static readAll(source: FromArg1): AsyncIterableIterator>;\n public static readAll(source: FromArg2): IterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg3): AsyncIterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg4): AsyncIterableIterator | AsyncRecordBatchReaders>;\n public static readAll(source: FromArg5): AsyncIterableIterator | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static readAll(source: any) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source as AsyncRecordBatchReaders);\n } else if (isArrowJSON(source) || ArrayBuffer.isView(source) || isIterable(source) || isIteratorResult(source)) {\n return readAllSync(source) as IterableIterator>;\n }\n return readAllAsync(source) as AsyncIterableIterator | AsyncRecordBatchReaders>;\n }\n}\n\n//\n// Since TS is a structural type system, we define the following subclass stubs\n// so that concrete types exist to associate with with the interfaces below.\n//\n// The implementation for each RecordBatchReader is hidden away in the set of\n// `RecordBatchReaderImpl` classes in the second half of this file. This allows\n// us to export a single RecordBatchReader class, and swap out the impl based\n// on the io primitives or underlying arrow (JSON, file, or stream) at runtime.\n//\n// Async/await makes our job a bit harder, since it forces everything to be\n// either fully sync or fully async. This is why the logic for the reader impls\n// has been duplicated into both sync and async variants. Since the RBR\n// delegates to its impl, an RBR with an AsyncRecordBatchFileReaderImpl for\n// example will return async/await-friendly Promises, but one with a (sync)\n// RecordBatchStreamReaderImpl will always return values. Nothing should be\n// different about their logic, aside from the async handling. This is also why\n// this code looks highly structured, as it should be nearly identical and easy\n// to follow.\n//\n\n/** @ignore */\nexport class RecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: RecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator]() { return (this._impl as IterableIterator>)[Symbol.iterator](); }\n public async *[Symbol.asyncIterator](): AsyncIterableIterator> { yield* this[Symbol.iterator](); }\n}\n/** @ignore */\nexport class AsyncRecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: AsyncRecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator](): IterableIterator> { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n public [Symbol.asyncIterator]() { return (this._impl as AsyncIterableIterator>)[Symbol.asyncIterator](); }\n}\n/** @ignore */\nexport class RecordBatchFileReader extends RecordBatchStreamReader {\n constructor(protected _impl: RecordBatchFileReaderImpl) { super (_impl); }\n}\n/** @ignore */\nexport class AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n constructor(protected _impl: AsyncRecordBatchFileReaderImpl) { super (_impl); }\n}\n\n//\n// Now override the return types for each sync/async RecordBatchReader variant\n//\n\n/** @ignore */\nexport interface RecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): this;\n cancel(): void;\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): Promise;\n cancel(): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n}\n\n/** @ignore */\nexport interface RecordBatchFileReader extends RecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\ntype RecordBatchReaderImpls =\n RecordBatchJSONReaderImpl |\n RecordBatchFileReaderImpl |\n RecordBatchStreamReaderImpl |\n AsyncRecordBatchFileReaderImpl |\n AsyncRecordBatchStreamReaderImpl;\n\n/** @ignore */\ninterface RecordBatchReaderImpl {\n\n closed: boolean;\n schema: Schema;\n autoDestroy: boolean;\n dictionaries: Map;\n\n isFile(): this is RecordBatchFileReaders;\n isStream(): this is RecordBatchStreamReaders;\n isSync(): this is RecordBatchReaders;\n isAsync(): this is AsyncRecordBatchReaders;\n\n reset(schema?: Schema | null): this;\n}\n\n/** @ignore */\ninterface RecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): this;\n cancel(): void;\n\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n\n [Symbol.iterator](): IterableIterator>;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): Promise;\n cancel(): Promise;\n\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n\n [Symbol.asyncIterator](): AsyncIterableIterator>;\n}\n\n/** @ignore */\ninterface RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl {\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\nabstract class RecordBatchReaderImpl implements RecordBatchReaderImpl {\n\n // @ts-ignore\n public schema: Schema;\n public closed = false;\n public autoDestroy = true;\n public dictionaries: Map;\n\n protected _dictionaryIndex = 0;\n protected _recordBatchIndex = 0;\n public get numDictionaries() { return this._dictionaryIndex; }\n public get numRecordBatches() { return this._recordBatchIndex; }\n\n constructor(dictionaries = new Map()) {\n this.dictionaries = dictionaries;\n }\n\n public isSync(): this is RecordBatchReaders { return false; }\n public isAsync(): this is AsyncRecordBatchReaders { return false; }\n public isFile(): this is RecordBatchFileReaders { return false; }\n public isStream(): this is RecordBatchStreamReaders { return false; }\n\n public reset(schema?: Schema | null) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = schema;\n this.dictionaries = new Map();\n return this;\n }\n\n protected _loadRecordBatch(header: metadata.RecordBatch, body: any) {\n return new RecordBatch(this.schema, header.length, this._loadVectors(header, body, this.schema.fields));\n }\n protected _loadDictionaryBatch(header: metadata.DictionaryBatch, body: any) {\n const { id, isDelta, data } = header;\n const { dictionaries, schema } = this;\n const dictionary = dictionaries.get(id);\n if (isDelta || !dictionary) {\n const type = schema.dictionaries.get(id)!;\n return (dictionary && isDelta ? dictionary.concat(\n Vector.new(this._loadVectors(data, body, [type])[0])) :\n Vector.new(this._loadVectors(data, body, [type])[0])) as Vector;\n }\n return dictionary;\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new VectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n/** @ignore */\nclass RecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements IterableIterator> {\n\n protected _reader: MessageReader;\n protected _handle: ByteStream | ArrowJSONLike;\n\n constructor(source: ByteStream | ArrowJSONLike, dictionaries?: Map) {\n super(dictionaries);\n this._reader = !isArrowJSON(source)\n ? new MessageReader(this._handle = source)\n : new JSONMessageReader(this._handle = source);\n }\n\n public isSync(): this is RecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.iterator](): IterableIterator> {\n return this as IterableIterator>;\n }\n public cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = this._reader.readSchema()!))) {\n this.cancel();\n }\n }\n return this;\n }\n public throw(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public return(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public next(): IteratorResult> {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return this.return();\n }\n protected _readNextMessageAndValidate(type?: T | null) {\n return this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements AsyncIterableIterator> {\n\n protected _handle: AsyncByteStream;\n protected _reader: AsyncMessageReader;\n\n constructor(source: AsyncByteStream, dictionaries?: Map) {\n super(dictionaries);\n this._reader = new AsyncMessageReader(this._handle = source);\n }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return this as AsyncIterableIterator>;\n }\n public async cancel() {\n if (!this.closed && (this.closed = true)) {\n await this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public async open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = (await this._reader.readSchema())!))) {\n await this.cancel();\n }\n }\n return this;\n }\n public async throw(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public async return(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public async next() {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = await this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n await this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return await this.return();\n }\n protected async _readNextMessageAndValidate(type?: T | null) {\n return await this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n\n // @ts-ignore\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: RandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: RandomAccessFile | ArrayBufferViewInput, dictionaries?: Map) {\n super(source instanceof RandomAccessFile ? source : new RandomAccessFile(source), dictionaries);\n }\n public isSync(): this is RecordBatchReaders { return true; }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return super.open(options);\n }\n public readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected _readFooter() {\n const { _handle } = this;\n const offset = _handle.size - magicAndPadding;\n const length = _handle.readInt32(offset);\n const buffer = _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected _readNextMessageAndValidate(type?: T | null): Message | null {\n if (!this._footer) { this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer && this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && this._handle.seek(block.offset)) {\n return this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl\n implements AsyncRecordBatchFileReaderImpl {\n\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: AsyncRandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: FileHandle, byteLength?: number, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, ...rest: any[]) {\n const byteLength = typeof rest[0] !== 'number' ? rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? > rest.shift() : undefined;\n super(source instanceof AsyncRandomAccessFile ? source : new AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public async open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = await this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && await this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return await super.open(options);\n }\n public async readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { await this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected async _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected async _readFooter() {\n const { _handle } = this;\n _handle._pending && await _handle._pending;\n const offset = _handle.size - magicAndPadding;\n const length = await _handle.readInt32(offset);\n const buffer = await _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected async _readNextMessageAndValidate(type?: T | null): Promise | null> {\n if (!this._footer) { await this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && await this._handle.seek(block.offset)) {\n return await this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass RecordBatchJSONReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source: ArrowJSONLike, dictionaries?: Map) {\n super(source, dictionaries);\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new JSONVectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n//\n// Define some helper functions and static implementations down here. There's\n// a bit of branching in the static methods that can lead to the same routines\n// being executed, so we've broken those out here for readability.\n//\n\n/** @ignore */\nfunction shouldAutoDestroy(self: { autoDestroy: boolean }, options?: OpenOptions) {\n return options && (typeof options['autoDestroy'] === 'boolean') ? options['autoDestroy'] : self['autoDestroy'];\n}\n\n/** @ignore */\nfunction* readAllSync(source: RecordBatchReaders | FromArg0 | FromArg2) {\n const reader = RecordBatchReader.from( source) as RecordBatchReaders;\n try {\n if (!reader.open({ autoDestroy: false }).closed) {\n do { yield reader; } while (!(reader.reset().open()).closed);\n }\n } finally { reader.cancel(); }\n}\n\n/** @ignore */\nasync function* readAllAsync(source: AsyncRecordBatchReaders | FromArg1 | FromArg3 | FromArg4 | FromArg5) {\n const reader = await RecordBatchReader.from( source) as RecordBatchReader;\n try {\n if (!(await reader.open({ autoDestroy: false })).closed) {\n do { yield reader; } while (!(await reader.reset().open()).closed);\n }\n } finally { await reader.cancel(); }\n}\n\n/** @ignore */\nfunction fromArrowJSON(source: ArrowJSONLike) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl(source));\n}\n\n/** @ignore */\nfunction fromByteStream(source: ByteStream) {\n const bytes = source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromAsyncByteStream(source: AsyncByteStream) {\n const bytes = await source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(async function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromFileHandle(source: FileHandle) {\n const { size } = await source.stat();\n const file = new AsyncRandomAccessFile(source, size);\n if (size >= magicX2AndPadding) {\n if (checkForMagicArrowString(await file.readAt(0, (magicLength + 7) & ~7))) {\n return new AsyncRecordBatchFileReader(new AsyncRecordBatchFileReaderImpl(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(file));\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { Vector } from '../../vector';\nimport { VectorType as V } from '../../interfaces';\nimport { Builder, BuilderOptions } from '../../builder/index';\n\n/** @ignore */\nexport interface BuilderTransformOptions extends BuilderOptions {\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n readableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n writableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport function builderThroughDOMStream(options: BuilderTransformOptions) {\n return new BuilderTransform(options);\n}\n\n/** @ignore */\nexport class BuilderTransform {\n\n public readable: ReadableStream>;\n public writable: WritableStream;\n public _controller: ReadableStreamDefaultController> | null;\n\n private _numChunks = 0;\n private _finished = false;\n private _bufferedSize = 0;\n private _builder: Builder;\n private _getSize: (builder: Builder) => number;\n\n constructor(options: BuilderTransformOptions) {\n\n // Access properties by string indexers to defeat closure compiler\n\n const {\n ['readableStrategy']: readableStrategy,\n ['writableStrategy']: writableStrategy,\n ['queueingStrategy']: queueingStrategy = 'count',\n ...builderOptions\n } = options;\n\n this._controller = null;\n this._builder = Builder.new(builderOptions);\n this._getSize = queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength;\n\n const { ['highWaterMark']: readableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...readableStrategy };\n const { ['highWaterMark']: writableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...writableStrategy };\n\n this['readable'] = new ReadableStream>({\n ['cancel']: () => { this._builder.clear(); },\n ['pull']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n ['start']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n }, {\n 'highWaterMark': readableHighWaterMark,\n 'size': queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength,\n });\n\n this['writable'] = new WritableStream({\n ['abort']: () => { this._builder.clear(); },\n ['write']: () => { this._maybeFlush(this._builder, this._controller); },\n ['close']: () => { this._maybeFlush(this._builder.finish(), this._controller); },\n }, {\n 'highWaterMark': writableHighWaterMark,\n 'size': (value: T['TValue'] | TNull) => this._writeValueAndReturnChunkSize(value),\n });\n }\n\n private _writeValueAndReturnChunkSize(value: T['TValue'] | TNull) {\n const bufferedSize = this._bufferedSize;\n this._bufferedSize = this._getSize(this._builder.append(value));\n return this._bufferedSize - bufferedSize;\n }\n\n private _maybeFlush(builder: Builder, controller: ReadableStreamDefaultController> | null) {\n if (controller === null) { return; }\n if (this._bufferedSize >= controller.desiredSize!) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (builder.finished) {\n if (builder.length > 0 || this._numChunks === 0) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (!this._finished && (this._finished = true)) {\n this._enqueue(controller, null);\n }\n }\n }\n\n private _enqueue(controller: ReadableStreamDefaultController>, chunk: V | null) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\n\n/** @ignore */ const chunkLength = (chunk: Vector | Builder) => chunk.length;\n/** @ignore */ const chunkByteLength = (chunk: Vector | Builder) => chunk.byteLength;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { RecordBatch } from '../recordbatch';\nimport { DictionaryVector } from '../vector/dictionary';\n\n/** @ignore */\nexport type ValueFunc = (idx: number, cols: RecordBatch) => T | null;\n/** @ignore */\nexport type PredicateFunc = (idx: number, cols: RecordBatch) => boolean;\n\n/** @ignore */\nexport abstract class Value {\n eq(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new Equals(this, other);\n }\n le(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new LTeq(this, other);\n }\n ge(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new GTeq(this, other);\n }\n lt(other: Value | T): Predicate {\n return new Not(this.ge(other));\n }\n gt(other: Value | T): Predicate {\n return new Not(this.le(other));\n }\n ne(other: Value | T): Predicate {\n return new Not(this.eq(other));\n }\n}\n\n/** @ignore */\nexport class Literal extends Value {\n constructor(public v: T) { super(); }\n}\n\n/** @ignore */\nexport class Col extends Value {\n // @ts-ignore\n public vector: Vector;\n // @ts-ignore\n public colidx: number;\n\n constructor(public name: string) { super(); }\n bind(batch: RecordBatch): (idx: number, batch?: RecordBatch) => any {\n if (!this.colidx) {\n // Assume column index doesn't change between calls to bind\n //this.colidx = cols.findIndex(v => v.name.indexOf(this.name) != -1);\n this.colidx = -1;\n const fields = batch.schema.fields;\n for (let idx = -1; ++idx < fields.length;) {\n if (fields[idx].name === this.name) {\n this.colidx = idx;\n break;\n }\n }\n if (this.colidx < 0) { throw new Error(`Failed to bind Col \"${this.name}\"`); }\n }\n\n const vec = this.vector = batch.getChildAt(this.colidx)!;\n return (idx: number) => vec.get(idx);\n }\n}\n\n/** @ignore */\nexport abstract class Predicate {\n abstract bind(batch: RecordBatch): PredicateFunc;\n and(...expr: Predicate[]): And { return new And(this, ...expr); }\n or(...expr: Predicate[]): Or { return new Or(this, ...expr); }\n not(): Predicate { return new Not(this); }\n}\n\n/** @ignore */\nexport abstract class ComparisonPredicate extends Predicate {\n constructor(public readonly left: Value, public readonly right: Value) {\n super();\n }\n\n bind(batch: RecordBatch) {\n if (this.left instanceof Literal) {\n if (this.right instanceof Literal) {\n return this._bindLitLit(batch, this.left, this.right);\n } else { // right is a Col\n\n return this._bindLitCol(batch, this.left, this.right as Col);\n }\n } else { // left is a Col\n if (this.right instanceof Literal) {\n return this._bindColLit(batch, this.left as Col, this.right);\n } else { // right is a Col\n return this._bindColCol(batch, this.left as Col, this.right as Col);\n }\n }\n }\n\n protected abstract _bindLitLit(batch: RecordBatch, left: Literal, right: Literal): PredicateFunc;\n protected abstract _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc;\n protected abstract _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc;\n protected abstract _bindLitCol(batch: RecordBatch, lit: Literal, col: Col): PredicateFunc;\n}\n\n/** @ignore */\nexport abstract class CombinationPredicate extends Predicate {\n readonly children: Predicate[];\n constructor(...children: Predicate[]) {\n super();\n this.children = children;\n }\n}\n// add children to prototype so it doesn't get mangled in es2015/umd\n( CombinationPredicate.prototype).children = Object.freeze([]); // freeze for safety\n\n/** @ignore */\nexport class And extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ands\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof And ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.every((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Or extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ors\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof Or ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.some((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Equals extends ComparisonPredicate {\n // Helpers used to cache dictionary reverse lookups between calls to bind\n private lastDictionary: Vector|undefined;\n private lastKey: number|undefined;\n\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v == right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, batch: RecordBatch) => left_func(idx, batch) == right_func(idx, batch);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n if (col.vector instanceof DictionaryVector) {\n let key: any;\n const vector = col.vector as DictionaryVector;\n if (vector.dictionary !== this.lastDictionary) {\n key = vector.reverseLookup(lit.v);\n this.lastDictionary = vector.dictionary;\n this.lastKey = key;\n } else {\n key = this.lastKey;\n }\n\n if (key === -1) {\n // the value doesn't exist in the dictionary - always return\n // false\n // TODO: special-case of PredicateFunc that encapsulates this\n // \"always false\" behavior. That way filtering operations don't\n // have to bother checking\n return () => false;\n } else {\n return (idx: number) => {\n return vector.getKey(idx) === key;\n };\n }\n } else {\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) == lit.v;\n }\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n // Equals is commutative\n return this._bindColLit(batch, col, lit);\n }\n}\n\n/** @ignore */\nexport class LTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v <= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) <= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) <= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v <= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class GTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v >= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) >= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) >= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v >= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class Not extends Predicate {\n constructor(public readonly child: Predicate) {\n super();\n }\n\n bind(batch: RecordBatch) {\n const func = this.child.bind(batch);\n return (idx: number, batch: RecordBatch) => !func(idx, batch);\n }\n}\n\n/** @ignore */\nexport class CustomPredicate extends Predicate {\n constructor(private next: PredicateFunc, private bind_: (batch: RecordBatch) => void) {\n super();\n }\n\n bind(batch: RecordBatch) {\n this.bind_(batch);\n return this.next;\n }\n}\n\nexport function lit(v: any): Value { return new Literal(v); }\nexport function col(n: string): Col { return new Col(n); }\nexport function and(...p: Predicate[]): And { return new And(...p); }\nexport function or(...p: Predicate[]): Or { return new Or(...p); }\nexport function custom(next: PredicateFunc, bind: (batch: RecordBatch) => void) {\n return new CustomPredicate(next, bind);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { Vector } from '../vector';\nimport { IntVector } from '../vector/int';\nimport { Field, Schema } from '../schema';\nimport { Predicate, Col } from './predicate';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { DataType, Int, Struct, Dictionary } from '../type';\n\n/** @ignore */\nexport type BindFunc = (batch: RecordBatch) => void;\n/** @ignore */\nexport type NextFunc = (idx: number, batch: RecordBatch) => void;\n\nTable.prototype.countBy = function(this: Table, name: Col | string) { return new DataFrame(this.chunks).countBy(name); };\nTable.prototype.scan = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scan(next, bind); };\nTable.prototype.scanReverse = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scanReverse(next, bind); };\nTable.prototype.filter = function(this: Table, predicate: Predicate): FilteredDataFrame { return new DataFrame(this.chunks).filter(predicate); };\n\nexport class DataFrame extends Table {\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(this.chunks, predicate);\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n next(index, batch);\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n next(index, batch);\n }\n }\n }\n public countBy(name: Col | string) {\n const batches = this.chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n\n/** @ignore */\nexport class CountByResult extends Table<{ values: T, counts: TCount }> {\n constructor(values: Vector, counts: V) {\n type R = { values: T, counts: TCount };\n const schema = new Schema([\n new Field('values', values.type),\n new Field('counts', counts.type)\n ]);\n super(new RecordBatch(schema, counts.length, [values, counts]));\n }\n public toJSON(): Object {\n const values = this.getColumnAt(0)!;\n const counts = this.getColumnAt(1)!;\n const result = {} as { [k: string]: number | null };\n for (let i = -1; ++i < this.length;) {\n result[values.get(i)] = counts.get(i);\n }\n return result;\n }\n}\n\n/** @ignore */\nexport class FilteredDataFrame extends DataFrame {\n private _predicate: Predicate;\n constructor (batches: RecordBatch[], predicate: Predicate) {\n super(batches);\n this._predicate = predicate;\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public count(): number {\n // inlined version of this:\n // let sum = 0;\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) ++sum;\n // });\n // return sum;\n let sum = 0;\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { ++sum; }\n }\n }\n return sum;\n }\n public *[Symbol.iterator](): IterableIterator['TValue']> {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { yield batch.get(index) as any; }\n }\n }\n }\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(\n this._chunks,\n this._predicate.and(predicate)\n );\n }\n public countBy(name: Col | string) {\n const batches = this._chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null && predicate(index, batch)) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType } from './enum';\nexport { Data } from './data';\nexport {\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n} from './type';\n\nexport { Table } from './table';\nexport { Column } from './column';\nexport { Visitor } from './visitor';\nexport { Schema, Field } from './schema';\nexport {\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n} from './vector/index';\n\nexport {\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './builder/index';\n\nexport { ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink } from './io/stream';\nexport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader } from './ipc/reader';\nexport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter } from './ipc/writer';\nexport { MessageReader, AsyncMessageReader, JSONMessageReader } from './ipc/message';\nexport { Message } from './ipc/metadata/message';\nexport { RecordBatch } from './recordbatch';\nexport { ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions } from './io/interfaces';\nexport { DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc } from './compute/dataframe';\n\nimport * as util_bn_ from './util/bn';\nimport * as util_int_ from './util/int';\nimport * as util_bit_ from './util/bit';\nimport * as util_math_ from './util/math';\nimport * as util_buffer_ from './util/buffer';\nimport * as util_vector_ from './util/vector';\nimport * as predicate from './compute/predicate';\n\nexport { predicate };\n/** @ignore */\nexport const util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './io/adapters';\nimport { Builder } from './builder/index';\nimport { RecordBatchReader } from './ipc/reader';\nimport { RecordBatchWriter } from './ipc/writer';\nimport { toDOMStream } from './io/whatwg/iterable';\nimport { builderThroughDOMStream } from './io/whatwg/builder';\nimport { recordBatchReaderThroughDOMStream } from './io/whatwg/reader';\nimport { recordBatchWriterThroughDOMStream } from './io/whatwg/writer';\n\nstreamAdapters.toDOMStream = toDOMStream;\nBuilder['throughDOM'] = builderThroughDOMStream;\nRecordBatchReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport {\n ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType,\n Data,\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n Table,\n Column,\n Schema, Field,\n Visitor,\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink,\n RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader,\n RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter,\n MessageReader, AsyncMessageReader, JSONMessageReader,\n Message,\n RecordBatch,\n ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions,\n DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc,\n predicate,\n util,\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './Arrow';\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from '../../util/buffer';\nimport { ReadableDOMStreamOptions } from '../../io/interfaces';\nimport { isIterable, isAsyncIterable } from '../../util/compat';\n\n/** @ignore */\nexport function toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n if (isAsyncIterable(source)) { return asyncIterableAsReadableDOMStream(source, options); }\n if (isIterable(source)) { return iterableAsReadableDOMStream(source, options); }\n /* istanbul ignore next */\n throw new Error(`toDOMStream() must be called with an Iterable or AsyncIterable`);\n}\n\n/** @ignore */\nfunction iterableAsReadableDOMStream(source: Iterable, options?: ReadableDOMStreamOptions) {\n\n let it: Iterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n start(controller) { next(controller, it || (it = source[Symbol.iterator]())); },\n pull(controller) { it ? (next(controller, it)) : controller.close(); },\n cancel() { (it && (it.return && it.return()) || true) && (it = null); }\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n function next(controller: ReadableStreamDefaultController, it: Iterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n\n/** @ignore */\nfunction asyncIterableAsReadableDOMStream(source: AsyncIterable, options?: ReadableDOMStreamOptions) {\n\n let it: AsyncIterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n async start(controller) { await next(controller, it || (it = source[Symbol.asyncIterator]())); },\n async pull(controller) { it ? (await next(controller, it)) : controller.close(); },\n async cancel() { (it && (it.return && await it.return()) || true) && (it = null); },\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n async function next(controller: ReadableStreamDefaultController, it: AsyncIterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = await it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteQueue } from '../../io/stream';\nimport { RecordBatchReader } from '../../ipc/reader';\n\n/** @ignore */\nexport function recordBatchReaderThroughDOMStream(writableStrategy?: ByteLengthQueuingStrategy, readableStrategy?: { autoDestroy: boolean }) {\n\n const queue = new AsyncByteQueue();\n let reader: RecordBatchReader | null = null;\n\n const readable = new ReadableStream>({\n async cancel() { await queue.close(); },\n async start(controller) { await next(controller, reader || (reader = await open())); },\n async pull(controller) { reader ? await next(controller, reader) : controller.close(); }\n });\n\n return { writable: new WritableStream(queue, { 'highWaterMark': 2 ** 14, ...writableStrategy }), readable };\n\n async function open() {\n return await (await RecordBatchReader.from(queue)).open(readableStrategy);\n }\n\n async function next(controller: ReadableStreamDefaultController>, reader: RecordBatchReader) {\n let size = controller.desiredSize;\n let r: IteratorResult> | null = null;\n while (!(r = await reader.next()).done) {\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteStream } from '../../io/stream';\nimport { RecordBatchWriter } from '../../ipc/writer';\n\n/** @ignore */\nexport function recordBatchWriterThroughDOMStream(\n this: typeof RecordBatchWriter,\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n readableStrategy?: { highWaterMark?: number, size?: any }\n) {\n\n const writer = new this(writableStrategy);\n const reader = new AsyncByteStream(writer);\n const readable = new ReadableStream({\n type: 'bytes',\n async cancel() { await reader.cancel(); },\n async pull(controller) { await next(controller); },\n async start(controller) { await next(controller); },\n }, { 'highWaterMark': 2 ** 14, ...readableStrategy });\n\n return { writable: new WritableStream(writer, writableStrategy), readable };\n\n async function next(controller: ReadableStreamDefaultController) {\n let buf: Uint8Array | null = null;\n let size = controller.desiredSize;\n while (buf = await reader.read(size || null)) {\n controller.enqueue(buf);\n if (size != null && (size -= buf.byteLength) <= 0) { return; }\n }\n controller.close();\n }\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Table, Type } from \"apache-arrow\";\nvar ArrowTable = /** @class */ (function () {\n function ArrowTable(dataBuffer, indexBuffer, columnsBuffer, styler) {\n var _this = this;\n this.getCell = function (rowIndex, columnIndex) {\n var isBlankCell = rowIndex < _this.headerRows && columnIndex < _this.headerColumns;\n var isIndexCell = rowIndex >= _this.headerRows && columnIndex < _this.headerColumns;\n var isColumnsCell = rowIndex < _this.headerRows && columnIndex >= _this.headerColumns;\n if (isBlankCell) {\n var classNames = [\"blank\"];\n if (columnIndex > 0) {\n classNames.push(\"level\" + rowIndex);\n }\n return {\n type: \"blank\",\n classNames: classNames.join(\" \"),\n content: \"\"\n };\n }\n else if (isColumnsCell) {\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"col_heading\",\n \"level\" + rowIndex,\n \"col\" + dataColumnIndex\n ];\n return {\n type: \"columns\",\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.columnsTable, dataColumnIndex, rowIndex)\n };\n }\n else if (isIndexCell) {\n var dataRowIndex = rowIndex - _this.headerRows;\n var classNames = [\n \"row_heading\",\n \"level\" + columnIndex,\n \"row\" + dataRowIndex\n ];\n return {\n type: \"index\",\n id: \"T_\" + _this.uuid + \"level\" + columnIndex + \"_row\" + dataRowIndex,\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.indexTable, dataRowIndex, columnIndex)\n };\n }\n else {\n var dataRowIndex = rowIndex - _this.headerRows;\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"data\",\n \"row\" + dataRowIndex,\n \"col\" + dataColumnIndex\n ];\n var content = _this.styler\n ? _this.getContent(_this.styler.displayValuesTable, dataRowIndex, dataColumnIndex)\n : _this.getContent(_this.dataTable, dataRowIndex, dataColumnIndex);\n return {\n type: \"data\",\n id: \"T_\" + _this.uuid + \"row\" + dataRowIndex + \"_col\" + dataColumnIndex,\n classNames: classNames.join(\" \"),\n content: content\n };\n }\n };\n this.getContent = function (table, rowIndex, columnIndex) {\n var column = table.getColumnAt(columnIndex);\n if (column === null) {\n return \"\";\n }\n var columnTypeId = _this.getColumnTypeId(table, columnIndex);\n switch (columnTypeId) {\n case Type.Timestamp: {\n return _this.nanosToDate(column.get(rowIndex));\n }\n default: {\n return column.get(rowIndex);\n }\n }\n };\n this.dataTable = Table.from(dataBuffer);\n this.indexTable = Table.from(indexBuffer);\n this.columnsTable = Table.from(columnsBuffer);\n this.styler = styler\n ? {\n caption: styler.caption,\n displayValuesTable: Table.from(styler.displayValues),\n styles: styler.styles,\n uuid: styler.uuid\n }\n : undefined;\n }\n Object.defineProperty(ArrowTable.prototype, \"rows\", {\n get: function () {\n return this.indexTable.length + this.columnsTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columns\", {\n get: function () {\n return this.indexTable.numCols + this.columnsTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerRows\", {\n get: function () {\n return this.rows - this.dataRows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerColumns\", {\n get: function () {\n return this.columns - this.dataColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataRows\", {\n get: function () {\n return this.dataTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataColumns\", {\n get: function () {\n return this.dataTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"uuid\", {\n get: function () {\n return this.styler && this.styler.uuid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"caption\", {\n get: function () {\n return this.styler && this.styler.caption;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"styles\", {\n get: function () {\n return this.styler && this.styler.styles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"table\", {\n get: function () {\n return this.dataTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"index\", {\n get: function () {\n return this.indexTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columnTable\", {\n get: function () {\n return this.columnsTable;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Serialize arrow table.\n */\n ArrowTable.prototype.serialize = function () {\n return {\n data: this.dataTable.serialize(),\n index: this.indexTable.serialize(),\n columns: this.columnsTable.serialize()\n };\n };\n /**\n * Returns apache-arrow specific typeId of column.\n */\n ArrowTable.prototype.getColumnTypeId = function (table, columnIndex) {\n return table.schema.fields[columnIndex].type.typeId;\n };\n ArrowTable.prototype.nanosToDate = function (nanos) {\n return new Date(nanos / 1e6);\n };\n return ArrowTable;\n}());\nexport { ArrowTable };\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Safari doesn't support the EventTarget class, so we use a shim.\nimport { EventTarget } from \"event-target-shim\";\nimport { ArrowTable } from \"./ArrowTable\";\n/** Messages from Component -> Streamlit */\nvar ComponentMessageType;\n(function (ComponentMessageType) {\n // A component sends this message when it's ready to receive messages\n // from Streamlit. Streamlit won't send any messages until it gets this.\n // Data: { apiVersion: number }\n ComponentMessageType[\"COMPONENT_READY\"] = \"streamlit:componentReady\";\n // The component has a new widget value. Send it back to Streamlit, which\n // will then re-run the app.\n // Data: { value: any }\n ComponentMessageType[\"SET_COMPONENT_VALUE\"] = \"streamlit:setComponentValue\";\n // The component has a new height for its iframe.\n // Data: { height: number }\n ComponentMessageType[\"SET_FRAME_HEIGHT\"] = \"streamlit:setFrameHeight\";\n})(ComponentMessageType || (ComponentMessageType = {}));\n/**\n * Streamlit communication API.\n *\n * Components can send data to Streamlit via the functions defined here,\n * and receive data from Streamlit via the `events` property.\n */\nvar Streamlit = /** @class */ (function () {\n function Streamlit() {\n }\n /**\n * The Streamlit component API version we're targetting.\n * There's currently only 1!\n */\n Streamlit.API_VERSION = 1;\n Streamlit.RENDER_EVENT = \"streamlit:render\";\n /** Dispatches events received from Streamlit. */\n Streamlit.events = new EventTarget();\n Streamlit.registeredMessageListener = false;\n /**\n * Tell Streamlit that the component is ready to start receiving data.\n * Streamlit will defer emitting RENDER events until it receives the\n * COMPONENT_READY message.\n */\n Streamlit.setComponentReady = function () {\n if (!Streamlit.registeredMessageListener) {\n // Register for message events if we haven't already\n window.addEventListener(\"message\", Streamlit.onMessageEvent);\n Streamlit.registeredMessageListener = true;\n }\n Streamlit.sendBackMsg(ComponentMessageType.COMPONENT_READY, {\n apiVersion: Streamlit.API_VERSION\n });\n };\n /**\n * Report the component's height to Streamlit.\n * This should be called every time the component changes its DOM - that is,\n * when it's first loaded, and any time it updates.\n */\n Streamlit.setFrameHeight = function (height) {\n if (height === undefined) {\n // `height` is optional. If undefined, it defaults to scrollHeight,\n // which is the entire height of the element minus its border,\n // scrollbar, and margin.\n height = document.body.scrollHeight;\n }\n if (height === Streamlit.lastFrameHeight) {\n // Don't bother updating if our height hasn't changed.\n return;\n }\n Streamlit.lastFrameHeight = height;\n Streamlit.sendBackMsg(ComponentMessageType.SET_FRAME_HEIGHT, { height: height });\n };\n /**\n * Set the component's value. This value will be returned to the Python\n * script, and the script will be re-run.\n *\n * For example:\n *\n * JavaScript:\n * Streamlit.setComponentValue(\"ahoy!\")\n *\n * Python:\n * value = st.my_component(...)\n * st.write(value) # -> \"ahoy!\"\n *\n * The value must be an ArrowTable, a typed array, an ArrayBuffer, or be\n * serializable to JSON.\n */\n Streamlit.setComponentValue = function (value) {\n var dataType;\n if (value instanceof ArrowTable) {\n dataType = \"dataframe\";\n value = value.serialize();\n }\n else if (isTypedArray(value)) {\n // All typed arrays get sent as Uint8Array, because that's what our\n // protobuf library uses for the \"bytes\" field type.\n dataType = \"bytes\";\n value = new Uint8Array(value.buffer);\n }\n else if (value instanceof ArrayBuffer) {\n dataType = \"bytes\";\n value = new Uint8Array(value);\n }\n else {\n dataType = \"json\";\n }\n Streamlit.sendBackMsg(ComponentMessageType.SET_COMPONENT_VALUE, {\n value: value,\n dataType: dataType\n });\n };\n /** Receive a ForwardMsg from the Streamlit app */\n Streamlit.onMessageEvent = function (event) {\n var type = event.data[\"type\"];\n switch (type) {\n case Streamlit.RENDER_EVENT:\n Streamlit.onRenderMessage(event.data);\n break;\n }\n };\n /**\n * Handle an untyped Streamlit render event and redispatch it as a\n * StreamlitRenderEvent.\n */\n Streamlit.onRenderMessage = function (data) {\n var args = data[\"args\"];\n if (args == null) {\n console.error(\"Got null args in onRenderMessage. This should never happen\");\n args = {};\n }\n // Parse our dataframe arguments with arrow, and merge them into our args dict\n var dataframeArgs = data[\"dfs\"] && data[\"dfs\"].length > 0\n ? Streamlit.argsDataframeToObject(data[\"dfs\"])\n : {};\n args = __assign(__assign({}, args), dataframeArgs);\n var disabled = Boolean(data[\"disabled\"]);\n var theme = data[\"theme\"];\n if (theme) {\n _injectTheme(theme);\n }\n // Dispatch a render event!\n var eventData = { disabled: disabled, args: args, theme: theme };\n var event = new CustomEvent(Streamlit.RENDER_EVENT, {\n detail: eventData\n });\n Streamlit.events.dispatchEvent(event);\n };\n Streamlit.argsDataframeToObject = function (argsDataframe) {\n var argsDataframeArrow = argsDataframe.map(function (_a) {\n var key = _a.key, value = _a.value;\n return [key, Streamlit.toArrowTable(value)];\n });\n return Object.fromEntries(argsDataframeArrow);\n };\n Streamlit.toArrowTable = function (df) {\n var _a = df.data, data = _a.data, index = _a.index, columns = _a.columns, styler = _a.styler;\n return new ArrowTable(data, index, columns, styler);\n };\n /** Post a message to the Streamlit app. */\n Streamlit.sendBackMsg = function (type, data) {\n window.parent.postMessage(__assign({ isStreamlitMessage: true, type: type }, data), \"*\");\n };\n return Streamlit;\n}());\nexport { Streamlit };\nvar _injectTheme = function (theme) {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n style.innerHTML = \"\\n :root {\\n --primary-color: \" + theme.primaryColor + \";\\n --background-color: \" + theme.backgroundColor + \";\\n --secondary-background-color: \" + theme.secondaryBackgroundColor + \";\\n --text-color: \" + theme.textColor + \";\\n --font: \" + theme.font + \";\\n }\\n\\n body {\\n background-color: var(--background-color);\\n color: var(--text-color);\\n }\\n \";\n};\n/** True if the value is a TypedArray. */\nfunction isTypedArray(value) {\n var isBigIntArray = false;\n try {\n isBigIntArray =\n value instanceof BigInt64Array || value instanceof BigUint64Array;\n }\n catch (e) {\n // Ignore cause Safari does not support this\n // https://caniuse.com/mdn-javascript_builtins_bigint64array\n }\n return (value instanceof Int8Array ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int16Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n isBigIntArray);\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\nimport React from \"react\";\nimport { Streamlit } from \"./streamlit\";\n/**\n * Optional Streamlit React-based component base class.\n *\n * You are not required to extend this base class to create a Streamlit\n * component. If you decide not to extend it, you should implement the\n * `componentDidMount` and `componentDidUpdate` functions in your own class,\n * so that your plugin properly resizes.\n */\nvar StreamlitComponentBase = /** @class */ (function (_super) {\n __extends(StreamlitComponentBase, _super);\n function StreamlitComponentBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StreamlitComponentBase.prototype.componentDidMount = function () {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight();\n };\n StreamlitComponentBase.prototype.componentDidUpdate = function () {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight();\n };\n return StreamlitComponentBase;\n}(React.PureComponent));\nexport { StreamlitComponentBase };\n/**\n * Wrapper for React-based Streamlit components.\n *\n * Bootstraps the communication interface between Streamlit and the component.\n */\nexport function withStreamlitConnection(WrappedComponent) {\n var ComponentWrapper = /** @class */ (function (_super) {\n __extends(ComponentWrapper, _super);\n function ComponentWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this.componentDidMount = function () {\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n Streamlit.setComponentReady();\n };\n _this.componentDidUpdate = function () {\n // If our child threw an error, we display it in render(). In this\n // case, the child won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (_this.state.componentError != null) {\n Streamlit.setFrameHeight();\n }\n };\n _this.componentWillUnmount = function () {\n Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n };\n /**\n * Streamlit is telling this component to redraw.\n * We save the render data in State, so that it can be passed to the\n * component in our own render() function.\n */\n _this.onRenderEvent = function (event) {\n // Update our state with the newest render data\n var renderEvent = event;\n _this.setState({ renderData: renderEvent.detail });\n };\n _this.render = function () {\n // If our wrapped component threw an error, display it.\n if (_this.state.componentError != null) {\n return (React.createElement(\"div\", null,\n React.createElement(\"h1\", null, \"Component Error\"),\n React.createElement(\"span\", null, _this.state.componentError.message)));\n }\n // Don't render until we've gotten our first RENDER_EVENT from Streamlit.\n if (_this.state.renderData == null) {\n return null;\n }\n return (React.createElement(WrappedComponent, { width: window.innerWidth, disabled: _this.state.renderData.disabled, args: _this.state.renderData.args, theme: _this.state.renderData.theme }));\n };\n _this.state = {\n renderData: undefined,\n componentError: undefined\n };\n return _this;\n }\n /**\n * Error boundary function. This will be called if our wrapped\n * component throws an error. We store the caught error in our state,\n * and display it in the next render().\n */\n ComponentWrapper.getDerivedStateFromError = function (error) {\n return { componentError: error };\n };\n return ComponentWrapper;\n }(React.PureComponent));\n return hoistNonReactStatics(ComponentWrapper, WrappedComponent);\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/utilities_cookies/build/static/js/main.666d1b34.chunk.js b/utilities_cookies/build/static/js/main.666d1b34.chunk.js new file mode 100644 index 0000000000000000000000000000000000000000..c9641dd90cef4d6d87b76c5e0113ff5903fde4c6 --- /dev/null +++ b/utilities_cookies/build/static/js/main.666d1b34.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonpstreamlit_cookie_manager=this.webpackJsonpstreamlit_cookie_manager||[]).push([[0],{5:function(e,n,o){"use strict";o.r(n);var a=o(2),t=(window.parent||window).document,c=null;a.a.events.addEventListener(a.a.RENDER_EVENT,(function(e){var n,o=e.detail;n=o.args.queue,Object.keys(n).forEach((function(e){var o=n[e];if(null===o.value)t.cookie="".concat(encodeURIComponent(e),"=; max-age=0; path=").concat(encodeURIComponent(o.path));else{var a=new Date(o.expires_at);t.cookie="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(o.value),";")+" expires=".concat(a.toUTCString(),";")+" path=".concat(encodeURIComponent(o.path),";")}}));var i=t.cookie;c===i||o.args.saveOnly||(a.a.setComponentValue(i),c=i)})),a.a.setComponentReady(),a.a.setFrameHeight(0)}},[[5,1,2]]]); +//# sourceMappingURL=main.666d1b34.chunk.js.map \ No newline at end of file diff --git a/utilities_cookies/build/static/js/main.666d1b34.chunk.js.map b/utilities_cookies/build/static/js/main.666d1b34.chunk.js.map new file mode 100644 index 0000000000000000000000000000000000000000..6f51c351d3e66094f637b657d5a15ced6e087d53 --- /dev/null +++ b/utilities_cookies/build/static/js/main.666d1b34.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.ts"],"names":["targetDocument","window","parent","document","lastValue","Streamlit","events","addEventListener","RENDER_EVENT","event","queue","data","detail","args","Object","keys","forEach","name","spec","value","cookie","encodeURIComponent","path","date","Date","expires_at","toUTCString","newValue","saveOnly","setComponentValue","setComponentReady","setFrameHeight"],"mappings":"oIAAA,kBAGMA,GADuBC,OAAOC,QAAUD,QACVE,SAEhCC,EAA2B,KA2B/BC,IAAUC,OAAOC,iBAAiBF,IAAUG,cAZ5C,SAAkBC,GACd,IAgBiBC,EAhBXC,EAAQF,EAAkCG,OAgB/BF,EAdLC,EAAKE,KAAL,MAeZC,OAAOC,KAAKL,GAAOM,SAAQ,SAACC,GACxB,IAAMC,EAAOR,EAAMO,GACnB,GAAmB,OAAfC,EAAKC,MACLnB,EAAeoB,OAAf,UAA2BC,mBAAmBJ,GAA9C,8BAAyEI,mBAAmBH,EAAKI,WAChG,CACD,IAAMC,EAAO,IAAIC,KAAKN,EAAKO,YAC3BzB,EAAeoB,OACX,UAAGC,mBAAmBJ,GAAtB,YAA+BI,mBAAmBH,EAAKC,OAAvD,wBACYI,EAAKG,cADjB,qBAESL,mBAAmBH,EAAKI,MAFjC,SApBZ,IAAMK,EAAW3B,EAAeoB,OAC5BhB,IAAcuB,GAAahB,EAAKE,KAAKe,WACrCvB,IAAUwB,kBAAkBF,GAC5BvB,EAAYuB,MAKpBtB,IAAUyB,oBACVzB,IAAU0B,eAAe,K","file":"static/js/main.666d1b34.chunk.js","sourcesContent":["import {RenderData, Streamlit} from \"streamlit-component-lib\"\n\nconst targetWindow: Window = window.parent || window\nconst targetDocument = targetWindow.document\n\nlet lastValue: string | null = null\n\ninterface AddCookieSpec {\n value: string\n expires_at: string\n path: string\n}\n\ninterface DeleteCookieSpec {\n value: null\n path: string\n}\n\ntype CookieSpec = AddCookieSpec | DeleteCookieSpec\n\nfunction onRender(event: Event): void {\n const data = (event as CustomEvent).detail\n\n saveCookies(data.args[\"queue\"])\n\n const newValue = targetDocument.cookie\n if (lastValue !== newValue && !data.args.saveOnly) {\n Streamlit.setComponentValue(newValue)\n lastValue = newValue\n }\n}\n\nStreamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRender)\nStreamlit.setComponentReady()\nStreamlit.setFrameHeight(0)\n\n\nfunction saveCookies(queue: { [k in string]: CookieSpec }) {\n Object.keys(queue).forEach((name) => {\n const spec = queue[name]\n if (spec.value === null)\n targetDocument.cookie = `${encodeURIComponent(name)}=; max-age=0; path=${encodeURIComponent(spec.path)}`\n else {\n const date = new Date(spec.expires_at)\n targetDocument.cookie = (\n `${encodeURIComponent(name)}=${encodeURIComponent(spec.value)};` +\n ` expires=${date.toUTCString()};` +\n ` path=${encodeURIComponent(spec.path)};`\n )\n }\n })\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/utilities_cookies/build/static/js/runtime-main.9b51049f.js b/utilities_cookies/build/static/js/runtime-main.9b51049f.js new file mode 100644 index 0000000000000000000000000000000000000000..6b193bc44679e262259816e334726ef941bcb45e --- /dev/null +++ b/utilities_cookies/build/static/js/runtime-main.9b51049f.js @@ -0,0 +1,2 @@ +!function(e){function r(r){for(var n,a,i=r[0],l=r[1],f=r[2],p=0,s=[];p bool: + return self._cookies is not None + + def save(self): + if self._queue: + self._run_component(save_only=True, key="CookieManager.sync_cookies.save") + + def _run_component(self, save_only: bool, key: str): + queue = { + self._prefix + k: v for k, v in self._queue.items() + } + return _component_func(queue=queue, saveOnly=save_only, key=key) + + def _clean_queue(self): + for name, spec in list(self._queue.items()): + value = self._cookies.get(self._prefix + name) + if value == spec['value']: + del self._queue[name] + + def __repr__(self): + if self.ready(): + return f'' + return '' + + def __getitem__(self, k: str) -> str: + return self._get_cookies()[k] + + def __iter__(self): + return iter(self._get_cookies()) + + def __len__(self): + return len(self._get_cookies()) + + def __setitem__(self, key: str, value: str) -> None: + if self._cookies.get(key) != value: + self._queue[key] = dict( + value=value, + expires_at=self._default_expiry.isoformat(), + path=self._path, + ) + + def __delitem__(self, key: str) -> None: + if key in self._cookies: + self._queue[key] = dict(value=None, path=self._path) + + def _get_cookies(self) -> Mapping[str, str]: + if self._cookies is None: + raise CookiesNotReady() + cookies = { + k[len(self._prefix):]: v + for k, v in self._cookies.items() + if k.startswith(self._prefix) + } + for name, spec in self._queue.items(): + if spec['value'] is not None: + cookies[name] = spec['value'] + else: + cookies.pop(name, None) + return cookies + + +def parse_cookies(raw_cookie): + cookies = {} + for part in raw_cookie.split(';'): + part = part.strip() + if not part: + continue + name, value = part.split('=', 1) + cookies[unquote(name)] = unquote(value) + return cookies + + +class CookiesNotReady(Exception): + pass diff --git a/utilities_cookies/encrypted_cookie_manager.py b/utilities_cookies/encrypted_cookie_manager.py new file mode 100644 index 0000000000000000000000000000000000000000..b7688afce32eaeb7b1145b40472ba9bde0213811 --- /dev/null +++ b/utilities_cookies/encrypted_cookie_manager.py @@ -0,0 +1,115 @@ +import os +import base64 +import streamlit as st +from typing import Tuple +from typing import Optional +from cryptography import fernet +from typing import MutableMapping +from cryptography.fernet import Fernet +from cryptography.hazmat.primitives import hashes +from utilities_cookies.cookie_manager import CookieManager +from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC + + +@st.cache_data +def key_from_parameters(salt: bytes, iterations: int, password: str): + kdf = PBKDF2HMAC( + algorithm=hashes.SHA256(), + length=32, + salt=salt, + iterations=iterations, + ) + + return base64.urlsafe_b64encode(kdf.derive(password.encode('utf-8'))) + + +class EncryptedCookieManager(MutableMapping[str, str]): + def __init__( + self, *, + password: str, + path: str = None, + prefix: str = "", + key_params_cookie="EncryptedCookieManager.key_params", + ignore_broken=True, + ): + self._cookie_manager = CookieManager(path=path, prefix=prefix) + self._fernet: Optional[Fernet] = None + self._key_params_cookie = key_params_cookie + self._password = password + self._ignore_broken = ignore_broken + + def ready(self): + return self._cookie_manager.ready() + + def save(self): + return self._cookie_manager.save() + + def _encrypt(self, value): + self._setup_fernet() + return self._fernet.encrypt(value) + + def _decrypt(self, value): + self._setup_fernet() + return self._fernet.decrypt(value) + + def _setup_fernet(self): + if self._fernet is not None: + return + key_params = self._get_key_params() + if not key_params: + key_params = self._initialize_new_key_params() + salt, iterations, magic = key_params + key = key_from_parameters( + salt=salt, + iterations=iterations, + password=self._password + ) + + self._fernet = Fernet(key) + + def _get_key_params(self) -> Optional[Tuple[bytes, int, bytes]]: + raw_key_params = self._cookie_manager.get(self._key_params_cookie) + if not raw_key_params: + return + try: + raw_salt, raw_iterations, raw_magic = raw_key_params.split(':') + return base64.b64decode(raw_salt), int(raw_iterations), base64.b64decode(raw_magic) + except (ValueError, TypeError): + print(f"Failed to parse key parameters from cookie {raw_key_params}") + return + + def _initialize_new_key_params(self) -> Tuple[bytes, int, bytes]: + salt = os.urandom(16) + iterations = 390000 + magic = os.urandom(16) + self._cookie_manager[self._key_params_cookie] = b':'.join([ + base64.b64encode(salt), + str(iterations).encode('ascii'), + base64.b64encode(magic) + ]).decode('ascii') + return salt, iterations, magic + + def __repr__(self): + if self.ready(): + return f'' + return '' + + def __getitem__(self, k: str) -> str or None: + try: + return self._decrypt(self._cookie_manager[k].encode('utf-8')).decode('utf-8') + except fernet.InvalidToken: + if self._ignore_broken: + return + raise + + def __iter__(self): + return iter(self._cookie_manager) + + def __len__(self): + return len(self._cookie_manager) + + def __setitem__(self, key: str, value: str) -> None: + self._cookie_manager[key] = self._encrypt(value.encode('utf-8')).decode('utf-8') + + def __delitem__(self, key: str) -> None: + del self._cookie_manager[key] diff --git a/utilities_cookies/public/index.html b/utilities_cookies/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..a8c6bc92134e8e0bfbf0eebfa8353d00346a9710 --- /dev/null +++ b/utilities_cookies/public/index.html @@ -0,0 +1,9 @@ + + + + Cookies Manager + + + + + \ No newline at end of file diff --git a/utilities_cookies/src/index.ts b/utilities_cookies/src/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..7016b6ae68e614903d588c314a669e9258bf30c9 --- /dev/null +++ b/utilities_cookies/src/index.ts @@ -0,0 +1,52 @@ +import {RenderData, Streamlit} from "streamlit-component-lib" + +const targetWindow: Window = window.parent || window +const targetDocument = targetWindow.document + +let lastValue: string | null = null + +interface AddCookieSpec { + value: string + expires_at: string + path: string +} + +interface DeleteCookieSpec { + value: null + path: string +} + +type CookieSpec = AddCookieSpec | DeleteCookieSpec + +function onRender(event: Event): void { + const data = (event as CustomEvent).detail + + saveCookies(data.args["queue"]) + + const newValue = targetDocument.cookie + if (lastValue !== newValue && !data.args.saveOnly) { + Streamlit.setComponentValue(newValue) + lastValue = newValue + } +} + +Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRender) +Streamlit.setComponentReady() +Streamlit.setFrameHeight(0) + + +function saveCookies(queue: { [k in string]: CookieSpec }) { + Object.keys(queue).forEach((name) => { + const spec = queue[name] + if (spec.value === null) + targetDocument.cookie = `${encodeURIComponent(name)}=; max-age=0; path=${encodeURIComponent(spec.path)}` + else { + const date = new Date(spec.expires_at) + targetDocument.cookie = ( + `${encodeURIComponent(name)}=${encodeURIComponent(spec.value)};` + + ` expires=${date.toUTCString()};` + + ` path=${encodeURIComponent(spec.path)};` + ) + } + }) +} \ No newline at end of file diff --git a/utilities_cookies/src/react-app-env.d.ts b/utilities_cookies/src/react-app-env.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6431bc5fc6b2c932dfe5d0418fc667b86c18b9fc --- /dev/null +++ b/utilities_cookies/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/utilities_database/__pycache__/user_database_utils.cpython-310.pyc b/utilities_database/__pycache__/user_database_utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b806c5cd0f20a1bd26a0528486486a1c755a4bb0 Binary files /dev/null and b/utilities_database/__pycache__/user_database_utils.cpython-310.pyc differ diff --git a/utilities_database/__pycache__/user_database_widgets.cpython-310.pyc b/utilities_database/__pycache__/user_database_widgets.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99a01bbe78e171d82285a6580dc4b6daec39ef91 Binary files /dev/null and b/utilities_database/__pycache__/user_database_widgets.cpython-310.pyc differ diff --git a/utilities_database/user_database_utils.py b/utilities_database/user_database_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..a7841a5f442ee7f94c3a7f5c66d314cf11faa24f --- /dev/null +++ b/utilities_database/user_database_utils.py @@ -0,0 +1,268 @@ +import re +import secrets +import requests +import pandas as pd +import streamlit as st +from trycourier import Courier +from argon2 import PasswordHasher +from argon2.exceptions import VerifyMismatchError + +ph = PasswordHasher() + + +def check_usr_pass(user_log_in_database, user_name: str, password: str) -> bool: + """ + Authenticates the user_name and password. + """ + registered_user = user_log_in_database.fetch({'user_name': user_name}).items + try: + passwd_verification_bool = ph.verify(registered_user[0]['password'], password) + if passwd_verification_bool: + return True + return False + except VerifyMismatchError: + pass + return False + + +def load_lottie_url(url: str) -> str or None: + """ + Fetches the lottie animation using the URL. + """ + r = requests.get(url) + if r.status_code != 200: + return None + return r.json() + + +def check_valid_name(name_sign_up: str) -> bool: + """ + Checks if the user entered a valid name while creating the account. + """ + name_regex_eng = r'^[A-Za-z_]\w *' + name_regex_rus = r'^[А-Яа-я_][А-Яа-я0-9_] *' + + if re.search(name_regex_eng, name_sign_up) or re.search(name_regex_rus, name_sign_up): + return True + return False + + +def check_valid_email(email_sign_up: str) -> bool: + """ + Checks if the user entered a valid e-mail while creating the account. + """ + regex = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+') + + if re.fullmatch(regex, email_sign_up): + return True + return False + + +def check_unique_email(user_log_in_database, email_sign_up: str) -> bool: + """ + Checks if the e-mail already exists (since e-mail needs to be unique). + """ + authorized_users_data = user_log_in_database.fetch({'e-mail': email_sign_up}).items + if len(authorized_users_data) == 0: + return True + return False + + +def non_empty_str_check(user_name_sign_up: str) -> bool: + """ + Checks for non-empty strings. + """ + empty_count = 0 + for i in user_name_sign_up: + if i == ' ': + empty_count = empty_count + 1 + if empty_count == len(user_name_sign_up): + return False + if not user_name_sign_up: + return False + return True + + +def check_unique_usr(user_log_in_database, user_name_sign_up: str): + """ + Checks if the user_name already exists (since user_name needs to be unique), + also checks for non-empty user_name. + """ + authorized_users_data = user_log_in_database.fetch({'user_name': user_name_sign_up}).items + if len(authorized_users_data) != 0: + return False + if user_name_sign_up in authorized_users_data: + return False + non_empty_check = non_empty_str_check(user_name_sign_up) + if not non_empty_check: + return None + return True + + +def register_new_usr(user_log_in_database, name_sign_up: str, email_sign_up: str, user_name_sign_up: str, + password_sign_up: str, professional_level: str) -> None: + """ + Saves the information of the new user in the _secret_auth.json file. + """ + new_usr_data = {'user_name': user_name_sign_up, + 'name': name_sign_up, + 'e-mail': email_sign_up, + 'password': ph.hash(password_sign_up), + 'professional_level': professional_level} + + return user_log_in_database.put(new_usr_data) + + +def check_user_name_exists(user_log_in_database, user_name: str) -> bool: + """ + Checks if the user_name exists in the _secret_auth.json file. + """ + authorized_users_data = user_log_in_database.fetch({'user_name': user_name}).items + if len(authorized_users_data) == 1: + return True + return False + + +def check_email_exists(user_log_in_database, email_forgot_passwd: str): + """ + Checks if the e-mail entered is present in the _secret_auth.json file. + """ + authorized_users_data = user_log_in_database.fetch({'e-mail': email_forgot_passwd}).items + if len(authorized_users_data) == 1: + return True, authorized_users_data['user_name'] + return False, None + + +def generate_random_passwd() -> str: + """ + Generates a random password to be sent in e-mail. + """ + password_length = 10 + return secrets.token_urlsafe(password_length) + + +def send_passwd_in_email(auth_token: str, user_name_forgot_passwd: str, email_forgot_passwd: str, company_name: str, + random_password: str) -> None: + """ + Triggers an e-mail to the user containing the randomly generated password. + """ + client = Courier(auth_token=auth_token) + + client.send_message( + message={ + "to": { + "email": email_forgot_passwd + }, + "content": { + "title": f'{company_name}: Login Password!', + "body": f'Hi! {user_name_forgot_passwd},\n\nYour temporary login password is: {random_password}\n\n' + + '{{info}}' + }, + "data": { + "info": "Please reset your password at the earliest for security reasons." + } + } + ) + + +def change_passwd(user_log_in_database, email_forgot_passwd: str, random_password: str) -> None: + """ + Replaces the old password with the newly generated password. + """ + user_key = user_log_in_database.fetch({'e-mail': email_forgot_passwd}).items[0]['key'] + updates = {'password': ph.hash(random_password)} + return user_log_in_database.update(updates, user_key) + + +def check_current_passwd(user_log_in_database, email_reset_passwd: str, current_passwd: str = None) -> bool: + """ + Authenticates the password entered against the user_name when + resetting the password. + """ + authorized_user_data = user_log_in_database.fetch({'e-mail': email_reset_passwd}).items[0] + if current_passwd is None: + current_passwd = 'b' + try: + if ph.verify(authorized_user_data['password'], current_passwd): + return True + except VerifyMismatchError: + pass + return False + + +def save_data_in_database(user_task_database, save_type, save_name, cefr_level, time_stamp, creator_name=None, + generated_result=None, test_taker_name=None, test_taker_answers=None, test_taker_result=None, + comments=None, distractor_model=None): + already_saved_names = user_task_database.fetch({'creator_name': creator_name, + 'save_name': save_name, + 'cefr_level': cefr_level}).items + already_saved_tasks = user_task_database.fetch({'creator_name': creator_name, + 'generated_result': generated_result, + 'cefr_level': cefr_level}).items + already_saved_tests = user_task_database.fetch({'test_taker_name': test_taker_name, + 'save_name': save_name, + 'cefr_level': cefr_level}).items + if save_name == '' and save_type == 'download': + save_name = generated_result['name'] + if len(already_saved_names) != 0 and save_type == 'download': + return st.success('Файл с таким названием уже существует! Введите другое название и повторите попытку.') + elif len(already_saved_tasks) != 0 and save_type == 'download': + return st.error(f'Вы уже сохраняли эти задания под именем {already_saved_tasks[0]["save_name"]}. ') + elif (len(already_saved_tests) != 0 + and save_type == 'online_test'): # and int(test_taker_result) == int(already_saved_tests[0]["user_points"]) + return st.error('Вы уже решали данный тест!') + else: + if save_type == 'download': + new_save_data = { + 'save_type': save_type, + 'save_name': save_name, + 'cefr_level': cefr_level, + 'time_stamp': time_stamp, + 'creator_name': creator_name, + 'generated_result': generated_result, + 'distractor_model': distractor_model + } + else: + new_save_data = { + 'save_type': save_type, + 'save_name': save_name, + 'cefr_level': cefr_level, + 'time_stamp': time_stamp, + 'creator_name': creator_name, + 'test_taker_name': test_taker_name, + 'test_taker_answers': test_taker_answers, + 'test_taker_result': test_taker_result, + 'comments': comments} + user_task_database.put(new_save_data) + if save_type == 'download': + return st.success('Задания успешно сохранены! Можете переходить на следующие вкладки') + elif save_type == 'online_test': + return st.success('Ответы успешно сохранены!') + + +def load_user_tasks_data(user_task_database, save_type, creator_name=None, test_taker_name=None): + if save_type == 'download': + user_data = user_task_database.fetch({'creator_name': creator_name, 'save_type': save_type}).items + names = [item['save_name'] for item in user_data] + cefr_level = [item['cefr_level'] for item in user_data] + time_stamps = [item['time_stamp'] for item in user_data] + return_data = pd.DataFrame([names, cefr_level, time_stamps]).transpose() + return_data.columns = ['Название', 'Уровень', 'Время создания'] + else: + user_data = user_task_database.fetch({'test_taker_name': test_taker_name, 'save_type': save_type}).items + names = [item['save_name'] for item in user_data] + cefr_level = [item['cefr_level'] for item in user_data] + time_stamps = [item['time_stamp'] for item in user_data] + creator_name = [item['creator_name'] for item in user_data] + test_taker_result = [item['test_taker_result'] for item in user_data] + return_data = pd.DataFrame([names, cefr_level, test_taker_result, time_stamps, creator_name]).transpose() + return_data.columns = ['Название', 'Уровень', 'Оценка', 'Дата прохождения', 'Автор заданий'] + return return_data + + +def load_users_particular_task(user_task_database, load_mode, creator_name, save_name, cefr_level,): + return_data = user_task_database.fetch({'creator_name': creator_name, + 'save_name': save_name, + 'save_type': load_mode, + 'cefr_level': cefr_level}).items[0]['generated_result'] + return return_data diff --git a/utilities_database/user_database_widgets.py b/utilities_database/user_database_widgets.py new file mode 100644 index 0000000000000000000000000000000000000000..be56622360bdfed674e3ce05a4a81b2c3a4430b9 --- /dev/null +++ b/utilities_database/user_database_widgets.py @@ -0,0 +1,336 @@ +from deta import Deta +import streamlit as st +from utilities_option_menu.option_menu import option_menu +import utilities_database.user_database_utils as db_utils +from utilities_database.user_database_utils import check_usr_pass +from utilities_cookies.encrypted_cookie_manager import EncryptedCookieManager + +DETA_KEY = st.secrets['DETA_KEY'] +DETA_TABLE = st.secrets['DETA_TABLE'] +DETA_USER_TABLE = st.secrets['DETA_USER_SAVE_TEXT_TABLE'] + +deta = Deta(DETA_KEY) +db = deta.Base(DETA_TABLE) +user_save_text_table = deta.Base(DETA_USER_TABLE) +st.set_page_config(page_title='GenLexTasksEnter', layout="wide", page_icon=':es:') + +login_call = 'Зарегистрироваться' + + +class LogIn: + """ + Builds the UI for the Login/ Sign Up page. + """ + + def __init__(self, + auth_token: str, + company_name: str, + width, height, + logout_button_name: str = 'Logout', + hide_menu_bool: bool = False, + hide_footer_bool: bool = False, + lottie_url: str = "https://assets8.lottiefiles.com/packages/lf20_ktwnwv5m.json"): + """ + Arguments: + ----------- + 1. self + 2. auth_token : The unique authorization token received from - https://www.courier.com/email-api/ + 3. company_name : This is the name of the person/ organization which will send the password reset email. + 4. width : Width of the animation on the login page. + 5. height : Height of the animation on the login page. + 6. logout_button_name : The logout button name. + 7. hide_menu_bool : Pass True if the streamlit menu should be hidden. + 8. hide_footer_bool : Pass True if the 'made with streamlit' footer should be hidden. + 9. lottie_url : The lottie animation you would like to use on the login page. + Explore animations at - https://lottiefiles.com/featured + """ + self.auth_token = auth_token + self.company_name = company_name + self.width = width + self.height = height + self.logout_button_name = logout_button_name + self.hide_menu_bool = hide_menu_bool + self.hide_footer_bool = hide_footer_bool + self.lottie_url = lottie_url + + self.cookies = EncryptedCookieManager( + prefix="streamlit_login_ui_yummy_cookies", + password='9d68d6f2-4258-45c9-96eb-2d6bc74ddbb5-d8f49cab-edbb-404a-94d0-b25b1d4a564b') + + if not self.cookies.ready(): + st.stop() + + def get_user_name(self): + if not st.session_state['LOGOUT_BUTTON_HIT']: + fetched_cookies = self.cookies + if '__streamlit_login_signup_ui_username__' in fetched_cookies.keys(): + user_name = fetched_cookies['__streamlit_login_signup_ui_username__'] + return user_name + + def login_widget(self) -> None: + """ + Creates the login widget, checks and sets cookies, authenticates the users. + """ + + # Checks if cookie exists. + if not st.session_state['LOGGED_IN'] and not st.session_state['LOGOUT_BUTTON_HIT']: + fetched_cookies = self.cookies + if '__streamlit_login_signup_ui_username__' in fetched_cookies.keys(): + if fetched_cookies['__streamlit_login_signup_ui_username__'] \ + != '1c9a923f-fb21-4a91-b3f3-5f18e3f01182': + st.session_state['LOGGED_IN'] = True + + if not st.session_state['LOGGED_IN']: + st.session_state['LOGOUT_BUTTON_HIT'] = False + + del_login = st.empty() + with del_login.form("Login Form"): + user_name = st.text_input("Имя пользователя", placeholder='Ваше имя пользователя') + password = st.text_input("Пароль", placeholder='Ваш пароль', type='password') + + login_submit_button = st.form_submit_button(label='Войти') + + if login_submit_button: + authenticate_user_check = check_usr_pass(user_log_in_database=db, + user_name=user_name, + password=password) + + if not authenticate_user_check: + st.error("Неверное имя пользователя или пароль!") + + else: + st.session_state['LOGGED_IN'] = True + st.session_state['-USER_NAME-'] = user_name + self.cookies['__streamlit_login_signup_ui_username__'] = user_name + self.cookies.save() + del_login.empty() + st.experimental_rerun() + + @staticmethod + def sign_up_widget() -> None: + """ + Creates the sign-up widget and stores the user info in a secure way in the _secret_auth_.json file. + """ + with st.form("Sign Up Form"): + name_sign_up = st.text_input("Имя *", + placeholder='Введите Ваше имя') + valid_name_check = db_utils.check_valid_name(name_sign_up) + + email_sign_up = st.text_input("E-mail *", + placeholder='Введите Ваш e-mail') + valid_email_check = db_utils.check_valid_email(email_sign_up) + unique_email_check = db_utils.check_unique_email(user_log_in_database=db, + email_sign_up=email_sign_up) + + user_name_sign_up = st.text_input("Имя пользователя *", + placeholder='Введите имя пользователя') + unique_user_name_check = db_utils.check_unique_usr(user_log_in_database=db, + user_name_sign_up=user_name_sign_up) + + password_sign_up = st.text_input("Пароль *", + placeholder='Введите пароль', + type='password') + professional_level = st.radio('Вы являетесь преподавателем испанского языка? *', + options=['Да', 'Нет'], + index=1, + horizontal=True) + + st.markdown("\* Обязательное поле") + sign_up_submit_button = st.form_submit_button(label=login_call) + + if sign_up_submit_button: + if not valid_name_check: + st.error("Пожалуйста, ведите Ваше имя!") + + elif not valid_email_check: + st.error("Пожалуйста, введите действующий е-mail!") + + elif not unique_email_check: + st.error("Пользователь с этим e-mail уже зарегистрирован!") + + elif not unique_user_name_check: + st.error(f'Извините, пользователь с таким именем ({user_name_sign_up}) уже существует!') + + elif unique_user_name_check is None: + st.error('Пожалуйста, введите имя пользователя!') + + if valid_name_check: + if valid_email_check and unique_email_check and unique_user_name_check: + db_utils.register_new_usr(user_log_in_database=db, + name_sign_up=name_sign_up, + email_sign_up=email_sign_up, + user_name_sign_up=user_name_sign_up, + password_sign_up=password_sign_up, + professional_level=professional_level) + st.success("Регистрация прошла успешно!") + + def forgot_password(self) -> None: + """ + Creates the forgot password widget and after user authentication (e-mail), triggers an e-mail to the user + containing a random password. + """ + with st.form("Forgot Password Form"): + email_forgot_passwd = st.text_input("Email", placeholder='Введите Ваш email') + email_exists_check, user_name_forgot_passwd = db_utils.check_email_exists( + user_log_in_database=db, + email_forgot_passwd=email_forgot_passwd) + + forgot_passwd_submit_button = st.form_submit_button(label='Получить пароль') + + if forgot_passwd_submit_button: + if not email_exists_check: + st.error("Пользователя с таким e-mail не существует!") + + if email_exists_check: + random_password = db_utils.generate_random_passwd() + db_utils.send_passwd_in_email(self.auth_token, user_name_forgot_passwd, email_forgot_passwd, + self.company_name, random_password) + db_utils.change_passwd(user_log_in_database=db, + email_forgot_passwd=email_forgot_passwd, + random_password=random_password) + st.success("Временный пароль выслан Вам на почту!") + + @staticmethod + def reset_password() -> None: + """ + Creates the reset password widget and after user authentication + (e-mail and the password shared over that e-mail), + resets the password and updates the same in the _secret_auth_.json file. + """ + with st.form("Reset Password Form"): + email_reset_passwd = st.text_input("Email", placeholder='Please enter your email') + email_exists_check, user_name_reset_passwd = db_utils.check_email_exists( + user_log_in_database=db, + email_forgot_passwd=email_reset_passwd) + + current_passwd = st.text_input("Временный пароль", + placeholder='Введите пароль, который вы получили в письме') + current_passwd_check = db_utils.check_current_passwd(user_log_in_database=db, + email_reset_passwd=email_reset_passwd, + current_passwd=current_passwd) + + new_passwd = st.text_input("Новый пароль", placeholder='Введите новый пароль', + type='password') + + new_passwd_1 = st.text_input("Повторите новый пароль", placeholder='Введите повторите пароль', + type='password') + + reset_passwd_submit_button = st.form_submit_button(label='Изменить пароль') + + if reset_passwd_submit_button: + if not email_exists_check: + st.error("Пользователя с таким e-mail не существует!") + + elif not current_passwd_check: + st.error("Неверный временный пароль!") + + elif new_passwd != new_passwd_1: + st.error("Пароли не совпадают!") + + if email_exists_check and current_passwd_check: + db_utils.change_passwd(user_log_in_database=db, + email_forgot_passwd=email_reset_passwd, + random_password=new_passwd) + st.success("Пароль успешно изменен!") + + def logout_widget(self) -> None: + """ + Creates the logout widget in the sidebar only if the user is logged in. + """ + if st.session_state['LOGGED_IN']: + del_logout = st.sidebar.empty() + del_logout.markdown("#") + logout_click_check = del_logout.button(self.logout_button_name) + + if logout_click_check: + st.session_state['LOGOUT_BUTTON_HIT'] = True + st.session_state['LOGGED_IN'] = False + self.cookies['__streamlit_login_signup_ui_username__'] = '1c9a923f-fb21-4a91-b3f3-5f18e3f01182' + del_logout.empty() + st.experimental_rerun() + + @staticmethod + def navigation(): + """ + Creates the side navigation bar + """ + selected_option = option_menu( + menu_title='Навигация', + menu_icon='list-columns-reverse', + icons=['box-arrow-in-right', 'person-plus', 'x-circle', 'arrow-counterclockwise'], + options=['Вход', login_call, 'Забыли пароль?', 'Восстановление пароля'], + default_index=0, + styles={ + "container": {"padding": "10px", "text-align": "left"}, + "nav-link": {"font-size": "16px", "text-align": "left", "margin": "0px"}}) + return selected_option + + @staticmethod + def hide_menu() -> None: + """ + Hides the streamlit menu situated in the top right. + """ + st.markdown(""" """, unsafe_allow_html=True) + + @staticmethod + def hide_header() -> None: + """ + Hides the 'made with streamlit' footer. + """ + st.markdown(""" """, unsafe_allow_html=True) + + @staticmethod + def hide_footer() -> None: + """ + Hides the 'made with streamlit' footer. + """ + st.markdown(""" """, unsafe_allow_html=True) + + def build_login_ui(self): + """ + Brings everything together, calls important functions. + """ + if 'LOGGED_IN' not in st.session_state: + st.session_state['LOGGED_IN'] = False + + if 'LOGOUT_BUTTON_HIT' not in st.session_state: + st.session_state['LOGOUT_BUTTON_HIT'] = False + + selected_option = self.navigation() + + if selected_option == 'Вход': + c1, c2 = st.columns([7, 3]) + with c1: + self.login_widget() + with c2: + if not st.session_state['LOGGED_IN']: + pass + # self.animation() + + if selected_option == login_call: + self.sign_up_widget() + + if selected_option == 'Забыли пароль?': + self.forgot_password() + + if selected_option == 'Восстановление пароля': + self.reset_password() + + self.logout_widget() + + if st.session_state['LOGGED_IN']: + pass + + if self.hide_menu_bool: + self.hide_menu() + + if self.hide_footer_bool: + self.hide_footer() + + return st.session_state['LOGGED_IN'] diff --git a/utilities_language_bert/__pycache__/esp_main_workflow_bert.cpython-310.pyc b/utilities_language_bert/__pycache__/esp_main_workflow_bert.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8be4a93793c28c31567915f405b84a6150e0e6a9 Binary files /dev/null and b/utilities_language_bert/__pycache__/esp_main_workflow_bert.cpython-310.pyc differ diff --git a/utilities_language_bert/__pycache__/esp_sentence_bert.cpython-310.pyc b/utilities_language_bert/__pycache__/esp_sentence_bert.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d046f6a0c25b17aa91c717fc4753bf23142019f Binary files /dev/null and b/utilities_language_bert/__pycache__/esp_sentence_bert.cpython-310.pyc differ diff --git a/utilities_language_bert/esp_main_workflow_bert.py b/utilities_language_bert/esp_main_workflow_bert.py new file mode 100644 index 0000000000000000000000000000000000000000..53e8a6c9cbbc4827b42a0870f1a9d96cf2ff3e78 --- /dev/null +++ b/utilities_language_bert/esp_main_workflow_bert.py @@ -0,0 +1,266 @@ +import datetime +from io import StringIO +from random import sample +from collections import defaultdict +from streamlit import progress as st_progress +from streamlit.elements import WIDGETS as ST_WIDGETS +from utilities_language_general.esp_constants import st +from utilities_language_bert.esp_sentence_bert import TASK +from utilities_language_bert.esp_sentence_bert import SENTENCE +from utilities_language_general.esp_utils import prepare_tasks +from utilities_language_general.esp_constants import load_bert +from streamlit.runtime.uploaded_file_manager import UploadedFile +import utilities_language_general.esp_constants as esp_constants +from utilities_language_general.esp_utils import prepare_target_words +from utilities_language_general.esp_utils import compute_frequency_dict +from utilities_language_general.esp_constants import BAD_USER_TARGET_WORDS + + +def main_workflow( + file: UploadedFile or None, + text: str, + logs: ST_WIDGETS, + logs_d: ST_WIDGETS, + progress: st_progress, + progress_d: st_progress, + progress_s: st_progress, + level: str, + tw_mode_automatic_mode: str, + target_words: str, + num_distractors: int, + save_name: str, + global_bad_target_words=BAD_USER_TARGET_WORDS): + """ + This is the main course of the program. + All processes and changes take place here. + Partially works with the interface, displaying the success messages and download buttons. + + :param file: user's file to generate tasks in + :param text: user's text input to generate tasks in + :param logs: widget to output logs to + :param logs_d: show how many distractors already processed + :param progress: progress bar + :param progress_d: distractors progress bar + :param progress_s: sentences progress bar + :param target_words: how target words are chosen: by user or automatically + :param tw_mode_automatic_mode: + :param level: user's specification of CEFR level of text + :param num_distractors: how many distractors does the user want the task to contain + :param save_name: user specifies name to save file in cloud + :param global_bad_target_words:global_bad_target_words + :return: Dictionary with output data: filename, amount_mode, text_with_gaps, tasks_as_list, correct_answers, + student_out, teacher_out, total_out, original_text + """ + # Clear bad target_words each time + global_bad_target_words = [] + + # Define main global variables + logs.write() + GLOBAL_DISTRACTORS = set() + MAX_FREQUENCY = 0 + + mask_filler = load_bert() + + # Get input text + if file is not None: + stringio = StringIO(file.getvalue().decode("utf-8")) + current_text = stringio.read() + elif text != '': + current_text = text + else: + esp_constants.st.warning('Вы и текст не вставили, и файл не выбрали 😢') + current_text = '' + esp_constants.st.stop() + + # Process target words + if tw_mode_automatic_mode == 'Самостоятельно': + if target_words == '': + esp_constants.st.warning('Вы не ввели целевые слова') + esp_constants.st.stop() + # Cannot make up paradigm, so only USER_TARGET_WORDS is used + USER_TARGET_WORDS = prepare_target_words(target_words) + tw_mode_automatic_mode = False + else: + USER_TARGET_WORDS = None + tw_mode_automatic_mode = True + + # Text preprocessing + original_text = current_text + current_text = current_text.replace('.', '. ').replace('. . .', '...').replace(' ', ' ').replace('…', '...') \ + .replace('…', '...').replace('—', '-').replace('\u2014', '-').replace('—', '-').replace('-\n', '') \ + .replace('\n', '%^&*') + current_text_sentences = [sent.text.strip() for sent in esp_constants.nlp(current_text).sents] + logs.success('Получили Ваш текст!') + progress.progress(10) + + # Compute frequency dict + FREQ_DICT = compute_frequency_dict(current_text) + + # Get maximum frequency (top 5% barrier) + _frequency_barrier_percent = 0.05 + for j, tp in enumerate(FREQ_DICT.items()): + if j < len(FREQ_DICT) * _frequency_barrier_percent: + MAX_FREQUENCY = tp[1] + MAX_FREQUENCY = 3 if MAX_FREQUENCY < 3 else MAX_FREQUENCY + logs.success("Посчитали немного статистики!") + progress.progress(15) + + # Choose necessary language minimum according to user's input + if level == 'A1': + target_minimum = esp_constants.a1_target_set + distractor_minimum = esp_constants.a1_distractor_set + elif level == 'A2': + target_minimum = esp_constants.a2_target_set + distractor_minimum = esp_constants.a2_distractor_set + elif level == 'B1': + target_minimum = esp_constants.b1_target_set + distractor_minimum = esp_constants.b1_distractor_set + elif level == 'B2': + target_minimum = esp_constants.b2_target_set + distractor_minimum = esp_constants.b2_distractor_set + elif level == 'C1': + target_minimum = esp_constants.c1_target_set + distractor_minimum = esp_constants.c1_distractor_set + elif level == 'C2': + target_minimum = esp_constants.c2_target_set + distractor_minimum = esp_constants.c2_distractor_set + elif level == 'Нет': + target_minimum = None + distractor_minimum = None + else: + target_minimum = None + distractor_minimum = None + logs.error('Вы не выбрали языковой уровень!') + st.stop() + + # Start generation process + workflow = [SENTENCE(original=sent.strip(), n_sentence=num, max_num_distractors=num_distractors) + for num, sent in enumerate(current_text_sentences)] + logs.success("Запускаем процесс генерации заданий!") + progress.progress(20) + + for sentence in workflow: + sentence.lemmatize_sentence() + + for sentence in workflow: + sentence.bind_phrases() + logs.success("Подготовили предложения для дальнейшей работы!") + progress.progress(30) + + for j, sentence in enumerate(workflow): + sentence.search_target_words(target_words_automatic_mode=tw_mode_automatic_mode, + target_minimum=target_minimum, + user_target_words=USER_TARGET_WORDS, + frequency_dict=FREQ_DICT) + progress.progress(int(30 + (j * (30 / len(workflow))))) + progress_s.progress(60) + DUPLICATE_TARGET_WORDS = defaultdict(list) + for sentence in workflow: + for target_word in sentence.target_words: + DUPLICATE_TARGET_WORDS[target_word['lemma']].append(target_word) + RESULT_TW = [] + for tw_lemma, tw_data in DUPLICATE_TARGET_WORDS.items(): + RESULT_TW.append(sample(tw_data, 1)[0]) + for sentence in workflow: + for target_word in sentence.target_words: + if target_word not in RESULT_TW: + global_bad_target_words.append(target_word['original_text']) + sentence.target_words.remove(target_word) + progress_s.progress(65) + logs.success('Выбрали слова-пропуски!') + + for sentence in workflow: + for i, target_word in enumerate(sentence.target_words): + temp = current_text_sentences[:] + temp[sentence.n_sentence] = target_word['masked_sentence'] + sentence.text_with_masked_task = ' '.join(temp).replace('%^&*', '\n') + sentence.target_words[i]['text_with_masked_task'] = ' '.join(temp).replace('%^&*', '\n') + + for sentence in workflow: + sentence.filter_target_words(target_words_automatic_mode=tw_mode_automatic_mode) + progress_s.progress(65) + + RESULT_TASKS = [] + for sentence in workflow: + for target_word in sentence.target_words: + task = TASK(task_data=target_word, max_num_distractors=num_distractors) + RESULT_TASKS.append(task) + + for num, task in enumerate(RESULT_TASKS): + task.attach_distractors_to_target_word(model=mask_filler, level_name=level, + global_distractors=GLOBAL_DISTRACTORS, + distractor_minimum=distractor_minimum, + max_frequency=MAX_FREQUENCY) + logs_d.success( + f'Обработали {num}/{len(RESULT_TASKS)} целевых слов!') + logs_d.success( + f'Обработали {len(RESULT_TASKS)}/{len(RESULT_TASKS)} целевых слов!') + + progress_s.progress(70) + logs.success('Подобрали неправильные варианты!') + for task in RESULT_TASKS: + task.sample_distractors(num_distractors=num_distractors) + progress_s.progress(75) + RESULT_TASKS = list(filter(lambda t: not t.bad_target_word, RESULT_TASKS)) + + for task in RESULT_TASKS[::-1]: + if task.bad_target_word: + RESULT_TASKS.remove(task) + + # Compute number of final tasks + if len(RESULT_TASKS) >= 20: + NUMBER_TASKS = 20 + else: + if len(RESULT_TASKS) >= 15: + NUMBER_TASKS = 15 + else: + if len(RESULT_TASKS) >= 10: + NUMBER_TASKS = 10 + else: + NUMBER_TASKS = len(RESULT_TASKS) + RESULT_TASKS = sample(RESULT_TASKS, NUMBER_TASKS) + RESULT_TASKS = sorted(RESULT_TASKS, key=lambda t: (t.sentence_number, t.position_in_sentence)) + + for task in RESULT_TASKS: + task.compile_task(max_num_distractors=num_distractors) + progress_s.progress(85) + logs.success('Отобрали лучшие задания!') + + TEXT_WITH_GAPS = [] + VARIANTS = [] + tasks_counter = 1 + for i, sentence in enumerate(current_text_sentences): + for task in RESULT_TASKS: + if task.sentence_text == sentence: + sentence = sentence.replace(task.original_text, f'__________({tasks_counter})') + VARIANTS.append(task.variants) + tasks_counter += 1 + TEXT_WITH_GAPS.append(sentence) + del RESULT_TASKS + + logs.success('Сейчас все будет готово!') + progress_s.progress(90) + + TEXT_WITH_GAPS = ' '.join([sentence for sentence in TEXT_WITH_GAPS]).replace('%^&*', '\n') + PREPARED_TASKS = prepare_tasks(VARIANTS) + STUDENT_OUT = f'{TEXT_WITH_GAPS}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_STUDENT"]}' + TEACHER_OUT = f'{TEXT_WITH_GAPS}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_TEACHER"]}\n\n{"=" * 70}\n\n' \ + f'{PREPARED_TASKS["KEYS_ONLY"]}' + TOTAL_OUT = f'{original_text}\n\n{"$" * 70}\n\n{STUDENT_OUT}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_TEACHER"]}' \ + f'\n\n{"$" * 70}\n\n{PREPARED_TASKS["KEYS_ONLY"]}' + logs.success('Сейчас все будет готово!') + progress_s.progress(90) + save_name = save_name if save_name != '' else f'{str(datetime.datetime.now())[:-7]}_{original_text[:20]}' + out = { + 'name': save_name, + 'STUDENT_OUT': STUDENT_OUT, + 'TEACHER_OUT': TEACHER_OUT, + 'TEXT_WITH_GAPS': TEXT_WITH_GAPS, + 'TASKS_ONLY': PREPARED_TASKS["RAW_TASKS"], + 'KEYS_ONLY': PREPARED_TASKS["KEYS_ONLY"], + 'KEYS_ONLY_RAW': PREPARED_TASKS["RAW_KEYS_ONLY"], + 'TOTAL_OUT': TOTAL_OUT, + 'ORIGINAL': original_text, + 'BAD_USER_TARGET_WORDS': sorted(set(global_bad_target_words)) + } + return out diff --git a/utilities_language_bert/esp_sentence_bert.py b/utilities_language_bert/esp_sentence_bert.py new file mode 100644 index 0000000000000000000000000000000000000000..7be7d1b551c27717c9a1ff01b5ee31dc3ec3c3c0 --- /dev/null +++ b/utilities_language_bert/esp_sentence_bert.py @@ -0,0 +1,227 @@ +import string +from random import random +from random import sample +from utilities_language_general.esp_constants import nlp +from utilities_language_general.esp_constants import PHRASES +from utilities_language_general.esp_utils import check_token_bert +from utilities_language_general.esp_utils import fix_irregular_lemma +from utilities_language_general.esp_constants import BAD_USER_TARGET_WORDS +from utilities_language_general.esp_utils import get_distractors_from_model_bert + + +class SENTENCE: + def __init__(self, original: str, n_sentence: int, max_num_distractors): + self.original = original + self.n_sentence = n_sentence + self.max_num_distractors = max_num_distractors + self.parsed = nlp(self.original) + self.sentence_lemma_pos = [] + self.sentence_phrases = [] + self.target_words = [] + self.text_with_masked_task = '' + + def lemmatize_sentence(self): + for token in self.parsed: + lemma_pos = f'{token.lemma_}_{token.pos_}' + if token.pos_ in ('AUX', 'VERB', 'ADJ'): + lemma_pos = fix_irregular_lemma(lemma=lemma_pos) + self.sentence_lemma_pos.append((lemma_pos, token)) + + def bind_phrases(self): + previous_was_phrase = False + for i in range(len(self.sentence_lemma_pos) - 1): + phrase_candidate = f'{self.sentence_lemma_pos[i][0]}_{self.sentence_lemma_pos[i + 1][0]}' + if phrase_candidate in PHRASES and not previous_was_phrase: + # phrase is {phrase: {original_token1: spacy.token, original_token2: spacy.token}} + phrase = [ + f'{self.sentence_lemma_pos[i][0]}_{self.sentence_lemma_pos[i + 1][0]}', + { + 'original_token1': self.sentence_lemma_pos[i][1], + 'original_token2': self.sentence_lemma_pos[i + 1][1] + } + ] + self.sentence_phrases.append(phrase) + previous_was_phrase = True + else: + if not previous_was_phrase: + self.sentence_phrases.append(self.sentence_lemma_pos[i][1]) + previous_was_phrase = False + + def search_target_words_automatically(self, target_minimum: set, frequency_dict: dict = None): + for token in self.sentence_phrases: + if isinstance(token, list): # if token is a phrase + original_token1 = token[1]['original_token1'] + original_token2 = token[1]['original_token2'] + original_token1_tags = original_token1.morph.to_dict() + original_token2_tags = original_token2.morph.to_dict() + tags = dict() + if ('haber_AUX' == f'{original_token1.lemma_}_{original_token1.pos_}' + and original_token2.pos_ in ('VERB', 'ADJ', 'AUX')): + tags['VerbForm'] = 'Compuesto' + tags['Mood'] = original_token1_tags.get('Mood') + tags['Tense'] = original_token1_tags.get('Tense') + tags['Person'] = original_token1_tags.get('Person') + tags['Number'] = original_token1_tags.get('Number') + tags['Gender'] = None + else: + tags = original_token1_tags | original_token2_tags + not_ner = True if (original_token1.ent_type == 0 and original_token2.ent_type == 0) else False + target_word = { + 'masked_sentence': self.original.replace(f'{original_token1.text} {original_token2.text}', + '[MASK]'), + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': f'{original_token1.text} {original_token2.text}', + 'lemma': token[0], + 'pos': 'phrase', + 'gender': tags.get('Gender'), + 'tags': tags, + 'position_in_sentence': self.original.find(original_token1.text), + 'not_named_entity': not_ner, + 'frequency_in_text': 0 + } + self.target_words.append(target_word) + else: # if token is just a spacy.nlp token + if check_token_bert(token=token, current_minimum=target_minimum): + tags = token.morph.to_dict() + target_word = { + 'masked_sentence': self.original.replace(token.text, '[MASK]'), + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': token.text, + 'lemma': token.lemma_, + 'pos': ('simple', token.pos_), + 'gender': tags.get('Gender'), + 'number_children': len([child for child in token.children]), + 'tags': tags, + 'position_in_sentence': self.original.find(token.text), + 'not_named_entity': True if token.ent_type == 0 else False, + 'frequency_in_text': frequency_dict.get(token.lemma_, 1), + } + self.target_words.append(target_word) + + def search_user_target_words(self, user_target_words: set = None, frequency_dict: dict = None): + for _utw in user_target_words: + if _utw in self.original: + parse_utw = nlp(_utw) + if ' ' in _utw: + tags = dict() + if ('haber_AUX' == f'{parse_utw[0].lemma_}_{parse_utw[0].pos_}' + and parse_utw[1].pos_ in ('VERB', 'ADJ', 'AUX')): + tags['VerbForm'] = 'Compuesto' + tags['Mood'] = parse_utw[0].morph.to_dict().get('Mood') + tags['Tense'] = parse_utw[0].morph.to_dict().get('Tense') + tags['Person'] = parse_utw[0].morph.to_dict().get('Person') + tags['Number'] = parse_utw[0].morph.to_dict().get('Number') + tags['Gender'] = None + else: + tags = parse_utw[0].morph.to_dict() | parse_utw[1].morph.to_dict() + user_target_word_lemma = '_'.join([f'{token.lemma_}_{token.pos_}' for token in parse_utw]) + user_target_word_pos = 'phrase' + user_target_word_tags = tags + not_ner = True if (parse_utw[0].ent_type == 0 and parse_utw[1].ent_type == 0) else False + else: + user_target_word_lemma = f'{parse_utw[0].lemma_}_{parse_utw[0].pos_}' + user_target_word_pos = ('simple', parse_utw[0].pos_) + user_target_word_tags = parse_utw[0].morph.to_dict() + not_ner = parse_utw[0].ent_type == 0 + target_word = { + 'masked_sentence': self.original.replace(_utw, '[MASK]'), + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': _utw, + 'lemma': user_target_word_lemma, + 'pos': user_target_word_pos, + 'gender': user_target_word_tags.get('Gender'), + 'tags': user_target_word_tags, + 'position_in_sentence': self.original.find(_utw), + 'not_named_entity': not_ner, + 'frequency_in_text': frequency_dict.get(user_target_word_lemma, 1) + } + self.target_words.append(target_word) + + def search_target_words(self, target_words_automatic_mode: bool, target_minimum, + user_target_words: set = None, + frequency_dict: dict = None): + if target_words_automatic_mode: + self.search_target_words_automatically(target_minimum=target_minimum, + frequency_dict=frequency_dict) + else: + self.search_user_target_words(user_target_words=user_target_words, + frequency_dict=frequency_dict) + + def filter_target_words(self, target_words_automatic_mode): + c_position = 0 + bad_target_words = [] + for target_word in self.target_words: + position_difference = 3 if target_words_automatic_mode else 0 + if not (target_word['position_in_sentence'] == 0 + or abs(target_word['position_in_sentence'] - c_position) >= position_difference): + bad_target_words.append(target_word) + for btw in bad_target_words: + BAD_USER_TARGET_WORDS.append(btw['original_text']) + self.target_words.remove(btw) + + +class TASK: + def __init__(self, task_data, max_num_distractors): + self.task_data = task_data + self.distractors = None + self.distractors_number = 0 + self.bad_target_word = False + self.pos = task_data['pos'] + self.lemma = task_data['lemma'] + self.gender = task_data['gender'] + self.max_num_distractors = max_num_distractors + self.original_text = task_data['original_text'] + self.sentence_text = task_data['sentence_text'] + self.sentence_number = task_data['sentence_number'] + self.masked_sentence = task_data['masked_sentence'] + self.frequency_in_text = task_data['frequency_in_text'] + self.position_in_sentence = task_data['position_in_sentence'] + self.text_with_masked_task = task_data['text_with_masked_task'] + self.result = '' + self.variants = [] + + def __repr__(self): + return '\n'.join([f'{key}\t=\t{value}' for key, value in self.__dict__.items()]) + + def attach_distractors_to_target_word(self, model, global_distractors, distractor_minimum, + level_name, max_frequency): + pos = self.pos[0] if self.pos[0] == 'phrase' else self.pos[1] + # distractors_full_text = get_distractors_from_model_bert(model=model, lemma=self.lemma, pos=pos, + # gender=self.gender, level_name=level_name, + # text_with_masked_task=self.text_with_masked_task, + # global_distractors=global_distractors, + # distractor_minimum=distractor_minimum, + # max_num_distractors=self.max_num_distractors) + distractors_sentence = get_distractors_from_model_bert(model=model, lemma=self.lemma, pos=pos, + gender=self.gender, level_name=level_name, + text_with_masked_task=self.masked_sentence, + global_distractors=global_distractors, + distractor_minimum=distractor_minimum, + max_num_distractors=self.max_num_distractors) + if distractors_sentence is None or self.frequency_in_text > max_frequency: + self.bad_target_word = True + self.distractors = None + else: + self.distractors = [d[0] for i, d in enumerate(distractors_sentence) if i < 15] + self.distractors_number = len(distractors_sentence) if distractors_sentence is not None else 0 + + def sample_distractors(self, num_distractors): + if not self.bad_target_word: + num_distractors = min(self.distractors_number, num_distractors) if num_distractors >= 4 else num_distractors + self.distractors = sample(self.distractors[:min(self.distractors_number, 10)], num_distractors) + + def compile_task(self, max_num_distractors): + len_distractors = len(self.distractors) + len_variants = min(len_distractors, max_num_distractors) if max_num_distractors > 4 \ + else max_num_distractors + letters = (f'({letter})' for letter in string.ascii_lowercase[:len_variants + 1]) + try: + distractors = sample(self.distractors, len_variants) + [self.original_text, ] + except ValueError: + distractors = self.distractors + [self.original_text, ] + tmp_vars = [f'{item[0]} {item[1].replace("_", " ")}' + for item in zip(letters, sorted(distractors, key=lambda _: random()))] + self.variants.append((self.original_text, tmp_vars)) diff --git a/utilities_language_general/__pycache__/esp_constants.cpython-310.pyc b/utilities_language_general/__pycache__/esp_constants.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e3a42c17fe845d5efcf8dd01303b8c523726494 Binary files /dev/null and b/utilities_language_general/__pycache__/esp_constants.cpython-310.pyc differ diff --git a/utilities_language_general/__pycache__/esp_utils.cpython-310.pyc b/utilities_language_general/__pycache__/esp_utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f026a760dd8b8544abfc8774e3c72a4f48f53a67 Binary files /dev/null and b/utilities_language_general/__pycache__/esp_utils.cpython-310.pyc differ diff --git a/utilities_language_general/__pycache__/morphology.cpython-310.pyc b/utilities_language_general/__pycache__/morphology.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..294302e75d921a3e7c86233d2ca53fe6823a693a Binary files /dev/null and b/utilities_language_general/__pycache__/morphology.cpython-310.pyc differ diff --git a/utilities_language_general/esp_constants.py b/utilities_language_general/esp_constants.py new file mode 100644 index 0000000000000000000000000000000000000000..bd1c058ff6a4b8cd7bd19df5b050228f87df664c --- /dev/null +++ b/utilities_language_general/esp_constants.py @@ -0,0 +1,60 @@ +import json +import spacy +import gensim +import streamlit as st +from transformers import pipeline + + +@st.cache_resource +def load_w2v(model_path): + _w2v_model = gensim.models.KeyedVectors.load_word2vec_format(model_path, binary=True) + return _w2v_model + + +@st.cache_resource +def load_spacy(): + _nlp = spacy.load('es_core_news_lg') + return _nlp + + +@st.cache_resource +def load_bert(): + return pipeline("fill-mask", model="a-v-white/bert-base-spanish-wwm-cased-finetuned-literature-pro") + + +nlp = load_spacy() +news_model_path = r'news_phrases_s300_cw10_mc50_w4_negative5-075_mean_e10_notshr.bin.gz' +all_model_path = r'ALL_annot_all_pos_spell_g_h_new_phrases_s300_cw10_mc100_w4_negative5-075_mean_e10_shr.bin.gz' +lit_model_path = r'LITERATURA_annot_all_pos_spell_g_h_phrases_s300_cw10_mc50_w4_negative_5-075_mean_e20_shr.bin.gz' + +# Upload minimums +a1_path, a1_target_set = r'lexical_minimums/A1_MINIMUM.txt', set() +a2_path, a2_target_set = r'lexical_minimums/A2_MINIMUM.txt', set() +b1_path, b1_target_set = r'lexical_minimums/B1_MINIMUM.txt', set() +b2_path, b2_target_set = r'lexical_minimums/B2_MINIMUM.txt', set() +c1_path, c1_target_set = r'lexical_minimums/C1_MINIMUM.txt', set() +c2_path, c2_target_set = r'lexical_minimums/C2_MINIMUM.txt', set() +minimums_paths = (a1_path, a2_path, b1_path, b2_path) +minimums_sets = (a1_target_set, a2_target_set, b1_target_set, b2_target_set, c1_target_set, c2_target_set) +for i in range(len(minimums_paths)): + with open(minimums_paths[i], 'r', encoding='utf-8') as read_file: + for line in read_file: + minimums_sets[i].add(line.strip()) + +a1_distractor_set = a1_target_set +a2_distractor_set = a2_target_set.union(a1_target_set) +b1_distractor_set = b1_target_set.union(a2_target_set) +b2_distractor_set = b2_target_set.union(b1_target_set) +c1_distractor_set = c1_target_set.union(b2_target_set) +c2_distractor_set = c2_target_set.union(c1_target_set) + +with open('language_data/phrases.json', 'r', encoding='utf-8') as f: + PHRASES = set(json.load(f)['PHRASES']) + +with open('language_data/fix_irregular_lemma.json', 'r', encoding='utf-8') as f: + FIX_LEMMA = json.load(f) + +SIMILARITY_VALUES = {'A1': 1.0, 'A2': 1.0, 'B1': 1.0, 'B2': 1.0, 'C1': 1.0, 'C2': 1.0, 'Нет': 1.0} +SIMILARITY_VALUES_bert = {'A1': 1.0, 'A2': 1.0, 'B1': 1.0, 'B2': 1.0, 'C1': 1.0, 'C2': 1.0, 'Нет': 1.0} + +BAD_USER_TARGET_WORDS = [] diff --git a/utilities_language_general/esp_utils.py b/utilities_language_general/esp_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..43fb2dac0a25af112e64781d7bf8762ad51d4256 --- /dev/null +++ b/utilities_language_general/esp_utils.py @@ -0,0 +1,265 @@ +from nltk import edit_distance +from utilities.utils import answer_letter +from utilities_language_general.esp_constants import nlp +from utilities_language_general.esp_constants import FIX_LEMMA +from utilities_language_general.esp_constants import SIMILARITY_VALUES +from utilities_language_general.esp_constants import SIMILARITY_VALUES_bert + + +def prepare_target_words(target_words): + target_words = target_words.replace(' ,', ',').replace(',', ', ').replace(' ', ' ').split(', ') + return list(set(target_words)) + + +def compute_frequency_dict(text: str) -> dict: + """ + Compute frequency dictionary of given text and return it sorted in descending order. + + :param text: given text as string variable + :return: frequency dictionary {word: frequency} sorted in descending order + """ + freq_dict = {} + doc = nlp(text) + lemma_list_spacy = [token.lemma_ for token in doc] + for lemma in lemma_list_spacy: + if lemma.isalpha(): + if lemma not in freq_dict.keys(): + freq_dict[lemma] = 1 + else: + freq_dict[lemma] += 1 + return freq_dict + + +def get_tags(token: str): + return nlp(token)[0].morph.to_dict() + + +def fix_irregular_lemma(lemma, fixed_lemmas=FIX_LEMMA): + for key, value in fixed_lemmas.items(): + if lemma in value: + return key + return lemma + + +def check_token(token, lemma_pos, model, current_minimum: set = None, check_allowed_pos: set = None, + check_allowed_dep: set = None) -> bool: + not_allowed_pos = {'PROPN', 'PUNCT', 'NUM'} + not_allowed_dep = {'cop', } # 'ROOT' + if lemma_pos == 'auto': + lemma_pos = f'{token.lemma_}_{token.pos_}' + if not token.text.isalpha(): + return False + if current_minimum is not None and token.lemma_ not in current_minimum: + return False + if not model.has_index_for(lemma_pos): + return False + if (not token.is_oov + and not token.is_stop): + if check_allowed_pos is None and check_allowed_dep is None: + if token.pos_ not in not_allowed_pos and token.dep_ not in not_allowed_dep: + return True + return False + elif check_allowed_pos is not None and check_allowed_dep is None: + if token.pos_ in check_allowed_pos and token.dep_ not in not_allowed_dep: + return True + return False + elif check_allowed_pos is None and check_allowed_dep is not None: + if token.pos_ not in not_allowed_pos and token.dep_ in check_allowed_dep: + return True + return False + else: + if token.pos_ in check_allowed_pos and token.dep_ in check_allowed_dep: + return True + return False + else: + return False + + +def check_token_bert(token, current_minimum: set = None, check_allowed_pos: set = None, + check_allowed_dep: set = None) -> bool: + not_allowed_pos = {'PROPN', 'PUNCT', 'NUM'} + not_allowed_synt_dep = {'cop', } # 'ROOT' + if not token.text.isalpha(): + return False + if current_minimum is not None and token.lemma_ not in current_minimum: + return False + if get_tags(token.text) is not None: + tags = get_tags(token.text) + else: + tags = None + if not token.is_stop and tags is not None: + if check_allowed_pos is None and check_allowed_dep is None: + if token.pos_ not in not_allowed_pos and token.dep_ not in not_allowed_synt_dep: + return True + return False + elif check_allowed_pos is not None and check_allowed_dep is None: + if token.pos_ in check_allowed_pos and token.dep_ not in not_allowed_synt_dep: + return True + return False + elif check_allowed_pos is None and check_allowed_dep is not None: + if token.pos_ not in not_allowed_pos and token.dep_ in check_allowed_dep: + return True + return False + else: + if token.pos_ in check_allowed_pos and token.dep_ in check_allowed_dep: + return True + return False + else: + return False + + +def get_distractors_from_model(model, lemma: str, pos: str, gender: str or None, global_distractors: set, + distractor_minimum: set, level_name: str, max_num_distractors: int, + max_length_ratio=5, min_edit_distance_ratio=0.5): + distractors = [] + query = lemma if '_' in lemma else f'{lemma}_{pos}' + lemma = '_'.join(lemma.split('_')[::2]) + if model.has_index_for(query): + candidates = model.most_similar(query, topn=max_num_distractors + 100) + else: + if query.count('_') == 1: + return None + query_raw_list = query.split('_') + query_parts = ['_'.join(query_raw_list[i:i + 2]) for i in range(len(query_raw_list))][::2] + query_vector = model.get_mean_vector(query_parts) + candidates = model.similar_by_vector(query_vector, topn=max_num_distractors + 100) + for candidate in candidates: + if candidate[0].count('_') == 1: + distractor_lemma, distractor_pos = candidate[0].split('_') + distractor_similarity = candidate[1] + candidate_gender = get_tags(distractor_lemma).get('Gender') + length_ratio = abs(len(lemma) - len(distractor_lemma)) + condition = ((distractor_pos == pos + or (distractor_pos in ('VERB', 'ADJ', 'phrase') and pos in ('VERB', 'ADJ', 'phrase'))) + and distractor_lemma != lemma + and len(distractors) < 100 + and distractor_similarity < SIMILARITY_VALUES[level_name] + and candidate_gender == gender + and length_ratio <= max_length_ratio + and distractor_lemma not in global_distractors + and edit_distance(lemma, distractor_lemma) / ((len(lemma) + len(distractor_lemma)) / 2) > + min_edit_distance_ratio) + if condition: + if distractor_minimum is not None: + if distractor_lemma in distractor_minimum: + distractors.append((distractor_lemma, distractor_similarity)) + global_distractors.add(distractor_lemma) + else: + distractors.append((distractor_lemma, distractor_similarity)) + global_distractors.add(distractor_lemma) + else: + if candidate[0].count('_') > 3 or pos in ('NOUN', 'ADJ', 'NUM'): + continue + d1_lemma, d1_pos, d2_lemma, d2_pos = candidate[0].split('_') + distractor_lemma = f'{d1_lemma}_{d2_lemma}' + distractor_similarity = candidate[1] + condition = (((d1_pos == pos or d2_pos == pos) + or (d1_pos in ('VERB', 'AUX', 'SCONJ', 'ADP') + and pos in ('phrase', 'VERB', 'AUX', 'SCONJ', 'ADP')) + or (d2_pos in ('VERB', 'AUX', 'SCONJ', 'ADP') + and pos in ('phrase', 'VERB', 'AUX', 'SCONJ', 'ADP'))) + and candidate[0] != lemma + and distractor_lemma != lemma + and len(distractors) < 100 + and distractor_similarity < SIMILARITY_VALUES[level_name] + and distractor_lemma not in global_distractors) + if condition: + if distractor_minimum is not None: + if (distractor_lemma in distractor_minimum + or (d1_lemma in distractor_minimum and d2_lemma in distractor_minimum)): + distractors.append((candidate[0], distractor_similarity)) + global_distractors.add(distractor_lemma) + else: + distractors.append((candidate[0], distractor_similarity)) + global_distractors.add(distractor_lemma) + max_num_distractors = min(4, max_num_distractors) if max_num_distractors >= 4 else max_num_distractors + if len(distractors) >= max_num_distractors: + return distractors + else: + return None + + +def get_distractors_from_model_bert(model, text_with_masked_task: str, lemma: str, pos: str, gender: str or None, + global_distractors: set, distractor_minimum: set, level_name: str, + max_num_distractors: int, max_length_ratio=5, min_edit_distance_ratio=0.5): + _distractors = [] + try: + if distractor_minimum: + bert_candidates = [token for token in model(text_with_masked_task, + top_k=max_num_distractors + 20, + targets=list(distractor_minimum))] + else: + bert_candidates = [token for token in model(text_with_masked_task, top_k=max_num_distractors + 100)] + inflected_candidates = [] + for candidate in bert_candidates: + if isinstance(candidate, list): + bert_candidates = candidate + continue + if candidate['token_str'].isalpha(): + candidate_morph = nlp(candidate['token_str'])[0] + inflected_candidates.append((f"{candidate_morph.lemma_}_{candidate_morph.text}_{candidate_morph.pos_}", candidate['score'])) + except KeyError: + return None + for candidate_distractor in inflected_candidates: + if '_' in candidate_distractor[0]: + distractor_lemma, distractor_text, distractor_pos, = candidate_distractor[0].split('_') + else: + distractor_lemma, distractor_text, distractor_pos = \ + nlp(candidate_distractor[0])[0].lemma_, candidate_distractor[0], nlp(candidate_distractor[0])[0].pos_ + distractor_similarity = candidate_distractor[1] + candidate_gender = get_tags(distractor_lemma).get('Gender') + length_ratio = abs(len(lemma) - len(distractor_lemma)) + if (((distractor_pos == pos) + or (pos in ('VERB', 'ADJ', 'phrase') and distractor_pos in ('VERB', 'ADJ', 'phrase'))) + and distractor_lemma != lemma + and (len(_distractors) < max_num_distractors+10) + and (distractor_similarity < SIMILARITY_VALUES_bert[level_name]) + and (candidate_gender == gender) + and (length_ratio <= max_length_ratio) # May be changed if case of phrases + and (distractor_lemma not in global_distractors) + and (edit_distance(lemma, distractor_lemma) # May be changed if case of phrases + / ((len(lemma) + len(distractor_lemma)) / 2) > min_edit_distance_ratio)): + if distractor_minimum is not None: + if distractor_lemma in distractor_minimum: + _distractors.append((distractor_text, candidate_distractor[1])) + global_distractors.add(distractor_lemma) + else: + _distractors.append((distractor_text, candidate_distractor[1])) + num_distractors = min(4, max_num_distractors) if max_num_distractors >= 4 else max_num_distractors + if len(_distractors) < num_distractors: + return None + return _distractors + + +def prepare_tasks(input_variants): + TASKS_STUDENT = '' + TASKS_TEACHER = '' + KEYS_ONLY = '' + RAW_TASKS = [] + RAW_KEYS_ONLY = [] + RESULT_TASKS_STUDENT = [] + TASKS_WITH_ANSWERS_L = [] + KEYS = [] + + for num, item in enumerate(input_variants): + item = item[0] + answer = item[0] + variants = '\t'.join(item[1]) + current_answer_letter = answer_letter(answer=answer, variants=item[1]) + RAW_TASKS.append((num + 1, variants)) + RAW_KEYS_ONLY.append((num + 1, current_answer_letter.split(' ')[0])) + RESULT_TASKS_STUDENT.append(f"{num + 1}.\t{variants}") + TASKS_WITH_ANSWERS_L.append(f"{num + 1}.\t" + f"Ответ: {current_answer_letter}\n\t" + f"Варианты: {variants}") + KEYS.append(f"{num + 1}.\tОтвет: {current_answer_letter}") + + for task in RESULT_TASKS_STUDENT: + TASKS_STUDENT += f'{task}\n' + for task in TASKS_WITH_ANSWERS_L: + TASKS_TEACHER += f'{task}\n' + for task in KEYS: + KEYS_ONLY += f'{task}\n' + + return {'TASKS_STUDENT': TASKS_STUDENT, 'TASKS_TEACHER': TASKS_TEACHER, + 'KEYS_ONLY': KEYS_ONLY, 'RAW_TASKS': RAW_TASKS, 'RAW_KEYS_ONLY': RAW_KEYS_ONLY} diff --git a/utilities_language_general/morphology.py b/utilities_language_general/morphology.py new file mode 100644 index 0000000000000000000000000000000000000000..d3904099f03a16886ab7cfe0c98b93d4421d0b6a --- /dev/null +++ b/utilities_language_general/morphology.py @@ -0,0 +1,318 @@ +import json + +# Load data and define globals +unstressed_vocals = tuple('aieou') +stressed_vocals = tuple('áíéóú') +all_vocals = unstressed_vocals + stressed_vocals +vocals_s = unstressed_vocals + ('á', 'é', 'ó',) +all_consonants = tuple('bcdfghjklmnñpqrstvwxzy') +consonants_es = tuple('lrndzjsxh') +consonants_s = tuple(cons for cons in all_consonants if cons not in consonants_es) + +with open('language_data/inflexions.json', 'r', encoding='utf-8') as f: + VERB_INFLECTIONS = json.load(f) +with open('language_data/irregular_verbs_list.json', 'r', + encoding='utf-8') as f: + ALL_IRREGULAR_VERBS = json.load(f) +with open('language_data/irregular_verbs.json', 'r', + encoding='utf-8') as f: + IRREGULAR_MODELS = json.load(f) + + +def multi_replace(tk, seq1=stressed_vocals, seq2=unstressed_vocals): + for i in range(len(seq1)): + tk = tk.replace(seq1[i], seq2[i]) + return tk + + +def pluralize_noun(lemma): + current_vocals = [char for char in lemma if char in all_vocals] + if lemma.endswith(vocals_s): + plural = lemma + 's' + elif lemma.endswith(('í', 'ú')): + if lemma == 'sí': + plural = lemma + 'es' + else: + plural = lemma + 's' + elif lemma.endswith(tuple('lrndzj')) and len(current_vocals) >= 3 and current_vocals[-3] in stressed_vocals: + plural = lemma + elif lemma.endswith(('s', 'x')) and len(current_vocals) > 1 and current_vocals[-1] in unstressed_vocals: + plural = lemma + elif (lemma[-2] in all_vocals and lemma.endswith('y')) \ + or (lemma.endswith(consonants_es) or lemma.endswith('ch')): + if lemma.endswith('z'): + plural = lemma[:-1] + 'ces' + else: + plural = lemma + 'es' + elif (lemma[-1] in all_consonants and lemma[-2] in all_consonants) or \ + (lemma[-2] in all_vocals and lemma.endswith(consonants_s)): + if lemma == 'club': + return 'clubes' + elif lemma == 'álbum': + return 'álbumes' + elif lemma.endswith(('st', 'zt')): + plural = lemma + else: + plural = lemma + 's' + else: + return None, 'Case not considered' + plural_vocals = [char for char in plural if char in all_vocals] + if lemma.endswith(('n', 's')) and current_vocals[-1] in stressed_vocals: + plural = multi_replace(plural) + elif lemma.endswith('n') and all([vocal in unstressed_vocals for vocal in current_vocals]) \ + and len(current_vocals) >= 3: + replacement = {'a': 'á', 'o': 'ó', 'e': 'é', 'u': 'ú', 'í': 'í'} + plural = plural.replace(plural_vocals[-3], replacement[plural_vocals[-3]]) + return plural + + +def pluralize_adjective(lemma, target_tags): + if lemma.endswith('e'): + return lemma + 's' + elif not any([lemma.endswith(_) for _ in all_vocals]): # if endswith a consonant + if lemma.endswith('z'): + return lemma[:-1] + 'ces' + elif lemma.endswith(('n', 's')) and any([_ in lemma for _ in stressed_vocals]): + if target_tags.get('Gender') == 'Masc': + return multi_replace(tk=(lemma + 'es')) + else: + return multi_replace(tk=(lemma + 'as')) + else: + return lemma + 'es' + elif target_tags.get('Number') == 'Sing' and target_tags.get('Gender') == 'Masc': + return lemma if not lemma.endswith('s') else lemma[:-1] + elif target_tags.get('Number') == 'Plur' and target_tags.get('Gender') == 'Masc': + return lemma + 's' + elif target_tags.get('Number') == 'Sing' and target_tags.get('Gender') == 'Fem': + lemma = lemma if not lemma.endswith('s') else lemma[:-1] + if lemma.endswith('a'): + return lemma + elif lemma.endswith('e'): + return lemma + return lemma + 'a' + elif target_tags.get('Number') == 'Plur' and target_tags.get('Gender') == 'Fem': + return lemma[:-1] + 'as' + + +def pronouns_and_determinants(lemma, target_tags): + if any([lemma.endswith(_) for _ in all_vocals]) and target_tags.get('Number') == 'Plur': + return lemma + 's' + elif any([lemma.endswith(_) for _ in all_vocals]) and target_tags.get('Number') == 'Sing': + return lemma + elif lemma.endswith('l'): + if target_tags.get('Number') == 'Sing' and target_tags.get('Gender') == 'Masc': + return lemma + 'lo' + elif target_tags.get('Number') == 'Plur' and target_tags.get('Gender') == 'Masc': + return lemma + 'los' + elif target_tags.get('Number') == 'Sing' and target_tags.get('Gender') == 'Fem': + return lemma + 'la' + elif target_tags.get('Number') == 'Plur' and target_tags.get('Gender') == 'Fem': + return lemma + 'las' + elif not any([lemma.endswith(_) for _ in all_vocals]): + return lemma + 'es' + + +def inflect_noun_adj_pron_det(lemma: str, target_pos: str, target_tags: dict) -> str or None: + try: + if target_pos in ('NOUN', 'PROPN'): + if target_tags.get('Number') == 'Sing': + return lemma + elif target_tags.get('Number') == 'Plur': + return pluralize_noun(lemma=lemma) + elif target_pos == 'ADJ': + return pluralize_adjective(lemma=lemma, target_tags=target_tags) + elif target_pos == 'DET' or target_pos == 'PRON': + return pronouns_and_determinants(lemma=lemma, target_tags=target_tags) + except KeyError: + return None + + +def add_inflection(lemma, stem, mood, conjugation, tense, person_number, inflections=VERB_INFLECTIONS): + if conjugation in ('0', 0): + return None + conjugation = str(conjugation) + if mood == 'Cnd': + return lemma + inflections[mood][person_number] + if mood == 'Imp': + return stem + inflections[mood][conjugation][person_number] + if tense == 'Fut': + return lemma + inflections['Ind'][tense][person_number] + else: + inflection = stem + inflections[mood][tense][conjugation][person_number] + if inflection.endswith('go'): + inflection = inflection[:-2] + 'jo' + return inflection + + +def irregular(lemma, stem, conjugation, mood, tense, person_number, irregular_models=IRREGULAR_MODELS): + conj = lemma[-2:] + if mood in ('Imp', 'Cnd'): + suppletive_models = irregular_models[mood] + elif mood in ('Ind', 'Sub') and tense: + suppletive_models = irregular_models[mood][tense] + else: + return 0 + for model, verbs_and_tags in suppletive_models.items(): + verbs = verbs_and_tags['verbs'] + affected_tags = verbs_and_tags['affected_tags'] + if lemma in verbs and person_number in affected_tags: + index, inside, *replacement = model.split('--') + replacement = replacement[0] if len(replacement) == 1 else [] + if int(index) in (1, 11): + stem = stem[::-1].replace(inside, replacement[::-1], 1)[::-1] + stem = 'jueg' if lemma == 'jugar' else stem + inflection = add_inflection(lemma=stem + conj, stem=stem, mood=mood, conjugation=conjugation, + tense=tense, person_number=person_number) + return inflection + elif int(index) == 7: + stem = stem[::-1].replace(inside, replacement[::-1], 1)[::-1] + inflection = add_inflection(lemma=stem + conj, stem=stem, mood=mood, conjugation=conjugation, + tense=tense, person_number=person_number) + if (tense == 'Past' and mood == 'Ind') or (tense == 'Imp' and mood == 'Sub'): + inflection = inflection.replace('ují', 'uje').replace('ujió', 'ujo') \ + .replace('uji', 'uj').replace('ujié', 'ujé').replace('jm', 'jim').replace('js', 'jis') + return inflection + elif int(index) == 9: + if ((tense == 'Pres' or tense == 'Past') and mood == 'Ind') or mood == 'Sub': + stem = stem + 'y' + inflection = add_inflection(lemma=stem + conj, stem=stem, mood=mood, conjugation=conjugation, + tense=tense, person_number=person_number) + return inflection.replace('uyi', 'uy').replace('uyi', 'uy') + elif int(index) == 8: + inflection = add_inflection(lemma=stem + conj, stem=stem, mood=mood, conjugation=conjugation, + tense=tense, person_number=person_number) + return inflection.replace('ñi', 'ñ').replace('lli', 'll') + elif int(index) == 10: + return verbs.get(lemma).get(person_number) + + +def conjugate_final_form(lemma, stem, conjugation, mood, tense, person_number): + if '_' in lemma: + lemma = lemma.split('_')[-1] + if lemma in ALL_IRREGULAR_VERBS: + inflection = irregular(lemma=lemma, stem=stem, conjugation=conjugation, + mood=mood, tense=tense, person_number=person_number) + if inflection is None: + inflection = add_inflection(lemma=lemma, stem=stem, conjugation=conjugation, + mood=mood, tense=tense, person_number=person_number) + elif inflection == 0: + return None + else: + inflection = add_inflection(lemma=lemma, stem=stem, conjugation=conjugation, + mood=mood, tense=tense, person_number=person_number) + return inflection + + +def past_participle(lemma, conjugation, gender_number, irregular_model=IRREGULAR_MODELS): + model = irregular_model['Participle']['10--super--exception']['verbs'] + if lemma in model: + stem = model.get(lemma)[:-1] + suffix = '' + else: + stem = lemma[:-2] + suffix = 'ad' if conjugation == 1 else 'id' + if gender_number == 'MascSing': + ending = 'o' + else: + if gender_number == 'MascPlur': + ending = 'os' + else: + ending = 'a' if gender_number == 'FemSing' else 'as' + participle = stem + suffix + ending + return participle.replace('iid', 'id') + + +def conjugate_complex_tenses(verb_lemma, verb_conjugation, haber_mood, haber_tense, haber_person_number): + verb_past_participle = past_participle(lemma=verb_lemma, conjugation=verb_conjugation, gender_number='MascSing') + aux_verb = conjugate_final_form(lemma='haber', stem='hab', conjugation=2, + mood=haber_mood, tense=haber_tense, person_number=haber_person_number) + return f'{aux_verb} {verb_past_participle}' + + +def gerund_simple(lemma, stem, conjugation): + if (stem.endswith(all_vocals) or lemma == 'ir') and conjugation != 1: + return stem + 'yendo' + else: + return stem + 'ando' if conjugation == 1 else stem + 'iendo' + + +def gerund(lemma, irregular_models=IRREGULAR_MODELS['Gerund']): + stem = lemma[:-2] + if lemma[-2:] == 'ar': + conjugation = 1 + else: + if lemma[-2:] == 'er': + conjugation = 2 + else: + if lemma[-2:] == 'ir' or lemma[-2:] == 'ír': + conjugation = 3 + else: + conjugation = 0 + if lemma not in ALL_IRREGULAR_VERBS: + return gerund_simple(lemma=lemma, stem=stem, conjugation=conjugation) + else: + for model, verbs in irregular_models.items(): + if lemma in verbs['verbs']: + index, inside, *replacement = model.split('--') + replacement = replacement[0] if len(replacement) == 1 else [] + if int(index) == 9: + return gerund_simple(lemma=lemma, stem=stem, conjugation=conjugation).replace('iyendo', 'iendo') + elif int(index) == 8: + return gerund_simple(lemma=lemma, stem=stem, conjugation=conjugation) \ + .replace('ñi', 'ñ').replace('lli', 'll') + elif int(index) == 10: + return verbs['verbs'][lemma] + stem = stem[::-1].replace(inside, replacement[::-1], 1)[::-1] + return gerund_simple(lemma=lemma, stem=stem, conjugation=conjugation).replace('iyendo', 'iendo') + return gerund_simple(lemma=lemma, stem=stem, conjugation=conjugation) + + +def verb_inflexions(lemma, target_pos, target_tags): + if '_' in lemma: + lemma = lemma.split('_')[-1] + stem = lemma[:-2] + if lemma[-2:] == 'ar': + conjugation = 1 + else: + if lemma[-2:] == 'er': + conjugation = 2 + else: + if lemma[-2:] == 'ir' or lemma[-2:] == 'ír': + conjugation = 3 + else: + conjugation = 0 + person_number = str(target_tags.get('Person')) + str(target_tags.get('Number')) + gender_number = str(target_tags.get('Gender')) + str(target_tags.get('Number')) + verb_form = target_tags.get('VerbForm') + mood = target_tags.get('Mood') + tense = target_tags.get('Tense') + if target_pos in ('VERB', 'AUX', 'ADJ', 'phrase'): + if verb_form == 'Inf': + return lemma + elif verb_form == 'Ger': + return gerund(lemma=lemma) + elif verb_form == 'Fin': + # print('FIN') + return conjugate_final_form(lemma=lemma, stem=stem, conjugation=conjugation, + mood=mood, tense=tense, person_number=person_number, ) + elif verb_form == 'Part': + return past_participle(lemma=lemma, conjugation=conjugation, gender_number=gender_number) + elif verb_form == 'Compuesto': + # print('COMP') + return conjugate_complex_tenses(verb_lemma=lemma, verb_conjugation=conjugation, haber_mood=mood, + haber_tense=tense, haber_person_number=person_number) + else: + return None + return None + + +def inflect(lemma, target_pos, target_tags): + verb_form = target_tags.get('VerbForm') + if (target_pos == 'VERB' + or (target_pos == 'ADJ' and verb_form == 'Part') + or (target_pos == 'phrase' and verb_form == 'Compuesto')): + return verb_inflexions(lemma=lemma, target_pos=target_pos, target_tags=target_tags) + elif target_pos in ('NOUN', 'PROPN', 'ADJ', 'DET', 'PRON'): + return inflect_noun_adj_pron_det(lemma=lemma, target_pos=target_pos, target_tags=target_tags) + else: + return None diff --git a/utilities_language_w2v/esp_main_workflow_w2v.py b/utilities_language_w2v/esp_main_workflow_w2v.py new file mode 100644 index 0000000000000000000000000000000000000000..ac7b7dd167b3a845c207510463f03ffed9ce0d4a --- /dev/null +++ b/utilities_language_w2v/esp_main_workflow_w2v.py @@ -0,0 +1,266 @@ +import datetime +from io import StringIO +from random import sample +from collections import defaultdict +from streamlit import progress as st_progress +from streamlit.elements import WIDGETS as ST_WIDGETS +from utilities_language_general.esp_constants import st +from utilities_language_w2v.esp_sentence_w2v import TASK +from utilities_language_w2v.esp_sentence_w2v import SENTENCE +from utilities_language_general.esp_constants import load_w2v +from utilities_language_general.esp_utils import prepare_tasks +from streamlit.runtime.uploaded_file_manager import UploadedFile +import utilities_language_general.esp_constants as esp_constants +from utilities_language_general.esp_constants import all_model_path +from utilities_language_general.esp_constants import lit_model_path +from utilities_language_general.esp_constants import news_model_path +from utilities_language_general.esp_utils import prepare_target_words +from utilities_language_general.esp_utils import compute_frequency_dict +from utilities_language_general.esp_constants import BAD_USER_TARGET_WORDS + + +def main_workflow( + file: UploadedFile or None, + text: str, + logs: ST_WIDGETS, + logs_d: ST_WIDGETS, + progress: st_progress, + progress_d: st_progress, + progress_s: st_progress, + level: str, + tw_mode_automatic_mode: str, + target_words: str, + num_distractors: int, + save_name: str, + distractor_model, + global_bad_target_words=BAD_USER_TARGET_WORDS): + """ + This is the main course of the program. + All processes and changes take place here. + Partially works with the interface, displaying the success messages and download buttons. + + :param file: user's file to generate tasks in + :param text: user's text input to generate tasks in + :param logs: widget to output logs to + :param logs_d: show how many distractors already processed + :param progress: progress bar + :param progress_d: distractors progress bar + :param progress_s: sentences progress bar + :param target_words: how target words are chosen: by user or automatically + :param tw_mode_automatic_mode: + :param level: user's specification of CEFR level of text + :param num_distractors: how many distractors does the user want the task to contain + :param save_name: user specifies name to save file in cloud + :param global_bad_target_words:global_bad_target_words + :param distractor_model which semantic model is used to find distractors + :return: Dictionary with output data: filename, amount_mode, text_with_gaps, tasks_as_list, correct_answers, + student_out, teacher_out, total_out, original_text + """ + # Clear bad target_words each time + global_bad_target_words = [] + + # Define main global variables + logs.write() + GLOBAL_DISTRACTORS = set() + MAX_FREQUENCY = 0 + + # Define which model is used for distractor generation + if distractor_model == 'Худ. лит-ра': + mask_filler = load_w2v(lit_model_path) + elif distractor_model == 'Новости': + mask_filler = load_w2v(news_model_path) + else: + mask_filler = load_w2v(all_model_path) + + # Get input text + if file is not None: + stringio = StringIO(file.getvalue().decode("utf-8")) + current_text = stringio.read() + elif text != '': + current_text = text + else: + esp_constants.st.warning('Вы и текст не вставили, и файл не выбрали 😢') + current_text = '' + esp_constants.st.stop() + + # Process target words + if tw_mode_automatic_mode == 'Самостоятельно': + if target_words == '': + esp_constants.st.warning('Вы не ввели целевые слова') + esp_constants.st.stop() + # Cannot make up paradigm, so only USER_TARGET_WORDS is used + USER_TARGET_WORDS = prepare_target_words(target_words) + tw_mode_automatic_mode = False + else: + USER_TARGET_WORDS = None + tw_mode_automatic_mode = True + + # Text preprocessing + original_text = current_text + current_text = current_text.replace('.', '. ').replace('. . .', '...').replace(' ', ' ').replace('…', '...') \ + .replace('…', '...').replace('—', '-').replace('\u2014', '-').replace('—', '-').replace('-\n', '') \ + .replace('\n', '%^&*') + current_text_sentences = [sent.text.strip() for sent in esp_constants.nlp(current_text).sents] + logs.success('Получили Ваш текст!') + progress.progress(10) + print(current_text_sentences) + + # Compute frequency dict + FREQ_DICT = compute_frequency_dict(current_text) + + # Get maximum frequency (top 5% barrier) + _frequency_barrier_percent = 0.05 + for j, tp in enumerate(FREQ_DICT.items()): + if j < len(FREQ_DICT) * _frequency_barrier_percent: + MAX_FREQUENCY = tp[1] + MAX_FREQUENCY = 3 if MAX_FREQUENCY < 3 else MAX_FREQUENCY + logs.success("Посчитали немного статистики!") + progress.progress(15) + + # Choose necessary language minimum according to user's input + if level == 'A1': + target_minimum = esp_constants.a1_target_set + distractor_minimum = esp_constants.a1_distractor_set + elif level == 'A2': + target_minimum = esp_constants.a2_target_set + distractor_minimum = esp_constants.a2_distractor_set + elif level == 'B1': + target_minimum = esp_constants.b1_target_set + distractor_minimum = esp_constants.b1_distractor_set + elif level == 'B2': + target_minimum = esp_constants.b2_target_set + distractor_minimum = esp_constants.b2_distractor_set + elif level == 'C1': + target_minimum = esp_constants.c1_target_set + distractor_minimum = esp_constants.c1_distractor_set + elif level == 'C2': + target_minimum = esp_constants.c2_target_set + distractor_minimum = esp_constants.c2_distractor_set + elif level == 'Нет': + target_minimum = None + distractor_minimum = None + else: + target_minimum = None + distractor_minimum = None + logs.error('Вы не выбрали языковой уровень!') + st.stop() + print('LEVEL SUCCESS') + # Start generation process + workflow = [SENTENCE(original=sent.strip(), n_sentence=num, max_num_distractors=num_distractors) + for num, sent in enumerate(current_text_sentences)] + logs.success("Запускаем процесс генерации заданий!") + progress.progress(20) + + for sentence in workflow: + sentence.lemmatize_sentence() + + for sentence in workflow: + sentence.bind_phrases() + logs.success("Подготовили предложения для дальнейшей работы!") + progress.progress(30) + + for j, sentence in enumerate(workflow): + sentence.search_target_words(model=mask_filler, + target_words_automatic_mode=tw_mode_automatic_mode, + target_minimum=target_minimum, + user_target_words=USER_TARGET_WORDS, + frequency_dict=FREQ_DICT) + progress.progress(int(30 + (j * (30 / len(workflow))))) + progress_s.progress(60) + DUPLICATE_TARGET_WORDS = defaultdict(list) + for sentence in workflow: + for target_word in sentence.target_words: + DUPLICATE_TARGET_WORDS[target_word['lemma']].append(target_word) + RESULT_TW = [] + for tw_lemma, tw_data in DUPLICATE_TARGET_WORDS.items(): + RESULT_TW.append(sample(tw_data, 1)[0]) + for sentence in workflow: + for target_word in sentence.target_words: + if target_word not in RESULT_TW: + global_bad_target_words.append(target_word['original_text']) + sentence.target_words.remove(target_word) + progress_s.progress(65) + logs.success('Выбрали слова-пропуски!') + + for sentence in workflow: + sentence.attach_distractors_to_target_word(model=mask_filler, + global_distractors=GLOBAL_DISTRACTORS, + distractor_minimum=distractor_minimum, + level_name=level, + max_frequency=MAX_FREQUENCY, + progress=progress_d, + logs=logs_d) + progress_s.progress(70) + logs.success('Подобрали неправильные варианты!') + for sentence in workflow: + sentence.inflect_distractors() + print(sentence.target_words) + progress_s.progress(80) + logs.success('Просклоняли и проспрягали неправильные варианты!') + + for sentence in workflow: + sentence.filter_target_words(target_words_automatic_mode=tw_mode_automatic_mode) + + for sentence in workflow: + sentence.sample_distractors(num_distractors=num_distractors) + progress_s.progress(90) + logs.success('Отобрали лучшие задания!') + + RESULT_TASKS = [] + for sentence in workflow: + for target_word in sentence.target_words: + task = TASK(task_data=target_word) + RESULT_TASKS.append(task) + del workflow + + # Compute number of final tasks + if len(RESULT_TASKS) >= 20: + NUMBER_TASKS = 20 + else: + if len(RESULT_TASKS) >= 15: + NUMBER_TASKS = 15 + else: + if len(RESULT_TASKS) >= 10: + NUMBER_TASKS = 10 + else: + NUMBER_TASKS = len(RESULT_TASKS) + RESULT_TASKS = sample(RESULT_TASKS, NUMBER_TASKS) + RESULT_TASKS = sorted(RESULT_TASKS, key=lambda t: (t.sentence_number, t.position_in_sentence)) + + for task in RESULT_TASKS: + task.compile_task(max_num_distractors=num_distractors) + + TEXT_WITH_GAPS = [] + VARIANTS = [] + tasks_counter = 1 + for i, sentence in enumerate(current_text_sentences): + for task in filter(lambda t: t.sentence_number == i, RESULT_TASKS): + sentence = sentence.replace(task.original_text, f'__________({tasks_counter})') + VARIANTS.append(task.variants) + tasks_counter += 1 + TEXT_WITH_GAPS.append(sentence) + del RESULT_TASKS + + TEXT_WITH_GAPS = ' '.join([sentence for sentence in TEXT_WITH_GAPS]).replace('%^&*', '\n') + PREPARED_TASKS = prepare_tasks(VARIANTS) + STUDENT_OUT = f'{TEXT_WITH_GAPS}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_STUDENT"]}' + TEACHER_OUT = f'{TEXT_WITH_GAPS}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_TEACHER"]}\n\n{"=" * 70}\n\n' \ + f'{PREPARED_TASKS["KEYS_ONLY"]}' + TOTAL_OUT = f'{original_text}\n\n{"$" * 70}\n\n{STUDENT_OUT}\n\n{"=" * 70}\n\n{PREPARED_TASKS["TASKS_TEACHER"]}' \ + f'\n\n{"$" * 70}\n\n{PREPARED_TASKS["KEYS_ONLY"]}' + logs.success('Сейчас все будет готово!') + progress_s.progress(90) + save_name = save_name if save_name != '' else f'{str(datetime.datetime.now())[:-7]}_{original_text[:20]}' + out = { + 'name': save_name, + 'STUDENT_OUT': STUDENT_OUT, + 'TEACHER_OUT': TEACHER_OUT, + 'TEXT_WITH_GAPS': TEXT_WITH_GAPS, + 'TASKS_ONLY': PREPARED_TASKS["RAW_TASKS"], + 'KEYS_ONLY': PREPARED_TASKS["KEYS_ONLY"], + 'KEYS_ONLY_RAW': PREPARED_TASKS["RAW_KEYS_ONLY"], + 'TOTAL_OUT': TOTAL_OUT, + 'ORIGINAL': original_text, + 'BAD_USER_TARGET_WORDS': sorted(set(global_bad_target_words)) + } + return out diff --git a/utilities_language_w2v/esp_sentence_w2v.py b/utilities_language_w2v/esp_sentence_w2v.py new file mode 100644 index 0000000000000000000000000000000000000000..22eefcb25ba6b896008debc0182797fb382ae589 --- /dev/null +++ b/utilities_language_w2v/esp_sentence_w2v.py @@ -0,0 +1,252 @@ +import string +from random import random +from random import sample +from utilities_language_general.esp_constants import nlp +from utilities_language_general.morphology import inflect +from utilities_language_general.esp_utils import check_token +from utilities_language_general.esp_constants import PHRASES +from utilities_language_general.esp_utils import fix_irregular_lemma +from utilities_language_general.esp_constants import BAD_USER_TARGET_WORDS +from utilities_language_general.esp_utils import get_distractors_from_model + + +class SENTENCE: + def __init__(self, original: str, n_sentence: int, max_num_distractors): + self.original = original + self.n_sentence = n_sentence + self.max_num_distractors = max_num_distractors + self.parsed = nlp(self.original) + self.sentence_lemma_pos = [] + self.sentence_phrases = [] + self.target_words = [] + + def lemmatize_sentence(self): + for token in self.parsed: + lemma_pos = f'{token.lemma_}_{token.pos_}' + if token.pos_ in ('AUX', 'VERB', 'ADJ'): + lemma_pos = fix_irregular_lemma(lemma=lemma_pos) + self.sentence_lemma_pos.append((lemma_pos, token)) + + def bind_phrases(self): + previous_was_phrase = False + for i in range(len(self.sentence_lemma_pos) - 1): + phrase_candidate = f'{self.sentence_lemma_pos[i][0]}_{self.sentence_lemma_pos[i + 1][0]}' + if phrase_candidate in PHRASES and not previous_was_phrase: + # phrase is {phrase: {original_token1: spacy.token, original_token2: spacy.token}} + phrase = [ + f'{self.sentence_lemma_pos[i][0]}_{self.sentence_lemma_pos[i + 1][0]}', + { + 'original_token1': self.sentence_lemma_pos[i][1], + 'original_token2': self.sentence_lemma_pos[i + 1][1] + } + ] + self.sentence_phrases.append(phrase) + previous_was_phrase = True + else: + if not previous_was_phrase: + self.sentence_phrases.append(self.sentence_lemma_pos[i][1]) + previous_was_phrase = False + + def search_target_words_automatically(self, model, target_minimum: set, frequency_dict: dict = None): + for token in self.sentence_phrases: + if isinstance(token, list): # if token is a phrase + original_token1 = token[1]['original_token1'] + original_token2 = token[1]['original_token2'] + original_token1_tags = original_token1.morph.to_dict() + original_token2_tags = original_token2.morph.to_dict() + tags = dict() + if ('haber_AUX' == f'{original_token1.lemma_}_{original_token1.pos_}' + and original_token2.pos_ in ('VERB', 'ADJ', 'AUX')): + tags['VerbForm'] = 'Compuesto' + tags['Mood'] = original_token1_tags.get('Mood') + tags['Tense'] = original_token1_tags.get('Tense') + tags['Person'] = original_token1_tags.get('Person') + tags['Number'] = original_token1_tags.get('Number') + tags['Gender'] = None + else: + tags = original_token1_tags | original_token2_tags + not_ner = True if (original_token1.ent_type == 0 and original_token2.ent_type == 0) else False + target_word = { + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': f'{original_token1.text} {original_token2.text}', + 'lemma': token[0], + 'pos': 'phrase', + 'gender': tags.get('Gender'), + 'tags': tags, + 'position_in_sentence': self.original.find(original_token1.text), + 'not_named_entity': not_ner, + 'frequency_in_text': 0 + } + self.target_words.append(target_word) + else: # if token is just a spacy.nlp token + if check_token(model=model, token=token, lemma_pos='auto', current_minimum=target_minimum): + tags = token.morph.to_dict() + target_word = { + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': token.text, + 'lemma': token.lemma_, + 'pos': token.pos_, + 'gender': tags.get('Gender'), + 'number_children': len([child for child in token.children]), + 'tags': tags, + 'position_in_sentence': self.original.find(token.text), + 'not_named_entity': True if token.ent_type == 0 else False, + 'frequency_in_text': frequency_dict.get(token.lemma_, 1), + } + self.target_words.append(target_word) + + def search_user_target_words(self, model, user_target_words: set = None, frequency_dict: dict = None): + for _utw in user_target_words: + if _utw in self.original: + parse_utw = nlp(_utw) + if ' ' in _utw: + tags = dict() + if ('haber_AUX' == f'{parse_utw[0].lemma_}_{parse_utw[0].pos_}' + and parse_utw[1].pos_ in ('VERB', 'ADJ', 'AUX')): + tags['VerbForm'] = 'Compuesto' + tags['Mood'] = parse_utw[0].morph.to_dict().get('Mood') + tags['Tense'] = parse_utw[0].morph.to_dict().get('Tense') + tags['Person'] = parse_utw[0].morph.to_dict().get('Person') + tags['Number'] = parse_utw[0].morph.to_dict().get('Number') + tags['Gender'] = None + else: + tags = parse_utw[0].morph.to_dict() | parse_utw[1].morph.to_dict() + user_target_word_lemma = '_'.join([f'{token.lemma_}_{token.pos_}' for token in parse_utw]) + user_target_word_pos = 'phrase' + user_target_word_tags = tags + not_ner = True if (parse_utw[0].ent_type == 0 and parse_utw[1].ent_type == 0) else False + else: + user_target_word_lemma = f'{parse_utw[0].lemma_}_{parse_utw[0].pos_}' + user_target_word_pos = parse_utw[0].pos_ + user_target_word_tags = parse_utw[0].morph.to_dict() + not_ner = parse_utw[0].ent_type == 0 + target_word = { + 'sentence_number': self.n_sentence, + 'sentence_text': self.original, + 'original_text': _utw, + 'lemma': user_target_word_lemma, + 'pos': user_target_word_pos, + 'gender': user_target_word_tags.get('Gender'), + 'tags': user_target_word_tags, + 'position_in_sentence': self.original.find(_utw), + 'not_named_entity': not_ner, + 'frequency_in_text': frequency_dict.get(user_target_word_lemma, 1) + } + if not (model.has_index_for(user_target_word_lemma) + or model.has_index_for(f'{user_target_word_lemma}_{user_target_word_pos}')): + BAD_USER_TARGET_WORDS.append(_utw) + else: + self.target_words.append(target_word) + + def search_target_words(self, model, target_words_automatic_mode: bool, target_minimum, + user_target_words: set = None, frequency_dict: dict = None): + if target_words_automatic_mode: + self.search_target_words_automatically(model=model, target_minimum=target_minimum, + frequency_dict=frequency_dict) + else: + self.search_user_target_words(model=model, user_target_words=user_target_words, + frequency_dict=frequency_dict) + + def attach_distractors_to_target_word(self, model, global_distractors, distractor_minimum, level_name, + max_frequency, progress, logs): + n_target_words = len(self.target_words) + bad_target_words = [] + for i, target_word in enumerate(self.target_words): + distractors = get_distractors_from_model(model, lemma=target_word['lemma'], pos=target_word['pos'], + gender=target_word['gender'], level_name=level_name, + global_distractors=global_distractors, + distractor_minimum=distractor_minimum, + max_num_distractors=self.max_num_distractors) + if distractors is None or target_word['frequency_in_text'] > max_frequency: + target_word['distractors'] = distractors + bad_target_words.append(target_word) + target_word['distractors'] = distractors + target_word['distractors_number'] = len(distractors) if distractors is not None else 0 + progress.progress(i / n_target_words) + logs.success(f'Обработали {i}/{n_target_words} слов в {self.n_sentence + 1}-м предложении') + for btw in bad_target_words: + BAD_USER_TARGET_WORDS.append(btw['original_text']) + self.target_words.remove(btw) + progress.progress(100) + logs.success( + f'Обработали {n_target_words}/{n_target_words} слов в {self.n_sentence + 1}-м предложении') + + def inflect_distractors(self): + bad_target_words = [] + for target_word in self.target_words: + inflected_distractors = [] + for distractor_lemma, distractor_similarity in target_word['distractors']: + if distractor_lemma.count('_') > 1: + if distractor_lemma.startswith('haber_'): + distractor_lemma = distractor_lemma.split('_')[-2] + inflected = inflect(lemma=distractor_lemma, target_pos=target_word['pos'], + target_tags=target_word['tags']) + else: + continue + else: + inflected = inflect(lemma=distractor_lemma, target_pos=target_word['pos'], + target_tags=target_word['tags']) + if inflected is not None: + inflected_distractors.append(inflected) + num_distractors = min(4, self.max_num_distractors) if self.max_num_distractors >= 4 \ + else self.max_num_distractors + if len(inflected_distractors) < num_distractors: + bad_target_words.append(target_word) + else: + target_word['inflected_distractors'] = inflected_distractors + for btw in bad_target_words: + BAD_USER_TARGET_WORDS.append(btw['original_text']) + self.target_words.remove(btw) + + def filter_target_words(self, target_words_automatic_mode): + c_position = 0 + bad_target_words = [] + for target_word in self.target_words: + position_difference = 3 if target_words_automatic_mode else 0 + if not (target_word['position_in_sentence'] == 0 + or abs(target_word['position_in_sentence'] - c_position) >= position_difference): + bad_target_words.append(target_word) + for btw in bad_target_words: + BAD_USER_TARGET_WORDS.append(btw['original_text']) + self.target_words.remove(btw) + + def sample_distractors(self, num_distractors): + for target_word in self.target_words: + len_inflected_distractors = len(target_word['inflected_distractors']) + num_distractors = min(len_inflected_distractors, num_distractors) \ + if num_distractors >= 4 else num_distractors + target_word['inflected_distractors'] = sample(target_word['inflected_distractors'][:min( + len_inflected_distractors, 10)], num_distractors) + + +class TASK: + def __init__(self, task_data): + self.task_data = task_data + + self.original_text = None + self.sentence_text = None + self.inflected_distractors = None + self.sentence_number = task_data['sentence_number'] + self.position_in_sentence = task_data['position_in_sentence'] + self.result = '' + self.variants = [] + for key, value in task_data.items(): + self.__setattr__(key, value) + + def __repr__(self): + return '\n'.join([f'{key}\t=\t{value}' for key, value in self.__dict__.items()]) + + def compile_task(self, max_num_distractors): + len_distractors = len(self.inflected_distractors) + len_variants = min(len_distractors, max_num_distractors) if max_num_distractors > 4 \ + else max_num_distractors + letters = (f'({letter})' for letter in string.ascii_lowercase[:len_variants + 1]) + try: + distractors = sample(self.inflected_distractors, len_variants) + [self.original_text, ] + except ValueError: + distractors = self.inflected_distractors + [self.original_text, ] + self.variants.append( + (self.original_text, [f'{item[0]} {item[1].replace("_", " ")}' + for item in zip(letters, sorted(distractors, key=lambda _: random()))])) diff --git a/utilities_option_menu/__pycache__/option_menu.cpython-310.pyc b/utilities_option_menu/__pycache__/option_menu.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c90c264e96a67c2d06e02c8ff4e507f503249148 Binary files /dev/null and b/utilities_option_menu/__pycache__/option_menu.cpython-310.pyc differ diff --git a/utilities_option_menu/frontend/dist/css/app.e7a740d2.css b/utilities_option_menu/frontend/dist/css/app.e7a740d2.css new file mode 100644 index 0000000000000000000000000000000000000000..92c1ee9b127f0096261bb1030921e50b95f6908f --- /dev/null +++ b/utilities_option_menu/frontend/dist/css/app.e7a740d2.css @@ -0,0 +1 @@ +.icon[data-v-4323f8ce]{font-size:1rem;margin-right:.5rem}.menu hr[data-v-4323f8ce]{margin-top:.5rem;margin-bottom:.5rem}.menu .container-xxl[data-v-4323f8ce]{background-color:var(--secondary-background-color);border-radius:.5rem}.menu-title[data-v-4323f8ce]{margin-left:.75rem;margin-right:.75rem}.menu-title .icon[data-v-4323f8ce],.menu-title[data-v-4323f8ce]{font-size:1.5rem}.menu-title .icon[data-v-4323f8ce]{margin-right:.75rem}.menu-title[data-v-4323f8ce],.menu .nav-item[data-v-4323f8ce],.menu .nav-link[data-v-4323f8ce],hr[data-v-4323f8ce]{color:var(--text-color)}.nav-link.active[data-v-4323f8ce]{color:#fff}.nav-link[data-v-4323f8ce]:hover{background-color:var(--hover-color)}.nav-link-hover[data-v-4323f8ce]:hover{background-color:inherit}.menu .nav-link[data-v-4323f8ce]{margin-top:.25rem;margin-bottom:.25rem;padding-top:.5rem;padding-bottom:.5rem}.menu .nav-link-horizontal[data-v-4323f8ce]{padding-top:.25rem;padding-bottom:.25rem}.p-h[data-v-4323f8ce]{padding:.5rem .75rem}.container .flex-column[data-v-4323f8ce]{padding-top:.25rem}.menu .nav-item .nav-link.active[data-v-4323f8ce]{background-color:var(--primary-color)}.nav-link.active+.icon[data-v-4323f8ce],.nav-link.active[data-v-4323f8ce]{font-weight:900}.vr[data-v-4323f8ce]{width:1px;height:80%}.err__msg[data-v-bef81972],.err__title[data-v-bef81972]{margin:0}body{margin:0}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50} diff --git a/utilities_option_menu/frontend/dist/css/chunk-vendors.df4470f9.css b/utilities_option_menu/frontend/dist/css/chunk-vendors.df4470f9.css new file mode 100644 index 0000000000000000000000000000000000000000..00d4cab5675ba2f7e0b92c3b071b031f15b81653 --- /dev/null +++ b/utilities_option_menu/frontend/dist/css/chunk-vendors.df4470f9.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,0.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-0.5*var(--bs-gutter-x));margin-left:calc(-0.5*var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*0.5);padding-left:calc(var(--bs-gutter-x)*0.5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0,0,0,0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0,0,0,0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0,0,0,0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:50%;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:brightness(90%);filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3E%3C/svg%3E")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0, 0, 0, 0.25)'/%3E%3C/svg%3E");background-position:0;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386b7fe'/%3E%3C/svg%3E")}.form-switch .form-check-input:checked{background-position:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;-webkit-filter:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:hsla(0,0%,100%,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:50%;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler,.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler,.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler,.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler,.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler,.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler,.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.55);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.5rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed):after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 01.708 0L8 10.293l5.646-5.647a.5.5 0 01.708.708l-6 6a.5.5 0 01-.708 0l-6-6a.5.5 0 010-.708z'/%3E%3C/svg%3E");transform:rotate(-180deg)}.accordion-button:after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 01.708 0L8 10.293l5.646-5.647a.5.5 0 01.708.708l-6 6a.5.5 0 01-.708 0l-6-6a.5.5 0 010-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider,"/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3E%3C/svg%3E") 50%/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{-webkit-filter:invert(1) grayscale(100%) brightness(200%);filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M11.354 1.646a.5.5 0 010 .708L5.707 8l5.647 5.646a.5.5 0 01-.708.708l-6-6a.5.5 0 010-.708l6-6a.5.5 0 01.708 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M4.646 1.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708-.708L10.293 8 4.646 2.354a.5.5 0 010-.708z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{-webkit-filter:invert(1) grayscale(100);filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom,.offcanvas-top{right:0;left:0;height:30vh;max-height:100%}.offcanvas-bottom{border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix:after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{flex-direction:row;align-items:center}.hstack,.vstack{display:flex;align-self:stretch}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-end,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:.25rem!important}.rounded-start{border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}@font-face{font-family:bootstrap-icons;src:url(../fonts/bootstrap-icons.c5787b4a.woff2) format("woff2"),url(../fonts/bootstrap-icons.b0dc2193.woff) format("woff")}.bi:before,[class*=" bi-"]:before,[class^=bi-]:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123:before{content:"\f67f"}.bi-alarm-fill:before{content:"\f101"}.bi-alarm:before{content:"\f102"}.bi-align-bottom:before{content:"\f103"}.bi-align-center:before{content:"\f104"}.bi-align-end:before{content:"\f105"}.bi-align-middle:before{content:"\f106"}.bi-align-start:before{content:"\f107"}.bi-align-top:before{content:"\f108"}.bi-alt:before{content:"\f109"}.bi-app-indicator:before{content:"\f10a"}.bi-app:before{content:"\f10b"}.bi-archive-fill:before{content:"\f10c"}.bi-archive:before{content:"\f10d"}.bi-arrow-90deg-down:before{content:"\f10e"}.bi-arrow-90deg-left:before{content:"\f10f"}.bi-arrow-90deg-right:before{content:"\f110"}.bi-arrow-90deg-up:before{content:"\f111"}.bi-arrow-bar-down:before{content:"\f112"}.bi-arrow-bar-left:before{content:"\f113"}.bi-arrow-bar-right:before{content:"\f114"}.bi-arrow-bar-up:before{content:"\f115"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down-circle-fill:before{content:"\f118"}.bi-arrow-down-circle:before{content:"\f119"}.bi-arrow-down-left-circle-fill:before{content:"\f11a"}.bi-arrow-down-left-circle:before{content:"\f11b"}.bi-arrow-down-left-square-fill:before{content:"\f11c"}.bi-arrow-down-left-square:before{content:"\f11d"}.bi-arrow-down-left:before{content:"\f11e"}.bi-arrow-down-right-circle-fill:before{content:"\f11f"}.bi-arrow-down-right-circle:before{content:"\f120"}.bi-arrow-down-right-square-fill:before{content:"\f121"}.bi-arrow-down-right-square:before{content:"\f122"}.bi-arrow-down-right:before{content:"\f123"}.bi-arrow-down-short:before{content:"\f124"}.bi-arrow-down-square-fill:before{content:"\f125"}.bi-arrow-down-square:before{content:"\f126"}.bi-arrow-down-up:before{content:"\f127"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left-circle-fill:before{content:"\f129"}.bi-arrow-left-circle:before{content:"\f12a"}.bi-arrow-left-right:before{content:"\f12b"}.bi-arrow-left-short:before{content:"\f12c"}.bi-arrow-left-square-fill:before{content:"\f12d"}.bi-arrow-left-square:before{content:"\f12e"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-return-left:before{content:"\f131"}.bi-arrow-return-right:before{content:"\f132"}.bi-arrow-right-circle-fill:before{content:"\f133"}.bi-arrow-right-circle:before{content:"\f134"}.bi-arrow-right-short:before{content:"\f135"}.bi-arrow-right-square-fill:before{content:"\f136"}.bi-arrow-right-square:before{content:"\f137"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-circle-fill:before{content:"\f139"}.bi-arrow-up-circle:before{content:"\f13a"}.bi-arrow-up-left-circle-fill:before{content:"\f13b"}.bi-arrow-up-left-circle:before{content:"\f13c"}.bi-arrow-up-left-square-fill:before{content:"\f13d"}.bi-arrow-up-left-square:before{content:"\f13e"}.bi-arrow-up-left:before{content:"\f13f"}.bi-arrow-up-right-circle-fill:before{content:"\f140"}.bi-arrow-up-right-circle:before{content:"\f141"}.bi-arrow-up-right-square-fill:before{content:"\f142"}.bi-arrow-up-right-square:before{content:"\f143"}.bi-arrow-up-right:before{content:"\f144"}.bi-arrow-up-short:before{content:"\f145"}.bi-arrow-up-square-fill:before{content:"\f146"}.bi-arrow-up-square:before{content:"\f147"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-arrows-collapse:before{content:"\f14b"}.bi-arrows-expand:before{content:"\f14c"}.bi-arrows-fullscreen:before{content:"\f14d"}.bi-arrows-move:before{content:"\f14e"}.bi-aspect-ratio-fill:before{content:"\f14f"}.bi-aspect-ratio:before{content:"\f150"}.bi-asterisk:before{content:"\f151"}.bi-at:before{content:"\f152"}.bi-award-fill:before{content:"\f153"}.bi-award:before{content:"\f154"}.bi-back:before{content:"\f155"}.bi-backspace-fill:before{content:"\f156"}.bi-backspace-reverse-fill:before{content:"\f157"}.bi-backspace-reverse:before{content:"\f158"}.bi-backspace:before{content:"\f159"}.bi-badge-3d-fill:before{content:"\f15a"}.bi-badge-3d:before{content:"\f15b"}.bi-badge-4k-fill:before{content:"\f15c"}.bi-badge-4k:before{content:"\f15d"}.bi-badge-8k-fill:before{content:"\f15e"}.bi-badge-8k:before{content:"\f15f"}.bi-badge-ad-fill:before{content:"\f160"}.bi-badge-ad:before{content:"\f161"}.bi-badge-ar-fill:before{content:"\f162"}.bi-badge-ar:before{content:"\f163"}.bi-badge-cc-fill:before{content:"\f164"}.bi-badge-cc:before{content:"\f165"}.bi-badge-hd-fill:before{content:"\f166"}.bi-badge-hd:before{content:"\f167"}.bi-badge-tm-fill:before{content:"\f168"}.bi-badge-tm:before{content:"\f169"}.bi-badge-vo-fill:before{content:"\f16a"}.bi-badge-vo:before{content:"\f16b"}.bi-badge-vr-fill:before{content:"\f16c"}.bi-badge-vr:before{content:"\f16d"}.bi-badge-wc-fill:before{content:"\f16e"}.bi-badge-wc:before{content:"\f16f"}.bi-bag-check-fill:before{content:"\f170"}.bi-bag-check:before{content:"\f171"}.bi-bag-dash-fill:before{content:"\f172"}.bi-bag-dash:before{content:"\f173"}.bi-bag-fill:before{content:"\f174"}.bi-bag-plus-fill:before{content:"\f175"}.bi-bag-plus:before{content:"\f176"}.bi-bag-x-fill:before{content:"\f177"}.bi-bag-x:before{content:"\f178"}.bi-bag:before{content:"\f179"}.bi-bar-chart-fill:before{content:"\f17a"}.bi-bar-chart-line-fill:before{content:"\f17b"}.bi-bar-chart-line:before{content:"\f17c"}.bi-bar-chart-steps:before{content:"\f17d"}.bi-bar-chart:before{content:"\f17e"}.bi-basket-fill:before{content:"\f17f"}.bi-basket:before{content:"\f180"}.bi-basket2-fill:before{content:"\f181"}.bi-basket2:before{content:"\f182"}.bi-basket3-fill:before{content:"\f183"}.bi-basket3:before{content:"\f184"}.bi-battery-charging:before{content:"\f185"}.bi-battery-full:before{content:"\f186"}.bi-battery-half:before{content:"\f187"}.bi-battery:before{content:"\f188"}.bi-bell-fill:before{content:"\f189"}.bi-bell:before{content:"\f18a"}.bi-bezier:before{content:"\f18b"}.bi-bezier2:before{content:"\f18c"}.bi-bicycle:before{content:"\f18d"}.bi-binoculars-fill:before{content:"\f18e"}.bi-binoculars:before{content:"\f18f"}.bi-blockquote-left:before{content:"\f190"}.bi-blockquote-right:before{content:"\f191"}.bi-book-fill:before{content:"\f192"}.bi-book-half:before{content:"\f193"}.bi-book:before{content:"\f194"}.bi-bookmark-check-fill:before{content:"\f195"}.bi-bookmark-check:before{content:"\f196"}.bi-bookmark-dash-fill:before{content:"\f197"}.bi-bookmark-dash:before{content:"\f198"}.bi-bookmark-fill:before{content:"\f199"}.bi-bookmark-heart-fill:before{content:"\f19a"}.bi-bookmark-heart:before{content:"\f19b"}.bi-bookmark-plus-fill:before{content:"\f19c"}.bi-bookmark-plus:before{content:"\f19d"}.bi-bookmark-star-fill:before{content:"\f19e"}.bi-bookmark-star:before{content:"\f19f"}.bi-bookmark-x-fill:before{content:"\f1a0"}.bi-bookmark-x:before{content:"\f1a1"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmarks-fill:before{content:"\f1a3"}.bi-bookmarks:before{content:"\f1a4"}.bi-bookshelf:before{content:"\f1a5"}.bi-bootstrap-fill:before{content:"\f1a6"}.bi-bootstrap-reboot:before{content:"\f1a7"}.bi-bootstrap:before{content:"\f1a8"}.bi-border-all:before{content:"\f1a9"}.bi-border-bottom:before{content:"\f1aa"}.bi-border-center:before{content:"\f1ab"}.bi-border-inner:before{content:"\f1ac"}.bi-border-left:before{content:"\f1ad"}.bi-border-middle:before{content:"\f1ae"}.bi-border-outer:before{content:"\f1af"}.bi-border-right:before{content:"\f1b0"}.bi-border-style:before{content:"\f1b1"}.bi-border-top:before{content:"\f1b2"}.bi-border-width:before{content:"\f1b3"}.bi-border:before{content:"\f1b4"}.bi-bounding-box-circles:before{content:"\f1b5"}.bi-bounding-box:before{content:"\f1b6"}.bi-box-arrow-down-left:before{content:"\f1b7"}.bi-box-arrow-down-right:before{content:"\f1b8"}.bi-box-arrow-down:before{content:"\f1b9"}.bi-box-arrow-in-down-left:before{content:"\f1ba"}.bi-box-arrow-in-down-right:before{content:"\f1bb"}.bi-box-arrow-in-down:before{content:"\f1bc"}.bi-box-arrow-in-left:before{content:"\f1bd"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-in-up-left:before{content:"\f1bf"}.bi-box-arrow-in-up-right:before{content:"\f1c0"}.bi-box-arrow-in-up:before{content:"\f1c1"}.bi-box-arrow-left:before{content:"\f1c2"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-box-arrow-up-left:before{content:"\f1c4"}.bi-box-arrow-up-right:before{content:"\f1c5"}.bi-box-arrow-up:before{content:"\f1c6"}.bi-box-seam:before{content:"\f1c7"}.bi-box:before{content:"\f1c8"}.bi-braces:before{content:"\f1c9"}.bi-bricks:before{content:"\f1ca"}.bi-briefcase-fill:before{content:"\f1cb"}.bi-briefcase:before{content:"\f1cc"}.bi-brightness-alt-high-fill:before{content:"\f1cd"}.bi-brightness-alt-high:before{content:"\f1ce"}.bi-brightness-alt-low-fill:before{content:"\f1cf"}.bi-brightness-alt-low:before{content:"\f1d0"}.bi-brightness-high-fill:before{content:"\f1d1"}.bi-brightness-high:before{content:"\f1d2"}.bi-brightness-low-fill:before{content:"\f1d3"}.bi-brightness-low:before{content:"\f1d4"}.bi-broadcast-pin:before{content:"\f1d5"}.bi-broadcast:before{content:"\f1d6"}.bi-brush-fill:before{content:"\f1d7"}.bi-brush:before{content:"\f1d8"}.bi-bucket-fill:before{content:"\f1d9"}.bi-bucket:before{content:"\f1da"}.bi-bug-fill:before{content:"\f1db"}.bi-bug:before{content:"\f1dc"}.bi-building:before{content:"\f1dd"}.bi-bullseye:before{content:"\f1de"}.bi-calculator-fill:before{content:"\f1df"}.bi-calculator:before{content:"\f1e0"}.bi-calendar-check-fill:before{content:"\f1e1"}.bi-calendar-check:before{content:"\f1e2"}.bi-calendar-date-fill:before{content:"\f1e3"}.bi-calendar-date:before{content:"\f1e4"}.bi-calendar-day-fill:before{content:"\f1e5"}.bi-calendar-day:before{content:"\f1e6"}.bi-calendar-event-fill:before{content:"\f1e7"}.bi-calendar-event:before{content:"\f1e8"}.bi-calendar-fill:before{content:"\f1e9"}.bi-calendar-minus-fill:before{content:"\f1ea"}.bi-calendar-minus:before{content:"\f1eb"}.bi-calendar-month-fill:before{content:"\f1ec"}.bi-calendar-month:before{content:"\f1ed"}.bi-calendar-plus-fill:before{content:"\f1ee"}.bi-calendar-plus:before{content:"\f1ef"}.bi-calendar-range-fill:before{content:"\f1f0"}.bi-calendar-range:before{content:"\f1f1"}.bi-calendar-week-fill:before{content:"\f1f2"}.bi-calendar-week:before{content:"\f1f3"}.bi-calendar-x-fill:before{content:"\f1f4"}.bi-calendar-x:before{content:"\f1f5"}.bi-calendar:before{content:"\f1f6"}.bi-calendar2-check-fill:before{content:"\f1f7"}.bi-calendar2-check:before{content:"\f1f8"}.bi-calendar2-date-fill:before{content:"\f1f9"}.bi-calendar2-date:before{content:"\f1fa"}.bi-calendar2-day-fill:before{content:"\f1fb"}.bi-calendar2-day:before{content:"\f1fc"}.bi-calendar2-event-fill:before{content:"\f1fd"}.bi-calendar2-event:before{content:"\f1fe"}.bi-calendar2-fill:before{content:"\f1ff"}.bi-calendar2-minus-fill:before{content:"\f200"}.bi-calendar2-minus:before{content:"\f201"}.bi-calendar2-month-fill:before{content:"\f202"}.bi-calendar2-month:before{content:"\f203"}.bi-calendar2-plus-fill:before{content:"\f204"}.bi-calendar2-plus:before{content:"\f205"}.bi-calendar2-range-fill:before{content:"\f206"}.bi-calendar2-range:before{content:"\f207"}.bi-calendar2-week-fill:before{content:"\f208"}.bi-calendar2-week:before{content:"\f209"}.bi-calendar2-x-fill:before{content:"\f20a"}.bi-calendar2-x:before{content:"\f20b"}.bi-calendar2:before{content:"\f20c"}.bi-calendar3-event-fill:before{content:"\f20d"}.bi-calendar3-event:before{content:"\f20e"}.bi-calendar3-fill:before{content:"\f20f"}.bi-calendar3-range-fill:before{content:"\f210"}.bi-calendar3-range:before{content:"\f211"}.bi-calendar3-week-fill:before{content:"\f212"}.bi-calendar3-week:before{content:"\f213"}.bi-calendar3:before{content:"\f214"}.bi-calendar4-event:before{content:"\f215"}.bi-calendar4-range:before{content:"\f216"}.bi-calendar4-week:before{content:"\f217"}.bi-calendar4:before{content:"\f218"}.bi-camera-fill:before{content:"\f219"}.bi-camera-reels-fill:before{content:"\f21a"}.bi-camera-reels:before{content:"\f21b"}.bi-camera-video-fill:before{content:"\f21c"}.bi-camera-video-off-fill:before{content:"\f21d"}.bi-camera-video-off:before{content:"\f21e"}.bi-camera-video:before{content:"\f21f"}.bi-camera:before{content:"\f220"}.bi-camera2:before{content:"\f221"}.bi-capslock-fill:before{content:"\f222"}.bi-capslock:before{content:"\f223"}.bi-card-checklist:before{content:"\f224"}.bi-card-heading:before{content:"\f225"}.bi-card-image:before{content:"\f226"}.bi-card-list:before{content:"\f227"}.bi-card-text:before{content:"\f228"}.bi-caret-down-fill:before{content:"\f229"}.bi-caret-down-square-fill:before{content:"\f22a"}.bi-caret-down-square:before{content:"\f22b"}.bi-caret-down:before{content:"\f22c"}.bi-caret-left-fill:before{content:"\f22d"}.bi-caret-left-square-fill:before{content:"\f22e"}.bi-caret-left-square:before{content:"\f22f"}.bi-caret-left:before{content:"\f230"}.bi-caret-right-fill:before{content:"\f231"}.bi-caret-right-square-fill:before{content:"\f232"}.bi-caret-right-square:before{content:"\f233"}.bi-caret-right:before{content:"\f234"}.bi-caret-up-fill:before{content:"\f235"}.bi-caret-up-square-fill:before{content:"\f236"}.bi-caret-up-square:before{content:"\f237"}.bi-caret-up:before{content:"\f238"}.bi-cart-check-fill:before{content:"\f239"}.bi-cart-check:before{content:"\f23a"}.bi-cart-dash-fill:before{content:"\f23b"}.bi-cart-dash:before{content:"\f23c"}.bi-cart-fill:before{content:"\f23d"}.bi-cart-plus-fill:before{content:"\f23e"}.bi-cart-plus:before{content:"\f23f"}.bi-cart-x-fill:before{content:"\f240"}.bi-cart-x:before{content:"\f241"}.bi-cart:before{content:"\f242"}.bi-cart2:before{content:"\f243"}.bi-cart3:before{content:"\f244"}.bi-cart4:before{content:"\f245"}.bi-cash-stack:before{content:"\f246"}.bi-cash:before{content:"\f247"}.bi-cast:before{content:"\f248"}.bi-chat-dots-fill:before{content:"\f249"}.bi-chat-dots:before{content:"\f24a"}.bi-chat-fill:before{content:"\f24b"}.bi-chat-left-dots-fill:before{content:"\f24c"}.bi-chat-left-dots:before{content:"\f24d"}.bi-chat-left-fill:before{content:"\f24e"}.bi-chat-left-quote-fill:before{content:"\f24f"}.bi-chat-left-quote:before{content:"\f250"}.bi-chat-left-text-fill:before{content:"\f251"}.bi-chat-left-text:before{content:"\f252"}.bi-chat-left:before{content:"\f253"}.bi-chat-quote-fill:before{content:"\f254"}.bi-chat-quote:before{content:"\f255"}.bi-chat-right-dots-fill:before{content:"\f256"}.bi-chat-right-dots:before{content:"\f257"}.bi-chat-right-fill:before{content:"\f258"}.bi-chat-right-quote-fill:before{content:"\f259"}.bi-chat-right-quote:before{content:"\f25a"}.bi-chat-right-text-fill:before{content:"\f25b"}.bi-chat-right-text:before{content:"\f25c"}.bi-chat-right:before{content:"\f25d"}.bi-chat-square-dots-fill:before{content:"\f25e"}.bi-chat-square-dots:before{content:"\f25f"}.bi-chat-square-fill:before{content:"\f260"}.bi-chat-square-quote-fill:before{content:"\f261"}.bi-chat-square-quote:before{content:"\f262"}.bi-chat-square-text-fill:before{content:"\f263"}.bi-chat-square-text:before{content:"\f264"}.bi-chat-square:before{content:"\f265"}.bi-chat-text-fill:before{content:"\f266"}.bi-chat-text:before{content:"\f267"}.bi-chat:before{content:"\f268"}.bi-check-all:before{content:"\f269"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check-circle:before{content:"\f26b"}.bi-check-square-fill:before{content:"\f26c"}.bi-check-square:before{content:"\f26d"}.bi-check:before{content:"\f26e"}.bi-check2-all:before{content:"\f26f"}.bi-check2-circle:before{content:"\f270"}.bi-check2-square:before{content:"\f271"}.bi-check2:before{content:"\f272"}.bi-chevron-bar-contract:before{content:"\f273"}.bi-chevron-bar-down:before{content:"\f274"}.bi-chevron-bar-expand:before{content:"\f275"}.bi-chevron-bar-left:before{content:"\f276"}.bi-chevron-bar-right:before{content:"\f277"}.bi-chevron-bar-up:before{content:"\f278"}.bi-chevron-compact-down:before{content:"\f279"}.bi-chevron-compact-left:before{content:"\f27a"}.bi-chevron-compact-right:before{content:"\f27b"}.bi-chevron-compact-up:before{content:"\f27c"}.bi-chevron-contract:before{content:"\f27d"}.bi-chevron-double-down:before{content:"\f27e"}.bi-chevron-double-left:before{content:"\f27f"}.bi-chevron-double-right:before{content:"\f280"}.bi-chevron-double-up:before{content:"\f281"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-expand:before{content:"\f283"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle-fill:before{content:"\f287"}.bi-circle-half:before{content:"\f288"}.bi-circle-square:before{content:"\f289"}.bi-circle:before{content:"\f28a"}.bi-clipboard-check:before{content:"\f28b"}.bi-clipboard-data:before{content:"\f28c"}.bi-clipboard-minus:before{content:"\f28d"}.bi-clipboard-plus:before{content:"\f28e"}.bi-clipboard-x:before{content:"\f28f"}.bi-clipboard:before{content:"\f290"}.bi-clock-fill:before{content:"\f291"}.bi-clock-history:before{content:"\f292"}.bi-clock:before{content:"\f293"}.bi-cloud-arrow-down-fill:before{content:"\f294"}.bi-cloud-arrow-down:before{content:"\f295"}.bi-cloud-arrow-up-fill:before{content:"\f296"}.bi-cloud-arrow-up:before{content:"\f297"}.bi-cloud-check-fill:before{content:"\f298"}.bi-cloud-check:before{content:"\f299"}.bi-cloud-download-fill:before{content:"\f29a"}.bi-cloud-download:before{content:"\f29b"}.bi-cloud-drizzle-fill:before{content:"\f29c"}.bi-cloud-drizzle:before{content:"\f29d"}.bi-cloud-fill:before{content:"\f29e"}.bi-cloud-fog-fill:before{content:"\f29f"}.bi-cloud-fog:before{content:"\f2a0"}.bi-cloud-fog2-fill:before{content:"\f2a1"}.bi-cloud-fog2:before{content:"\f2a2"}.bi-cloud-hail-fill:before{content:"\f2a3"}.bi-cloud-hail:before{content:"\f2a4"}.bi-cloud-haze-1:before{content:"\f2a5"}.bi-cloud-haze-fill:before{content:"\f2a6"}.bi-cloud-haze:before{content:"\f2a7"}.bi-cloud-haze2-fill:before{content:"\f2a8"}.bi-cloud-lightning-fill:before{content:"\f2a9"}.bi-cloud-lightning-rain-fill:before{content:"\f2aa"}.bi-cloud-lightning-rain:before{content:"\f2ab"}.bi-cloud-lightning:before{content:"\f2ac"}.bi-cloud-minus-fill:before{content:"\f2ad"}.bi-cloud-minus:before{content:"\f2ae"}.bi-cloud-moon-fill:before{content:"\f2af"}.bi-cloud-moon:before{content:"\f2b0"}.bi-cloud-plus-fill:before{content:"\f2b1"}.bi-cloud-plus:before{content:"\f2b2"}.bi-cloud-rain-fill:before{content:"\f2b3"}.bi-cloud-rain-heavy-fill:before{content:"\f2b4"}.bi-cloud-rain-heavy:before{content:"\f2b5"}.bi-cloud-rain:before{content:"\f2b6"}.bi-cloud-slash-fill:before{content:"\f2b7"}.bi-cloud-slash:before{content:"\f2b8"}.bi-cloud-sleet-fill:before{content:"\f2b9"}.bi-cloud-sleet:before{content:"\f2ba"}.bi-cloud-snow-fill:before{content:"\f2bb"}.bi-cloud-snow:before{content:"\f2bc"}.bi-cloud-sun-fill:before{content:"\f2bd"}.bi-cloud-sun:before{content:"\f2be"}.bi-cloud-upload-fill:before{content:"\f2bf"}.bi-cloud-upload:before{content:"\f2c0"}.bi-cloud:before{content:"\f2c1"}.bi-clouds-fill:before{content:"\f2c2"}.bi-clouds:before{content:"\f2c3"}.bi-cloudy-fill:before{content:"\f2c4"}.bi-cloudy:before{content:"\f2c5"}.bi-code-slash:before{content:"\f2c6"}.bi-code-square:before{content:"\f2c7"}.bi-code:before{content:"\f2c8"}.bi-collection-fill:before{content:"\f2c9"}.bi-collection-play-fill:before{content:"\f2ca"}.bi-collection-play:before{content:"\f2cb"}.bi-collection:before{content:"\f2cc"}.bi-columns-gap:before{content:"\f2cd"}.bi-columns:before{content:"\f2ce"}.bi-command:before{content:"\f2cf"}.bi-compass-fill:before{content:"\f2d0"}.bi-compass:before{content:"\f2d1"}.bi-cone-striped:before{content:"\f2d2"}.bi-cone:before{content:"\f2d3"}.bi-controller:before{content:"\f2d4"}.bi-cpu-fill:before{content:"\f2d5"}.bi-cpu:before{content:"\f2d6"}.bi-credit-card-2-back-fill:before{content:"\f2d7"}.bi-credit-card-2-back:before{content:"\f2d8"}.bi-credit-card-2-front-fill:before{content:"\f2d9"}.bi-credit-card-2-front:before{content:"\f2da"}.bi-credit-card-fill:before{content:"\f2db"}.bi-credit-card:before{content:"\f2dc"}.bi-crop:before{content:"\f2dd"}.bi-cup-fill:before{content:"\f2de"}.bi-cup-straw:before{content:"\f2df"}.bi-cup:before{content:"\f2e0"}.bi-cursor-fill:before{content:"\f2e1"}.bi-cursor-text:before{content:"\f2e2"}.bi-cursor:before{content:"\f2e3"}.bi-dash-circle-dotted:before{content:"\f2e4"}.bi-dash-circle-fill:before{content:"\f2e5"}.bi-dash-circle:before{content:"\f2e6"}.bi-dash-square-dotted:before{content:"\f2e7"}.bi-dash-square-fill:before{content:"\f2e8"}.bi-dash-square:before{content:"\f2e9"}.bi-dash:before{content:"\f2ea"}.bi-diagram-2-fill:before{content:"\f2eb"}.bi-diagram-2:before{content:"\f2ec"}.bi-diagram-3-fill:before{content:"\f2ed"}.bi-diagram-3:before{content:"\f2ee"}.bi-diamond-fill:before{content:"\f2ef"}.bi-diamond-half:before{content:"\f2f0"}.bi-diamond:before{content:"\f2f1"}.bi-dice-1-fill:before{content:"\f2f2"}.bi-dice-1:before{content:"\f2f3"}.bi-dice-2-fill:before{content:"\f2f4"}.bi-dice-2:before{content:"\f2f5"}.bi-dice-3-fill:before{content:"\f2f6"}.bi-dice-3:before{content:"\f2f7"}.bi-dice-4-fill:before{content:"\f2f8"}.bi-dice-4:before{content:"\f2f9"}.bi-dice-5-fill:before{content:"\f2fa"}.bi-dice-5:before{content:"\f2fb"}.bi-dice-6-fill:before{content:"\f2fc"}.bi-dice-6:before{content:"\f2fd"}.bi-disc-fill:before{content:"\f2fe"}.bi-disc:before{content:"\f2ff"}.bi-discord:before{content:"\f300"}.bi-display-fill:before{content:"\f301"}.bi-display:before{content:"\f302"}.bi-distribute-horizontal:before{content:"\f303"}.bi-distribute-vertical:before{content:"\f304"}.bi-door-closed-fill:before{content:"\f305"}.bi-door-closed:before{content:"\f306"}.bi-door-open-fill:before{content:"\f307"}.bi-door-open:before{content:"\f308"}.bi-dot:before{content:"\f309"}.bi-download:before{content:"\f30a"}.bi-droplet-fill:before{content:"\f30b"}.bi-droplet-half:before{content:"\f30c"}.bi-droplet:before{content:"\f30d"}.bi-earbuds:before{content:"\f30e"}.bi-easel-fill:before{content:"\f30f"}.bi-easel:before{content:"\f310"}.bi-egg-fill:before{content:"\f311"}.bi-egg-fried:before{content:"\f312"}.bi-egg:before{content:"\f313"}.bi-eject-fill:before{content:"\f314"}.bi-eject:before{content:"\f315"}.bi-emoji-angry-fill:before{content:"\f316"}.bi-emoji-angry:before{content:"\f317"}.bi-emoji-dizzy-fill:before{content:"\f318"}.bi-emoji-dizzy:before{content:"\f319"}.bi-emoji-expressionless-fill:before{content:"\f31a"}.bi-emoji-expressionless:before{content:"\f31b"}.bi-emoji-frown-fill:before{content:"\f31c"}.bi-emoji-frown:before{content:"\f31d"}.bi-emoji-heart-eyes-fill:before{content:"\f31e"}.bi-emoji-heart-eyes:before{content:"\f31f"}.bi-emoji-laughing-fill:before{content:"\f320"}.bi-emoji-laughing:before{content:"\f321"}.bi-emoji-neutral-fill:before{content:"\f322"}.bi-emoji-neutral:before{content:"\f323"}.bi-emoji-smile-fill:before{content:"\f324"}.bi-emoji-smile-upside-down-fill:before{content:"\f325"}.bi-emoji-smile-upside-down:before{content:"\f326"}.bi-emoji-smile:before{content:"\f327"}.bi-emoji-sunglasses-fill:before{content:"\f328"}.bi-emoji-sunglasses:before{content:"\f329"}.bi-emoji-wink-fill:before{content:"\f32a"}.bi-emoji-wink:before{content:"\f32b"}.bi-envelope-fill:before{content:"\f32c"}.bi-envelope-open-fill:before{content:"\f32d"}.bi-envelope-open:before{content:"\f32e"}.bi-envelope:before{content:"\f32f"}.bi-eraser-fill:before{content:"\f330"}.bi-eraser:before{content:"\f331"}.bi-exclamation-circle-fill:before{content:"\f332"}.bi-exclamation-circle:before{content:"\f333"}.bi-exclamation-diamond-fill:before{content:"\f334"}.bi-exclamation-diamond:before{content:"\f335"}.bi-exclamation-octagon-fill:before{content:"\f336"}.bi-exclamation-octagon:before{content:"\f337"}.bi-exclamation-square-fill:before{content:"\f338"}.bi-exclamation-square:before{content:"\f339"}.bi-exclamation-triangle-fill:before{content:"\f33a"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-exclamation:before{content:"\f33c"}.bi-exclude:before{content:"\f33d"}.bi-eye-fill:before{content:"\f33e"}.bi-eye-slash-fill:before{content:"\f33f"}.bi-eye-slash:before{content:"\f340"}.bi-eye:before{content:"\f341"}.bi-eyedropper:before{content:"\f342"}.bi-eyeglasses:before{content:"\f343"}.bi-facebook:before{content:"\f344"}.bi-file-arrow-down-fill:before{content:"\f345"}.bi-file-arrow-down:before{content:"\f346"}.bi-file-arrow-up-fill:before{content:"\f347"}.bi-file-arrow-up:before{content:"\f348"}.bi-file-bar-graph-fill:before{content:"\f349"}.bi-file-bar-graph:before{content:"\f34a"}.bi-file-binary-fill:before{content:"\f34b"}.bi-file-binary:before{content:"\f34c"}.bi-file-break-fill:before{content:"\f34d"}.bi-file-break:before{content:"\f34e"}.bi-file-check-fill:before{content:"\f34f"}.bi-file-check:before{content:"\f350"}.bi-file-code-fill:before{content:"\f351"}.bi-file-code:before{content:"\f352"}.bi-file-diff-fill:before{content:"\f353"}.bi-file-diff:before{content:"\f354"}.bi-file-earmark-arrow-down-fill:before{content:"\f355"}.bi-file-earmark-arrow-down:before{content:"\f356"}.bi-file-earmark-arrow-up-fill:before{content:"\f357"}.bi-file-earmark-arrow-up:before{content:"\f358"}.bi-file-earmark-bar-graph-fill:before{content:"\f359"}.bi-file-earmark-bar-graph:before{content:"\f35a"}.bi-file-earmark-binary-fill:before{content:"\f35b"}.bi-file-earmark-binary:before{content:"\f35c"}.bi-file-earmark-break-fill:before{content:"\f35d"}.bi-file-earmark-break:before{content:"\f35e"}.bi-file-earmark-check-fill:before{content:"\f35f"}.bi-file-earmark-check:before{content:"\f360"}.bi-file-earmark-code-fill:before{content:"\f361"}.bi-file-earmark-code:before{content:"\f362"}.bi-file-earmark-diff-fill:before{content:"\f363"}.bi-file-earmark-diff:before{content:"\f364"}.bi-file-earmark-easel-fill:before{content:"\f365"}.bi-file-earmark-easel:before{content:"\f366"}.bi-file-earmark-excel-fill:before{content:"\f367"}.bi-file-earmark-excel:before{content:"\f368"}.bi-file-earmark-fill:before{content:"\f369"}.bi-file-earmark-font-fill:before{content:"\f36a"}.bi-file-earmark-font:before{content:"\f36b"}.bi-file-earmark-image-fill:before{content:"\f36c"}.bi-file-earmark-image:before{content:"\f36d"}.bi-file-earmark-lock-fill:before{content:"\f36e"}.bi-file-earmark-lock:before{content:"\f36f"}.bi-file-earmark-lock2-fill:before{content:"\f370"}.bi-file-earmark-lock2:before{content:"\f371"}.bi-file-earmark-medical-fill:before{content:"\f372"}.bi-file-earmark-medical:before{content:"\f373"}.bi-file-earmark-minus-fill:before{content:"\f374"}.bi-file-earmark-minus:before{content:"\f375"}.bi-file-earmark-music-fill:before{content:"\f376"}.bi-file-earmark-music:before{content:"\f377"}.bi-file-earmark-person-fill:before{content:"\f378"}.bi-file-earmark-person:before{content:"\f379"}.bi-file-earmark-play-fill:before{content:"\f37a"}.bi-file-earmark-play:before{content:"\f37b"}.bi-file-earmark-plus-fill:before{content:"\f37c"}.bi-file-earmark-plus:before{content:"\f37d"}.bi-file-earmark-post-fill:before{content:"\f37e"}.bi-file-earmark-post:before{content:"\f37f"}.bi-file-earmark-ppt-fill:before{content:"\f380"}.bi-file-earmark-ppt:before{content:"\f381"}.bi-file-earmark-richtext-fill:before{content:"\f382"}.bi-file-earmark-richtext:before{content:"\f383"}.bi-file-earmark-ruled-fill:before{content:"\f384"}.bi-file-earmark-ruled:before{content:"\f385"}.bi-file-earmark-slides-fill:before{content:"\f386"}.bi-file-earmark-slides:before{content:"\f387"}.bi-file-earmark-spreadsheet-fill:before{content:"\f388"}.bi-file-earmark-spreadsheet:before{content:"\f389"}.bi-file-earmark-text-fill:before{content:"\f38a"}.bi-file-earmark-text:before{content:"\f38b"}.bi-file-earmark-word-fill:before{content:"\f38c"}.bi-file-earmark-word:before{content:"\f38d"}.bi-file-earmark-x-fill:before{content:"\f38e"}.bi-file-earmark-x:before{content:"\f38f"}.bi-file-earmark-zip-fill:before{content:"\f390"}.bi-file-earmark-zip:before{content:"\f391"}.bi-file-earmark:before{content:"\f392"}.bi-file-easel-fill:before{content:"\f393"}.bi-file-easel:before{content:"\f394"}.bi-file-excel-fill:before{content:"\f395"}.bi-file-excel:before{content:"\f396"}.bi-file-fill:before{content:"\f397"}.bi-file-font-fill:before{content:"\f398"}.bi-file-font:before{content:"\f399"}.bi-file-image-fill:before{content:"\f39a"}.bi-file-image:before{content:"\f39b"}.bi-file-lock-fill:before{content:"\f39c"}.bi-file-lock:before{content:"\f39d"}.bi-file-lock2-fill:before{content:"\f39e"}.bi-file-lock2:before{content:"\f39f"}.bi-file-medical-fill:before{content:"\f3a0"}.bi-file-medical:before{content:"\f3a1"}.bi-file-minus-fill:before{content:"\f3a2"}.bi-file-minus:before{content:"\f3a3"}.bi-file-music-fill:before{content:"\f3a4"}.bi-file-music:before{content:"\f3a5"}.bi-file-person-fill:before{content:"\f3a6"}.bi-file-person:before{content:"\f3a7"}.bi-file-play-fill:before{content:"\f3a8"}.bi-file-play:before{content:"\f3a9"}.bi-file-plus-fill:before{content:"\f3aa"}.bi-file-plus:before{content:"\f3ab"}.bi-file-post-fill:before{content:"\f3ac"}.bi-file-post:before{content:"\f3ad"}.bi-file-ppt-fill:before{content:"\f3ae"}.bi-file-ppt:before{content:"\f3af"}.bi-file-richtext-fill:before{content:"\f3b0"}.bi-file-richtext:before{content:"\f3b1"}.bi-file-ruled-fill:before{content:"\f3b2"}.bi-file-ruled:before{content:"\f3b3"}.bi-file-slides-fill:before{content:"\f3b4"}.bi-file-slides:before{content:"\f3b5"}.bi-file-spreadsheet-fill:before{content:"\f3b6"}.bi-file-spreadsheet:before{content:"\f3b7"}.bi-file-text-fill:before{content:"\f3b8"}.bi-file-text:before{content:"\f3b9"}.bi-file-word-fill:before{content:"\f3ba"}.bi-file-word:before{content:"\f3bb"}.bi-file-x-fill:before{content:"\f3bc"}.bi-file-x:before{content:"\f3bd"}.bi-file-zip-fill:before{content:"\f3be"}.bi-file-zip:before{content:"\f3bf"}.bi-file:before{content:"\f3c0"}.bi-files-alt:before{content:"\f3c1"}.bi-files:before{content:"\f3c2"}.bi-film:before{content:"\f3c3"}.bi-filter-circle-fill:before{content:"\f3c4"}.bi-filter-circle:before{content:"\f3c5"}.bi-filter-left:before{content:"\f3c6"}.bi-filter-right:before{content:"\f3c7"}.bi-filter-square-fill:before{content:"\f3c8"}.bi-filter-square:before{content:"\f3c9"}.bi-filter:before{content:"\f3ca"}.bi-flag-fill:before{content:"\f3cb"}.bi-flag:before{content:"\f3cc"}.bi-flower1:before{content:"\f3cd"}.bi-flower2:before{content:"\f3ce"}.bi-flower3:before{content:"\f3cf"}.bi-folder-check:before{content:"\f3d0"}.bi-folder-fill:before{content:"\f3d1"}.bi-folder-minus:before{content:"\f3d2"}.bi-folder-plus:before{content:"\f3d3"}.bi-folder-symlink-fill:before{content:"\f3d4"}.bi-folder-symlink:before{content:"\f3d5"}.bi-folder-x:before{content:"\f3d6"}.bi-folder:before{content:"\f3d7"}.bi-folder2-open:before{content:"\f3d8"}.bi-folder2:before{content:"\f3d9"}.bi-fonts:before{content:"\f3da"}.bi-forward-fill:before{content:"\f3db"}.bi-forward:before{content:"\f3dc"}.bi-front:before{content:"\f3dd"}.bi-fullscreen-exit:before{content:"\f3de"}.bi-fullscreen:before{content:"\f3df"}.bi-funnel-fill:before{content:"\f3e0"}.bi-funnel:before{content:"\f3e1"}.bi-gear-fill:before{content:"\f3e2"}.bi-gear-wide-connected:before{content:"\f3e3"}.bi-gear-wide:before{content:"\f3e4"}.bi-gear:before{content:"\f3e5"}.bi-gem:before{content:"\f3e6"}.bi-geo-alt-fill:before{content:"\f3e7"}.bi-geo-alt:before{content:"\f3e8"}.bi-geo-fill:before{content:"\f3e9"}.bi-geo:before{content:"\f3ea"}.bi-gift-fill:before{content:"\f3eb"}.bi-gift:before{content:"\f3ec"}.bi-github:before{content:"\f3ed"}.bi-globe:before{content:"\f3ee"}.bi-globe2:before{content:"\f3ef"}.bi-google:before{content:"\f3f0"}.bi-graph-down:before{content:"\f3f1"}.bi-graph-up:before{content:"\f3f2"}.bi-grid-1x2-fill:before{content:"\f3f3"}.bi-grid-1x2:before{content:"\f3f4"}.bi-grid-3x2-gap-fill:before{content:"\f3f5"}.bi-grid-3x2-gap:before{content:"\f3f6"}.bi-grid-3x2:before{content:"\f3f7"}.bi-grid-3x3-gap-fill:before{content:"\f3f8"}.bi-grid-3x3-gap:before{content:"\f3f9"}.bi-grid-3x3:before{content:"\f3fa"}.bi-grid-fill:before{content:"\f3fb"}.bi-grid:before{content:"\f3fc"}.bi-grip-horizontal:before{content:"\f3fd"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-index-fill:before{content:"\f400"}.bi-hand-index-thumb-fill:before{content:"\f401"}.bi-hand-index-thumb:before{content:"\f402"}.bi-hand-index:before{content:"\f403"}.bi-hand-thumbs-down-fill:before{content:"\f404"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up-fill:before{content:"\f406"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-handbag-fill:before{content:"\f408"}.bi-handbag:before{content:"\f409"}.bi-hash:before{content:"\f40a"}.bi-hdd-fill:before{content:"\f40b"}.bi-hdd-network-fill:before{content:"\f40c"}.bi-hdd-network:before{content:"\f40d"}.bi-hdd-rack-fill:before{content:"\f40e"}.bi-hdd-rack:before{content:"\f40f"}.bi-hdd-stack-fill:before{content:"\f410"}.bi-hdd-stack:before{content:"\f411"}.bi-hdd:before{content:"\f412"}.bi-headphones:before{content:"\f413"}.bi-headset:before{content:"\f414"}.bi-heart-fill:before{content:"\f415"}.bi-heart-half:before{content:"\f416"}.bi-heart:before{content:"\f417"}.bi-heptagon-fill:before{content:"\f418"}.bi-heptagon-half:before{content:"\f419"}.bi-heptagon:before{content:"\f41a"}.bi-hexagon-fill:before{content:"\f41b"}.bi-hexagon-half:before{content:"\f41c"}.bi-hexagon:before{content:"\f41d"}.bi-hourglass-bottom:before{content:"\f41e"}.bi-hourglass-split:before{content:"\f41f"}.bi-hourglass-top:before{content:"\f420"}.bi-hourglass:before{content:"\f421"}.bi-house-door-fill:before{content:"\f422"}.bi-house-door:before{content:"\f423"}.bi-house-fill:before{content:"\f424"}.bi-house:before{content:"\f425"}.bi-hr:before{content:"\f426"}.bi-hurricane:before{content:"\f427"}.bi-image-alt:before{content:"\f428"}.bi-image-fill:before{content:"\f429"}.bi-image:before{content:"\f42a"}.bi-images:before{content:"\f42b"}.bi-inbox-fill:before{content:"\f42c"}.bi-inbox:before{content:"\f42d"}.bi-inboxes-fill:before{content:"\f42e"}.bi-inboxes:before{content:"\f42f"}.bi-info-circle-fill:before{content:"\f430"}.bi-info-circle:before{content:"\f431"}.bi-info-square-fill:before{content:"\f432"}.bi-info-square:before{content:"\f433"}.bi-info:before{content:"\f434"}.bi-input-cursor-text:before{content:"\f435"}.bi-input-cursor:before{content:"\f436"}.bi-instagram:before{content:"\f437"}.bi-intersect:before{content:"\f438"}.bi-journal-album:before{content:"\f439"}.bi-journal-arrow-down:before{content:"\f43a"}.bi-journal-arrow-up:before{content:"\f43b"}.bi-journal-bookmark-fill:before{content:"\f43c"}.bi-journal-bookmark:before{content:"\f43d"}.bi-journal-check:before{content:"\f43e"}.bi-journal-code:before{content:"\f43f"}.bi-journal-medical:before{content:"\f440"}.bi-journal-minus:before{content:"\f441"}.bi-journal-plus:before{content:"\f442"}.bi-journal-richtext:before{content:"\f443"}.bi-journal-text:before{content:"\f444"}.bi-journal-x:before{content:"\f445"}.bi-journal:before{content:"\f446"}.bi-journals:before{content:"\f447"}.bi-joystick:before{content:"\f448"}.bi-justify-left:before{content:"\f449"}.bi-justify-right:before{content:"\f44a"}.bi-justify:before{content:"\f44b"}.bi-kanban-fill:before{content:"\f44c"}.bi-kanban:before{content:"\f44d"}.bi-key-fill:before{content:"\f44e"}.bi-key:before{content:"\f44f"}.bi-keyboard-fill:before{content:"\f450"}.bi-keyboard:before{content:"\f451"}.bi-ladder:before{content:"\f452"}.bi-lamp-fill:before{content:"\f453"}.bi-lamp:before{content:"\f454"}.bi-laptop-fill:before{content:"\f455"}.bi-laptop:before{content:"\f456"}.bi-layer-backward:before{content:"\f457"}.bi-layer-forward:before{content:"\f458"}.bi-layers-fill:before{content:"\f459"}.bi-layers-half:before{content:"\f45a"}.bi-layers:before{content:"\f45b"}.bi-layout-sidebar-inset-reverse:before{content:"\f45c"}.bi-layout-sidebar-inset:before{content:"\f45d"}.bi-layout-sidebar-reverse:before{content:"\f45e"}.bi-layout-sidebar:before{content:"\f45f"}.bi-layout-split:before{content:"\f460"}.bi-layout-text-sidebar-reverse:before{content:"\f461"}.bi-layout-text-sidebar:before{content:"\f462"}.bi-layout-text-window-reverse:before{content:"\f463"}.bi-layout-text-window:before{content:"\f464"}.bi-layout-three-columns:before{content:"\f465"}.bi-layout-wtf:before{content:"\f466"}.bi-life-preserver:before{content:"\f467"}.bi-lightbulb-fill:before{content:"\f468"}.bi-lightbulb-off-fill:before{content:"\f469"}.bi-lightbulb-off:before{content:"\f46a"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning-charge-fill:before{content:"\f46c"}.bi-lightning-charge:before{content:"\f46d"}.bi-lightning-fill:before{content:"\f46e"}.bi-lightning:before{content:"\f46f"}.bi-link-45deg:before{content:"\f470"}.bi-link:before{content:"\f471"}.bi-linkedin:before{content:"\f472"}.bi-list-check:before{content:"\f473"}.bi-list-nested:before{content:"\f474"}.bi-list-ol:before{content:"\f475"}.bi-list-stars:before{content:"\f476"}.bi-list-task:before{content:"\f477"}.bi-list-ul:before{content:"\f478"}.bi-list:before{content:"\f479"}.bi-lock-fill:before{content:"\f47a"}.bi-lock:before{content:"\f47b"}.bi-mailbox:before{content:"\f47c"}.bi-mailbox2:before{content:"\f47d"}.bi-map-fill:before{content:"\f47e"}.bi-map:before{content:"\f47f"}.bi-markdown-fill:before{content:"\f480"}.bi-markdown:before{content:"\f481"}.bi-mask:before{content:"\f482"}.bi-megaphone-fill:before{content:"\f483"}.bi-megaphone:before{content:"\f484"}.bi-menu-app-fill:before{content:"\f485"}.bi-menu-app:before{content:"\f486"}.bi-menu-button-fill:before{content:"\f487"}.bi-menu-button-wide-fill:before{content:"\f488"}.bi-menu-button-wide:before{content:"\f489"}.bi-menu-button:before{content:"\f48a"}.bi-menu-down:before{content:"\f48b"}.bi-menu-up:before{content:"\f48c"}.bi-mic-fill:before{content:"\f48d"}.bi-mic-mute-fill:before{content:"\f48e"}.bi-mic-mute:before{content:"\f48f"}.bi-mic:before{content:"\f490"}.bi-minecart-loaded:before{content:"\f491"}.bi-minecart:before{content:"\f492"}.bi-moisture:before{content:"\f493"}.bi-moon-fill:before{content:"\f494"}.bi-moon-stars-fill:before{content:"\f495"}.bi-moon-stars:before{content:"\f496"}.bi-moon:before{content:"\f497"}.bi-mouse-fill:before{content:"\f498"}.bi-mouse:before{content:"\f499"}.bi-mouse2-fill:before{content:"\f49a"}.bi-mouse2:before{content:"\f49b"}.bi-mouse3-fill:before{content:"\f49c"}.bi-mouse3:before{content:"\f49d"}.bi-music-note-beamed:before{content:"\f49e"}.bi-music-note-list:before{content:"\f49f"}.bi-music-note:before{content:"\f4a0"}.bi-music-player-fill:before{content:"\f4a1"}.bi-music-player:before{content:"\f4a2"}.bi-newspaper:before{content:"\f4a3"}.bi-node-minus-fill:before{content:"\f4a4"}.bi-node-minus:before{content:"\f4a5"}.bi-node-plus-fill:before{content:"\f4a6"}.bi-node-plus:before{content:"\f4a7"}.bi-nut-fill:before{content:"\f4a8"}.bi-nut:before{content:"\f4a9"}.bi-octagon-fill:before{content:"\f4aa"}.bi-octagon-half:before{content:"\f4ab"}.bi-octagon:before{content:"\f4ac"}.bi-option:before{content:"\f4ad"}.bi-outlet:before{content:"\f4ae"}.bi-paint-bucket:before{content:"\f4af"}.bi-palette-fill:before{content:"\f4b0"}.bi-palette:before{content:"\f4b1"}.bi-palette2:before{content:"\f4b2"}.bi-paperclip:before{content:"\f4b3"}.bi-paragraph:before{content:"\f4b4"}.bi-patch-check-fill:before{content:"\f4b5"}.bi-patch-check:before{content:"\f4b6"}.bi-patch-exclamation-fill:before{content:"\f4b7"}.bi-patch-exclamation:before{content:"\f4b8"}.bi-patch-minus-fill:before{content:"\f4b9"}.bi-patch-minus:before{content:"\f4ba"}.bi-patch-plus-fill:before{content:"\f4bb"}.bi-patch-plus:before{content:"\f4bc"}.bi-patch-question-fill:before{content:"\f4bd"}.bi-patch-question:before{content:"\f4be"}.bi-pause-btn-fill:before{content:"\f4bf"}.bi-pause-btn:before{content:"\f4c0"}.bi-pause-circle-fill:before{content:"\f4c1"}.bi-pause-circle:before{content:"\f4c2"}.bi-pause-fill:before{content:"\f4c3"}.bi-pause:before{content:"\f4c4"}.bi-peace-fill:before{content:"\f4c5"}.bi-peace:before{content:"\f4c6"}.bi-pen-fill:before{content:"\f4c7"}.bi-pen:before{content:"\f4c8"}.bi-pencil-fill:before{content:"\f4c9"}.bi-pencil-square:before{content:"\f4ca"}.bi-pencil:before{content:"\f4cb"}.bi-pentagon-fill:before{content:"\f4cc"}.bi-pentagon-half:before{content:"\f4cd"}.bi-pentagon:before{content:"\f4ce"}.bi-people-fill:before{content:"\f4cf"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person-badge-fill:before{content:"\f4d2"}.bi-person-badge:before{content:"\f4d3"}.bi-person-bounding-box:before{content:"\f4d4"}.bi-person-check-fill:before{content:"\f4d5"}.bi-person-check:before{content:"\f4d6"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash-fill:before{content:"\f4d8"}.bi-person-dash:before{content:"\f4d9"}.bi-person-fill:before{content:"\f4da"}.bi-person-lines-fill:before{content:"\f4db"}.bi-person-plus-fill:before{content:"\f4dc"}.bi-person-plus:before{content:"\f4dd"}.bi-person-square:before{content:"\f4de"}.bi-person-x-fill:before{content:"\f4df"}.bi-person-x:before{content:"\f4e0"}.bi-person:before{content:"\f4e1"}.bi-phone-fill:before{content:"\f4e2"}.bi-phone-landscape-fill:before{content:"\f4e3"}.bi-phone-landscape:before{content:"\f4e4"}.bi-phone-vibrate-fill:before{content:"\f4e5"}.bi-phone-vibrate:before{content:"\f4e6"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart-fill:before{content:"\f4e8"}.bi-pie-chart:before{content:"\f4e9"}.bi-pin-angle-fill:before{content:"\f4ea"}.bi-pin-angle:before{content:"\f4eb"}.bi-pin-fill:before{content:"\f4ec"}.bi-pin:before{content:"\f4ed"}.bi-pip-fill:before{content:"\f4ee"}.bi-pip:before{content:"\f4ef"}.bi-play-btn-fill:before{content:"\f4f0"}.bi-play-btn:before{content:"\f4f1"}.bi-play-circle-fill:before{content:"\f4f2"}.bi-play-circle:before{content:"\f4f3"}.bi-play-fill:before{content:"\f4f4"}.bi-play:before{content:"\f4f5"}.bi-plug-fill:before{content:"\f4f6"}.bi-plug:before{content:"\f4f7"}.bi-plus-circle-dotted:before{content:"\f4f8"}.bi-plus-circle-fill:before{content:"\f4f9"}.bi-plus-circle:before{content:"\f4fa"}.bi-plus-square-dotted:before{content:"\f4fb"}.bi-plus-square-fill:before{content:"\f4fc"}.bi-plus-square:before{content:"\f4fd"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer-fill:before{content:"\f500"}.bi-printer:before{content:"\f501"}.bi-puzzle-fill:before{content:"\f502"}.bi-puzzle:before{content:"\f503"}.bi-question-circle-fill:before{content:"\f504"}.bi-question-circle:before{content:"\f505"}.bi-question-diamond-fill:before{content:"\f506"}.bi-question-diamond:before{content:"\f507"}.bi-question-octagon-fill:before{content:"\f508"}.bi-question-octagon:before{content:"\f509"}.bi-question-square-fill:before{content:"\f50a"}.bi-question-square:before{content:"\f50b"}.bi-question:before{content:"\f50c"}.bi-rainbow:before{content:"\f50d"}.bi-receipt-cutoff:before{content:"\f50e"}.bi-receipt:before{content:"\f50f"}.bi-reception-0:before{content:"\f510"}.bi-reception-1:before{content:"\f511"}.bi-reception-2:before{content:"\f512"}.bi-reception-3:before{content:"\f513"}.bi-reception-4:before{content:"\f514"}.bi-record-btn-fill:before{content:"\f515"}.bi-record-btn:before{content:"\f516"}.bi-record-circle-fill:before{content:"\f517"}.bi-record-circle:before{content:"\f518"}.bi-record-fill:before{content:"\f519"}.bi-record:before{content:"\f51a"}.bi-record2-fill:before{content:"\f51b"}.bi-record2:before{content:"\f51c"}.bi-reply-all-fill:before{content:"\f51d"}.bi-reply-all:before{content:"\f51e"}.bi-reply-fill:before{content:"\f51f"}.bi-reply:before{content:"\f520"}.bi-rss-fill:before{content:"\f521"}.bi-rss:before{content:"\f522"}.bi-rulers:before{content:"\f523"}.bi-save-fill:before{content:"\f524"}.bi-save:before{content:"\f525"}.bi-save2-fill:before{content:"\f526"}.bi-save2:before{content:"\f527"}.bi-scissors:before{content:"\f528"}.bi-screwdriver:before{content:"\f529"}.bi-search:before{content:"\f52a"}.bi-segmented-nav:before{content:"\f52b"}.bi-server:before{content:"\f52c"}.bi-share-fill:before{content:"\f52d"}.bi-share:before{content:"\f52e"}.bi-shield-check:before{content:"\f52f"}.bi-shield-exclamation:before{content:"\f530"}.bi-shield-fill-check:before{content:"\f531"}.bi-shield-fill-exclamation:before{content:"\f532"}.bi-shield-fill-minus:before{content:"\f533"}.bi-shield-fill-plus:before{content:"\f534"}.bi-shield-fill-x:before{content:"\f535"}.bi-shield-fill:before{content:"\f536"}.bi-shield-lock-fill:before{content:"\f537"}.bi-shield-lock:before{content:"\f538"}.bi-shield-minus:before{content:"\f539"}.bi-shield-plus:before{content:"\f53a"}.bi-shield-shaded:before{content:"\f53b"}.bi-shield-slash-fill:before{content:"\f53c"}.bi-shield-slash:before{content:"\f53d"}.bi-shield-x:before{content:"\f53e"}.bi-shield:before{content:"\f53f"}.bi-shift-fill:before{content:"\f540"}.bi-shift:before{content:"\f541"}.bi-shop-window:before{content:"\f542"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-2-fill:before{content:"\f545"}.bi-signpost-2:before{content:"\f546"}.bi-signpost-fill:before{content:"\f547"}.bi-signpost-split-fill:before{content:"\f548"}.bi-signpost-split:before{content:"\f549"}.bi-signpost:before{content:"\f54a"}.bi-sim-fill:before{content:"\f54b"}.bi-sim:before{content:"\f54c"}.bi-skip-backward-btn-fill:before{content:"\f54d"}.bi-skip-backward-btn:before{content:"\f54e"}.bi-skip-backward-circle-fill:before{content:"\f54f"}.bi-skip-backward-circle:before{content:"\f550"}.bi-skip-backward-fill:before{content:"\f551"}.bi-skip-backward:before{content:"\f552"}.bi-skip-end-btn-fill:before{content:"\f553"}.bi-skip-end-btn:before{content:"\f554"}.bi-skip-end-circle-fill:before{content:"\f555"}.bi-skip-end-circle:before{content:"\f556"}.bi-skip-end-fill:before{content:"\f557"}.bi-skip-end:before{content:"\f558"}.bi-skip-forward-btn-fill:before{content:"\f559"}.bi-skip-forward-btn:before{content:"\f55a"}.bi-skip-forward-circle-fill:before{content:"\f55b"}.bi-skip-forward-circle:before{content:"\f55c"}.bi-skip-forward-fill:before{content:"\f55d"}.bi-skip-forward:before{content:"\f55e"}.bi-skip-start-btn-fill:before{content:"\f55f"}.bi-skip-start-btn:before{content:"\f560"}.bi-skip-start-circle-fill:before{content:"\f561"}.bi-skip-start-circle:before{content:"\f562"}.bi-skip-start-fill:before{content:"\f563"}.bi-skip-start:before{content:"\f564"}.bi-slack:before{content:"\f565"}.bi-slash-circle-fill:before{content:"\f566"}.bi-slash-circle:before{content:"\f567"}.bi-slash-square-fill:before{content:"\f568"}.bi-slash-square:before{content:"\f569"}.bi-slash:before{content:"\f56a"}.bi-sliders:before{content:"\f56b"}.bi-smartwatch:before{content:"\f56c"}.bi-snow:before{content:"\f56d"}.bi-snow2:before{content:"\f56e"}.bi-snow3:before{content:"\f56f"}.bi-sort-alpha-down-alt:before{content:"\f570"}.bi-sort-alpha-down:before{content:"\f571"}.bi-sort-alpha-up-alt:before{content:"\f572"}.bi-sort-alpha-up:before{content:"\f573"}.bi-sort-down-alt:before{content:"\f574"}.bi-sort-down:before{content:"\f575"}.bi-sort-numeric-down-alt:before{content:"\f576"}.bi-sort-numeric-down:before{content:"\f577"}.bi-sort-numeric-up-alt:before{content:"\f578"}.bi-sort-numeric-up:before{content:"\f579"}.bi-sort-up-alt:before{content:"\f57a"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speaker-fill:before{content:"\f57d"}.bi-speaker:before{content:"\f57e"}.bi-speedometer:before{content:"\f57f"}.bi-speedometer2:before{content:"\f580"}.bi-spellcheck:before{content:"\f581"}.bi-square-fill:before{content:"\f582"}.bi-square-half:before{content:"\f583"}.bi-square:before{content:"\f584"}.bi-stack:before{content:"\f585"}.bi-star-fill:before{content:"\f586"}.bi-star-half:before{content:"\f587"}.bi-star:before{content:"\f588"}.bi-stars:before{content:"\f589"}.bi-stickies-fill:before{content:"\f58a"}.bi-stickies:before{content:"\f58b"}.bi-sticky-fill:before{content:"\f58c"}.bi-sticky:before{content:"\f58d"}.bi-stop-btn-fill:before{content:"\f58e"}.bi-stop-btn:before{content:"\f58f"}.bi-stop-circle-fill:before{content:"\f590"}.bi-stop-circle:before{content:"\f591"}.bi-stop-fill:before{content:"\f592"}.bi-stop:before{content:"\f593"}.bi-stoplights-fill:before{content:"\f594"}.bi-stoplights:before{content:"\f595"}.bi-stopwatch-fill:before{content:"\f596"}.bi-stopwatch:before{content:"\f597"}.bi-subtract:before{content:"\f598"}.bi-suit-club-fill:before{content:"\f599"}.bi-suit-club:before{content:"\f59a"}.bi-suit-diamond-fill:before{content:"\f59b"}.bi-suit-diamond:before{content:"\f59c"}.bi-suit-heart-fill:before{content:"\f59d"}.bi-suit-heart:before{content:"\f59e"}.bi-suit-spade-fill:before{content:"\f59f"}.bi-suit-spade:before{content:"\f5a0"}.bi-sun-fill:before{content:"\f5a1"}.bi-sun:before{content:"\f5a2"}.bi-sunglasses:before{content:"\f5a3"}.bi-sunrise-fill:before{content:"\f5a4"}.bi-sunrise:before{content:"\f5a5"}.bi-sunset-fill:before{content:"\f5a6"}.bi-sunset:before{content:"\f5a7"}.bi-symmetry-horizontal:before{content:"\f5a8"}.bi-symmetry-vertical:before{content:"\f5a9"}.bi-table:before{content:"\f5aa"}.bi-tablet-fill:before{content:"\f5ab"}.bi-tablet-landscape-fill:before{content:"\f5ac"}.bi-tablet-landscape:before{content:"\f5ad"}.bi-tablet:before{content:"\f5ae"}.bi-tag-fill:before{content:"\f5af"}.bi-tag:before{content:"\f5b0"}.bi-tags-fill:before{content:"\f5b1"}.bi-tags:before{content:"\f5b2"}.bi-telegram:before{content:"\f5b3"}.bi-telephone-fill:before{content:"\f5b4"}.bi-telephone-forward-fill:before{content:"\f5b5"}.bi-telephone-forward:before{content:"\f5b6"}.bi-telephone-inbound-fill:before{content:"\f5b7"}.bi-telephone-inbound:before{content:"\f5b8"}.bi-telephone-minus-fill:before{content:"\f5b9"}.bi-telephone-minus:before{content:"\f5ba"}.bi-telephone-outbound-fill:before{content:"\f5bb"}.bi-telephone-outbound:before{content:"\f5bc"}.bi-telephone-plus-fill:before{content:"\f5bd"}.bi-telephone-plus:before{content:"\f5be"}.bi-telephone-x-fill:before{content:"\f5bf"}.bi-telephone-x:before{content:"\f5c0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal-fill:before{content:"\f5c2"}.bi-terminal:before{content:"\f5c3"}.bi-text-center:before{content:"\f5c4"}.bi-text-indent-left:before{content:"\f5c5"}.bi-text-indent-right:before{content:"\f5c6"}.bi-text-left:before{content:"\f5c7"}.bi-text-paragraph:before{content:"\f5c8"}.bi-text-right:before{content:"\f5c9"}.bi-textarea-resize:before{content:"\f5ca"}.bi-textarea-t:before{content:"\f5cb"}.bi-textarea:before{content:"\f5cc"}.bi-thermometer-half:before{content:"\f5cd"}.bi-thermometer-high:before{content:"\f5ce"}.bi-thermometer-low:before{content:"\f5cf"}.bi-thermometer-snow:before{content:"\f5d0"}.bi-thermometer-sun:before{content:"\f5d1"}.bi-thermometer:before{content:"\f5d2"}.bi-three-dots-vertical:before{content:"\f5d3"}.bi-three-dots:before{content:"\f5d4"}.bi-toggle-off:before{content:"\f5d5"}.bi-toggle-on:before{content:"\f5d6"}.bi-toggle2-off:before{content:"\f5d7"}.bi-toggle2-on:before{content:"\f5d8"}.bi-toggles:before{content:"\f5d9"}.bi-toggles2:before{content:"\f5da"}.bi-tools:before{content:"\f5db"}.bi-tornado:before{content:"\f5dc"}.bi-trash-fill:before{content:"\f5dd"}.bi-trash:before{content:"\f5de"}.bi-trash2-fill:before{content:"\f5df"}.bi-trash2:before{content:"\f5e0"}.bi-tree-fill:before{content:"\f5e1"}.bi-tree:before{content:"\f5e2"}.bi-triangle-fill:before{content:"\f5e3"}.bi-triangle-half:before{content:"\f5e4"}.bi-triangle:before{content:"\f5e5"}.bi-trophy-fill:before{content:"\f5e6"}.bi-trophy:before{content:"\f5e7"}.bi-tropical-storm:before{content:"\f5e8"}.bi-truck-flatbed:before{content:"\f5e9"}.bi-truck:before{content:"\f5ea"}.bi-tsunami:before{content:"\f5eb"}.bi-tv-fill:before{content:"\f5ec"}.bi-tv:before{content:"\f5ed"}.bi-twitch:before{content:"\f5ee"}.bi-twitter:before{content:"\f5ef"}.bi-type-bold:before{content:"\f5f0"}.bi-type-h1:before{content:"\f5f1"}.bi-type-h2:before{content:"\f5f2"}.bi-type-h3:before{content:"\f5f3"}.bi-type-italic:before{content:"\f5f4"}.bi-type-strikethrough:before{content:"\f5f5"}.bi-type-underline:before{content:"\f5f6"}.bi-type:before{content:"\f5f7"}.bi-ui-checks-grid:before{content:"\f5f8"}.bi-ui-checks:before{content:"\f5f9"}.bi-ui-radios-grid:before{content:"\f5fa"}.bi-ui-radios:before{content:"\f5fb"}.bi-umbrella-fill:before{content:"\f5fc"}.bi-umbrella:before{content:"\f5fd"}.bi-union:before{content:"\f5fe"}.bi-unlock-fill:before{content:"\f5ff"}.bi-unlock:before{content:"\f600"}.bi-upc-scan:before{content:"\f601"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-vector-pen:before{content:"\f604"}.bi-view-list:before{content:"\f605"}.bi-view-stacked:before{content:"\f606"}.bi-vinyl-fill:before{content:"\f607"}.bi-vinyl:before{content:"\f608"}.bi-voicemail:before{content:"\f609"}.bi-volume-down-fill:before{content:"\f60a"}.bi-volume-down:before{content:"\f60b"}.bi-volume-mute-fill:before{content:"\f60c"}.bi-volume-mute:before{content:"\f60d"}.bi-volume-off-fill:before{content:"\f60e"}.bi-volume-off:before{content:"\f60f"}.bi-volume-up-fill:before{content:"\f610"}.bi-volume-up:before{content:"\f611"}.bi-vr:before{content:"\f612"}.bi-wallet-fill:before{content:"\f613"}.bi-wallet:before{content:"\f614"}.bi-wallet2:before{content:"\f615"}.bi-watch:before{content:"\f616"}.bi-water:before{content:"\f617"}.bi-whatsapp:before{content:"\f618"}.bi-wifi-1:before{content:"\f619"}.bi-wifi-2:before{content:"\f61a"}.bi-wifi-off:before{content:"\f61b"}.bi-wifi:before{content:"\f61c"}.bi-wind:before{content:"\f61d"}.bi-window-dock:before{content:"\f61e"}.bi-window-sidebar:before{content:"\f61f"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x-circle-fill:before{content:"\f622"}.bi-x-circle:before{content:"\f623"}.bi-x-diamond-fill:before{content:"\f624"}.bi-x-diamond:before{content:"\f625"}.bi-x-octagon-fill:before{content:"\f626"}.bi-x-octagon:before{content:"\f627"}.bi-x-square-fill:before{content:"\f628"}.bi-x-square:before{content:"\f629"}.bi-x:before{content:"\f62a"}.bi-youtube:before{content:"\f62b"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.bi-bank:before{content:"\f62e"}.bi-bank2:before{content:"\f62f"}.bi-bell-slash-fill:before{content:"\f630"}.bi-bell-slash:before{content:"\f631"}.bi-cash-coin:before{content:"\f632"}.bi-check-lg:before{content:"\f633"}.bi-coin:before{content:"\f634"}.bi-currency-bitcoin:before{content:"\f635"}.bi-currency-dollar:before{content:"\f636"}.bi-currency-euro:before{content:"\f637"}.bi-currency-exchange:before{content:"\f638"}.bi-currency-pound:before{content:"\f639"}.bi-currency-yen:before{content:"\f63a"}.bi-dash-lg:before{content:"\f63b"}.bi-exclamation-lg:before{content:"\f63c"}.bi-file-earmark-pdf-fill:before{content:"\f63d"}.bi-file-earmark-pdf:before{content:"\f63e"}.bi-file-pdf-fill:before{content:"\f63f"}.bi-file-pdf:before{content:"\f640"}.bi-gender-ambiguous:before{content:"\f641"}.bi-gender-female:before{content:"\f642"}.bi-gender-male:before{content:"\f643"}.bi-gender-trans:before{content:"\f644"}.bi-headset-vr:before{content:"\f645"}.bi-info-lg:before{content:"\f646"}.bi-mastodon:before{content:"\f647"}.bi-messenger:before{content:"\f648"}.bi-piggy-bank-fill:before{content:"\f649"}.bi-piggy-bank:before{content:"\f64a"}.bi-pin-map-fill:before{content:"\f64b"}.bi-pin-map:before{content:"\f64c"}.bi-plus-lg:before{content:"\f64d"}.bi-question-lg:before{content:"\f64e"}.bi-recycle:before{content:"\f64f"}.bi-reddit:before{content:"\f650"}.bi-safe-fill:before{content:"\f651"}.bi-safe2-fill:before{content:"\f652"}.bi-safe2:before{content:"\f653"}.bi-sd-card-fill:before{content:"\f654"}.bi-sd-card:before{content:"\f655"}.bi-skype:before{content:"\f656"}.bi-slash-lg:before{content:"\f657"}.bi-translate:before{content:"\f658"}.bi-x-lg:before{content:"\f659"}.bi-safe:before{content:"\f65a"}.bi-apple:before{content:"\f65b"}.bi-microsoft:before{content:"\f65d"}.bi-windows:before{content:"\f65e"}.bi-behance:before{content:"\f65c"}.bi-dribbble:before{content:"\f65f"}.bi-line:before{content:"\f660"}.bi-medium:before{content:"\f661"}.bi-paypal:before{content:"\f662"}.bi-pinterest:before{content:"\f663"}.bi-signal:before{content:"\f664"}.bi-snapchat:before{content:"\f665"}.bi-spotify:before{content:"\f666"}.bi-stack-overflow:before{content:"\f667"}.bi-strava:before{content:"\f668"}.bi-wordpress:before{content:"\f669"}.bi-vimeo:before{content:"\f66a"}.bi-activity:before{content:"\f66b"}.bi-easel2-fill:before{content:"\f66c"}.bi-easel2:before{content:"\f66d"}.bi-easel3-fill:before{content:"\f66e"}.bi-easel3:before{content:"\f66f"}.bi-fan:before{content:"\f670"}.bi-fingerprint:before{content:"\f671"}.bi-graph-down-arrow:before{content:"\f672"}.bi-graph-up-arrow:before{content:"\f673"}.bi-hypnotize:before{content:"\f674"}.bi-magic:before{content:"\f675"}.bi-person-rolodex:before{content:"\f676"}.bi-person-video:before{content:"\f677"}.bi-person-video2:before{content:"\f678"}.bi-person-video3:before{content:"\f679"}.bi-person-workspace:before{content:"\f67a"}.bi-radioactive:before{content:"\f67b"}.bi-webcam-fill:before{content:"\f67c"}.bi-webcam:before{content:"\f67d"}.bi-yin-yang:before{content:"\f67e"}.bi-bandaid-fill:before{content:"\f680"}.bi-bandaid:before{content:"\f681"}.bi-bluetooth:before{content:"\f682"}.bi-body-text:before{content:"\f683"}.bi-boombox:before{content:"\f684"}.bi-boxes:before{content:"\f685"}.bi-dpad-fill:before{content:"\f686"}.bi-dpad:before{content:"\f687"}.bi-ear-fill:before{content:"\f688"}.bi-ear:before{content:"\f689"}.bi-envelope-check-1:before{content:"\f68a"}.bi-envelope-check-fill:before{content:"\f68b"}.bi-envelope-check:before{content:"\f68c"}.bi-envelope-dash-1:before{content:"\f68d"}.bi-envelope-dash-fill:before{content:"\f68e"}.bi-envelope-dash:before{content:"\f68f"}.bi-envelope-exclamation-1:before{content:"\f690"}.bi-envelope-exclamation-fill:before{content:"\f691"}.bi-envelope-exclamation:before{content:"\f692"}.bi-envelope-plus-fill:before{content:"\f693"}.bi-envelope-plus:before{content:"\f694"}.bi-envelope-slash-1:before{content:"\f695"}.bi-envelope-slash-fill:before{content:"\f696"}.bi-envelope-slash:before{content:"\f697"}.bi-envelope-x-1:before{content:"\f698"}.bi-envelope-x-fill:before{content:"\f699"}.bi-envelope-x:before{content:"\f69a"}.bi-explicit-fill:before{content:"\f69b"}.bi-explicit:before{content:"\f69c"}.bi-git:before{content:"\f69d"}.bi-infinity:before{content:"\f69e"}.bi-list-columns-reverse:before{content:"\f69f"}.bi-list-columns:before{content:"\f6a0"}.bi-meta:before{content:"\f6a1"}.bi-mortorboard-fill:before{content:"\f6a2"}.bi-mortorboard:before{content:"\f6a3"}.bi-nintendo-switch:before{content:"\f6a4"}.bi-pc-display-horizontal:before{content:"\f6a5"}.bi-pc-display:before{content:"\f6a6"}.bi-pc-horizontal:before{content:"\f6a7"}.bi-pc:before{content:"\f6a8"}.bi-playstation:before{content:"\f6a9"}.bi-plus-slash-minus:before{content:"\f6aa"}.bi-projector-fill:before{content:"\f6ab"}.bi-projector:before{content:"\f6ac"}.bi-qr-code-scan:before{content:"\f6ad"}.bi-qr-code:before{content:"\f6ae"}.bi-quora:before{content:"\f6af"}.bi-quote:before{content:"\f6b0"}.bi-robot:before{content:"\f6b1"}.bi-send-check-fill:before{content:"\f6b2"}.bi-send-check:before{content:"\f6b3"}.bi-send-dash-fill:before{content:"\f6b4"}.bi-send-dash:before{content:"\f6b5"}.bi-send-exclamation-1:before{content:"\f6b6"}.bi-send-exclamation-fill:before{content:"\f6b7"}.bi-send-exclamation:before{content:"\f6b8"}.bi-send-fill:before{content:"\f6b9"}.bi-send-plus-fill:before{content:"\f6ba"}.bi-send-plus:before{content:"\f6bb"}.bi-send-slash-fill:before{content:"\f6bc"}.bi-send-slash:before{content:"\f6bd"}.bi-send-x-fill:before{content:"\f6be"}.bi-send-x:before{content:"\f6bf"}.bi-send:before{content:"\f6c0"}.bi-steam:before{content:"\f6c1"}.bi-terminal-dash-1:before{content:"\f6c2"}.bi-terminal-dash:before{content:"\f6c3"}.bi-terminal-plus:before{content:"\f6c4"}.bi-terminal-split:before{content:"\f6c5"}.bi-ticket-detailed-fill:before{content:"\f6c6"}.bi-ticket-detailed:before{content:"\f6c7"}.bi-ticket-fill:before{content:"\f6c8"}.bi-ticket-perforated-fill:before{content:"\f6c9"}.bi-ticket-perforated:before{content:"\f6ca"}.bi-ticket:before{content:"\f6cb"}.bi-tiktok:before{content:"\f6cc"}.bi-window-dash:before{content:"\f6cd"}.bi-window-desktop:before{content:"\f6ce"}.bi-window-fullscreen:before{content:"\f6cf"}.bi-window-plus:before{content:"\f6d0"}.bi-window-split:before{content:"\f6d1"}.bi-window-stack:before{content:"\f6d2"}.bi-window-x:before{content:"\f6d3"}.bi-xbox:before{content:"\f6d4"}.bi-ethernet:before{content:"\f6d5"}.bi-hdmi-fill:before{content:"\f6d6"}.bi-hdmi:before{content:"\f6d7"}.bi-usb-c-fill:before{content:"\f6d8"}.bi-usb-c:before{content:"\f6d9"}.bi-usb-fill:before{content:"\f6da"}.bi-usb-plug-fill:before{content:"\f6db"}.bi-usb-plug:before{content:"\f6dc"}.bi-usb-symbol:before{content:"\f6dd"}.bi-usb:before{content:"\f6de"}.bi-boombox-fill:before{content:"\f6df"}.bi-displayport-1:before{content:"\f6e0"}.bi-displayport:before{content:"\f6e1"}.bi-gpu-card:before{content:"\f6e2"}.bi-memory:before{content:"\f6e3"}.bi-modem-fill:before{content:"\f6e4"}.bi-modem:before{content:"\f6e5"}.bi-motherboard-fill:before{content:"\f6e6"}.bi-motherboard:before{content:"\f6e7"}.bi-optical-audio-fill:before{content:"\f6e8"}.bi-optical-audio:before{content:"\f6e9"}.bi-pci-card:before{content:"\f6ea"}.bi-router-fill:before{content:"\f6eb"}.bi-router:before{content:"\f6ec"}.bi-ssd-fill:before{content:"\f6ed"}.bi-ssd:before{content:"\f6ee"}.bi-thunderbolt-fill:before{content:"\f6ef"}.bi-thunderbolt:before{content:"\f6f0"}.bi-usb-drive-fill:before{content:"\f6f1"}.bi-usb-drive:before{content:"\f6f2"}.bi-usb-micro-fill:before{content:"\f6f3"}.bi-usb-micro:before{content:"\f6f4"}.bi-usb-mini-fill:before{content:"\f6f5"}.bi-usb-mini:before{content:"\f6f6"}.bi-cloud-haze2:before{content:"\f6f7"}.bi-device-hdd-fill:before{content:"\f6f8"}.bi-device-hdd:before{content:"\f6f9"}.bi-device-ssd-fill:before{content:"\f6fa"}.bi-device-ssd:before{content:"\f6fb"}.bi-displayport-fill:before{content:"\f6fc"}.bi-mortarboard-fill:before{content:"\f6fd"}.bi-mortarboard:before{content:"\f6fe"}.bi-terminal-x:before{content:"\f6ff"} \ No newline at end of file diff --git a/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.b0dc2193.woff b/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.b0dc2193.woff new file mode 100644 index 0000000000000000000000000000000000000000..1f5d54300bbf8cf484834938f323cc9e9ca6fc8d Binary files /dev/null and b/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.b0dc2193.woff differ diff --git a/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.c5787b4a.woff2 b/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.c5787b4a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3897eff0770d35ca75185352964f98f1140874d Binary files /dev/null and b/utilities_option_menu/frontend/dist/fonts/bootstrap-icons.c5787b4a.woff2 differ diff --git a/utilities_option_menu/frontend/dist/index.html b/utilities_option_menu/frontend/dist/index.html new file mode 100644 index 0000000000000000000000000000000000000000..1f25a3b92d44127cd4dc8af30cbf93874232a477 --- /dev/null +++ b/utilities_option_menu/frontend/dist/index.html @@ -0,0 +1 @@ +streamlit_component_template
\ No newline at end of file diff --git a/utilities_option_menu/frontend/dist/js/app.0d11cb9b.js b/utilities_option_menu/frontend/dist/js/app.0d11cb9b.js new file mode 100644 index 0000000000000000000000000000000000000000..e20534954620d7ca7e8e7a7d8639204fce247502 --- /dev/null +++ b/utilities_option_menu/frontend/dist/js/app.0d11cb9b.js @@ -0,0 +1,18 @@ +(function(e){function t(t){for(var r,o,a=t[0],l=t[1],s=t[2],b=0,d=[];b\n\n\n\n\n\n","\n\n\n","/**\n * Vue.js specific composables\n */\nimport { onMounted, onUpdated } from \"vue\"\nimport { Streamlit } from \"streamlit-component-lib\"\n\nexport function useStreamlit() {\n /**\n * Optional Streamlit Vue-based setup.\n *\n * You are not required call this function on your Streamlit\n * component. If you decide not to call it, you should implement the\n * `onMounted` and `onUpdated` functions in your own component,\n * so that your plugin properly resizes.\n */\n\n onMounted((): void => {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight()\n })\n\n onUpdated((): void => {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight()\n })\n}\n","import { render } from \"./MyComponent.vue?vue&type=template&id=4323f8ce&scoped=true\"\nimport script from \"./MyComponent.vue?vue&type=script&lang=js\"\nexport * from \"./MyComponent.vue?vue&type=script&lang=js\"\n\nimport \"./MyComponent.vue?vue&type=style&index=0&id=4323f8ce&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-4323f8ce\"\n\nexport default script","\n\n\n\n\n","\nimport {\n ref,\n defineComponent,\n onMounted,\n onUpdated,\n onUnmounted,\n onErrorCaptured,\n} from \"vue\"\nimport { Streamlit, RenderData } from \"streamlit-component-lib\"\n\nexport default defineComponent({\n name: \"WithStreamlitConnection\",\n setup() {\n const renderData = ref((undefined as unknown) as RenderData)\n const componentError = ref(\"\")\n\n const onRenderEvent = (event: Event): void => {\n const renderEvent = event as CustomEvent\n renderData.value = renderEvent.detail\n componentError.value = \"\"\n }\n\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n onMounted(() => {\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRenderEvent)\n Streamlit.setComponentReady()\n })\n onUpdated(() => {\n // If our slot threw an error, we display it in render(). In this\n // case, the slot won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (componentError.value != \"\") {\n Streamlit.setFrameHeight()\n }\n })\n onUnmounted(() => {\n Streamlit.events.removeEventListener(\n Streamlit.RENDER_EVENT,\n onRenderEvent\n )\n })\n onErrorCaptured(err => {\n componentError.value = String(err)\n })\n\n return {\n renderData,\n componentError,\n }\n },\n})\n","import { render } from \"./WithStreamlitConnection.vue?vue&type=template&id=bef81972&scoped=true\"\nimport script from \"./WithStreamlitConnection.vue?vue&type=script&lang=ts\"\nexport * from \"./WithStreamlitConnection.vue?vue&type=script&lang=ts\"\n\nimport \"./WithStreamlitConnection.vue?vue&type=style&index=0&id=bef81972&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-bef81972\"\n\nexport default script","\nimport { defineComponent } from \"vue\"\nimport MyComponent from \"./MyComponent.vue\"\n\n// \"withStreamlitConnection\" is a scoped slot. It bootstraps the\n// connection between your component and the Streamlit app, and handles\n// passing arguments from Python -> Component.\n//\n// You don't need to edit withStreamlitConnection (but you're welcome to!).\nimport WithStreamlitConnection from \"./streamlit/WithStreamlitConnection.vue\"\n\nexport default defineComponent({\n name: \"App\",\n components: {\n MyComponent,\n WithStreamlitConnection,\n },\n})\n","import { render } from \"./App.vue?vue&type=template&id=07d8329a\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=07d8329a&lang=css\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue'\nimport App from './App.vue'\n\ncreateApp(App).mount('#app')\n"],"sourceRoot":""} \ No newline at end of file diff --git a/utilities_option_menu/frontend/dist/js/chunk-vendors.1b4b40f9.js b/utilities_option_menu/frontend/dist/js/chunk-vendors.1b4b40f9.js new file mode 100644 index 0000000000000000000000000000000000000000..f6a646483aa5d4b157c13fdc05f258952522e127 --- /dev/null +++ b/utilities_option_menu/frontend/dist/js/chunk-vendors.1b4b40f9.js @@ -0,0 +1,72 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"00ee":function(t,e,n){var r=n("b622"),i=r("toStringTag"),s={};s[i]="z",t.exports="[object z]"===String(s)},"0366":function(t,e,n){var r=n("1c0b");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},"06cf":function(t,e,n){var r=n("83ab"),i=n("d1e7"),s=n("5c6c"),o=n("fc6a"),a=n("c04e"),c=n("5135"),u=n("0cfb"),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=o(t),e=a(e,!0),u)try{return l(t,e)}catch(n){}if(c(t,e))return s(!i.f.call(t,e),t[e])}},"0cfb":function(t,e,n){var r=n("83ab"),i=n("d039"),s=n("cc12");t.exports=!r&&!i((function(){return 7!=Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},"19aa":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},"1be4":function(t,e,n){var r=n("d066");t.exports=r("document","documentElement")},"1c0b":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(t,e,n){var r=n("b622"),i=r("iterator"),s=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){s=!0}};a[i]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!s)return!1;var n=!1;try{var r={};r[i]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(c){}return n}},"1cdc":function(t,e,n){var r=n("342f");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},"1d80":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"1dde":function(t,e,n){var r=n("d039"),i=n("b622"),s=n("2d00"),o=i("species");t.exports=function(t){return s>=51||!r((function(){var e=[],n=e.constructor={};return n[o]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},2266:function(t,e,n){var r=n("825a"),i=n("e95a"),s=n("50c4"),o=n("0366"),a=n("35a1"),c=n("9bdd"),u=function(t,e){this.stopped=t,this.result=e},l=t.exports=function(t,e,n,l,h){var f,d,p,y,b,g,m,v=o(e,n,l?2:1);if(h)f=t;else{if(d=a(t),"function"!=typeof d)throw TypeError("Target is not iterable");if(i(d)){for(p=0,y=s(t.length);y>p;p++)if(b=l?v(r(m=t[p])[0],m[1]):v(t[p]),b&&b instanceof u)return b;return new u(!1)}f=d.call(t)}g=f.next;while(!(m=g.call(f)).done)if(b=c(f,v,m.value,l),"object"==typeof b&&b&&b instanceof u)return b;return new u(!1)};l.stop=function(t){return new u(!0,t)}},"23cb":function(t,e,n){var r=n("a691"),i=Math.max,s=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):s(n,e)}},"23e7":function(t,e,n){var r=n("da84"),i=n("06cf").f,s=n("9112"),o=n("6eeb"),a=n("ce4e"),c=n("e893"),u=n("94ca");t.exports=function(t,e){var n,l,h,f,d,p,y=t.target,b=t.global,g=t.stat;if(l=b?r:g?r[y]||a(y,{}):(r[y]||{}).prototype,l)for(h in e){if(d=e[h],t.noTargetGet?(p=i(l,h),f=p&&p.value):f=l[h],n=u(b?h:y+(g?".":"#")+h,t.forced),!n&&void 0!==f){if(typeof d===typeof f)continue;c(d,f)}(t.sham||f&&f.sham)&&s(d,"sham",!0),o(l,h,d,t)}}},"241c":function(t,e,n){var r=n("ca84"),i=n("7839"),s=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,s)}},2626:function(t,e,n){"use strict";var r=n("d066"),i=n("9bf2"),s=n("b622"),o=n("83ab"),a=s("species");t.exports=function(t){var e=r(t),n=i.f;o&&e&&!e[a]&&n(e,a,{configurable:!0,get:function(){return this}})}},"2cf4":function(t,e,n){var r,i,s,o=n("da84"),a=n("d039"),c=n("c6b6"),u=n("0366"),l=n("1be4"),h=n("cc12"),f=n("1cdc"),d=o.location,p=o.setImmediate,y=o.clearImmediate,b=o.process,g=o.MessageChannel,m=o.Dispatch,v=0,_={},w="onreadystatechange",I=function(t){if(_.hasOwnProperty(t)){var e=_[t];delete _[t],e()}},S=function(t){return function(){I(t)}},O=function(t){I(t.data)},T=function(t){o.postMessage(t+"",d.protocol+"//"+d.host)};p&&y||(p=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return _[++v]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},r(v),v},y=function(t){delete _[t]},"process"==c(b)?r=function(t){b.nextTick(S(t))}:m&&m.now?r=function(t){m.now(S(t))}:g&&!f?(i=new g,s=i.port2,i.port1.onmessage=O,r=u(s.postMessage,s,1)):!o.addEventListener||"function"!=typeof postMessage||o.importScripts||a(T)||"file:"===d.protocol?r=w in h("script")?function(t){l.appendChild(h("script"))[w]=function(){l.removeChild(this),I(t)}}:function(t){setTimeout(S(t),0)}:(r=T,o.addEventListener("message",O,!1))),t.exports={set:p,clear:y}},"2d00":function(t,e,n){var r,i,s=n("da84"),o=n("342f"),a=s.process,c=a&&a.versions,u=c&&c.v8;u?(r=u.split("."),i=r[0]+r[1]):o&&(r=o.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/),r&&(i=r[1]))),t.exports=i&&+i},"320c":function(t,e,n){"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;function o(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function a(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map((function(t){return e[t]}));if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(t){i[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(s){return!1}}t.exports=a()?Object.assign:function(t,e){for(var n,a,c=o(t),u=1;uc)i.f(t,n=r[c++],e[n]);return t}},"3bbe":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3f8c":function(t,e){t.exports={}},"428f":function(t,e,n){var r=n("da84");t.exports=r},"44ad":function(t,e,n){var r=n("d039"),i=n("c6b6"),s="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?s.call(t,""):Object(t)}:Object},"44d2":function(t,e,n){var r=n("b622"),i=n("7c73"),s=n("9bf2"),o=r("unscopables"),a=Array.prototype;void 0==a[o]&&s.f(a,o,{configurable:!0,value:i(null)}),t.exports=function(t){a[o][t]=!0}},"44de":function(t,e,n){var r=n("da84");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},4840:function(t,e,n){var r=n("825a"),i=n("1c0b"),s=n("b622"),o=s("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||void 0==(n=r(s)[o])?e:i(n)}},4930:function(t,e,n){var r=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},"4cec":function(t,e,n){"use strict";t.exports=n("a93d")},"4d64":function(t,e,n){var r=n("fc6a"),i=n("50c4"),s=n("23cb"),o=function(t){return function(e,n,o){var a,c=r(e),u=i(c.length),l=s(o,u);if(t&&n!=n){while(u>l)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},"50c4":function(t,e,n){var r=n("a691"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5692:function(t,e,n){var r=n("c430"),i=n("c6cd");(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(t,e,n){var r=n("d066"),i=n("241c"),s=n("7418"),o=n("825a");t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(o(t)),n=s.f;return n?e.concat(n(t)):e}},"5c40":function(t,e,n){"use strict";n.d(e,"a",(function(){return qt})),n.d(e,"b",(function(){return et})),n.d(e,"c",(function(){return d})),n.d(e,"d",(function(){return ut})),n.d(e,"e",(function(){return vt})),n.d(e,"f",(function(){return Fe})),n.d(e,"g",(function(){return De})),n.d(e,"h",(function(){return mt})),n.d(e,"i",(function(){return yt})),n.d(e,"j",(function(){return vn})),n.d(e,"k",(function(){return sn})),n.d(e,"l",(function(){return ee})),n.d(e,"m",(function(){return _n})),n.d(e,"n",(function(){return Ht})),n.d(e,"o",(function(){return Vt})),n.d(e,"p",(function(){return $t})),n.d(e,"q",(function(){return Pt})),n.d(e,"r",(function(){return at})),n.d(e,"s",(function(){return K})),n.d(e,"t",(function(){return H})),n.d(e,"u",(function(){return wn})),n.d(e,"v",(function(){return In})),n.d(e,"w",(function(){return Z})),n.d(e,"x",(function(){return Zt})),n.d(e,"y",(function(){return te})),n.d(e,"z",(function(){return Kt})),n.d(e,"A",(function(){return o})),n.d(e,"B",(function(){return Ue})),n.d(e,"C",(function(){return $})),n.d(e,"D",(function(){return G}));var r=n("a1e9"),i=n("9ff4");const s=[];function o(t,...e){Object(r["f"])();const n=s.length?s[s.length-1].component:null,i=n&&n.appContext.config.warnHandler,o=a();if(i)f(i,n,11,[t+e.join(""),n&&n.proxy,o.map(({vnode:t})=>`at <${gn(n,t.type)}>`).join("\n"),o]);else{const n=["[Vue warn]: "+t,...e];o.length&&n.push("\n",...c(o)),console.warn(...n)}Object(r["j"])()}function a(){let t=s[s.length-1];if(!t)return[];const e=[];while(t){const n=e[0];n&&n.vnode===t?n.recurseCount++:e.push({vnode:t,recurseCount:0});const r=t.component&&t.component.parent;t=r&&r.vnode}return e}function c(t){const e=[];return t.forEach((t,n)=>{e.push(...0===n?[]:["\n"],...u(t))}),e}function u({vnode:t,recurseCount:e}){const n=e>0?`... (${e} recursive calls)`:"",r=!!t.component&&null==t.component.parent,i=" at <"+gn(t.component,t.type,r),s=">"+n;return t.props?[i,...l(t.props),s]:[i+s]}function l(t){const e=[],n=Object.keys(t);return n.slice(0,3).forEach(n=>{e.push(...h(n,t[n]))}),n.length>3&&e.push(" ..."),e}function h(t,e,n){return Object(i["x"])(e)?(e=JSON.stringify(e),n?e:[`${t}=${e}`]):"number"===typeof e||"boolean"===typeof e||null==e?n?e:[`${t}=${e}`]:Object(r["e"])(e)?(e=h(t,Object(r["m"])(e.value),!0),n?e:[t+"=Ref<",e,">"]):Object(i["n"])(e)?[`${t}=fn${e.name?`<${e.name}>`:""}`]:(e=Object(r["m"])(e),n?e:[t+"=",e])}function f(t,e,n,r){let i;try{i=r?t(...r):t()}catch(s){p(s,e,n)}return i}function d(t,e,n,r){if(Object(i["n"])(t)){const s=f(t,e,n,r);return s&&Object(i["t"])(s)&&s.catch(t=>{p(t,e,n)}),s}const s=[];for(let i=0;i-1&&(b[e]=null)}function B(t){Object(i["m"])(t)?g.push(...t):S&&S.includes(t,O+1)||g.push(t),j()}function j(){_||w||(w=!0,v=m.then(L))}function D(t){if(g.length){for(S=[...new Set(g)],g.length=0,O=0;Onull==t.id?1/0:t.id;function L(t){for(w=!1,_=!0,b.sort((t,e)=>F(t)-F(e)),I=0;I1?n(a,{attrs:u,slots:c,emit:l}):n(a,null)),t=e.props?u:C(u)}let p=g;if(!1!==e.inheritAttrs&&t){const e=Object.keys(t),{shapeFlag:n}=p;e.length&&(1&n||6&n)&&(1&n&&e.some(i["q"])&&(t=N(t)),p=gt(p,t))}const m=r.scopeId,v=m&&p.scopeId!==m,_=n&&n.type.__scopeId,w=_&&_!==m?_+"-s":null;if(v||w){const t={};v&&(t[m]=""),w&&(t[w]=""),p=gt(p,t)}r.dirs&&(p.dirs=r.dirs),r.transition&&(p.transition=r.transition),g=p}catch(m){p(m,t,1),g=yt(rt)}return E=null,g}const C=t=>{let e;for(const n in t)("class"===n||"style"===n||Object(i["s"])(n))&&((e||(e={}))[n]=t[n]);return e},N=t=>{const e={};for(const n in t)Object(i["q"])(n)||(e[n]=t[n]);return e};function k(t,e,n){const{props:r,children:i}=t,{props:s,children:o,patchFlag:a}=e;if(e.dirs||e.transition)return!0;if(!(n&&a>0))return!(!i&&!o||o&&o.$stable)||r!==s&&(r?!s||V(r,s):!!s);if(1024&a)return!0;if(16&a)return r?V(r,s):!!s;if(8&a){const t=e.dynamicProps;for(let e=0;et.__isSuspense;function z(t,e){e&&!e.isResolved?Object(i["m"])(t)?e.effects.push(...t):e.effects.push(t):B(t)}function $(t,e=E){return e?function(){const n=E;M(e);const r=t.apply(null,arguments);return M(n),r}:t}let Y=null;const W=[];function H(t){W.push(Y=t)}function K(){W.pop(),Y=W[W.length-1]||null}function G(t){return e=>$((function(){H(t);const n=e.apply(this,arguments);return K(),n}))}const q=t=>t.__isTeleport;const J="components";function Z(t){return Q(J,t)||t}const X=Symbol();function Q(t,e,n=!0){const r=E||rn;if(r){const n=r.type;if(t===J){const t=n.displayName||n.name;if(t&&(t===e||t===Object(i["e"])(e)||t===Object(i["f"])(Object(i["e"])(e))))return n}const s=tt(n[t],e)||tt(r.appContext[t],e);return s}}function tt(t,e){return t&&(t[e]||t[Object(i["e"])(e)]||t[Object(i["f"])(Object(i["e"])(e))])}const et=Symbol(void 0),nt=Symbol(void 0),rt=Symbol(void 0),it=Symbol(void 0),st=[];let ot=null;function at(t=!1){st.push(ot=t?null:[])}let ct=1;function ut(t,e,n,r,s){const o=yt(t,e,n,r,s,!0);return o.dynamicChildren=ot||i["a"],st.pop(),ot=st[st.length-1]||null,ot&&ot.push(o),o}function lt(t){return!!t&&!0===t.__v_isVNode}function ht(t,e){return t.type===e.type&&t.key===e.key}const ft="__vInternal",dt=({key:t})=>null!=t?t:null,pt=({ref:t})=>null!=t?Object(i["m"])(t)?t:[E,t]:null,yt=bt;function bt(t,e=null,n=null,s=0,o=null,a=!1){if(t&&t!==X||(t=rt),lt(t)){const r=gt(t,e);return n&&It(r,n),r}if(Object(i["n"])(t)&&"__vccOpts"in t&&(t=t.__vccOpts),e){(Object(r["c"])(e)||ft in e)&&(e=Object(i["h"])({},e));let{class:t,style:n}=e;t&&!Object(i["x"])(t)&&(e.class=Object(i["C"])(t)),Object(i["r"])(n)&&(Object(r["c"])(n)&&!Object(i["m"])(n)&&(n=Object(i["h"])({},n)),e.style=Object(i["D"])(n))}const c=Object(i["x"])(t)?1:P(t)?128:q(t)?64:Object(i["r"])(t)?4:Object(i["n"])(t)?2:0;const u={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&dt(e),ref:e&&pt(e),scopeId:Y,children:null,component:null,suspense:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:c,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null};return It(u,n),ct>0&&!a&&ot&&32!==s&&(s>0||6&c)&&ot.push(u),u}function gt(t,e){const{props:n,patchFlag:r}=t,s=e?n?St(n,e):Object(i["h"])({},e):n;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:s,key:s&&dt(s),ref:e&&e.ref?pt(e):t.ref,scopeId:t.scopeId,children:t.children,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==et?-1===r?16:16|r:r,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,el:t.el,anchor:t.anchor}}function mt(t=" ",e=0){return yt(nt,null,t,e)}function vt(t="",e=!1){return e?(at(),ut(rt,null,t)):yt(rt,null,t)}function _t(t){return null==t||"boolean"===typeof t?yt(rt):Object(i["m"])(t)?yt(et,null,t):"object"===typeof t?null===t.el?t:gt(t):yt(nt,null,String(t))}function wt(t){return null===t.el?t:gt(t)}function It(t,e){let n=0;const{shapeFlag:r}=t;if(null==e)e=null;else if(Object(i["m"])(e))n=16;else if("object"===typeof e){if((1&r||64&r)&&e.default)return void It(t,e.default());{n=32;const r=e._;r||ft in e?3===r&&E&&(1024&E.vnode.patchFlag?(e._=2,t.patchFlag|=1024):e._=1):e._ctx=E}}else Object(i["n"])(e)?(e={default:e,_ctx:E},n=32):(e=String(e),64&r?(n=16,e=[mt(e)]):n=8);t.children=e,t.shapeFlag|=n}function St(...t){const e=Object(i["h"])({},t[0]);for(let n=1;nObject(i["h"])(n,Tt(t))))),e||r?(Object(i["m"])(e)?e.forEach(t=>n[t]=null):Object(i["h"])(n,e),t.__emits=n):t.__emits=void 0}function At(t,e){let n;return!(!Object(i["s"])(e)||!(n=Tt(t)))&&(e=e.replace(/Once$/,""),Object(i["j"])(n,e[2].toLowerCase()+e.slice(3))||Object(i["j"])(n,e.slice(2)))}function xt(t,e,n,s=!1){const o={},a={};Object(i["g"])(a,ft,1),jt(t,e,o,a),n?t.props=s?o:Object(r["k"])(o):t.type.props?t.props=o:t.props=a,t.attrs=a}function Bt(t,e,n,s){const{props:o,attrs:a,vnode:{patchFlag:c}}=t,u=Object(r["m"])(o),[l]=Ft(t.type);if(!(s||c>0)||16&c){let r;jt(t,e,o,a);for(const t in u)e&&(Object(i["j"])(e,t)||(r=Object(i["k"])(t))!==t&&Object(i["j"])(e,r))||(l?!n||void 0===n[t]&&void 0===n[r]||(o[t]=Dt(l,e||i["b"],t,void 0)):delete o[t]);if(a!==u)for(const t in a)e&&Object(i["j"])(e,t)||delete a[t]}else if(8&c){const n=t.vnode.dynamicProps;for(let t=0;t{const[e,s]=Ft(t);Object(i["h"])(n,e),s&&r.push(...s)};t.extends&&(s=!0,e(t.extends)),t.mixins&&(s=!0,t.mixins.forEach(e))}if(!e&&!s)return t.__props=i["a"];if(Object(i["m"])(e))for(let a=0;a-1,a[1]=e<0||t-1||Object(i["j"])(a,"default"))&&r.push(s)}}}}const o=[n,r];return t.__props=o,o}function Lt(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Et(t,e){return Lt(t)===Lt(e)}function Mt(t,e){if(Object(i["m"])(e)){for(let n=0,r=e.length;n{if(n.isUnmounted)return;Object(r["f"])(),on(n);const s=d(e,n,t,i);return on(null),Object(r["j"])(),s});i?s.unshift(o):s.push(o)}else 0}const Nt=t=>(e,n=rn)=>!cn&&Ct(t,e,n),kt=Nt("bm"),Vt=Nt("m"),Rt=Nt("bu"),Pt=Nt("u"),zt=Nt("bum"),$t=Nt("um"),Yt=Nt("rtg"),Wt=Nt("rtc"),Ht=(t,e=rn)=>{Ct("ec",t,e)};function Kt(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Vt(()=>{t.isMounted=!0}),zt(()=>{t.isUnmounting=!0}),t}const Gt={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Function,onEnter:Function,onAfterEnter:Function,onEnterCancelled:Function,onBeforeLeave:Function,onLeave:Function,onAfterLeave:Function,onLeaveCancelled:Function,onBeforeAppear:Function,onAppear:Function,onAfterAppear:Function,onAppearCancelled:Function},setup(t,{slots:e}){const n=sn(),i=Kt();let s;return()=>{const o=e.default&&ee(e.default(),!0);if(!o||!o.length)return;const a=Object(r["m"])(t),{mode:c}=a;const u=o[0];if(i.isLeaving)return Xt(u);const l=Qt(u);if(!l)return Xt(u);const h=l.transition=Zt(l,a,i,n),f=n.subTree,d=f&&Qt(f);let p=!1;const{getTransitionKey:y}=l.type;if(y){const t=y();void 0===s?s=t:t!==s&&(s=t,p=!0)}if(d&&d.type!==rt&&(!ht(l,d)||p)){const t=Zt(d,a,i,n);if(te(d,t),"out-in"===c)return i.isLeaving=!0,t.afterLeave=()=>{i.isLeaving=!1,n.update()},Xt(u);"in-out"===c&&(t.delayLeave=(t,e,n)=>{const r=Jt(i,d);r[String(d.key)]=d,t._leaveCb=()=>{e(),t._leaveCb=void 0,delete h.delayedLeave},h.delayedLeave=n})}return u}}},qt=Gt;function Jt(t,e){const{leavingVNodes:n}=t;let r=n.get(e.type);return r||(r=Object.create(null),n.set(e.type,r)),r}function Zt(t,{appear:e,persisted:n=!1,onBeforeEnter:r,onEnter:i,onAfterEnter:s,onEnterCancelled:o,onBeforeLeave:a,onLeave:c,onAfterLeave:u,onLeaveCancelled:l,onBeforeAppear:h,onAppear:f,onAfterAppear:p,onAppearCancelled:y},b,g){const m=String(t.key),v=Jt(b,t),_=(t,e)=>{t&&d(t,g,9,e)},w={persisted:n,beforeEnter(n){let i=r;if(!b.isMounted){if(!e)return;i=h||r}n._leaveCb&&n._leaveCb(!0);const s=v[m];s&&ht(t,s)&&s.el._leaveCb&&s.el._leaveCb(),_(i,[n])},enter(t){let n=i,r=s,a=o;if(!b.isMounted){if(!e)return;n=f||i,r=p||s,a=y||o}let c=!1;const u=t._enterCb=e=>{c||(c=!0,_(e?a:r,[t]),w.delayedLeave&&w.delayedLeave(),t._enterCb=void 0)};n?(n(t,u),n.length<=1&&u()):u()},leave(e,n){const r=String(t.key);if(e._enterCb&&e._enterCb(!0),b.isUnmounting)return n();_(a,[e]);let i=!1;const s=e._leaveCb=s=>{i||(i=!0,n(),_(s?l:u,[e]),e._leaveCb=void 0,v[r]===t&&delete v[r])};v[r]=t,c?(c(e,s),c.length<=1&&s()):s()}};return w}function Xt(t){if(ne(t))return t=gt(t),t.children=null,t}function Qt(t){return ne(t)?t.children?t.children[0]:void 0:t}function te(t,e){6&t.shapeFlag&&t.component?te(t.component.subTree,e):t.transition=e}function ee(t,e=!1){let n=[],r=0;for(let i=0;i1)for(let i=0;it.type.__isKeepAlive;RegExp,RegExp;function re(t){return t.displayName||t.name}function ie(t,e){return Object(i["m"])(t)?t.some(t=>ie(t,e)):Object(i["x"])(t)?t.split(",").indexOf(e)>-1:!!t.test&&t.test(e)}function se(t,e){ae(t,"a",e)}function oe(t,e){ae(t,"da",e)}function ae(t,e,n=rn){const r=t.__wdc||(t.__wdc=()=>{let e=n;while(e){if(e.isDeactivated)return;e=e.parent}t()});if(Ct(e,r,n),n){let t=n.parent;while(t&&t.parent)ne(t.parent.vnode)&&ce(r,e,n,t),t=t.parent}}function ce(t,e,n,r){Ct(e,t,r,!0),$t(()=>{Object(i["E"])(r[e],t)},n)}function ue(t){let e=t.shapeFlag;256&e&&(e-=256),512&e&&(e-=512),t.shapeFlag=e}const le=t=>"_"===t[0]||"$stable"===t,he=t=>Object(i["m"])(t)?t.map(_t):[_t(t)],fe=(t,e,n)=>$(t=>he(e(t)),n),de=(t,e)=>{const n=t._ctx;for(const r in t){if(le(r))continue;const s=t[r];if(Object(i["n"])(s))e[r]=fe(r,s,n);else if(null!=s){0;const t=he(s);e[r]=()=>t}}},pe=(t,e)=>{const n=he(e);t.slots.default=()=>n},ye=(t,e)=>{if(32&t.vnode.shapeFlag){const n=e._;n?(t.slots=e,Object(i["g"])(e,"_",n)):de(e,t.slots={})}else t.slots={},e&&pe(t,e);Object(i["g"])(t.slots,ft,1)},be=(t,e)=>{const{vnode:n,slots:r}=t;let s=!0,o=i["b"];if(32&n.shapeFlag){const t=e._;t?1===t?s=!1:Object(i["h"])(r,e):(s=!e.$stable,de(e,r)),o=e}else e&&(pe(t,e),o={default:1});if(s)for(const i in r)le(i)||i in o||delete r[i]};function ge(t,e,n,r){const i=t.dirs,s=e&&e.dirs;for(let o=0;o/svg/.test(t.namespaceURI)&&"foreignObject"!==t.tagName,Oe=t=>8===t.nodeType;function Te(t){const{mt:e,p:n,o:{patchProp:r,nextSibling:s,parentNode:o,remove:a,insert:c,createComment:u}}=t,l=(t,e)=>{Ie=!1,h(e.firstChild,t,null,null),D(),Ie&&console.error("Hydration completed but contains mismatches.")},h=(n,r,i,a,c=!1)=>{const u=Oe(n)&&"["===n.data,l=()=>y(n,r,i,a,u),{type:g,ref:m,shapeFlag:v}=r,_=n.nodeType;r.el=n;let w=null;switch(g){case nt:3!==_?w=l():(n.data!==r.children&&(Ie=!0,n.data=r.children),w=s(n));break;case rt:w=8!==_||u?l():s(n);break;case it:if(1===_){w=n;const t=!r.children.length;for(let e=0;e{e(r,t,null,i,a,Se(t),c)},h=r.type.__asyncLoader;h?h().then(l):l(),w=u?b(n):s(n)}else 64&v?w=8!==_?l():r.type.hydrate(n,r,i,a,c,t,d):128&v&&(w=r.type.hydrate(n,r,i,a,Se(o(n)),c,t,h))}return null!=m&&i&&je(m,null,i,a,r),w},f=(t,e,n,s,o)=>{o=o||!!e.dynamicChildren;const{props:c,patchFlag:u,shapeFlag:l,dirs:h}=e;if(-1!==u){if(c)if(!o||16&u||32&u)for(const e in c)!Object(i["u"])(e)&&Object(i["s"])(e)&&r(t,e,null,c[e]);else c.onClick&&r(t,"onClick",null,c.onClick);let f;if((f=c&&c.onVnodeBeforeMount)&&Ee(f,n,e),h&&ge(e,null,n,"beforeMount"),((f=c&&c.onVnodeMounted)||h)&&z(()=>{f&&Ee(f,n,e),h&&ge(e,null,n,"mounted")},s),16&l&&(!c||!c.innerHTML&&!c.textContent)){let r=d(t.firstChild,e,t,n,s,o);while(r){Ie=!0;const t=r;r=r.nextSibling,a(t)}}else 8&l&&t.textContent!==e.children&&(Ie=!0,t.textContent=e.children)}return t.nextSibling},d=(t,e,r,i,s,o)=>{o=o||!!e.dynamicChildren;const a=e.children,c=a.length;for(let u=0;u{const a=o(t),l=d(s(t),e,a,n,r,i);return l&&Oe(l)&&"]"===l.data?s(e.anchor=l):(Ie=!0,c(e.anchor=u("]"),a,l),l)},y=(t,e,r,i,c)=>{if(Ie=!0,e.el=null,c){const e=b(t);while(1){const n=s(t);if(!n||n===e)break;a(n)}}const u=s(t),l=o(t);return a(t),n(null,e,l,u,r,i,Se(l)),u},b=t=>{let e=0;while(t)if(t=s(t),t&&Oe(t)&&("["===t.data&&e++,"]"===t.data)){if(0===e)return s(t);e--}return t};return[l,h]}function Ae(){}const xe={scheduler:A};const Be=z,je=(t,e,n,s,o)=>{let a;a=o?4&o.shapeFlag?o.component.proxy:o.el:null;const[c,u]=t;const l=e&&e[1],h=c.refs===i["b"]?c.refs={}:c.refs,d=c.setupState;null!=l&&l!==u&&(Object(i["x"])(l)?(h[l]=null,Object(i["j"])(d,l)&&Be(()=>{d[l]=null},s)):Object(r["e"])(l)&&(l.value=null)),Object(i["x"])(u)?(h[u]=a,Object(i["j"])(d,u)&&Be(()=>{d[u]=a},s)):Object(r["e"])(u)?u.value=a:Object(i["n"])(u)&&f(u,n,12,[a,h])};function De(t){return Le(t)}function Fe(t){return Le(t,Te)}function Le(t,e){Ae();const{insert:n,remove:s,patchProp:o,forcePatchProp:a,createElement:c,createText:u,createComment:l,setText:h,setElementText:f,parentNode:d,nextSibling:p,setScopeId:y=i["d"],cloneNode:b,insertStaticContent:g}=t,m=(t,e,n,r=null,i=null,s=null,o=!1,a=!1)=>{t&&!ht(t,e)&&(r=G(t),$(t,i,s,!0),t=null),-2===e.patchFlag&&(a=!1,e.dynamicChildren=null);const{type:c,ref:u,shapeFlag:l}=e;switch(c){case nt:v(t,e,n,r);break;case rt:_(t,e,n,r);break;case it:null==t&&w(e,n,r,o);break;case et:j(t,e,n,r,i,s,o,a);break;default:1&l?I(t,e,n,r,i,s,o,a):6&l?F(t,e,n,r,i,s,o,a):(64&l||128&l)&&c.process(t,e,n,r,i,s,o,a,J)}null!=u&&i&&je(u,t&&t.ref,i,s,e)},v=(t,e,r,i)=>{if(null==t)n(e.el=u(e.children),r,i);else{const n=e.el=t.el;e.children!==t.children&&h(n,e.children)}},_=(t,e,r,i)=>{null==t?n(e.el=l(e.children||""),r,i):e.el=t.el},w=(t,e,n,r)=>{[t.el,t.anchor]=g(t.children,e,n,r)},I=(t,e,n,r,i,s,o,a)=>{o=o||"svg"===e.type,null==t?S(e,n,r,i,s,o,a):T(t,e,i,s,o,a)},S=(t,e,r,s,a,u,l)=>{let h,d;const{type:p,props:g,shapeFlag:m,transition:v,scopeId:_,patchFlag:w,dirs:I}=t;if(t.el&&void 0!==b&&-1===w)h=t.el=b(t.el);else{if(h=t.el=c(t.type,u,g&&g.is),8&m?f(h,t.children):16&m&&O(t.children,h,null,s,a,u&&"foreignObject"!==p,l||!!t.dynamicChildren),g){for(const e in g)Object(i["u"])(e)||o(h,e,null,g[e],u,t.children,s,a,K);(d=g.onVnodeBeforeMount)&&Ee(d,s,t)}I&&ge(t,null,s,"beforeMount"),_&&y(h,_);const e=s&&s.type.__scopeId;e&&e!==_&&y(h,e+"-s"),v&&!v.persisted&&v.beforeEnter(h)}n(h,e,r);const S=(!a||a&&a.isResolved)&&v&&!v.persisted;((d=g&&g.onVnodeMounted)||S||I)&&Be(()=>{d&&Ee(d,s,t),S&&v.enter(h),I&&ge(t,null,s,"mounted")},a)},O=(t,e,n,r,i,s,o,a=0)=>{for(let c=a;c{const u=e.el=t.el;let{patchFlag:l,dynamicChildren:h,dirs:d}=e;l|=16&t.patchFlag;const p=t.props||i["b"],y=e.props||i["b"];let b;if((b=y.onVnodeBeforeUpdate)&&Ee(b,n,e,t),d&&ge(e,t,n,"beforeUpdate"),l>0){if(16&l)B(u,e,p,y,n,r,s);else if(2&l&&p.class!==y.class&&o(u,"class",null,y.class,s),4&l&&o(u,"style",p.style,y.style,s),8&l){const i=e.dynamicProps;for(let e=0;e{b&&Ee(b,n,e,t),d&&ge(e,t,n,"updated")},r)},A=(t,e,n,r,i,s)=>{for(let o=0;o{if(n!==r){for(const l in r){if(Object(i["u"])(l))continue;const h=r[l],f=n[l];(h!==f||a&&a(t,l))&&o(t,l,f,h,u,e.children,s,c,K)}if(n!==i["b"])for(const a in n)Object(i["u"])(a)||a in r||o(t,a,n[a],null,u,e.children,s,c,K)}},j=(t,e,r,i,s,o,a,c)=>{const l=e.el=t?t.el:u(""),h=e.anchor=t?t.anchor:u("");let{patchFlag:f,dynamicChildren:d}=e;f>0&&(c=!0),null==t?(n(l,r,i),n(h,r,i),O(e.children,r,h,s,o,a,c)):f>0&&64&f&&d?A(t.dynamicChildren,d,r,s,o,a):N(t,e,r,h,s,o,a,c)},F=(t,e,n,r,i,s,o,a)=>{null==t?512&e.shapeFlag?i.ctx.activate(e,n,r,o,a):L(e,n,r,i,s,o,a):E(t,e,a)},L=(t,e,n,r,i,s,o)=>{const a=t.component=nn(t,r,i);if(ne(t)&&(a.ctx.renderer=J),un(a),a.asyncDep){if(!i)return void 0;if(i.registerDep(a,M),!t.el){const t=a.subTree=yt(rt);_(null,t,e,n)}}else M(a,t,e,n,i,s,o)},E=(t,e,n)=>{const r=e.component=t.component;if(k(t,e,n)){if(r.asyncDep&&!r.asyncResolved)return void C(r,e,n);r.next=e,x(r.update),r.update()}else e.component=t.component,e.el=t.el,r.vnode=e},M=(t,e,n,s,o,a,c)=>{t.update=Object(r["b"])((function(){if(t.isMounted){let e,{next:n,bu:r,u:s,parent:u,vnode:l}=t,h=n;0,n?C(t,n,c):n=l;const f=U(t);0;const p=t.subTree;t.subTree=f,n.el=l.el,r&&Object(i["l"])(r),(e=n.props&&n.props.onVnodeBeforeUpdate)&&Ee(e,u,n,l),t.refs!==i["b"]&&(t.refs={}),m(p,f,d(p.el),G(p),t,o,a),n.el=f.el,null===h&&R(t,f.el),s&&Be(s,o),(e=n.props&&n.props.onVnodeUpdated)&&Be(()=>{Ee(e,u,n,l)},o)}else{let r;const{el:c,props:u}=e,{bm:l,m:h,a:f,parent:d}=t;0;const p=t.subTree=U(t);0,l&&Object(i["l"])(l),(r=u&&u.onVnodeBeforeMount)&&Ee(r,d,e),c&&X?X(e.el,p,t,o):(m(null,p,n,s,t,o,a),e.el=p.el),h&&Be(h,o),(r=u&&u.onVnodeMounted)&&Be(()=>{Ee(r,d,e)},o),f&&256&e.shapeFlag&&Be(f,o),t.isMounted=!0}}),xe)},C=(t,e,n)=>{e.component=t;const r=t.vnode.props;t.vnode=e,t.next=null,Bt(t,e.props,r,n),be(t,e.children)},N=(t,e,n,r,i,s,o,a=!1)=>{const c=t&&t.children,u=t?t.shapeFlag:0,l=e.children,{patchFlag:h,shapeFlag:d}=e;if(h>0){if(128&h)return void P(c,l,n,r,i,s,o,a);if(256&h)return void V(c,l,n,r,i,s,o,a)}8&d?(16&u&&K(c,i,s),l!==c&&f(n,l)):16&u?16&d?P(c,l,n,r,i,s,o,a):K(c,i,s,!0):(8&u&&f(n,""),16&d&&O(l,n,r,i,s,o,a))},V=(t,e,n,r,s,o,a,c)=>{t=t||i["a"],e=e||i["a"];const u=t.length,l=e.length,h=Math.min(u,l);let f;for(f=0;fl?K(t,s,o,!0,h):O(e,n,r,s,o,a,c,h)},P=(t,e,n,r,s,o,a,c)=>{let u=0;const l=e.length;let h=t.length-1,f=l-1;while(u<=h&&u<=f){const r=t[u],i=e[u]=c?wt(e[u]):_t(e[u]);if(!ht(r,i))break;m(r,i,n,null,s,o,a,c),u++}while(u<=h&&u<=f){const r=t[h],i=e[f]=c?wt(e[f]):_t(e[f]);if(!ht(r,i))break;m(r,i,n,null,s,o,a,c),h--,f--}if(u>h){if(u<=f){const t=f+1,i=tf)while(u<=h)$(t[u],s,o,!0),u++;else{const d=u,p=u,y=new Map;for(u=p;u<=f;u++){const t=e[u]=c?wt(e[u]):_t(e[u]);null!=t.key&&y.set(t.key,u)}let b,g=0;const v=f-p+1;let _=!1,w=0;const I=new Array(v);for(u=0;u=v){$(r,s,o,!0);continue}let i;if(null!=r.key)i=y.get(r.key);else for(b=p;b<=f;b++)if(0===I[b-p]&&ht(r,e[b])){i=b;break}void 0===i?$(r,s,o,!0):(I[i-p]=u+1,i>=w?w=i:_=!0,m(r,e[i],n,null,s,o,a,c),g++)}const S=_?Me(I):i["a"];for(b=S.length-1,u=v-1;u>=0;u--){const t=p+u,i=e[t],c=t+1{const{el:o,type:a,transition:c,children:u,shapeFlag:l}=t;if(6&l)return void z(t.component.subTree,e,r,i);if(128&l)return void t.suspense.move(e,r,i);if(64&l)return void a.move(t,e,r,J);if(a===et){n(o,e,r);for(let t=0;tc.enter(o),s);else{const{leave:t,delayLeave:i,afterLeave:s}=c,a=()=>n(o,e,r),u=()=>{t(o,()=>{a(),s&&s()})};i?i(o,a,u):u()}else n(o,e,r)},$=(t,e,n,r=!1)=>{const{type:i,props:s,ref:o,children:a,dynamicChildren:c,shapeFlag:u,patchFlag:l,dirs:h}=t;if(null!=o&&e&&je(o,null,e,n,null),256&u)return void e.ctx.deactivate(t);const f=1&u&&h;let d;if((d=s&&s.onVnodeBeforeUnmount)&&Ee(d,e,t),6&u)H(t.component,n,r);else{if(128&u)return void t.suspense.unmount(n,r);f&&ge(t,null,e,"beforeUnmount"),c&&(i!==et||l>0&&64&l)?K(c,e,n):16&u&&K(a,e,n),64&u&&t.type.remove(t,J),r&&Y(t)}((d=s&&s.onVnodeUnmounted)||f)&&Be(()=>{d&&Ee(d,e,t),f&&ge(t,null,e,"unmounted")},n)},Y=t=>{const{type:e,el:n,anchor:r,transition:i}=t;if(e===et)return void W(n,r);const o=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&t.shapeFlag&&i&&!i.persisted){const{leave:e,delayLeave:r}=i,s=()=>e(n,o);r?r(t.el,o,s):s()}else o()},W=(t,e)=>{let n;while(t!==e)n=p(t),s(t),t=n;s(e)},H=(t,e,n)=>{const{bum:s,effects:o,update:a,subTree:c,um:u,da:l,isDeactivated:h}=t;if(s&&Object(i["l"])(s),o)for(let i=0;i{t.isUnmounted=!0},e),!e||e.isResolved||e.isUnmounted||!t.asyncDep||t.asyncResolved||(e.deps--,0===e.deps&&e.resolve())},K=(t,e,n,r=!1,i=0)=>{for(let s=i;s6&t.shapeFlag?G(t.component.subTree):128&t.shapeFlag?t.suspense.next():p(t.anchor||t.el),q=(t,e)=>{null==t?e._vnode&&$(e._vnode,null,null,!0):m(e._vnode||null,t,e),D(),e._vnode=t},J={p:m,um:$,m:z,r:Y,mt:L,mc:O,pc:N,pbc:A,n:G,o:t};let Z,X;return e&&([Z,X]=e(J)),{render:q,hydrate:Z,createApp:we(q,Z)}}function Ee(t,e,n,r=null){d(t,e,7,[n,r])}function Me(t){const e=t.slice(),n=[0];let r,i,s,o,a;const c=t.length;for(r=0;r0&&(e[r]=n[s-1]),n[s]=r)}}s=n.length,o=n[s-1];while(s-- >0)n[s]=o,o=e[o];return n}function Ue(t,e){return ke(t,null,e)}const Ce={};function Ne(t,e,n){return ke(t,e,n)}function ke(t,e,{immediate:n,deep:s,flush:o,onTrack:a,onTrigger:c}=i["b"],u=rn){let l,h;if(Object(r["e"])(t)?l=()=>t.value:Object(r["d"])(t)?(l=()=>t,s=!0):l=Object(i["m"])(t)?()=>t.map(t=>Object(r["e"])(t)?t.value:Object(r["d"])(t)?Re(t):Object(i["n"])(t)?f(t,u,2):void 0):Object(i["n"])(t)?e?()=>f(t,u,2):()=>{if(!u||!u.isUnmounted)return h&&h(),f(t,u,3,[p])}:i["d"],e&&s){const t=l;l=()=>Re(t())}const p=t=>{h=m.options.onStop=()=>{f(t,u,4)}};let y=Object(i["m"])(t)?[]:Ce;const b=()=>{if(m.active)if(e){const t=m();(s||Object(i["i"])(t,y))&&(h&&h(),d(e,u,3,[t,y===Ce?void 0:y,p]),y=t)}else m()};let g;"sync"===o?g=b:"pre"===o?(b.id=-1,g=()=>{!u||u.isMounted?A(b):b()}):g=()=>Be(b,u&&u.suspense);const m=Object(r["b"])(l,{lazy:!0,onTrack:a,onTrigger:c,scheduler:g});return pn(m),e?n?b():y=m():m(),()=>{Object(r["l"])(m),u&&Object(i["E"])(u.effects,m)}}function Ve(t,e,n){const r=this.proxy,s=Object(i["x"])(t)?()=>r[t]:t.bind(r);return ke(s,e.bind(r),n,this)}function Re(t,e=new Set){if(!Object(i["r"])(t)||e.has(t))return t;if(e.add(t),Object(i["m"])(t))for(let n=0;n{Re(t.get(r),e)});else if(t instanceof Set)t.forEach(t=>{Re(t,e)});else for(const n in t)Re(t[n],e);return t}function Pe(t,e){if(rn){let n=rn.provides;const r=rn.parent&&rn.parent.provides;r===n&&(n=rn.provides=Object.create(r)),n[t]=e}else 0}function ze(t,e){const n=rn||E;if(n){const r=n.provides;if(t in r)return r[t];if(arguments.length>1)return e}else 0}function $e(t,e,n=[],r=[],s=!1){const{mixins:o,extends:a,data:c,computed:u,methods:l,watch:h,provide:f,inject:d,beforeMount:p,mounted:y,beforeUpdate:b,updated:g,activated:m,deactivated:v,beforeUnmount:_,unmounted:w,render:I,renderTracked:S,renderTriggered:O,errorCaptured:T}=e,A=t.proxy,x=t.ctx,B=t.appContext.mixins;s&&I&&t.render===i["d"]&&(t.render=I),s||(Ye("beforeCreate",e,A,B),He(t,B,n,r)),a&&$e(t,a,n,r,!0),o&&He(t,o,n,r);if(d)if(Object(i["m"])(d))for(let i=0;iKe(t,e,A)),u)for(const j in u){const t=u[j],e=Object(i["n"])(t)?t.bind(A,A):Object(i["n"])(t.get)?t.get.bind(A,A):i["d"];0;const n=!Object(i["n"])(t)&&Object(i["n"])(t.set)?t.set.bind(A):i["d"],r=mn({get:e,set:n});Object.defineProperty(x,j,{enumerable:!0,configurable:!0,get:()=>r.value,set:t=>r.value=t})}if(h&&r.push(h),!s&&r.length&&r.forEach(t=>{for(const e in t)Ge(t[e],x,A,e)}),f){const t=Object(i["n"])(f)?f.call(A):f;for(const e in t)Pe(e,t[e])}s||Ye("created",e,A,B),p&&kt(p.bind(A)),y&&Vt(y.bind(A)),b&&Rt(b.bind(A)),g&&Pt(g.bind(A)),m&&se(m.bind(A)),v&&oe(v.bind(A)),T&&Ht(T.bind(A)),S&&Wt(S.bind(A)),O&&Yt(O.bind(A)),_&&zt(_.bind(A)),w&&$t(w.bind(A))}function Ye(t,e,n,r){We(t,r,n);const i=e.extends&&e.extends[t];i&&i.call(n);const s=e.mixins;s&&We(t,s,n);const o=e[t];o&&o.call(n)}function We(t,e,n){for(let r=0;rn[r];if(Object(i["x"])(t)){const n=e[t];Object(i["n"])(n)&&Ne(s,n)}else Object(i["n"])(t)?Ne(s,t.bind(n)):Object(i["r"])(t)&&(Object(i["m"])(t)?t.forEach(t=>Ge(t,e,n,r)):Ne(s,t.handler.bind(n),t))}function qe(t){const e=t.type,{__merged:n,mixins:r,extends:i}=e;if(n)return n;const s=t.appContext.mixins;if(!s.length&&!r&&!i)return e;const o={};return s.forEach(e=>Je(o,e,t)),i&&Je(o,i,t),r&&r.forEach(e=>Je(o,e,t)),Je(o,e,t),e.__merged=o}function Je(t,e,n){const r=n.appContext.config.optionMergeStrategies;for(const s in e)r&&Object(i["j"])(r,s)?t[s]=r[s](t[s],e[s],n.proxy,s):Object(i["j"])(t,s)||(t[s]=e[s])}const Ze=Object(i["h"])(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>t.parent&&t.parent.proxy,$root:t=>t.root&&t.root.proxy,$emit:t=>t.emit,$options:t=>qe(t),$forceUpdate:t=>()=>A(t.update),$nextTick:()=>T,$watch:t=>Ve.bind(t)}),Xe={get({_:t},e){const{ctx:n,setupState:s,data:o,props:a,accessCache:c,type:u,appContext:l}=t;if("__v_skip"===e)return!0;let h;if("$"!==e[0]){const t=c[e];if(void 0!==t)switch(t){case 0:return s[e];case 1:return o[e];case 3:return n[e];case 2:return a[e]}else{if(s!==i["b"]&&Object(i["j"])(s,e))return c[e]=0,s[e];if(o!==i["b"]&&Object(i["j"])(o,e))return c[e]=1,o[e];if((h=Ft(u)[0])&&Object(i["j"])(h,e))return c[e]=2,a[e];if(n!==i["b"]&&Object(i["j"])(n,e))return c[e]=3,n[e];c[e]=4}}const f=Ze[e];let d,p;return f?("$attrs"===e&&Object(r["n"])(t,"get",e),f(t)):(d=u.__cssModules)&&(d=d[e])?d:n!==i["b"]&&Object(i["j"])(n,e)?(c[e]=3,n[e]):(p=l.config.globalProperties,Object(i["j"])(p,e)?p[e]:void 0)},set({_:t},e,n){const{data:r,setupState:s,ctx:o}=t;if(s!==i["b"]&&Object(i["j"])(s,e))s[e]=n;else if(r!==i["b"]&&Object(i["j"])(r,e))r[e]=n;else if(e in t.props)return!1;return("$"!==e[0]||!(e.slice(1)in t))&&(o[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,type:s,appContext:o}},a){let c;return void 0!==n[a]||t!==i["b"]&&Object(i["j"])(t,a)||e!==i["b"]&&Object(i["j"])(e,a)||(c=Ft(s)[0])&&Object(i["j"])(c,a)||Object(i["j"])(r,a)||Object(i["j"])(Ze,a)||Object(i["j"])(o.config.globalProperties,a)}};const Qe=Object(i["h"])({},Xe,{get(t,e){if(e!==Symbol.unscopables)return Xe.get(t,e,t)},has(t,e){const n="_"!==e[0]&&!Object(i["o"])(e);return n}});const tn=_e();let en=0;function nn(t,e,n){const r=t.type,s=(e?e.appContext:t.appContext)||tn,o={uid:en++,vnode:t,type:r,parent:e,appContext:s,root:null,next:null,subTree:null,update:null,render:null,proxy:null,withProxy:null,effects:null,provides:e?e.provides:Object.create(s.provides),accessCache:null,renderCache:[],ctx:i["b"],data:i["b"],props:i["b"],attrs:i["b"],slots:i["b"],refs:i["b"],setupState:i["b"],setupContext:null,suspense:n,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,emit:null,emitted:null};return o.ctx={_:o},o.root=e?e.root:o,o.emit=Ot.bind(null,o),o}let rn=null;const sn=()=>rn||E,on=t=>{rn=t};let an,cn=!1;function un(t,e=!1){cn=e;const{props:n,children:r,shapeFlag:i}=t.vnode,s=4&i;xt(t,n,s,e),ye(t,r);const o=s?ln(t,e):void 0;return cn=!1,o}function ln(t,e){const n=t.type;t.accessCache={},t.proxy=new Proxy(t.ctx,Xe);const{setup:s}=n;if(s){const n=t.setupContext=s.length>1?dn(t):null;rn=t,Object(r["f"])();const o=f(s,t,0,[t.props,n]);if(Object(r["j"])(),rn=null,Object(i["t"])(o)){if(e)return o.then(e=>{hn(t,e)});t.asyncDep=o}else hn(t,o)}else fn(t)}function hn(t,e,n){Object(i["n"])(e)?t.render=e:Object(i["r"])(e)&&(t.setupState=Object(r["g"])(e)),fn(t)}function fn(t,e){const n=t.type;t.render||(an&&n.template&&!n.render&&(n.render=an(n.template,{isCustomElement:t.appContext.config.isCustomElement,delimiters:n.delimiters})),t.render=n.render||i["d"],t.render._rc&&(t.withProxy=new Proxy(t.ctx,Qe))),rn=t,$e(t,n),rn=null}function dn(t){return{attrs:t.attrs,slots:t.slots,emit:t.emit}}function pn(t){rn&&(rn.effects||(rn.effects=[])).push(t)}const yn=/(?:^|[-_])(\w)/g,bn=t=>t.replace(yn,t=>t.toUpperCase()).replace(/[-_]/g,"");function gn(t,e,n=!1){let r=Object(i["n"])(e)&&e.displayName||e.name;if(!r&&e.__file){const t=e.__file.match(/([^/\\]+)\.vue$/);t&&(r=t[1])}if(!r&&t&&t.parent){const n=t=>{for(const n in t)if(t[n]===e)return n};r=n(t.parent.type.components)||n(t.appContext.components)}return r?bn(r):n?"App":"Anonymous"}function mn(t){const e=Object(r["a"])(t);return pn(e.effect),e}function vn(t){return Object(i["n"])(t)?{setup:t,name:t.name}:t}function _n(t,e,n){return 2===arguments.length?Object(i["r"])(e)&&!Object(i["m"])(e)?lt(e)?yt(t,null,[e]):yt(t,e):yt(t,null,e):(lt(n)&&(n=[n]),yt(t,e,n))}Symbol("");function wn(t,e){let n;if(Object(i["m"])(t)||Object(i["x"])(t)){n=new Array(t.length);for(let r=0,i=t.length;rl){var d,p=u(arguments[l++]),y=h?s(p).concat(h(p)):s(p),b=y.length,g=0;while(b>g)d=y[g++],r&&!f.call(p,d)||(n[d]=p[d])}return n}:l},"65f0":function(t,e,n){var r=n("861d"),i=n("e8b5"),s=n("b622"),o=s("species");t.exports=function(t,e){var n;return i(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?r(n)&&(n=n[o],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},"69f3":function(t,e,n){var r,i,s,o=n("7f9a"),a=n("da84"),c=n("861d"),u=n("9112"),l=n("5135"),h=n("f772"),f=n("d012"),d=a.WeakMap,p=function(t){return s(t)?i(t):r(t,{})},y=function(t){return function(e){var n;if(!c(e)||(n=i(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}};if(o){var b=new d,g=b.get,m=b.has,v=b.set;r=function(t,e){return v.call(b,t,e),e},i=function(t){return g.call(b,t)||{}},s=function(t){return m.call(b,t)}}else{var _=h("state");f[_]=!0,r=function(t,e){return u(t,_,e),e},i=function(t){return l(t,_)?t[_]:{}},s=function(t){return l(t,_)}}t.exports={set:r,get:i,has:s,enforce:p,getterFor:y}},"6eeb":function(t,e,n){var r=n("da84"),i=n("9112"),s=n("5135"),o=n("ce4e"),a=n("8925"),c=n("69f3"),u=c.get,l=c.enforce,h=String(String).split("String");(t.exports=function(t,e,n,a){var c=!!a&&!!a.unsafe,u=!!a&&!!a.enumerable,f=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||s(n,"name")||i(n,"name",e),l(n).source=h.join("string"==typeof e?e:"")),t!==r?(c?!f&&t[e]&&(u=!0):delete t[e],u?t[e]=n:i(t,e,n)):u?t[e]=n:o(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||a(this)}))},7418:function(t,e){e.f=Object.getOwnPropertySymbols},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(t,e,n){var r=n("1d80");t.exports=function(t){return Object(r(t))}},"7c73":function(t,e,n){var r,i=n("825a"),s=n("37e8"),o=n("7839"),a=n("d012"),c=n("1be4"),u=n("cc12"),l=n("f772"),h=">",f="<",d="prototype",p="script",y=l("IE_PROTO"),b=function(){},g=function(t){return f+p+h+t+f+"/"+p+h},m=function(t){t.write(g("")),t.close();var e=t.parentWindow.Object;return t=null,e},v=function(){var t,e=u("iframe"),n="java"+p+":";return e.style.display="none",c.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(g("document.F=Object")),t.close(),t.F},_=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(e){}_=r?m(r):v();var t=o.length;while(t--)delete _[d][o[t]];return _()};a[y]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(b[d]=i(t),n=new b,b[d]=null,n[y]=t):n=_(),void 0===e?n:s(n,e)}},"7dd0":function(t,e,n){"use strict";var r=n("23e7"),i=n("9ed3"),s=n("e163"),o=n("d2bb"),a=n("d44e"),c=n("9112"),u=n("6eeb"),l=n("b622"),h=n("c430"),f=n("3f8c"),d=n("ae93"),p=d.IteratorPrototype,y=d.BUGGY_SAFARI_ITERATORS,b=l("iterator"),g="keys",m="values",v="entries",_=function(){return this};t.exports=function(t,e,n,l,d,w,I){i(n,e,l);var S,O,T,A=function(t){if(t===d&&F)return F;if(!y&&t in j)return j[t];switch(t){case g:return function(){return new n(this,t)};case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this)}},x=e+" Iterator",B=!1,j=t.prototype,D=j[b]||j["@@iterator"]||d&&j[d],F=!y&&D||A(d),L="Array"==e&&j.entries||D;if(L&&(S=s(L.call(new t)),p!==Object.prototype&&S.next&&(h||s(S)===p||(o?o(S,p):"function"!=typeof S[b]&&c(S,b,_)),a(S,x,!0,!0),h&&(f[x]=_))),d==m&&D&&D.name!==m&&(B=!0,F=function(){return D.call(this)}),h&&!I||j[b]===F||c(j,b,F),f[e]=F,d)if(O={values:A(m),keys:w?F:A(g),entries:A(v)},I)for(T in O)(y||B||!(T in j))&&u(j,T,O[T]);else r({target:e,proto:!0,forced:y||B},O);return O}},"7f9a":function(t,e,n){var r=n("da84"),i=n("8925"),s=r.WeakMap;t.exports="function"===typeof s&&/native code/.test(i(s))},"825a":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},"830f":function(t,e,n){"use strict";n.d(e,"a",(function(){return Q}));var r=n("9ff4"),i=n("5c40");n("a1e9");const s="http://www.w3.org/2000/svg",o="undefined"!==typeof document?document:null;let a,c;const u={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n)=>e?o.createElementNS(s,t):o.createElement(t,n?{is:n}:void 0),createText:t=>o.createTextNode(t),createComment:t=>o.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>o.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},cloneNode(t){return t.cloneNode(!0)},insertStaticContent(t,e,n,r){const i=r?c||(c=o.createElementNS(s,"svg")):a||(a=o.createElement("div"));i.innerHTML=t;const l=i.firstChild;let h=l,f=h;while(h)f=h,u.insert(h,e,n),h=i.firstChild;return[l,f]}};function l(t,e,n){if(null==e&&(e=""),n)t.setAttribute("class",e);else{const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),t.className=e}}function h(t,e,n){const i=t.style;if(n)if(Object(r["x"])(n))e!==n&&(i.cssText=n);else{for(const t in n)d(i,t,n[t]);if(e&&!Object(r["x"])(e))for(const t in e)null==n[t]&&d(i,t,"")}else t.removeAttribute("style")}const f=/\s*!important$/;function d(t,e,n){if(e.startsWith("--"))t.setProperty(e,n);else{const i=b(t,e);f.test(n)?t.setProperty(Object(r["k"])(i),n.replace(f,""),"important"):t[i]=n}}const p=["Webkit","Moz","ms"],y={};function b(t,e){const n=y[e];if(n)return n;let i=Object(r["e"])(e);if("filter"!==i&&i in t)return y[e]=i;i=Object(r["f"])(i);for(let r=0;rdocument.createEvent("Event").timeStamp&&(_=()=>performance.now());let w=0;const I=Promise.resolve(),S=()=>{w=0},O=()=>w||(I.then(S),w=_());function T(t,e,n,r){t.addEventListener(e,n,r)}function A(t,e,n,r){t.removeEventListener(e,n,r)}function x(t,e,n,r,i=null){const s=n&&n.invoker;if(r&&s)n.invoker=null,s.value=r,r.invoker=s;else{const[n,o]=j(e);r?T(t,n,D(r,i),o):s&&A(t,n,s,o)}}const B=/(?:Once|Passive|Capture)$/;function j(t){let e;if(B.test(t)){let n;e={};while(n=t.match(B))t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t.slice(2).toLowerCase(),e]}function D(t,e){const n=t=>{const r=t.timeStamp||_();r>=n.attached-1&&Object(i["c"])(F(t,n.value),e,5,[t])};return n.value=t,t.invoker=n,n.attached=O(),n}function F(t,e){if(Object(r["m"])(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(t=>e=>!e._stopped&&t(e))}return e}const L=/^on[a-z]/,E=(t,e)=>"value"===e,M=(t,e,n,i,s=!1,o,a,c,u)=>{switch(e){case"class":l(t,i,s);break;case"style":h(t,n,i);break;default:Object(r["s"])(e)?Object(r["q"])(e)||x(t,e,n,i,a):U(t,e,i,s)?v(t,e,i,o,a,c,u):("true-value"===e?t._trueValue=i:"false-value"===e&&(t._falseValue=i),m(t,e,i,s));break}};function U(t,e,n,i){return i?"innerHTML"===e||!!(e in t&&L.test(e)&&Object(r["n"])(n)):"spellcheck"!==e&&"draggable"!==e&&(("list"!==e||"INPUT"!==t.tagName)&&((!L.test(e)||!Object(r["x"])(n))&&e in t))}const C="transition",N="animation",k=(t,{slots:e})=>Object(i["m"])(i["a"],R(t),e);k.displayName="Transition";const V={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};k.props=Object(r["h"])({},i["a"].props,V);function R(t){let{name:e="v",type:n,css:i=!0,duration:s,enterFromClass:o=e+"-enter-from",enterActiveClass:a=e+"-enter-active",enterToClass:c=e+"-enter-to",appearFromClass:u=o,appearActiveClass:l=a,appearToClass:h=c,leaveFromClass:f=e+"-leave-from",leaveActiveClass:d=e+"-leave-active",leaveToClass:p=e+"-leave-to"}=t;const y={};for(const r in t)r in V||(y[r]=t[r]);if(!i)return y;const b=P(s),g=b&&b[0],m=b&&b[1],{onBeforeEnter:v,onEnter:_,onEnterCancelled:w,onLeave:I,onLeaveCancelled:S,onBeforeAppear:O=v,onAppear:T=_,onAppearCancelled:A=w}=y,x=(t,e,n)=>{Y(t,e?h:c),Y(t,e?l:a),n&&n()},B=(t,e)=>{Y(t,p),Y(t,d),e&&e()},j=t=>(e,r)=>{const i=t?T:_,s=()=>x(e,t,r);i&&i(e,s),W(()=>{Y(e,t?u:o),$(e,t?h:c),i&&i.length>1||(g?setTimeout(s,g):H(e,n,s))})};return Object(r["h"])(y,{onBeforeEnter(t){v&&v(t),$(t,a),$(t,o)},onBeforeAppear(t){O&&O(t),$(t,l),$(t,u)},onEnter:j(!1),onAppear:j(!0),onLeave(t,e){const r=()=>B(t,e);$(t,d),$(t,f),W(()=>{Y(t,f),$(t,p),I&&I.length>1||(m?setTimeout(r,m):H(t,n,r))}),I&&I(t,r)},onEnterCancelled(t){x(t,!1),w&&w(t)},onAppearCancelled(t){x(t,!0),A&&A(t)},onLeaveCancelled(t){B(t),S&&S(t)}})}function P(t){if(null==t)return null;if(Object(r["r"])(t))return[z(t.enter),z(t.leave)];{const e=z(t);return[e,e]}}function z(t){const e=Object(r["G"])(t);return e}function $(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.add(e)),(t._vtc||(t._vtc=new Set)).add(e)}function Y(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.remove(e));const{_vtc:n}=t;n&&(n.delete(e),n.size||(t._vtc=void 0))}function W(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}function H(t,e,n){const{type:r,timeout:i,propCount:s}=K(t,e);if(!r)return n();const o=r+"end";let a=0;const c=()=>{t.removeEventListener(o,u),n()},u=e=>{e.target===t&&++a>=s&&c()};setTimeout(()=>{a(n[t]||"").split(", "),i=r(C+"Delay"),s=r(C+"Duration"),o=G(i,s),a=r(N+"Delay"),c=r(N+"Duration"),u=G(a,c);let l=null,h=0,f=0;e===C?o>0&&(l=C,h=o,f=s.length):e===N?u>0&&(l=N,h=u,f=c.length):(h=Math.max(o,u),l=h>0?o>u?C:N:null,f=l?l===C?s.length:c.length:0);const d=l===C&&/\b(transform|all)(,|$)/.test(n[C+"Property"]);return{type:l,timeout:h,propCount:f,hasTransform:d}}function G(t,e){while(t.lengthq(e)+q(t[n])))}function q(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}new WeakMap,new WeakMap;const J=Object(r["h"])({patchProp:M,forcePatchProp:E},u);let Z;function X(){return Z||(Z=Object(i["g"])(J))}const Q=(...t)=>{const e=X().createApp(...t);const{mount:n}=e;return e.mount=t=>{const i=tt(t);if(!i)return;const s=e._component;Object(r["n"])(s)||s.render||s.template||(s.template=i.innerHTML),i.innerHTML="";const o=n(i);return i.removeAttribute("v-cloak"),i.setAttribute("data-v-app",""),o},e};function tt(t){if(Object(r["x"])(t)){const e=document.querySelector(t);return e}return t}},"83ab":function(t,e,n){var r=n("d039");t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var r=n("c04e"),i=n("9bf2"),s=n("5c6c");t.exports=function(t,e,n){var o=r(e);o in t?i.f(t,o,s(0,n)):t[o]=n}},"861d":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},8925:function(t,e,n){var r=n("c6cd"),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return i.call(t)}),t.exports=r.inspectSource},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),i=n("9bf2"),s=n("5c6c");t.exports=r?function(t,e,n){return i.f(t,e,s(1,n))}:function(t,e,n){return t[e]=n,t}},"94ca":function(t,e,n){var r=n("d039"),i=/#|\.prototype\./,s=function(t,e){var n=a[o(t)];return n==u||n!=c&&("function"==typeof e?r(e):!!e)},o=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},c=s.NATIVE="N",u=s.POLYFILL="P";t.exports=s},"99af":function(t,e,n){"use strict";var r=n("23e7"),i=n("d039"),s=n("e8b5"),o=n("861d"),a=n("7b0b"),c=n("50c4"),u=n("8418"),l=n("65f0"),h=n("1dde"),f=n("b622"),d=n("2d00"),p=f("isConcatSpreadable"),y=9007199254740991,b="Maximum allowed index exceeded",g=d>=51||!i((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),m=h("concat"),v=function(t){if(!o(t))return!1;var e=t[p];return void 0!==e?!!e:s(t)},_=!g||!m;r({target:"Array",proto:!0,forced:_},{concat:function(t){var e,n,r,i,s,o=a(this),h=l(o,0),f=0;for(e=-1,r=arguments.length;ey)throw TypeError(b);for(n=0;n=y)throw TypeError(b);u(h,f++,s)}return h.length=f,h}})},"9bdd":function(t,e,n){var r=n("825a");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(o){var s=t["return"];throw void 0!==s&&r(s.call(t)),o}}},"9bf2":function(t,e,n){var r=n("83ab"),i=n("0cfb"),s=n("825a"),o=n("c04e"),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(s(t),e=o(e,!0),s(n),i)try{return a(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,i=n("7c73"),s=n("5c6c"),o=n("d44e"),a=n("3f8c"),c=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=i(r,{next:s(1,n)}),o(t,u,!1,!0),a[u]=c,t}},"9ff4":function(t,e,n){"use strict";(function(t){function r(t,e){const n=Object.create(null),r=t.split(",");for(let i=0;i!!n[t.toLowerCase()]:t=>!!n[t]}n.d(e,"a",(function(){return S})),n.d(e,"b",(function(){return I})),n.d(e,"c",(function(){return T})),n.d(e,"d",(function(){return O})),n.d(e,"e",(function(){return K})),n.d(e,"f",(function(){return J})),n.d(e,"g",(function(){return Q})),n.d(e,"h",(function(){return j})),n.d(e,"i",(function(){return Z})),n.d(e,"j",(function(){return L})),n.d(e,"k",(function(){return q})),n.d(e,"l",(function(){return X})),n.d(e,"m",(function(){return E})),n.d(e,"n",(function(){return U})),n.d(e,"o",(function(){return s})),n.d(e,"p",(function(){return y})),n.d(e,"q",(function(){return B})),n.d(e,"r",(function(){return k})),n.d(e,"s",(function(){return x})),n.d(e,"t",(function(){return V})),n.d(e,"u",(function(){return Y})),n.d(e,"v",(function(){return b})),n.d(e,"w",(function(){return a})),n.d(e,"x",(function(){return C})),n.d(e,"y",(function(){return N})),n.d(e,"z",(function(){return m})),n.d(e,"A",(function(){return v})),n.d(e,"B",(function(){return r})),n.d(e,"C",(function(){return f})),n.d(e,"D",(function(){return c})),n.d(e,"E",(function(){return D})),n.d(e,"F",(function(){return _})),n.d(e,"G",(function(){return tt})),n.d(e,"H",(function(){return z}));const i="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl",s=r(i);const o="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",a=r(o);function c(t){if(E(t)){const e={};for(let n=0;n{if(t){const n=t.split(l);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function f(t){let e="";if(C(t))e=t;else if(E(t))for(let n=0;nm(t,e))}const _=t=>null==t?"":k(t)?JSON.stringify(t,w,2):String(t),w=(t,e)=>e instanceof Map?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[e,n])=>(t[e+" =>"]=n,t),{})}:e instanceof Set?{[`Set(${e.size})`]:[...e.values()]}:!k(e)||E(e)||$(e)?e:String(e),I={},S=[],O=()=>{},T=()=>!1,A=/^on[^a-z]/,x=t=>A.test(t),B=t=>t.startsWith("onUpdate:"),j=Object.assign,D=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},F=Object.prototype.hasOwnProperty,L=(t,e)=>F.call(t,e),E=Array.isArray,M=t=>t instanceof Date,U=t=>"function"===typeof t,C=t=>"string"===typeof t,N=t=>"symbol"===typeof t,k=t=>null!==t&&"object"===typeof t,V=t=>k(t)&&U(t.then)&&U(t.catch),R=Object.prototype.toString,P=t=>R.call(t),z=t=>P(t).slice(8,-1),$=t=>"[object Object]"===P(t),Y=r("key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),W=t=>{const e=Object.create(null);return n=>{const r=e[n];return r||(e[n]=t(n))}},H=/-(\w)/g,K=W(t=>t.replace(H,(t,e)=>e?e.toUpperCase():"")),G=/\B([A-Z])/g,q=W(t=>t.replace(G,"-$1").toLowerCase()),J=W(t=>t.charAt(0).toUpperCase()+t.slice(1)),Z=(t,e)=>t!==e&&(t===t||e===e),X=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},tt=t=>{const e=parseFloat(t);return isNaN(e)?t:e}}).call(this,n("c8ba"))},a1e9:function(t,e,n){"use strict";n.d(e,"a",(function(){return Ot})),n.d(e,"b",(function(){return l})),n.d(e,"c",(function(){return yt})),n.d(e,"d",(function(){return dt})),n.d(e,"e",(function(){return mt})),n.d(e,"f",(function(){return g})),n.d(e,"g",(function(){return St})),n.d(e,"h",(function(){return ut})),n.d(e,"i",(function(){return vt})),n.d(e,"j",(function(){return v})),n.d(e,"k",(function(){return lt})),n.d(e,"l",(function(){return h})),n.d(e,"m",(function(){return bt})),n.d(e,"n",(function(){return _})),n.d(e,"o",(function(){return w})),n.d(e,"p",(function(){return wt}));var r=n("9ff4");const i=new WeakMap,s=[];let o;const a=Symbol(""),c=Symbol("");function u(t){return t&&!0===t._isEffect}function l(t,e=r["b"]){u(t)&&(t=t.raw);const n=d(t,e);return e.lazy||n(),n}function h(t){t.active&&(p(t),t.options.onStop&&t.options.onStop(),t.active=!1)}let f=0;function d(t,e){const n=function(){if(!n.active)return e.scheduler?void 0:t();if(!s.includes(n)){p(n);try{return m(),s.push(n),o=n,t()}finally{s.pop(),v(),o=s[s.length-1]}}};return n.id=f++,n._isEffect=!0,n.active=!0,n.raw=t,n.deps=[],n.options=e,n}function p(t){const{deps:e}=t;if(e.length){for(let n=0;n{t&&t.forEach(t=>h.add(t))};if("clear"===e)l.forEach(f);else if("length"===n&&Object(r["m"])(t))l.forEach((t,e)=>{("length"===e||e>=s)&&f(t)});else{void 0!==n&&f(l.get(n));const i="add"===e||"delete"===e&&!Object(r["m"])(t);(i||"set"===e&&t instanceof Map)&&f(l.get(Object(r["m"])(t)?"length":a)),i&&t instanceof Map&&f(l.get(c))}const d=t=>{t.options.scheduler?t.options.scheduler(t):t()};h.forEach(d)}const I=new Set(Object.getOwnPropertyNames(Symbol).map(t=>Symbol[t]).filter(r["y"])),S=B(),O=B(!1,!0),T=B(!0),A=B(!0,!0),x={};function B(t=!1,e=!1){return function(n,i,s){if("__v_isReactive"===i)return!t;if("__v_isReadonly"===i)return t;if("__v_raw"===i&&s===(t?n["__v_readonly"]:n["__v_reactive"]))return n;const o=Object(r["m"])(n);if(o&&Object(r["j"])(x,i))return Reflect.get(x,i,s);const a=Reflect.get(n,i,s);return(Object(r["y"])(i)?I.has(i):"__proto__"===i||"__v_isRef"===i)?a:(t||_(n,"get",i),e?a:mt(a)?o?a:a.value:Object(r["r"])(a)?t?ht(a):ut(a):a)}}["includes","indexOf","lastIndexOf"].forEach(t=>{x[t]=function(...e){const n=bt(this);for(let t=0,i=this.length;tObject(r["r"])(t)?ut(t):t),V=t=>Object(r["r"])(t)?ht(t):t,R=t=>t,P=t=>Reflect.getPrototypeOf(t);function z(t,e,n){t=bt(t);const r=bt(e);e!==r&&_(t,"get",e),_(t,"get",r);const{has:i,get:s}=P(t);return i.call(t,e)?n(s.call(t,e)):i.call(t,r)?n(s.call(t,r)):void 0}function $(t){const e=bt(this),n=bt(t);t!==n&&_(e,"has",t),_(e,"has",n);const r=P(e).has;return r.call(e,t)||r.call(e,n)}function Y(t){return t=bt(t),_(t,"iterate",a),Reflect.get(P(t),"size",t)}function W(t){t=bt(t);const e=bt(this),n=P(e),r=n.has.call(e,t),i=n.add.call(e,t);return r||w(e,"add",t,t),i}function H(t,e){e=bt(e);const n=bt(this),{has:i,get:s,set:o}=P(n);let a=i.call(n,t);a||(t=bt(t),a=i.call(n,t));const c=s.call(n,t),u=o.call(n,t,e);return a?Object(r["i"])(e,c)&&w(n,"set",t,e,c):w(n,"add",t,e),u}function K(t){const e=bt(this),{has:n,get:r,delete:i}=P(e);let s=n.call(e,t);s||(t=bt(t),s=n.call(e,t));const o=r?r.call(e,t):void 0,a=i.call(e,t);return s&&w(e,"delete",t,void 0,o),a}function G(){const t=bt(this),e=0!==t.size,n=void 0,r=P(t).clear.call(t);return e&&w(t,"clear",void 0,void 0,n),r}function q(t,e){return function(n,r){const i=this,s=bt(i),o=t?V:e?R:k;function c(t,e){return n.call(r,o(t),o(e),i)}return!t&&_(s,"iterate",a),P(s).forEach.call(s,c)}}function J(t,e,n){return function(...r){const i=bt(this),s=i instanceof Map,o="entries"===t||t===Symbol.iterator&&s,u="keys"===t&&s,l=P(i)[t].apply(i,r),h=e?V:n?R:k;return!e&&_(i,"iterate",u?c:a),{next(){const{value:t,done:e}=l.next();return e?{value:t,done:e}:{value:o?[h(t[0]),h(t[1])]:h(t),done:e}},[Symbol.iterator](){return this}}}}function Z(t){return function(...e){return"delete"!==t&&this}}const X={get(t){return z(this,t,k)},get size(){return Y(this)},has:$,add:W,set:H,delete:K,clear:G,forEach:q(!1,!1)},Q={get(t){return z(this,t,R)},get size(){return Y(this)},has:$,add:W,set:H,delete:K,clear:G,forEach:q(!1,!0)},tt={get(t){return z(this,t,V)},get size(){return Y(this)},has:$,add:Z("add"),set:Z("set"),delete:Z("delete"),clear:Z("clear"),forEach:q(!0,!1)},et=["keys","values","entries",Symbol.iterator];function nt(t,e){const n=e?Q:t?tt:X;return(e,i,s)=>"__v_isReactive"===i?!t:"__v_isReadonly"===i?t:"__v_raw"===i?e:Reflect.get(Object(r["j"])(n,i)&&i in e?n:e,i,s)}et.forEach(t=>{X[t]=J(t,!1,!1),tt[t]=J(t,!0,!1),Q[t]=J(t,!1,!0)});const rt={get:nt(!1,!1)},it={get:nt(!1,!0)},st={get:nt(!0,!1)};const ot=new Set([Set,Map,WeakMap,WeakSet]),at=Object(r["B"])("Object,Array,Map,Set,WeakMap,WeakSet"),ct=t=>!t["__v_skip"]&&at(Object(r["H"])(t))&&!Object.isFrozen(t);function ut(t){return t&&t["__v_isReadonly"]?t:ft(t,!1,U,rt)}function lt(t){return ft(t,!1,N,it)}function ht(t){return ft(t,!0,C,st)}function ft(t,e,n,i){if(!Object(r["r"])(t))return t;if(t["__v_raw"]&&(!e||!t["__v_isReactive"]))return t;const s=e?"__v_readonly":"__v_reactive";if(Object(r["j"])(t,s))return t[s];if(!ct(t))return t;const o=new Proxy(t,ot.has(t.constructor)?i:n);return Object(r["g"])(t,s,o),o}function dt(t){return pt(t)?dt(t["__v_raw"]):!(!t||!t["__v_isReactive"])}function pt(t){return!(!t||!t["__v_isReadonly"])}function yt(t){return dt(t)||pt(t)}function bt(t){return t&&bt(t["__v_raw"])||t}const gt=t=>Object(r["r"])(t)?ut(t):t;function mt(t){return!!t&&!0===t.__v_isRef}function vt(t){return _t(t)}function _t(t,e=!1){if(mt(t))return t;let n=e?t:gt(t);const i={__v_isRef:!0,get value(){return _(i,"get","value"),n},set value(s){Object(r["i"])(bt(s),t)&&(t=s,n=e?s:gt(s),w(i,"set","value",s))}};return i}function wt(t){return mt(t)?t.value:t}const It={get:(t,e,n)=>wt(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const i=t[e];return mt(i)&&!mt(n)?(i.value=n,!0):Reflect.set(t,e,n,r)}};function St(t){return dt(t)?t:new Proxy(t,It)}function Ot(t){let e,n;Object(r["n"])(t)?(e=t,n=r["d"]):(e=t.get,n=t.set);let i,s,o=!0;const a=l(e,{lazy:!0,scheduler:()=>{o||(o=!0,w(s,"set","value"))}});return s={__v_isRef:!0,["__v_isReadonly"]:Object(r["n"])(t)||!t.set,effect:a,get value(){return o&&(i=a(),o=!1),_(s,"get","value"),i},set value(t){n(t)}},s}},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),i=n("c430"),s=n("fea9"),o=n("d039"),a=n("d066"),c=n("4840"),u=n("cdf9"),l=n("6eeb"),h=!!s&&o((function(){s.prototype["finally"].call({then:function(){}},(function(){}))}));r({target:"Promise",proto:!0,real:!0,forced:h},{finally:function(t){var e=c(this,a("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),i||"function"!=typeof s||s.prototype["finally"]||l(s.prototype,"finally",a("Promise").prototype["finally"])},a93d:function(t,e,n){"use strict"; +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var r="function"===typeof Symbol&&Symbol.for,i=r?Symbol.for("react.element"):60103,s=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,c=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,l=r?Symbol.for("react.context"):60110,h=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,y=r?Symbol.for("react.suspense_list"):60120,b=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116,m=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,_=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function I(t){if("object"===typeof t&&null!==t){var e=t.$$typeof;switch(e){case i:switch(t=t.type,t){case h:case f:case o:case c:case a:case p:return t;default:switch(t=t&&t.$$typeof,t){case l:case d:case g:case b:case u:return t;default:return e}}case s:return e}}}function S(t){return I(t)===f}e.AsyncMode=h,e.ConcurrentMode=f,e.ContextConsumer=l,e.ContextProvider=u,e.Element=i,e.ForwardRef=d,e.Fragment=o,e.Lazy=g,e.Memo=b,e.Portal=s,e.Profiler=c,e.StrictMode=a,e.Suspense=p,e.isAsyncMode=function(t){return S(t)||I(t)===h},e.isConcurrentMode=S,e.isContextConsumer=function(t){return I(t)===l},e.isContextProvider=function(t){return I(t)===u},e.isElement=function(t){return"object"===typeof t&&null!==t&&t.$$typeof===i},e.isForwardRef=function(t){return I(t)===d},e.isFragment=function(t){return I(t)===o},e.isLazy=function(t){return I(t)===g},e.isMemo=function(t){return I(t)===b},e.isPortal=function(t){return I(t)===s},e.isProfiler=function(t){return I(t)===c},e.isStrictMode=function(t){return I(t)===a},e.isSuspense=function(t){return I(t)===p},e.isValidElementType=function(t){return"string"===typeof t||"function"===typeof t||t===o||t===f||t===c||t===a||t===p||t===y||"object"===typeof t&&null!==t&&(t.$$typeof===g||t.$$typeof===b||t.$$typeof===u||t.$$typeof===l||t.$$typeof===d||t.$$typeof===v||t.$$typeof===_||t.$$typeof===w||t.$$typeof===m)},e.typeOf=I},ab5b:function(t,e,n){"use strict";t.exports=n("be24")},ab8b:function(t,e,n){},ae40:function(t,e,n){var r=n("83ab"),i=n("d039"),s=n("5135"),o=Object.defineProperty,a={},c=function(t){throw t};t.exports=function(t,e){if(s(a,t))return a[t];e||(e={});var n=[][t],u=!!s(e,"ACCESSORS")&&e.ACCESSORS,l=s(e,0)?e[0]:c,h=s(e,1)?e[1]:void 0;return a[t]=!!n&&!i((function(){if(u&&!r)return!0;var t={length:-1};u?o(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,l,h)}))}},ae93:function(t,e,n){"use strict";var r,i,s,o=n("e163"),a=n("9112"),c=n("5135"),u=n("b622"),l=n("c430"),h=u("iterator"),f=!1,d=function(){return this};[].keys&&(s=[].keys(),"next"in s?(i=o(o(s)),i!==Object.prototype&&(r=i)):f=!0),void 0==r&&(r={}),l||c(r,h)||a(r,h,d),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:f}},b575:function(t,e,n){var r,i,s,o,a,c,u,l,h=n("da84"),f=n("06cf").f,d=n("c6b6"),p=n("2cf4").set,y=n("1cdc"),b=h.MutationObserver||h.WebKitMutationObserver,g=h.process,m=h.Promise,v="process"==d(g),_=f(h,"queueMicrotask"),w=_&&_.value;w||(r=function(){var t,e;v&&(t=g.domain)&&t.exit();while(i){e=i.fn,i=i.next;try{e()}catch(n){throw i?o():s=void 0,n}}s=void 0,t&&t.enter()},v?o=function(){g.nextTick(r)}:b&&!y?(a=!0,c=document.createTextNode(""),new b(r).observe(c,{characterData:!0}),o=function(){c.data=a=!a}):m&&m.resolve?(u=m.resolve(void 0),l=u.then,o=function(){l.call(u,r)}):o=function(){p.call(h,r)}),t.exports=w||function(t){var e={fn:t,next:void 0};s&&(s.next=e),i||(i=e,o()),s=e}},b622:function(t,e,n){var r=n("da84"),i=n("5692"),s=n("5135"),o=n("90e3"),a=n("4930"),c=n("fdbf"),u=i("wks"),l=r.Symbol,h=c?l:l&&l.withoutSetter||o;t.exports=function(t){return s(u,t)||(a&&s(l,t)?u[t]=l[t]:u[t]=h("Symbol."+t)),u[t]}},be24:function(t,e,n){"use strict"; +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var r=n("320c"),i="function"===typeof Symbol&&Symbol.for,s=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,c=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,l=i?Symbol.for("react.provider"):60109,h=i?Symbol.for("react.context"):60110,f=i?Symbol.for("react.forward_ref"):60112,d=i?Symbol.for("react.suspense"):60113,p=i?Symbol.for("react.memo"):60115,y=i?Symbol.for("react.lazy"):60116,b="function"===typeof Symbol&&Symbol.iterator;function g(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;nL.length&&L.push(t)}function U(t,e,n,r){var i=typeof t;"undefined"!==i&&"boolean"!==i||(t=null);var a=!1;if(null===t)a=!0;else switch(i){case"string":case"number":a=!0;break;case"object":switch(t.$$typeof){case s:case o:a=!0}}if(a)return n(r,t,""===e?"."+N(t,0):e),1;if(a=0,e=""===e?".":e+":",Array.isArray(t))for(var c=0;cc)r(a,n=e[c++])&&(~s(u,n)||u.push(n));return u}},cc12:function(t,e,n){var r=n("da84"),i=n("861d"),s=r.document,o=i(s)&&i(s.createElement);t.exports=function(t){return o?s.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),i=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==i},{assign:i})},cd74:function(t,e,n){},cdf9:function(t,e,n){var r=n("825a"),i=n("861d"),s=n("f069");t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=s.f(t),o=n.resolve;return o(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),i=n("9112");t.exports=function(t,e){try{i(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),i=n("da84"),s=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?s(r[t])||s(i[t]):r[t]&&r[t][e]||i[t]&&i[t][e]}},d092:function(t,e,n){"use strict";n.d(e,"a",(function(){return Vh}));var r={};n.r(r),n.d(r,"memcpy",(function(){return jt})),n.d(r,"joinUint8Arrays",(function(){return Dt})),n.d(r,"toArrayBufferView",(function(){return Ft})),n.d(r,"toInt8Array",(function(){return Lt})),n.d(r,"toInt16Array",(function(){return Et})),n.d(r,"toInt32Array",(function(){return Mt})),n.d(r,"toBigInt64Array",(function(){return Ut})),n.d(r,"toUint8Array",(function(){return Ct})),n.d(r,"toUint16Array",(function(){return Nt})),n.d(r,"toUint32Array",(function(){return kt})),n.d(r,"toBigUint64Array",(function(){return Vt})),n.d(r,"toFloat32Array",(function(){return Rt})),n.d(r,"toFloat64Array",(function(){return Pt})),n.d(r,"toUint8ClampedArray",(function(){return zt})),n.d(r,"toArrayBufferViewIterator",(function(){return Yt})),n.d(r,"toInt8ArrayIterator",(function(){return Wt})),n.d(r,"toInt16ArrayIterator",(function(){return Ht})),n.d(r,"toInt32ArrayIterator",(function(){return Kt})),n.d(r,"toUint8ArrayIterator",(function(){return Gt})),n.d(r,"toUint16ArrayIterator",(function(){return qt})),n.d(r,"toUint32ArrayIterator",(function(){return Jt})),n.d(r,"toFloat32ArrayIterator",(function(){return Zt})),n.d(r,"toFloat64ArrayIterator",(function(){return Xt})),n.d(r,"toUint8ClampedArrayIterator",(function(){return Qt})),n.d(r,"toArrayBufferViewAsyncIterator",(function(){return te})),n.d(r,"toInt8ArrayAsyncIterator",(function(){return ee})),n.d(r,"toInt16ArrayAsyncIterator",(function(){return ne})),n.d(r,"toInt32ArrayAsyncIterator",(function(){return re})),n.d(r,"toUint8ArrayAsyncIterator",(function(){return ie})),n.d(r,"toUint16ArrayAsyncIterator",(function(){return se})),n.d(r,"toUint32ArrayAsyncIterator",(function(){return oe})),n.d(r,"toFloat32ArrayAsyncIterator",(function(){return ae})),n.d(r,"toFloat64ArrayAsyncIterator",(function(){return ce})),n.d(r,"toUint8ClampedArrayAsyncIterator",(function(){return ue})),n.d(r,"rebaseValueOffsets",(function(){return le})),n.d(r,"compareArrayLike",(function(){return he}));var i={};n.r(i),n.d(i,"getBool",(function(){return Ee})),n.d(i,"getBit",(function(){return Me})),n.d(i,"setBool",(function(){return Ue})),n.d(i,"truncateBitmap",(function(){return Ce})),n.d(i,"packBools",(function(){return Ne})),n.d(i,"iterateBits",(function(){return ke})),n.d(i,"popcnt_bit_range",(function(){return Ve})),n.d(i,"popcnt_array",(function(){return Re})),n.d(i,"popcnt_uint32",(function(){return Pe}));var s={};n.r(s),n.d(s,"uint16ToFloat64",(function(){return gr})),n.d(s,"float64ToUint16",(function(){return mr}));var o={};n.r(o),n.d(o,"isArrowBigNumSymbol",(function(){return Sr})),n.d(o,"bignumToString",(function(){return jr})),n.d(o,"bignumToBigInt",(function(){return Dr})),n.d(o,"BN",(function(){return Lr}));var a={};n.r(a),n.d(a,"clampIndex",(function(){return yi})),n.d(a,"clampRange",(function(){return gi})),n.d(a,"createElementComparator",(function(){return _i}));var c={};n.r(c),n.d(c,"BaseInt64",(function(){return mo})),n.d(c,"Uint64",(function(){return vo})),n.d(c,"Int64",(function(){return _o})),n.d(c,"Int128",(function(){return wo}));n("da6a");var u=n("ab5b"),l=n.n(u);const h=new WeakMap,f=new WeakMap;function d(t){const e=h.get(t);return console.assert(null!=e,"'this' is expected an Event object, but got",t),e}function p(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"===typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!==typeof console&&"function"===typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function y(t,e){h.set(this,{eventTarget:t,event:e,eventPhase:2,currentTarget:t,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:e.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});const n=Object.keys(e);for(let r=0;r0){const t=new Array(arguments.length);for(let e=0;e57343)i.push(s);else if(56320<=s&&s<=57343)i.push(65533);else if(55296<=s&&s<=56319)if(r===n-1)i.push(65533);else{var o=t.charCodeAt(r+1);if(56320<=o&&o<=57343){var a=1023&s,c=1023&o;i.push(65536+(a<<10)+c),r+=1}else i.push(65533)}r+=1}return i}function V(t){for(var e="",n=0;n>10),56320+(1023&r)))}return e}U.Offset,U.Table,U.SIZEOF_SHORT=2,U.SIZEOF_INT=4,U.FILE_IDENTIFIER_LENGTH=4,U.Encoding={UTF8_BYTES:1,UTF16_STRING:2},U.int32=new Int32Array(2),U.float32=new Float32Array(U.int32.buffer),U.float64=new Float64Array(U.int32.buffer),U.isLittleEndian=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0],U.Long=function(t,e){this.low=0|t,this.high=0|e},U.Long.create=function(t,e){return 0==t&&0==e?U.Long.ZERO:new U.Long(t,e)},U.Long.prototype.toFloat64=function(){return(this.low>>>0)+4294967296*this.high},U.Long.prototype.equals=function(t){return this.low==t.low&&this.high==t.high},U.Long.ZERO=new U.Long(0,0),U.Builder=function(t){if(t)e=t;else var e=1024;this.bb=U.ByteBuffer.allocate(e),this.space=e,this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},U.Builder.prototype.clear=function(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},U.Builder.prototype.forceDefaults=function(t){this.force_defaults=t},U.Builder.prototype.dataBuffer=function(){return this.bb},U.Builder.prototype.asUint8Array=function(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())},U.Builder.prototype.prep=function(t,e){t>this.minalign&&(this.minalign=t);var n=1+~(this.bb.capacity()-this.space+e)&t-1;while(this.space=0&&0==this.vtable[e];e--);for(var n=e+1;e>=0;e--)this.addInt16(0!=this.vtable[e]?t-this.vtable[e]:0);var r=2;this.addInt16(t-this.object_start);var i=(n+r)*U.SIZEOF_SHORT;this.addInt16(i);var s=0,o=this.space;t:for(e=0;e=0;r--)this.writeInt8(n.charCodeAt(r))}this.prep(this.minalign,U.SIZEOF_INT),this.addOffset(t),this.bb.setPosition(this.space)},U.Builder.prototype.requiredField=function(t,e){var n=this.bb.capacity()-t,r=n-this.bb.readInt32(n),i=0!=this.bb.readInt16(r+e);if(!i)throw new Error("FlatBuffers: field "+e+" must be set")},U.Builder.prototype.startVector=function(t,e,n){this.notNested(),this.vector_num_elems=e,this.prep(U.SIZEOF_INT,t*e),this.prep(n,t*e)},U.Builder.prototype.endVector=function(){return this.writeInt32(this.vector_num_elems),this.offset()},U.Builder.prototype.createString=function(t){if(t instanceof Uint8Array)var e=t;else{e=[];var n=0;while(n=56320)r=i;else{var s=t.charCodeAt(n++);r=(i<<10)+s+-56613888}r<128?e.push(r):(r<2048?e.push(r>>6&31|192):(r<65536?e.push(r>>12&15|224):e.push(r>>18&7|240,r>>12&63|128),e.push(r>>6&63|128)),e.push(63&r|128))}}this.addInt8(0),this.startVector(1,e.length,1),this.bb.setPosition(this.space-=e.length);n=0;for(var o=this.space,a=this.bb.bytes();n>24},U.ByteBuffer.prototype.readUint8=function(t){return this.bytes_[t]},U.ByteBuffer.prototype.readInt16=function(t){return this.readUint16(t)<<16>>16},U.ByteBuffer.prototype.readUint16=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8},U.ByteBuffer.prototype.readInt32=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24},U.ByteBuffer.prototype.readUint32=function(t){return this.readInt32(t)>>>0},U.ByteBuffer.prototype.readInt64=function(t){return new U.Long(this.readInt32(t),this.readInt32(t+4))},U.ByteBuffer.prototype.readUint64=function(t){return new U.Long(this.readUint32(t),this.readUint32(t+4))},U.ByteBuffer.prototype.readFloat32=function(t){return U.int32[0]=this.readInt32(t),U.float32[0]},U.ByteBuffer.prototype.readFloat64=function(t){return U.int32[U.isLittleEndian?0:1]=this.readInt32(t),U.int32[U.isLittleEndian?1:0]=this.readInt32(t+4),U.float64[0]},U.ByteBuffer.prototype.writeInt8=function(t,e){this.bytes_[t]=e},U.ByteBuffer.prototype.writeUint8=function(t,e){this.bytes_[t]=e},U.ByteBuffer.prototype.writeInt16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},U.ByteBuffer.prototype.writeUint16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},U.ByteBuffer.prototype.writeInt32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},U.ByteBuffer.prototype.writeUint32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},U.ByteBuffer.prototype.writeInt64=function(t,e){this.writeInt32(t,e.low),this.writeInt32(t+4,e.high)},U.ByteBuffer.prototype.writeUint64=function(t,e){this.writeUint32(t,e.low),this.writeUint32(t+4,e.high)},U.ByteBuffer.prototype.writeFloat32=function(t,e){U.float32[0]=e,this.writeInt32(t,U.int32[0])},U.ByteBuffer.prototype.writeFloat64=function(t,e){U.float64[0]=e,this.writeInt32(t,U.int32[U.isLittleEndian?0:1]),this.writeInt32(t+4,U.int32[U.isLittleEndian?1:0])},U.ByteBuffer.prototype.getBufferIdentifier=function(){if(this.bytes_.length>10),56320+(1023&s)))}return r},U.ByteBuffer.prototype.__indirect=function(t){return t+this.readInt32(t)},U.ByteBuffer.prototype.__vector=function(t){return t+this.readInt32(t)+U.SIZEOF_INT},U.ByteBuffer.prototype.__vector_len=function(t){return this.readInt32(t+this.readInt32(t))},U.ByteBuffer.prototype.__has_identifier=function(t){if(t.length!=U.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+U.FILE_IDENTIFIER_LENGTH);for(var e=0;e>6*n)+r];while(n>0){var s=e>>6*(n-1);i.push(128|63&s),n-=1}return i}}K.prototype={decode:function(t,e){var n;n="object"===typeof t&&t instanceof ArrayBuffer?new Uint8Array(t):"object"===typeof t&&"buffer"in t&&t.buffer instanceof ArrayBuffer?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(0),e=N(e),this._streaming||(this._decoder=new q({fatal:this._fatal}),this._BOMseen=!1),this._streaming=Boolean(e["stream"]);var r,i=new P(n),s=[];while(!i.endOfStream()){if(r=this._decoder.handler(i,i.read()),r===z)break;null!==r&&(Array.isArray(r)?s.push.apply(s,r):s.push(r))}if(!this._streaming){do{if(r=this._decoder.handler(i,i.read()),r===z)break;null!==r&&(Array.isArray(r)?s.push.apply(s,r):s.push(r))}while(!i.endOfStream());this._decoder=null}return s.length&&(-1===["utf-8"].indexOf(this.encoding)||this._ignoreBOM||this._BOMseen||(65279===s[0]?(this._BOMseen=!0,s.shift()):this._BOMseen=!0)),V(s)}},G.prototype={encode:function(t,e){t=t?String(t):"",e=N(e),this._streaming||(this._encoder=new J(this._options)),this._streaming=Boolean(e["stream"]);var n,r=[],i=new P(k(t));while(!i.endOfStream()){if(n=this._encoder.handler(i,i.read()),n===z)break;Array.isArray(n)?r.push.apply(r,n):r.push(n)}if(!this._streaming){while(1){if(n=this._encoder.handler(i,i.read()),n===z)break;Array.isArray(n)?r.push.apply(r,n):r.push(n)}this._encoder=null}return new Uint8Array(r)}};const Z="function"===typeof Buffer?Buffer:null,X="function"===typeof TextDecoder&&"function"===typeof TextEncoder,Q=(t=>{if(X||!Z){const e=new t("utf-8");return t=>e.decode(t)}return t=>{const{buffer:e,byteOffset:n,length:r}=Ct(t);return Z.from(e,n,r).toString()}})("undefined"!==typeof TextDecoder?TextDecoder:K),tt=(t=>{if(X||!Z){const e=new t;return t=>e.encode(t)}return(t="")=>Ct(Z.from(t,"utf8"))})("undefined"!==typeof TextEncoder?TextEncoder:G),et=Object.freeze({done:!0,value:void 0});class nt{constructor(t){this._json=t}get schema(){return this._json["schema"]}get batches(){return this._json["batches"]||[]}get dictionaries(){return this._json["dictionaries"]||[]}}class rt{tee(){return this._getDOMStream().tee()}pipe(t,e){return this._getNodeStream().pipe(t,e)}pipeTo(t,e){return this._getDOMStream().pipeTo(t,e)}pipeThrough(t,e){return this._getDOMStream().pipeThrough(t,e)}_getDOMStream(){return this._DOMStream||(this._DOMStream=this.toDOMStream())}_getNodeStream(){return this._nodeStream||(this._nodeStream=this.toNodeStream())}}class it extends rt{constructor(){super(),this._values=[],this.resolvers=[],this._closedPromise=new Promise(t=>this._closedPromiseResolve=t)}get closed(){return this._closedPromise}async cancel(t){await this.return(t)}write(t){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(t):this.resolvers.shift().resolve({done:!1,value:t}))}abort(t){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:t}:this.resolvers.shift().reject({done:!0,value:t}))}close(){if(this._closedPromiseResolve){const{resolvers:t}=this;while(t.length>0)t.shift().resolve(et);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}[Symbol.asyncIterator](){return this}toDOMStream(t){return fe.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,t)}toNodeStream(t){return fe.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,t)}async throw(t){return await this.abort(t),et}async return(t){return await this.close(),et}async read(t){return(await this.next(t,"read")).value}async peek(t){return(await this.next(t,"peek")).value}next(...t){return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((t,e)=>{this.resolvers.push({resolve:t,reject:e})}):Promise.resolve(et)}_ensureOpen(){if(this._closedPromiseResolve)return!0;throw new Error(this+" is closed")}}const[st,ot]=(()=>{const t=()=>{throw new Error("BigInt is not available in this environment")};function e(){throw t()}return e.asIntN=()=>{throw t()},e.asUintN=()=>{throw t()},"undefined"!==typeof BigInt?[BigInt,!0]:[e,!1]})(),[at,ct]=(()=>{const t=()=>{throw new Error("BigInt64Array is not available in this environment")};class e{static get BYTES_PER_ELEMENT(){return 8}static of(){throw t()}static from(){throw t()}constructor(){throw t()}}return"undefined"!==typeof BigInt64Array?[BigInt64Array,!0]:[e,!1]})(),[ut,lt]=(()=>{const t=()=>{throw new Error("BigUint64Array is not available in this environment")};class e{static get BYTES_PER_ELEMENT(){return 8}static of(){throw t()}static from(){throw t()}constructor(){throw t()}}return"undefined"!==typeof BigUint64Array?[BigUint64Array,!0]:[e,!1]})(),ht=t=>"number"===typeof t,ft=t=>"boolean"===typeof t,dt=t=>"function"===typeof t,pt=t=>null!=t&&Object(t)===t,yt=t=>pt(t)&&dt(t.then),bt=t=>pt(t)&&dt(t[Symbol.iterator]),gt=t=>pt(t)&&dt(t[Symbol.asyncIterator]),mt=t=>pt(t)&&pt(t["schema"]),vt=t=>pt(t)&&"done"in t&&"value"in t,_t=t=>pt(t)&&dt(t["stat"])&&ht(t["fd"]),wt=t=>pt(t)&&St(t["body"]),It=t=>pt(t)&&dt(t["abort"])&&dt(t["getWriter"])&&!(t instanceof rt),St=t=>pt(t)&&dt(t["cancel"])&&dt(t["getReader"])&&!(t instanceof rt),Ot=t=>pt(t)&&dt(t["end"])&&dt(t["write"])&&ft(t["writable"])&&!(t instanceof rt),Tt=t=>pt(t)&&dt(t["read"])&&dt(t["pipe"])&&ft(t["readable"])&&!(t instanceof rt);var At=U.ByteBuffer;const xt="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;function Bt(t){let e,n,r,i,s=t[0]?[t[0]]:[];for(let o,a,c=0,u=0,l=t.length;++ct+e.byteLength,0),a=0,c=-1,u=Math.min(e||1/0,o);for(let l=s.length;++cFt(Int8Array,t),Et=t=>Ft(Int16Array,t),Mt=t=>Ft(Int32Array,t),Ut=t=>Ft(at,t),Ct=t=>Ft(Uint8Array,t),Nt=t=>Ft(Uint16Array,t),kt=t=>Ft(Uint32Array,t),Vt=t=>Ft(ut,t),Rt=t=>Ft(Float32Array,t),Pt=t=>Ft(Float64Array,t),zt=t=>Ft(Uint8ClampedArray,t),$t=t=>(t.next(),t);function*Yt(t,e){const n=function*(t){yield t},r="string"===typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof xt?n(e):bt(e)?e:n(e);yield*$t(function*(e){let n=null;do{n=e.next(yield Ft(t,n))}while(!n.done)}(r[Symbol.iterator]()))}const Wt=t=>Yt(Int8Array,t),Ht=t=>Yt(Int16Array,t),Kt=t=>Yt(Int32Array,t),Gt=t=>Yt(Uint8Array,t),qt=t=>Yt(Uint16Array,t),Jt=t=>Yt(Uint32Array,t),Zt=t=>Yt(Float32Array,t),Xt=t=>Yt(Float64Array,t),Qt=t=>Yt(Uint8ClampedArray,t);async function*te(t,e){if(yt(e))return yield*te(t,await e);const n=async function*(t){yield await t},r=async function*(t){yield*$t(function*(t){let e=null;do{e=t.next(yield e&&e.value)}while(!e.done)}(t[Symbol.iterator]()))},i="string"===typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof xt?n(e):bt(e)?r(e):gt(e)?e:n(e);yield*$t(async function*(e){let n=null;do{n=await e.next(yield Ft(t,n))}while(!n.done)}(i[Symbol.asyncIterator]()))}const ee=t=>te(Int8Array,t),ne=t=>te(Int16Array,t),re=t=>te(Int32Array,t),ie=t=>te(Uint8Array,t),se=t=>te(Uint16Array,t),oe=t=>te(Uint32Array,t),ae=t=>te(Float32Array,t),ce=t=>te(Float64Array,t),ue=t=>te(Uint8ClampedArray,t);function le(t,e,n){if(0!==t){n=n.slice(0,e+1);for(let r=-1;++r<=e;)n[r]+=t}return n}function he(t,e){let n=0,r=t.length;if(r!==e.length)return!1;if(r>0)do{if(t[n]!==e[n])return!1}while(++n(t.next(),t);function*pe(t){let e,n,r,i,s=!1,o=[],a=0;function c(){return"peek"===r?Dt(o,i)[0]:([n,o,a]=Dt(o,i),n)}({cmd:r,size:i}=yield null);let u=Gt(t)[Symbol.iterator]();try{do{if(({done:e,value:n}=isNaN(i-a)?u.next(void 0):u.next(i-a)),!e&&n.byteLength>0&&(o.push(n),a+=n.byteLength),e||i<=a)do{({cmd:r,size:i}=yield c())}while(i0&&(o.push(n),a+=n.byteLength),e||i<=a)do{({cmd:r,size:i}=yield c())}while(i0&&(o.push(Ct(e)),a+=e.byteLength),i||r<=a)do{({cmd:n,size:r}=yield c())}while(r{}):Promise.resolve()}releaseLock(){this.reader&&this.reader.releaseLock(),this.reader=this.byobReader=this.defaultReader=null}async cancel(t){const{reader:e,source:n}=this;e&&await e["cancel"](t).catch(()=>{}),n&&n["locked"]&&this.releaseLock()}async read(t){if(0===t)return{done:null==this.reader,value:new Uint8Array(0)};const e=this.supportsBYOB&&"number"===typeof t?await this.readFromBYOBReader(t):await this.getDefaultReader().read();return!e.done&&(e.value=Ct(e)),e}getDefaultReader(){return this.byobReader&&this.releaseLock(),this.defaultReader||(this.defaultReader=this.source["getReader"](),this.defaultReader["closed"].catch(()=>{})),this.reader=this.defaultReader}getBYOBReader(){return this.defaultReader&&this.releaseLock(),this.byobReader||(this.byobReader=this.source["getReader"]({mode:"byob"}),this.byobReader["closed"].catch(()=>{})),this.reader=this.byobReader}async readFromBYOBReader(t){return await me(this.getBYOBReader(),new ArrayBuffer(t),0,t)}}async function me(t,e,n,r){if(n>=r)return{done:!1,value:new Uint8Array(e,0,r)};const{done:i,value:s}=await t.read(new Uint8Array(e,n,r-n));return(n+=s.byteLength){let n,r=t=>n([e,t]);return[e,r,new Promise(i=>(n=i)&&t["once"](e,r))]};async function*_e(t){let e,n,r,i=[],s="error",o=!1,a=null,c=0,u=[];function l(){return"peek"===e?Dt(u,n)[0]:([r,u,c]=Dt(u,n),r)}if(({cmd:e,size:n}=yield null),t["isTTY"])return yield new Uint8Array(0);try{i[0]=ve(t,"end"),i[1]=ve(t,"error");do{if(i[2]=ve(t,"readable"),[s,a]=await Promise.race(i.map(t=>t[2])),"error"===s)break;if((o="end"===s)||(isFinite(n-c)?(r=Ct(t["read"](n-c)),r.byteLength0&&(u.push(r),c+=r.byteLength)),o||n<=c)do{({cmd:e,size:n}=yield l())}while(n{for(const[n,o]of e)t["off"](n,o);try{const e=t["destroy"];e&&e.call(t,n),n=void 0}catch(s){n=s||n}finally{null!=n?i(n):r()}})}}class we{}var Ie,Se;(function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["V1"]=0]="V1",t[t["V2"]=1]="V2",t[t["V3"]=2]="V3",t[t["V4"]=3]="V4"})(e=t.MetadataVersion||(t.MetadataVersion={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))})(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["Sparse"]=0]="Sparse",t[t["Dense"]=1]="Dense"})(e=t.UnionMode||(t.UnionMode={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["HALF"]=0]="HALF",t[t["SINGLE"]=1]="SINGLE",t[t["DOUBLE"]=2]="DOUBLE"})(e=t.Precision||(t.Precision={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["DAY"]=0]="DAY",t[t["MILLISECOND"]=1]="MILLISECOND"})(e=t.DateUnit||(t.DateUnit={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["SECOND"]=0]="SECOND",t[t["MILLISECOND"]=1]="MILLISECOND",t[t["MICROSECOND"]=2]="MICROSECOND",t[t["NANOSECOND"]=3]="NANOSECOND"})(e=t.TimeUnit||(t.TimeUnit={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["YEAR_MONTH"]=0]="YEAR_MONTH",t[t["DAY_TIME"]=1]="DAY_TIME"})(e=t.IntervalUnit||(t.IntervalUnit={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["NONE"]=0]="NONE",t[t["Null"]=1]="Null",t[t["Int"]=2]="Int",t[t["FloatingPoint"]=3]="FloatingPoint",t[t["Binary"]=4]="Binary",t[t["Utf8"]=5]="Utf8",t[t["Bool"]=6]="Bool",t[t["Decimal"]=7]="Decimal",t[t["Date"]=8]="Date",t[t["Time"]=9]="Time",t[t["Timestamp"]=10]="Timestamp",t[t["Interval"]=11]="Interval",t[t["List"]=12]="List",t[t["Struct_"]=13]="Struct_",t[t["Union"]=14]="Union",t[t["FixedSizeBinary"]=15]="FixedSizeBinary",t[t["FixedSizeList"]=16]="FixedSizeList",t[t["Map"]=17]="Map",t[t["Duration"]=18]="Duration",t[t["LargeBinary"]=19]="LargeBinary",t[t["LargeUtf8"]=20]="LargeUtf8",t[t["LargeList"]=21]="LargeList"})(e=t.Type||(t.Type={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["Little"]=0]="Little",t[t["Big"]=1]="Big"})(e=t.Endianness||(t.Endianness={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNull(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startNull(t){t.startObject(0)}static endNull(t){let e=t.endObject();return e}static createNull(t){return e.startNull(t),e.endNull(t)}}t.Null=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsStruct_(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startStruct_(t){t.startObject(0)}static endStruct_(t){let e=t.endObject();return e}static createStruct_(t){return e.startStruct_(t),e.endStruct_(t)}}t.Struct_=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsList(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startList(t){t.startObject(0)}static endList(t){let e=t.endObject();return e}static createList(t){return e.startList(t),e.endList(t)}}t.List=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsLargeList(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startLargeList(t){t.startObject(0)}static endLargeList(t){let e=t.endObject();return e}static createLargeList(t){return e.startLargeList(t),e.endLargeList(t)}}t.LargeList=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsFixedSizeList(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}listSize(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}static startFixedSizeList(t){t.startObject(1)}static addListSize(t,e){t.addFieldInt32(0,e,0)}static endFixedSizeList(t){let e=t.endObject();return e}static createFixedSizeList(t,n){return e.startFixedSizeList(t),e.addListSize(t,n),e.endFixedSizeList(t)}}t.FixedSizeList=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsMap(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}keysSorted(){let t=this.bb.__offset(this.bb_pos,4);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}static startMap(t){t.startObject(1)}static addKeysSorted(t,e){t.addFieldInt8(0,+e,0)}static endMap(t){let e=t.endObject();return e}static createMap(t,n){return e.startMap(t),e.addKeysSorted(t,n),e.endMap(t)}}t.Map=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsUnion(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}mode(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.UnionMode.Sparse}typeIds(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt32(this.bb.__vector(this.bb_pos+e)+4*t):0}typeIdsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}typeIdsArray(){let t=this.bb.__offset(this.bb_pos,6);return t?new Int32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startUnion(t){t.startObject(2)}static addMode(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.UnionMode.Sparse)}static addTypeIds(t,e){t.addFieldOffset(1,e,0)}static createTypeIdsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addInt32(e[n]);return t.endVector()}static startTypeIdsVector(t,e){t.startVector(4,e,4)}static endUnion(t){let e=t.endObject();return e}static createUnion(t,e,r){return n.startUnion(t),n.addMode(t,e),n.addTypeIds(t,r),n.endUnion(t)}}e.Union=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsInt(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}bitWidth(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}isSigned(){let t=this.bb.__offset(this.bb_pos,6);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}static startInt(t){t.startObject(2)}static addBitWidth(t,e){t.addFieldInt32(0,e,0)}static addIsSigned(t,e){t.addFieldInt8(1,+e,0)}static endInt(t){let e=t.endObject();return e}static createInt(t,n,r){return e.startInt(t),e.addBitWidth(t,n),e.addIsSigned(t,r),e.endInt(t)}}t.Int=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsFloatingPoint(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}precision(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.Precision.HALF}static startFloatingPoint(t){t.startObject(1)}static addPrecision(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.Precision.HALF)}static endFloatingPoint(t){let e=t.endObject();return e}static createFloatingPoint(t,e){return n.startFloatingPoint(t),n.addPrecision(t,e),n.endFloatingPoint(t)}}e.FloatingPoint=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsUtf8(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startUtf8(t){t.startObject(0)}static endUtf8(t){let e=t.endObject();return e}static createUtf8(t){return e.startUtf8(t),e.endUtf8(t)}}t.Utf8=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsBinary(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startBinary(t){t.startObject(0)}static endBinary(t){let e=t.endObject();return e}static createBinary(t){return e.startBinary(t),e.endBinary(t)}}t.Binary=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsLargeUtf8(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startLargeUtf8(t){t.startObject(0)}static endLargeUtf8(t){let e=t.endObject();return e}static createLargeUtf8(t){return e.startLargeUtf8(t),e.endLargeUtf8(t)}}t.LargeUtf8=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsLargeBinary(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startLargeBinary(t){t.startObject(0)}static endLargeBinary(t){let e=t.endObject();return e}static createLargeBinary(t){return e.startLargeBinary(t),e.endLargeBinary(t)}}t.LargeBinary=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsFixedSizeBinary(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}byteWidth(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}static startFixedSizeBinary(t){t.startObject(1)}static addByteWidth(t,e){t.addFieldInt32(0,e,0)}static endFixedSizeBinary(t){let e=t.endObject();return e}static createFixedSizeBinary(t,n){return e.startFixedSizeBinary(t),e.addByteWidth(t,n),e.endFixedSizeBinary(t)}}t.FixedSizeBinary=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsBool(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startBool(t){t.startObject(0)}static endBool(t){let e=t.endObject();return e}static createBool(t){return e.startBool(t),e.endBool(t)}}t.Bool=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDecimal(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}precision(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):0}scale(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt32(this.bb_pos+t):0}static startDecimal(t){t.startObject(2)}static addPrecision(t,e){t.addFieldInt32(0,e,0)}static addScale(t,e){t.addFieldInt32(1,e,0)}static endDecimal(t){let e=t.endObject();return e}static createDecimal(t,n,r){return e.startDecimal(t),e.addPrecision(t,n),e.addScale(t,r),e.endDecimal(t)}}t.Decimal=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDate(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}unit(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.DateUnit.MILLISECOND}static startDate(t){t.startObject(1)}static addUnit(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.DateUnit.MILLISECOND)}static endDate(t){let e=t.endObject();return e}static createDate(t,e){return n.startDate(t),n.addUnit(t,e),n.endDate(t)}}e.Date=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTime(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}unit(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.MILLISECOND}bitWidth(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt32(this.bb_pos+t):32}static startTime(t){t.startObject(2)}static addUnit(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.MILLISECOND)}static addBitWidth(t,e){t.addFieldInt32(1,e,32)}static endTime(t){let e=t.endObject();return e}static createTime(t,e,r){return n.startTime(t),n.addUnit(t,e),n.addBitWidth(t,r),n.endTime(t)}}e.Time=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTimestamp(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}unit(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.SECOND}timezone(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}static startTimestamp(t){t.startObject(2)}static addUnit(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.SECOND)}static addTimezone(t,e){t.addFieldOffset(1,e,0)}static endTimestamp(t){let e=t.endObject();return e}static createTimestamp(t,e,r){return n.startTimestamp(t),n.addUnit(t,e),n.addTimezone(t,r),n.endTimestamp(t)}}e.Timestamp=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsInterval(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}unit(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH}static startInterval(t){t.startObject(1)}static addUnit(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH)}static endInterval(t){let e=t.endObject();return e}static createInterval(t,e){return n.startInterval(t),n.addUnit(t,e),n.endInterval(t)}}e.Interval=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDuration(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}unit(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.TimeUnit.MILLISECOND}static startDuration(t){t.startObject(1)}static addUnit(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.TimeUnit.MILLISECOND)}static endDuration(t){let e=t.endObject();return e}static createDuration(t,e){return n.startDuration(t),n.addUnit(t,e),n.endDuration(t)}}e.Duration=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsKeyValue(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}key(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}value(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}static startKeyValue(t){t.startObject(2)}static addKey(t,e){t.addFieldOffset(0,e,0)}static addValue(t,e){t.addFieldOffset(1,e,0)}static endKeyValue(t){let e=t.endObject();return e}static createKeyValue(t,n,r){return e.startKeyValue(t),e.addKey(t,n),e.addValue(t,r),e.endKeyValue(t)}}t.KeyValue=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDictionaryEncoding(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}id(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}indexType(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.apache.arrow.flatbuf.Int).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}isOrdered(){let t=this.bb.__offset(this.bb_pos,8);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}static startDictionaryEncoding(t){t.startObject(3)}static addId(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}static addIndexType(t,e){t.addFieldOffset(1,e,0)}static addIsOrdered(t,e){t.addFieldInt8(2,+e,0)}static endDictionaryEncoding(t){let e=t.endObject();return e}static createDictionaryEncoding(t,e,r,i){return n.startDictionaryEncoding(t),n.addId(t,e),n.addIndexType(t,r),n.addIsOrdered(t,i),n.endDictionaryEncoding(t)}}e.DictionaryEncoding=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsField(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}nullable(){let t=this.bb.__offset(this.bb_pos,6);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}typeType(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb_pos+e):t.apache.arrow.flatbuf.Type.NONE}type(t){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__union(t,this.bb_pos+e):null}dictionary(e){let n=this.bb.__offset(this.bb_pos,12);return n?(e||new t.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}children(e,n){let r=this.bb.__offset(this.bb_pos,14);return r?(n||new t.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}childrenLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(e,n){let r=this.bb.__offset(this.bb_pos,16);return r?(n||new t.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}static startField(t){t.startObject(7)}static addName(t,e){t.addFieldOffset(0,e,0)}static addNullable(t,e){t.addFieldInt8(1,+e,0)}static addTypeType(e,n){e.addFieldInt8(2,n,t.apache.arrow.flatbuf.Type.NONE)}static addType(t,e){t.addFieldOffset(3,e,0)}static addDictionary(t,e){t.addFieldOffset(4,e,0)}static addChildren(t,e){t.addFieldOffset(5,e,0)}static createChildrenVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startChildrenVector(t,e){t.startVector(4,e,4)}static addCustomMetadata(t,e){t.addFieldOffset(6,e,0)}static createCustomMetadataVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startCustomMetadataVector(t,e){t.startVector(4,e,4)}static endField(t){let e=t.endObject();return e}static createField(t,e,r,i,s,o,a,c){return n.startField(t),n.addName(t,e),n.addNullable(t,r),n.addTypeType(t,i),n.addType(t,s),n.addDictionary(t,o),n.addChildren(t,a),n.addCustomMetadata(t,c),n.endField(t)}}e.Field=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}offset(){return this.bb.readInt64(this.bb_pos)}length(){return this.bb.readInt64(this.bb_pos+8)}static createBuffer(t,e,n){return t.prep(8,16),t.writeInt64(n),t.writeInt64(e),t.offset()}}t.Buffer=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSchema(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}endianness(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t.apache.arrow.flatbuf.Endianness.Little}fields(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}fieldsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(e,n){let r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSchema(t){t.startObject(3)}static addEndianness(e,n){e.addFieldInt16(0,n,t.apache.arrow.flatbuf.Endianness.Little)}static addFields(t,e){t.addFieldOffset(1,e,0)}static createFieldsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startFieldsVector(t,e){t.startVector(4,e,4)}static addCustomMetadata(t,e){t.addFieldOffset(2,e,0)}static createCustomMetadataVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startCustomMetadataVector(t,e){t.startVector(4,e,4)}static endSchema(t){let e=t.endObject();return e}static finishSchemaBuffer(t,e){t.finish(e)}static createSchema(t,e,r,i){return n.startSchema(t),n.addEndianness(t,e),n.addFields(t,r),n.addCustomMetadata(t,i),n.endSchema(t)}}e.Schema=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Ie||(Ie={})),function(t){(function(t){(function(t){(function(t){t.Schema=Ie.apache.arrow.flatbuf.Schema})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={})),function(t){(function(t){(function(t){(function(t){let e;(function(t){t[t["NONE"]=0]="NONE",t[t["Schema"]=1]="Schema",t[t["DictionaryBatch"]=2]="DictionaryBatch",t[t["RecordBatch"]=3]="RecordBatch",t[t["Tensor"]=4]="Tensor",t[t["SparseTensor"]=5]="SparseTensor"})(e=t.MessageHeader||(t.MessageHeader={}))})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}length(){return this.bb.readInt64(this.bb_pos)}nullCount(){return this.bb.readInt64(this.bb_pos+8)}static createFieldNode(t,e,n){return t.prep(8,16),t.writeInt64(n),t.writeInt64(e),t.offset()}}t.FieldNode=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsRecordBatch(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}length(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}nodes(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.apache.arrow.flatbuf.FieldNode).__init(this.bb.__vector(this.bb_pos+r)+16*e,this.bb):null}nodesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}buffers(t,e){let n=this.bb.__offset(this.bb_pos,8);return n?(e||new Ie.apache.arrow.flatbuf.Buffer).__init(this.bb.__vector(this.bb_pos+n)+16*t,this.bb):null}buffersLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startRecordBatch(t){t.startObject(3)}static addLength(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}static addNodes(t,e){t.addFieldOffset(1,e,0)}static startNodesVector(t,e){t.startVector(16,e,8)}static addBuffers(t,e){t.addFieldOffset(2,e,0)}static startBuffersVector(t,e){t.startVector(16,e,8)}static endRecordBatch(t){let e=t.endObject();return e}static createRecordBatch(t,e,r,i){return n.startRecordBatch(t),n.addLength(t,e),n.addNodes(t,r),n.addBuffers(t,i),n.endRecordBatch(t)}}e.RecordBatch=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDictionaryBatch(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}id(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}data(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.apache.arrow.flatbuf.RecordBatch).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}isDelta(){let t=this.bb.__offset(this.bb_pos,8);return!!t&&!!this.bb.readInt8(this.bb_pos+t)}static startDictionaryBatch(t){t.startObject(3)}static addId(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}static addData(t,e){t.addFieldOffset(1,e,0)}static addIsDelta(t,e){t.addFieldInt8(2,+e,0)}static endDictionaryBatch(t){let e=t.endObject();return e}static createDictionaryBatch(t,e,r,i){return n.startDictionaryBatch(t),n.addId(t,e),n.addData(t,r),n.addIsDelta(t,i),n.endDictionaryBatch(t)}}e.DictionaryBatch=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={})),function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsMessage(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):Ie.apache.arrow.flatbuf.MetadataVersion.V1}headerType(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint8(this.bb_pos+e):t.apache.arrow.flatbuf.MessageHeader.NONE}header(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__union(t,this.bb_pos+e):null}bodyLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}customMetadata(t,e){let n=this.bb.__offset(this.bb_pos,12);return n?(e||new Ie.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+4*t),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startMessage(t){t.startObject(5)}static addVersion(t,e){t.addFieldInt16(0,e,Ie.apache.arrow.flatbuf.MetadataVersion.V1)}static addHeaderType(e,n){e.addFieldInt8(1,n,t.apache.arrow.flatbuf.MessageHeader.NONE)}static addHeader(t,e){t.addFieldOffset(2,e,0)}static addBodyLength(t,e){t.addFieldInt64(3,e,t.createLong(0,0))}static addCustomMetadata(t,e){t.addFieldOffset(4,e,0)}static createCustomMetadataVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startCustomMetadataVector(t,e){t.startVector(4,e,4)}static endMessage(t){let e=t.endObject();return e}static finishMessageBuffer(t,e){t.finish(e)}static createMessage(t,e,r,i,s,o){return n.startMessage(t),n.addVersion(t,e),n.addHeaderType(t,r),n.addHeader(t,i),n.addBodyLength(t,s),n.addCustomMetadata(t,o),n.endMessage(t)}}e.Message=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Se||(Se={}));Ie.apache.arrow.flatbuf.Type;var Oe,Te,Ae=Ie.apache.arrow.flatbuf.DateUnit,xe=Ie.apache.arrow.flatbuf.TimeUnit,Be=Ie.apache.arrow.flatbuf.Precision,je=Ie.apache.arrow.flatbuf.UnionMode,De=Ie.apache.arrow.flatbuf.IntervalUnit,Fe=Se.apache.arrow.flatbuf.MessageHeader,Le=Ie.apache.arrow.flatbuf.MetadataVersion;function Ee(t,e,n,r){return 0!==(n&1<>r}function Ue(t,e,n){return n?!!(t[e>>3]|=1<>3]&=~(1<0||n.byteLength>3):Ne(ke(n,t,e,null,Ee)).subarray(0,r)),i}return n}function Ne(t){let e=[],n=0,r=0,i=0;for(const o of t)o&&(i|=1<0)&&(e[n++]=i);let s=new Uint8Array(e.length+7&-8);return s.set(e),s}function*ke(t,e,n,r,i){let s=e%8,o=e>>3,a=0,c=n;for(;c>0;s=0){let e=t[o++];do{yield i(r,a++,e,s)}while(--c>0&&++s<8)}}function Ve(t,e,n){if(n-e<=0)return 0;if(n-e<8){let r=0;for(const i of ke(t,e,n-e,t,Me))r+=i;return r}const r=n>>3<<3,i=e+(e%8===0?0:8-e%8);return Ve(t,e,i)+Ve(t,r,n)+Re(t,i>>3,r-i>>3)}function Re(t,e,n){let r=0,i=0|e;const s=new DataView(t.buffer,t.byteOffset,t.byteLength),o=void 0===n?t.byteLength:i+n;while(o-i>=4)r+=Pe(s.getUint32(i)),i+=4;while(o-i>=2)r+=Pe(s.getUint16(i)),i+=2;while(o-i>=1)r+=Pe(s.getUint8(i)),i+=1;return r}function Pe(t){let e=0|t;return e-=e>>>1&1431655765,e=(858993459&e)+(e>>>2&858993459),16843009*(e+(e>>>4)&252645135)>>>24}(function(t){t[t["NONE"]=0]="NONE",t[t["Null"]=1]="Null",t[t["Int"]=2]="Int",t[t["Float"]=3]="Float",t[t["Binary"]=4]="Binary",t[t["Utf8"]=5]="Utf8",t[t["Bool"]=6]="Bool",t[t["Decimal"]=7]="Decimal",t[t["Date"]=8]="Date",t[t["Time"]=9]="Time",t[t["Timestamp"]=10]="Timestamp",t[t["Interval"]=11]="Interval",t[t["List"]=12]="List",t[t["Struct"]=13]="Struct",t[t["Union"]=14]="Union",t[t["FixedSizeBinary"]=15]="FixedSizeBinary",t[t["FixedSizeList"]=16]="FixedSizeList",t[t["Map"]=17]="Map",t[t["Dictionary"]=-1]="Dictionary",t[t["Int8"]=-2]="Int8",t[t["Int16"]=-3]="Int16",t[t["Int32"]=-4]="Int32",t[t["Int64"]=-5]="Int64",t[t["Uint8"]=-6]="Uint8",t[t["Uint16"]=-7]="Uint16",t[t["Uint32"]=-8]="Uint32",t[t["Uint64"]=-9]="Uint64",t[t["Float16"]=-10]="Float16",t[t["Float32"]=-11]="Float32",t[t["Float64"]=-12]="Float64",t[t["DateDay"]=-13]="DateDay",t[t["DateMillisecond"]=-14]="DateMillisecond",t[t["TimestampSecond"]=-15]="TimestampSecond",t[t["TimestampMillisecond"]=-16]="TimestampMillisecond",t[t["TimestampMicrosecond"]=-17]="TimestampMicrosecond",t[t["TimestampNanosecond"]=-18]="TimestampNanosecond",t[t["TimeSecond"]=-19]="TimeSecond",t[t["TimeMillisecond"]=-20]="TimeMillisecond",t[t["TimeMicrosecond"]=-21]="TimeMicrosecond",t[t["TimeNanosecond"]=-22]="TimeNanosecond",t[t["DenseUnion"]=-23]="DenseUnion",t[t["SparseUnion"]=-24]="SparseUnion",t[t["IntervalDayTime"]=-25]="IntervalDayTime",t[t["IntervalYearMonth"]=-26]="IntervalYearMonth"})(Oe||(Oe={})),function(t){t[t["OFFSET"]=0]="OFFSET",t[t["DATA"]=1]="DATA",t[t["VALIDITY"]=2]="VALIDITY",t[t["TYPE"]=3]="TYPE"}(Te||(Te={}));class ze{visitMany(t,...e){return t.map((t,n)=>this.visit(t,...e.map(t=>t[n])))}visit(...t){return this.getVisitFn(t[0],!1).apply(this,t)}getVisitFn(t,e=!0){return $e(this,t,e)}visitNull(t,...e){return null}visitBool(t,...e){return null}visitInt(t,...e){return null}visitFloat(t,...e){return null}visitUtf8(t,...e){return null}visitBinary(t,...e){return null}visitFixedSizeBinary(t,...e){return null}visitDate(t,...e){return null}visitTimestamp(t,...e){return null}visitTime(t,...e){return null}visitDecimal(t,...e){return null}visitList(t,...e){return null}visitStruct(t,...e){return null}visitUnion(t,...e){return null}visitDictionary(t,...e){return null}visitInterval(t,...e){return null}visitFixedSizeList(t,...e){return null}visitMap(t,...e){return null}}function $e(t,e,n=!0){let r=null,i=Oe.NONE;switch(e instanceof Yn||e instanceof we?i=Ye(e.type):e instanceof un?i=Ye(e):"number"!==typeof(i=e)&&(i=Oe[e]),i){case Oe.Null:r=t.visitNull;break;case Oe.Bool:r=t.visitBool;break;case Oe.Int:r=t.visitInt;break;case Oe.Int8:r=t.visitInt8||t.visitInt;break;case Oe.Int16:r=t.visitInt16||t.visitInt;break;case Oe.Int32:r=t.visitInt32||t.visitInt;break;case Oe.Int64:r=t.visitInt64||t.visitInt;break;case Oe.Uint8:r=t.visitUint8||t.visitInt;break;case Oe.Uint16:r=t.visitUint16||t.visitInt;break;case Oe.Uint32:r=t.visitUint32||t.visitInt;break;case Oe.Uint64:r=t.visitUint64||t.visitInt;break;case Oe.Float:r=t.visitFloat;break;case Oe.Float16:r=t.visitFloat16||t.visitFloat;break;case Oe.Float32:r=t.visitFloat32||t.visitFloat;break;case Oe.Float64:r=t.visitFloat64||t.visitFloat;break;case Oe.Utf8:r=t.visitUtf8;break;case Oe.Binary:r=t.visitBinary;break;case Oe.FixedSizeBinary:r=t.visitFixedSizeBinary;break;case Oe.Date:r=t.visitDate;break;case Oe.DateDay:r=t.visitDateDay||t.visitDate;break;case Oe.DateMillisecond:r=t.visitDateMillisecond||t.visitDate;break;case Oe.Timestamp:r=t.visitTimestamp;break;case Oe.TimestampSecond:r=t.visitTimestampSecond||t.visitTimestamp;break;case Oe.TimestampMillisecond:r=t.visitTimestampMillisecond||t.visitTimestamp;break;case Oe.TimestampMicrosecond:r=t.visitTimestampMicrosecond||t.visitTimestamp;break;case Oe.TimestampNanosecond:r=t.visitTimestampNanosecond||t.visitTimestamp;break;case Oe.Time:r=t.visitTime;break;case Oe.TimeSecond:r=t.visitTimeSecond||t.visitTime;break;case Oe.TimeMillisecond:r=t.visitTimeMillisecond||t.visitTime;break;case Oe.TimeMicrosecond:r=t.visitTimeMicrosecond||t.visitTime;break;case Oe.TimeNanosecond:r=t.visitTimeNanosecond||t.visitTime;break;case Oe.Decimal:r=t.visitDecimal;break;case Oe.List:r=t.visitList;break;case Oe.Struct:r=t.visitStruct;break;case Oe.Union:r=t.visitUnion;break;case Oe.DenseUnion:r=t.visitDenseUnion||t.visitUnion;break;case Oe.SparseUnion:r=t.visitSparseUnion||t.visitUnion;break;case Oe.Dictionary:r=t.visitDictionary;break;case Oe.Interval:r=t.visitInterval;break;case Oe.IntervalDayTime:r=t.visitIntervalDayTime||t.visitInterval;break;case Oe.IntervalYearMonth:r=t.visitIntervalYearMonth||t.visitInterval;break;case Oe.FixedSizeList:r=t.visitFixedSizeList;break;case Oe.Map:r=t.visitMap;break}if("function"===typeof r)return r;if(!n)return()=>null;throw new Error(`Unrecognized type '${Oe[i]}'`)}function Ye(t){switch(t.typeId){case Oe.Null:return Oe.Null;case Oe.Int:const{bitWidth:e,isSigned:n}=t;switch(e){case 8:return n?Oe.Int8:Oe.Uint8;case 16:return n?Oe.Int16:Oe.Uint16;case 32:return n?Oe.Int32:Oe.Uint32;case 64:return n?Oe.Int64:Oe.Uint64}return Oe.Int;case Oe.Float:switch(t.precision){case Be.HALF:return Oe.Float16;case Be.SINGLE:return Oe.Float32;case Be.DOUBLE:return Oe.Float64}return Oe.Float;case Oe.Binary:return Oe.Binary;case Oe.Utf8:return Oe.Utf8;case Oe.Bool:return Oe.Bool;case Oe.Decimal:return Oe.Decimal;case Oe.Time:switch(t.unit){case xe.SECOND:return Oe.TimeSecond;case xe.MILLISECOND:return Oe.TimeMillisecond;case xe.MICROSECOND:return Oe.TimeMicrosecond;case xe.NANOSECOND:return Oe.TimeNanosecond}return Oe.Time;case Oe.Timestamp:switch(t.unit){case xe.SECOND:return Oe.TimestampSecond;case xe.MILLISECOND:return Oe.TimestampMillisecond;case xe.MICROSECOND:return Oe.TimestampMicrosecond;case xe.NANOSECOND:return Oe.TimestampNanosecond}return Oe.Timestamp;case Oe.Date:switch(t.unit){case Ae.DAY:return Oe.DateDay;case Ae.MILLISECOND:return Oe.DateMillisecond}return Oe.Date;case Oe.Interval:switch(t.unit){case De.DAY_TIME:return Oe.IntervalDayTime;case De.YEAR_MONTH:return Oe.IntervalYearMonth}return Oe.Interval;case Oe.Map:return Oe.Map;case Oe.List:return Oe.List;case Oe.Struct:return Oe.Struct;case Oe.Union:switch(t.mode){case je.Dense:return Oe.DenseUnion;case je.Sparse:return Oe.SparseUnion}return Oe.Union;case Oe.FixedSizeBinary:return Oe.FixedSizeBinary;case Oe.FixedSizeList:return Oe.FixedSizeList;case Oe.Dictionary:return Oe.Dictionary}throw new Error(`Unrecognized type '${Oe[t.typeId]}'`)}ze.prototype.visitInt8=null,ze.prototype.visitInt16=null,ze.prototype.visitInt32=null,ze.prototype.visitInt64=null,ze.prototype.visitUint8=null,ze.prototype.visitUint16=null,ze.prototype.visitUint32=null,ze.prototype.visitUint64=null,ze.prototype.visitFloat16=null,ze.prototype.visitFloat32=null,ze.prototype.visitFloat64=null,ze.prototype.visitDateDay=null,ze.prototype.visitDateMillisecond=null,ze.prototype.visitTimestampSecond=null,ze.prototype.visitTimestampMillisecond=null,ze.prototype.visitTimestampMicrosecond=null,ze.prototype.visitTimestampNanosecond=null,ze.prototype.visitTimeSecond=null,ze.prototype.visitTimeMillisecond=null,ze.prototype.visitTimeMicrosecond=null,ze.prototype.visitTimeNanosecond=null,ze.prototype.visitDenseUnion=null,ze.prototype.visitSparseUnion=null,ze.prototype.visitIntervalDayTime=null,ze.prototype.visitIntervalYearMonth=null;class We extends ze{compareSchemas(t,e){return t===e||e instanceof t.constructor&&cn.compareFields(t.fields,e.fields)}compareFields(t,e){return t===e||Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every((t,n)=>cn.compareField(t,e[n]))}compareField(t,e){return t===e||e instanceof t.constructor&&t.name===e.name&&t.nullable===e.nullable&&cn.visit(t.type,e.type)}}function He(t,e){return e instanceof t.constructor}function Ke(t,e){return t===e||He(t,e)}function Ge(t,e){return t===e||He(t,e)&&t.bitWidth===e.bitWidth&&t.isSigned===e.isSigned}function qe(t,e){return t===e||He(t,e)&&t.precision===e.precision}function Je(t,e){return t===e||He(t,e)&&t.byteWidth===e.byteWidth}function Ze(t,e){return t===e||He(t,e)&&t.unit===e.unit}function Xe(t,e){return t===e||He(t,e)&&t.unit===e.unit&&t.timezone===e.timezone}function Qe(t,e){return t===e||He(t,e)&&t.unit===e.unit&&t.bitWidth===e.bitWidth}function tn(t,e){return t===e||He(t,e)&&t.children.length===e.children.length&&cn.compareFields(t.children,e.children)}function en(t,e){return t===e||He(t,e)&&t.children.length===e.children.length&&cn.compareFields(t.children,e.children)}function nn(t,e){return t===e||He(t,e)&&t.mode===e.mode&&t.typeIds.every((t,n)=>t===e.typeIds[n])&&cn.compareFields(t.children,e.children)}function rn(t,e){return t===e||He(t,e)&&t.id===e.id&&t.isOrdered===e.isOrdered&&cn.visit(t.indices,e.indices)&&cn.visit(t.dictionary,e.dictionary)}function sn(t,e){return t===e||He(t,e)&&t.unit===e.unit}function on(t,e){return t===e||He(t,e)&&t.listSize===e.listSize&&t.children.length===e.children.length&&cn.compareFields(t.children,e.children)}function an(t,e){return t===e||He(t,e)&&t.keysSorted===e.keysSorted&&t.children.length===e.children.length&&cn.compareFields(t.children,e.children)}We.prototype.visitNull=Ke,We.prototype.visitBool=Ke,We.prototype.visitInt=Ge,We.prototype.visitInt8=Ge,We.prototype.visitInt16=Ge,We.prototype.visitInt32=Ge,We.prototype.visitInt64=Ge,We.prototype.visitUint8=Ge,We.prototype.visitUint16=Ge,We.prototype.visitUint32=Ge,We.prototype.visitUint64=Ge,We.prototype.visitFloat=qe,We.prototype.visitFloat16=qe,We.prototype.visitFloat32=qe,We.prototype.visitFloat64=qe,We.prototype.visitUtf8=Ke,We.prototype.visitBinary=Ke,We.prototype.visitFixedSizeBinary=Je,We.prototype.visitDate=Ze,We.prototype.visitDateDay=Ze,We.prototype.visitDateMillisecond=Ze,We.prototype.visitTimestamp=Xe,We.prototype.visitTimestampSecond=Xe,We.prototype.visitTimestampMillisecond=Xe,We.prototype.visitTimestampMicrosecond=Xe,We.prototype.visitTimestampNanosecond=Xe,We.prototype.visitTime=Qe,We.prototype.visitTimeSecond=Qe,We.prototype.visitTimeMillisecond=Qe,We.prototype.visitTimeMicrosecond=Qe,We.prototype.visitTimeNanosecond=Qe,We.prototype.visitDecimal=Ke,We.prototype.visitList=tn,We.prototype.visitStruct=en,We.prototype.visitUnion=nn,We.prototype.visitDenseUnion=nn,We.prototype.visitSparseUnion=nn,We.prototype.visitDictionary=rn,We.prototype.visitInterval=sn,We.prototype.visitIntervalDayTime=sn,We.prototype.visitIntervalYearMonth=sn,We.prototype.visitFixedSizeList=on,We.prototype.visitMap=an;const cn=new We;class un{static isNull(t){return t&&t.typeId===Oe.Null}static isInt(t){return t&&t.typeId===Oe.Int}static isFloat(t){return t&&t.typeId===Oe.Float}static isBinary(t){return t&&t.typeId===Oe.Binary}static isUtf8(t){return t&&t.typeId===Oe.Utf8}static isBool(t){return t&&t.typeId===Oe.Bool}static isDecimal(t){return t&&t.typeId===Oe.Decimal}static isDate(t){return t&&t.typeId===Oe.Date}static isTime(t){return t&&t.typeId===Oe.Time}static isTimestamp(t){return t&&t.typeId===Oe.Timestamp}static isInterval(t){return t&&t.typeId===Oe.Interval}static isList(t){return t&&t.typeId===Oe.List}static isStruct(t){return t&&t.typeId===Oe.Struct}static isUnion(t){return t&&t.typeId===Oe.Union}static isFixedSizeBinary(t){return t&&t.typeId===Oe.FixedSizeBinary}static isFixedSizeList(t){return t&&t.typeId===Oe.FixedSizeList}static isMap(t){return t&&t.typeId===Oe.Map}static isDictionary(t){return t&&t.typeId===Oe.Dictionary}get typeId(){return Oe.NONE}compareTo(t){return cn.visit(this,t)}}un[Symbol.toStringTag]=(t=>(t.children=null,t.ArrayType=Array,t[Symbol.toStringTag]="DataType"))(un.prototype);class ln extends un{toString(){return"Null"}get typeId(){return Oe.Null}}ln[Symbol.toStringTag]=(t=>t[Symbol.toStringTag]="Null")(ln.prototype);class hn extends un{constructor(t,e){super(),this.isSigned=t,this.bitWidth=e}get typeId(){return Oe.Int}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?Int32Array:Uint32Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?"I":"Ui"}nt${this.bitWidth}`}}hn[Symbol.toStringTag]=(t=>(t.isSigned=null,t.bitWidth=null,t[Symbol.toStringTag]="Int"))(hn.prototype);class fn extends hn{constructor(){super(!0,8)}}class dn extends hn{constructor(){super(!0,16)}}class pn extends hn{constructor(){super(!0,32)}}class yn extends hn{constructor(){super(!0,64)}}class bn extends hn{constructor(){super(!1,8)}}class gn extends hn{constructor(){super(!1,16)}}class mn extends hn{constructor(){super(!1,32)}}class vn extends hn{constructor(){super(!1,64)}}Object.defineProperty(fn.prototype,"ArrayType",{value:Int8Array}),Object.defineProperty(dn.prototype,"ArrayType",{value:Int16Array}),Object.defineProperty(pn.prototype,"ArrayType",{value:Int32Array}),Object.defineProperty(yn.prototype,"ArrayType",{value:Int32Array}),Object.defineProperty(bn.prototype,"ArrayType",{value:Uint8Array}),Object.defineProperty(gn.prototype,"ArrayType",{value:Uint16Array}),Object.defineProperty(mn.prototype,"ArrayType",{value:Uint32Array}),Object.defineProperty(vn.prototype,"ArrayType",{value:Uint32Array});class _n extends un{constructor(t){super(),this.precision=t}get typeId(){return Oe.Float}get ArrayType(){switch(this.precision){case Be.HALF:return Uint16Array;case Be.SINGLE:return Float32Array;case Be.DOUBLE:return Float64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return"Float"+(this.precision<<5||16)}}_n[Symbol.toStringTag]=(t=>(t.precision=null,t[Symbol.toStringTag]="Float"))(_n.prototype);class wn extends _n{constructor(){super(Be.HALF)}}class In extends _n{constructor(){super(Be.SINGLE)}}class Sn extends _n{constructor(){super(Be.DOUBLE)}}Object.defineProperty(wn.prototype,"ArrayType",{value:Uint16Array}),Object.defineProperty(In.prototype,"ArrayType",{value:Float32Array}),Object.defineProperty(Sn.prototype,"ArrayType",{value:Float64Array});class On extends un{constructor(){super()}get typeId(){return Oe.Binary}toString(){return"Binary"}}On[Symbol.toStringTag]=(t=>(t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Binary"))(On.prototype);class Tn extends un{constructor(){super()}get typeId(){return Oe.Utf8}toString(){return"Utf8"}}Tn[Symbol.toStringTag]=(t=>(t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Utf8"))(Tn.prototype);class An extends un{constructor(){super()}get typeId(){return Oe.Bool}toString(){return"Bool"}}An[Symbol.toStringTag]=(t=>(t.ArrayType=Uint8Array,t[Symbol.toStringTag]="Bool"))(An.prototype);class xn extends un{constructor(t,e){super(),this.scale=t,this.precision=e}get typeId(){return Oe.Decimal}toString(){return`Decimal[${this.precision}e${this.scale>0?"+":""}${this.scale}]`}}xn[Symbol.toStringTag]=(t=>(t.scale=null,t.precision=null,t.ArrayType=Uint32Array,t[Symbol.toStringTag]="Decimal"))(xn.prototype);class Bn extends un{constructor(t){super(),this.unit=t}get typeId(){return Oe.Date}toString(){return`Date${32*(this.unit+1)}<${Ae[this.unit]}>`}}Bn[Symbol.toStringTag]=(t=>(t.unit=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Date"))(Bn.prototype);class jn extends Bn{constructor(){super(Ae.DAY)}}class Dn extends Bn{constructor(){super(Ae.MILLISECOND)}}class Fn extends un{constructor(t,e){super(),this.unit=t,this.bitWidth=e}get typeId(){return Oe.Time}toString(){return`Time${this.bitWidth}<${xe[this.unit]}>`}}Fn[Symbol.toStringTag]=(t=>(t.unit=null,t.bitWidth=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Time"))(Fn.prototype);class Ln extends un{constructor(t,e){super(),this.unit=t,this.timezone=e}get typeId(){return Oe.Timestamp}toString(){return`Timestamp<${xe[this.unit]}${this.timezone?", "+this.timezone:""}>`}}Ln[Symbol.toStringTag]=(t=>(t.unit=null,t.timezone=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Timestamp"))(Ln.prototype);class En extends un{constructor(t){super(),this.unit=t}get typeId(){return Oe.Interval}toString(){return`Interval<${De[this.unit]}>`}}En[Symbol.toStringTag]=(t=>(t.unit=null,t.ArrayType=Int32Array,t[Symbol.toStringTag]="Interval"))(En.prototype);class Mn extends un{constructor(t){super(),this.children=[t]}get typeId(){return Oe.List}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}}Mn[Symbol.toStringTag]=(t=>(t.children=null,t[Symbol.toStringTag]="List"))(Mn.prototype);class Un extends un{constructor(t){super(),this.children=t}get typeId(){return Oe.Struct}toString(){return`Struct<{${this.children.map(t=>`${t.name}:${t.type}`).join(", ")}}>`}}Un[Symbol.toStringTag]=(t=>(t.children=null,t[Symbol.toStringTag]="Struct"))(Un.prototype);class Cn extends un{constructor(t,e,n){super(),this.mode=t,this.children=n,this.typeIds=e=Int32Array.from(e),this.typeIdToChildIndex=e.reduce((t,e,n)=>(t[e]=n)&&t||t,Object.create(null))}get typeId(){return Oe.Union}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(t=>""+t.type).join(" | ")}>`}}Cn[Symbol.toStringTag]=(t=>(t.mode=null,t.typeIds=null,t.children=null,t.typeIdToChildIndex=null,t.ArrayType=Int8Array,t[Symbol.toStringTag]="Union"))(Cn.prototype);class Nn extends un{constructor(t){super(),this.byteWidth=t}get typeId(){return Oe.FixedSizeBinary}toString(){return`FixedSizeBinary[${this.byteWidth}]`}}Nn[Symbol.toStringTag]=(t=>(t.byteWidth=null,t.ArrayType=Uint8Array,t[Symbol.toStringTag]="FixedSizeBinary"))(Nn.prototype);class kn extends un{constructor(t,e){super(),this.listSize=t,this.children=[e]}get typeId(){return Oe.FixedSizeList}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}}kn[Symbol.toStringTag]=(t=>(t.children=null,t.listSize=null,t[Symbol.toStringTag]="FixedSizeList"))(kn.prototype);class Vn extends un{constructor(t,e=!1){super(),this.children=[t],this.keysSorted=e}get typeId(){return Oe.Map}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}toString(){return`Map<{${this.children[0].type.children.map(t=>`${t.name}:${t.type}`).join(", ")}}>`}}Vn[Symbol.toStringTag]=(t=>(t.children=null,t.keysSorted=null,t[Symbol.toStringTag]="Map_"))(Vn.prototype);const Rn=(t=>()=>++t)(-1);class Pn extends un{constructor(t,e,n,r){super(),this.indices=e,this.dictionary=t,this.isOrdered=r||!1,this.id=null==n?Rn():"number"===typeof n?n:n.low}get typeId(){return Oe.Dictionary}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}}function zn(t){let e=t;switch(t.typeId){case Oe.Decimal:return 4;case Oe.Timestamp:return 2;case Oe.Date:return 1+e.unit;case Oe.Interval:return 1+e.unit;case Oe.Int:return+(e.bitWidth>32)+1;case Oe.Time:return+(e.bitWidth>32)+1;case Oe.FixedSizeList:return e.listSize;case Oe.FixedSizeBinary:return e.byteWidth;default:return 1}}Pn[Symbol.toStringTag]=(t=>(t.id=null,t.indices=null,t.isOrdered=null,t.dictionary=null,t[Symbol.toStringTag]="Dictionary"))(Pn.prototype);const $n=-1;class Yn{constructor(t,e,n,r,i,s,o){let a;this.type=t,this.dictionary=o,this.offset=Math.floor(Math.max(e||0,0)),this.length=Math.floor(Math.max(n||0,0)),this._nullCount=Math.floor(Math.max(r||0,-1)),this.childData=(s||[]).map(t=>t instanceof Yn?t:t.data),i instanceof Yn?(this.stride=i.stride,this.values=i.values,this.typeIds=i.typeIds,this.nullBitmap=i.nullBitmap,this.valueOffsets=i.valueOffsets):(this.stride=zn(t),i&&((a=i[0])&&(this.valueOffsets=a),(a=i[1])&&(this.values=a),(a=i[2])&&(this.nullBitmap=a),(a=i[3])&&(this.typeIds=a)))}get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get byteLength(){let t=0,{valueOffsets:e,values:n,nullBitmap:r,typeIds:i}=this;return e&&(t+=e.byteLength),n&&(t+=n.byteLength),r&&(t+=r.byteLength),i&&(t+=i.byteLength),this.childData.reduce((t,e)=>t+e.byteLength,t)}get nullCount(){let t,e=this._nullCount;return e<=$n&&(t=this.nullBitmap)&&(this._nullCount=e=this.length-Ve(t,this.offset,this.offset+this.length)),e}clone(t,e=this.offset,n=this.length,r=this._nullCount,i=this,s=this.childData){return new Yn(t,e,n,r,i,s,this.dictionary)}slice(t,e){const{stride:n,typeId:r,childData:i}=this,s=+(0===this._nullCount)-1,o=16===r?n:1,a=this._sliceBuffers(t,e,n,r);return this.clone(this.type,this.offset+t,e,s,a,!i.length||this.valueOffsets?i:this._sliceChildren(i,o*t,o*e))}_changeLengthAndBackfillNullBitmap(t){if(this.typeId===Oe.Null)return this.clone(this.type,0,t,0);const{length:e,nullCount:n}=this,r=new Uint8Array((t+63&-64)>>3).fill(255,0,e>>3);r[e>>3]=(1<0&&r.set(Ce(this.offset,e,this.nullBitmap),0);const i=this.buffers;return i[Te.VALIDITY]=r,this.clone(this.type,0,t,n+(t-e),i)}_sliceBuffers(t,e,n,r){let i,{buffers:s}=this;return(i=s[Te.TYPE])&&(s[Te.TYPE]=i.subarray(t,t+e)),(i=s[Te.OFFSET])&&(s[Te.OFFSET]=i.subarray(t,t+e+1))||(i=s[Te.DATA])&&(s[Te.DATA]=6===r?i:i.subarray(n*t,n*(t+e))),s}_sliceChildren(t,e,n){return t.map(t=>t.slice(e,n))}static new(t,e,n,r,i,s,o){switch(i instanceof Yn?i=i.buffers:i||(i=[]),t.typeId){case Oe.Null:return Yn.Null(t,e,n);case Oe.Int:return Yn.Int(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Dictionary:return Yn.Dictionary(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[],o);case Oe.Float:return Yn.Float(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Bool:return Yn.Bool(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Decimal:return Yn.Decimal(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Date:return Yn.Date(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Time:return Yn.Time(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Timestamp:return Yn.Timestamp(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Interval:return Yn.Interval(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.FixedSizeBinary:return Yn.FixedSizeBinary(t,e,n,r||0,i[Te.VALIDITY],i[Te.DATA]||[]);case Oe.Binary:return Yn.Binary(t,e,n,r||0,i[Te.VALIDITY],i[Te.OFFSET]||[],i[Te.DATA]||[]);case Oe.Utf8:return Yn.Utf8(t,e,n,r||0,i[Te.VALIDITY],i[Te.OFFSET]||[],i[Te.DATA]||[]);case Oe.List:return Yn.List(t,e,n,r||0,i[Te.VALIDITY],i[Te.OFFSET]||[],(s||[])[0]);case Oe.FixedSizeList:return Yn.FixedSizeList(t,e,n,r||0,i[Te.VALIDITY],(s||[])[0]);case Oe.Struct:return Yn.Struct(t,e,n,r||0,i[Te.VALIDITY],s||[]);case Oe.Map:return Yn.Map(t,e,n,r||0,i[Te.VALIDITY],i[Te.OFFSET]||[],(s||[])[0]);case Oe.Union:return Yn.Union(t,e,n,r||0,i[Te.VALIDITY],i[Te.TYPE]||[],i[Te.OFFSET]||s,s)}throw new Error("Unrecognized typeId "+t.typeId)}static Null(t,e,n){return new Yn(t,e,n,0)}static Int(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Dictionary(t,e,n,r,i,s,o){return new Yn(t,e,n,r,[void 0,Ft(t.indices.ArrayType,s),Ct(i)],[],o)}static Float(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Bool(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Decimal(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Date(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Time(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Timestamp(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Interval(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static FixedSizeBinary(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,Ft(t.ArrayType,s),Ct(i)])}static Binary(t,e,n,r,i,s,o){return new Yn(t,e,n,r,[Mt(s),Ct(o),Ct(i)])}static Utf8(t,e,n,r,i,s,o){return new Yn(t,e,n,r,[Mt(s),Ct(o),Ct(i)])}static List(t,e,n,r,i,s,o){return new Yn(t,e,n,r,[Mt(s),void 0,Ct(i)],[o])}static FixedSizeList(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,void 0,Ct(i)],[s])}static Struct(t,e,n,r,i,s){return new Yn(t,e,n,r,[void 0,void 0,Ct(i)],s)}static Map(t,e,n,r,i,s,o){return new Yn(t,e,n,r,[Mt(s),void 0,Ct(i)],[o])}static Union(t,e,n,r,i,s,o,a){const c=[void 0,void 0,Ct(i),Ft(t.ArrayType,s)];return t.mode===je.Sparse?new Yn(t,e,n,r,c,o):(c[Te.OFFSET]=Mt(o),new Yn(t,e,n,r,c,a))}}Yn.prototype.childData=Object.freeze([]);const Wn=void 0;function Hn(t){if(null===t)return"null";if(t===Wn)return"undefined";switch(typeof t){case"number":return""+t;case"bigint":return""+t;case"string":return`"${t}"`}return"function"===typeof t[Symbol.toPrimitive]?t[Symbol.toPrimitive]("string"):ArrayBuffer.isView(t)?`[${t}]`:JSON.stringify(t)}function Kn(t){if(!t||t.length<=0)return function(t){return!0};let e="",n=t.filter(t=>t===t);return n.length>0&&(e=`\n switch (x) {${n.map(t=>`\n case ${Gn(t)}:`).join("")}\n return false;\n }`),t.length!==n.length&&(e="if (x !== x) return false;\n"+e),new Function("x",e+"\nreturn true;")}function Gn(t){return"bigint"!==typeof t?Hn(t):ot?Hn(t)+"n":`"${Hn(t)}"`}const qn=(t,e)=>(t*e+63&-64||64)/e,Jn=(t,e=0)=>t.length>=e?t.subarray(0,e):jt(new t.constructor(e),t,0);class Zn{constructor(t,e=1){this.buffer=t,this.stride=e,this.BYTES_PER_ELEMENT=t.BYTES_PER_ELEMENT,this.ArrayType=t.constructor,this._resize(this.length=t.length/e|0)}get byteLength(){return this.length*this.stride*this.BYTES_PER_ELEMENT|0}get reservedLength(){return this.buffer.length/this.stride}get reservedByteLength(){return this.buffer.byteLength}set(t,e){return this}append(t){return this.set(this.length,t)}reserve(t){if(t>0){this.length+=t;const e=this.stride,n=this.length*e,r=this.buffer.length;n>=r&&this._resize(qn(0===r?1*n:2*n,this.BYTES_PER_ELEMENT))}return this}flush(t=this.length){t=qn(t*this.stride,this.BYTES_PER_ELEMENT);const e=Jn(this.buffer,t);return this.clear(),e}clear(){return this.length=0,this._resize(0),this}_resize(t){return this.buffer=jt(new this.ArrayType(t),this.buffer)}}Zn.prototype.offset=0;class Xn extends Zn{last(){return this.get(this.length-1)}get(t){return this.buffer[t]}set(t,e){return this.reserve(t-this.length+1),this.buffer[t*this.stride]=e,this}}class Qn extends Xn{constructor(t=new Uint8Array(0)){super(t,1/8),this.numValid=0}get numInvalid(){return this.length-this.numValid}get(t){return this.buffer[t>>3]>>t%8&1}set(t,e){const{buffer:n}=this.reserve(t-this.length+1),r=t>>3,i=t%8,s=n[r]>>i&1;return e?0===s&&(n[r]|=1<this.length&&this.set(t-1,0),super.flush(t+1)}}class er extends Zn{get ArrayType64(){return this._ArrayType64||(this._ArrayType64=this.buffer instanceof Int32Array?at:ut)}set(t,e){switch(this.reserve(t-this.length+1),typeof e){case"bigint":this.buffer64[t]=e;break;case"number":this.buffer[t*this.stride]=e;break;default:this.buffer.set(e,t*this.stride)}return this}_resize(t){const e=super._resize(t),n=e.byteLength/(this.BYTES_PER_ELEMENT*this.stride);return ot&&(this.buffer64=new this.ArrayType64(e.buffer,e.byteOffset,n)),e}}class nr{constructor({type:t,nullValues:e}){this.length=0,this.finished=!1,this.type=t,this.children=[],this.nullValues=e,this.stride=zn(t),this._nulls=new Qn,e&&e.length>0&&(this._isValid=Kn(e))}static new(t){}static throughNode(t){throw new Error('"throughNode" not available in this environment')}static throughDOM(t){throw new Error('"throughDOM" not available in this environment')}static throughIterable(t){return sr(t)}static throughAsyncIterable(t){return or(t)}toVector(){return we.new(this.flush())}get ArrayType(){return this.type.ArrayType}get nullCount(){return this._nulls.numInvalid}get numChildren(){return this.children.length}get byteLength(){let t=0;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),this._typeIds&&(t+=this._typeIds.byteLength),this.children.reduce((t,e)=>t+e.byteLength,t)}get reservedLength(){return this._nulls.reservedLength}get reservedByteLength(){let t=0;return this._offsets&&(t+=this._offsets.reservedByteLength),this._values&&(t+=this._values.reservedByteLength),this._nulls&&(t+=this._nulls.reservedByteLength),this._typeIds&&(t+=this._typeIds.reservedByteLength),this.children.reduce((t,e)=>t+e.reservedByteLength,t)}get valueOffsets(){return this._offsets?this._offsets.buffer:null}get values(){return this._values?this._values.buffer:null}get nullBitmap(){return this._nulls?this._nulls.buffer:null}get typeIds(){return this._typeIds?this._typeIds.buffer:null}append(t){return this.set(this.length,t)}isValid(t){return this._isValid(t)}set(t,e){return this.setValid(t,this.isValid(e))&&this.setValue(t,e),this}setValue(t,e){this._setValue(this,t,e)}setValid(t,e){return this.length=this._nulls.set(t,+e).length,e}addChild(t,e=""+this.numChildren){throw new Error(`Cannot append children to non-nested type "${this.type}"`)}getChildAt(t){return this.children[t]||null}flush(){const t=[],e=this._values,n=this._offsets,r=this._typeIds,{length:i,nullCount:s}=this;r?(t[Te.TYPE]=r.flush(i),n&&(t[Te.OFFSET]=n.flush(i))):n?(e&&(t[Te.DATA]=e.flush(n.last())),t[Te.OFFSET]=n.flush(i)):e&&(t[Te.DATA]=e.flush(i)),s>0&&(t[Te.VALIDITY]=this._nulls.flush(i));const o=Yn.new(this.type,0,i,s,t,this.children.map(t=>t.flush()));return this.clear(),o}finish(){return this.finished=!0,this.children.forEach(t=>t.finish()),this}clear(){return this.length=0,this._offsets&&this._offsets.clear(),this._values&&this._values.clear(),this._nulls&&this._nulls.clear(),this._typeIds&&this._typeIds.clear(),this.children.forEach(t=>t.clear()),this}}nr.prototype.length=1,nr.prototype.stride=1,nr.prototype.children=null,nr.prototype.finished=!1,nr.prototype.nullValues=null,nr.prototype._isValid=()=>!0;class rr extends nr{constructor(t){super(t),this._values=new Xn(new this.ArrayType(0),this.stride)}setValue(t,e){const n=this._values;return n.reserve(t-n.length+1),super.setValue(t,e)}}class ir extends nr{constructor(t){super(t),this._pendingLength=0,this._offsets=new tr}setValue(t,e){const n=this._pending||(this._pending=new Map),r=n.get(t);r&&(this._pendingLength-=r.length),this._pendingLength+=e.length,n.set(t,e)}setValid(t,e){return!!super.setValid(t,e)||((this._pending||(this._pending=new Map)).set(t,void 0),!1)}clear(){return this._pendingLength=0,this._pending=void 0,super.clear()}flush(){return this._flush(),super.flush()}finish(){return this._flush(),super.finish()}_flush(){const t=this._pending,e=this._pendingLength;return this._pendingLength=0,this._pending=void 0,t&&t.size>0&&this._flushPending(t,e),this}}function sr(t){const{["queueingStrategy"]:e="count"}=t,{["highWaterMark"]:n=("bytes"!==e?1e3:16384)}=t,r="bytes"!==e?"length":"byteLength";return function*(e){let i=0,s=nr.new(t);for(const t of e)s.append(t)[r]>=n&&++i&&(yield s.toVector());(s.finish().length>0||0===i)&&(yield s.toVector())}}function or(t){const{["queueingStrategy"]:e="count"}=t,{["highWaterMark"]:n=("bytes"!==e?1e3:16384)}=t,r="bytes"!==e?"length":"byteLength";return async function*(e){let i=0,s=nr.new(t);for await(const t of e)s.append(t)[r]>=n&&++i&&(yield s.toVector());(s.finish().length>0||0===i)&&(yield s.toVector())}}class ar extends nr{constructor(t){super(t),this._values=new Qn}setValue(t,e){this._values.set(t,+e)}}class cr extends nr{setValue(t,e){}setValid(t,e){return this.length=Math.max(t+1,this.length),e}}class ur extends rr{}class lr extends ur{}class hr extends ur{}class fr extends rr{}class dr extends nr{constructor({type:t,nullValues:e,dictionaryHashFunction:n}){super({type:new Pn(t.dictionary,t.indices,t.id,t.isOrdered)}),this._nulls=null,this._dictionaryOffset=0,this._keysToIndices=Object.create(null),this.indices=nr.new({type:this.type.indices,nullValues:e}),this.dictionary=nr.new({type:this.type.dictionary,nullValues:null}),"function"===typeof n&&(this.valueToKey=n)}get values(){return this.indices.values}get nullCount(){return this.indices.nullCount}get nullBitmap(){return this.indices.nullBitmap}get byteLength(){return this.indices.byteLength+this.dictionary.byteLength}get reservedLength(){return this.indices.reservedLength+this.dictionary.reservedLength}get reservedByteLength(){return this.indices.reservedByteLength+this.dictionary.reservedByteLength}isValid(t){return this.indices.isValid(t)}setValid(t,e){const n=this.indices;return e=n.setValid(t,e),this.length=n.length,e}setValue(t,e){let n=this._keysToIndices,r=this.valueToKey(e),i=n[r];return void 0===i&&(n[r]=i=this._dictionaryOffset+this.dictionary.append(e).length-1),this.indices.setValue(t,i)}flush(){const t=this.type,e=this._dictionary,n=this.dictionary.toVector(),r=this.indices.flush().clone(t);return r.dictionary=e?e.concat(n):n,this.finished||(this._dictionaryOffset+=n.length),this._dictionary=r.dictionary,this.clear(),r}finish(){return this.indices.finish(),this.dictionary.finish(),this._dictionaryOffset=0,this._keysToIndices=Object.create(null),super.finish()}clear(){return this.indices.clear(),this.dictionary.clear(),super.clear()}valueToKey(t){return"string"===typeof t?t:""+t}}class pr extends rr{}const yr=new Float64Array(1),br=new Uint32Array(yr.buffer);function gr(t){let e=(31744&t)>>10,n=(1023&t)/1024,r=(-1)**((32768&t)>>15);switch(e){case 31:return r*(n?NaN:1/0);case 0:return r*(n?6103515625e-14*n:0)}return r*2**(e-15)*(1+n)}function mr(t){if(t!==t)return 32256;yr[0]=t;let e=(2147483648&br[1])>>16&65535,n=2146435072&br[1],r=0;return n>=1089470464?br[0]>0?n=31744:(n=(2080374784&n)>>16,r=(1048575&br[1])>>10):n<=1056964608?(r=1048576+(1048575&br[1]),r=1048576+(r<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,r=512+(1048575&br[1])>>10),e|n|65535&r}class vr extends rr{}class _r extends vr{setValue(t,e){this._values.set(t,mr(e))}}class wr extends vr{setValue(t,e){this._values.set(t,e)}}class Ir extends vr{setValue(t,e){this._values.set(t,e)}}const Sr=Symbol.for("isArrowBigNum");function Or(t,...e){return 0===e.length?Object.setPrototypeOf(Ft(this["TypedArray"],t),this.constructor.prototype):Object.setPrototypeOf(new this["TypedArray"](t,...e),this.constructor.prototype)}function Tr(...t){return Or.apply(this,t)}function Ar(...t){return Or.apply(this,t)}function xr(...t){return Or.apply(this,t)}function Br(t){let e,n,{buffer:r,byteOffset:i,length:s,signed:o}=t,a=new Int32Array(r,i,s),c=0,u=0,l=a.length;while(u>>=0),c+=(n>>>0)+e*u**32;return c}let jr,Dr;function Fr(t){let e="",n=new Uint32Array(2),r=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),i=new Uint32Array((r=new Uint16Array(r).reverse()).buffer),s=-1,o=r.length-1;do{for(n[0]=r[s=0];s8===t.byteLength?new t["BigIntArray"](t.buffer,t.byteOffset,1)[0]:Fr(t),jr=t=>8===t.byteLength?""+new t["BigIntArray"](t.buffer,t.byteOffset,1)[0]:Fr(t)):(jr=Fr,Dr=jr);class Lr{constructor(t,e){return Lr.new(t,e)}static new(t,e){switch(e){case!0:return new Tr(t);case!1:return new Ar(t)}switch(t.constructor){case Int8Array:case Int16Array:case Int32Array:case at:return new Tr(t)}return 16===t.byteLength?new xr(t):new Ar(t)}static signed(t){return new Tr(t)}static unsigned(t){return new Ar(t)}static decimal(t){return new xr(t)}}class Er extends rr{setValue(t,e){this._values.set(t,e)}}class Mr extends Er{}class Ur extends Er{}class Cr extends Er{}class Nr extends Er{constructor(t){t["nullValues"]&&(t["nullValues"]=t["nullValues"].map(zr)),super(t),this._values=new er(new Int32Array(0),2)}get values64(){return this._values.buffer64}isValid(t){return super.isValid(zr(t))}}class kr extends Er{}class Vr extends Er{}class Rr extends Er{}class Pr extends Er{constructor(t){t["nullValues"]&&(t["nullValues"]=t["nullValues"].map(zr)),super(t),this._values=new er(new Uint32Array(0),2)}get values64(){return this._values.buffer64}isValid(t){return super.isValid(zr(t))}}const zr=(t=>e=>(ArrayBuffer.isView(e)&&(t.buffer=e.buffer,t.byteOffset=e.byteOffset,t.byteLength=e.byteLength,e=Dr(t),t.buffer=null),e))({BigIntArray:at});class $r extends rr{}class Yr extends $r{}class Wr extends $r{}class Hr extends $r{}class Kr extends $r{}class Gr extends rr{}class qr extends Gr{}class Jr extends Gr{}class Zr extends Gr{}class Xr extends Gr{}class Qr extends rr{}class ti extends Qr{}class ei extends Qr{}class ni extends ir{constructor(t){super(t),this._values=new Zn(new Uint8Array(0))}get byteLength(){let t=this._pendingLength+4*this.length;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,e){return super.setValue(t,Ct(e))}_flushPending(t,e){const n=this._offsets,r=this._values.reserve(e).buffer;let i,s=0,o=0,a=0;for([s,i]of t)void 0===i?n.set(s,0):(o=i.length,r.set(i,a),n.set(s,o),a+=o)}}class ri extends ir{constructor(t){super(t),this._values=new Zn(new Uint8Array(0))}get byteLength(){let t=this._pendingLength+4*this.length;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,e){return super.setValue(t,tt(e))}_flushPending(t,e){}}ri.prototype._flushPending=ni.prototype._flushPending;class ii{get length(){return this._values.length}get(t){return this._values[t]}clear(){return this._values=null,this}bind(t){return t instanceof we?t:(this._values=t,this)}}const si=Symbol.for("parent"),oi=Symbol.for("rowIndex"),ai=Symbol.for("keyToIdx"),ci=Symbol.for("idxToVal"),ui=Symbol.for("nodejs.util.inspect.custom");class li{constructor(t,e){this[si]=t,this.size=e}entries(){return this[Symbol.iterator]()}has(t){return void 0!==this.get(t)}get(t){let e=void 0;if(null!==t&&void 0!==t){const n=this[ai]||(this[ai]=new Map);let r=n.get(t);if(void 0!==r){const t=this[ci]||(this[ci]=new Array(this.size));void 0!==(e=t[r])||(t[r]=e=this.getValue(r))}else if((r=this.getIndex(t))>-1){n.set(t,r);const i=this[ci]||(this[ci]=new Array(this.size));void 0!==(e=i[r])||(i[r]=e=this.getValue(r))}}return e}set(t,e){if(null!==t&&void 0!==t){const n=this[ai]||(this[ai]=new Map);let r=n.get(t);if(void 0===r&&n.set(t,r=this.getIndex(t)),r>-1){const t=this[ci]||(this[ci]=new Array(this.size));t[r]=this.setValue(r,e)}}return this}clear(){throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`)}delete(t){throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`)}*[Symbol.iterator](){const t=this.keys(),e=this.values(),n=this[ai]||(this[ai]=new Map),r=this[ci]||(this[ci]=new Array(this.size));for(let i,s,o,a,c=0;!(o=t.next()).done&&!(a=e.next()).done;++c)i=o.value,s=a.value,r[c]=s,n.has(i)||n.set(i,c),yield[i,s]}forEach(t,e){const n=this.keys(),r=this.values(),i=void 0===e?t:(n,r,i)=>t.call(e,n,r,i),s=this[ai]||(this[ai]=new Map),o=this[ci]||(this[ci]=new Array(this.size));for(let a,c,u,l,h=0;!(u=n.next()).done&&!(l=r.next()).done;++h)a=u.value,c=l.value,o[h]=c,s.has(a)||s.set(a,h),i(c,a,this)}toArray(){return[...this.values()]}toJSON(){const t={};return this.forEach((e,n)=>t[n]=e),t}inspect(){return this.toString()}[ui](){return this.toString()}toString(){const t=[];return this.forEach((e,n)=>{n=Hn(n),e=Hn(e),t.push(`${n}: ${e}`)}),`{ ${t.join(", ")} }`}}li[Symbol.toStringTag]=(t=>(Object.defineProperties(t,{size:{writable:!0,enumerable:!1,configurable:!1,value:0},[si]:{writable:!0,enumerable:!1,configurable:!1,value:null},[oi]:{writable:!0,enumerable:!1,configurable:!1,value:-1}}),t[Symbol.toStringTag]="Row"))(li.prototype);class hi extends li{constructor(t){return super(t,t.length),pi(this)}keys(){return this[si].getChildAt(0)[Symbol.iterator]()}values(){return this[si].getChildAt(1)[Symbol.iterator]()}getKey(t){return this[si].getChildAt(0).get(t)}getIndex(t){return this[si].getChildAt(0).indexOf(t)}getValue(t){return this[si].getChildAt(1).get(t)}setValue(t,e){this[si].getChildAt(1).set(t,e)}}class fi extends li{constructor(t){return super(t,t.type.children.length),di(this)}*keys(){for(const t of this[si].type.children)yield t.name}*values(){for(const t of this[si].type.children)yield this[t.name]}getKey(t){return this[si].type.children[t].name}getIndex(t){return this[si].type.children.findIndex(e=>e.name===t)}getValue(t){return this[si].getChildAt(t).get(this[oi])}setValue(t,e){return this[si].getChildAt(t).set(this[oi],e)}}Object.setPrototypeOf(li.prototype,Map.prototype);const di=(()=>{const t={enumerable:!0,configurable:!1,get:null,set:null};return e=>{let n=-1,r=e[ai]||(e[ai]=new Map);const i=t=>function(){return this.get(t)},s=t=>function(e){return this.set(t,e)};for(const o of e.keys())r.set(o,++n),t.get=i(o),t.set=s(o),e.hasOwnProperty(o)||(t.enumerable=!0,Object.defineProperty(e,o,t)),e.hasOwnProperty(n)||(t.enumerable=!1,Object.defineProperty(e,n,t));return t.get=t.set=null,e}})(),pi=(()=>{if("undefined"===typeof Proxy)return di;const t=li.prototype.has,e=li.prototype.get,n=li.prototype.set,r=li.prototype.getKey,i={isExtensible(){return!1},deleteProperty(){return!1},preventExtensions(){return!0},ownKeys(t){return[...t.keys()].map(t=>""+t)},has(t,e){switch(e){case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:case si:case oi:case ci:case ai:case ui:return!0}return"number"!==typeof e||t.has(e)||(e=t.getKey(e)),t.has(e)},get(n,i,s){switch(i){case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:case si:case oi:case ci:case ai:case ui:return Reflect.get(n,i,s)}return"number"!==typeof i||t.call(s,i)||(i=r.call(s,i)),e.call(s,i)},set(e,i,s,o){switch(i){case si:case oi:case ci:case ai:return Reflect.set(e,i,s,o);case"getKey":case"getIndex":case"getValue":case"setValue":case"toArray":case"toJSON":case"inspect":case"constructor":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"toLocaleString":case"valueOf":case"size":case"has":case"get":case"set":case"clear":case"delete":case"keys":case"values":case"entries":case"forEach":case"__proto__":case"__defineGetter__":case"__defineSetter__":case"hasOwnProperty":case"__lookupGetter__":case"__lookupSetter__":case Symbol.iterator:case Symbol.toStringTag:return!1}return"number"!==typeof i||t.call(o,i)||(i=r.call(o,i)),!!t.call(o,i)&&!!n.call(o,i,s)}};return t=>new Proxy(t,i)})();function yi(t,e,n){const r=t.length,i=e>-1?e:r+e%r;return n?n(t,i):i}let bi;function gi(t,e,n,r){let{length:i=0}=t,s="number"!==typeof e?0:e,o="number"!==typeof n?i:n;return s<0&&(s=(s%i+i)%i),o<0&&(o=(o%i+i)%i),oi&&(o=i),r?r(t,s,o):[s,o]}const mi=ot?st(0):0,vi=t=>t!==t;function _i(t){let e=typeof t;if("object"!==e||null===t)return vi(t)?vi:"bigint"!==e?e=>e===t:e=>mi+e===t;if(t instanceof Date){const e=t.valueOf();return t=>t instanceof Date&&t.valueOf()===e}return ArrayBuffer.isView(t)?e=>!!e&&he(t,e):t instanceof Map?Ii(t):Array.isArray(t)?wi(t):t instanceof we?Si(t):Oi(t)}function wi(t){const e=[];for(let n=-1,r=t.length;++nn[++e]=_i(t)),Ti(n)}function Si(t){const e=[];for(let n=-1,r=t.length;++n!1;const n=[];for(let r=-1,i=e.length;++r{if(!n||"object"!==typeof n)return!1;switch(n.constructor){case Array:return Ai(t,n);case Map:case hi:case fi:return Bi(t,n,n.keys());case Object:case void 0:return Bi(t,n,e||Object.keys(n))}return n instanceof we&&xi(t,n)}}function Ai(t,e){const n=t.length;if(e.length!==n)return!1;for(let r=-1;++r`}get data(){return this._chunks[0]?this._chunks[0].data:null}get ArrayType(){return this._type.ArrayType}get numChildren(){return this._numChildren}get stride(){return this._chunks[0]?this._chunks[0].stride:1}get byteLength(){return this._chunks.reduce((t,e)=>t+e.byteLength,0)}get nullCount(){let t=this._nullCount;return t<0&&(this._nullCount=t=this._chunks.reduce((t,{nullCount:e})=>t+e,0)),t}get indices(){if(un.isDictionary(this._type)){if(!this._indices){const t=this._chunks;this._indices=1===t.length?t[0].indices:ji.concat(...t.map(t=>t.indices))}return this._indices}return null}get dictionary(){return un.isDictionary(this._type)?this._chunks[this._chunks.length-1].data.dictionary:null}*[Symbol.iterator](){for(const t of this._chunks)yield*t}clone(t=this._chunks){return new ji(this._type,t)}concat(...t){return this.clone(ji.flatten(this,...t))}slice(t,e){return gi(this,t,e,this._sliceInternal)}getChildAt(t){if(t<0||t>=this._numChildren)return null;let e,n,r,i=this._children||(this._children=[]);return(e=i[t])?e:(n=(this._type.children||[])[t])&&(r=this._chunks.map(e=>e.getChildAt(t)).filter(t=>null!=t),r.length>0)?i[t]=new ji(n.type,r):null}search(t,e){let n=t,r=this._chunkOffsets,i=r.length-1;if(n<0)return null;if(n>=r[i])return null;if(i<=1)return e?e(this,0,n):[0,n];let s=0,o=0,a=0;do{if(s+1===i)return e?e(this,s,n-o):[s,n-o];a=s+(i-s)/2|0,n>=r[a]?s=a:i=a}while(n=(o=r[s]));return null}isValid(t){return!!this.search(t,this.isValidInternal)}get(t){return this.search(t,this.getInternal)}set(t,e){this.search(t,({chunks:t},n,r)=>t[n].set(r,e))}indexOf(t,e){return e&&"number"===typeof e?this.search(e,(e,n,r)=>this.indexOfInternal(e,n,r,t)):this.indexOfInternal(this,0,Math.max(0,e||0),t)}toArray(){const{chunks:t}=this,e=t.length;let n=this._type.ArrayType;if(e<=0)return new n(0);if(e<=1)return t[0].toArray();let r=0,i=new Array(e);for(let a=-1;++a=n)break;if(e>=c+a)continue;if(c>=e&&c+a<=n){r.push(t);continue}const u=Math.max(0,e-c),l=Math.min(n-c,a);r.push(t.slice(u,l))}return t.clone(r)}}function Di(t){let e=new Uint32Array((t||[]).length+1),n=e[0]=0,r=e.length;for(let i=0;++i(e.set(t,n),n+t.length),Li=(t,e,n)=>{let r=n;for(let i=-1,s=t.length;++it>0)&&(t=t.clone({nullable:!0}));return new Ei(t,r)}get field(){return this._field}get name(){return this._field.name}get nullable(){return this._field.nullable}get metadata(){return this._field.metadata}clone(t=this._chunks){return new Ei(this._field,t)}getChildAt(t){if(t<0||t>=this.numChildren)return null;let e,n,r,i=this._children||(this._children=[]);return(e=i[t])?e:(n=(this.type.children||[])[t])&&(r=this._chunks.map(e=>e.getChildAt(t)).filter(t=>null!=t),r.length>0)?i[t]=new Ei(n,r):null}}class Mi extends Ei{constructor(t,e,n){super(t,[e],n),this._chunk=e}search(t,e){return e?e(this,0,t):[0,t]}isValid(t){return this._chunk.isValid(t)}get(t){return this._chunk.get(t)}set(t,e){this._chunk.set(t,e)}indexOf(t,e){return this._chunk.indexOf(t,e)}}const Ui=Array.isArray,Ci=(t,e)=>Pi(t,e,[],0),Ni=t=>{const[e,n]=Wi(t,[[],[]]);return n.map((t,n)=>t instanceof Ei?Ei.new(t.field.clone(e[n]),t):t instanceof we?Ei.new(e[n],t):Ei.new(e[n],[]))},ki=t=>Wi(t,[[],[]]),Vi=(t,e)=>zi(t,e,[],0),Ri=(t,e)=>$i(t,e,[],0);function Pi(t,e,n,r){let i,s=r,o=-1,a=e.length;while(++oi.getChildAt(e)),n,s).length:i instanceof we&&(n[s++]=i);return n}const Yi=(t,[e,n],r)=>(t[0][r]=e,t[1][r]=n,t);function Wi(t,e){let n,r;switch(r=t.length){case 0:return e;case 1:if(n=e[0],!t[0])return e;if(Ui(t[0]))return Wi(t[0],e);t[0]instanceof Yn||t[0]instanceof we||t[0]instanceof un||([n,t]=Object.entries(t[0]).reduce(Yi,e));break;default:Ui(n=t[r-1])?t=Ui(t[0])?t[0]:t.slice(0,r-1):(t=Ui(t[0])?t[0]:t,n=[])}let i,s,o=-1,a=-1,c=-1,u=t.length,[l,h]=e;while(++c`${e}: ${t}`).join(", ")} }>`}compareTo(t){return cn.compareSchemas(this,t)}select(...t){const e=t.reduce((t,e)=>(t[e]=!0)&&t,Object.create(null));return new Hi(this.fields.filter(t=>e[t.name]),this.metadata)}selectAt(...t){return new Hi(t.map(t=>this.fields[t]).filter(Boolean),this.metadata)}assign(...t){const e=t[0]instanceof Hi?t[0]:new Hi(Ci(Ki,t)),n=[...this.fields],r=Gi(Gi(new Map,this.metadata),e.metadata),i=e.fields.filter(t=>{const e=n.findIndex(e=>e.name===t.name);return!~e||(n[e]=t.clone({metadata:Gi(Gi(new Map,n[e].metadata),t.metadata)}))&&!1}),s=qi(i,new Map);return new Hi([...n,...i],r,new Map([...this.dictionaries,...s]))}}class Ki{constructor(t,e,n=!1,r){this.name=t,this.type=e,this.nullable=n,this.metadata=r||new Map}static new(...t){let[e,n,r,i]=t;return t[0]&&"object"===typeof t[0]&&(({name:e}=t[0]),void 0===n&&(n=t[0].type),void 0===r&&(r=t[0].nullable),void 0===i&&(i=t[0].metadata)),new Ki(""+e,n,r,i)}get typeId(){return this.type.typeId}get[Symbol.toStringTag](){return"Field"}toString(){return`${this.name}: ${this.type}`}compareTo(t){return cn.compareField(this,t)}clone(...t){let[e,n,r,i]=t;return t[0]&&"object"===typeof t[0]?({name:e=this.name,type:n=this.type,nullable:r=this.nullable,metadata:i=this.metadata}=t[0]):[e=this.name,n=this.type,r=this.nullable,i=this.metadata]=t,Ki.new(e,n,r,i)}}function Gi(t,e){return new Map([...t||new Map,...e||new Map])}function qi(t,e=new Map){for(let n=-1,r=t.length;++n0&&qi(i.children,e)}return e}Hi.prototype.fields=null,Hi.prototype.metadata=null,Hi.prototype.dictionaries=null,Ki.prototype.type=null,Ki.prototype.name=null,Ki.prototype.nullable=null,Ki.prototype.metadata=null;class Ji extends ir{constructor(t){super(t),this._run=new ii,this._offsets=new tr}addChild(t,e="0"){if(this.numChildren>0)throw new Error("ListBuilder can only have one child.");return this.children[this.numChildren]=t,this.type=new Mn(new Ki(e,t.type,!0)),this.numChildren-1}clear(){return this._run.clear(),super.clear()}_flushPending(t){const e=this._run,n=this._offsets,r=this._setValue;let i,s=0;for([s,i]of t)void 0===i?n.set(s,0):(n.set(s,i.length),r(this,s,e.bind(i)))}}class Zi extends nr{constructor(){super(...arguments),this._run=new ii}setValue(t,e){super.setValue(t,this._run.bind(e))}addChild(t,e="0"){if(this.numChildren>0)throw new Error("FixedSizeListBuilder can only have one child.");const n=this.children.push(t);return this.type=new kn(this.type.listSize,new Ki(e,t.type,!0)),n}clear(){return this._run.clear(),super.clear()}}class Xi extends ir{set(t,e){return super.set(t,e)}setValue(t,e){e=e instanceof Map?e:new Map(Object.entries(e));const n=this._pending||(this._pending=new Map),r=n.get(t);r&&(this._pendingLength-=r.size),this._pendingLength+=e.size,n.set(t,e)}addChild(t,e=""+this.numChildren){if(this.numChildren>0)throw new Error("ListBuilder can only have one child.");return this.children[this.numChildren]=t,this.type=new Vn(new Ki(e,t.type,!0),this.type.keysSorted),this.numChildren-1}_flushPending(t){const e=this._offsets,n=this._setValue;t.forEach((t,r)=>{void 0===t?e.set(r,0):(e.set(r,t.size),n(this,r,t))})}}class Qi extends nr{addChild(t,e=""+this.numChildren){const n=this.children.push(t);return this.type=new Un([...this.type.children,new Ki(e,t.type,!0)]),n}}class ts extends nr{constructor(t){super(t),this._typeIds=new Xn(new Int8Array(0),1),"function"===typeof t["valueToChildTypeId"]&&(this._valueToChildTypeId=t["valueToChildTypeId"])}get typeIdToChildIndex(){return this.type.typeIdToChildIndex}append(t,e){return this.set(this.length,t,e)}set(t,e,n){return void 0===n&&(n=this._valueToChildTypeId(this,e,t)),this.setValid(t,this.isValid(e))&&this.setValue(t,e,n),this}setValue(t,e,n){this._typeIds.set(t,n),super.setValue(t,e)}addChild(t,e=""+this.children.length){const n=this.children.push(t),{type:{children:r,mode:i,typeIds:s}}=this,o=[...r,new Ki(e,t.type)];return this.type=new Cn(i,[...s,n],o),n}_valueToChildTypeId(t,e,n){throw new Error("Cannot map UnionBuilder value to child typeId. Pass the `childTypeId` as the second argument to unionBuilder.append(), or supply a `valueToChildTypeId` function as part of the UnionBuilder constructor options.")}}class es extends ts{}class ns extends ts{constructor(t){super(t),this._offsets=new Xn(new Int32Array(0))}setValue(t,e,n){const r=this.type.typeIdToChildIndex[n];return this._offsets.set(t,this.getChildAt(r).length),super.setValue(t,e,n)}}class rs extends ze{}const is=(t,e,n)=>{t[e]=n/864e5|0},ss=(t,e,n)=>{t[e]=n%4294967296|0,t[e+1]=n/4294967296|0},os=(t,e,n)=>{t[e]=1e3*n%4294967296|0,t[e+1]=1e3*n/4294967296|0},as=(t,e,n)=>{t[e]=1e6*n%4294967296|0,t[e+1]=1e6*n/4294967296|0},cs=(t,e,n,r)=>{const{[n]:i,[n+1]:s}=e;null!=i&&null!=s&&t.set(r.subarray(0,s-i),i)},us=({offset:t,values:e},n,r)=>{const i=t+n;r?e[i>>3]|=1<>3]&=~(1<{is(t,e,n.valueOf())},hs=({values:t},e,n)=>{ss(t,2*e,n.valueOf())},fs=({stride:t,values:e},n,r)=>{e[t*n]=r},ds=({stride:t,values:e},n,r)=>{e[t*n]=mr(r)},ps=(t,e,n)=>{switch(typeof n){case"bigint":t.values64[e]=n;break;case"number":t.values[e*t.stride]=n;break;default:const r=n,{stride:i,ArrayType:s}=t,o=Ft(s,r);t.values.set(o.subarray(0,i),i*e)}},ys=({stride:t,values:e},n,r)=>{e.set(r.subarray(0,t),t*n)},bs=({values:t,valueOffsets:e},n,r)=>cs(t,e,n,r),gs=({values:t,valueOffsets:e},n,r)=>{cs(t,e,n,tt(r))},ms=(t,e,n)=>{t.type.bitWidth<64?fs(t,e,n):ps(t,e,n)},vs=(t,e,n)=>{t.type.precision!==Be.HALF?fs(t,e,n):ds(t,e,n)},_s=(t,e,n)=>{t.type.unit===Ae.DAY?ls(t,e,n):hs(t,e,n)},ws=({values:t},e,n)=>ss(t,2*e,n/1e3),Is=({values:t},e,n)=>ss(t,2*e,n),Ss=({values:t},e,n)=>os(t,2*e,n),Os=({values:t},e,n)=>as(t,2*e,n),Ts=(t,e,n)=>{switch(t.type.unit){case xe.SECOND:return ws(t,e,n);case xe.MILLISECOND:return Is(t,e,n);case xe.MICROSECOND:return Ss(t,e,n);case xe.NANOSECOND:return Os(t,e,n)}},As=({values:t,stride:e},n,r)=>{t[e*n]=r},xs=({values:t,stride:e},n,r)=>{t[e*n]=r},Bs=({values:t},e,n)=>{t.set(n.subarray(0,2),2*e)},js=({values:t},e,n)=>{t.set(n.subarray(0,2),2*e)},Ds=(t,e,n)=>{switch(t.type.unit){case xe.SECOND:return As(t,e,n);case xe.MILLISECOND:return xs(t,e,n);case xe.MICROSECOND:return Bs(t,e,n);case xe.NANOSECOND:return js(t,e,n)}},Fs=({values:t},e,n)=>{t.set(n.subarray(0,4),4*e)},Ls=(t,e,n)=>{const r=t.getChildAt(0),i=t.valueOffsets;for(let s=-1,o=i[e],a=i[e+1];o{const r=t.getChildAt(0),i=t.valueOffsets,s=n instanceof Map?[...n]:Object.entries(n);for(let o=-1,a=i[e],c=i[e+1];a(n,r,i)=>n&&n.set(t,e[i]),Us=(t,e)=>(n,r,i)=>n&&n.set(t,e.get(i)),Cs=(t,e)=>(n,r,i)=>n&&n.set(t,e.get(r.name)),Ns=(t,e)=>(n,r,i)=>n&&n.set(t,e[r.name]),ks=(t,e,n)=>{const r=n instanceof Map?Cs(e,n):n instanceof we?Us(e,n):Array.isArray(n)?Ms(e,n):Ns(e,n);t.type.children.forEach((e,n)=>r(t.getChildAt(n),e,n))},Vs=(t,e,n)=>{t.type.mode===je.Dense?Rs(t,e,n):Ps(t,e,n)},Rs=(t,e,n)=>{const r=t.typeIdToChildIndex[t.typeIds[e]],i=t.getChildAt(r);i&&i.set(t.valueOffsets[e],n)},Ps=(t,e,n)=>{const r=t.typeIdToChildIndex[t.typeIds[e]],i=t.getChildAt(r);i&&i.set(e,n)},zs=(t,e,n)=>{const r=t.getKey(e);null!==r&&t.setValue(r,n)},$s=(t,e,n)=>{t.type.unit===De.DAY_TIME?Ys(t,e,n):Ws(t,e,n)},Ys=({values:t},e,n)=>{t.set(n.subarray(0,2),2*e)},Ws=({values:t},e,n)=>{t[e]=12*n[0]+n[1]%12},Hs=(t,e,n)=>{const r=t.getChildAt(0),{stride:i}=t;for(let s=-1,o=e*i;++s0){const r=t["children"]||[],i={nullValues:t["nullValues"]},s=Array.isArray(r)?(t,e)=>r[e]||i:({name:t})=>r[t]||i;e.children.forEach((t,e)=>{const{type:r}=t,i=s(t,e);n.children.push(Js({...i,type:r}))})}return n}var Zs;nr.new=Js,Object.keys(Oe).map(t=>Oe[t]).filter(t=>"number"===typeof t&&t!==Oe.NONE).forEach(t=>{const e=qs.visit(t);e.prototype._setValue=Ks.getVisitFn(t)}),ri.prototype._setValue=Ks.visitBinary,function(t){(function(e){(function(e){(function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsFooter(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):Ie.apache.arrow.flatbuf.MetadataVersion.V1}schema(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new Ie.apache.arrow.flatbuf.Schema).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}dictionaries(e,n){let r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.apache.arrow.flatbuf.Block).__init(this.bb.__vector(this.bb_pos+r)+24*e,this.bb):null}dictionariesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}recordBatches(e,n){let r=this.bb.__offset(this.bb_pos,10);return r?(n||new t.apache.arrow.flatbuf.Block).__init(this.bb.__vector(this.bb_pos+r)+24*e,this.bb):null}recordBatchesLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startFooter(t){t.startObject(4)}static addVersion(t,e){t.addFieldInt16(0,e,Ie.apache.arrow.flatbuf.MetadataVersion.V1)}static addSchema(t,e){t.addFieldOffset(1,e,0)}static addDictionaries(t,e){t.addFieldOffset(2,e,0)}static startDictionariesVector(t,e){t.startVector(24,e,8)}static addRecordBatches(t,e){t.addFieldOffset(3,e,0)}static startRecordBatchesVector(t,e){t.startVector(24,e,8)}static endFooter(t){let e=t.endObject();return e}static finishFooterBuffer(t,e){t.finish(e)}static createFooter(t,e,r,i,s){return n.startFooter(t),n.addVersion(t,e),n.addSchema(t,r),n.addDictionaries(t,i),n.addRecordBatches(t,s),n.endFooter(t)}}e.Footer=n})(e.flatbuf||(e.flatbuf={}))})(e.arrow||(e.arrow={}))})(t.apache||(t.apache={}))}(Zs||(Zs={})),function(t){(function(t){(function(t){(function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}offset(){return this.bb.readInt64(this.bb_pos)}metaDataLength(){return this.bb.readInt32(this.bb_pos+8)}bodyLength(){return this.bb.readInt64(this.bb_pos+16)}static createBlock(t,e,n,r){return t.prep(8,24),t.writeInt64(r),t.pad(4),t.writeInt32(n),t.writeInt64(e),t.offset()}}t.Block=e})(t.flatbuf||(t.flatbuf={}))})(t.arrow||(t.arrow={}))})(t.apache||(t.apache={}))}(Zs||(Zs={}));var Xs=U.Long,Qs=U.Builder,to=U.ByteBuffer,eo=Zs.apache.arrow.flatbuf.Block,no=Zs.apache.arrow.flatbuf.Footer;class ro{constructor(t,e=Le.V4,n,r){this.schema=t,this.version=e,n&&(this._recordBatches=n),r&&(this._dictionaryBatches=r)}static decode(t){t=new to(Ct(t));const e=no.getRootAsFooter(t),n=Hi.decode(e.schema());return new io(n,e)}static encode(t){const e=new Qs,n=Hi.encode(e,t.schema);no.startRecordBatchesVector(e,t.numRecordBatches),[...t.recordBatches()].slice().reverse().forEach(t=>so.encode(e,t));const r=e.endVector();no.startDictionariesVector(e,t.numDictionaries),[...t.dictionaryBatches()].slice().reverse().forEach(t=>so.encode(e,t));const i=e.endVector();return no.startFooter(e),no.addSchema(e,n),no.addVersion(e,Le.V4),no.addRecordBatches(e,r),no.addDictionaries(e,i),no.finishFooterBuffer(e,no.endFooter(e)),e.asUint8Array()}get numRecordBatches(){return this._recordBatches.length}get numDictionaries(){return this._dictionaryBatches.length}*recordBatches(){for(let t,e=-1,n=this.numRecordBatches;++e=0&&t=0&&t=0&&t=0&&t0)return super.write(t)}toString(t=!1){return t?Q(this.toUint8Array(!0)):this.toUint8Array(!1).then(Q)}toUint8Array(t=!1){return t?Dt(this._values)[0]:(async()=>{let t=[],e=0;for await(const n of this)t.push(n),e+=n.byteLength;return Dt(t,e)[0]})()}}class ao{constructor(t){t&&(this.source=new uo(fe.fromIterable(t)))}[Symbol.iterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}}class co{constructor(t){t instanceof co?this.source=t.source:t instanceof oo?this.source=new lo(fe.fromAsyncIterable(t)):Tt(t)?this.source=new lo(fe.fromNodeStream(t)):St(t)?this.source=new lo(fe.fromDOMStream(t)):wt(t)?this.source=new lo(fe.fromDOMStream(t.body)):bt(t)?this.source=new lo(fe.fromIterable(t)):(yt(t)||gt(t))&&(this.source=new lo(fe.fromAsyncIterable(t)))}[Symbol.asyncIterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}get closed(){return this.source.closed}cancel(t){return this.source.cancel(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}}class uo{constructor(t){this.source=t}cancel(t){this.return(t)}peek(t){return this.next(t,"peek").value}read(t){return this.next(t,"read").value}next(t,e="read"){return this.source.next({cmd:e,size:t})}throw(t){return Object.create(this.source.throw&&this.source.throw(t)||et)}return(t){return Object.create(this.source.return&&this.source.return(t)||et)}}class lo{constructor(t){this.source=t,this._closedPromise=new Promise(t=>this._closedPromiseResolve=t)}async cancel(t){await this.return(t)}get closed(){return this._closedPromise}async read(t){return(await this.next(t,"read")).value}async peek(t){return(await this.next(t,"peek")).value}async next(t,e="read"){return await this.source.next({cmd:e,size:t})}async throw(t){const e=this.source.throw&&await this.source.throw(t)||et;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(e)}async return(t){const e=this.source.return&&await this.source.return(t)||et;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(e)}}class ho extends ao{constructor(t,e){super(),this.position=0,this.buffer=Ct(t),this.size="undefined"===typeof e?this.buffer.byteLength:e}readInt32(t){const{buffer:e,byteOffset:n}=this.readAt(t,4);return new DataView(e,n).getInt32(0,!0)}seek(t){return this.position=Math.min(t,this.size),t{this.size=(await t.stat()).size,delete this._pending})()}async readInt32(t){const{buffer:e,byteOffset:n}=await this.readAt(t,4);return new DataView(e,n).getInt32(0,!0)}async seek(t){return this._pending&&await this._pending,this.position=Math.min(t,this.size),t>>16,65535&this.buffer[1],this.buffer[0]>>>16,65535&this.buffer[0]]),n=new Uint32Array([t.buffer[1]>>>16,65535&t.buffer[1],t.buffer[0]>>>16,65535&t.buffer[0]]);let r=e[3]*n[3];this.buffer[0]=65535&r;let i=r>>>16;return r=e[2]*n[3],i+=r,r=e[3]*n[2]>>>0,i+=r,this.buffer[0]+=i<<16,this.buffer[1]=i>>>0>>16,this.buffer[1]+=e[1]*n[3]+e[2]*n[2]+e[3]*n[1],this.buffer[1]+=e[0]*n[3]+e[1]*n[2]+e[2]*n[1]+e[3]*n[0]<<16,this}_plus(t){const e=this.buffer[0]+t.buffer[0]>>>0;this.buffer[1]+=t.buffer[1],e>>0&&++this.buffer[1],this.buffer[0]=e}lessThan(t){return this.buffer[1]>>0,e[2]=this.buffer[2]+t.buffer[2]>>>0,e[1]=this.buffer[1]+t.buffer[1]>>>0,e[0]=this.buffer[0]+t.buffer[0]>>>0,e[0]>>0&&++e[1],e[1]>>0&&++e[2],e[2]>>0&&++e[3],this.buffer[3]=e[3],this.buffer[2]=e[2],this.buffer[1]=e[1],this.buffer[0]=e[0],this}hex(){return`${yo(this.buffer[3])} ${yo(this.buffer[2])} ${yo(this.buffer[1])} ${yo(this.buffer[0])}`}static multiply(t,e){let n=new wo(new Uint32Array(t.buffer));return n.times(e)}static add(t,e){let n=new wo(new Uint32Array(t.buffer));return n.plus(e)}static from(t,e=new Uint32Array(4)){return wo.fromString("string"===typeof t?t:t.toString(),e)}static fromNumber(t,e=new Uint32Array(4)){return wo.fromString(t.toString(),e)}static fromString(t,e=new Uint32Array(4)){const n=t.startsWith("-"),r=t.length;let i=new wo(e);for(let s=n?1:0;s0&&this.readData(t,n)||new Uint8Array(0)}readOffsets(t,e){return this.readData(t,e)}readTypeIds(t,e){return this.readData(t,e)}readData(t,{length:e,offset:n}=this.nextBufferRange()){return this.bytes.subarray(n,n+e)}readDictionary(t){return this.dictionaries.get(t.id)}}class So extends Io{constructor(t,e,n,r){super(new Uint8Array(0),e,n,r),this.sources=t}readNullBitmap(t,e,{offset:n}=this.nextBufferRange()){return e<=0?new Uint8Array(0):Ne(this.sources[n])}readOffsets(t,{offset:e}=this.nextBufferRange()){return Ft(Uint8Array,Ft(Int32Array,this.sources[e]))}readTypeIds(t,{offset:e}=this.nextBufferRange()){return Ft(Uint8Array,Ft(t.ArrayType,this.sources[e]))}readData(t,{offset:e}=this.nextBufferRange()){const{sources:n}=this;return un.isTimestamp(t)||(un.isInt(t)||un.isTime(t))&&64===t.bitWidth||un.isDate(t)&&t.unit===Ae.MILLISECOND?Ft(Uint8Array,_o.convertArray(n[e])):un.isDecimal(t)?Ft(Uint8Array,wo.convertArray(n[e])):un.isBinary(t)||un.isFixedSizeBinary(t)?Oo(n[e]):un.isBool(t)?Ne(n[e]):un.isUtf8(t)?tt(n[e].join("")):Ft(Uint8Array,Ft(t.ArrayType,n[e].map(t=>+t)))}}function Oo(t){const e=t.join(""),n=new Uint8Array(e.length/2);for(let r=0;r>1]=parseInt(e.substr(r,2),16);return n}var To=U.Long,Ao=Ie.apache.arrow.flatbuf.Null,xo=Ie.apache.arrow.flatbuf.Int,Bo=Ie.apache.arrow.flatbuf.FloatingPoint,jo=Ie.apache.arrow.flatbuf.Binary,Do=Ie.apache.arrow.flatbuf.Bool,Fo=Ie.apache.arrow.flatbuf.Utf8,Lo=Ie.apache.arrow.flatbuf.Decimal,Eo=Ie.apache.arrow.flatbuf.Date,Mo=Ie.apache.arrow.flatbuf.Time,Uo=Ie.apache.arrow.flatbuf.Timestamp,Co=Ie.apache.arrow.flatbuf.Interval,No=Ie.apache.arrow.flatbuf.List,ko=Ie.apache.arrow.flatbuf.Struct_,Vo=Ie.apache.arrow.flatbuf.Union,Ro=Ie.apache.arrow.flatbuf.DictionaryEncoding,Po=Ie.apache.arrow.flatbuf.FixedSizeBinary,zo=Ie.apache.arrow.flatbuf.FixedSizeList,$o=Ie.apache.arrow.flatbuf.Map;class Yo extends ze{visit(t,e){return null==t||null==e?void 0:super.visit(t,e)}visitNull(t,e){return Ao.startNull(e),Ao.endNull(e)}visitInt(t,e){return xo.startInt(e),xo.addBitWidth(e,t.bitWidth),xo.addIsSigned(e,t.isSigned),xo.endInt(e)}visitFloat(t,e){return Bo.startFloatingPoint(e),Bo.addPrecision(e,t.precision),Bo.endFloatingPoint(e)}visitBinary(t,e){return jo.startBinary(e),jo.endBinary(e)}visitBool(t,e){return Do.startBool(e),Do.endBool(e)}visitUtf8(t,e){return Fo.startUtf8(e),Fo.endUtf8(e)}visitDecimal(t,e){return Lo.startDecimal(e),Lo.addScale(e,t.scale),Lo.addPrecision(e,t.precision),Lo.endDecimal(e)}visitDate(t,e){return Eo.startDate(e),Eo.addUnit(e,t.unit),Eo.endDate(e)}visitTime(t,e){return Mo.startTime(e),Mo.addUnit(e,t.unit),Mo.addBitWidth(e,t.bitWidth),Mo.endTime(e)}visitTimestamp(t,e){const n=t.timezone&&e.createString(t.timezone)||void 0;return Uo.startTimestamp(e),Uo.addUnit(e,t.unit),void 0!==n&&Uo.addTimezone(e,n),Uo.endTimestamp(e)}visitInterval(t,e){return Co.startInterval(e),Co.addUnit(e,t.unit),Co.endInterval(e)}visitList(t,e){return No.startList(e),No.endList(e)}visitStruct(t,e){return ko.startStruct_(e),ko.endStruct_(e)}visitUnion(t,e){Vo.startTypeIdsVector(e,t.typeIds.length);const n=Vo.createTypeIdsVector(e,t.typeIds);return Vo.startUnion(e),Vo.addMode(e,t.mode),Vo.addTypeIds(e,n),Vo.endUnion(e)}visitDictionary(t,e){const n=this.visit(t.indices,e);return Ro.startDictionaryEncoding(e),Ro.addId(e,new To(t.id,0)),Ro.addIsOrdered(e,t.isOrdered),void 0!==n&&Ro.addIndexType(e,n),Ro.endDictionaryEncoding(e)}visitFixedSizeBinary(t,e){return Po.startFixedSizeBinary(e),Po.addByteWidth(e,t.byteWidth),Po.endFixedSizeBinary(e)}visitFixedSizeList(t,e){return zo.startFixedSizeList(e),zo.addListSize(e,t.listSize),zo.endFixedSizeList(e)}visitMap(t,e){return $o.startMap(e),$o.addKeysSorted(e,t.keysSorted),$o.endMap(e)}}const Wo=new Yo;function Ho(t,e=new Map){return new Hi(qo(t,e),ea(t["customMetadata"]),e)}function Ko(t){return new ma(t["count"],Zo(t["columns"]),Xo(t["columns"]))}function Go(t){return new va(Ko(t["data"]),t["id"],t["isDelta"])}function qo(t,e){return(t["fields"]||[]).filter(Boolean).map(t=>Ki.fromJSON(t,e))}function Jo(t,e){return(t["children"]||[]).filter(Boolean).map(t=>Ki.fromJSON(t,e))}function Zo(t){return(t||[]).reduce((t,e)=>[...t,new wa(e["count"],Qo(e["VALIDITY"])),...Zo(e["children"])],[])}function Xo(t,e=[]){for(let n=-1,r=(t||[]).length;++nt+ +(0===e),0)}function ta(t,e){let n,r,i,s,o,a;return e&&(s=t["dictionary"])?e.has(n=s["id"])?(r=(r=s["indexType"])?na(r):new pn,a=new Pn(e.get(n),r,n,s["isOrdered"]),i=new Ki(t["name"],a,t["nullable"],ea(t["customMetadata"]))):(r=(r=s["indexType"])?na(r):new pn,e.set(n,o=ra(t,Jo(t,e))),a=new Pn(o,r,n,s["isOrdered"]),i=new Ki(t["name"],a,t["nullable"],ea(t["customMetadata"]))):(o=ra(t,Jo(t,e)),i=new Ki(t["name"],o,t["nullable"],ea(t["customMetadata"]))),i||null}function ea(t){return new Map(Object.entries(t||{}))}function na(t){return new hn(t["isSigned"],t["bitWidth"])}function ra(t,e){const n=t["type"]["name"];switch(n){case"NONE":return new ln;case"null":return new ln;case"binary":return new On;case"utf8":return new Tn;case"bool":return new An;case"list":return new Mn((e||[])[0]);case"struct":return new Un(e||[]);case"struct_":return new Un(e||[])}switch(n){case"int":{const e=t["type"];return new hn(e["isSigned"],e["bitWidth"])}case"floatingpoint":{const e=t["type"];return new _n(Be[e["precision"]])}case"decimal":{const e=t["type"];return new xn(e["scale"],e["precision"])}case"date":{const e=t["type"];return new Bn(Ae[e["unit"]])}case"time":{const e=t["type"];return new Fn(xe[e["unit"]],e["bitWidth"])}case"timestamp":{const e=t["type"];return new Ln(xe[e["unit"]],e["timezone"])}case"interval":{const e=t["type"];return new En(De[e["unit"]])}case"union":{const n=t["type"];return new Cn(je[n["mode"]],n["typeIds"]||[],e||[])}case"fixedsizebinary":{const e=t["type"];return new Nn(e["byteWidth"])}case"fixedsizelist":{const n=t["type"];return new kn(n["listSize"],(e||[])[0])}case"map":{const n=t["type"];return new Vn((e||[])[0],n["keysSorted"])}}throw new Error(`Unrecognized type: "${n}"`)}var ia=U.Long,sa=U.Builder,oa=U.ByteBuffer,aa=Ie.apache.arrow.flatbuf.Type,ca=Ie.apache.arrow.flatbuf.Field,ua=Ie.apache.arrow.flatbuf.Schema,la=Ie.apache.arrow.flatbuf.Buffer,ha=Se.apache.arrow.flatbuf.Message,fa=Ie.apache.arrow.flatbuf.KeyValue,da=Se.apache.arrow.flatbuf.FieldNode,pa=Ie.apache.arrow.flatbuf.Endianness,ya=Se.apache.arrow.flatbuf.RecordBatch,ba=Se.apache.arrow.flatbuf.DictionaryBatch;class ga{constructor(t,e,n,r){this._version=e,this._headerType=n,this.body=new Uint8Array(0),r&&(this._createHeader=()=>r),this._bodyLength="number"===typeof t?t:t.low}static fromJSON(t,e){const n=new ga(0,Le.V4,e);return n._createHeader=Ia(t,e),n}static decode(t){t=new oa(Ct(t));const e=ha.getRootAsMessage(t),n=e.bodyLength(),r=e.version(),i=e.headerType(),s=new ga(n,r,i);return s._createHeader=Sa(e,i),s}static encode(t){let e=new sa,n=-1;return t.isSchema()?n=Hi.encode(e,t.header()):t.isRecordBatch()?n=ma.encode(e,t.header()):t.isDictionaryBatch()&&(n=va.encode(e,t.header())),ha.startMessage(e),ha.addVersion(e,Le.V4),ha.addHeader(e,n),ha.addHeaderType(e,t.headerType),ha.addBodyLength(e,new ia(t.bodyLength,0)),ha.finishMessageBuffer(e,ha.endMessage(e)),e.asUint8Array()}static from(t,e=0){if(t instanceof Hi)return new ga(0,Le.V4,Fe.Schema,t);if(t instanceof ma)return new ga(e,Le.V4,Fe.RecordBatch,t);if(t instanceof va)return new ga(e,Le.V4,Fe.DictionaryBatch,t);throw new Error("Unrecognized Message header: "+t)}get type(){return this.headerType}get version(){return this._version}get headerType(){return this._headerType}get bodyLength(){return this._bodyLength}header(){return this._createHeader()}isSchema(){return this.headerType===Fe.Schema}isRecordBatch(){return this.headerType===Fe.RecordBatch}isDictionaryBatch(){return this.headerType===Fe.DictionaryBatch}}class ma{get nodes(){return this._nodes}get length(){return this._length}get buffers(){return this._buffers}constructor(t,e,n){this._nodes=e,this._buffers=n,this._length="number"===typeof t?t:t.low}}class va{get id(){return this._id}get data(){return this._data}get isDelta(){return this._isDelta}get length(){return this.data.length}get nodes(){return this.data.nodes}get buffers(){return this.data.buffers}constructor(t,e,n=!1){this._data=t,this._isDelta=n,this._id="number"===typeof e?e:e.low}}class _a{constructor(t,e){this.offset="number"===typeof t?t:t.low,this.length="number"===typeof e?e:e.low}}class wa{constructor(t,e){this.length="number"===typeof t?t:t.low,this.nullCount="number"===typeof e?e:e.low}}function Ia(t,e){return()=>{switch(e){case Fe.Schema:return Hi.fromJSON(t);case Fe.RecordBatch:return ma.fromJSON(t);case Fe.DictionaryBatch:return va.fromJSON(t)}throw new Error(`Unrecognized Message type: { name: ${Fe[e]}, type: ${e} }`)}}function Sa(t,e){return()=>{switch(e){case Fe.Schema:return Hi.decode(t.header(new ua));case Fe.RecordBatch:return ma.decode(t.header(new ya),t.version());case Fe.DictionaryBatch:return va.decode(t.header(new ba),t.version())}throw new Error(`Unrecognized Message type: { name: ${Fe[e]}, type: ${e} }`)}}function Oa(t,e=new Map){const n=Fa(t,e);return new Hi(n,Ma(t),e)}function Ta(t,e=Le.V4){return new ma(t.length(),ja(t),Da(t,e))}function Aa(t,e=Le.V4){return new va(ma.decode(t.data(),e),t.id(),t.isDelta())}function xa(t){return new _a(t.offset(),t.length())}function Ba(t){return new wa(t.length(),t.nullCount())}function ja(t){const e=[];for(let n,r=-1,i=-1,s=t.nodesLength();++rKi.encode(t,e));ua.startFieldsVector(t,n.length);const r=ua.createFieldsVector(t,n),i=e.metadata&&e.metadata.size>0?ua.createCustomMetadataVector(t,[...e.metadata].map(([e,n])=>{const r=t.createString(""+e),i=t.createString(""+n);return fa.startKeyValue(t),fa.addKey(t,r),fa.addValue(t,i),fa.endKeyValue(t)})):-1;return ua.startSchema(t),ua.addFields(t,r),ua.addEndianness(t,$a?pa.Little:pa.Big),-1!==i&&ua.addCustomMetadata(t,i),ua.endSchema(t)}function ka(t,e){let n=-1,r=-1,i=-1,s=e.type,o=e.typeId;un.isDictionary(s)?(o=s.dictionary.typeId,i=Wo.visit(s,t),r=Wo.visit(s.dictionary,t)):r=Wo.visit(s,t);const a=(s.children||[]).map(e=>Ki.encode(t,e)),c=ca.createChildrenVector(t,a),u=e.metadata&&e.metadata.size>0?ca.createCustomMetadataVector(t,[...e.metadata].map(([e,n])=>{const r=t.createString(""+e),i=t.createString(""+n);return fa.startKeyValue(t),fa.addKey(t,r),fa.addValue(t,i),fa.endKeyValue(t)})):-1;return e.name&&(n=t.createString(e.name)),ca.startField(t),ca.addType(t,r),ca.addTypeType(t,o),ca.addChildren(t,c),ca.addNullable(t,!!e.nullable),-1!==n&&ca.addName(t,n),-1!==i&&ca.addDictionary(t,i),-1!==u&&ca.addCustomMetadata(t,u),ca.endField(t)}function Va(t,e){const n=e.nodes||[],r=e.buffers||[];ya.startNodesVector(t,n.length),n.slice().reverse().forEach(e=>wa.encode(t,e));const i=t.endVector();ya.startBuffersVector(t,r.length),r.slice().reverse().forEach(e=>_a.encode(t,e));const s=t.endVector();return ya.startRecordBatch(t),ya.addLength(t,new ia(e.length,0)),ya.addNodes(t,i),ya.addBuffers(t,s),ya.endRecordBatch(t)}function Ra(t,e){const n=ma.encode(t,e.data);return ba.startDictionaryBatch(t),ba.addId(t,new ia(e.id,0)),ba.addIsDelta(t,e.isDelta),ba.addData(t,n),ba.endDictionaryBatch(t)}function Pa(t,e){return da.createFieldNode(t,new ia(e.length,0),new ia(e.nullCount,0))}function za(t,e){return la.createBuffer(t,new ia(e.offset,0),new ia(e.length,0))}Ki["encode"]=ka,Ki["decode"]=Ea,Ki["fromJSON"]=ta,Hi["encode"]=Na,Hi["decode"]=Oa,Hi["fromJSON"]=Ho,ma["encode"]=Va,ma["decode"]=Ta,ma["fromJSON"]=Ko,va["encode"]=Ra,va["decode"]=Aa,va["fromJSON"]=Go,wa["encode"]=Pa,wa["decode"]=Ba,_a["encode"]=za,_a["decode"]=xa;const $a=function(){const t=new ArrayBuffer(2);return new DataView(t).setInt16(0,256,!0),256===new Int16Array(t)[0]}();var Ya=U.ByteBuffer;const Wa=t=>`Expected ${Fe[t]} Message in stream, but was null or length 0.`,Ha=t=>`Header pointer of flatbuffer-encoded ${Fe[t]} Message is null or length 0.`,Ka=(t,e)=>`Expected to read ${t} metadata bytes, but only read ${e}.`,Ga=(t,e)=>`Expected to read ${t} bytes for message body, but only read ${e}.`;class qa{constructor(t){this.source=t instanceof ao?t:new ao(t)}[Symbol.iterator](){return this}next(){let t;return(t=this.readMetadataLength()).done||-1===t.value&&(t=this.readMetadataLength()).done||(t=this.readMetadata(t.value)).done?et:t}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}readMessage(t){let e;if((e=this.next()).done)return null;if(null!=t&&e.value.headerType!==t)throw new Error(Wa(t));return e.value}readMessageBody(t){if(t<=0)return new Uint8Array(0);const e=Ct(this.source.read(t));if(e.byteLength[...t,...n["VALIDITY"]&&[n["VALIDITY"]]||[],...n["TYPE"]&&[n["TYPE"]]||[],...n["OFFSET"]&&[n["OFFSET"]]||[],...n["DATA"]&&[n["DATA"]]||[],...e(n["children"])],[])}}readMessage(t){let e;if((e=this.next()).done)return null;if(null!=t&&e.value.headerType!==t)throw new Error(Wa(t));return e.value}readSchema(){const t=Fe.Schema,e=this.readMessage(t),n=e&&e.header();if(!e||!n)throw new Error(Ha(t));return n}}const Xa=4,Qa="ARROW1",tc=new Uint8Array(Qa.length);for(let $h=0;$h2147483647)throw new RangeError("Cannot write arrays larger than 2^31 - 1 in length");un.isNull(t.type)||oc.call(this,r<=0?new Uint8Array(0):Ce(e.offset,n,e.nullBitmap)),this.nodes.push(new wa(n,r))}return super.visit(t)}visitNull(t){return this}visitDictionary(t){return this.visit(t.indices)}get nodes(){return this._nodes}get buffers(){return this._buffers}get byteLength(){return this._byteLength}get bufferRegions(){return this._bufferRegions}}function oc(t){const e=t.byteLength+7&-8;return this.buffers.push(t),this.bufferRegions.push(new _a(this._byteLength,e)),this._byteLength+=e,this}function ac(t){const{type:e,length:n,typeIds:r,valueOffsets:i}=t;if(oc.call(this,r),e.mode===je.Sparse)return fc.call(this,t);if(e.mode===je.Dense){if(t.offset<=0)return oc.call(this,i),fc.call(this,t);{const s=r.reduce((t,e)=>Math.max(t,e),r[0]),o=new Int32Array(s+1),a=new Int32Array(s+1).fill(-1),c=new Int32Array(n),u=le(-i[0],n,i);for(let t,e,i=-1;++i=t.length?oc.call(this,new Uint8Array(0)):(e=t.values)instanceof Uint8Array?oc.call(this,Ce(t.offset,t.length,e)):oc.call(this,Ne(t))}function uc(t){return oc.call(this,t.values.subarray(0,t.length*t.stride))}function lc(t){const{length:e,values:n,valueOffsets:r}=t,i=r[0],s=r[e],o=Math.min(s-i,n.byteLength-i);return oc.call(this,le(-r[0],e,r)),oc.call(this,n.subarray(i,i+o)),this}function hc(t){const{length:e,valueOffsets:n}=t;return n&&oc.call(this,le(n[0],e,n)),this.visit(t.getChildAt(0))}function fc(t){return this.visitMany(t.type.children.map((e,n)=>t.getChildAt(n)).filter(Boolean))[0]}sc.prototype.visitBool=cc,sc.prototype.visitInt=uc,sc.prototype.visitFloat=uc,sc.prototype.visitUtf8=lc,sc.prototype.visitBinary=lc,sc.prototype.visitFixedSizeBinary=uc,sc.prototype.visitDate=uc,sc.prototype.visitTimestamp=uc,sc.prototype.visitTime=uc,sc.prototype.visitDecimal=uc,sc.prototype.visitList=hc,sc.prototype.visitStruct=fc,sc.prototype.visitUnion=ac,sc.prototype.visitInterval=uc,sc.prototype.visitFixedSizeList=hc,sc.prototype.visitMap=hc;class dc extends rt{constructor(t){super(),this._position=0,this._started=!1,this._sink=new oo,this._schema=null,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,pt(t)||(t={autoDestroy:!0,writeLegacyIpcFormat:!1}),this._autoDestroy="boolean"!==typeof t.autoDestroy||t.autoDestroy,this._writeLegacyIpcFormat="boolean"===typeof t.writeLegacyIpcFormat&&t.writeLegacyIpcFormat}static throughNode(t){throw new Error('"throughNode" not available in this environment')}static throughDOM(t,e){throw new Error('"throughDOM" not available in this environment')}toString(t=!1){return this._sink.toString(t)}toUint8Array(t=!1){return this._sink.toUint8Array(t)}writeAll(t){return yt(t)?t.then(t=>this.writeAll(t)):gt(t)?gc(this,t):bc(this,t)}get closed(){return this._sink.closed}[Symbol.asyncIterator](){return this._sink[Symbol.asyncIterator]()}toDOMStream(t){return this._sink.toDOMStream(t)}toNodeStream(t){return this._sink.toNodeStream(t)}close(){return this.reset()._sink.close()}abort(t){return this.reset()._sink.abort(t)}finish(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}reset(t=this._sink,e=null){return t===this._sink||t instanceof oo?this._sink=t:(this._sink=new oo,t&&It(t)?this.toDOMStream({type:"bytes"}).pipeTo(t):t&&Ot(t)&&this.toNodeStream({objectMode:!1}).pipe(t)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,e&&e.compareTo(this._schema)||(null===e?(this._position=0,this._schema=null):(this._started=!0,this._schema=e,this._writeSchema(e))),this}write(t){let e=null;if(!this._sink)throw new Error("RecordBatchWriter is closed");if(null===t||void 0===t)return this.finish()&&void 0;if(t instanceof zl&&!(e=t.schema))return this.finish()&&void 0;if(t instanceof Wl&&!(e=t.schema))return this.finish()&&void 0;if(e&&!e.compareTo(this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,e)}t instanceof Wl?t instanceof Hl||this._writeRecordBatch(t):t instanceof zl?this.writeAll(t.chunks):bt(t)&&this.writeAll(t)}_writeMessage(t,e=8){const n=e-1,r=ga.encode(t),i=r.byteLength,s=this._writeLegacyIpcFormat?4:8,o=i+s+n&~n,a=o-i-s;return t.headerType===Fe.RecordBatch?this._recordBatchBlocks.push(new so(o,t.bodyLength,this._position)):t.headerType===Fe.DictionaryBatch&&this._dictionaryBlocks.push(new so(o,t.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(o-s)),i>0&&this._write(r),this._writePadding(a)}_write(t){if(this._started){const e=Ct(t);e&&e.byteLength>0&&(this._sink.write(e),this._position+=e.byteLength)}return this}_writeSchema(t){return this._writeMessage(ga.from(t))}_writeFooter(t){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}_writeMagic(){return this._write(tc)}_writePadding(t){return t>0?this._write(new Uint8Array(t)):this}_writeRecordBatch(t){const{byteLength:e,nodes:n,bufferRegions:r,buffers:i}=sc.assemble(t),s=new ma(t.length,n,r),o=ga.from(s,e);return this._writeDictionaries(t)._writeMessage(o)._writeBodyBuffers(i)}_writeDictionaryBatch(t,e,n=!1){this._dictionaryDeltaOffsets.set(e,t.length+(this._dictionaryDeltaOffsets.get(e)||0));const{byteLength:r,nodes:i,bufferRegions:s,buffers:o}=sc.assemble(t),a=new ma(t.length,i,s),c=new va(a,e,n),u=ga.from(c,r);return this._writeMessage(u)._writeBodyBuffers(o)}_writeBodyBuffers(t){let e,n,r;for(let i=-1,s=t.length;++i0&&(this._write(e),(r=(n+7&-8)-n)>0&&this._writePadding(r));return this}_writeDictionaries(t){for(let[e,n]of t.dictionaries){let t=this._dictionaryDeltaOffsets.get(e)||0;if(0===t||(n=n.slice(t)).length>0){const r="chunks"in n?n.chunks:[n];for(const n of r)this._writeDictionaryBatch(n,e,t>0),t+=n.length}}return this}}class pc extends dc{static writeAll(t,e){const n=new pc(e);return yt(t)?t.then(t=>n.writeAll(t)):gt(t)?gc(n,t):bc(n,t)}}class yc extends dc{constructor(){super(),this._autoDestroy=!0}static writeAll(t){const e=new yc;return yt(t)?t.then(t=>e.writeAll(t)):gt(t)?gc(e,t):bc(e,t)}_writeSchema(t){return this._writeMagic()._writePadding(2)}_writeFooter(t){const e=ro.encode(new ro(t,Le.V4,this._recordBatchBlocks,this._dictionaryBlocks));return super._writeFooter(t)._write(e)._write(Int32Array.of(e.byteLength))._writeMagic()}}function bc(t,e){let n=e;e instanceof zl&&(n=e.chunks,t.reset(void 0,e.schema));for(const r of n)t.write(r);return t.finish()}async function gc(t,e){for await(const n of e)t.write(n);return t.finish()}const mc=new Uint8Array(0),vc=t=>[mc,mc,new Uint8Array(t),mc];function _c(t,e,n=e.reduce((t,e)=>Math.max(t,e.length),0)){let r,i,s=-1,o=e.length;const a=[...t.fields],c=[],u=(n+63&-64)>>3;while(++st)),t)}function Ic(t,e){return Sc(t,e.map(t=>t instanceof ji?t.chunks.map(t=>t.data):[t.data]))}function Sc(t,e){const n=[...t.fields],r=[],i={numBatches:e.reduce((t,e)=>Math.max(t,e.length),0)};let s,o=0,a=0,c=-1,u=e.length,l=[];while(i.numBatches-- >0){for(a=Number.POSITIVE_INFINITY,c=-1;++c0&&(r[o++]=[a,l.slice()]))}return[t=new Hi(n,t.metadata),r.map(e=>new Wl(t,...e))]}function Oc(t,e,n,r,i){let s,o,a=0,c=-1,u=r.length;const l=(e+63&-64)>>3;while(++c=e?a===e?n[c]=s:(n[c]=s.slice(0,e),s=s.slice(e,a-e),i.numBatches=Math.max(i.numBatches,r[c].unshift(s))):((o=t[c]).nullable||(t[c]=o.clone({nullable:!0})),n[c]=s?s._changeLengthAndBackfillNullBitmap(e):Yn.new(o.type,0,e,e,vc(l)));return n}class Tc extends we{constructor(t,e){super(),this._children=e,this.numChildren=t.childData.length,this._bindDataAccessors(this.data=t)}get type(){return this.data.type}get typeId(){return this.data.typeId}get length(){return this.data.length}get offset(){return this.data.offset}get stride(){return this.data.stride}get nullCount(){return this.data.nullCount}get byteLength(){return this.data.byteLength}get VectorName(){return Oe[this.typeId]+"Vector"}get ArrayType(){return this.type.ArrayType}get values(){return this.data.values}get typeIds(){return this.data.typeIds}get nullBitmap(){return this.data.nullBitmap}get valueOffsets(){return this.data.valueOffsets}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}clone(t,e=this._children){return we.new(t,e)}concat(...t){return ji.concat(this,...t)}slice(t,e){return gi(this,t,e,this._sliceInternal)}isValid(t){if(this.nullCount>0){const e=this.offset+t,n=this.nullBitmap[e>>3],r=n&1<=this.numChildren?null:(this._children||(this._children=[]))[t]||(this._children[t]=we.new(this.data.childData[t]))}toJSON(){return[...this]}_sliceInternal(t,e,n){return t.clone(t.data.slice(e,n-e),null)}_bindDataAccessors(t){}}Tc.prototype[Symbol.isConcatSpreadable]=!0;class Ac extends Tc{asUtf8(){return we.new(this.data.clone(new Tn))}}class xc extends Tc{static from(t){return Cl(()=>new An,t)}}class Bc extends Tc{static from(...t){return 2===t.length?Cl(()=>t[1]===Ae.DAY?new jn:new Dn,t[0]):Cl(()=>new Dn,t[0])}}class jc extends Bc{}class Dc extends Bc{}class Fc extends Tc{}class Lc extends Tc{constructor(t){super(t),this.indices=we.new(t.clone(this.type.indices))}static from(...t){if(3===t.length){const[e,n,r]=t,i=new Pn(e.type,n,null,null);return we.new(Yn.Dictionary(i,0,r.length,0,null,r,e))}return Cl(()=>t[0].type,t[0])}get dictionary(){return this.data.dictionary}reverseLookup(t){return this.dictionary.indexOf(t)}getKey(t){return this.indices.get(t)}getValue(t){return this.dictionary.get(t)}setKey(t,e){return this.indices.set(t,e)}setValue(t,e){return this.dictionary.set(t,e)}}Lc.prototype.indices=null;class Ec extends Tc{}class Mc extends Tc{}class Uc extends Tc{static from(t){let e=Pc(this);if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){let n=Rc(t.constructor)||e;if(null===e&&(e=n),e&&e===n){let n=new e,r=t.byteLength/n.ArrayType.BYTES_PER_ELEMENT;if(!Vc(e,t.constructor))return we.new(Yn.Float(n,0,r,0,null,t))}}if(e)return Cl(()=>new e,t);if(t instanceof DataView||t instanceof ArrayBuffer)throw new TypeError("Cannot infer float type from instance of "+t.constructor.name);throw new TypeError("Unrecognized FloatVector input")}}class Cc extends Uc{toFloat32Array(){return new Float32Array(this)}toFloat64Array(){return new Float64Array(this)}}class Nc extends Uc{}class kc extends Uc{}const Vc=(t,e)=>t===wn&&e!==Uint16Array,Rc=t=>{switch(t){case Uint16Array:return wn;case Float32Array:return In;case Float64Array:return Sn;default:return null}},Pc=t=>{switch(t){case Cc:return wn;case Nc:return In;case kc:return Sn;default:return null}};class zc extends Tc{}class $c extends zc{}class Yc extends zc{}class Wc extends Tc{static from(...t){let[e,n=!1]=t,r=nu(this,n);if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let t=eu(e.constructor,n)||r;if(null===r&&(r=t),r&&r===t){let t=new r,n=e.byteLength/t.ArrayType.BYTES_PER_ELEMENT;return tu(r,e.constructor)&&(n*=.5),we.new(Yn.Int(t,0,n,0,null,e))}}if(r)return Cl(()=>new r,e);if(e instanceof DataView||e instanceof ArrayBuffer)throw new TypeError("Cannot infer integer type from instance of "+e.constructor.name);throw new TypeError("Unrecognized IntVector input")}}class Hc extends Wc{}class Kc extends Wc{}class Gc extends Wc{}class qc extends Wc{toBigInt64Array(){return Ut(this.values)}get values64(){return this._values64||(this._values64=this.toBigInt64Array())}}class Jc extends Wc{}class Zc extends Wc{}class Xc extends Wc{}class Qc extends Wc{toBigUint64Array(){return Vt(this.values)}get values64(){return this._values64||(this._values64=this.toBigUint64Array())}}const tu=(t,e)=>(t===yn||t===vn)&&(e===Int32Array||e===Uint32Array),eu=(t,e)=>{switch(t){case Int8Array:return fn;case Int16Array:return dn;case Int32Array:return e?yn:pn;case at:return yn;case Uint8Array:return bn;case Uint16Array:return gn;case Uint32Array:return e?vn:mn;case ut:return vn;default:return null}},nu=(t,e)=>{switch(t){case Hc:return fn;case Kc:return dn;case Gc:return e?yn:pn;case qc:return yn;case Jc:return bn;case Zc:return gn;case Xc:return e?vn:mn;case Qc:return vn;default:return null}};class ru extends Tc{}class iu extends Tc{asList(){const t=this.type.children[0];return we.new(this.data.clone(new Mn(t)))}bind(t){const e=this.getChildAt(0),{[t]:n,[t+1]:r}=this.valueOffsets;return new hi(e.slice(n,r))}}class su extends Tc{}const ou=Symbol.for("rowIndex");class au extends Tc{bind(t){const e=this._row||(this._row=new fi(this)),n=Object.create(e);return n[ou]=t,n}}class cu extends Tc{}class uu extends cu{}class lu extends cu{}class hu extends cu{}class fu extends cu{}class du extends Tc{}class pu extends du{}class yu extends du{}class bu extends du{}class gu extends du{}class mu extends Tc{get typeIdToChildIndex(){return this.data.type.typeIdToChildIndex}}class vu extends mu{get valueOffsets(){return this.data.valueOffsets}}class _u extends mu{}class wu extends Tc{static from(t){return Cl(()=>new Tn,t)}asBinary(){return we.new(this.data.clone(new On))}}function Iu(t){return function(){return t(this)}}function Su(t){return function(e){return t(this,e)}}function Ou(t){return function(e,n){return t(this,e,n)}}class Tu extends ze{}const Au=(t,e)=>864e5*t[e],xu=(t,e)=>4294967296*t[e+1]+(t[e]>>>0),Bu=(t,e)=>t[e+1]/1e3*4294967296+(t[e]>>>0)/1e3,ju=(t,e)=>t[e+1]/1e6*4294967296+(t[e]>>>0)/1e6,Du=t=>new Date(t),Fu=(t,e)=>Du(Au(t,e)),Lu=(t,e)=>Du(xu(t,e)),Eu=(t,e)=>null,Mu=(t,e,n)=>{const{[n]:r,[n+1]:i}=e;return null!=r&&null!=i?t.subarray(r,i):null},Uu=({offset:t,values:e},n)=>{const r=t+n,i=e[r>>3];return 0!==(i&1<Fu(t,e),Nu=({values:t},e)=>Lu(t,2*e),ku=({stride:t,values:e},n)=>e[t*n],Vu=({stride:t,values:e},n)=>gr(e[t*n]),Ru=({stride:t,values:e,type:n},r)=>Lr.new(e.subarray(t*r,t*(r+1)),n.isSigned),Pu=({stride:t,values:e},n)=>e.subarray(t*n,t*(n+1)),zu=({values:t,valueOffsets:e},n)=>Mu(t,e,n),$u=({values:t,valueOffsets:e},n)=>{const r=Mu(t,e,n);return null!==r?Q(r):null},Yu=(t,e)=>t.type.bitWidth<64?ku(t,e):Ru(t,e),Wu=(t,e)=>t.type.precision!==Be.HALF?ku(t,e):Vu(t,e),Hu=(t,e)=>t.type.unit===Ae.DAY?Cu(t,e):Nu(t,e),Ku=({values:t},e)=>1e3*xu(t,2*e),Gu=({values:t},e)=>xu(t,2*e),qu=({values:t},e)=>Bu(t,2*e),Ju=({values:t},e)=>ju(t,2*e),Zu=(t,e)=>{switch(t.type.unit){case xe.SECOND:return Ku(t,e);case xe.MILLISECOND:return Gu(t,e);case xe.MICROSECOND:return qu(t,e);case xe.NANOSECOND:return Ju(t,e)}},Xu=({values:t,stride:e},n)=>t[e*n],Qu=({values:t,stride:e},n)=>t[e*n],tl=({values:t},e)=>Lr.signed(t.subarray(2*e,2*(e+1))),el=({values:t},e)=>Lr.signed(t.subarray(2*e,2*(e+1))),nl=(t,e)=>{switch(t.type.unit){case xe.SECOND:return Xu(t,e);case xe.MILLISECOND:return Qu(t,e);case xe.MICROSECOND:return tl(t,e);case xe.NANOSECOND:return el(t,e)}},rl=({values:t},e)=>Lr.decimal(t.subarray(4*e,4*(e+1))),il=(t,e)=>{const n=t.getChildAt(0),{valueOffsets:r,stride:i}=t;return n.slice(r[e*i],r[e*i+1])},sl=(t,e)=>t.bind(e),ol=(t,e)=>t.bind(e),al=(t,e)=>t.type.mode===je.Dense?cl(t,e):ul(t,e),cl=(t,e)=>{const n=t.typeIdToChildIndex[t.typeIds[e]],r=t.getChildAt(n);return r?r.get(t.valueOffsets[e]):null},ul=(t,e)=>{const n=t.typeIdToChildIndex[t.typeIds[e]],r=t.getChildAt(n);return r?r.get(e):null},ll=(t,e)=>t.getValue(t.getKey(e)),hl=(t,e)=>t.type.unit===De.DAY_TIME?fl(t,e):dl(t,e),fl=({values:t},e)=>t.subarray(2*e,2*(e+1)),dl=({values:t},e)=>{const n=t[e],r=new Int32Array(2);return r[0]=n/12|0,r[1]=n%12|0,r},pl=(t,e)=>{const n=t.getChildAt(0),{stride:r}=t;return n.slice(e*r,(e+1)*r)};Tu.prototype.visitNull=Eu,Tu.prototype.visitBool=Uu,Tu.prototype.visitInt=Yu,Tu.prototype.visitInt8=ku,Tu.prototype.visitInt16=ku,Tu.prototype.visitInt32=ku,Tu.prototype.visitInt64=Ru,Tu.prototype.visitUint8=ku,Tu.prototype.visitUint16=ku,Tu.prototype.visitUint32=ku,Tu.prototype.visitUint64=Ru,Tu.prototype.visitFloat=Wu,Tu.prototype.visitFloat16=Vu,Tu.prototype.visitFloat32=ku,Tu.prototype.visitFloat64=ku,Tu.prototype.visitUtf8=$u,Tu.prototype.visitBinary=zu,Tu.prototype.visitFixedSizeBinary=Pu,Tu.prototype.visitDate=Hu,Tu.prototype.visitDateDay=Cu,Tu.prototype.visitDateMillisecond=Nu,Tu.prototype.visitTimestamp=Zu,Tu.prototype.visitTimestampSecond=Ku,Tu.prototype.visitTimestampMillisecond=Gu,Tu.prototype.visitTimestampMicrosecond=qu,Tu.prototype.visitTimestampNanosecond=Ju,Tu.prototype.visitTime=nl,Tu.prototype.visitTimeSecond=Xu,Tu.prototype.visitTimeMillisecond=Qu,Tu.prototype.visitTimeMicrosecond=tl,Tu.prototype.visitTimeNanosecond=el,Tu.prototype.visitDecimal=rl,Tu.prototype.visitList=il,Tu.prototype.visitStruct=ol,Tu.prototype.visitUnion=al,Tu.prototype.visitDenseUnion=cl,Tu.prototype.visitSparseUnion=ul,Tu.prototype.visitDictionary=ll,Tu.prototype.visitInterval=hl,Tu.prototype.visitIntervalDayTime=fl,Tu.prototype.visitIntervalYearMonth=dl,Tu.prototype.visitFixedSizeList=pl,Tu.prototype.visitMap=sl;const yl=new Tu;class bl extends ze{}function gl(t,e){return null===e&&t.length>0?0:-1}function ml(t,e){const{nullBitmap:n}=t;if(!n||t.nullCount<=0)return-1;let r=0;for(const i of ke(n,t.data.offset+(e||0),t.length,n,Ee)){if(!i)return r;++r}return-1}function vl(t,e,n){if(void 0===e)return-1;if(null===e)return ml(t,n);const r=_i(e);for(let i=(n||0)-1,s=t.length;++i0!==(r&1<0)return Sl(t);const{type:e,typeId:n,length:r}=t;return 1===t.stride&&(n===Oe.Timestamp||n===Oe.Int&&64!==e.bitWidth||n===Oe.Time&&64!==e.bitWidth||n===Oe.Float&&e.precision>0)?t.values.subarray(0,r)[Symbol.iterator]():function*(e){for(let n=-1;++nt+e,Dl=t=>"Cannot compute the byte width of variable-width column "+t;class Fl extends ze{visitNull(t){return 0}visitInt(t){return t.bitWidth/8}visitFloat(t){return t.ArrayType.BYTES_PER_ELEMENT}visitBinary(t){throw new Error(Dl(t))}visitUtf8(t){throw new Error(Dl(t))}visitBool(t){return 1/8}visitDecimal(t){return 16}visitDate(t){return 4*(t.unit+1)}visitTime(t){return t.bitWidth/8}visitTimestamp(t){return t.unit===xe.SECOND?4:8}visitInterval(t){return 4*(t.unit+1)}visitList(t){throw new Error(Dl(t))}visitStruct(t){return this.visitFields(t.children).reduce(jl,0)}visitUnion(t){return this.visitFields(t.children).reduce(jl,0)}visitFixedSizeBinary(t){return t.byteWidth}visitFixedSizeList(t){return t.listSize*this.visitFields(t.children).reduce(jl,0)}visitMap(t){return this.visitFields(t.children).reduce(jl,0)}visitDictionary(t){return this.visit(t.indices)}visitFields(t){return(t||[]).map(t=>this.visit(t.type))}visitSchema(t){return this.visitFields(t.fields).reduce(jl,0)}}const Ll=new Fl;class El extends ze{visitNull(){return su}visitBool(){return xc}visitInt(){return Wc}visitInt8(){return Hc}visitInt16(){return Kc}visitInt32(){return Gc}visitInt64(){return qc}visitUint8(){return Jc}visitUint16(){return Zc}visitUint32(){return Xc}visitUint64(){return Qc}visitFloat(){return Uc}visitFloat16(){return Cc}visitFloat32(){return Nc}visitFloat64(){return kc}visitUtf8(){return wu}visitBinary(){return Ac}visitFixedSizeBinary(){return Ec}visitDate(){return Bc}visitDateDay(){return jc}visitDateMillisecond(){return Dc}visitTimestamp(){return cu}visitTimestampSecond(){return uu}visitTimestampMillisecond(){return lu}visitTimestampMicrosecond(){return hu}visitTimestampNanosecond(){return fu}visitTime(){return du}visitTimeSecond(){return pu}visitTimeMillisecond(){return yu}visitTimeMicrosecond(){return bu}visitTimeNanosecond(){return gu}visitDecimal(){return Fc}visitList(){return ru}visitStruct(){return au}visitUnion(){return mu}visitDenseUnion(){return vu}visitSparseUnion(){return _u}visitDictionary(){return Lc}visitInterval(){return zc}visitIntervalDayTime(){return $c}visitIntervalYearMonth(){return Yc}visitFixedSizeList(){return Mc}visitMap(){return iu}}const Ml=new El;function Ul(t,...e){return new(Ml.getVisitFn(t)())(t,...e)}function Cl(t,e){if(bt(e))return we.from({nullValues:[null,void 0],type:t(),values:e});if(gt(e))return we.from({nullValues:[null,void 0],type:t(),values:e});const{values:n=[],type:r=t(),nullValues:i=[null,void 0]}={...e};return bt(n),we.from({nullValues:i,...e,type:r})}function Nl(t){const{values:e=[],...n}={nullValues:[null,void 0],...t};if(bt(e)){const t=[...nr.throughIterable(n)(e)];return 1===t.length?t[0]:ji.concat(t)}return(async t=>{const r=nr.throughAsyncIterable(n);for await(const n of r(e))t.push(n);return 1===t.length?t[0]:ji.concat(t)})([])}function kl(t){return function(){return t(this.type)}}function Vl(t){return function(e){return this.isValid(e)?t.call(this,e):null}}function Rl(t){return function(e,n){Ue(this.nullBitmap,this.offset+e,!(null===n||void 0===n))&&t.call(this,e,n)}}function Pl(){const t=this.nullBitmap;t&&t.byteLength>0&&(this.get=Vl(this.get),this.set=Rl(this.set))}we.new=Ul,we.from=Nl,Tc.prototype.get=function(t){return yl.visit(this,t)},Tc.prototype.set=function(t,e){return Ks.visit(this,t,e)},Tc.prototype.indexOf=function(t,e){return wl.visit(this,t,e)},Tc.prototype.toArray=function(){return Bl.visit(this)},Tc.prototype.getByteWidth=function(){return Ll.visit(this.type)},Tc.prototype[Symbol.iterator]=function(){return Tl.visit(this)},Tc.prototype._bindDataAccessors=Pl,Object.keys(Oe).map(t=>Oe[t]).filter(t=>"number"===typeof t).filter(t=>t!==Oe.NONE).forEach(t=>{const e=Ml.visit(t);e.prototype["get"]=Su(yl.getVisitFn(t)),e.prototype["set"]=Ou(Ks.getVisitFn(t)),e.prototype["indexOf"]=Ou(wl.getVisitFn(t)),e.prototype["toArray"]=Iu(Bl.getVisitFn(t)),e.prototype["getByteWidth"]=kl(Ll.getVisitFn(t)),e.prototype[Symbol.iterator]=Iu(Tl.getVisitFn(t))});class zl extends ji{constructor(...t){let e=null;t[0]instanceof Hi&&(e=t.shift());let n=Ci(Wl,t);if(!e&&!(e=n[0]&&n[0].schema))throw new TypeError("Table must be initialized with a Schema or at least one RecordBatch");n[0]||(n[0]=new Hl(e)),super(new Un(e.fields),n),this._schema=e,this._chunks=n}static empty(t=new Hi([])){return new zl(t,[])}static from(t){if(!t)return zl.empty();if("object"===typeof t){let e=bt(t["values"])?$l(t):gt(t["values"])?Yl(t):null;if(null!==e)return e}let e=Gl.from(t);return yt(e)?(async()=>await zl.from(await e))():e.isSync()&&(e=e.open())?e.schema?new zl(e.schema,[...e]):zl.empty():(async t=>{const e=await t,n=e.schema,r=[];if(n){for await(let t of e)r.push(t);return new zl(n,r)}return zl.empty()})(e.open())}static async fromAsync(t){return await zl.from(t)}static fromStruct(t){return zl.new(t.data.childData,t.type.children)}static new(...t){return new zl(...wc(Ni(t)))}get schema(){return this._schema}get length(){return this._length}get chunks(){return this._chunks}get numCols(){return this._numChildren}clone(t=this._chunks){return new zl(this._schema,t)}getColumn(t){return this.getColumnAt(this.getColumnIndex(t))}getColumnAt(t){return this.getChildAt(t)}getColumnIndex(t){return this._schema.fields.findIndex(e=>e.name===t)}getChildAt(t){if(t<0||t>=this.numChildren)return null;let e,n;const r=this._schema.fields,i=this._children||(this._children=[]);if(n=i[t])return n;if(e=r[t]){const n=this._chunks.map(e=>e.getChildAt(t)).filter(t=>null!=t);if(n.length>0)return i[t]=new Ei(e,n)}return null}serialize(t="binary",e=!0){const n=e?pc:yc;return n.writeAll(this).toUint8Array(!0)}count(){return this._length}select(...t){const e=this._schema.fields.reduce((t,e,n)=>t.set(e.name,n),new Map);return this.selectAt(...t.map(t=>e.get(t)).filter(t=>t>-1))}selectAt(...t){const e=this._schema.selectAt(...t);return new zl(e,this._chunks.map(({length:n,data:{childData:r}})=>new Wl(e,n,t.map(t=>r[t]).filter(Boolean))))}assign(t){const e=this._schema.fields,[n,r]=t.schema.fields.reduce((t,n,r)=>{const[i,s]=t,o=e.findIndex(t=>t.name===n.name);return~o?s[o]=r:i.push(r),t},[[],[]]),i=this._schema.assign(t.schema),s=[...e.map((e,n,i,s=r[n])=>void 0===s?this.getColumnAt(n):t.getColumnAt(s)),...n.map(e=>t.getColumnAt(e))].filter(Boolean);return new zl(...Ic(i,s))}}function $l(t){const{type:e}=t;return e instanceof Un?zl.fromStruct(au.from(t)):null}function Yl(t){const{type:e}=t;return e instanceof Un?au.from(t).then(t=>zl.fromStruct(t)):null}class Wl extends au{constructor(...t){let e,n,r=t[0];if(t[1]instanceof Yn)[,e,n]=t;else{const n=r.fields,[,i,s]=t;e=Yn.Struct(new Un(n),0,i,0,null,s)}super(e,n),this._schema=r}static from(t){return bt(t["values"]),zl.from(t)}static new(...t){const[e,n]=ki(t),r=n.filter(t=>t instanceof we);return new Wl(..._c(new Hi(e),r.map(t=>t.data)))}clone(t,e=this._children){return new Wl(this._schema,t,e)}concat(...t){const e=this._schema,n=ji.flatten(this,...t);return new zl(e,n.map(({data:t})=>new Wl(e,t)))}get schema(){return this._schema}get numCols(){return this._schema.fields.length}get dictionaries(){return this._dictionaries||(this._dictionaries=Kl.collect(this))}select(...t){const e=this._schema.fields.reduce((t,e,n)=>t.set(e.name,n),new Map);return this.selectAt(...t.map(t=>e.get(t)).filter(t=>t>-1))}selectAt(...t){const e=this._schema.selectAt(...t),n=t.map(t=>this.data.childData[t]).filter(Boolean);return new Wl(e,this.length,n)}}class Hl extends Wl{constructor(t){super(t,0,t.fields.map(t=>Yn.new(t.type,0,0,0)))}}class Kl extends ze{constructor(){super(...arguments),this.dictionaries=new Map}static collect(t){return(new Kl).visit(t.data,new Un(t.schema.fields)).dictionaries}visit(t,e){return un.isDictionary(e)?this.visitDictionary(t,e):(t.childData.forEach((t,n)=>this.visit(t,e.children[n].type)),this)}visitDictionary(t,e){const n=t.dictionary;return n&&n.length>0&&this.dictionaries.set(e.id,n),this}}class Gl extends rt{constructor(t){super(),this._impl=t}get closed(){return this._impl.closed}get schema(){return this._impl.schema}get autoDestroy(){return this._impl.autoDestroy}get dictionaries(){return this._impl.dictionaries}get numDictionaries(){return this._impl.numDictionaries}get numRecordBatches(){return this._impl.numRecordBatches}get footer(){return this._impl.isFile()?this._impl.footer:null}isSync(){return this._impl.isSync()}isAsync(){return this._impl.isAsync()}isFile(){return this._impl.isFile()}isStream(){return this._impl.isStream()}next(){return this._impl.next()}throw(t){return this._impl.throw(t)}return(t){return this._impl.return(t)}cancel(){return this._impl.cancel()}reset(t){return this._impl.reset(t),this._DOMStream=void 0,this._nodeStream=void 0,this}open(t){const e=this._impl.open(t);return yt(e)?e.then(()=>this):this}readRecordBatch(t){return this._impl.isFile()?this._impl.readRecordBatch(t):null}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}toDOMStream(){return fe.toDOMStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this})}toNodeStream(){return fe.toNodeStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this},{objectMode:!0})}static throughNode(t){throw new Error('"throughNode" not available in this environment')}static throughDOM(t,e){throw new Error('"throughDOM" not available in this environment')}static from(t){return t instanceof Gl?t:mt(t)?ch(t):_t(t)?hh(t):yt(t)?(async()=>await Gl.from(await t))():wt(t)||St(t)||Tt(t)||gt(t)?lh(new co(t)):uh(new ao(t))}static readAll(t){return t instanceof Gl?t.isSync()?oh(t):ah(t):mt(t)||ArrayBuffer.isView(t)||bt(t)||vt(t)?oh(t):ah(t)}}class ql extends Gl{constructor(t){super(t),this._impl=t}[Symbol.iterator](){return this._impl[Symbol.iterator]()}async*[Symbol.asyncIterator](){yield*this[Symbol.iterator]()}}class Jl extends Gl{constructor(t){super(t),this._impl=t}[Symbol.iterator](){throw new Error("AsyncRecordBatchStreamReader is not Iterable")}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}}class Zl extends ql{constructor(t){super(t),this._impl=t}}class Xl extends Jl{constructor(t){super(t),this._impl=t}}class Ql{constructor(t=new Map){this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=t}get numDictionaries(){return this._dictionaryIndex}get numRecordBatches(){return this._recordBatchIndex}isSync(){return!1}isAsync(){return!1}isFile(){return!1}isStream(){return!1}reset(t){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=t,this.dictionaries=new Map,this}_loadRecordBatch(t,e){return new Wl(this.schema,t.length,this._loadVectors(t,e,this.schema.fields))}_loadDictionaryBatch(t,e){const{id:n,isDelta:r,data:i}=t,{dictionaries:s,schema:o}=this,a=s.get(n);if(r||!a){const t=o.dictionaries.get(n);return a&&r?a.concat(we.new(this._loadVectors(i,e,[t])[0])):we.new(this._loadVectors(i,e,[t])[0])}return a}_loadVectors(t,e,n){return new Io(e,t.nodes,t.buffers,this.dictionaries).visitMany(n)}}class th extends Ql{constructor(t,e){super(e),this._reader=mt(t)?new Za(this._handle=t):new qa(this._handle=t)}isSync(){return!0}isStream(){return!0}[Symbol.iterator](){return this}cancel(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}open(t){return this.closed||(this.autoDestroy=sh(this,t),this.schema||(this.schema=this._reader.readSchema())||this.cancel()),this}throw(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(t):et}return(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(t):et}next(){if(this.closed)return et;let t,{_reader:e}=this;while(t=this._readNextMessageAndValidate())if(t.isSchema())this.reset(t.header());else{if(t.isRecordBatch()){this._recordBatchIndex++;const n=t.header(),r=e.readMessageBody(t.bodyLength),i=this._loadRecordBatch(n,r);return{done:!1,value:i}}if(t.isDictionaryBatch()){this._dictionaryIndex++;const n=t.header(),r=e.readMessageBody(t.bodyLength),i=this._loadDictionaryBatch(n,r);this.dictionaries.set(n.id,i)}}return this.schema&&0===this._recordBatchIndex?(this._recordBatchIndex++,{done:!1,value:new Hl(this.schema)}):this.return()}_readNextMessageAndValidate(t){return this._reader.readMessage(t)}}class eh extends Ql{constructor(t,e){super(e),this._reader=new Ja(this._handle=t)}isAsync(){return!0}isStream(){return!0}[Symbol.asyncIterator](){return this}async cancel(){!this.closed&&(this.closed=!0)&&(await this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}async open(t){return this.closed||(this.autoDestroy=sh(this,t),this.schema||(this.schema=await this._reader.readSchema())||await this.cancel()),this}async throw(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?await this.reset()._reader.throw(t):et}async return(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?await this.reset()._reader.return(t):et}async next(){if(this.closed)return et;let t,{_reader:e}=this;while(t=await this._readNextMessageAndValidate())if(t.isSchema())await this.reset(t.header());else{if(t.isRecordBatch()){this._recordBatchIndex++;const n=t.header(),r=await e.readMessageBody(t.bodyLength),i=this._loadRecordBatch(n,r);return{done:!1,value:i}}if(t.isDictionaryBatch()){this._dictionaryIndex++;const n=t.header(),r=await e.readMessageBody(t.bodyLength),i=this._loadDictionaryBatch(n,r);this.dictionaries.set(n.id,i)}}return this.schema&&0===this._recordBatchIndex?(this._recordBatchIndex++,{done:!1,value:new Hl(this.schema)}):await this.return()}async _readNextMessageAndValidate(t){return await this._reader.readMessage(t)}}class nh extends th{constructor(t,e){super(t instanceof ho?t:new ho(t),e)}get footer(){return this._footer}get numDictionaries(){return this._footer?this._footer.numDictionaries:0}get numRecordBatches(){return this._footer?this._footer.numRecordBatches:0}isSync(){return!0}isFile(){return!0}open(t){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;for(const t of this._footer.dictionaryBatches())t&&this._readDictionaryBatch(this._dictionaryIndex++)}return super.open(t)}readRecordBatch(t){if(this.closed)return null;this._footer||this.open();const e=this._footer&&this._footer.getRecordBatch(t);if(e&&this._handle.seek(e.offset)){const t=this._reader.readMessage(Fe.RecordBatch);if(t&&t.isRecordBatch()){const e=t.header(),n=this._reader.readMessageBody(t.bodyLength),r=this._loadRecordBatch(e,n);return r}}return null}_readDictionaryBatch(t){const e=this._footer&&this._footer.getDictionaryBatch(t);if(e&&this._handle.seek(e.offset)){const t=this._reader.readMessage(Fe.DictionaryBatch);if(t&&t.isDictionaryBatch()){const e=t.header(),n=this._reader.readMessageBody(t.bodyLength),r=this._loadDictionaryBatch(e,n);this.dictionaries.set(e.id,r)}}}_readFooter(){const{_handle:t}=this,e=t.size-rc,n=t.readInt32(e),r=t.readAt(e-n,n);return ro.decode(r)}_readNextMessageAndValidate(t){if(this._footer||this.open(),this._footer&&this._recordBatchIndex=4?ec(e)?new Zl(new nh(t.read())):new ql(new th(t)):new ql(new th(function*(){}()))}async function lh(t){const e=await t.peek(nc+7&-8);return e&&e.byteLength>=4?ec(e)?new Zl(new nh(await t.read())):new Jl(new eh(t)):new Jl(new eh(async function*(){}()))}async function hh(t){const{size:e}=await t.stat(),n=new fo(t,e);return e>=ic&&ec(await n.readAt(0,nc+7&-8))?new Xl(new rh(n)):new Jl(new eh(n))}function fh(t,e){if(gt(t))return ph(t,e);if(bt(t))return dh(t,e);throw new Error("toDOMStream() must be called with an Iterable or AsyncIterable")}function dh(t,e){let n=null;const r=e&&"bytes"===e.type||!1,i=e&&e.highWaterMark||2**24;return new ReadableStream({...e,start(e){s(e,n||(n=t[Symbol.iterator]()))},pull(t){n?s(t,n):t.close()},cancel(){n&&n.return&&n.return(),n=null}},{highWaterMark:r?i:void 0,...e});function s(t,e){let n,i=null,s=t.desiredSize||null;while(!(i=e.next(r?s:null)).done)if(ArrayBuffer.isView(i.value)&&(n=Ct(i.value))&&(null!=s&&r&&(s=s-n.byteLength+1),i.value=n),t.enqueue(i.value),null!=s&&--s<=0)return;t.close()}}function ph(t,e){let n=null;const r=e&&"bytes"===e.type||!1,i=e&&e.highWaterMark||2**24;return new ReadableStream({...e,async start(e){await s(e,n||(n=t[Symbol.asyncIterator]()))},async pull(t){n?await s(t,n):t.close()},async cancel(){n&&n.return&&await n.return(),n=null}},{highWaterMark:r?i:void 0,...e});async function s(t,e){let n,i=null,s=t.desiredSize||null;while(!(i=await e.next(r?s:null)).done)if(ArrayBuffer.isView(i.value)&&(n=Ct(i.value))&&(null!=s&&r&&(s=s-n.byteLength+1),i.value=n),t.enqueue(i.value),null!=s&&--s<=0)return;t.close()}}function yh(t){return new bh(t)}class bh{constructor(t){this._numChunks=0,this._finished=!1,this._bufferedSize=0;const{["readableStrategy"]:e,["writableStrategy"]:n,["queueingStrategy"]:r="count",...i}=t;this._controller=null,this._builder=nr.new(i),this._getSize="bytes"!==r?gh:mh;const{["highWaterMark"]:s=("bytes"===r?16384:1e3)}={...e},{["highWaterMark"]:o=("bytes"===r?16384:1e3)}={...n};this["readable"]=new ReadableStream({["cancel"]:()=>{this._builder.clear()},["pull"]:t=>{this._maybeFlush(this._builder,this._controller=t)},["start"]:t=>{this._maybeFlush(this._builder,this._controller=t)}},{highWaterMark:s,size:"bytes"!==r?gh:mh}),this["writable"]=new WritableStream({["abort"]:()=>{this._builder.clear()},["write"]:()=>{this._maybeFlush(this._builder,this._controller)},["close"]:()=>{this._maybeFlush(this._builder.finish(),this._controller)}},{highWaterMark:o,size:t=>this._writeValueAndReturnChunkSize(t)})}_writeValueAndReturnChunkSize(t){const e=this._bufferedSize;return this._bufferedSize=this._getSize(this._builder.append(t)),this._bufferedSize-e}_maybeFlush(t,e){null!==e&&(this._bufferedSize>=e.desiredSize&&++this._numChunks&&this._enqueue(e,t.toVector()),t.finished&&((t.length>0||0===this._numChunks)&&++this._numChunks&&this._enqueue(e,t.toVector()),!this._finished&&(this._finished=!0)&&this._enqueue(e,null)))}_enqueue(t,e){this._bufferedSize=0,this._controller=null,null===e?t.close():t.enqueue(e)}}const gh=t=>t.length,mh=t=>t.byteLength;function vh(t,e){const n=new oo;let r=null;const i=new ReadableStream({async cancel(){await n.close()},async start(t){await o(t,r||(r=await s()))},async pull(t){r?await o(t,r):t.close()}});return{writable:new WritableStream(n,{highWaterMark:16384,...t}),readable:i};async function s(){return await(await Gl.from(n)).open(e)}async function o(t,e){let n=t.desiredSize,r=null;while(!(r=await e.next()).done)if(t.enqueue(r.value),null!=n&&--n<=0)return;t.close()}}function _h(t,e){const n=new this(t),r=new co(n),i=new ReadableStream({type:"bytes",async cancel(){await r.cancel()},async pull(t){await s(t)},async start(t){await s(t)}},{highWaterMark:16384,...e});return{writable:new WritableStream(n,t),readable:i};async function s(t){let e=null,n=t.desiredSize;while(e=await r.read(n||null))if(t.enqueue(e),null!=n&&(n-=e.byteLength)<=0)return;t.close()}}class wh{eq(t){return t instanceof wh||(t=new Ih(t)),new jh(this,t)}le(t){return t instanceof wh||(t=new Ih(t)),new Dh(this,t)}ge(t){return t instanceof wh||(t=new Ih(t)),new Fh(this,t)}lt(t){return new Lh(this.ge(t))}gt(t){return new Lh(this.le(t))}ne(t){return new Lh(this.eq(t))}}class Ih extends wh{constructor(t){super(),this.v=t}}class Sh extends wh{constructor(t){super(),this.name=t}bind(t){if(!this.colidx){this.colidx=-1;const e=t.schema.fields;for(let t=-1;++te.get(t)}}class Oh{and(...t){return new xh(this,...t)}or(...t){return new Bh(this,...t)}not(){return new Lh(this)}}class Th extends Oh{constructor(t,e){super(),this.left=t,this.right=e}bind(t){return this.left instanceof Ih?this.right instanceof Ih?this._bindLitLit(t,this.left,this.right):this._bindLitCol(t,this.left,this.right):this.right instanceof Ih?this._bindColLit(t,this.left,this.right):this._bindColCol(t,this.left,this.right)}}class Ah extends Oh{constructor(...t){super(),this.children=t}}Ah.prototype.children=Object.freeze([]);class xh extends Ah{constructor(...t){t=t.reduce((t,e)=>t.concat(e instanceof xh?e.children:e),[]),super(...t)}bind(t){const e=this.children.map(e=>e.bind(t));return(t,n)=>e.every(e=>e(t,n))}}class Bh extends Ah{constructor(...t){t=t.reduce((t,e)=>t.concat(e instanceof Bh?e.children:e),[]),super(...t)}bind(t){const e=this.children.map(e=>e.bind(t));return(t,n)=>e.some(e=>e(t,n))}}class jh extends Th{_bindLitLit(t,e,n){const r=e.v==n.v;return()=>r}_bindColCol(t,e,n){const r=e.bind(t),i=n.bind(t);return(t,e)=>r(t,e)==i(t,e)}_bindColLit(t,e,n){const r=e.bind(t);if(e.vector instanceof Lc){let t;const r=e.vector;return r.dictionary!==this.lastDictionary?(t=r.reverseLookup(n.v),this.lastDictionary=r.dictionary,this.lastKey=t):t=this.lastKey,-1===t?()=>!1:e=>r.getKey(e)===t}return(t,e)=>r(t,e)==n.v}_bindLitCol(t,e,n){return this._bindColLit(t,n,e)}}class Dh extends Th{_bindLitLit(t,e,n){const r=e.v<=n.v;return()=>r}_bindColCol(t,e,n){const r=e.bind(t),i=n.bind(t);return(t,e)=>r(t,e)<=i(t,e)}_bindColLit(t,e,n){const r=e.bind(t);return(t,e)=>r(t,e)<=n.v}_bindLitCol(t,e,n){const r=n.bind(t);return(t,n)=>e.v<=r(t,n)}}class Fh extends Th{_bindLitLit(t,e,n){const r=e.v>=n.v;return()=>r}_bindColCol(t,e,n){const r=e.bind(t),i=n.bind(t);return(t,e)=>r(t,e)>=i(t,e)}_bindColLit(t,e,n){const r=e.bind(t);return(t,e)=>r(t,e)>=n.v}_bindLitCol(t,e,n){const r=n.bind(t);return(t,n)=>e.v>=r(t,n)}}class Lh extends Oh{constructor(t){super(),this.child=t}bind(t){const e=this.child.bind(t);return(t,n)=>!e(t,n)}}zl.prototype.countBy=function(t){return new Eh(this.chunks).countBy(t)},zl.prototype.scan=function(t,e){return new Eh(this.chunks).scan(t,e)},zl.prototype.scanReverse=function(t,e){return new Eh(this.chunks).scanReverse(t,e)},zl.prototype.filter=function(t){return new Eh(this.chunks).filter(t)};class Eh extends zl{filter(t){return new Uh(this.chunks,t)}scan(t,e){const n=this.chunks,r=n.length;for(let i=-1;++i=0;){const r=n[i];e&&e(r);for(let e=r.length;--e>=0;)t(e,r)}}countBy(t){const e=this.chunks,n=e.length,r="string"===typeof t?new Sh(t):t;r.bind(e[n-1]);const i=r.vector;if(!un.isDictionary(i.type))throw new Error("countBy currently only supports dictionary-encoded columns");const s=Math.ceil(Math.log(i.length)/Math.log(256)),o=4==s?Uint32Array:s>=2?Uint16Array:Uint8Array,a=new o(i.dictionary.length);for(let c=-1;++c=0;){const r=n[i],s=this._predicate.bind(r);let o=!1;for(let n=r.length;--n>=0;)s(n,r)&&(e&&!o&&(e(r),o=!0),t(n,r))}}count(){let t=0;const e=this._chunks,n=e.length;for(let r=-1;++r=2?Uint16Array:Uint8Array,a=new o(i.dictionary.length);for(let c=-1;++c=i.headerRows&&e=i.headerColumns;if(n){var o=["blank"];return e>0&&o.push("level"+t),{type:"blank",classNames:o.join(" "),content:""}}if(s){var a=e-i.headerColumns;o=["col_heading","level"+t,"col"+a];return{type:"columns",classNames:o.join(" "),content:i.getContent(i.columnsTable,a,t)}}if(r){var c=t-i.headerRows;o=["row_heading","level"+e,"row"+c];return{type:"index",id:"T_"+i.uuid+"level"+e+"_row"+c,classNames:o.join(" "),content:i.getContent(i.indexTable,c,e)}}c=t-i.headerRows,a=e-i.headerColumns,o=["data","row"+c,"col"+a];var u=i.styler?i.getContent(i.styler.displayValuesTable,c,a):i.getContent(i.dataTable,c,a);return{type:"data",id:"T_"+i.uuid+"row"+c+"_col"+a,classNames:o.join(" "),content:u}},this.getContent=function(t,e,n){var r=t.getColumnAt(n);if(null===r)return"";var s=i.getColumnTypeId(t,n);switch(s){case Oe.Timestamp:return i.nanosToDate(r.get(e));default:return r.get(e)}},this.dataTable=zl.from(t),this.indexTable=zl.from(e),this.columnsTable=zl.from(n),this.styler=r?{caption:r.caption,displayValuesTable:zl.from(r.displayValues),styles:r.styles,uuid:r.uuid}:void 0}return Object.defineProperty(t.prototype,"rows",{get:function(){return this.indexTable.length+this.columnsTable.numCols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this.indexTable.numCols+this.columnsTable.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerRows",{get:function(){return this.rows-this.dataRows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerColumns",{get:function(){return this.columns-this.dataColumns},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataRows",{get:function(){return this.dataTable.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataColumns",{get:function(){return this.dataTable.numCols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"uuid",{get:function(){return this.styler&&this.styler.uuid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"caption",{get:function(){return this.styler&&this.styler.caption},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"styles",{get:function(){return this.styler&&this.styler.styles},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"table",{get:function(){return this.dataTable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"index",{get:function(){return this.indexTable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTable",{get:function(){return this.columnsTable},enumerable:!0,configurable:!0}),t.prototype.serialize=function(){return{data:this.dataTable.serialize(),index:this.indexTable.serialize(),columns:this.columnsTable.serialize()}},t.prototype.getColumnTypeId=function(t,e){return t.schema.fields[e].type.typeId},t.prototype.nanosToDate=function(t){return new Date(t/1e6)},t}(),kh=function(){return kh=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0?t.argsDataframeToObject(e["dfs"]):{};n=kh(kh({},n),r);var i=Boolean(e["disabled"]),s=e["theme"];s&&Rh(s);var o={disabled:i,args:n,theme:s},a=new CustomEvent(t.RENDER_EVENT,{detail:o});t.events.dispatchEvent(a)},t.argsDataframeToObject=function(e){var n=e.map((function(e){var n=e.key,r=e.value;return[n,t.toArrowTable(r)]}));return Object.fromEntries(n)},t.toArrowTable=function(t){var e=t.data,n=e.data,r=e.index,i=e.columns,s=e.styler;return new Nh(n,r,i,s)},t.sendBackMsg=function(t,e){window.parent.postMessage(kh({isStreamlitMessage:!0,type:t},e),"*")},t}(),Rh=function(t){var e=document.createElement("style");document.head.appendChild(e),e.innerHTML="\n :root {\n --primary-color: "+t.primaryColor+";\n --background-color: "+t.backgroundColor+";\n --secondary-background-color: "+t.secondaryBackgroundColor+";\n --text-color: "+t.textColor+";\n --font: "+t.font+";\n }\n\n body {\n background-color: var(--background-color);\n color: var(--text-color);\n }\n "};function Ph(t){var e=!1;try{e=t instanceof BigInt64Array||t instanceof BigUint64Array}catch(n){}return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array||e} +/** + * @license + * Copyright 2018-2021 Streamlit Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var zh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},t(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}zh(e,t),e.prototype.componentDidMount=function(){Vh.setFrameHeight()},e.prototype.componentDidUpdate=function(){Vh.setFrameHeight()}})(l.a.PureComponent)},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,s=i&&!r.call({1:2},1);e.f=s?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},d2bb:function(t,e,n){var r=n("825a"),i=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(s){}return function(n,s){return r(n),i(s),e?t.call(n,s):n.__proto__=s,n}}():void 0)},d44e:function(t,e,n){var r=n("9bf2").f,i=n("5135"),s=n("b622"),o=s("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},da6a:function(t,e,n){"use strict";var r=n("4cec"),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function u(t){return r.isMemo(t)?a:c[t["$$typeof"]]||i}c[r.ForwardRef]=o,c[r.Memo]=a;var l=Object.defineProperty,h=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,y=Object.prototype;function b(t,e,n){if("string"!==typeof e){if(y){var r=p(e);r&&r!==y&&b(t,r,n)}var i=h(e);f&&(i=i.concat(f(e)));for(var o=u(t),a=u(e),c=0;c=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),s.Arguments=s.Array,i("keys"),i("values"),i("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,i,s,o,a=n("23e7"),c=n("c430"),u=n("da84"),l=n("d066"),h=n("fea9"),f=n("6eeb"),d=n("e2cc"),p=n("d44e"),y=n("2626"),b=n("861d"),g=n("1c0b"),m=n("19aa"),v=n("c6b6"),_=n("8925"),w=n("2266"),I=n("1c7e"),S=n("4840"),O=n("2cf4").set,T=n("b575"),A=n("cdf9"),x=n("44de"),B=n("f069"),j=n("e667"),D=n("69f3"),F=n("94ca"),L=n("b622"),E=n("2d00"),M=L("species"),U="Promise",C=D.get,N=D.set,k=D.getterFor(U),V=h,R=u.TypeError,P=u.document,z=u.process,$=l("fetch"),Y=B.f,W=Y,H="process"==v(z),K=!!(P&&P.createEvent&&u.dispatchEvent),G="unhandledrejection",q="rejectionhandled",J=0,Z=1,X=2,Q=1,tt=2,et=F(U,(function(){var t=_(V)!==String(V);if(!t){if(66===E)return!0;if(!H&&"function"!=typeof PromiseRejectionEvent)return!0}if(c&&!V.prototype["finally"])return!0;if(E>=51&&/native code/.test(V))return!1;var e=V.resolve(1),n=function(t){t((function(){}),(function(){}))},r=e.constructor={};return r[M]=n,!(e.then((function(){}))instanceof n)})),nt=et||!I((function(t){V.all(t)["catch"]((function(){}))})),rt=function(t){var e;return!(!b(t)||"function"!=typeof(e=t.then))&&e},it=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;T((function(){var i=e.value,s=e.state==Z,o=0;while(r.length>o){var a,c,u,l=r[o++],h=s?l.ok:l.fail,f=l.resolve,d=l.reject,p=l.domain;try{h?(s||(e.rejection===tt&&ct(t,e),e.rejection=Q),!0===h?a=i:(p&&p.enter(),a=h(i),p&&(p.exit(),u=!0)),a===l.promise?d(R("Promise-chain cycle")):(c=rt(a))?c.call(a,f,d):f(a)):d(i)}catch(y){p&&!u&&p.exit(),d(y)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&ot(t,e)}))}},st=function(t,e,n){var r,i;K?(r=P.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},(i=u["on"+t])?i(r):t===G&&x("Unhandled promise rejection",n)},ot=function(t,e){O.call(u,(function(){var n,r=e.value,i=at(e);if(i&&(n=j((function(){H?z.emit("unhandledRejection",r,t):st(G,t,r)})),e.rejection=H||at(e)?tt:Q,n.error))throw n.value}))},at=function(t){return t.rejection!==Q&&!t.parent},ct=function(t,e){O.call(u,(function(){H?z.emit("rejectionHandled",t):st(q,t,e.value)}))},ut=function(t,e,n,r){return function(i){t(e,n,i,r)}},lt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=X,it(t,e,!0))},ht=function(t,e,n,r){if(!e.done){e.done=!0,r&&(e=r);try{if(t===n)throw R("Promise can't be resolved itself");var i=rt(n);i?T((function(){var r={done:!1};try{i.call(n,ut(ht,t,r,e),ut(lt,t,r,e))}catch(s){lt(t,r,s,e)}})):(e.value=n,e.state=Z,it(t,e,!1))}catch(s){lt(t,{done:!1},s,e)}}};et&&(V=function(t){m(this,V,U),g(t),r.call(this);var e=C(this);try{t(ut(ht,this,e),ut(lt,this,e))}catch(n){lt(this,e,n)}},r=function(t){N(this,{type:U,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=d(V.prototype,{then:function(t,e){var n=k(this),r=Y(S(this,V));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=H?z.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&it(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r,e=C(t);this.promise=t,this.resolve=ut(ht,t,e),this.reject=ut(lt,t,e)},B.f=Y=function(t){return t===V||t===s?new i(t):W(t)},c||"function"!=typeof h||(o=h.prototype.then,f(h.prototype,"then",(function(t,e){var n=this;return new V((function(t,e){o.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof $&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return A(V,$.apply(u,arguments))}}))),a({global:!0,wrap:!0,forced:et},{Promise:V}),p(V,U,!1,!0),y(U),s=l(U),a({target:U,stat:!0,forced:et},{reject:function(t){var e=Y(this);return e.reject.call(void 0,t),e.promise}}),a({target:U,stat:!0,forced:c||et},{resolve:function(t){return A(c&&this===s?V:this,t)}}),a({target:U,stat:!0,forced:nt},{all:function(t){var e=this,n=Y(e),r=n.resolve,i=n.reject,s=j((function(){var n=g(e.resolve),s=[],o=0,a=1;w(t,(function(t){var c=o++,u=!1;s.push(void 0),a++,n.call(e,t).then((function(t){u||(u=!0,s[c]=t,--a||r(s))}),i)})),--a||r(s)}));return s.error&&i(s.value),n.promise},race:function(t){var e=this,n=Y(e),r=n.reject,i=j((function(){var i=g(e.resolve);w(t,(function(t){i.call(e,t).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),i=n("56ef"),s=n("06cf"),o=n("9bf2");t.exports=function(t,e){for(var n=i(e),a=o.f,c=s.f,u=0;u= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","import { pauseTracking, resetTracking, isRef, toRaw, isProxy, shallowReactive, trigger, effect, stop, isReactive, reactive, shallowReadonly, track, proxyRefs, computed as computed$1, ref } from '@vue/reactivity';\nexport { customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, extend, isModelListener, isOn, camelize, capitalize, EMPTY_ARR, normalizeClass, isObject, normalizeStyle, EMPTY_OBJ, hyphenate, hasOwn, def, isReservedProp, toRawType, makeMap, remove, invokeArrayFns, NO, getGlobalThis, NOOP, hasChanged, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, toDisplayString } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo)) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode);\r\n}\r\nfunction logError(err, type, contextVNode) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev so it's more noticeable\r\n throw err;\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nconst queue = [];\r\nconst postFlushCbs = [];\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nlet flushIndex = -1;\r\nlet pendingPostFlushCbs = null;\r\nlet pendingPostFlushIndex = 0;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(fn) : p;\r\n}\r\nfunction queueJob(job) {\r\n if (!queue.includes(job, flushIndex + 1)) {\r\n queue.push(job);\r\n queueFlush();\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > -1) {\r\n queue[i] = null;\r\n }\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n if (!isArray(cb)) {\r\n if (!pendingPostFlushCbs ||\r\n !pendingPostFlushCbs.includes(cb, pendingPostFlushIndex + 1)) {\r\n postFlushCbs.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip dupicate check here to improve perf\r\n postFlushCbs.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (postFlushCbs.length) {\r\n pendingPostFlushCbs = [...new Set(postFlushCbs)];\r\n postFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (pendingPostFlushIndex = 0; pendingPostFlushIndex < pendingPostFlushCbs.length; pendingPostFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, pendingPostFlushCbs[pendingPostFlushIndex]);\r\n }\r\n pendingPostFlushCbs[pendingPostFlushIndex]();\r\n }\r\n pendingPostFlushCbs = null;\r\n pendingPostFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => (job.id == null ? Infinity : job.id);\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n // Jobs can never be null before flush starts, since they are only invalidated\r\n // during execution of another flushed job.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, job);\r\n }\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n flushIndex = -1;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || postFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n throw new Error('Maximum recursive updates exceeded. ' +\r\n \"You may have code that is mutating state in your component's \" +\r\n 'render function or updated hook or watcher source function.');\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id);\r\n record = map.get(id);\r\n }\r\n record.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).delete(instance);\r\n}\r\nfunction createRecord(id) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, new Set());\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record).forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record).forEach(instance => {\r\n const comp = instance.type;\r\n if (!hmrDirtyComponents.has(comp)) {\r\n // 1. Update existing comp definition to match new one\r\n extend(comp, newComp);\r\n for (const key in comp) {\r\n if (!(key in newComp)) {\r\n delete comp[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(comp);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(comp);\r\n });\r\n }\r\n if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n });\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\n// mark the current rendering instance for asset resolution (e.g.\r\n// resolveComponent, resolveDirective) during render\r\nlet currentRenderingInstance = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n currentRenderingInstance = instance;\r\n}\r\n// dev only flag to track whether $attrs was used during render.\r\n// If $attrs was used during render then the warning for failed attrs\r\n// fallthrough can be suppressed.\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, parent, vnode, proxy, withProxy, props, slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance;\r\n let result;\r\n currentRenderingInstance = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (Component.inheritAttrs !== false && fallthroughAttrs) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & 1 /* ELEMENT */ ||\r\n shapeFlag & 6 /* COMPONENT */) {\r\n if (shapeFlag & 1 /* ELEMENT */ && keys.some(isModelListener)) {\r\n // #1643, #1543\r\n // component v-model listeners should only fallthrough for component\r\n // HOCs\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit scopeId\r\n const scopeId = vnode.scopeId;\r\n // vite#536: if subtree root is created from parent slot if would already\r\n // have the correct scopeId, in this case adding the scopeId will cause\r\n // it to be removed if the original slot vnode is reused.\r\n const needScopeId = scopeId && root.scopeId !== scopeId;\r\n const treeOwnerId = parent && parent.type.__scopeId;\r\n const slotScopeId = treeOwnerId && treeOwnerId !== scopeId ? treeOwnerId + '-s' : null;\r\n if (needScopeId || slotScopeId) {\r\n const extras = {};\r\n if (needScopeId)\r\n extras[scopeId] = '';\r\n if (slotScopeId)\r\n extras[slotScopeId] = '';\r\n root = cloneVNode(root, extras);\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n }\r\n catch (err) {\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n currentRenderingInstance = null;\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n */\r\nconst getChildRoot = (vnode) => {\r\n if (vnode.type !== Fragment) {\r\n return [vnode, undefined];\r\n }\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const children = rawChildren.filter(child => {\r\n return !(isVNode(child) &&\r\n child.type === Comment &&\r\n child.children !== 'v-if');\r\n });\r\n if (children.length !== 1) {\r\n return [vnode, undefined];\r\n }\r\n const childRoot = children[0];\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (dynamicChildren && updatedRoot.patchFlag > 0) {\r\n dynamicChildren.push(updatedRoot);\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & 6 /* COMPONENT */ ||\r\n vnode.shapeFlag & 1 /* ELEMENT */ ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag > 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key]) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = ( SuspenseImpl\r\n );\r\nfunction mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (n2.suspense = createSuspenseBoundary(n2, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, suspense.subTree, hiddenContainer, null, parentComponent, suspense, isSVG, optimized);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // mount the fallback tree\r\n patch(null, suspense.fallbackTree, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, optimized);\r\n n2.el = suspense.fallbackTree.el;\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, optimized, { p: patch }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n const { content, fallback } = normalizeSuspenseChildren(n2);\r\n const oldSubTree = suspense.subTree;\r\n const oldFallbackTree = suspense.fallbackTree;\r\n if (!suspense.isResolved) {\r\n patch(oldSubTree, content, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, optimized);\r\n if (suspense.deps > 0) {\r\n // still pending. patch the fallback tree.\r\n patch(oldFallbackTree, fallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, optimized);\r\n n2.el = fallback.el;\r\n }\r\n // If deps somehow becomes 0 after the patch it means the patch caused an\r\n // async dep component to unmount and removed its dep. It will cause the\r\n // suspense to resolve and we don't need to do anything here.\r\n }\r\n else {\r\n // just normal patch inner content as a fragment\r\n patch(oldSubTree, content, container, anchor, parentComponent, suspense, isSVG, optimized);\r\n n2.el = content.el;\r\n }\r\n suspense.subTree = content;\r\n suspense.fallbackTree = fallback;\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode } } = rendererInternals;\r\n const getCurrentTree = () => suspense.isResolved || suspense.isHydrating\r\n ? suspense.subTree\r\n : suspense.fallbackTree;\r\n const { content, fallback } = normalizeSuspenseChildren(vnode);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n optimized,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n subTree: content,\r\n fallbackTree: fallback,\r\n isHydrating,\r\n isResolved: false,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve() {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (suspense.isResolved) {\r\n throw new Error(`resolveSuspense() is called on an already resolved suspense boundary.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`resolveSuspense() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, subTree, fallbackTree, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else {\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount fallback tree\r\n if (fallbackTree.el) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(fallbackTree);\r\n unmount(fallbackTree, parentComponent, suspense, true);\r\n }\r\n // move content from off-dom container to actual container\r\n move(subTree, container, anchor, 0 /* ENTER */);\r\n }\r\n const el = (vnode.el = subTree.el);\r\n // suspense as the root node of a component...\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (!parent.isResolved) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.isResolved = true;\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n const onResolve = vnode.props && vnode.props.onResolve;\r\n if (isFunction(onResolve)) {\r\n onResolve();\r\n }\r\n },\r\n recede() {\r\n suspense.isResolved = false;\r\n const { vnode, subTree, fallbackTree, parentComponent, container, hiddenContainer, isSVG, optimized } = suspense;\r\n // move content tree back to the off-dom container\r\n const anchor = next(subTree);\r\n move(subTree, hiddenContainer, null, 1 /* LEAVE */);\r\n // remount the fallback tree\r\n patch(null, fallbackTree, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, optimized);\r\n const el = (vnode.el = fallbackTree.el);\r\n // suspense as the root node of a component...\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n // invoke @recede event\r\n const onRecede = vnode.props && vnode.props.onRecede;\r\n if (isFunction(onRecede)) {\r\n onRecede();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n move(getCurrentTree(), container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return next(getCurrentTree());\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n // suspense is already resolved, need to recede.\r\n // use queueJob so it's handled synchronously after patching the current\r\n // suspense tree\r\n if (suspense.isResolved) {\r\n queueJob(() => {\r\n suspense.recede();\r\n });\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n suspense.deps++;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted || suspense.isUnmounted) {\r\n return;\r\n }\r\n suspense.deps--;\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n hydratedEl\r\n ? parentNode(hydratedEl)\r\n : parentNode(instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n unmount(suspense.subTree, parentComponent, parentSuspense, doRemove);\r\n if (!suspense.isResolved) {\r\n unmount(suspense.fallbackTree, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, suspense.subTree, parentComponent, suspense, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n if (shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const { default: d, fallback } = children;\r\n return {\r\n content: normalizeVNode(isFunction(d) ? d() : d),\r\n fallback: normalizeVNode(isFunction(fallback) ? fallback() : fallback)\r\n };\r\n }\r\n else {\r\n return {\r\n content: normalizeVNode(children),\r\n fallback: normalizeVNode(null)\r\n };\r\n }\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && !suspense.isResolved) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\n\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\r\n if (!ctx)\r\n return fn;\r\n return function renderFnWithContext() {\r\n const owner = currentRenderingInstance;\r\n setCurrentRenderingInstance(ctx);\r\n const res = fn.apply(null, arguments);\r\n setCurrentRenderingInstance(owner);\r\n return res;\r\n };\r\n}\n\n// SFC scoped style ID management.\r\nlet currentScopeId = null;\r\nconst scopeIdStack = [];\r\n/**\r\n * @private\r\n */\r\nfunction pushScopeId(id) {\r\n scopeIdStack.push((currentScopeId = id));\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n scopeIdStack.pop();\r\n currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction withScopeId(id) {\r\n return ((fn) => withCtx(function () {\r\n pushScopeId(id);\r\n const res = fn.apply(this, arguments);\r\n popScopeId();\r\n return res;\r\n }));\r\n}\n\nconst isTeleport = (type) => type.__isTeleport;\r\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');\r\nconst resolveTarget = (props, select) => {\r\n const targetSelector = props && props.to;\r\n if (isString(targetSelector)) {\r\n if (!select) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Current renderer does not support string target for Teleports. ` +\r\n `(missing querySelector renderer option)`);\r\n return null;\r\n }\r\n else {\r\n const target = select(targetSelector);\r\n if (!target) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Failed to locate Teleport target with selector \"${targetSelector}\". ` +\r\n `Note the target element must exist before the component is mounted - ` +\r\n `i.e. the target cannot be rendered by the component itself, and ` +\r\n `ideally should be outside of the entire Vue component tree.`);\r\n }\r\n return target;\r\n }\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && !targetSelector) {\r\n warn(`Invalid Teleport target: ${targetSelector}`);\r\n }\r\n return targetSelector;\r\n }\r\n};\r\nconst TeleportImpl = {\r\n __isTeleport: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals) {\r\n const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;\r\n const disabled = isTeleportDisabled(n2.props);\r\n const { shapeFlag, children } = n2;\r\n if (n1 == null) {\r\n // insert anchors in the main view\r\n const placeholder = (n2.el = (process.env.NODE_ENV !== 'production')\r\n ? createComment('teleport start')\r\n : createText(''));\r\n const mainAnchor = (n2.anchor = (process.env.NODE_ENV !== 'production')\r\n ? createComment('teleport end')\r\n : createText(''));\r\n insert(placeholder, container, anchor);\r\n insert(mainAnchor, container, anchor);\r\n const target = (n2.target = resolveTarget(n2.props, querySelector));\r\n const targetAnchor = (n2.targetAnchor = createText(''));\r\n if (target) {\r\n insert(targetAnchor, target);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid Teleport target on mount:', target, `(${typeof target})`);\r\n }\r\n const mount = (container, anchor) => {\r\n // Teleport *always* has Array children. This is enforced in both the\r\n // compiler and vnode children normalization.\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */) {\r\n mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n if (disabled) {\r\n mount(container, mainAnchor);\r\n }\r\n else if (target) {\r\n mount(target, targetAnchor);\r\n }\r\n }\r\n else {\r\n // update content\r\n n2.el = n1.el;\r\n const mainAnchor = (n2.anchor = n1.anchor);\r\n const target = (n2.target = n1.target);\r\n const targetAnchor = (n2.targetAnchor = n1.targetAnchor);\r\n const wasDisabled = isTeleportDisabled(n1.props);\r\n const currentContainer = wasDisabled ? container : target;\r\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\r\n if (n2.dynamicChildren) {\r\n // fast path when the teleport happens to be a block root\r\n patchBlockChildren(n1.dynamicChildren, n2.dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG);\r\n if (n2.patchFlag > 0 && n2.shapeFlag & 16 /* ARRAY_CHILDREN */) {\r\n const oldChildren = n1.children;\r\n const children = n2.children;\r\n for (let i = 0; i < children.length; i++) {\r\n children[i].el = oldChildren[i].el;\r\n }\r\n }\r\n }\r\n else if (!optimized) {\r\n patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG);\r\n }\r\n if (disabled) {\r\n if (!wasDisabled) {\r\n // enabled -> disabled\r\n // move into main container\r\n moveTeleport(n2, container, mainAnchor, internals, 1 /* TOGGLE */);\r\n }\r\n }\r\n else {\r\n // target changed\r\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\r\n const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));\r\n if (nextTarget) {\r\n moveTeleport(n2, nextTarget, null, internals, 0 /* TARGET_CHANGE */);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid Teleport target on update:', target, `(${typeof target})`);\r\n }\r\n }\r\n else if (wasDisabled) {\r\n // disabled -> enabled\r\n // move into teleport target\r\n moveTeleport(n2, target, targetAnchor, internals, 1 /* TOGGLE */);\r\n }\r\n }\r\n }\r\n },\r\n remove(vnode, { r: remove, o: { remove: hostRemove } }) {\r\n const { shapeFlag, children, anchor } = vnode;\r\n hostRemove(anchor);\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */) {\r\n for (let i = 0; i < children.length; i++) {\r\n remove(children[i]);\r\n }\r\n }\r\n },\r\n move: moveTeleport,\r\n hydrate: hydrateTeleport\r\n};\r\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* REORDER */) {\r\n // move target anchor if this is a target change.\r\n if (moveType === 0 /* TARGET_CHANGE */) {\r\n insert(vnode.targetAnchor, container, parentAnchor);\r\n }\r\n const { el, anchor, shapeFlag, children, props } = vnode;\r\n const isReorder = moveType === 2 /* REORDER */;\r\n // move main view anchor if this is a re-order.\r\n if (isReorder) {\r\n insert(el, container, parentAnchor);\r\n }\r\n // if this is a re-order and teleport is enabled (content is in target)\r\n // do not move children. So the opposite is: only move children if this\r\n // is not a reorder, or the teleport is disabled\r\n if (!isReorder || isTeleportDisabled(props)) {\r\n // Teleport has either Array children or no children.\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */) {\r\n for (let i = 0; i < children.length; i++) {\r\n move(children[i], container, parentAnchor, 2 /* REORDER */);\r\n }\r\n }\r\n }\r\n // move main view anchor if this is a re-order.\r\n if (isReorder) {\r\n insert(anchor, container, parentAnchor);\r\n }\r\n}\r\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {\r\n const target = (vnode.target = resolveTarget(vnode.props, querySelector));\r\n if (target) {\r\n // if multiple teleports rendered to the same target element, we need to\r\n // pick up from where the last teleport finished instead of the first node\r\n const targetNode = target._lpa || target.firstChild;\r\n if (vnode.shapeFlag & 16 /* ARRAY_CHILDREN */) {\r\n if (isTeleportDisabled(vnode.props)) {\r\n vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, optimized);\r\n vnode.targetAnchor = targetNode;\r\n }\r\n else {\r\n vnode.anchor = nextSibling(node);\r\n vnode.targetAnchor = hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, optimized);\r\n }\r\n target._lpa =\r\n vnode.targetAnchor && nextSibling(vnode.targetAnchor);\r\n }\r\n }\r\n return vnode.anchor && nextSibling(vnode.anchor);\r\n}\r\n// Force-casted public typing for h and TSX props inference\r\nconst Teleport = TeleportImpl;\n\nconst COMPONENTS = 'components';\r\nconst DIRECTIVES = 'directives';\r\n/**\r\n * @private\r\n */\r\nfunction resolveComponent(name) {\r\n return resolveAsset(COMPONENTS, name) || name;\r\n}\r\nconst NULL_DYNAMIC_COMPONENT = Symbol();\r\n/**\r\n * @private\r\n */\r\nfunction resolveDynamicComponent(component) {\r\n if (isString(component)) {\r\n return resolveAsset(COMPONENTS, component, false) || component;\r\n }\r\n else {\r\n // invalid types will fallthrough to createVNode and raise warning\r\n return (component || NULL_DYNAMIC_COMPONENT);\r\n }\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction resolveDirective(name) {\r\n return resolveAsset(DIRECTIVES, name);\r\n}\r\n// implementation\r\nfunction resolveAsset(type, name, warnMissing = true) {\r\n const instance = currentRenderingInstance || currentInstance;\r\n if (instance) {\r\n const Component = instance.type;\r\n // self name has highest priority\r\n if (type === COMPONENTS) {\r\n const selfName = Component.displayName || Component.name;\r\n if (selfName &&\r\n (selfName === name ||\r\n selfName === camelize(name) ||\r\n selfName === capitalize(camelize(name)))) {\r\n return Component;\r\n }\r\n }\r\n const res = \r\n // local registration\r\n resolve(Component[type], name) ||\r\n // global registration\r\n resolve(instance.appContext[type], name);\r\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\r\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}`);\r\n }\r\n return res;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\r\n `can only be used in render() or setup().`);\r\n }\r\n}\r\nfunction resolve(registry, name) {\r\n return (registry &&\r\n (registry[name] ||\r\n registry[camelize(name)] ||\r\n registry[capitalize(camelize(name))]));\r\n}\n\nconst Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);\r\nconst Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);\r\nconst Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);\r\nconst Static = Symbol((process.env.NODE_ENV !== 'production') ? 'Static' : undefined);\r\n// Since v-if and v-for are the two possible ways node structure can dynamically\r\n// change, once we consider v-if branches and each v-for fragment a block, we\r\n// can divide a template into nested blocks, and within each block the node\r\n// structure would be stable. This allows us to skip most children diffing\r\n// and only worry about the dynamic nodes (indicated by patch flags).\r\nconst blockStack = [];\r\nlet currentBlock = null;\r\n/**\r\n * Open a block.\r\n * This must be called before `createBlock`. It cannot be part of `createBlock`\r\n * because the children of the block are evaluated before `createBlock` itself\r\n * is called. The generated code typically looks like this:\r\n *\r\n * ```js\r\n * function render() {\r\n * return (openBlock(),createBlock('div', null, [...]))\r\n * }\r\n * ```\r\n * disableTracking is true when creating a v-for fragment block, since a v-for\r\n * fragment always diffs its children.\r\n *\r\n * @private\r\n */\r\nfunction openBlock(disableTracking = false) {\r\n blockStack.push((currentBlock = disableTracking ? null : []));\r\n}\r\n// Whether we should be tracking dynamic child nodes inside a block.\r\n// Only tracks when this value is > 0\r\n// We are not using a simple boolean because this value may need to be\r\n// incremented/decremented by nested usage of v-once (see below)\r\nlet shouldTrack = 1;\r\n/**\r\n * Block tracking sometimes needs to be disabled, for example during the\r\n * creation of a tree that needs to be cached by v-once. The compiler generates\r\n * code like this:\r\n *\r\n * ``` js\r\n * _cache[1] || (\r\n * setBlockTracking(-1),\r\n * _cache[1] = createVNode(...),\r\n * setBlockTracking(1),\r\n * _cache[1]\r\n * )\r\n * ```\r\n *\r\n * @private\r\n */\r\nfunction setBlockTracking(value) {\r\n shouldTrack += value;\r\n}\r\n/**\r\n * Create a block root vnode. Takes the same exact arguments as `createVNode`.\r\n * A block root keeps track of dynamic nodes within the block in the\r\n * `dynamicChildren` array.\r\n *\r\n * @private\r\n */\r\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\r\n const vnode = createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */);\r\n // save current block children on the block vnode\r\n vnode.dynamicChildren = currentBlock || EMPTY_ARR;\r\n // close block\r\n blockStack.pop();\r\n currentBlock = blockStack[blockStack.length - 1] || null;\r\n // a block is always going to be patched, so track it as a child of its\r\n // parent block\r\n if (currentBlock) {\r\n currentBlock.push(vnode);\r\n }\r\n return vnode;\r\n}\r\nfunction isVNode(value) {\r\n return value ? value.__v_isVNode === true : false;\r\n}\r\nfunction isSameVNodeType(n1, n2) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n n2.shapeFlag & 6 /* COMPONENT */ &&\r\n hmrDirtyComponents.has(n2.type)) {\r\n // HMR only: if the component has been hot-updated, force a reload.\r\n return false;\r\n }\r\n return n1.type === n2.type && n1.key === n2.key;\r\n}\r\nlet vnodeArgsTransformer;\r\n/**\r\n * Internal API for registering an arguments transform for createVNode\r\n * used for creating stubs in the test-utils\r\n * It is *internal* but needs to be exposed for test-utils to pick up proper\r\n * typings\r\n */\r\nfunction transformVNodeArgs(transformer) {\r\n vnodeArgsTransformer = transformer;\r\n}\r\nconst createVNodeWithArgsTransform = (...args) => {\r\n return _createVNode(...(vnodeArgsTransformer\r\n ? vnodeArgsTransformer(args, currentRenderingInstance)\r\n : args));\r\n};\r\nconst InternalObjectKey = `__vInternal`;\r\nconst normalizeKey = ({ key }) => key != null ? key : null;\r\nconst normalizeRef = ({ ref }) => {\r\n return (ref != null\r\n ? isArray(ref)\r\n ? ref\r\n : [currentRenderingInstance, ref]\r\n : null);\r\n};\r\nconst createVNode = ((process.env.NODE_ENV !== 'production')\r\n ? createVNodeWithArgsTransform\r\n : _createVNode);\r\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\r\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\r\n if ((process.env.NODE_ENV !== 'production') && !type) {\r\n warn(`Invalid vnode type when creating vnode: ${type}.`);\r\n }\r\n type = Comment;\r\n }\r\n if (isVNode(type)) {\r\n const cloned = cloneVNode(type, props);\r\n if (children) {\r\n normalizeChildren(cloned, children);\r\n }\r\n return cloned;\r\n }\r\n // class component normalization.\r\n if (isFunction(type) && '__vccOpts' in type) {\r\n type = type.__vccOpts;\r\n }\r\n // class & style normalization.\r\n if (props) {\r\n // for reactive or proxy objects, we need to clone it to enable mutation.\r\n if (isProxy(props) || InternalObjectKey in props) {\r\n props = extend({}, props);\r\n }\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (isObject(style)) {\r\n // reactive state objects need to be cloned since they are likely to be\r\n // mutated\r\n if (isProxy(style) && !isArray(style)) {\r\n style = extend({}, style);\r\n }\r\n props.style = normalizeStyle(style);\r\n }\r\n }\r\n // encode the vnode type information into a bitmap\r\n const shapeFlag = isString(type)\r\n ? 1 /* ELEMENT */\r\n : isSuspense(type)\r\n ? 128 /* SUSPENSE */\r\n : isTeleport(type)\r\n ? 64 /* TELEPORT */\r\n : isObject(type)\r\n ? 4 /* STATEFUL_COMPONENT */\r\n : isFunction(type)\r\n ? 2 /* FUNCTIONAL_COMPONENT */\r\n : 0;\r\n if ((process.env.NODE_ENV !== 'production') && shapeFlag & 4 /* STATEFUL_COMPONENT */ && isProxy(type)) {\r\n type = toRaw(type);\r\n warn(`Vue received a Component which was made a reactive object. This can ` +\r\n `lead to unnecessary performance overhead, and should be avoided by ` +\r\n `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\r\n `instead of \\`ref\\`.`, `\\nComponent that was made reactive: `, type);\r\n }\r\n const vnode = {\r\n __v_isVNode: true,\r\n __v_skip: true,\r\n type,\r\n props,\r\n key: props && normalizeKey(props),\r\n ref: props && normalizeRef(props),\r\n scopeId: currentScopeId,\r\n children: null,\r\n component: null,\r\n suspense: null,\r\n dirs: null,\r\n transition: null,\r\n el: null,\r\n anchor: null,\r\n target: null,\r\n targetAnchor: null,\r\n staticCount: 0,\r\n shapeFlag,\r\n patchFlag,\r\n dynamicProps,\r\n dynamicChildren: null,\r\n appContext: null\r\n };\r\n // validate key\r\n if ((process.env.NODE_ENV !== 'production') && vnode.key !== vnode.key) {\r\n warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\r\n }\r\n normalizeChildren(vnode, children);\r\n // presence of a patch flag indicates this node needs patching on updates.\r\n // component nodes also should always be patched, because even if the\r\n // component doesn't need to update, it needs to persist the instance on to\r\n // the next vnode so that it can be properly unmounted later.\r\n if (shouldTrack > 0 &&\r\n !isBlockNode &&\r\n currentBlock &&\r\n // the EVENTS flag is only for hydration and if it is the only flag, the\r\n // vnode should not be considered dynamic due to handler caching.\r\n patchFlag !== 32 /* HYDRATE_EVENTS */ &&\r\n (patchFlag > 0 || shapeFlag & 6 /* COMPONENT */)) {\r\n currentBlock.push(vnode);\r\n }\r\n return vnode;\r\n}\r\nfunction cloneVNode(vnode, extraProps) {\r\n // This is intentionally NOT using spread or extend to avoid the runtime\r\n // key enumeration cost.\r\n const { props, patchFlag } = vnode;\r\n const mergedProps = extraProps\r\n ? props\r\n ? mergeProps(props, extraProps)\r\n : extend({}, extraProps)\r\n : props;\r\n return {\r\n __v_isVNode: true,\r\n __v_skip: true,\r\n type: vnode.type,\r\n props: mergedProps,\r\n key: mergedProps && normalizeKey(mergedProps),\r\n ref: extraProps && extraProps.ref ? normalizeRef(extraProps) : vnode.ref,\r\n scopeId: vnode.scopeId,\r\n children: vnode.children,\r\n target: vnode.target,\r\n targetAnchor: vnode.targetAnchor,\r\n staticCount: vnode.staticCount,\r\n shapeFlag: vnode.shapeFlag,\r\n // if the vnode is cloned with extra props, we can no longer assume its\r\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\r\n // note: perserve flag for fragments since they use the flag for children\r\n // fast paths only.\r\n patchFlag: extraProps && vnode.type !== Fragment\r\n ? patchFlag === -1 // hoisted node\r\n ? 16 /* FULL_PROPS */\r\n : patchFlag | 16 /* FULL_PROPS */\r\n : patchFlag,\r\n dynamicProps: vnode.dynamicProps,\r\n dynamicChildren: vnode.dynamicChildren,\r\n appContext: vnode.appContext,\r\n dirs: vnode.dirs,\r\n transition: vnode.transition,\r\n // These should technically only be non-null on mounted VNodes. However,\r\n // they *should* be copied for kept-alive vnodes. So we just always copy\r\n // them since them being non-null during a mount doesn't affect the logic as\r\n // they will simply be overwritten.\r\n component: vnode.component,\r\n suspense: vnode.suspense,\r\n el: vnode.el,\r\n anchor: vnode.anchor\r\n };\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction createTextVNode(text = ' ', flag = 0) {\r\n return createVNode(Text, null, text, flag);\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction createStaticVNode(content, numberOfNodes) {\r\n // A static vnode can contain multiple stringified elements, and the number\r\n // of elements is necessary for hydration.\r\n const vnode = createVNode(Static, null, content);\r\n vnode.staticCount = numberOfNodes;\r\n return vnode;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction createCommentVNode(text = '', \r\n// when used as the v-else branch, the comment node must be created as a\r\n// block to ensure correct updates.\r\nasBlock = false) {\r\n return asBlock\r\n ? (openBlock(), createBlock(Comment, null, text))\r\n : createVNode(Comment, null, text);\r\n}\r\nfunction normalizeVNode(child) {\r\n if (child == null || typeof child === 'boolean') {\r\n // empty placeholder\r\n return createVNode(Comment);\r\n }\r\n else if (isArray(child)) {\r\n // fragment\r\n return createVNode(Fragment, null, child);\r\n }\r\n else if (typeof child === 'object') {\r\n // already vnode, this should be the most common since compiled templates\r\n // always produce all-vnode children arrays\r\n return child.el === null ? child : cloneVNode(child);\r\n }\r\n else {\r\n // strings and numbers\r\n return createVNode(Text, null, String(child));\r\n }\r\n}\r\n// optimized normalization for template-compiled render fns\r\nfunction cloneIfMounted(child) {\r\n return child.el === null ? child : cloneVNode(child);\r\n}\r\nfunction normalizeChildren(vnode, children) {\r\n let type = 0;\r\n const { shapeFlag } = vnode;\r\n if (children == null) {\r\n children = null;\r\n }\r\n else if (isArray(children)) {\r\n type = 16 /* ARRAY_CHILDREN */;\r\n }\r\n else if (typeof children === 'object') {\r\n // Normalize slot to plain children\r\n if ((shapeFlag & 1 /* ELEMENT */ || shapeFlag & 64 /* TELEPORT */) &&\r\n children.default) {\r\n normalizeChildren(vnode, children.default());\r\n return;\r\n }\r\n else {\r\n type = 32 /* SLOTS_CHILDREN */;\r\n const slotFlag = children._;\r\n if (!slotFlag && !(InternalObjectKey in children)) {\r\n children._ctx = currentRenderingInstance;\r\n }\r\n else if (slotFlag === 3 /* FORWARDED */ && currentRenderingInstance) {\r\n // a child component receives forwarded slots from the parent.\r\n // its slot type is determined by its parent's slot type.\r\n if (currentRenderingInstance.vnode.patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n children._ = 2 /* DYNAMIC */;\r\n vnode.patchFlag |= 1024 /* DYNAMIC_SLOTS */;\r\n }\r\n else {\r\n children._ = 1 /* STABLE */;\r\n }\r\n }\r\n }\r\n }\r\n else if (isFunction(children)) {\r\n children = { default: children, _ctx: currentRenderingInstance };\r\n type = 32 /* SLOTS_CHILDREN */;\r\n }\r\n else {\r\n children = String(children);\r\n // force teleport children to array so it can be moved around\r\n if (shapeFlag & 64 /* TELEPORT */) {\r\n type = 16 /* ARRAY_CHILDREN */;\r\n children = [createTextVNode(children)];\r\n }\r\n else {\r\n type = 8 /* TEXT_CHILDREN */;\r\n }\r\n }\r\n vnode.children = children;\r\n vnode.shapeFlag |= type;\r\n}\r\nfunction mergeProps(...args) {\r\n const ret = extend({}, args[0]);\r\n for (let i = 1; i < args.length; i++) {\r\n const toMerge = args[i];\r\n for (const key in toMerge) {\r\n if (key === 'class') {\r\n if (ret.class !== toMerge.class) {\r\n ret.class = normalizeClass([ret.class, toMerge.class]);\r\n }\r\n }\r\n else if (key === 'style') {\r\n ret.style = normalizeStyle([ret.style, toMerge.style]);\r\n }\r\n else if (isOn(key)) {\r\n const existing = ret[key];\r\n const incoming = toMerge[key];\r\n if (existing !== incoming) {\r\n ret[key] = existing\r\n ? [].concat(existing, toMerge[key])\r\n : incoming;\r\n }\r\n }\r\n else {\r\n ret[key] = toMerge[key];\r\n }\r\n }\r\n }\r\n return ret;\r\n}\n\nfunction emit(instance, event, ...args) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const options = normalizeEmitsOptions(instance.type);\r\n if (options) {\r\n if (!(event in options)) {\r\n const propsOptions = normalizePropsOptions(instance.type)[0];\r\n if (!propsOptions || !(`on` + capitalize(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"on${capitalize(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = options[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...args);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let handlerName = `on${capitalize(event)}`;\r\n let handler = props[handlerName];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && event.startsWith('update:')) {\r\n handlerName = `on${capitalize(hyphenate(event))}`;\r\n handler = props[handlerName];\r\n }\r\n if (!handler) {\r\n handler = props[handlerName + `Once`];\r\n if (!instance.emitted) {\r\n (instance.emitted = {})[handlerName] = true;\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp) {\r\n if (hasOwn(comp, '__emits')) {\r\n return comp.__emits;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n if (comp.extends) {\r\n hasExtends = true;\r\n extend(normalized, normalizeEmitsOptions(comp.extends));\r\n }\r\n if (comp.mixins) {\r\n hasExtends = true;\r\n comp.mixins.forEach(m => extend(normalized, normalizeEmitsOptions(m)));\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__emits = undefined);\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n return (comp.__emits = normalized);\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(comp, key) {\r\n let emits;\r\n if (!isOn(key) || !(emits = normalizeEmitsOptions(comp))) {\r\n return false;\r\n }\r\n key = key.replace(/Once$/, '');\r\n return (hasOwn(emits, key[2].toLowerCase() + key.slice(3)) ||\r\n hasOwn(emits, key.slice(2)));\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(props, instance.type);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = normalizePropsOptions(instance.type);\r\n if ((optimized || patchFlag > 0) && !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n const key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n attrs[key] = value;\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value);\r\n }\r\n }\r\n else {\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n setFullProps(instance, rawProps, props, attrs);\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawProps || EMPTY_OBJ, key, undefined);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n if ((process.env.NODE_ENV !== 'production') && rawProps) {\r\n validateProps(props, instance.type);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = normalizePropsOptions(instance.type);\r\n if (rawProps) {\r\n for (const key in rawProps) {\r\n const value = rawProps[key];\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n props[camelKey] = value;\r\n }\r\n else if (!isEmitListener(instance.type, key)) {\r\n // Any non-declared (either as a prop or an emitted event) props are put\r\n // into a separate `attrs` object for spreading. Make sure to preserve\r\n // original key casing\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key]);\r\n }\r\n }\r\n}\r\nfunction resolvePropValue(options, props, key, value) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n value =\r\n opt.type !== Function && isFunction(defaultValue)\r\n ? defaultValue()\r\n : defaultValue;\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (!hasOwn(props, key) && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp) {\r\n if (comp.__props) {\r\n return comp.__props;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n const [props, keys] = normalizePropsOptions(raw);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (comp.extends) {\r\n hasExtends = true;\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n hasExtends = true;\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__props = EMPTY_ARR);\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const normalizedEntry = [normalized, needCastKeys];\r\n comp.__props = normalizedEntry;\r\n return normalizedEntry;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(props, comp) {\r\n const rawValues = toRaw(props);\r\n const options = normalizePropsOptions(comp)[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, rawValues[key], opt, !hasOwn(rawValues, key));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = toRawType(value) === 'Object';\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n setCurrentInstance(null);\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = `on${capitalize(ErrorTypeStrings[type].replace(/ hook$/, ''))}`;\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n ( ` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR\r\n!isInSSRComponentSetup && injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nconst onErrorCaptured = (hook, target = currentInstance) => {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n};\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: Function,\r\n onEnter: Function,\r\n onAfterEnter: Function,\r\n onEnterCancelled: Function,\r\n // leave\r\n onBeforeLeave: Function,\r\n onLeave: Function,\r\n onAfterLeave: Function,\r\n onLeaveCancelled: Function,\r\n // appear\r\n onBeforeAppear: Function,\r\n onAppear: Function,\r\n onAfterAppear: Function,\r\n onAppearCancelled: Function\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = (innerChild.transition = resolveTransitionHooks(innerChild, rawProps, state, instance));\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out') {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, { appear, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled }, state, instance) {\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-top\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n inheritRef: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const instance = getCurrentInstance();\r\n const parentSuspense = instance.suspense;\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => matches(exclude, name));\r\n });\r\n // cache sub tree in beforeMount/Update (i.e. right after the render)\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, instance.subTree);\r\n }\r\n };\r\n onBeforeMount(cacheSubtree);\r\n onBeforeUpdate(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n if (cached.type === subTree.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(subTree);\r\n // but invoke its deactivated hook here\r\n const da = subTree.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n let vnode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(vnode) ||\r\n !(vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */)) {\r\n current = null;\r\n return vnode;\r\n }\r\n const comp = vnode.type;\r\n const name = getName(comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n return (current = vnode);\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return vnode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction getName(comp) {\r\n return comp.displayName || comp.name;\r\n}\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], hook);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => withCtx((props) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(props));\r\n}, ctx);\r\nconst normalizeObjectSlots = (rawSlots, slots) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') && !isKeepAlive(instance.vnode)) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n instance.slots = children;\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n const hook = binding.dir[name];\r\n if (hook) {\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n }\r\n }\r\n}\n\nlet devtools;\r\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = /*#__PURE__*/ createDevtoolsHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined);\r\n };\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n isCustomElement: NO,\r\n errorHandler: undefined,\r\n warnHandler: undefined\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null)\r\n };\r\n}\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsInitApp(app, version);\r\n }\r\n return vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n devtoolsUnmountApp(app);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if ((process.env.NODE_ENV !== 'production') && !container.hasChildNodes()) {\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type !== node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n const container = parentNode(node);\r\n const hydrateComponent = () => {\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n };\r\n // async component\r\n const loadAsync = vnode.type.__asyncLoader;\r\n if (loadAsync) {\r\n loadAsync().then(hydrateComponent);\r\n }\r\n else {\r\n hydrateComponent();\r\n }\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if ( shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null && parentComponent) {\r\n setRef(ref, null, parentComponent, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { props, patchFlag, shapeFlag, dirs } = vnode;\r\n // skip props & children if this is hoisted static nodes\r\n if (patchFlag !== -1 /* HOISTED */) {\r\n // props\r\n if (props) {\r\n if (!optimized ||\r\n (patchFlag & 16 /* FULL_PROPS */ ||\r\n patchFlag & 32 /* HYDRATE_EVENTS */)) {\r\n for (const key in props) {\r\n if (!isReservedProp(key) && isOn(key)) {\r\n patchProp(el, key, null, props[key]);\r\n }\r\n }\r\n }\r\n else if (props.onClick) {\r\n // Fast path for click listeners (which is most often) to avoid\r\n // iterating through props.\r\n patchProp(el, 'onClick', null, props.onClick);\r\n }\r\n }\r\n // vnode / directive hooks\r\n let vnodeHooks;\r\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n }\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n }\r\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n queueEffectWithSuspense(() => {\r\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n }, parentSuspense);\r\n }\r\n // children\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n // skip if element has innerHTML / textContent\r\n !(props && (props.innerHTML || props.textContent))) {\r\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized);\r\n let hasWarned = false;\r\n while (next) {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n `server rendered element contains more child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // The SSRed DOM contains more nodes than it should. Remove them.\r\n const cur = next;\r\n next = next.nextSibling;\r\n remove(cur);\r\n }\r\n }\r\n else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n if (el.textContent !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n `- Client: ${el.textContent}\\n` +\r\n `- Server: ${vnode.children}`);\r\n el.textContent = vnode.children;\r\n }\r\n }\r\n }\r\n return el.nextSibling;\r\n };\r\n const hydrateChildren = (node, vnode, container, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const children = vnode.children;\r\n const l = children.length;\r\n let hasWarned = false;\r\n for (let i = 0; i < l; i++) {\r\n const vnode = optimized\r\n ? children[i]\r\n : (children[i] = normalizeVNode(children[i]));\r\n if (node) {\r\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n else {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n `server rendered element contains fewer child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container));\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, optimized) => {\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized);\r\n if (next && isComment(next) && next.data === ']') {\r\n return nextSibling((vnode.anchor = next));\r\n }\r\n else {\r\n // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n // back. This should have led to node/children mismatch warnings.\r\n hasMismatch = true;\r\n // since the anchor is missing, we need to create one and insert it\r\n insert((vnode.anchor = createComment(`]`)), container, next);\r\n return next;\r\n }\r\n };\r\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, isFragment) => {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n ? `(text)`\r\n : isComment(node) && node.data === '['\r\n ? `(start of fragment)`\r\n : ``);\r\n vnode.el = null;\r\n if (isFragment) {\r\n // remove excessive fragment nodes\r\n const end = locateClosingAsyncAnchor(node);\r\n while (true) {\r\n const next = nextSibling(node);\r\n if (next && next !== end) {\r\n remove(next);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n const next = nextSibling(node);\r\n const container = parentNode(node);\r\n remove(node);\r\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container));\r\n return next;\r\n };\r\n const locateClosingAsyncAnchor = (node) => {\r\n let match = 0;\r\n while (node) {\r\n node = nextSibling(node);\r\n if (node && isComment(node)) {\r\n if (node.data === '[')\r\n match++;\r\n if (node.data === ']') {\r\n if (match === 0) {\r\n return nextSibling(node);\r\n }\r\n else {\r\n match--;\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n return [hydrate, hydrateNode];\r\n}\n\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n perf.mark(`vue-${type}-${instance.uid}`);\r\n }\r\n}\r\nfunction endMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n const startTag = `vue-${type}-${instance.uid}`;\r\n const endTag = startTag + `:end`;\r\n perf.mark(endTag);\r\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n }\r\n}\r\nfunction isSupported() {\r\n if (supported !== undefined) {\r\n return supported;\r\n }\r\n /* eslint-disable no-restricted-globals */\r\n if (typeof window !== 'undefined' && window.performance) {\r\n supported = true;\r\n perf = window.performance;\r\n }\r\n else {\r\n supported = false;\r\n }\r\n /* eslint-enable no-restricted-globals */\r\n return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n }\r\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of Vue. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle. ` +\r\n `See http://link.vuejs.org/feature-flags for more details.`);\r\n }\r\n}\n\nconst prodEffectOptions = {\r\n scheduler: queueJob\r\n};\r\nfunction createDevEffectOptions(instance) {\r\n return {\r\n scheduler: queueJob,\r\n onTrack: instance.rtc ? e => invokeArrayFns(instance.rtc, e) : void 0,\r\n onTrigger: instance.rtg ? e => invokeArrayFns(instance.rtg, e) : void 0\r\n };\r\n}\r\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n ;\r\nconst setRef = (rawRef, oldRawRef, parentComponent, parentSuspense, vnode) => {\r\n let value;\r\n if (!vnode) {\r\n value = null;\r\n }\r\n else {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\r\n }\r\n }\r\n const [owner, ref] = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef[1];\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n queuePostRenderEffect(() => {\r\n setupState[oldRef] = null;\r\n }, parentSuspense);\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isString(ref)) {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n queuePostRenderEffect(() => {\r\n setupState[ref] = value;\r\n }, parentSuspense);\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n ref.value = value;\r\n }\r\n else if (isFunction(ref)) {\r\n callWithErrorHandling(ref, parentComponent, 12 /* FUNCTION_REF */, [\r\n value,\r\n refs\r\n ]);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', value, `(${typeof value})`);\r\n }\r\n};\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n * patchProp,\r\n * ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n // compile-time feature flags check\r\n {\r\n initFeatureFlags();\r\n }\r\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n // Note: functions inside this closure should use `const xxx = () => {}`\r\n // style in order to prevent being inlined by minifiers.\r\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => {\r\n // patching & not same type, unmount old tree\r\n if (n1 && !isSameVNodeType(n1, n2)) {\r\n anchor = getNextHostNode(n1);\r\n unmount(n1, parentComponent, parentSuspense, true);\r\n n1 = null;\r\n }\r\n if (n2.patchFlag === -2 /* BAIL */) {\r\n optimized = false;\r\n n2.dynamicChildren = null;\r\n }\r\n const { type, ref, shapeFlag } = n2;\r\n switch (type) {\r\n case Text:\r\n processText(n1, n2, container, anchor);\r\n break;\r\n case Comment:\r\n processCommentNode(n1, n2, container, anchor);\r\n break;\r\n case Static:\r\n if (n1 == null) {\r\n mountStaticNode(n2, container, anchor, isSVG);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n patchStaticNode(n1, n2, container, isSVG);\r\n }\r\n break;\r\n case Fragment:\r\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ( shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid VNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n // set ref\r\n if (ref != null && parentComponent) {\r\n setRef(ref, n1 && n1.ref, parentComponent, parentSuspense, n2);\r\n }\r\n };\r\n const processText = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n }\r\n else {\r\n const el = (n2.el = n1.el);\r\n if (n2.children !== n1.children) {\r\n hostSetText(el, n2.children);\r\n }\r\n }\r\n };\r\n const processCommentNode = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n }\r\n else {\r\n // there's no support for dynamic comments\r\n n2.el = n1.el;\r\n }\r\n };\r\n const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const patchStaticNode = (n1, n2, container, isSVG) => {\r\n // static nodes are only patched during dev for HMR\r\n if (n2.children !== n1.children) {\r\n const anchor = hostNextSibling(n1.anchor);\r\n // remove existing\r\n removeStaticNode(n1);\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n }\r\n else {\r\n n2.el = n1.el;\r\n n2.anchor = n1.anchor;\r\n }\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const moveStaticNode = (vnode, container, anchor) => {\r\n let cur = vnode.el;\r\n const end = vnode.anchor;\r\n while (cur && cur !== end) {\r\n const next = hostNextSibling(cur);\r\n hostInsert(cur, container, anchor);\r\n cur = next;\r\n }\r\n hostInsert(end, container, anchor);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const removeStaticNode = (vnode) => {\r\n let cur = vnode.el;\r\n while (cur && cur !== vnode.anchor) {\r\n const next = hostNextSibling(cur);\r\n hostRemove(cur);\r\n cur = next;\r\n }\r\n hostRemove(vnode.anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode;\r\n if (!(process.env.NODE_ENV !== 'production') &&\r\n vnode.el &&\r\n hostCloneNode !== undefined &&\r\n patchFlag === -1 /* HOISTED */) {\r\n // If a vnode has non-null el, it means it's being reused.\r\n // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n // exactly the same, and we can simply do a clone here.\r\n // only do this in production since cloned trees cannot be HMR updated.\r\n el = vnode.el = hostCloneNode(vnode.el);\r\n }\r\n else {\r\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `