text:
<?php

// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

defined('MOODLE_INTERNAL') || die();

$string['abandoned'] = 'Abandonado';
$string['abandonhotpot'] = 'Los resultados hasta el momento se guardarán pero no podrá reanudar o reiniciar la actividad posteriormente.';
$string['activitycloses'] = 'Actividad de cierre';
$string['activitygrade'] = 'Calificación de la actividad';
$string['added'] = 'Añadido';
$string['addquizchain'] = 'Añadir cadena de preguntas';
$string['addquizchain_help'] = '¿Se deben añadir todas las preguntas de una cadena de preguntas?

**No**
:solo una pregunta se añadirá al curso

**Sí**
:si el archivo origen es un **archivo de pregunta**, se considerará como el principio de una cadena de preguntas y todas las preguntas de la cadena se añadirán al curso con la misma configuración. Cada pregunta de la cadena debe tener un enlace al siguiente archivo de la cadena.

Si el archivo origen es una **carpeta**, todas las preguntas identificadas dentro de la carpeta se agregarán al curso para formar una cadena de preguntas con la misma configuración.

Si el archivo origen es una **unidad**, como un archivo del tipo Masher de HotPotatoes o index.html, las preguntas que figuran en el archivo de la unidad se añadirán al curso como una cadena de preguntas con la misma configuración.';
$string['allowreview'] = 'Permitir revisión';
$string['allowreview_help'] = 'Si se activa, los estudiantes podrán revisar sus intentos después de que el cuestionario está cerrado.';
$string['analysisreport'] = 'Análisis de elementos';
$string['attemptlimit'] = 'Límite de intentos';
$string['attemptlimit_help'] = 'Número máximo de intentos que un estudiante puede tener en una actividad HotPot';
$string['attemptnumber'] = 'Número de intentos';
$string['attempts'] = 'Intentos';
$string['attemptscore'] = 'Puntuación de intentos';
$string['attemptsunlimited'] = 'Intentos ilimitados';
$string['average'] = 'Promedio';
$string['averagescore'] = 'Puntuación media';
$string['bodystyles'] = 'Estilos del cuerpo';
$string['bodystylesbackground'] = 'Color e imagen de fondo';
$string['bodystylescolor'] = 'Color del texto';
$string['bodystylesfont'] = 'Tamaño y familia de la fuente de texto';
$string['bodystylesmargin'] = 'Margen izquierdo y derecho';
$string['cacherecords'] = 'Registros del caché de HotPot';
$string['canrestarthotpot'] = 'Los resultados hasta el momento se guardarán y podrá volver a realizar "{$a}" posteriormente';
$string['canresumehotpot'] = 'Los resultados hasta el momento se guardarán y podrá reanudar  "{$a}" posteriormente';
$string['checks'] = 'Comprobaciones';
$string['checksomeboxes'] = 'Por favor, marque alguna casilla';
$string['clearcache'] = 'Limpiar el caché de HotPot';
$string['cleardetails'] = 'Limpiar detalles de HotPot';
$string['clearedcache'] = 'El caché de HotPot se ha limpiado';
$string['cleareddetails'] = 'Los detalles de HotPot se han limpiado';
$string['clickreporting'] = 'Habilitar informe por clic';
$string['clickreporting_help'] = 'Si está activado, se mantiene un registro separado cada vez se hace clic en un botón del tipo "hint", "Pista" o "Comprobar". Esto permite que el profesor pueda ver un informe muy detallado que muestra el estado de la pregunta con cada clic. De lo contrario, solo se conserva un registro por intento en cada pregunta.';
$string['clicktrailreport'] = 'Rastror de los clics';
$string['closed'] = 'Esta actividad se ha cerrado';
$string['clues'] = 'Pistas';
$string['completed'] = 'Completado';
$string['configbodystyles'] = 'Por defecto, los estilos del tema gráfico de Moodle anularán los estilos de la actividad HotPot. Sin embargo, cualquiera de los estilos HotPot elegidos aquí tendrá prioridad sobre los estilos del tema de Moodle,';
$string['configenablecache'] = 'Mantener un caché de las preguntas de HotPot puede incrementar sustancialmente la velocidad de entrega de las preguntas a los estudiantes';
$string['configenablecron'] = 'Especificar la hora de su zona horaria en la que el script del cron de HotPot puede ejecutarse';
$string['configenablemymoodle'] = 'Este valor controla si HotPot se lista o no en la página MyMoodle i';
$string['configenableobfuscate'] = 'Ofuscar el código javascript que permite insertar reproductores de medios hace que sea más difícil determinar el nombre y adivinar lo que contiene el archivo.';
$string['configenableswf'] = 'Permite incorporar archivos SWF en las actividades de HotPot. Si está habilitado, este valor sobrescribe a filter_mediaplugin_enable_swf.';
$string['configfile'] = 'Fichero de configuración';
$string['configframeheight'] = 'Cuando se muestra una pregunta dentro de un marco, este valor es la altura (en píxeles) de la parte superior del marco que contiene la barra de navegación de Moodle.';
$string['configlocation'] = 'Localización del fichero de configuración';
$string['configlockframe'] = 'Si esta opción está habilitada, entonces el marco de navegación, si se usa, se bloquea para que no se puede deslizar, cambiar de tamaño y tener bordes.';
$string['configmaxeventlength'] = 'Si un HotPot tiene especificadas una hora de apertura y otra de cierre, y la diferencia entre las dos es mayor que el número de días especificado aquí, entonces se añadirán dos eventos diferentes al calendario del curso. Para periodos de tiempo inferiores, o cuando solo se especifica una de las horas, se añadirá solo un evento al calendario. Si no se especifica ninguna hora, no se añadirá ningún evento al calendario.';
$string['configstoredetails'] = 'Si esta opción está activada, los datos XML sin procesar de los intentos de los cuestionarios HotPot se almacenan en la tabla hotpot_details. Esto permite que los intentos puedan ser recalificados posteriormente para reflejar cambios en el sistema de puntuación de los cuestionarios HotPot. Sin embargo, activar esta opción en un sitio con mucha actividad hará que la tabla hotpot_details crezca muy rápidamente.';
$string['confirmdeleteattempts'] = '¿Está seguro que quiere borrar estos intentos?';
$string['confirmstop'] = '¿Está seguro que quiere salir fuera de esta página?';
$string['correct'] = 'Correcto';
$string['couldnotinsertsubmissionform'] = 'No insertar formulario de presentación';
$string['delay1'] = 'Retraso 1';
$string['delay1_help'] = 'El retraso mínimo entre el primer y el segundo intento';
$string['delay1summary'] = 'Tiempo de retraso entre el primer y el segundo intento';
$string['delay2'] = 'Retraso 2';
$string['delay2_help'] = 'El retraso mñinimo entre intentos después del segundo intento';
$string['delay2summary'] = 'Tiempo de retraso entre los intentos posteriores';
$string['delay3'] = 'Retraso 3';
$string['delay3afterok'] = 'Esperar hasta que el estudiante haga clic en Aceptar';
$string['delay3disable'] = 'No continuar automáticamente';
$string['delay3_help'] = 'El ajuste especifica el retardo entre la finalización de la prueba y la vuelta del control a la pantalla de Moodle.

**Usar tiempo especificado (en segundos)**
: el control será devuelto a Moodle después del número de segundos especificado.

**Usar la configuración del archivo de origen/plantilla**
: el control será devuelto a Moodle después del número de segundos especificado en el archivo de origen o en el archivo de plantilla para este formato de salida.

**Esperar hasta que el estudiante haga clic en Aceptar**:
: el control será devuelto a Moodle después que el estudiante haga  clic en el botón Aceptar en el mensaje de finalización de la prueba.

**No continuar automáticamente**
: el control no será devuelto a Moodle después de que la prueba haya terminado. El estudiante tendrá la libertad de navegar fuera de la página del cuestionario.

Tenga en cuenta que los resultados del cuestionario siempre se devuelven a Moodle inmediatamente después de que la prueba se haya completado o abandonado, independientemente de este ajuste.';
$string['delay3specific'] = 'Usar tiempo especificado (en segundos)';
$string['delay3summary'] = 'Tiempo de retraso al final de la pregunta';
$string['delay3template'] = 'Usar la configuración del archivo de origen/plantilla';
$string['deleteallattempts'] = 'Eliminar todos los intentos';
$string['deleteattempts'] = 'Borrar intentos';
$string['detailsrecords'] = 'Registro de detalles de HotPot';
$string['d_index'] = 'Índice de discriminación';
$string['duration'] = 'Duración';
$string['enablecache'] = 'Activar el caché de HotPot';
$string['enablecron'] = 'Activar el cron de HotPot';
$string['enablemymoodle'] = 'Mostrar HotPot en MyMoodle';
$string['enableobfuscate'] = 'Activar ofuscación del código de los reproductores multimedia';
$string['enableswf'] = 'Permitir insertar archivos SWF en las actividades HotPot';
$string['entry_attempts'] = 'Intentos';
$string['entrycm'] = 'Actividad previa';
$string['entrycmcourse'] = 'Actividad previa en este curso';
$string['entrycm_help'] = 'Este parámetro especifica una actividad de Moodle y una calificación mínima que se debe alcanzar antes de que este Quizport se pueda intentar.

El profesor puede seleccionar una actividad específica, o uno de los parámetros de propósito general siguientes:

* Actividad previa en el curso
* Actividad previa en esta sección
* HotPot previo en este curso
* HotPot previo en esta sección';
$string['entrycmsection'] = 'Actividad previa en esta sección del curso';
$string['entrycompletionwarning'] = 'Antes de empezar esta actividad, debe mirar {$a}';
$string['entry_dates'] = 'Fechas';
$string['entrygrade'] = 'Calificación de la actividad previa';
$string['entrygradewarning'] = 'No puede iniciar esta actividad hasta que haya alcanzado {$a->entrygrade}% en {$a->entryactivity}. En este momento su calificación para esta actividad es {$a->usergrade}%';
$string['entry_grading'] = 'Calificar';
$string['entryhotpotcourse'] = 'HotPot previo en este curso';
$string['entryhotpotsection'] = 'HotPot previo en esta sección del curso';
$string['entryoptions'] = 'Opciones de la página de entrada';
$string['entryoptions_help'] = 'Estas casillas de verificación activan y desactivan la visualización de los elementos en la página de entrada de HotPot.

**Nombre de unidad como título**
: si se activa, el nombre de la unidad se mostrará como el título de la página de entrada.

**Calificación**
: si se activa, la información de calificación de HotPot se mostrará en la página de entrada.

**Fechas**
: si se activa, las fechas de apertura y cierre del HotPot se mostrarán en la página de entrada.

**Intentos**
: si se activa, se mostrará una tabla con los detalles de los intentos anteriores de usuario en este HotPot en la página de entrada. Los intentos que puedan reiniciarse mostrarán un botón para reiniciar en la columna de la derecha.';
$string['entrypage'] = 'Mostrar página de entrada';
$string['entrypagehdr'] = 'Página de entrada';
$string['entrypage_help'] = '¿Se mostrará a los estudiantes una página inicial antes de comenzar la actividad HotPot?
**Sí**
:los estudiantes verán una página de entrada antes de iniciar el HotPot. El contenido de la página de entrada se determina en las opciones de la página de entrada de HotPot.

