-
Not Synced
ayudenme a recibir al tio bob al escenario
-
Not Synced
una de las ventajas de aparecer último
-
Not Synced
es que puedes corregir a los que estubieron antes
-
Not Synced
¡cucumber no es lento!
-
Not Synced
a quien haya dicho eso
-
Not Synced
probando a travez de la UI es lento
-
Not Synced
levantar rails cada ves que ejecutas un test es lento (y también estúpido)
-
Not Synced
eso es lo lento, cucumber es un pequeño paquete muy liviano
-
Not Synced
que hace una pasada con expresiones regulares, llama una función y entra y sale rápido
-
Not Synced
cucumber no es lento
-
Not Synced
alguien dijo que sería bueno que nuestra comunidad fuera diversa
-
Not Synced
miremos al rededor de nosotros, ¿Cuál parece ser la característica que se expresa de manera más frecuente que otras?
-
Not Synced
si, bello facial ...
-
Not Synced
bueno, déjenme explicarlo de esta manera
-
Not Synced
si quicieras atraer específicamente a una audiencia más diversa dentro de los desarrolladores
-
Not Synced
algo que quicieras evitar es decir grocerías durante una presentación
-
Not Synced
público: ¡totalmente en desacuerdo! (usando grocerías)
-
Not Synced
no voy a entrar en esa competencia
-
Not Synced
yo sé lo que se debe hacer con los desarrolladores de mala calidad
-
Not Synced
público: ¿lo mismo que con los jefes de proyecto?
-
Not Synced
Bob: no, no lo mismo que con los jefes de proyecto
-
Not Synced
¿y qué es todo eso sobre VIM?
-
Not Synced
quién usa VIM por aquí
-
Not Synced
¡¿Qué mierda les pasa a ustedes gente?!
-
Not Synced
Yo quería dejar de usar ese editor hace años atrás y ahora todo el mundo quiere empezar ausarlo...
-
Not Synced
o bueno...
-
Not Synced
un último comentario sobre eso. ¿Quién ve House?
-
Not Synced
¿A quién le gusta ese programa?
-
Not Synced
ok, ¿Quién de ustedes se identifica con el personaje de House?
-
Not Synced
House es un doctor que es la misma escencia de un imbécil.
-
Not Synced
solo imagínense que es la persona más iracible, negativa, horible y suertuda que puedan imagninar
-
Not Synced
explicó su comportamiento un par de años atrás en uno de los episodios
-
Not Synced
dijo: "soy tan bueno que no pueden desaserce de mi así que soy libre de actuar como me plazca"
-
Not Synced
de hecho es como él mide que tan valioso es
-
Not Synced
prueba su valía haciéndose tan repugnante y luego observando como no lo despiden.
-
Not Synced
porque es simplemente tan bueno.
-
Not Synced
House es un perdedor...
-
Not Synced
tengan esto en mente los que piensen "¡Ah, puedo romer todas las reglas que quiera!"
-
Not Synced
¡Puedo llegar a la hora que quiera e irme a casa a la hora que me plazca! ¡Puedo programar borracho!
-
Not Synced
pues lo siento, House es un perdedor.
-
Not Synced
a propósito, se me ocurrió una regla hace harto tiempo atrás sobre alcohol y programación: "lo mismo que a pilotos"
-
Not Synced
El nombre de esta presentación ... Oh a propósito darles una lección sobre ciencia primero..
-
Not Synced
¿Alguien sigue esto de E-Cat?
-
Not Synced
Bueno, es facinante, ¿si?
-
Not Synced
público: he leído al respecto.
Bob: Has leído al respecto! ok, bueno
-
Not Synced
esto es probablemente un Hoax. Probablemente.
-
Not Synced
Bueno si tubiera que darle una probabilidad, sería como 9/10 para Hoax y 1/10 para verdad,
-
Not Synced
pero el 1/10 me tiene inquieto, por cierto esa no es una de las 7 palabras de las que habla George Carling
-
Not Synced
la idea aqui es hay una persona en Italia cuyo nombre es Andrea Rossi
-
Not Synced
y por varios años ha estado diciendo que puede generar energía
-
Not Synced
mediante hacer pasar hidrógeno calentado sobre Niquel
-
Not Synced
y que los átomos de hidrógeno se fusionan con los de niquel para producir cobre y liberar energía.
-
Not Synced
esta energía se libera en forma de rayos gamma y calor y los rayos gamma pueden ser absorbidos y producir más calor
-
Not Synced
pero no hay otra forma de radiación que sea emitida, aparte de protones, neutrones o electrónes.
-
Not Synced
no es radioactiva, es solo esta reacción nuclear muy interesante.
-
Not Synced
Por supuesto que la mayoría de los científicos recuerda el horrible fiasco de la fusión en frío en 1989
-
Not Synced
todos muy escepticos, pero el dice "no, lo puedo hacer y puedo probarlo".
-
Not Synced
El 28 de octubre juntó a un grupo de profesores, a alguien que comparía su generador de 1Mw
-
Not Synced
juntó a un montón de reporteros e inició este generador y logró hacer hervir muchos litros de agua
-
Not Synced
400kw o 400kw hora de energía, no recuerdo, un montón de agua que hirvió
-
Not Synced
y luego apagó la máquina y el cliente inmediatamente pagó por el generador
-
Not Synced
y aun todo esto está rodeado de un montón de secreto ... hay un catalizador
-
Not Synced
del que el no habla al respecto, no nos cuenta que es...
-
Not Synced
Probablemente una mentira (Hoax), probablemente muy bueno para ser verdad.
-
Not Synced
Pero, alomejor no...
-
Not Synced
Investiguen sobre esto, es interesante. Quizás sea mentira ...
-
Not Synced
sea muy bueno para ser verdad... yo miro muchas cosas que parecen ser muy buenas para ser verdad
-
Not Synced
y digo "bueno, parecen muy buenas para ser vedad", pero luego veo a mi señora ...
-
Not Synced
¡Así es como obtienes diversidad en un grupo!
-
Not Synced
Lo que miran en pantalla es la estructura de alto nivel
-
Not Synced
de una aplicación Rails que hace algún tiempo atrás escribí
-
Not Synced
denle una mirada a los directorios ¿Qué es lo que ven?
-
Not Synced
bueno, ven controllers y esperan ver controllers en una aplicación Rails cierto?
-
Not Synced
y ven models y ven views y algunas otras cosas como helpers y util
-
Not Synced
bueno pueden ir al spec de por aquí porque por supuesto es dirigida por tests
-
Not Synced
¿Quién hace desarrollo guiado por pruebas?
-
Not Synced
hmmm vamos a tener que conversar...
-
Not Synced
pueden ver que también hay pruebas de controllers, models, bla bla bla, ok
-
Not Synced
¿Que es lo que ven?
-
Not Synced
si fuera a mostrarles esto y no les digiera que es una aplicación Rails
-
Not Synced
¿Podrían reconocer que de hecho es una aplicación Rails?
-
Not Synced
oh, si, se ve como una aplicación Rails. Bueno, quizás haya otros tipos
-
Not Synced
de aplicaciones que tengan esta estructura de directorios
-
Not Synced
pero es una aplicación Rails, así que ahora mi pregunta a Uds. es:
-
Not Synced
¿Porqué la estructura de alto nivel en la aplicación debiera comunicarte esto?
-
Not Synced
¿Qué es lo que la aplicación hace?
-
Not Synced
No hay ninguna pista aquí
-
Not Synced
"Substitute" es el nombre del proyecto
-
Not Synced
bueno, eso no es muy útil
-
Not Synced
aparentemente el nombre del cliente es "Angela", quizás...
-
Not Synced
pero nada en el alto nivel de la aplicación, el nivel más visible, al cual todos van primero
-
Not Synced
nada aquí habla sobre lo que la aplicación hace.
-
Not Synced
Es inmediatamente reconocible como una aplicación rails
-
Not Synced
así que quizás lo más importante sobre esta aplicación es el framework sobre el que está construido.
-
Not Synced
Y sobre el resto no nos preocupamos mucho.
-
Not Synced
Rails es un framework Web, ¿Qué es la web?
-
Not Synced
¡Gracias! ¡Si! es un mecanismo de entrega (es lo que dice en el slide)
-
Not Synced
La web es un detalle, la web no es particularmente importante para tu aplicación
-
Not Synced
la web es simplemente la forma en la que tu aplicación obtiene información del usuario
-
Not Synced
y devuelve información hacia el usuario. La web es una tubería.
-
Not Synced
No es nada más que una tubería. No es la estructura central de tu aplicación
-
Not Synced
No es la gran estructura que define tu aplicación y la convierte en lo que es.
-
Not Synced
La web es solo un tonto detalle.
-
Not Synced
y aún así, domina nuestro código.
-
Not Synced
Podemos observar una aplicación web y saber que es una aplicación web
-
Not Synced
a causa de ese directorio de controllers. No otro tipo de aplicación tendría
-
Not Synced
un directorio controllers en el nivel superior, especialmente si hay modelos y views al rededor
-
Not Synced
vamos a hablar sobre Model View Controller (MVC) y la horrible bastardización que ha ocurrido con él
-
Not Synced
vean este dibujo de alto nivel de una librería (de libros)
-
Not Synced
si no tubiera la palabra "librería" en el título podrías mirar esto y decir
-
Not Synced
" hay una gran entrada por acá, hay unas oficinas, eso parece un escritorio, donde la gente podría llegar y registrar cosas"
-
Not Synced
"parece que allí hay algunas estanterías, oh, parece que eso es una librería"
-
Not Synced
La estructura de alto nivel en una librería te mostraría que es una librería.
-
Not Synced
o ¿Qué tal una iglesia?
-
Not Synced
¿Hay siquiera una tenue duda de que eso es una iglesia?
-
Not Synced
tienes una gran entrada, puedes ver el altar, puedes ver los confesionarios.
-
Not Synced
¡Esta es una iglesia!
-
Not Synced
La estructura de alto nivel de este edificio grita su propósito a quien lo mira,
-
Not Synced
pero la estructura de alto nivel de mi aplicación Rails no grita su propósito.
-
Not Synced
grita cuál es el framework con el que fue contruído. grita Rails.
-
Not Synced
Esto es muy bueno para DHH no tan bueno para ti.
-
Not Synced
¿Por qué esto sucede?
-
Not Synced
¿Por qué creamos arquitecturas que reflejan el framework que a su vez reflejan el mecanismo de entrega
-
Not Synced
y no reflejan la aplicación?
-
Not Synced
¿Acaso no estamos construyendo una aplicación que tiene un propósito?
-
Not Synced
¿No es la arquitectura acerca del propósito?
-
Not Synced
Ciértamente lo es desde el punto de vista de la construcción. No es también cierto del ...
-
Not Synced
oh, es mi señora que me llama ... disculpen, aparé mi teléfono.
-
Not Synced
¿En qué estaba?
-
Not Synced
¡Graciás! ¿Acaso no es la arquitectura de la aplicación completamente sobre el propósito de ésta ?
-
Not Synced
¿Porqué no debiéramos ver ese propósito al nivel más alto del código?
-
Not Synced
El año era 1993
-
Not Synced
Esta persona, llamada Ivar Jacobson escribió un libro: "Ingeniería de software orientada al objeto"
-
Not Synced
"Una aproximación desde los casos de uso"
-
Not Synced
¿Qué estaba sucediendo en 1993?
-
Not Synced
¡No había web! la web aun no había nacido o quizás lo había hecho, quizás, no recuerdo
-
Not Synced
una persona escribió una página web y luego se expandió como fuego
-
Not Synced
pero no había web en el momento todos estábamos haciendo C++ o C o alguna cosa horrenda como esas
-
Not Synced
haciendo aplicaciones de clientes pesados
-
Not Synced
Y aquí llega este sujeto y escribe este libro y es un libro facinante
-
Not Synced
y resuelve el problema de la arquitectura
-
Not Synced
no es el primero en hacerlo, no será el último, pero en este libro
-
Not Synced
habla sobre como obtener el propósito de la aplicación en el nivel superior
-
Not Synced
que sea la abstracción principal sobre la que construímos.
-
Not Synced
El lo llamó "una aproximación dirigida por los casos de uso"
-
Not Synced
¿Qué es un caso de uso?
-
Not Synced
bueno eso es un caso de uso
-
Not Synced
nada muy espectacular sobre ellos
-
Not Synced
es decir, le das un nombre, hablas un poco sobre los datos que es pasada
-
Not Synced
hacia el caso de uso "crear orden", el id de cliente, alguna info de contacto del cliente
-
Not Synced
y algunas otras cosas
-
Not Synced
hablas un poco sobre como el sistema va a responder cuando obtenga esta solicitud
-
Not Synced
"el operador ejecuta un comando "Crear Orden" con los datos anteriores"
-
Not Synced
"el sistema valida todos los datos"
-
Not Synced
bla bla bla, es solo un conjunto de frases simples
-
Not Synced
que describen cómo el sistema responde cuando el usuario hace esta pequeña acción
-
Not Synced
y tiene unos comportamientos alternativos en casos excepcionales
-
Not Synced
solo formas de controlar errores y otras cosas
-
Not Synced
y Jacobson utiliza varias páginas de su libro solo para describir lo que esto es
-
Not Synced
¿Quién ha hecho casos de usos antes?
-
Not Synced
Alguien recuerda esto? wow varios de ustedes.
-
Not Synced
¿Cuál es la diferencia entre un caso de uso y una historia de usuario?
-
Not Synced
si, el nombre.
-
Not Synced
Son básicamente lo mismo solo que la historia de uso
-
Not Synced
comienza como algo muy pequeño y evoluciona en un caso de uso.
-
Not Synced
gradualmente tomamos la historia de usuario que comienza como una frase
-
Not Synced
y durante el curso del proyecto agregamos un par de frases a el y lo
-
Not Synced
convertimos en algo que se ve como esto típicamente a través pruebas de aceptación
-
Not Synced
y luego implementamos el caso de uso
-
Not Synced
Lo que Jacobson dijo fue "miren, esta es la abstracción central de su aplicación, así que eso podría ser un objeto"
-
Not Synced
El lo llamó un controller, yo lo llamaría un objeto interactor.
-
Not Synced
Lo llamaría así para que no se confundieran con MVC
-
Not Synced
así que sus objetos controller son mis interactors
-
Not Synced
son objetos que implementan un caso de uso.
-
Not Synced
los interactors tienen reglas específicas de negocio para la aplicación
-
Not Synced
¿Qué significa tener reglas específicas de negocio para la aplicación?
-
Not Synced
¡No pueden estar en un framework! ¡Claramente!
-
Not Synced
van a ser reglas de negocio que estás colocando por el propósito de la aplicación
-
Not Synced
¿Que sería una regla de negocio no específica de la aplicación?
-
Not Synced
Una regla que no fuera específica a la aplicación.
-
Not Synced
Bueno, puedes tenerlas, puedes tener...
-
Not Synced
Perdón!
-
Not Synced
Entidades
-
Not Synced
Entidades que representan objetos de negocio
-
Not Synced
que pueden pertenecer a más de una aplicación
-
Not Synced
y en cada aplicación en la que la entidad apareciera podría
-
Not Synced
encapsular las mismas reglas
-
Not Synced
así que colocas lógica de negocio agnóstica de la aplicación en tus entidades
-
Not Synced
y colocas reglas de negocio específicas de la aplicación en interactors
-
Not Synced
y noten que hay una dependencia entre ellos.
-
Not Synced
El interactor sabe sobre la entidad.
-
Not Synced
Bueno, que sería una entidad, algo como una orden, o un cliente.
-
Not Synced
o, programadores Rails, ¿Qué harían con algo como esto?
-
Not Synced
¿Cómo lo llamarían?
-
Not Synced
¿En qué directorio tendría que colocarse?
-
Not Synced
En el directorio de modelos... no no iría ah!
-
Not Synced
¡No iría en el directorio de modelos!
-
Not Synced
¿Qué es lo que va en el directorio de modelos?
-
Not Synced
cosas que derivan de ...
-
Not Synced
¿Que?
-
Not Synced
no importa...
-
Not Synced
¿Que cosas derivarían de ActiveRecord?
-
Not Synced
¿Los modelos?
-
Not Synced
¿Los modelos derivan desde ActiveRecord?
-
Not Synced
Bueno, ¡Estas entidades no las quiero derivando de ActiveRecord!
-
Not Synced
Estas entidades están desacopladas de la base de datos
-
Not Synced
también los interactors, no saben nada de la base de datos
-
Not Synced
no saben nada sobre mecanismos de entrega
-
Not Synced
son agnósticos a todas esas cosas, estas son reglas de negocio.
-
Not Synced
reglas de negocio específicas de la aplicación en interactors y agnósticas en entities.
-
Not Synced
bien aisladas del resto de la aplicación
-
Not Synced
¿Cómo obtenemos la data dentro y fuera de los interactors y las entities?
-
Not Synced
y Jacobson tenía una respuesta para esto también, decía:
-
Not Synced
"usaremos fronteras"
-
Not Synced
son esencialmente interfaces, son protocolos o interfaces.
-
Not Synced
en Java los haríamos interfaces, en .Net serían interfaces
-
Not Synced
en Ruby no serían nada
-
Not Synced
pero aún estarían allí, conceptualmente, escondiéndose tras bambalinas.
-
Not Synced
un conjunto de métodos invocados por interactors o por componentes
-
Not Synced
del otro lado de la frontera con el propósito de lograr algo
-
Not Synced
y con esto establecido tenemos los tres objetos en el modelo de Jacobson
-
Not Synced
y escribió un libro completo de esto un libro facinante.
-
Not Synced
pero esos son las tres partes centrales del modelo Jacobson
-
Not Synced
tenemos un montón de interactors
-
Not Synced
donde cada uno representa un caso de uso
-
Not Synced
tenemos un montón de entities
-
Not Synced
cada una representando un objeto de negocio
-
Not Synced
todas las reglas de negocios van aquí
-
Not Synced
¿Que pasa con validación?
-
Not Synced
cosas que tienen que ejecutarse en el navegador
-
Not Synced
cosas en javascript, ¿No son esas reglas de negocio?
-
Not Synced
¿Pueden ejecutarse en estos objetos?
-
Not Synced
no lo harán, van a ejecutarse en un computador distinto...
-
Not Synced
probablemente en el computador del usuario
-
Not Synced
van a ejecutarse en un lenguaje distinto: javascript
-
Not Synced
van a estar a un lado, ¿Significa que no son parte de este modelo?
-
Not Synced
Aun son parte de este modelo
-
Not Synced
solo que están ejecutandose en otra máquina y escritos en otro lenguaje
-
Not Synced
pero están tan desacopladas como el resto de las partes, ya que tratamos
-
Not Synced
de tener todas las reglas de negocios desacopladas.
-
Not Synced
aquí está el diagrama completo
-
Not Synced
tenemos algún mecanismo de entrega, que habla con el usuario.
-
Not Synced
por cierto, tengo lásers aquí.
-
Not Synced
tienes que tener lásers.
-
Not Synced
No dejen que llegue a sus ojos!
-
Not Synced
es uno bastante brillante
-
Not Synced
y tengo uno rojo
-
Not Synced
y tengo este otro
-
Not Synced
no lo puedes ver, oh ahi casi se puede ver
-
Not Synced
que tal ahí
-
Not Synced
nahh, no se ve bien
-
Not Synced
virtualmente desaparece
-
Not Synced
ehh, uno de estos va a servir
-
Not Synced
uh, este es brillante
-
Not Synced
que tal ese
-
Not Synced
ese es aun más brillante!
-
Not Synced
que tal este, algo brillante..
-
Not Synced
que tal este
-
Not Synced
miren son todos brillantes
-
Not Synced
¿Que color es este láser?
-
Not Synced
puedes verlo un poco en mi reloj
-
Not Synced
¿Pueden ver eso?
-
Not Synced
¿No es cool?
-
Not Synced
¿Qué color es este láser?
-
Not Synced
Es un láser ultra violeta
-
Not Synced
un poco de tinte aun está en el violeta pero la mayoría de la energía
-
Not Synced
que sale es ultra violeta
-
Not Synced
¿Que tan cool es eso?
-
Not Synced
tengo un láser UV
-
Not Synced
No se que hará por mí, todo lo que puedo hacer es
-
Not Synced
hacer que mis lentes queden negros
-
Not Synced
pero ...
-
Not Synced
que tal el rojo
-
Not Synced
tenemos un usuario aquí que va a interactuar con la aplicación
-
Not Synced
a travez del mecanismo de entrega
-
Not Synced
¿Cuál es el mecanismo de entrega?
-
Not Synced
¡No me importa!
-
Not Synced
¡No me importa cual es el mecanismo de entrega!
-
Not Synced
puede ser la web, puede ser clientes pesados, puede ser una aplicación de consola
-
Not Synced
puede ser un conjunto de servicios web
-
Not Synced
¡No me importa!
-
Not Synced
y quiero que se mantenga así
-
Not Synced
no me interesa cual sea el mecanismo de entrega, voy a tener el mecanismo de entrega
-
Not Synced
hablando conmigo a través de una interface desde la cual mis interactors van a derivar
-
Not Synced
mis interactors luego van a cachear la data que viene desde el usuario a través del
-
Not Synced
mecanismo de entrega. Mi interactor impondrá lógica de negocio específica
-
Not Synced
irá a mis entidades que encapsulan lógica no específica
-
Not Synced
y tendrémos harto trabajo interesante hecho, luego juntará harta data de vuelta
-
Not Synced
enviandola de vuelta por las fronteras hacia el mecanismo de entrega llegandole al final al usuario
-
Not Synced
noten la dirección de las dependencias justo aquí
-
Not Synced
el mecanismo de entrega depende de la frontera
-
Not Synced
nada hacia la derecha del mecanismo de entrega depende de él.
-
Not Synced
no hay ninguna dependencia terminando en el mecanismo de entrega
-
Not Synced
lo que significa que puedo tomar toda esta parte
-
Not Synced
y colcarla en una gema (gem)
-
Not Synced
o una dll si son programadores .Net
-
Not Synced
o un .jar si son programadores Java
-
Not Synced
puedo tomar eso y colocarlo en un lugar completamente desacoplado de todo lo demás
-
Not Synced
y puedo hacer que el mecanismo de entrega sea un plug-in para mi aplicación.
-
Not Synced
imagínense lo que eso significa para ustedes
-
Not Synced
si el mecanismo de entrega fuera un plug-in para sus aplicaciones.
-
Not Synced
eso implicaría que ustedes no tendrían que incorporarlo
-
Not Synced
cuándo no quicieras incorporar el mecanismo de entrega?
-
Not Synced
¿Cuando estás ejecutando test!
-
Not Synced
¡digamos que es cucumber!
-
Not Synced
Este mecanismo de entrega de ahí, ¡Digamos que es cucumber!
-
Not Synced
¿Que tan rápido dirías que eso se ejecuta?
-
Not Synced
bueno va tan rápido como puede, ya que no hay ningún sistema web
-
Not Synced
no hay web servers, no HTML, todo el javascript sucede en otra parte
-
Not Synced
no hay web server o parecido aquí
-
Not Synced
ahí está cucumber
-
Not Synced
puedes hacer que tus tests ejecuten muy muy rápido
-
Not Synced
así que sigamos el camino
-
Not Synced
un usuario decide que necesita interactuar con el sistema
-
Not Synced
así que el usuario tiene una buena idea, llega al sistema
-
Not Synced
escribe un montón de cosas en el teclado, este es un ambiente web, quizás
-
Not Synced
no importa
-
Not Synced
el mecanismo de entrega de alguna manera captura lo que el usuario quiere
-
Not Synced
quizás en un formulario, quizás en alguna ventana, a quien le importa
-
Not Synced
quizás en la linea de comando, no me importa
-
Not Synced
el mecanismo de entrega eventualmente obtiene todos los datos que requirere
-
Not Synced
y crea un modelo de solicitud. (Request Model)
-
Not Synced
que es esto, es una estructura de datos, no tiene métodos
-
Not Synced
es solo un conjunto de datos simples
-
Not Synced
nada dentro de esta estructura de datos parece que siquiera viene de la web
-
Not Synced
no puedes ver esta estructura y decir "oh esto debe venir de la web"
-
Not Synced
no hay ids de sesión, nada de todo lo otro
-
Not Synced
solo un conjunto de datos que representan la solicitud
-
Not Synced
eso va a través de la frontera
-
Not Synced
hacia el iteractor
-
Not Synced
ahora el interactor la tiene y es aun una tonta estructura de datos
-
Not Synced
pero el interactor sabe que hacer con ella
-
Not Synced
obtiene toda la información interesante del request model y luego va a tener
-
Not Synced
que ejecutar
-
Not Synced
¿Qué es lo que hace? habla con los objetos de entidad
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced
-
Not Synced