**No**
:los estudiantes no verán una página de entrada, y se iniciará el HotPot  de inmediato.

Una página de entrada se mostrará siempre al profesor con el fin de facilitar el acceso a los informes y editar las páginas de preguntas.';
$string['entrytext'] = 'Texto de la página de entrada';
$string['entry_title'] = 'Nombre de la unidad como título';
$string['exit_areyouok'] = '¡Hola, aún está aquí!';
$string['exit_attemptscore'] = 'Su puntuación para este intento fue de {$a}';
$string['exitcm'] = 'Siguiente actividad';
$string['exitcmcourse'] = 'Siguiente actividad en este curso';
$string['exitcm_help'] = 'Este parámetro especifica una actividad Moodle para realizar después de finalizar este Cuestionario.

El profesor puede seleccionar una actividad específica, o una de las siguientes acciones de propósito general:

* Siguiente actividad en este cursos
* Siguiente actividad en esta sección
* Siguiente HotPot en  este curso
* Siguiente HotPot en esta sección

Si las demás opciones de la página de salida están deshabilitadas, el alumno irá directamente a la siguiente actividad. De lo contrario, el alumno verá un enlace que lo llevara a la siguiente actividad cuando esté listo.';
$string['exitcmsection'] = 'Siguiente actividad en esta sección del curso';
$string['exit_course'] = 'Curso';
$string['exit_course_text'] = 'Volver a la página principal del curso';
$string['exit_encouragement'] = 'Valoración';
$string['exit_excellent'] = '¡Excelente!';
$string['exit_feedback'] = 'Salir de la página de retroalimentación';
$string['exit_feedback_help'] = 'Esta opción habilita y deshabilita la visualización de los elementos de retroalimentación en la página de salida de HotPot.

**Nombre de la unidad como título**
: si se activa, el nombre de la unidad se moistrará como el título de la página de salida.

**Valoración**
: si se activa, se mostrará una valoración en la página de salida. La valoración dependerá de la calificación del HotPot:
: **> 90%**: ¡Excelente!
: **> 60%**: ¡Muy Bien!
: **> 0%**: ¡Buen intento!
: **= 0%**: ¿Está de acuerdo?

**Calificación del intento**
: si se activa, la calificación para el intento que se acaba de completar se mostrará en la página de salida

**Calificación**
: si se activa, la calificación del HotPot se mostrará en la página de salida.

Además, si el método de calificación es \'la más alta\', se mostrará un mensaje indicando al usuario si el intento más reciente ha sido igual o mejor que el anterior.';
$string['exit_goodtry'] = '¡Buen intento';
$string['exitgrade'] = 'Calificación de la siguiente actividad';
$string['exit_grades'] = 'Calificaciones';
$string['exit_grades_text'] = 'Mire sus calificaciones en este curso hasta el momento';
$string['exithotpotcourse'] = 'Próximo HotPot en este curso';
$string['exit_hotpotgrade'] = 'Su calificación para esta actividad es {$a}';
$string['exit_hotpotgrade_average'] = 'Su califiación media hasta el momento para esta actividad es {$a}';
$string['exit_hotpotgrade_highest'] = 'Su califiación más alta hasta el momento para esta actividad es {$a}';
$string['exit_hotpotgrade_highest_equal'] = 'Igualó su mejor puntuación para esta actividad';
$string['exit_hotpotgrade_highest_previous'] = 'Su califiación anterior más alta para esta actividad fue{$a}';
$string['exit_hotpotgrade_highest_zero'] = 'No ha alcanzado puntuaciónes más altas que {$a} en esta actividad';
$string['exithotpotsection'] = 'Próximo HotPot en esta sección del curso';
$string['exit_index'] = 'Índice';
$string['exit_index_text'] = 'Ir al índice de actividades';
$string['exit_links'] = 'Salir de la página de enlaces';
$string['exit_links_help'] = 'Esta opción habilita y deshabilita que se muestren algunos enlaces en la página de salida de HotPot.

**Reintentar**
: si se permiten varios intentos en este HotPot y a los alumnos aún les quedan intentos pendientes, se mostrará un enlace permitiendo a los alumnos volver a intentar el HotPot.

**Índice**
: si se activa, se mostrará un enlace a la página de índice del HotPot

**Curso**
: si se activa, se mostrará un enlace a la página del cursos Moodle.

**Calificaciones*
: Si se activa, se mostrará un enlace a la página de calificaciones de Moodle.';
$string['exit_next'] = 'Siguiente';
$string['exit_next_text'] = 'Intentar la siguiente actividad';
$string['exit_noscore'] = '¡Ha completado con éxito esta actividad!';
$string['exitoptions'] = 'Opciones de la página de salida';
$string['exitpage'] = 'Mostrar página de salida';
$string['exitpagehdr'] = 'Página de salida';
$string['exitpage_help'] = '¿Se mostrará una página de salida después de que se haya completado el ejercicio HotPot?

**Sí**:
se mostrará a los alumnos una página de salida cuando el Hotpot se haya completado. El contenido de la página de salida se determina mediante los ajustes de retroalimentación y enlaces de la página de salida de Hotpot.

**No**:
no se mostrara a los estudiantes página de salida. En su lugar, podrán ir a la siguiente actividad o volver a la página del curso de Moodle.';
$string['exit_retry'] = 'Reintentar';
$string['exit_retry_text'] = 'Reintentar esta actividad';
$string['exittext'] = 'Texto de la página de salida';
$string['exit_welldone'] = '¡Bien hecho!';
$string['exit_whatnext_0'] = '¿Qué quiere hacer ahora?';
$string['exit_whatnext_1'] = 'Elija su destino ...';
$string['exit_whatnext_default'] = 'Por favor elija uno de los siguientes:';
$string['feedbackdiscuss'] = 'Dicutir sobre esta pregunta en un foro';
$string['feedbackformmail'] = 'Formulario de retroalimentación';
$string['feedbackmoodleforum'] = 'Foro de Moodle';
$string['feedbackmoodlemessaging'] = 'Mensajería de Moodle';
$string['feedbacknone'] = 'No';
$string['feedbacksendmessage'] = 'Enviar un mensjae a su instructor';
$string['feedbackwebpage'] = 'Página web';
$string['firstattempt'] = 'Primer intento';
$string['forceplugins'] = 'Forzar plugins multimedia';
$string['forceplugins_help'] = 'Si se activa, los reproductores multimedia compatibles con Moodle podrán reproducir archivos tales como AVI, MPEG, MPG, MP3, MOV y WMV. De lo contrario, Moodle no modificará la configuración de ningún reproductor de medios.';
$string['frameheight'] = 'Altura del marco';
$string['giveup'] = 'Abandonar';
$string['grademethod'] = 'Método de calificación';
$string['grademethod_help'] = 'Este parámetro define cómo se calcula la calificación del HotPot a partir de las puntuaciones de los intentos.

**Puntuación más alta**:
La calificación se determina según la calificación más alta obtenida en los diferentes intentos realizados en esta actividad HotPot.

**Puntuación media**:
La calificación se determina según la calificación media alta obtenida en los diferentes intentos realizados en esta actividad HotPot.

**Primer intento**
La calificación se determina según la calificación obtenida en el primer intento realizadosen esta actividad HotPot.

**Ültimo intento**
La calificación se determina según la calificación obtenida en el últimointento realizado en esta actividad HotPot.';
$string['gradeweighting'] = 'Ponderación de calificaciones';
$string['gradeweighting_help'] = 'Las calificaciones para esta actividad HotPot se harán proporcioanles a este número en el libro de calificaciones de Moodle.';
$string['highestscore'] = 'Puntuación más alta';
$string['hints'] = 'Ayudas';
$string['hotpot:addinstance'] = 'Añadir una nueva actividad HotPot';
$string['hotpot:attempt'] = 'Realizar una actividad HotPot y presentar resultados';
$string['hotpot:deleteallattempts'] = 'Eliminar cualquier intento de usuario en la actividad HotPot';
$string['hotpot:deletemyattempts'] = 'Eliminar sus propios intentos en la actividad HotPot';
$string['hotpot:ignoretimelimits'] = 'Ignorar los límites de tiempo en las activdad HotPot';
$string['hotpot:manage'] = 'Cambiar la configuración de una actividad HotPot';
$string['hotpotname'] = 'Nombre de la actividad HotPot';
$string['hotpot:preview'] = 'Previsualizar una actividad HotPot';
$string['hotpot:reviewallattempts'] = 'Ver los intentos de cualquier usuario en una actividad HotPot';
$string['hotpot:reviewmyattempts'] = 'Ver sus propios intentos en una actividad HotPot';
$string['hotpot:view'] = 'Ver la página de entrada de una actividad HotPot';
$string['ignored'] = 'Ignorado';
$string['inprogress'] = 'En curso';
$string['isgreaterthan'] = 'es mayor que';
$string['islessthan'] = 'es menor que';
$string['lastaccess'] = 'Último acceso';
$string['lastattempt'] = 'Último intentro';
$string['lockframe'] = 'Bloquear marco';
$string['maxeventlength'] = 'Número máximo de días para un único evento de caledario';
$string['mediafilter_hotpot'] = 'Filtro de medios para HotPot';
$string['mediafilter_moodle'] = 'Filtros de medios estándar de Moodle';
$string['migratingfiles'] = 'Migración de los ficheros de cuestionarios de Hot Potatoes';
$string['missingsourcetype'] = 'A este HotPot le falta el tipo de archivo';
$string['modulename'] = 'HotPot';
$string['modulename_help'] = 'El módulo HotPot le permite a los profesores distribuir materiales de aprendizaje interactivos a sus estudiantes vía Moodle y ver reportes sobre las respuestas y resultados de sus estudiantes.

Una actividad única de HotPot consiste de una página opcional de entrada, un único ejercicio \'elearning\' (eaprendizaje) y una página opcional de salida. El ejercicio de eaprendizaje puede ser una página web estática o una página web interactiva que les ofrece a los estudiantes texto, audio, y estímulos visuales y graba sus respuestas. El ejercicio de eaprendizaje se crea en la computadora del maestro empleando programas de autoría y después se sube a Moodle.

Una actividad HotPot puede manejar ejercicios creados con los siguientes programas de autoría:

 * Hot Potatoes (versión 6)
* Qedoc
* Xerte
* iSpring
* acualquier editor de HTML';
$string['modulenameplural'] = 'HotPot';
$string['nameadd'] = 'Mombre';
$string['nameadd_help'] = 'El nombre puede ser un texto específico introducido por el profesor o puede ser generado de forma automática.

**Del fichero origen**
: el nombre se extrae del fichero origen.

**Nombre del archivo origen**
: se usuará el nombre del archivo de origen

**Ruta del archivo de origen**
: se usuará la ruta del archivo (path) de origen. Las barras (/) de la ruta se sustituyen por espacios.

**Texto específico**
: se usará el texto introducido por el usuario.';
$string['nameedit'] = 'Nombre';
$string['nameedit_help'] = 'El texto específico que se muestra a los estudiantes';
$string['navigation'] = 'Navegación';
$string['navigation_embed'] = 'Página web incrustada';
$string['navigation_frame'] = 'Marco de navegación de Moodle';
$string['navigation_give_up'] = 'Solamente un botón de "Abandonar"';
$string['navigation_help'] = 'Este parámetro especifica el tipo de navegación usaso en el cuestionario:

** Barra de navegación Moodle**
: la barra de navegación de Moodle se muestra en la misma ventana que el cuestionario, en la parte superior de la página.

** Marco de navegación Moodle**
: la barra de navegación Moodle se muestra en un marco diferente, en la parte superior del cuestionario.

** Página web incrustada**
: la barra de navegación de Moodle se muestra dentro del cuestionario Hot Potatoes, incrustada dentro de la ventana.

** Ayudas de navegación originales**
: el cuestionario se muestra con los botones de negación, si los hay, definidos en el cuestionario.

**Un único botón "Abandonar" **
: el cuestionario mostrará un único botón "Abandonar" en la parte superior de la página

**Nada**
: se mostrará el cuestionario sin ayudas de navegación, de manera que cuando todas las preguntas hayan sido respondidas correctamente, dependiendo del parámetro "¿Mostrar la siguiente pregunta?", Moodle volverá a la página del curso o mostrará el siguiente cuestionario.';
$string['navigation_moodle'] = 'Barras de navegación estándar de Moodle (superior y lateral)';
$string['navigation_none'] = 'Ninguna';
$string['navigation_original'] = 'Ayudas de navegación originales';
$string['navigation_topbar'] = 'Solo barra de navegación superior de Moodle (sin barras lateral)';
$string['noactivity'] = 'No hay actividad';
$string['nohotpots'] = 'No se han encontrado HotPots';
$string['nomoreattempts'] = 'Lo sentimos, no le quedan más intentos en esta actividad';
$string['noresponses'] = 'No se ha encontrado información sobre preguntas y respuestas individuales.';
$string['noreview'] = 'Lo sentimos, no tiene permiso para ver los detalles de este intento.';
$string['noreviewafterclose'] = 'Lo sentimos, este cuestionario está ya cerrado. No se le permiten ver los detalles de este intento.';
$string['noreviewbeforeclose'] = 'Lo sentimos, este cuestionario está ya cerrado. No se le permite ver los detalles de este intento hasta {$a}';
$string['nosourcefilesettings'] = 'A este HotPot le falta la información de archivo';
$string['notavailable'] = 'Lo sentimos, esta actividad no está actualmente disponible para usted.';
$string['outputformat'] = 'Formato de salida';
$string['outputformat_best'] = 'El mejor posible';
$string['outputformat_help'] = 'El formato de salida especifica cómo se presentará el contenido al estudiante.

Los formatos de salida disponibles dependen del tipo de archivo de origen. Algunos tipos de archivos de origen tienen solo un formato de salida, mientras que otros tienen varios.

"El mejor posible" mostrará el contenido usando el formato de salida más óptimo según el navegador del estudiante.';
$string['outputformat_html_ispring'] = 'Archivo HTML iSpring';
$string['outputformat_html_xerte'] = 'Archivo Xerte';
$string['outputformat_html_xhtml'] = 'Archivo HTML estándar';
$string['outputformat_qedoc'] = 'Archivo Qedoc';
$string['overviewreport'] = 'Información general';
$string['penalties'] = 'Penalizaciones';
$string['percent'] = 'Porcentaje';
$string['pluginadministration'] = 'Administración de HotPot';
$string['pluginname'] = 'Módulo HotPot';
$string['pressoktocontinue'] = 'Presione OK para cotinuar, o Cancelar para permanecer en la página actual.';
$string['questionshort'] = 'Q-{$a}';
$string['quizname_help'] = 'texto de ayuda para el nombre del cuestionario';
$string['quizzes'] = 'Preguntas';
$string['removegradeitem'] = 'Eliminar ítem de calificación';
$string['removegradeitem_help'] = '¿Se puede eliminar el elemento de calificación para esta actividad?

**No**
:el elemento de calificación para esta actividad en el libro de calificaciones de Moodle no se eliminará

**Sí**
: si la calificación máxima o la ponderación de calificaciones para este HotPot se ajusta a cero, entonces el elemento de calificación para esta actividad será eliminado del libro de calificaciones de Moodle.';
$string['responsesreport'] = 'Respuestas';
$string['score'] = 'Puntuación';
$string['scoresreport'] = 'Puntuaciones';
$string['selectattempts'] = 'Seleccione intentos';
$string['showerrormessage'] = 'Error HotPot: {$a}';
$string['sourcefile'] = 'Nombre del archivo origen';
$string['sourcefile_help'] = 'Este parámetro especifica el archivo que contiene el contenido que se mostrará a los estudiantes.

Por lo general, el archivo de origen se ha creado fuera de Moodle, y luego se  ha subido a la zona de archivos de un curso de Moodle.
Puede tratarse de un archivo html o de otro tipo de archivo que ha sido creado con software de autoría, como Hot Potatoes o Qedoc.

El archivo de origen puede ser especificado como una ruta de archivo en una carpeta en la zona de archivos del curso Moodle, o puede serlo con una URL que comienza con http:// o https://

Para materiales Qedoc, el archivo de origen debe ser la url de un módulo Qedoc que se ha cargado en el servidor Qedoc.

* ejemplo: http://www.qedoc.net/library/ABCDE_123.zip
* Para información sobre cómo subir módulos Qedoc, ver la documentación Qedoc: Uploading_modules {http://www.qedoc.org/en/index.php?title=Uploading_modules}';
$string['sourcefilenotfound'] = 'Fichero de origen no encontrado (o vacío): {$a}';
$string['status'] = 'Estado';
$string['stopbutton'] = 'Mostrar botón de parada';
$string['stopbutton_help'] = 'Si este parámetro está activado, un botón de parada se insertará dentro del la pregunta.

Si el estudiante hace clic en el botón de parada, el resultado obtenido hasta el momento se enviará a Moodle y el estado del intento de pregunta se establecerá en Abandonada.';
$string['stopbutton_langpack'] = 'Desde el pack de idioma';
$string['stopbutton_specific'] = 'Usar texto específico';
$string['stoptext'] = 'Texto del botón de parada';
$string['storedetails'] = 'Almacenar los datos XML con los detalles de los intentos de la pregunta HotPot';
$string['studentfeedback'] = 'Retroalimentación estudiante';
$string['studentfeedback_help'] = 'Si está activado, un enlace a una ventana de información emergente se mostrará cada vez que el estudiante hace clic en el botón "Comprobar". La ventana de retroalimentación permite a los estudiantes discutir sobre este cuestionario con su profesor y suscompañeros de clase, según una de las siguientes maneras:

**Página web**
: requiere la URL de la página web, por ejemplo, http://myserver.com/feedbackform.html

**Formulario de retroalimentación**
: requiere la URL del formulario, por ejemplo, http://myserver.comcgi-bin/formmail.pl

**Foro de Moodle**
: se mostrará el índice de foros del curso

**Mensaje Moodle**
: se mostrará la ventana de mensajería instantánea de Moodle. Si el cursos tiene varios profesores, el estudiante podrá elegir un profesor antes de que se visualize la ventana de mensajes.';
$string['submits'] = 'Envíos';
$string['subplugintype_hotpotattempt'] = 'Formato de salida';
$string['subplugintype_hotpotattempt_plural'] = 'Formatos de salida';
$string['subplugintype_hotpotreport'] = 'Informe';
$string['subplugintype_hotpotreport_plural'] = 'Informes';
$string['subplugintype_hotpotsource'] = 'Archivo de origen';
$string['subplugintype_hotpotsource_plural'] = 'Archivos de origen';
$string['textsourcefile'] = 'Obtener del archivo de origen';
$string['textsourcefilename'] = 'Usar el nombre del archivo origen';
$string['textsourcefilepath'] = 'Usar la ruta del archivo origen';
$string['textsourcequiz'] = 'Obtener de cuestionario';
$string['textsourcespecific'] = 'Texto específico';
$string['timeclose'] = 'Disponible hasta';
$string['timedout'] = 'Se acabó el tiempo';
$string['timelimit'] = 'Tiempo límite';
$string['timelimitexpired'] = 'El tiempo límite para este intento ha finalizado';
$string['timelimit_help'] = 'Esta configuración especifica la duración máxima de un intento.

**Usar la configuración en el archivo fuente/ plantilla**
: el límite de tiempo se tomará a partir del archivo fuente o de los archivos de plantilla para el formato de salida

**Usar tiempo específicado**
: se utilizará el tiempo límite especificado en la página de configuración de la pregunta HotPot. Este ajuste anula los límites de tiempo del archivo fuente, archivo de configuración o archivos de plantilla para este formato de salida.

**Desactivar**
: no se establece sin límite de tiempo en esta pregunta

Tenga en cuenta que si el intento se reinicia, el temporizador continuará desde donde se detuvo previamente el intento.';
$string['timelimitspecific'] = 'Usar tiempo específicado';
$string['timelimitsummary'] = 'Tiempo límite para un intento';
$string['timelimittemplate'] = 'Usar la configuración en el archivo fuente/ plantilla';
$string['timeopen'] = 'Disponible desde';
$string['timeopenclose'] = 'Tiempos de apertura y cierre';
$string['timeopenclose_help'] = 'Puede especificar las horas en las que el cuestionario es accesible para que se pueda responder. Antes de la hora de apertura, y después de la hora de cierre, el cuestionario no estará disponible.';
$string['title'] = 'Título';
$string['title_help'] = 'Este ajuste especifica el título que se mostrará en la página web.

** Nombre de la actividad HotPot**
: se muestra como título de la página web el nombre de esta actividad HotPot.

** Obtener del fichero origen **
: se muestra como título de la página web el definido en el archivo origen.

**Nombre del archivo origen**
: se muestra como título de la página web el nombre del archivo origen

**Usar ruta de archivo origen**
: se muestra como título de la página web la ruta del archivo origen, incluyendo los nombres de carpeta.';
$string['unitname_help'] = 'texto de ayuda para el nombre';
$string['unrecognizedsourcefile'] = 'Lo sentimos, el módulo HotPot no ha podido detectar el tipo de archivo de origen: {$a}';
$string['updated'] = 'Actualizado';
$string['usefilters'] = 'Usar filtros';
$string['usefilters_help'] = 'Si este parámetro está activado, el contenido pasará a través de los filtros de Moodle antes de ser enviado al navegador.';
$string['useglossary'] = 'Usar glosario';
$string['useglossary_help'] = 'Si este parámetro está activado, el contenido pasará a través del filtro de Moodle Autoenlace del Glosario, antes de ser enviado al navegador.';
$string['usemediafilter'] = 'Usar filtro multimedia';
$string['usemediafilter_help'] = 'Este parámetro especifica el filtro multimedia que se usará.

**Ninguno**
: el contenido no pasa por ningún filtro multimedia.

**Filtros multimedia estándar de Moodle**
: el contenido pasa a través de los filtros estándar de Moodle. Estos filtros buscan enlaces a los tipos más habituales de archvivos de vídeo y sonido, y convierten esos enlaces a los
reproductores adecuados.

**Filtros multimedia HotPot**
: el contenido pasa por filtros que detectan enlaces, imágenes, sonidos y videos que se especifican usando una notación entre corchetes. La notación con corchetes tiene la siguiente sintaxis: <code>[url player width height options]</code>

**URL**
: la url absoluta o relativa del archivo
Reproductor** (opcional)
: el nombre del reproductor a insertar. El valor por defecto de este parámetro es "moodle". La versión estándar del módulo HotPot también ofrece los sigueintes reproductores:
: **dew**: reproductor mp3
: **dyer**: reproductor mp3 de Bernard Dyer
: **hbs**: reproductor mp3 de Half-Baked Software
: **imagen**: insertar una imagen en la página web
: **enlace**: insertar un enlace en otra página web

**anchura** (opcional)
: la anchura requerida por el reproductor

**altura** (opcional)
: la altura requerida por el reproductor. Si se omite este valor, se establece el mismo valor que la anchura

**opciones** (opcional)
: se pasa al reproductor una lista de opciones, separada por comas. Cada opción debe ser un conector "on/off", o u par de valores
: **nombre=valor
: **nombre="algun valor con espacios"';
$string['viewreports'] = 'Ver informes de {$a} usuarios';
$string['views'] = 'Vistas';
$string['weighting'] = 'Ponderación';
$string['wrong'] = 'Incorrecto';
$string['zeroduration'] = 'Sin duración';
$string['zeroscore'] = 'Puntuación cero';


text:
module Gridium
  VERSION = "1.2.#{ENV['TRAVIS_BUILD_NUMBER']}"
end

redpajama_set_name: RedPajamaGithub


text:
% Copyright 2021 Google LLC
%
% 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.

%% Scripts for applying pre-processing dithering to videos
%
%
% Instructions:
% Sctips to run proposed pre-processing dithering methods to input videos. Note
% that original videos are also passed to the rgb-yuv-rgb color conversion for
% fair comparison.
%
% change the parameters in %%Configs%% session and run this entire script.
%
% Required toolboxes: (should be included in path)
%
% 'ffmpeg'
% 'transcoder2' (google3)
% drawedgelist.m
% edgelink.m
% filledgegaps.m
% findendsjunctions.m
% findisolatedpixels.m
% nonmaxsup.m
% circularstruct.m
% BBAD_I.m

close all;
clear;
warning('off','all');

%% Configs %%
curr_dir = pwd;
data_dir = 'data';
lib_dir = 'lib';
result_dir = 'result_preprocessing';
% video parameters
% if different framerates, should store in array [30,25,25,24..] and modify the
% call of video_framerate in Main Body to video_framerate(i)~
video_framerate = 30;
vid_width = 1280;
vid_height = 720;
% banding detection params
imguidedfilt_ws = 5;
% noise params
noise_level = 2;
half_ws = 16;
% transcoding setting: '248,247,137,136'...
output_formats = '247';
% output_formats = '248,247,137,136';
transcoder_abs_dir = '/google/src/cloud/zhengzhongtu/debanding_addNoise/google3/blaze-bin/video/transcoder2/tools/transcoder';
%%%%%%%%%%%%%%%

%% Main Body
if ~exist(result_dir,'dir')
  mkdir(result_dir);
end
addpath(genpath(lib_dir))

% parse data names
test_seqs = dir(data_dir);
test_seqs = {test_seqs.name};
% dir results always like  '.','..','video1.mp4','video2.mp4',...
% so we start from 3 to exclude '.','..'
test_seqs = test_seqs(3:end);

% video level banding score
banding_score_BBAD_V = zeros(1, length(test_seqs));
% frame level banding score
banding_score_BBAD_I_frames = cell(1, length(test_seqs));

% for each sequence
for i = 1:length(test_seqs)
  video_name = fullfile(data_dir, test_seqs{i});
  [filepath, name, ext] = fileparts(video_name);

  %% pass original videos
  disp(['-- Processing ',name, '...']);
  % store extracted frames
  frames_raw_dir = fullfile(result_dir, 'frames_raw_dir');
  if ~exist(frames_raw_dir, 'dir')
    mkdir(frames_raw_dir);
  end
  % delete all png files if existed
  cd(frames_raw_dir)
  delete *.png
  cd(curr_dir)

  system(['ffmpeg -hide_banner -y -i ', video_name, ' ', ...
              fullfile(frames_raw_dir,'thumb%04d.png')]);
  num_frames = length(dir(frames_raw_dir))-2;

  frames_proc_dir = fullfile(result_dir, 'frames_proc_dir');
  if ~exist(frames_proc_dir, 'dir')
    mkdir(frames_proc_dir);
  end
  % delete all png files if existed
  cd(frames_proc_dir)
  delete *.png
  cd(curr_dir)

  % cvt each video for fair comparison
  for jj = 1:num_frames
    im_rgb = im2double(imread(fullfile(frames_raw_dir, ...
      sprintf('thumb%04d.png',jj))));
    % cvt to yuv
    im_yuv = rgb2ycbcr(im_rgb);
    % only process y plane
    im_rgb = ycbcr2rgb(im_yuv);
    imwrite(im2uint8(im_rgb), fullfile(frames_proc_dir, ...
        [name, sprintf('_frame%04d.png',jj)]));
  end
  % video output name
  out_dir = fullfile(result_dir, name);
  if ~exist(out_dir, 'dir')
    mkdir(out_dir);
  end
  video_raw_name = fullfile(out_dir, [name, '.y4m']);
  % concate frames to video
  cmd = ['ffmpeg -hide_banner -y', ' -framerate ', ...
    num2str(video_framerate),' -i ', fullfile(frames_proc_dir, ...
    [name, '_frame%04d.png']), ' -pix_fmt yuv420p', ' -start_number 1', ...
    ' -s ', num2str(vid_width), 'x',num2str(vid_height), ' ', video_raw_name];
  system(cmd);

  %% Banding detection and adding noise
  % extracted frames from videos
  frames_raw_dir = fullfile(result_dir, 'frames_raw_dir');
  if ~exist(frames_raw_dir, 'dir')
    mkdir(frames_raw_dir);
  end
  % delete all png files if existed
  cd(frames_raw_dir)
  delete *.png
  cd(curr_dir)

  system(['ffmpeg -hide_banner -y -i ', video_name, ' ', ...
              fullfile(frames_raw_dir,'thumb%04d.png')]);
  num_frames = length(dir(frames_raw_dir)) - 2;

  frames_proc_dir = fullfile(result_dir, 'frames_proc_dir');
  if ~exist(frames_proc_dir, 'dir')
    mkdir(frames_proc_dir);
  end
  % delete all png files if existed
  cd(frames_proc_dir)
  delete *.png
  cd(curr_dir)

  banding_scores_BBAD_tmp  = zeros(1, num_frames);
  banding_score_BBAD_I_frames{1,i} = zeros(1, num_frames);
  % store previous frame
  im_prev_frame = [];
  k = 0;

  for jj = 1:num_frames
    k = k + 1;
    im_rgb = im2double(imread(fullfile(frames_raw_dir, ...
                          sprintf('thumb%04d.png',jj))));
    % cvt to yuv in double precision
    im_yuv = rgb2ycbcr(im_rgb);
    % only process y plane
    im_yyy = im_yuv(:,:,1);

    % Banding region detectino by BBAD
    disp('-- Running BBAD_I')
    tic
    [band_vis_map, band_edge_list, band_score, grad_mag, grad_dir] = ...
                        BBAD_I(im2uint8(im_yyy), imguidedfilt_ws);
    toc
    %% Adding noise
    frames_proc_dir = fullfile(result_dir, 'frames_proc_dir');
    if ~exist(frames_proc_dir, 'dir')
      mkdir(frames_proc_dir);
    end
    % delete all png files if existed

    disp('-- Pre-processing by dithering ...')
    % Gray scale processing -- only processing Y-ch
    % initialize local processsing
    im_yyy_local_dith = im_yyy;
    tic
    [M_bandpixs,N_bandpixs] = find(band_vis_map > 0);
    % only process non-textured pixels
    mask_proc = grad_mag <= 12;

    % apply uniform noise around each pixel
    for ii = 1:length(M_bandpixs)
      mm = M_bandpixs(ii);
      nn = N_bandpixs(ii);
      blk_mm_range = max([1, mm - half_ws]): ...
                     min([mm + half_ws, vid_height]);
      blk_nn_range = max([1, nn - half_ws]): ...
                     min([nn + half_ws, vid_width ]);
      im_yyy_local_dith(blk_mm_range, blk_nn_range) = ...
          im_yyy( blk_mm_range, blk_nn_range ) + ...
          2*noise_level.*(rand(length(blk_mm_range), ...
                                length(blk_nn_range))-0.5)./255;
    end
    % replace
    im_yyy( mask_proc ) = im_yyy_local_dith( mask_proc );

    toc
    % writing our dithered frames.
    im_yuv(:,:,1) = im_yyy;
    im_rgb = ycbcr2rgb(im_yuv);
    imwrite(im2uint8(im_rgb), fullfile(frames_proc_dir,[name, '_dither', ...
      sprintf('_frame%04d.png',jj)]));

    %% modulated by temporal score
    if isempty(im_prev_frame)
      ti = 0;
    else
      ti = std2(rgb2gray(uint8(im_rgb)) - rgb2gray(uint8(im_prev_frame)));
    end
    % get TI masking weight
    w_ti = exp( - (ti / 20) ^ 2 ) ;
    % calculate BBAD_I score for curr frame
    banding_score_BBAD_I_frames{1,i}(jj) = w_ti * band_score;
    % write results
    out_dir = fullfile(result_dir, 'BBAD_output', name);
    if ~exist(out_dir,'dir')
      mkdir(out_dir);
    end
    mat_name_out = fullfile(out_dir, sprintf('frame%04d_BBAD.mat',k));
    save(mat_name_out, 'band_vis_map', 'band_edge_list', ...
             'band_score', 'grad_mag', 'grad_dir');
    im_prev_frame = im_rgb;
  end
  banding_score_BBAD_V(1,i) = mean(banding_score_BBAD_I_frames{1,i});

  %% concate frames to videos

  out_dir = fullfile(result_dir,'pre_proc_videos', name);
  if ~exist(out_dir,'dir')
    mkdir(out_dir);
  end
  video_name_out = fullfile(out_dir, [name, '_dither', '.y4m']);
  cmd = ['ffmpeg -hide_banner -y', ' -framerate ', num2str(video_framerate),...
    ' -i ', fullfile(frames_proc_dir,[name,'_dither','_frame%04d.png']), ...
      ' -pix_fmt yuv420p', ' -start_number 1', ' -s ', ...
      num2str(vid_width), 'x',num2str(vid_height), ' ', video_name_out];
  system(cmd);
  % remove the tmp frames
  cd(frames_proc_dir)
  delete *.png
  cd(curr_dir)

  %% trancode videos to 248,247...
  out_dir = fullfile(result_dir, 'pre_proc_videos', name);
  if ~exist(out_dir,'dir'),  mkdir(out_dir); end
  video_name_out = fullfile(out_dir, [name, '_dither', '.y4m']);
  video_in_abs_path = fullfile(curr_dir, video_name_out);
  video_trans_abs_path = fullfile(out_dir, [name, '_dither']);

  cmd = [transcoder_abs_dir, ...
  ' --input_file=', video_in_abs_path, ' --output_file_prefix=', ...
  video_trans_abs_path, ' --output_formats=', output_formats, ...
  ' --logtostderr'];
  system(cmd);
end


text:
namespace Lucene.Net.Util.junitcompat
{

	/// <summary>
	/// A pointcut-like definition where we should trigger
	/// an assumption or error.
	/// </summary>
	public enum SorePoint
	{
	  // STATIC_INITIALIZER, // I assume this will result in JUnit failure to load a suite.
	  BEFORE_CLASS,
	  INITIALIZER,
	  RULE,
	  BEFORE,
	  TEST,
	  AFTER,
	  AFTER_CLASS
	}
}


text:
"use strict";

const {strict: assert} = require("assert");

const {zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const blueslip = require("../zjsunit/zblueslip");
const $ = require("../zjsunit/zjquery");

const {PollData} = zrequire("../../static/shared/js/poll_data");

const poll_widget = zrequire("poll_widget");

const people = zrequire("people");

const me = {
    email: "me@zulip.com",
    full_name: "Me Myself",
    user_id: 99,
};
const alice = {
    email: "alice@zulip.com",
    full_name: "Alice Lee",
    user_id: 100,
};
people.add_active_user(me);
people.add_active_user(alice);
people.initialize_current_user(me.user_id);

run_test("PollData my question", () => {
    const is_my_poll = true;
    const question = "Favorite color?";

    const data_holder = new PollData({
        current_user_id: me.user_id,
        message_sender_id: me.user_id,
        is_my_poll,
        question,
        options: [],
        comma_separated_names: people.get_full_names_for_poll_option,
        report_error_function: blueslip.warn,
    });

    let data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [],
        question: "Favorite color?",
    });

    const question_event = {
        type: "question",
        question: "best plan?",
    };

    data_holder.handle_event(me.user_id, question_event);
    data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [],
        question: "best plan?",
    });

    const option_event = {
        type: "new_option",
        idx: 1,
        option: "release now",
    };

    data_holder.handle_event(me.user_id, option_event);
    data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [
            {
                option: "release now",
                names: "",
                count: 0,
                key: "99,1",
                current_user_vote: false,
            },
        ],
        question: "best plan?",
    });

    let vote_event = {
        type: "vote",
        key: "99,1",
        vote: 1,
    };

    data_holder.handle_event(me.user_id, vote_event);
    data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [
            {
                option: "release now",
                names: "Me Myself",
                count: 1,
                key: "99,1",
                current_user_vote: true,
            },
        ],
        question: "best plan?",
    });

    vote_event = {
        type: "vote",
        key: "99,1",
        vote: 1,
    };

    data_holder.handle_event(alice.user_id, vote_event);
    data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [
            {
                option: "release now",
                names: "Me Myself, Alice Lee",
                count: 2,
                key: "99,1",
                current_user_vote: true,
            },
        ],
        question: "best plan?",
    });

    const invalid_vote_event = {
        type: "vote",
        key: "98,1",
        vote: 1,
    };

    blueslip.expect("warn", `unknown key for poll: ${invalid_vote_event.key}`);
    data_holder.handle_event(me.user_id, invalid_vote_event);
    data = data_holder.get_widget_data();

    const option_outbound_event = data_holder.handle.new_option.outbound("new option");
    assert.deepEqual(option_outbound_event, {
        type: "new_option",
        idx: 2,
        option: "new option",
    });

    const new_question = "Any new plan?";
    const question_outbound_event = data_holder.handle.question.outbound(new_question);
    assert.deepEqual(question_outbound_event, {
        type: "question",
        question: new_question,
    });

    const vote_outbound_event = data_holder.handle.vote.outbound("99,1");
    assert.deepEqual(vote_outbound_event, {type: "vote", key: "99,1", vote: -1});

    vote_event = {
        type: "vote",
        key: "99,1",
        vote: -1,
    };

    data_holder.handle_event(me.user_id, vote_event);
    data = data_holder.get_widget_data();

    assert.deepEqual(data, {
        options: [
            {
                option: "release now",
                names: "Alice Lee",
                count: 1,
                key: "99,1",
                current_user_vote: false,
            },
        ],
        question: "best plan?",
    });
});

run_test("wrong person editing question", () => {
    const is_my_poll = true;
    const question = "Favorite color?";

    const data_holder = new PollData({
        current_user_id: me.user_id,
        message_sender_id: me.user_id,
        is_my_poll,
        question,
        options: [],
        comma_separated_names: people.get_full_names_for_poll_option,
        report_error_function: blueslip.warn,
    });

    const question_event = {
        type: "question",
        question: "best plan?",
    };

    blueslip.expect("warn", "user 100 is not allowed to edit the question");

    data_holder.handle_event(alice.user_id, question_event);

    assert.deepEqual(data_holder.get_widget_data(), {
        options: [],
        question: "Favorite color?",
    });
});

run_test("activate another person poll", ({mock_template}) => {
    mock_template("widgets/poll_widget.hbs", false, () => "widgets/poll_widget");
    mock_template("widgets/poll_widget_results.hbs", false, () => "widgets/poll_widget_results");

    const $widget_elem = $("<div>").addClass("widget-content");

    let out_data; // Used to check the event data sent to the server
    const callback = (data) => {
        out_data = data;
    };

    const opts = {
        $elem: $widget_elem,
        callback,
        message: {
            sender_id: alice.user_id,
        },
        extra_data: {
            question: "What do you want?",
        },
    };

    const set_widget_find_result = (selector) => {
        const $elem = $.create(selector);
        $widget_elem.set_find_results(selector, $elem);
        return $elem;
    };

    const $poll_option = set_widget_find_result("button.poll-option");
    const $poll_option_input = set_widget_find_result("input.poll-option");
    const $widget_option_container = set_widget_find_result("ul.poll-widget");

    const $poll_question_submit = set_widget_find_result("button.poll-question-check");
    const $poll_edit_question = set_widget_find_result(".poll-edit-question");
    const $poll_question_header = set_widget_find_result(".poll-question-header");
    const $poll_question_container = set_widget_find_result(".poll-question-bar");
    const $poll_option_container = set_widget_find_result(".poll-option-bar");

    const $poll_vote_button = set_widget_find_result("button.poll-vote");
    const $poll_please_wait = set_widget_find_result(".poll-please-wait");
    const $poll_author_help = set_widget_find_result(".poll-author-help");

    set_widget_find_result("button.poll-question-remove");
    set_widget_find_result("input.poll-question");

    poll_widget.activate(opts);

    assert.ok($poll_option_container.visible());
    assert.ok($poll_question_header.visible());

    assert.ok(!$poll_question_container.visible());
    assert.ok(!$poll_question_submit.visible());
    assert.ok(!$poll_edit_question.visible());
    assert.ok(!$poll_please_wait.visible());
    assert.ok(!$poll_author_help.visible());

    assert.equal($widget_elem.html(), "widgets/poll_widget");
    assert.equal($widget_option_container.html(), "widgets/poll_widget_results");
    assert.equal($poll_question_header.text(), "What do you want?");

    {
        /* Testing data sent to server on adding option */
        $poll_option_input.val("cool choice");
        out_data = undefined;
        $poll_option.trigger("click");
        assert.deepEqual(out_data, {type: "new_option", idx: 1, option: "cool choice"});

        $poll_option_input.val("");
        out_data = undefined;
        $poll_option.trigger("click");
        assert.deepEqual(out_data, undefined);
    }

    const vote_events = [
        {
            sender_id: alice.user_id,
            data: {
                type: "new_option",
                idx: 1,
                option: "release now",
            },
        },
        {
            sender_id: alice.user_id,
            data: {
                type: "vote",
                key: "100,1",
                vote: 1,
            },
        },
    ];

    $widget_elem.handle_events(vote_events);

    {
        /* Testing data sent to server on voting */
        $poll_vote_button.attr("data-key", "100,1");
        out_data = undefined;
        $poll_vote_button.trigger("click");
        assert.deepEqual(out_data, {type: "vote", key: "100,1", vote: 1});
    }

    const add_question_event = [
        {
            sender_id: 100,
            data: {
                type: "question",
                question: "best plan?",
            },
        },
    ];

    $widget_elem.handle_events(add_question_event);
});

run_test("activate own poll", ({mock_template}) => {
    mock_template("widgets/poll_widget.hbs", false, () => "widgets/poll_widget");
    mock_template("widgets/poll_widget_results.hbs", false, () => "widgets/poll_widget_results");

    const $widget_elem = $("<div>").addClass("widget-content");
    let out_data;
    const callback = (data) => {
        out_data = data;
    };
    const opts = {
        $elem: $widget_elem,
        callback,
        message: {
            sender_id: me.user_id,
        },
        extra_data: {
            question: "Where to go?",
        },
    };

    const set_widget_find_result = (selector) => {
        const $elem = $.create(selector);
        $widget_elem.set_find_results(selector, $elem);
        return $elem;
    };

    set_widget_find_result("button.poll-option");
    const $poll_option_input = set_widget_find_result("input.poll-option");
    const $widget_option_container = set_widget_find_result("ul.poll-widget");

    const $poll_question_submit = set_widget_find_result("button.poll-question-check");
    const $poll_edit_question = set_widget_find_result(".poll-edit-question");
    const $poll_question_input = set_widget_find_result("input.poll-question");
    const $poll_question_header = set_widget_find_result(".poll-question-header");
    const $poll_question_container = set_widget_find_result(".poll-question-bar");
    const $poll_option_container = set_widget_find_result(".poll-option-bar");

    set_widget_find_result("button.poll-vote");
    const $poll_please_wait = set_widget_find_result(".poll-please-wait");
    const $poll_author_help = set_widget_find_result(".poll-author-help");

    set_widget_find_result("button.poll-question-remove");

    function assert_visibility() {
        assert.ok($poll_option_container.visible());
        assert.ok($poll_question_header.visible());
        assert.ok(!$poll_question_container.visible());
        assert.ok($poll_edit_question.visible());
        assert.ok(!$poll_please_wait.visible());
        assert.ok(!$poll_author_help.visible());
    }

    poll_widget.activate(opts);

    assert_visibility();
    assert.ok(!$poll_question_submit.visible());

    assert.equal($widget_elem.html(), "widgets/poll_widget");
    assert.equal($widget_option_container.html(), "widgets/poll_widget_results");
    assert.equal($poll_question_header.text(), "Where to go?");

    {
        /* Testing data sent to server on editing question */
        $poll_question_input.val("Is it new?");
        out_data = undefined;
        $poll_question_submit.trigger("click");
        assert.deepEqual(out_data, {type: "question", question: "Is it new?"});

        assert_visibility();
        assert.ok($poll_question_submit.visible());

        $poll_option_input.val("");
        out_data = undefined;
        $poll_question_submit.trigger("click");
        assert.deepEqual(out_data, undefined);
    }
});


text:
exports = module.exports = {
    "searchValue": "er"
};


text:
========
Overview
========

.. start-badges

.. list-table::
    :stub-columns: 1

    * - tests
      - | |travis|
        | |coveralls|
    * - package
      - |version| |downloads| |wheel| |supported-versions| |supported-implementations|

.. |travis| image:: https://travis-ci.org/hsharrison/history-queue.svg?branch=master
    :alt: Travis-CI Build Status
    :target: https://travis-ci.org/hsharrison/history-queue

.. |coveralls| image:: https://coveralls.io/repos/hsharrison/history-queue/badge.svg?branch=master&service=github
    :alt: Coverage Status
    :target: https://coveralls.io/r/hsharrison/history-queue

.. |version| image:: https://img.shields.io/pypi/v/hqueue.svg?style=flat
    :alt: PyPI Package latest release
    :target: https://pypi.python.org/pypi/hqueue

.. |downloads| image:: https://img.shields.io/pypi/dm/hqueue.svg?style=flat
    :alt: PyPI Package monthly downloads
    :target: https://pypi.python.org/pypi/hqueue

.. |wheel| image:: https://img.shields.io/pypi/wheel/hqueue.svg?style=flat
    :alt: PyPI Wheel
    :target: https://pypi.python.org/pypi/hqueue

.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/hqueue.svg?style=flat
    :alt: Supported versions
    :target: https://pypi.python.org/pypi/hqueue

.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/hqueue.svg?style=flat
    :alt: Supported implementations
    :target: https://pypi.python.org/pypi/hqueue

.. end-badges

``asyncio.Queue`` with history::

Objects put on a ``HistoryQueue`` are gathered in tuples,
with the first element being the next item on the queue,
followed by items add previously.

``HistoryQueue`` can also be thought of as as asynchronous ``collections.deque``,
with ``put`` analogous to ``deque.appendleft``
and ``get`` returning the entire deque (as a tuple).

    >>> from hqueue import HistoryQueue
    >>> hq = HistoryQueue(history_size=2)
    >>> hq.put_nowait(0)
    >>> hq.put_nowait(1)
    >>> hq.get_nowait()
    (0,)
    >>> hq.get_nowait()
    (1, 0)
    >>> hq.put_nowait(2)
    >>> hq.put_nowait(3)
    >>> hq.put_nowait(4)
    >>> hq.get_nowait()
    (2, 1, 0)
    >>> hq.get_nowait()
    (3, 2, 1)

For ease of illustration, in the above examples we use ``put_nowait`` and ``get_nowait``,
the synchronous counterparts of ``put`` and ``wait``, respectively.
In a coroutine, ``await put()`` could be used to block until the queue is not full,
and ``await get()`` to block until there is an item in the queue.

See Also
--------
``asyncio.Queue``
``collections.deque``


text:
package com.zhongshu.maintenanceexpert.activitity;

import android.Manifest;
import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.content.PermissionChecker;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.maps.AMap;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.zhongshu.maintenanceexpert.Constants;
import com.zhongshu.maintenanceexpert.MyApplication;
import com.zhongshu.maintenanceexpert.R;
import com.zhongshu.maintenanceexpert.bean.CompanyDetailBean;
import com.zhongshu.maintenanceexpert.bean.CompanyListBean;
import com.zhongshu.maintenanceexpert.model.CitysModel;
import com.zhongshu.maintenanceexpert.utils.MapLocationUtils;
import com.zhongshu.maintenanceexpert.utils.ToastUtils;
import com.zhongshu.maintenanceexpert.utils.XCRoundRectImageView;
import com.zhongshu.maintenanceexpert.views.LoadGif;
import com.zhy.autolayout.AutoLinearLayout;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import okhttp3.Call;

/**
 * 找公司界面
 */
public class FindCompanyActivity extends BaseActivity implements View.OnClickListener{
    private TextView back,title,allCity,sort;
    private ImageView search,map;
    private PullToRefreshListView listview;
    private PopupWindow popupWindow1;
    private PopupWindow popUpWindow2;
    private TextView changeCity;
    private GridView gridView1;
    private AutoLinearLayout tab;
    private TextView currentCity;
    private LoadGif loadGif;
    //定位
    private String address;
    private MapLocationUtils utils;
    private AMap aMap;
    private TextView location;
    private LocationSource.OnLocationChangedListener listener;
    private AMapLocationClient aMapLocationClient;
    private AMapLocationClientOption aMapLocationClientOption;
    private boolean isLocation = true;
    private List<TextView> list = new ArrayList<>();

    private List<CitysModel> district = null;
    private GvAdapter adapter;
    private MyAdapter mAdapter;

    private List<CitysModel> cityList1;

    private HashMap<String,String> compMap;

    private TextView zongheSort,hotSort,highSort,nearSort;

    private int [] companyImg = {R.mipmap.shengfuli,R.mipmap.jielian,R.mipmap.laizhou,R.mipmap.no1,R.mipmap.no1};

    private ArrayList<CompanyListBean.DataBean> companyList1 = new ArrayList<>();

    //获取城市id
    private String cityId;

    private CompanyListBean data;

    private  ViewHolder holder;

    //判断是否第一次打开popwindow
    private boolean flag = true;

    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 0x200){
                address = utils.address;
                location.setText(address);
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_company);
        MyApplication.getInstance().addActivity(this);
        //判断权限
        boolean flag = PermissionChecker.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PermissionChecker.PERMISSION_GRANTED;
        boolean flag1 = PermissionChecker.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PermissionChecker.PERMISSION_GRANTED;

        initView();
        initData1();
        showDialog();
        if (flag && flag1){
            initMapLocation();
        }else {
            location.setText("定位失败");
            ToastUtils.showToast(FindCompanyActivity.this,"请手动打开定位权限");
        }
    }

    public void initView(){
        back = (TextView) findViewById(R.id.tv_title_left);
        title = (TextView) findViewById(R.id.tv_title);
        search = (ImageView) findViewById(R.id.iv_title_right);
        listview = (PullToRefreshListView) findViewById(R.id.plv_company);
        map = (ImageView) findViewById(R.id.iv_map);
        allCity = (TextView) findViewById(R.id.tv_city);
        sort = (TextView) findViewById(R.id.tv_sort);
        tab = (AutoLinearLayout) findViewById(R.id.ll_tab);
        location = (TextView) findViewById(R.id.tv_location);
    }

    public void initData1(){
        //初始化城市数据
        getDate(initData());

        mAdapter=new MyAdapter();
        back.setVisibility(View.VISIBLE);
        title.setText("运维公司");

        search.setOnClickListener(this);
        back.setOnClickListener(this);
        map.setOnClickListener(this);
        allCity.setOnClickListener(this);
        sort.setOnClickListener(this);

        cityList1 = xian.get("224");
        cityList1.add(0,new CitysModel("224","全城"));

        postInfo();

        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent = new Intent(FindCompanyActivity.this,CompanyDetailActivity.class);
                intent.putExtra("detailMessage",companyList1.get(i-1));
                startActivity(intent);
            }
        });
    }

    public void postInfo(){
        compMap = new HashMap<>();
        compMap.put("company_id","0");

        OkHttpUtils.post().params(compMap).url(Constants.URL_COMPANY_INFO).build().execute(new StringCallback() {
            @Override
            public void onError(Call call, Exception e, int id) {
                loadGif.dismiss();
                ToastUtils.showToast(FindCompanyActivity.this,"请检查网络");
            }

            @Override
            public void onResponse(String response, int id) {
                loadGif.dismiss();
                Gson gson = new Gson();
                data = gson.fromJson(response, CompanyListBean.class);
                for (int i = 0; i < data.getData().size(); i++) {
                    companyList1.add(data.getData().get(i));
                }
                mAdapter.notifyDataSetChanged();
                listview.setAdapter(mAdapter);
            }
        });
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.tv_title_left:
                finish();
                break;
            case R.id.iv_title_right:
                ToastUtils.showToast(this,"搜索界面");
                break;
            case R.id.iv_map:
                startActivity(new Intent(FindCompanyActivity.this,MapActivity.class));
                break;
            case R.id.tv_city:
                if (list != null && list.size() > 0){
                    list.clear();
                }
                if (popupWindow1 != null){
                    flag = false;
                    setBackgroundAlpha(0.5f);//设置屏幕透明度
                    popupWindow1.showAsDropDown(tab,0,0);
                }else {
                    popUpCityWindow();
                }
                break;
            case R.id.tv_sort:
                popUpSortWindow();
                break;
            case R.id.tv_sort_zonghe:
                ToastUtils.showToast(this,"综合排序");
                popUpWindow2.dismiss();
                sort.setText("综合排序");
                break;
            case R.id.tv_sort_hot:
                ToastUtils.showToast(this,"热门排序");
                popUpWindow2.dismiss();
                sort.setText("热门排序");
                break;
            case R.id.tv_sort_high:
                ToastUtils.showToast(this,"口碑飙升");
                popUpWindow2.dismiss();
                sort.setText("口碑飙升");
                break;
            case R.id.tv_sort_near:
                ToastUtils.showToast(this,"离我最近");
                popUpWindow2.dismiss();
                sort.setText("离我最近");
                break;
            default:
                break;
        }
    }

    //加载定位
    private void initMapLocation() {
        aMap = new MapView(this).getMap();
        utils = new MapLocationUtils(listener,aMapLocationClient,aMapLocationClientOption);
        utils.initMapAddress(aMap,FindCompanyActivity.this,handler);
        location.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                location.setText("正在定位");
                utils.initMapAddress(aMap,FindCompanyActivity.this,handler);
            }
        });
    }

    //弹出城市选择框
    public void popUpCityWindow(){
        View popupView1 = LayoutInflater.from(FindCompanyActivity.this).inflate(R.layout.popwin_item1,null);
        gridView1 = (GridView) popupView1.findViewById(R.id.gv_city);
        currentCity = (TextView) popupView1.findViewById(R.id.tv_currentCity);
        changeCity = (TextView)popupView1.findViewById(R.id.tv_change);

        popupWindow1 = new PopupWindow(popupView1, LinearLayoutCompat.LayoutParams.MATCH_PARENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT, true);
        setBackgroundAlpha(0.5f);//设置屏幕透明度
        popupWindow1.setAnimationStyle(R.style.PopupAnimation);
        popupWindow1.setTouchable(true);
        popupWindow1.setOutsideTouchable(true);
        popupWindow1.setBackgroundDrawable(new BitmapDrawable());
        popupWindow1.setOutsideTouchable(true);
        popupWindow1.showAsDropDown(tab,0,0);
        //设置关闭弹窗后变为不透明
        popupWindow1.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                setBackgroundAlpha(1.0f);
            }
        });
        adapter = new GvAdapter();
        gridView1.setAdapter(adapter);
        changeCity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //打开选择城市界面
                Intent intent =new Intent(FindCompanyActivity.this, CityAddressActivity.class);
                startActivityForResult(intent,1);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 1:
                if (resultCode==RESULT_OK) {
                    String data_return = data.getStringExtra("city");
                    cityId = data.getStringExtra("city_id");
                    currentCity.setText(data_return);
                    district = (List<CitysModel>) data.getSerializableExtra("disData");
                    district.add(0,new CitysModel(cityId,"全城"));
                    adapter.notifyDataSetChanged();
//                    list.get(0).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.white));
//                    list.get(0).setBackgroundResource(R.drawable.shape1);
                    list.clear();
                }
                break;
        }
    }

    //弹出排序框
    public void popUpSortWindow(){
        View popupView2 = LayoutInflater.from(FindCompanyActivity.this).inflate(R.layout.popwin_item2,null);
        popUpWindow2 = new PopupWindow(popupView2, LinearLayoutCompat.LayoutParams.MATCH_PARENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT, true);
        popUpWindow2.setAnimationStyle(R.style.PopupAnimation);
        popUpWindow2.setTouchable(true);
        popUpWindow2.setOutsideTouchable(true);
        popUpWindow2.setBackgroundDrawable(new BitmapDrawable());
        popUpWindow2.setOutsideTouchable(true);
        setBackgroundAlpha(0.5f);//设置屏幕透明度
        popUpWindow2.showAsDropDown(tab,0,0);
        //设置关闭弹窗后变为不透明
        popUpWindow2.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                setBackgroundAlpha(1.0f);
            }
        });

        zongheSort = (TextView) popupView2.findViewById(R.id.tv_sort_zonghe);
        hotSort = (TextView) popupView2.findViewById(R.id.tv_sort_hot);
        highSort = (TextView) popupView2.findViewById(R.id.tv_sort_high);
        nearSort = (TextView) popupView2.findViewById(R.id.tv_sort_near);

        zongheSort.setOnClickListener(this);
        hotSort.setOnClickListener(this);
        highSort.setOnClickListener(this);
        nearSort.setOnClickListener(this);

    }

    private void showDialog(){
        loadGif = new LoadGif(this, R.style.HKDialog);
        loadGif.setCancelable(false);
        loadGif.show();
    }

    //设置透明度
    public void setBackgroundAlpha(float bgAlpha) {
        WindowManager.LayoutParams lp = this.getWindow().getAttributes();
        lp.alpha = bgAlpha;
        this.getWindow().setAttributes(lp);
    }

    public class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return companyList1 == null ? 0:companyList1.size();
        }

        @Override
        public Object getItem(int i) {
            return companyList1.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View convertView, ViewGroup viewGroup) {
            ViewHolder holder;
            if(convertView == null){
                holder = new ViewHolder();
                convertView = LayoutInflater.from(FindCompanyActivity.this).inflate(R.layout.com_info_item,null);
                convertView.setTag(holder);
            }else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.image = (XCRoundRectImageView) convertView.findViewById(R.id.iv_image);
            holder.companyName = (TextView) convertView.findViewById(R.id.tv_company_name);
            holder.wordOfMouth = (TextView) convertView.findViewById(R.id.tv_wordOfMouth);
            holder.hignComment = (TextView) convertView.findViewById(R.id.tv_hignComment);
            holder.designPlan = (TextView) convertView.findViewById(R.id.tv_designPlan);
            holder.consultNum = (TextView) convertView.findViewById(R.id.tv_consultNum);

            holder.companyName.setText(companyList1.get(i).getCompany_name());

            return convertView;
        }
    }

    public class ViewHolder{
        TextView tvCity;
        AutoLinearLayout lay;
        XCRoundRectImageView image;
        TextView companyName;
        TextView wordOfMouth;
        TextView hignComment;
        TextView designPlan;
        TextView consultNum;
    }

    public class GvAdapter extends BaseAdapter{

        @Override
        public int getCount() {

            return district == null ? cityList1.size():district.size();
        }

        @Override
        public Object getItem(int i) {
            return district == null ? cityList1.get(i) : district.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(final int i, View convertView, ViewGroup viewGroup) {
            if(convertView == null){
                holder = new ViewHolder();
                convertView = LayoutInflater.from(FindCompanyActivity.this).inflate(R.layout.text_item1,null);
                convertView.setTag(holder);
            }else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.tvCity = (TextView) convertView.findViewById(R.id.tv_city1);

            Log.i("hehe",list.size()+"");
            list.add(holder.tvCity);

            if(district == null){
                holder.tvCity.setText(cityList1.get(i).getName());
            }else {
                holder.tvCity.setText(district.get(i).getName());
            }
            holder.lay= (AutoLinearLayout) convertView.findViewById(R.id.ryyrry);

            if (flag){
                list.get(0).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.white));
                list.get(0).setBackgroundResource(R.drawable.shape1);
            }

            holder.lay.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (flag) {
                        for (int j = 0; j < list.size(); j++) {

                            if (i == (j - 1)) {
//                                Log.i("监测点","8888888第一次"+i+"蓝");
                                list.get(j).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.white));
                                list.get(j).setBackgroundResource(R.drawable.shape1);
                            } else {
//                                Log.i("监测点","8888888888第一次"+i+"白");
                                list.get(j).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.city_item));
                                list.get(j).setBackgroundResource(R.drawable.shape2);
                            }
                        }
                    }else {
//                        Log.i("监测点", "88888888888onClick: "+list.size());
                        for (int j = 0; j < list.size()-2; j++) {
//                            Log.i("监测点", "onClick: "+list.size());
                            if (i == j) {
//                                Log.i("监测点","第"+j+"次"+i+"蓝");
                                list.get(j).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.white));
                                list.get(j).setBackgroundResource(R.drawable.shape1);
                            } else {
//                                Log.i("监测点","第"+j+"次"+i+"白");
                                list.get(j).setTextColor(FindCompanyActivity.this.getResources().getColor(R.color.city_item));
                                list.get(j).setBackgroundResource(R.drawable.shape2);
                            }
                        }
                    }

                    //延时执行  设置标题栏字体改变
                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if(district == null){
                                allCity.setText(cityList1.get(i).getName());
                            }else {
                                allCity.setText(district.get(i).getName());
                            }
                            popupWindow1.dismiss();
                        }
                    }, 150);
                }
            });
            return convertView;
        }
    }
}


text:
layout: relation
title: 'csubj'
shortdef: 'clausal subject'
---

A clausal subject is a clausal syntactic subject of a clause, i.e.,
the subject is itself a clause.

~~~ sdparse
Ir a uma feira livre serve de aula para os principiantes.
csubj(serve, Ir)
~~~

The governor of this relation might not always be a verb: when the
verb is a copular verb, the root of the clause is the complement of
the copular verb. The dependent is the main lexical verb or other
predicate of the subject clause.

~~~ sdparse
É um equívoco reduzir a liberalização comercial ao neoliberalismo.
csubj(equívoco, reduzir)
~~~

~~~ sdparse
é necessário alertar toda a sociedade.
csubj(necessário, alertar)
~~~


text:
package ly.whisk.model;

import ly.whisk.model.Ingredient;
import ly.whisk.model.Note;

import java.io.Serializable;
import java.util.*;
import ly.whisk.model.ProcessingTag;

public class Ingredient implements Serializable {
  /**
   * required: false
   **/
  private String id = null;
  /**
   * required: false
   **/
  private String name = null;
  /**
   * required: false
   **/
  private String usda_num = null;
  /**
   * required: false
   **/
  private List<Ingredient> substitutions = new ArrayList<Ingredient>() ;
  /**
   * required: false
   **/
  private Note note = null;
  /**
   * required: false
   **/
  private List<ProcessingTag> processingTags = new ArrayList<ProcessingTag>() ;

  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }

  public String getUsda_num() {
    return usda_num;
  }
  public void setUsda_num(String usda_num) {
    this.usda_num = usda_num;
  }

  public List<Ingredient> getSubstitutions() {
    return substitutions;
  }
  public void setSubstitutions(List<Ingredient> substitutions) {
    this.substitutions = substitutions;
  }

  public Note getNote() {
    return note;
  }
  public void setNote(Note note) {
    this.note = note;
  }

  public List<ProcessingTag> getProcessingTags() {
    return processingTags;
  }
  public void setProcessingTags(List<ProcessingTag> processingTags) {
    this.processingTags = processingTags;
  }

  @Override
  public String toString()  {
    StringBuilder sb = new StringBuilder();
    sb.append("class Ingredient {\n");
    sb.append("  id: ").append(id).append("\n");
    sb.append("  name: ").append(name).append("\n");
    sb.append("  usda_num: ").append(usda_num).append("\n");
    sb.append("  substitutions: ").append(substitutions).append("\n");
    sb.append("  note: ").append(note).append("\n");
    sb.append("  processingTags: ").append(processingTags).append("\n");
    sb.append("}\n");
    return sb.toString();
  }
}


text:
<?php

namespace Artemio\TodoBundle\Repository;

/**
 * TaskListRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class TaskListRepository extends \Doctrine\ORM\EntityRepository
{
    /**
     * @return array
     */
    public function tasksGroupCategory()
    {
        return $this->getEntityManager()
            ->createQuery('
                SELECT p
                FROM ArtemioTodoBundle:TaskList p
                LEFT JOIN p.tasks u
                ORDER BY p.id DESC
            ')->getResult();
    }
}


text:
package org.dna.mqtt.moquette.proto.messages;

/**
 * Doesn't care DUP, QOS and RETAIN flags.
 *
 * @author andrea
 */
public class DisconnectMessage extends ZeroLengthMessage {

    public DisconnectMessage() {
        m_messageType = AbstractMessage.DISCONNECT;
    }

    @Override
    public String toString() {
        return "DISCONNECT";
    }
}


text:
namespace OpenMOO2 {
namespace LBX {

class LBXImage {
public:
	LBXImage();
	LBXImage(const LBXImage&);
	LBXImage(LBXImage&&);
	LBXImage(const LBXFile&,size_t,const LBXPalette&);
};

}}
#endif // _OM2_LBX_IMAGE_


text:
<?php

namespace Sonata\PageBundle\CmsManager;

use Sonata\BlockBundle\Model\BlockInterface;
use Sonata\PageBundle\Exception\PageNotFoundException;
use Sonata\PageBundle\Model\BlockInteractorInterface;
use Sonata\PageBundle\Model\PageInterface;
use Sonata\PageBundle\Model\PageManagerInterface;
use Sonata\PageBundle\Model\SiteInterface;

/**
 * The CmsPageManager class is in charge of retrieving the correct page (cms page or action page).
 *
 * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
 */
class CmsPageManager extends BaseCmsPageManager
{
    /**
     * @var BlockInteractorInterface
     */
    protected $blockInteractor;

    /**
     * @var PageManagerInterface
     */
    protected $pageManager;

    /**
     * @var array
     */
    protected $pageReferences = array();

    /**
     * @var PageInterface[]
     */
    protected $pages = array();

    /**
     * @param PageManagerInterface     $pageManager
     * @param BlockInteractorInterface $blockInteractor
     */
    public function __construct(PageManagerInterface $pageManager, BlockInteractorInterface $blockInteractor)
    {
        $this->pageManager = $pageManager;
        $this->blockInteractor = $blockInteractor;
    }

    /**
     * {@inheritdoc}
     */
    public function getPage(SiteInterface $site, $page)
    {
        if (is_string($page) && substr($page, 0, 1) == '/') {
            $page = $this->getPageByUrl($site, $page);
        } elseif (is_string($page)) { // page is a slug, load the related page
            $page = $this->getPageByRouteName($site, $page);
        } elseif (is_numeric($page)) {
            $page = $this->getPageById($page);
        } elseif (!$page) { // get the current page
            $page = $this->getCurrentPage();
        }

        if (!$page instanceof PageInterface) {
            throw new PageNotFoundException('Unable to retrieve the page');
        }

        return $page;
    }

    /**
     * {@inheritdoc}
     */
    public function getInternalRoute(SiteInterface $site, $pageName)
    {
        if (substr($pageName, 0, 5) == 'error') {
            throw new \RuntimeException(sprintf('Illegal internal route name : %s, an internal page cannot start with `error`', $pageName));
        }

        $routeName = sprintf('_page_internal_%s', $pageName);

        try {
            $page = $this->getPageByRouteName($site, $routeName);
        } catch (PageNotFoundException $e) {
            $page = $this->pageManager->create(array(
                'url' => null,
                'routeName' => $routeName,
                'name' => sprintf(sprintf('Internal Page : %s', $pageName)),
                'decorate' => false,
            ));

            $page->setSite($site);

            $this->pageManager->save($page);
        }

        return $page;
    }

    /**
     * {@inheritdoc}
     */
    public function findContainer($code, PageInterface $page, BlockInterface $parentContainer = null)
    {
        $container = null;

        if ($parentContainer) {
            // parent container is set, nothing to find, don't need to loop across the
            // name to find the correct container (main template level)
            $container = $parentContainer;
        }

        // first level blocks are containers
        if (!$container && $page->getBlocks()) {
            foreach ($page->getBlocks() as $block) {
                if ($block->getSetting('code') == $code) {
                    $container = $block;
                    break;
                }
            }
        }

        if (!$container) {
            $container = $this->blockInteractor->createNewContainer(array(
                'enabled' => true,
                'page' => $page,
                'code' => $code,
                'position' => 1,
                'parent' => $parentContainer,
            ));
        }

        return $container;
    }

    /**
     * {@inheritdoc}
     */
    public function getBlock($id)
    {
        if (!isset($this->blocks[$id])) {
            $this->blocks[$id] = $this->blockInteractor->getBlock($id);
        }

        return $this->blocks[$id];
    }

    /**
     * {@inheritdoc}
     */
    protected function getPageBy(SiteInterface $site = null, $fieldName, $value)
    {
        if ('id' == $fieldName) {
            $id = $value;
        } elseif (isset($this->pageReferences[$fieldName][$value])) {
            $id = $this->pageReferences[$fieldName][$value];
        } else {
            $id = null;
        }

        if (null === $id || !isset($this->pages[$id])) {
            $this->pages[$id] = false;

            $parameters = array(
                $fieldName => $value,
            );

            if ($site) {
                $parameters['site'] = $site->getId();
            }

            $page = $this->pageManager->findOneBy($parameters);

            if (!$page) {
                throw new PageNotFoundException(sprintf('Unable to find the page : %s = %s', $fieldName, $value));
            }

            $this->loadBlocks($page);
            $id = $page->getId();

            if ($fieldName != 'id') {
                $this->pageReferences[$fieldName][$value] = $id;
            }

            $this->pages[$id] = $page;
        }

        return $this->pages[$id];
    }

    /**
     * load all the related nested blocks linked to one page.
     *
     * @param PageInterface $page
     */
    private function loadBlocks(PageInterface $page)
    {
        $blocks = $this->blockInteractor->loadPageBlocks($page);

        // save a local cache
        foreach ($blocks as $block) {
            $this->blocks[$block->getId()] = $block;
        }
    }
}


text:
using System;
using System.Collections;
using System.Text;

namespace Modicite.Utilities {

    public static class VersionComparison {

        public static string GetNewest(string[] versions) {
            string newest = "0";
            foreach (string version in versions) {
                for (int i = 0; i < Math.Max(version.Length, newest.Length); i++) {
                    if (version.Length <= i && newest.Length > i) {
                        break;
                    } else if (newest.Length <= i && version.Length > i) {
                        newest = version;
                        break;
                    }

                    if (Char.IsDigit(version[i])) {
                        if (Convert.ToInt32(version[i]) > Convert.ToInt32(newest[i])) {
                            newest = version;
                            break;
                        }
                    } else if (Char.IsLetter(version[i])) {
                        if (Encoding.UTF8.GetBytes(new char[] { version[i] })[0] > Encoding.UTF8.GetBytes(new char[] { newest[i] })[0]) {
                            newest = version;
                            break;
                        }
                    }
                }
            }
            return newest;
        }
    }
}


text:
namespace Netcorex.Interfaces
{
	public interface ISettingsable
	{
		void UpdateSettings(bool save = true);
	}
}


text:
var portfolio = angular.module('CardsAgainstAssembly');

	portfolio.controller('headerController', function() {
		this.title = 'Cards Against Coders';

		return this;
	});


text:
import { utc } from 'moment'
import has from 'lodash.has'
import isNil from 'lodash.isnil'
import fetch from 'isomorphic-fetch'

const url = '/api'

const getSkipass = id => {
  if (isNil(id)) {
    return Promise.reject('Card Number is nill')
  }
  return fetch(`${url}/skipass/${id}`)
    .then(response => {
      if (!response.ok) {
        return response.text()
          .then(text => Promise.reject(text))
      }

      return response.json()
    })
    .then(skipass => {
      if (has(skipass, 'errors')) {
        const reason = skipass.errors.join(', ')
        return Promise.reject(reason)
      }

      return Object.assign(skipass, {
        syncDate: utc().toJSON()
      })
    })
}

export {
  getSkipass
}


text:
package com.linkedin.databus.core.data_model;

/**
 * Represents a Databus logical partition
 *
 * @see Databus 2.0 and Databus 3.0 Data Model
 */
public class LogicalPartition
{
  private final Short _id;

  private static final Short ALL_LOGICAL_PARTITIONS_ID = -1;

  public static final LogicalPartition ALL_LOGICAL_PARTITIONS =
      new LogicalPartition(ALL_LOGICAL_PARTITIONS_ID);

  public LogicalPartition(Short id)
  {
    super();
    if (null == id) throw new NullPointerException("id");
    _id = id;
  }

  public static LogicalPartition createAllPartitionsWildcard()
  {
    return ALL_LOGICAL_PARTITIONS;
  }

  /** The logical partition id */
  public Short getId()
  {
    return _id;
  }

  @Override
  public String toString()
  {
    return toJsonString();
  }

  public String toJsonString()
  {
    StringBuilder sb = new StringBuilder(15);
    sb.append("{\"id\":");
    sb.append(_id.shortValue());
    sb.append("}");

    return sb.toString();
  }

  /** Checks if the object denotes a wildcard */
  public boolean isWildcard()
  {
    return isAllPartitionsWildcard();
  }

  /** Checks if the object denotes a ALL_LOGICAL_SOURCES wildcard */
  public boolean isAllPartitionsWildcard()
  {
    return equalsPartition(ALL_LOGICAL_PARTITIONS);
  }

  public boolean equalsPartition(LogicalPartition other)
  {
    return _id.shortValue() == other._id.shortValue();
  }

  @Override
  public boolean equals(Object other)
  {
    if (null == other || !(other instanceof LogicalPartition)) return false;
    return equalsPartition((LogicalPartition)other);
  }

  @Override
  public int hashCode()
  {
    return _id.hashCode();
  }

}


text:
package io.quarkus.vertx.http;

import java.net.Socket;
import java.net.URL;
import java.nio.charset.StandardCharsets;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;

import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.http.TestHTTPResource;
import io.vertx.core.Handler;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;

public class HttpContinueHeaderTest {
    private static final String APP_PROPS = "quarkus.http.handle-100-continue-automatically=true\n";

    @RegisterExtension
    static final QuarkusUnitTest config = new QuarkusUnitTest()
            .withApplicationRoot((jar) -> jar
                    .addAsResource(new StringAsset(APP_PROPS), "application.properties")
                    .addClasses(HttpContinueHeaderTest.BeanRegisteringRouteUsingObserves.class));

    @TestHTTPResource
    URL uri;

    @Test
    public void testConnection() throws Exception {
        try (Socket one = new Socket(uri.getHost(), uri.getPort())) {
            one.getOutputStream().write("GET /hello HTTP/1.1\r\nExpect: 100-continue\r\nHost: localhost\r\n\r\n"
                    .getBytes(StandardCharsets.UTF_8));

            StringBuilder sb = new StringBuilder();
            byte[] data = new byte[1024];
            int j;
            while (!sb.toString().endsWith("hello")) {
                j = one.getInputStream().read(data);
                if (j == -1) {
                    Assertions.fail("Did not read full HTTP response");
                }
                sb.append(new String(data, 0, j, StandardCharsets.US_ASCII));
            }
            Assertions.assertTrue(sb.toString().contains("HTTP/1.1 100 Continue"));
            Assertions.assertTrue(sb.toString().contains("HTTP/1.1 200 OK"));
        }
    }

    @ApplicationScoped
    static class BeanRegisteringRouteUsingObserves {

        public void register(@Observes Router router) {
            router.route("/hello").handler(new Handler<RoutingContext>() {
                @Override
                public void handle(RoutingContext event) {
                    event.end("hello");
                }
            });

        }
    }
}


text:
package headfirst.combined.djview;

public interface HeartModelInterface {
	int getHeartRate();
	void registerObserver(BeatObserver o);
	void removeObserver(BeatObserver o);
	void registerObserver(BPMObserver o);
	void removeObserver(BPMObserver o);
}


text:
#pragma once

#include <VoxieBackend/VoxieBackend.hpp>

#include <VoxieBackend/DBus/DynamicObject.hpp>

namespace vx {
class VOXIEBACKEND_EXPORT VolumeStructure : public vx::DynamicObject {
  Q_OBJECT
  REFCOUNTEDOBJ_DECL(VolumeStructure)

 protected:
  // throws Exception
  VolumeStructure();

  ~VolumeStructure();
};

}  // namespace vx


text:
void RoundedRect(Painter& sw)
{
	sw.RoundedRectangle(100, 100, 400, 200, 20).Stroke(2, Black());
}

INITBLOCK {
	RegisterExample("RoundedRectangle", RoundedRect);
}


text:
/*
 * No.1001: Sum Problem

 *  Problem Description
 * Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).

 * In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.

 * Input
 * The input will consist of a series of integers n, one integer per line.

 * Output
 * For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.

 * Sample Input
 * 1
 * 100

 * Sample Output
 * 1

 * 5050

 * Author
 * DOOM III
 */

 #include<iostream>
 using namespace std;

 int main()
 { int a,b,sum=0,i=0,j;
   int c[100]={0};
   while(cin>>a)
   {
     sum=0;
     for(b=1;b<=a;b++)
       sum=sum+b;
       c[i++]=sum;
   }
   for(j=0;j<i;j++)
   cout<<c[j]<<"\n"<<endl;
   return 0;
 }


text:
int main()
{
   using namespace tao::seq;

   static_assert( !is_any<>::value, "oops" );

   static_assert( is_any< true >::value, "oops" );
   static_assert( !is_any< false >::value, "oops" );

   static_assert( is_any< true, true >::value, "oops" );
   static_assert( is_any< true, false >::value, "oops" );
   static_assert( is_any< false, true >::value, "oops" );
   static_assert( !is_any< false, false >::value, "oops" );

   static_assert( is_any< true, true, true, true, true, true >::value, "oops" );
   static_assert( !is_any< false, false, false, false, false, false >::value, "oops" );

   static_assert( is_any< false, true, true, true, true, true >::value, "oops" );
   static_assert( is_any< true, false, true, true, true, true >::value, "oops" );
   static_assert( is_any< true, true, false, true, true, true >::value, "oops" );
   static_assert( is_any< true, true, true, false, true, true >::value, "oops" );
   static_assert( is_any< true, true, true, true, false, true >::value, "oops" );
   static_assert( is_any< true, true, true, true, true, false >::value, "oops" );

   static_assert( is_any< true, false, false, false, false, false >::value, "oops" );
   static_assert( is_any< false, true, false, false, false, false >::value, "oops" );
   static_assert( is_any< false, false, true, false, false, false >::value, "oops" );
   static_assert( is_any< false, false, false, true, false, false >::value, "oops" );
   static_assert( is_any< false, false, false, false, true, false >::value, "oops" );
   static_assert( is_any< false, false, false, false, false, true >::value, "oops" );
}