{
  "name": "Curso.Flutter.completoAtualizado.2026.AndroidiOSWindows-CL",
  "modules": [
    {
      "name": "001. Introducao",
      "lessons": [
        {
          "name": "001. Introducao do curso",
          "files": [
            {
              "id": "9fb85ab222985b8dbd3262a006ab21a7",
              "name": "Aula.mp4",
              "path": "../001. Introducao/001. Introducao do curso/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 88.886531,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "002. Comecando com Dart",
      "lessons": [
        {
          "name": "001. O que e o Dart",
          "files": [
            {
              "id": "0d2b9db57d8e521c9dfebaa9435dae52",
              "name": "Aula.mp4",
              "path": "../002. Comecando com Dart/001. O que e o Dart/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 237.397333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. SDK-Kit de desenvolvimento do Dart",
          "files": [
            {
              "id": "d7206e5f172955478a16ccffeba91d75",
              "name": "Aula.mp4",
              "path": "../002. Comecando com Dart/002. SDK-Kit de desenvolvimento do Dart/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 465.28,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "003. Operadores variaveis e comentarios",
      "lessons": [
        {
          "name": "001. Funcao print",
          "files": [
            {
              "id": "1f555f9d31215519845ac62e884c6e4b",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/001. Funcao print/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 324.138667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Operacoes matematicas",
          "files": [
            {
              "id": "e133132866be5a808bd687868d9f6064",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/002. Operacoes matematicas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 450.645333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Comentarios",
          "files": [
            {
              "id": "f8e166ac30505ccc88066245691474cb",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/003. Comentarios/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 154.368,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Variaveis",
          "files": [
            {
              "id": "de5af4e5fdbb5c6dbe05b75b85e8efb7",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/004. Variaveis/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1963.904,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Tipos var const e final",
          "files": [
            {
              "id": "621dd520340b5f3badcbdbe2563bff86",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/005. Tipos var const e final/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 354.474667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Tipo final vs const",
          "files": [
            {
              "id": "2b34850e647f5413bd801fc25053b540",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/006. Tipo final vs const/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 326.613333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Variaveis opcionaisnullable",
          "files": [
            {
              "id": "a52509a3690559ffb5d86cb3fa32827c",
              "name": "Aula.mp4",
              "path": "../003. Operadores variaveis e comentarios/007. Variaveis opcionaisnullable/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 850.346667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "004. Controlando o fluxo de seu codigo",
      "lessons": [
        {
          "name": "001. Condicoes IF",
          "files": [
            {
              "id": "f9faba2ba1cf568797b20d302de56696",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/001. Condicoes IF/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1410.176,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Condicoes ternarias",
          "files": [
            {
              "id": "9df823782a8259dc894327b550ca0165",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/002. Condicoes ternarias/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 329.770667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Switch",
          "files": [
            {
              "id": "81d0846e59fe5b09bc029ed60c85d6fd",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/003. Switch/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 391.68,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Loop For",
          "files": [
            {
              "id": "0cbf8312d561577d8010d22ef99df3e3",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/004. Loop For/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 822.528,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Loop While",
          "files": [
            {
              "id": "887a41b48dac562cb18a79c333d550cc",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/005. Loop While/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 267.008,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Loop Do While",
          "files": [
            {
              "id": "4ed0e04b697656a79996f3714f58e642",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/006. Loop Do While/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 189.994667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Palavra chave Continue",
          "files": [
            {
              "id": "a4ce67e8082255dea3ed8406f1f8f588",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/007. Palavra chave Continue/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 158.933333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Palavra chave Break",
          "files": [
            {
              "id": "4da09b63e9ca538b9399326e8c42ff40",
              "name": "Aula.mp4",
              "path": "../004. Controlando o fluxo de seu codigo/008. Palavra chave Break/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 91.818667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "005. Funcoes",
      "lessons": [
        {
          "name": "001. Funcoes",
          "files": [
            {
              "id": "8d2726219b055257be59f58659730222",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/001. Funcoes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 660.010667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Retornando 2 valores de uma funcao-Records",
          "files": [
            {
              "id": "bcf44529c24f5d6498c9195b2c88ac6f",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/002. Retornando 2 valores de uma funcao-Records/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 239.402667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Padroes",
          "files": [
            {
              "id": "68776ad18c3a5d35a33be4a9c444cec6",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/003. Padroes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 228.48,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Retornando valores ou null",
          "files": [
            {
              "id": "542a161610905e17a8ba2d5a2c62e1b5",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/004. Retornando valores ou null/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 236.288,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Parametros posicionais e variaveis globais",
          "files": [
            {
              "id": "8b672a2d179b5b42862b2da8e3dc344a",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/005. Parametros posicionais e variaveis globais/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 490.496,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Parametros nomeados",
          "files": [
            {
              "id": "5bdf8b98d03e5b75a0b23796b3a53265",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/006. Parametros nomeados/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 481.28,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Records",
          "files": [
            {
              "id": "e5d39971bd825747965c825943f41d31",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/007. Records/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 388.949333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Retornando funcao de funcao",
          "files": [
            {
              "id": "7cc4efd4331c58e88e3e1868b9686466",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/008. Retornando funcao de funcao/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 258.602667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Funcoes Arrow",
          "files": [
            {
              "id": "410663c36cd05c3b998f16589e16c5e7",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/009. Funcoes Arrow/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 113.194667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Funcoes anonimas",
          "files": [
            {
              "id": "5ae9a30254fe5bc39080698174c77c42",
              "name": "Aula.mp4",
              "path": "../005. Funcoes/010. Funcoes anonimas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 88.704,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "006. Classes",
      "lessons": [
        {
          "name": "001. Classes",
          "files": [
            {
              "id": "78c362c823895a6aa78ce818f9c67276",
              "name": "Aula.mp4",
              "path": "../006. Classes/001. Classes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1158.144,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Construtor",
          "files": [
            {
              "id": "6ce763c7d6a45616a68928e894f0423d",
              "name": "Aula.mp4",
              "path": "../006. Classes/002. Construtor/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 220.117333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Palavra chave This",
          "files": [
            {
              "id": "2b2aa720fd6755e2823e2ff7f2ae1780",
              "name": "Aula.mp4",
              "path": "../006. Classes/003. Palavra chave This/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 71.04,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Funcoes com parametros posicionais",
          "files": [
            {
              "id": "4b3fd698ae055f1e9ebe7a4349eb9ddb",
              "name": "Aula.mp4",
              "path": "../006. Classes/004. Funcoes com parametros posicionais/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 189.482667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Classes imutaveis",
          "files": [
            {
              "id": "2b607984c1a15427afbb2c7175f17b5d",
              "name": "Aula.mp4",
              "path": "../006. Classes/005. Classes imutaveis/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 189.312,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Construtor parametros nomeados",
          "files": [
            {
              "id": "63cbe9cb48df51d785bd4e6130b742ad",
              "name": "Aula.mp4",
              "path": "../006. Classes/006. Construtor parametros nomeados/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 91.776,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Palavra classe",
          "files": [
            {
              "id": "63963d8ec7275936938edb717cdbdacc",
              "name": "Aula.mp4",
              "path": "../006. Classes/007. Palavra classe/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 92.245333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Variaveis privadas",
          "files": [
            {
              "id": "1586d1aaa3bd50e0bd5ca1405a7ab23d",
              "name": "Aula.mp4",
              "path": "../006. Classes/008. Variaveis privadas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 382.250667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Getters",
          "files": [
            {
              "id": "cbdff9a4fc325fe0af3895a3b9234b70",
              "name": "Aula.mp4",
              "path": "../006. Classes/009. Getters/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 287.573333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Setters",
          "files": [
            {
              "id": "36235864902b5d199d30336c63791013",
              "name": "Aula.mp4",
              "path": "../006. Classes/010. Setters/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 247.509333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "011. Variaveis estaticas",
          "files": [
            {
              "id": "ba82c8cae29e5cdca9dc5308feb539dc",
              "name": "Aula.mp4",
              "path": "../006. Classes/011. Variaveis estaticas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 464.298667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "012. Funcoes estaticas",
          "files": [
            {
              "id": "10272d53605d52b0bfcfefda2fdf589a",
              "name": "Aula.mp4",
              "path": "../006. Classes/012. Funcoes estaticas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 232.362667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "013. Quando usar static",
          "files": [
            {
              "id": "c7983977f8c75d278188f865b28af6d8",
              "name": "Aula.mp4",
              "path": "../006. Classes/013. Quando usar static/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 164.608,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "007. Programacao Orientada a Objetos POO",
      "lessons": [
        {
          "name": "001. Heranca",
          "files": [
            {
              "id": "d95067b6e08b5021ab03718aa34b9a9d",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/001. Heranca/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1548.714667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Palavra chave Implements",
          "files": [
            {
              "id": "59721888a31755a5b896af661695f96f",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/002. Palavra chave Implements/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 884.010667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Classes abstrata",
          "files": [
            {
              "id": "807896b6245c532680d2392865eca15e",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/003. Classes abstrata/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 344.832,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. POO em dart",
          "files": [
            {
              "id": "2cc3cefea97759af9826cd7b11fb3187",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/004. POO em dart/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 155.178667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Polimorfismo",
          "files": [
            {
              "id": "edcc968454c35735827929a5f638b438",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/005. Polimorfismo/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 259.2,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Abstracao",
          "files": [
            {
              "id": "b075c161b937564289fd22f647e7c095",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/006. Abstracao/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 372.821333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Encapsulamento",
          "files": [
            {
              "id": "a36a2d03282756bb92fd1b44bff46dc3",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/007. Encapsulamento/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 285.482667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Repassando POO",
          "files": [
            {
              "id": "f9858cec88ea5c4caa0023f6a4879914",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/008. Repassando POO/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 122.410667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Mixins",
          "files": [
            {
              "id": "210b1966552f514ab9998efb753b986e",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/009. Mixins/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 399.445333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Modificadores de classes",
          "files": [
            {
              "id": "d9ff41e4b9355727b49e55c5a17c0f2c",
              "name": "Aula.mp4",
              "path": "../007. Programacao Orientada a Objetos POO/010. Modificadores de classes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 566.101333,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "008. Maps Lists e Enums",
      "lessons": [
        {
          "name": "001. Lists",
          "files": [
            {
              "id": "b527052d180a5e718eb2822411e384ab",
              "name": "Aula.mp4",
              "path": "../008. Maps Lists e Enums/001. Lists/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 2562.090667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Sets",
          "files": [
            {
              "id": "7c85bd8168d155b6bfc0483ffa723dcc",
              "name": "Aula.mp4",
              "path": "../008. Maps Lists e Enums/002. Sets/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 201.344,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Maps",
          "files": [
            {
              "id": "0d8f9ae3ba6b5f0582029ef3eab2f4dd",
              "name": "Aula.mp4",
              "path": "../008. Maps Lists e Enums/003. Maps/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1627.776,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Enums",
          "files": [
            {
              "id": "be909317317a595c85d7debdd81c98cb",
              "name": "Aula.mp4",
              "path": "../008. Maps Lists e Enums/004. Enums/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 587.776,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Enums Heranca",
          "files": [
            {
              "id": "d6d017042f3553b8aced3d7453f7f4f4",
              "name": "Aula.mp4",
              "path": "../008. Maps Lists e Enums/005. Enums Heranca/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 357.76,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "009. Programacao assincrona",
      "lessons": [
        {
          "name": "001. Tratando excecoes",
          "files": [
            {
              "id": "37a2cf1e85565fcd8bad10286d85d6bc",
              "name": "Aula.mp4",
              "path": "../009. Programacao assincrona/001. Tratando excecoes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 462.933333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Futures Promisses",
          "files": [
            {
              "id": "067c2476a0435d5a80ba8c2c2acb5b06",
              "name": "Aula.mp4",
              "path": "../009. Programacao assincrona/002. Futures Promisses/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 2502.570667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Streams",
          "files": [
            {
              "id": "45c8b0fd1806572aa31434d84c201c16",
              "name": "Aula.mp4",
              "path": "../009. Programacao assincrona/003. Streams/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 680.746667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "010. Mais sobre Records padroes e extensoes Avancado",
      "lessons": [
        {
          "name": "001. Criando Records",
          "files": [
            {
              "id": "6a798ef1949c5c089bb753e03cb85e13",
              "name": "Aula.mp4",
              "path": "../010. Mais sobre Records padroes e extensoes Avancado/001. Criando Records/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 517.248,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Patterns e patterns matching",
          "files": [
            {
              "id": "254afe02337653f3a690c89e9b9a3845",
              "name": "Aula.mp4",
              "path": "../010. Mais sobre Records padroes e extensoes Avancado/002. Patterns e patterns matching/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1437.909333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Extensoes",
          "files": [
            {
              "id": "17c4bb203f68532ba243c985a2cc69a1",
              "name": "Aula.mp4",
              "path": "../010. Mais sobre Records padroes e extensoes Avancado/003. Extensoes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 369.066667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "011. Instalacao do Flutter",
      "lessons": [
        {
          "name": "001. Instalando flutter",
          "files": [
            {
              "id": "fadc811766995d33b5e8622f810a5885",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/001. Instalando flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 385.28,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Atualizacao do Android Studio e donwload do Flutter",
          "files": [
            {
              "id": "a7216cb8832c59fa92631152a5289844",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/002. Atualizacao do Android Studio e donwload do Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 633.738333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Instalando Android Studio e Visual Studio",
          "files": [
            {
              "id": "dbe35569c7035cbf840d732bbc1df00a",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/003. Instalando Android Studio e Visual Studio/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 623.445333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Criando o primeiro aplicativo em Flutter",
          "files": [
            {
              "id": "c8e9918c8a0a5eb6ac45ee760ea5511c",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/004. Criando o primeiro aplicativo em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 511.488,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Instalando VS Code do zero para usar com o Flutter",
          "files": [
            {
              "id": "379c6dc62abc5bf9ada775c7b64f18d1",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/005. Instalando VS Code do zero para usar com o Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 782.293333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Conhecendo a estrutura inicial das pastas de projeto em Flut",
          "files": [
            {
              "id": "e00caec1dd8e5bb48297ca832b27a70d",
              "name": "Aula.mp4",
              "path": "../011. Instalacao do Flutter/006. Conhecendo a estrutura inicial das pastas de projeto em Flut/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 328.917333,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "012. Flutter basico",
      "lessons": [
        {
          "name": "001. Escrevendo primeiro codigo Flutter",
          "files": [
            {
              "id": "653ef2875c3d5831b082993f51754c16",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/001. Escrevendo primeiro codigo Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 227.413333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Importando pacotes e Material",
          "files": [
            {
              "id": "6563e4a3a07e5d478449dc0f59048791",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/002. Importando pacotes e Material/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 247.509333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Funcao runApp em Flutter",
          "files": [
            {
              "id": "dc9e2449ff625ff5b0a1778de99aa105",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/003. Funcao runApp em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 114.389333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. O que sao Widgets",
          "files": [
            {
              "id": "fcee3424201c5563a7cb40731fc5ff74",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/004. O que sao Widgets/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 112.085333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Widget Text",
          "files": [
            {
              "id": "518f4aec49c65830be99ad4538adf226",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/005. Widget Text/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 645.674667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Tipos de Widgets",
          "files": [
            {
              "id": "934fbdd4dd755cee8443729827837dec",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/006. Tipos de Widgets/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 240.682667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. O que e estado em Flutter",
          "files": [
            {
              "id": "8c19da0fcf2d517d8c8819adc1b66d95",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/007. O que e estado em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 102.357333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "008. O que e Widget Stateless em Flutter",
          "files": [
            {
              "id": "cfd396e2e6875c368673a701320d91cb",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/008. O que e Widget Stateless em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 259.797333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Material design e Cupertino design",
          "files": [
            {
              "id": "1472c0a8e8d85b56aad61a04804f1e4c",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/009. Material design e Cupertino design/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 206.762667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "010. O que e MaterialApp em Flutter",
          "files": [
            {
              "id": "7a37006bf49a523a9fadcf53283ff6dd",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/010. O que e MaterialApp em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 162.090667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "011. O que e Scaffold em Flutter",
          "files": [
            {
              "id": "7be617ad916c507f889c6a0cd54e7a39",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/011. O que e Scaffold em Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 177.365333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "012. Widget Center",
          "files": [
            {
              "id": "ba2411e14b6854e98cf46bbae791dd71",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/012. Widget Center/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 166.912,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "013. Arvore de widgets",
          "files": [
            {
              "id": "9459776a40115a4bb97d6f9948109a63",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/013. Arvore de widgets/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 114.389333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "014. Dividindo e extraindo Widgets",
          "files": [
            {
              "id": "6c226a64bec35d01aeb1c5bdb0b65119",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/014. Dividindo e extraindo Widgets/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 249.941333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "015. O que e BuildContext",
          "files": [
            {
              "id": "4c03f48644b45c0082914b2c72155615",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/015. O que e BuildContext/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 196.010667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "016. Importando arquivos Classes e outros",
          "files": [
            {
              "id": "687abd6900955ebeb8f8d4417ea41122",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/016. Importando arquivos Classes e outros/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 116.181333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "017. Importacao relativa",
          "files": [
            {
              "id": "9a5b4be4adeb57b5ba9f544ca7a27abb",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/017. Importacao relativa/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 100.565333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "018. Esta pronto para a parte pratica",
          "files": [
            {
              "id": "027d9527cd2954049b95b6e1b7267578",
              "name": "Aula.mp4",
              "path": "../012. Flutter basico/018. Esta pronto para a parte pratica/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 105.770667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "013. Widgets",
      "lessons": [
        {
          "name": "001. Widget Column",
          "files": [
            {
              "id": "2ad909efa8f75adf90e70ed0c36a1dc8",
              "name": "Aula.mp4",
              "path": "../013. Widgets/001. Widget Column/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 783.952086,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Widget Row",
          "files": [
            {
              "id": "756528036a765b548552359c08a00348",
              "name": "Aula.mp4",
              "path": "../013. Widgets/002. Widget Row/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 297.571667,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "014. Usando Firebase-Primeira aplicacao pratica",
      "lessons": [
        {
          "name": "001. Requisitos iniciais",
          "files": [
            {
              "id": "662e06a84df05224b4ebca166761eddf",
              "name": "descricao.html",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/001. Requisitos iniciais/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Organizando nosso projeto e dicas inicias",
          "files": [
            {
              "id": "22b07bb33cee5b6fa33d79d2ef2bc530",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/002. Organizando nosso projeto e dicas inicias/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 386.944,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Criando a tela de login",
          "files": [
            {
              "id": "94be391ed9bf5b2d973b946cb0c54034",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/003. Criando a tela de login/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 847.871667,
              "subtitles": []
            },
            {
              "id": "78591e4e7a865abeb95e91891bb76ff9",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/003. Criando a tela de login/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Criando nosso projeto no firebase e configurando ele",
          "files": [
            {
              "id": "355f6dd06cea54b7a48cf946594bfb40",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/004. Criando nosso projeto no firebase e configurando ele/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 786.838333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Fazendo nossa tela de registro",
          "files": [
            {
              "id": "09987bbc606b57e3bfd6e221e3e3ae9d",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/005. Fazendo nossa tela de registro/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 917.371667,
              "subtitles": []
            },
            {
              "id": "8aacf13a33c0551186cfcddb12c4d332",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/005. Fazendo nossa tela de registro/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Criando nossa classe auth_service",
          "files": [
            {
              "id": "63034ee3c9b05943bec84c856c240a05",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/006. Criando nossa classe auth_service/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 672.971667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Finalizando nossa classe auth",
          "files": [
            {
              "id": "2bcaef20c31f57509708041d04d45e72",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/007. Finalizando nossa classe auth/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 288.338333,
              "subtitles": []
            },
            {
              "id": "25d7ad37c7e25cd5906114f30c3d8f60",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/007. Finalizando nossa classe auth/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Atualizacao no repositorio do projeto",
          "files": [
            {
              "id": "8a15481649f6571bb0011c6fe28274df",
              "name": "descricao.html",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/008. Atualizacao no repositorio do projeto/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Tela de cadastro de usuario funcionando agora",
          "files": [
            {
              "id": "ca81c55ee964541ebd1e159f7ba284f1",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/009. Tela de cadastro de usuario funcionando agora/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 375.805,
              "subtitles": []
            },
            {
              "id": "2a4e0c416ca2555c8fe2b0e20d6c3a76",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/009. Tela de cadastro de usuario funcionando agora/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Uma atualizacao nessa tela importante",
          "files": [
            {
              "id": "405a2382442c52bcabde7134922e874b",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/010. Uma atualizacao nessa tela importante/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 317.171667,
              "subtitles": []
            },
            {
              "id": "7693a989bfe15614afc7c27f78dce772",
              "name": "Commit-Github-Vers-o-2.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/010. Uma atualizacao nessa tela importante/Commit-Github-Vers-o-2.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "011. Roteador de telas",
          "files": [
            {
              "id": "bb8b532359ad53938e0a0cce687de0ff",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/011. Roteador de telas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 391.538333,
              "subtitles": []
            },
            {
              "id": "f2e97380ed3350daae1730deb5dea44d",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/011. Roteador de telas/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "012. Comecando a tela principal do App",
          "files": [
            {
              "id": "efd3e186a87f5ec7b04c6a3d67b3b3e8",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/012. Comecando a tela principal do App/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 901.105,
              "subtitles": []
            },
            {
              "id": "fd710af8c20e59cdaa21f1eaeba80bb4",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/012. Comecando a tela principal do App/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "013. Criando nosso Menu e Model no projeto",
          "files": [
            {
              "id": "90f8bdf17e505c69bad6b471979c4a23",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/013. Criando nosso Menu e Model no projeto/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1137.438333,
              "subtitles": []
            },
            {
              "id": "383a812724065212a3ff8bf0dba44819",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/013. Criando nosso Menu e Model no projeto/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "014. Continuando nossa tela de HomeScreen",
          "files": [
            {
              "id": "ef020c8dba9e5e02b9127d398b851264",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/014. Continuando nossa tela de HomeScreen/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 757.505,
              "subtitles": []
            },
            {
              "id": "118aecc0a3c2542d9a2cbcb2c24d8d84",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/014. Continuando nossa tela de HomeScreen/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "015. Criando o helper para trabalhar com horas",
          "files": [
            {
              "id": "221b6a48963c59afac390f2153d5cc4e",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/015. Criando o helper para trabalhar com horas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 420.171667,
              "subtitles": []
            },
            {
              "id": "73a76f07b39d5031883ea58a480d097e",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/015. Criando o helper para trabalhar com horas/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "016. Quase finalizando a tela HomeScreen",
          "files": [
            {
              "id": "da4aa785432b500c9e6ae03e7a8d1b97",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/016. Quase finalizando a tela HomeScreen/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1312.638333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "017. Adicionar horas no firestore-modal",
          "files": [
            {
              "id": "31d7d7683f47566297e867dcb886c9fb",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/017. Adicionar horas no firestore-modal/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 667.671667,
              "subtitles": []
            },
            {
              "id": "13f9883ad5845303a285bee694093227",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/017. Adicionar horas no firestore-modal/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "018. Mostrar horas na tela principal do firestore e mostrar no mo",
          "files": [
            {
              "id": "1ad8b31d46e554e1b4a0d147ba85632b",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/018. Mostrar horas na tela principal do firestore e mostrar no mo/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 372.371667,
              "subtitles": []
            },
            {
              "id": "fa3e424ea5b8566191ba2bc537c03a7e",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/018. Mostrar horas na tela principal do firestore e mostrar no mo/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "019. Finalizando primeiro App-Proximas modificacoes em breve Segu",
          "files": [
            {
              "id": "bff1bd60460a51188ab715b55b1a8985",
              "name": "Aula.mp4",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/019. Finalizando primeiro App-Proximas modificacoes em breve Segu/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 570.371667,
              "subtitles": []
            },
            {
              "id": "c33cf8c1c38b53c8b9ab6558a39dd6c0",
              "name": "Commit-Github-.url",
              "path": "../014. Usando Firebase-Primeira aplicacao pratica/019. Finalizando primeiro App-Proximas modificacoes em breve Segu/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "015. Segundo App",
      "lessons": [
        {
          "name": "001. Introducao segundo App",
          "files": [
            {
              "id": "b00c64b99fd15d6aa8b75849eafd8f0f",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/001. Introducao segundo App/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 207.305,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Comecando a redefinicao de senha",
          "files": [
            {
              "id": "0e2c0bd3cd6551bea603038032e8fd69",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/002. Comecando a redefinicao de senha/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 627.605,
              "subtitles": []
            },
            {
              "id": "ad8b684edfb75d69a94f5656a342a620",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/002. Comecando a redefinicao de senha/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Finalizando a recuperacao de senha",
          "files": [
            {
              "id": "8e90a51be869528c92b4f9635beb6d05",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/003. Finalizando a recuperacao de senha/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 527.205,
              "subtitles": []
            },
            {
              "id": "bef5d1077a4d5ea18aff68436dbe62d0",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/003. Finalizando a recuperacao de senha/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Login com google-Depois testando o email de recuperar senha",
          "files": [
            {
              "id": "e3407c2215b752a68a0976d0e58e6d8f",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/004. Login com google-Depois testando o email de recuperar senha/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 523.971667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Acertando os problemas com login social-Teste redefinicao de",
          "files": [
            {
              "id": "46cc67536a95569bb0adcfbd003e3b02",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/005. Acertando os problemas com login social-Teste redefinicao de/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 340.738333,
              "subtitles": []
            },
            {
              "id": "3c471415eb355f319f6ae6197c37dca0",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/005. Acertando os problemas com login social-Teste redefinicao de/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Implementando notificacoes em nosso App",
          "files": [
            {
              "id": "c30d7e716c3f5085979444c9b7055632",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/006. Implementando notificacoes em nosso App/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 683.947,
              "subtitles": []
            },
            {
              "id": "d14cf0f3dea357c691e17316b1650ad1",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/006. Implementando notificacoes em nosso App/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Testando as notifcacoes e os primeiros problemas",
          "files": [
            {
              "id": "062384362f905f44bf2c4eeca528299a",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/007. Testando as notifcacoes e os primeiros problemas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 539.847333,
              "subtitles": []
            },
            {
              "id": "168330233335589fbd89347ce5cd7025",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/007. Testando as notifcacoes e os primeiros problemas/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Comportamento padrao do FCM",
          "files": [
            {
              "id": "d1bd7a5c5d86598a99fee670319c25dd",
              "name": "quiz.html",
              "path": "../015. Segundo App/008. Comportamento padrao do FCM/quiz.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Segundo App - Desafio 1",
          "files": [
            {
              "id": "66c59a2954635a21adefa62648322904",
              "name": "instrucoes.html",
              "path": "../015. Segundo App/009. Segundo App - Desafio 1/instrucoes.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Resumo finalizando o App e desafios para voce",
          "files": [
            {
              "id": "4fc4cfcbd8225a418bc108d746d03533",
              "name": "Aula.mp4",
              "path": "../015. Segundo App/010. Resumo finalizando o App e desafios para voce/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1131.705,
              "subtitles": []
            },
            {
              "id": "ba1f6f19156850b5a952afee3032d88b",
              "name": "Commit-Github-.url",
              "path": "../015. Segundo App/010. Resumo finalizando o App e desafios para voce/Commit-Github-.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "011. Segundo App - Desafio 2",
          "files": [
            {
              "id": "77b6ac5deec0512c9ae43fce4b4bdcad",
              "name": "instrucoes.html",
              "path": "../015. Segundo App/011. Segundo App - Desafio 2/instrucoes.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "016. Aplicativo de Lista de tarefas",
      "lessons": [
        {
          "name": "001. Tela do aplicativo Lista de tarefas concluido",
          "files": [
            {
              "id": "e80ed154f2e055159b29bd558c28a55c",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/001. Tela do aplicativo Lista de tarefas concluido/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Usando um tema no flutter",
          "files": [
            {
              "id": "c1be529335445962a381130c31aea521",
              "name": "Use-themes-to-share-colors-and-font-styles.url",
              "path": "../016. Aplicativo de Lista de tarefas/002. Usando um tema no flutter/Use-themes-to-share-colors-and-font-styles.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "ee5337593d8b5d15b8c0afd0eaab178c",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/002. Usando um tema no flutter/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Alterar o tema do app e separar a tela principal",
          "files": [
            {
              "id": "ae1875ed88b45809be899093d7aced9f",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/003. Alterar o tema do app e separar a tela principal/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 211.413333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. StatelessWidget e StatefulWidget",
          "files": [
            {
              "id": "bfcacae4ae8b52b2a658407f5d6bfd42",
              "name": "Stateful-and-stateless-widgets.url",
              "path": "../016. Aplicativo de Lista de tarefas/004. StatelessWidget e StatefulWidget/Stateful-and-stateless-widgets.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "4eef2a671f0457778303710f2e7552d4",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/004. StatelessWidget e StatefulWidget/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Construtores de fabrica no Dart",
          "files": [
            {
              "id": "08e3eb36e8d75b229a00fd971dc79126",
              "name": "Factory-constructors.url",
              "path": "../016. Aplicativo de Lista de tarefas/005. Construtores de fabrica no Dart/Factory-constructors.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "9813484e9da6572e8b1ad832f0980927",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/005. Construtores de fabrica no Dart/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "006. O que e um ListView",
          "files": [
            {
              "id": "76db8093447457b7985f36c72a8dcc29",
              "name": "Create-a-horizontal-list.url",
              "path": "../016. Aplicativo de Lista de tarefas/006. O que e um ListView/Create-a-horizontal-list.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "de0cffa89b6157ff8ab7f048689b640c",
              "name": "Use-lists.url",
              "path": "../016. Aplicativo de Lista de tarefas/006. O que e um ListView/Use-lists.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "b7120947a6b455058f5fe9ae9325aa69",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/006. O que e um ListView/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "007. O que e um ListTile",
          "files": [
            {
              "id": "5197991c24ca5303a5359469214a9e9e",
              "name": "ListTile-class.url",
              "path": "../016. Aplicativo de Lista de tarefas/007. O que e um ListTile/ListTile-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "7631ec5887dd5fa683b0fe6653887eb1",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/007. O que e um ListTile/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Criar uma lista de tarefas com alguns exemplos usando um mod",
          "files": [
            {
              "id": "f9a2c14d9ffe5ca08c34e38e0036eca8",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/008. Criar uma lista de tarefas com alguns exemplos usando um mod/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 428.757333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "009. TextFormField e TextEditingController",
          "files": [
            {
              "id": "273ae3c756ce58c1bedb974cf5d51c45",
              "name": "Create-and-style-a-text-field.url",
              "path": "../016. Aplicativo de Lista de tarefas/009. TextFormField e TextEditingController/Create-and-style-a-text-field.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "06ab730eb3c2559eaa5875147b576eea",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/009. TextFormField e TextEditingController/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Para que serve o InputDecoration",
          "files": [
            {
              "id": "61fd90c026545068961de67bd50463ef",
              "name": "InputDecoration-class.url",
              "path": "../016. Aplicativo de Lista de tarefas/010. Para que serve o InputDecoration/InputDecoration-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "a603a12ce18e565e94f3af11f2cd5848",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/010. Para que serve o InputDecoration/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "011. Tipos de Buttons no Flutter",
          "files": [
            {
              "id": "9328933a51655874ac390f378503ec0c",
              "name": "Material-3-button-types.url",
              "path": "../016. Aplicativo de Lista de tarefas/011. Tipos de Buttons no Flutter/Material-3-button-types.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "52ddaf65939a5a5eb6624fda41195a6b",
              "name": "New-Buttons-and-Button-Themes.url",
              "path": "../016. Aplicativo de Lista de tarefas/011. Tipos de Buttons no Flutter/New-Buttons-and-Button-Themes.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "ead2a97f5dd95be39863ade65e2c94a8",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/011. Tipos de Buttons no Flutter/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "012. Editar o item da lista",
          "files": [
            {
              "id": "68c8e0ec338859b38c221788e38c49c7",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/012. Editar o item da lista/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 544.938667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "013. O que e o padrao MVVM",
          "files": [
            {
              "id": "7a7b3954f7c45a5aae7ca760404469a4",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/013. O que e o padrao MVVM/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "014. Como usamos o padrao MVVM em nosso projeto",
          "files": [
            {
              "id": "4928d99353a55819967ddf367a0ae49d",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/014. Como usamos o padrao MVVM em nosso projeto/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "015. O que e o ValueNotifier",
          "files": [
            {
              "id": "fc751f93180c5af98ede8a244aa39cab",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/015. O que e o ValueNotifier/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "016. Exemplo de um ValueNotifier personalizado",
          "files": [
            {
              "id": "7c22688c4ae950bda2d6e7417145afcb",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/016. Exemplo de um ValueNotifier personalizado/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "017. Criar o controller e o notifier",
          "files": [
            {
              "id": "0109e311898357c0b0a911a2c74fd90d",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/017. Criar o controller e o notifier/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 526.037333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "018. Adicionar o get_it no projeto e configurar",
          "files": [
            {
              "id": "afc5ddacf3dd5182bd667fdd9bb80831",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/018. Adicionar o get_it no projeto e configurar/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 375.509333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "019. Atualizar uma tarefa",
          "files": [
            {
              "id": "f0aed0ca8d815435bedbb0b3422bc62f",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/019. Atualizar uma tarefa/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 701.653333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "020. Marcar como concluida",
          "files": [
            {
              "id": "9ca707bd0d8c56e6b6211dc8e16938e1",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/020. Marcar como concluida/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 142.592,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "021. Excluir uma tarefa",
          "files": [
            {
              "id": "84b65a9cf9d55e41b51130f0e0416854",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/021. Excluir uma tarefa/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 246.357333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "022. Criar o campo para nova tarefa",
          "files": [
            {
              "id": "0882ae5aaf9953f28dc8e50f57cf3d8e",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/022. Criar o campo para nova tarefa/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1013.077333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "023. Exemplo de uso do DefaultTabController",
          "files": [
            {
              "id": "a4839b76e6c55d1f99f84c66929b904f",
              "name": "DefaultTabController-class.url",
              "path": "../016. Aplicativo de Lista de tarefas/023. Exemplo de uso do DefaultTabController/DefaultTabController-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "bf5117e07c745416a043431f2cfe10af",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/023. Exemplo de uso do DefaultTabController/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "024. Opcao para filtrar as tarefas",
          "files": [
            {
              "id": "823b77d7ba1d5e1081e58385919f9f62",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/024. Opcao para filtrar as tarefas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 482.389333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "025. Filtrar a lista de tarefas",
          "files": [
            {
              "id": "43223c0f39cd5498911c0bfce0adccd3",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/025. Filtrar a lista de tarefas/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1065.941333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "026. Estado vazio e condicao para exibir nova tarefa",
          "files": [
            {
              "id": "252524c45de6562485a4923fb56d0846",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/026. Estado vazio e condicao para exibir nova tarefa/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 391.381333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "027. Reordenar lista",
          "files": [
            {
              "id": "18201487f5a350f28d808ed4ba46e5e1",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/027. Reordenar lista/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 610.346667,
              "subtitles": []
            },
            {
              "id": "b5cb7bf11d645103bef23a0a66b9bb08",
              "name": "ReorderableListView-class.url",
              "path": "../016. Aplicativo de Lista de tarefas/027. Reordenar lista/ReorderableListView-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "028. Solucao do bug ao editar item em lista filtrada",
          "files": [
            {
              "id": "5ddf9cef359f54a5a866a03da674e809",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/028. Solucao do bug ao editar item em lista filtrada/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 131.669333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "029. Padrao Service",
          "files": [
            {
              "id": "a72ab374f4355979bcca708c96056dd3",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/029. Padrao Service/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "030. Configurar storage",
          "files": [
            {
              "id": "d1500ac25b4b5ed7a508bd3a1344b30b",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/030. Configurar storage/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 988.586667,
              "subtitles": []
            },
            {
              "id": "4b846378676b5fe2918559d02802e3f6",
              "name": "hive.url",
              "path": "../016. Aplicativo de Lista de tarefas/030. Configurar storage/hive.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "0182c6004b425f1486c41237edd6f227",
              "name": "shared-preferences.url",
              "path": "../016. Aplicativo de Lista de tarefas/030. Configurar storage/shared-preferences.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "031. Exemplo com o pacote shared_preferences",
          "files": [
            {
              "id": "5a60871fbb9c58738b78fd47299b9433",
              "name": "descricao.html",
              "path": "../016. Aplicativo de Lista de tarefas/031. Exemplo com o pacote shared_preferences/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "032. Armazenar lista no banco de dados",
          "files": [
            {
              "id": "0bd4f38e06335f75a35b37fcf9c49836",
              "name": "Aula.mp4",
              "path": "../016. Aplicativo de Lista de tarefas/032. Armazenar lista no banco de dados/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 875.477333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "033. Alterar o widget TabBar para o novo widget SegmentedButton",
          "files": [
            {
              "id": "ff5e180d71c65fd581ac67ae2574e6e7",
              "name": "instrucoes.html",
              "path": "../016. Aplicativo de Lista de tarefas/033. Alterar o widget TabBar para o novo widget SegmentedButton/instrucoes.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "034. Incluir o recurso de Pesquisar",
          "files": [
            {
              "id": "dd2ed43398cf5efa83c04ed021fb491f",
              "name": "instrucoes.html",
              "path": "../016. Aplicativo de Lista de tarefas/034. Incluir o recurso de Pesquisar/instrucoes.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "017. Lista de Filmes App",
      "lessons": [
        {
          "name": "001. Telas do aplicativo Lista de filmes concluido",
          "files": [
            {
              "id": "be3d3a401bd95330ba1b78f59521070d",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/001. Telas do aplicativo Lista de filmes concluido/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "002. O que e uma AppBar",
          "files": [
            {
              "id": "b530e3c9acce5a129208d3547cc6fe8f",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/002. O que e uma AppBar/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Alterar o tema e criar pagina inicial",
          "files": [
            {
              "id": "901f591575ae59ef9ab1eda141aa3ac7",
              "name": "AppBar-class.url",
              "path": "../017. Lista de Filmes App/003. Alterar o tema e criar pagina inicial/AppBar-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "c49a08da8bed56909a60285e65e4113a",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/003. Alterar o tema e criar pagina inicial/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 374.058667,
              "subtitles": []
            },
            {
              "id": "00b6e9ded19250cfaf31e33b9a660a29",
              "name": "Documenta-o-da-API-Filmes.url",
              "path": "../017. Lista de Filmes App/003. Alterar o tema e criar pagina inicial/Documenta-o-da-API-Filmes.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Por que usar o dio",
          "files": [
            {
              "id": "a1c93c2858a0575785c7bfce3f2e3625",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/004. Por que usar o dio/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "be90d4ecb64254ea954b54ca465edc47",
              "name": "dio.url",
              "path": "../017. Lista de Filmes App/004. Por que usar o dio/dio.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "005. get_it um simples Service Locator para Dart e Flutter",
          "files": [
            {
              "id": "e462bac0143a5008be5a990fd38e8542",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/005. get_it um simples Service Locator para Dart e Flutter/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "52312176889156458949902d2a599ad6",
              "name": "get-it.url",
              "path": "../017. Lista de Filmes App/005. get_it um simples Service Locator para Dart e Flutter/get-it.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Setup get_it e API",
          "files": [
            {
              "id": "c89fa4ae3a2f5489bea30e57e603aa50",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/006. Setup get_it e API/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 509.824,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Criar o model do filme e comentario",
          "files": [
            {
              "id": "bb53c77d176c52c6b79c704446d829a9",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/007. Criar o model do filme e comentario/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 559.146667,
              "subtitles": []
            },
            {
              "id": "bd2ef8971bdb545da86f92e46f3f21f6",
              "name": "Documenta-o-da-API.url",
              "path": "../017. Lista de Filmes App/007. Criar o model do filme e comentario/Documenta-o-da-API.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "008. Metodo getMovies",
          "files": [
            {
              "id": "0e979b1ad51355f6b08e7838b2c8cb73",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/008. Metodo getMovies/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 155.818667,
              "subtitles": []
            },
            {
              "id": "1d18a2aaa3595d369e0c84c9c0f8a3ff",
              "name": "Documenta-o-da-API.url",
              "path": "../017. Lista de Filmes App/008. Metodo getMovies/Documenta-o-da-API.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "009. Stream StreamController e StreamBuilder",
          "files": [
            {
              "id": "b69045cfcbb451a986ea107d871daeda",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/009. Stream StreamController e StreamBuilder/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "010. Sink do StreamController",
          "files": [
            {
              "id": "7790b47b4299502db87d1ae1dca105d8",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/010. Sink do StreamController/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "011. Adicionar o controller do movie list",
          "files": [
            {
              "id": "e402b36a15aa541ab31d326845e13f61",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/011. Adicionar o controller do movie list/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 815.701333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "012. Exibir o loading ao carregar lista de filmes",
          "files": [
            {
              "id": "bbbdfa18a95159e697a51ae703f1cbf9",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/012. Exibir o loading ao carregar lista de filmes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 248.021333,
              "subtitles": []
            },
            {
              "id": "661493c93f5f52d99ef15671c320f9d5",
              "name": "flutter-spinkit.url",
              "path": "../017. Lista de Filmes App/012. Exibir o loading ao carregar lista de filmes/flutter-spinkit.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "013. Personalizar o item da lista",
          "files": [
            {
              "id": "c4db7af41ee753e88f0bb28ef70e0a0b",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/013. Personalizar o item da lista/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1062.997333,
              "subtitles": []
            },
            {
              "id": "bdf7c695ffd851deb3a7bd483d8b7328",
              "name": "duration.url",
              "path": "../017. Lista de Filmes App/013. Personalizar o item da lista/duration.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "014. Personalize ao seu estilo o item da lista",
          "files": [
            {
              "id": "356bf4e07b5a5d6990ae5c4f7a4123fd",
              "name": "instrucoes.html",
              "path": "../017. Lista de Filmes App/014. Personalize ao seu estilo o item da lista/instrucoes.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "015. Navegando entre Telas no Flutter Rotas Nomeadas e MaterialPa",
          "files": [
            {
              "id": "b0d376954aea5961ba57df886c7428ec",
              "name": "Navigation-and-routing.url",
              "path": "../017. Lista de Filmes App/015. Navegando entre Telas no Flutter Rotas Nomeadas e MaterialPa/Navigation-and-routing.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "81fe71f88e585dd2a3d263343a372d11",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/015. Navegando entre Telas no Flutter Rotas Nomeadas e MaterialPa/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "016. Criar a pagina detalhes do filme controller e navegar para e",
          "files": [
            {
              "id": "3877f84a95995b7b94c89974889ac973",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/016. Criar a pagina detalhes do filme controller e navegar para e/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 619.776,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "017. Buscar os detalhes do filme",
          "files": [
            {
              "id": "94f81915668b530fae664c9af655f664",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/017. Buscar os detalhes do filme/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 294.570667,
              "subtitles": []
            },
            {
              "id": "e89e0a5b3c785cce80f517ecf114fd37",
              "name": "Documenta-o-da-API.url",
              "path": "../017. Lista de Filmes App/017. Buscar os detalhes do filme/Documenta-o-da-API.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "018. Explorando o CustomScrollView no Flutter",
          "files": [
            {
              "id": "d33beebe4ec156c388a75f9e1373d5ca",
              "name": "CustomScrollView-class.url",
              "path": "../017. Lista de Filmes App/018. Explorando o CustomScrollView no Flutter/CustomScrollView-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "305348dc4f6d5ff9a713f8805d916af1",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/018. Explorando o CustomScrollView no Flutter/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "019. SliverAppBar no Flutter Flexibilidade para Interfaces",
          "files": [
            {
              "id": "e2c3990eb7d95231ae62e64a41631e66",
              "name": "Place-a-floating-app-bar-above-a-list.url",
              "path": "../017. Lista de Filmes App/019. SliverAppBar no Flutter Flexibilidade para Interfaces/Place-a-floating-app-bar-above-a-list.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "e52ee9a7a59b5831bffb58079ade8a24",
              "name": "SliverAppBar-class.url",
              "path": "../017. Lista de Filmes App/019. SliverAppBar no Flutter Flexibilidade para Interfaces/SliverAppBar-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "6fdf9670ac1657c2bbac347c231c8882",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/019. SliverAppBar no Flutter Flexibilidade para Interfaces/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "020. Capa e titulo do filme",
          "files": [
            {
              "id": "89ee06617f035e54b0b13ffe3f68a071",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/020. Capa e titulo do filme/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 819.285333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "021. Empilhando Widgets com o Stack no Flutter",
          "files": [
            {
              "id": "e92411b3eda15c6fbab255aac67e1bd0",
              "name": "Stack.url",
              "path": "../017. Lista de Filmes App/021. Empilhando Widgets com o Stack no Flutter/Stack.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "1a2b00f400405d2fbf3b1c03be3b98dd",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/021. Empilhando Widgets com o Stack no Flutter/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "022. Como o SliverToBoxAdapter transforma widgets comuns em Slive",
          "files": [
            {
              "id": "108a25058ebe5845a82ae20620d75af2",
              "name": "descricao.html",
              "path": "../017. Lista de Filmes App/022. Como o SliverToBoxAdapter transforma widgets comuns em Slive/descricao.html",
              "mime": "text/html",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "023. Sobre o filme",
          "files": [
            {
              "id": "a6ae78292f855d73b9d450634c86783d",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/023. Sobre o filme/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 588.970667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "024. Comentarios do filme",
          "files": [
            {
              "id": "17c02f77ed555118aa1437f28210d111",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/024. Comentarios do filme/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 969.045333,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "025. Excluir um comentario",
          "files": [
            {
              "id": "5fbee227b7fd538eb15f2d97375bd700",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/025. Excluir um comentario/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1156.394667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "026. Visual do adicionar comentario",
          "files": [
            {
              "id": "97a121c0bdae56919768d26968567b8d",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/026. Visual do adicionar comentario/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 789.248,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "027. Envio do novo comentario",
          "files": [
            {
              "id": "6dc575e5e339543a924fb42e65b9cbd9",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/027. Envio do novo comentario/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 608.768,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "028. Tratar erros da API",
          "files": [
            {
              "id": "404c054dd4d8561a95f4bbcfdc925de6",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/028. Tratar erros da API/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 379.52,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "029. Finalizar visual da tela detalhes",
          "files": [
            {
              "id": "7bf42f56d70050cf8ad9762919b5dbc2",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/029. Finalizar visual da tela detalhes/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 314.752,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "030. Pesquisar filme",
          "files": [
            {
              "id": "6445df005e745d64bcd8c024334004bf",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/030. Pesquisar filme/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1175.381333,
              "subtitles": []
            },
            {
              "id": "2b3cdbde7df058a6b5453d5d6ac49ce7",
              "name": "FutureBuilder-class.url",
              "path": "../017. Lista de Filmes App/030. Pesquisar filme/FutureBuilder-class.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "031. Lista infinita paginacao",
          "files": [
            {
              "id": "a2e58f047b6e5d319c86e9bd797737c6",
              "name": "Aula.mp4",
              "path": "../017. Lista de Filmes App/031. Lista infinita paginacao/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1234.688,
              "subtitles": []
            },
            {
              "id": "7b0687bb70f65584b5827bc64a69b6f9",
              "name": "infinite-scroll-pagination.url",
              "path": "../017. Lista de Filmes App/031. Lista infinita paginacao/infinite-scroll-pagination.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        }
      ]
    },
    {
      "name": "018. Atualizacoes",
      "lessons": [
        {
          "name": "001. Como atualizar um projeto Flutter para uma nova versao",
          "files": [
            {
              "id": "3791a9146e155d2baaa3c40cdad839fa",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/001. Como atualizar um projeto Flutter para uma nova versao/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 866.986667,
              "subtitles": []
            },
            {
              "id": "94b502976d075bfc97ac3f599acaad94",
              "name": "Flutter-release-notes.url",
              "path": "../018. Atualizacoes/001. Como atualizar um projeto Flutter para uma nova versao/Flutter-release-notes.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            },
            {
              "id": "6d484786601453d0a9271b5c57b0a980",
              "name": "pub.dev.url",
              "path": "../018. Atualizacoes/001. Como atualizar um projeto Flutter para uma nova versao/pub.dev.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "002. Animacoes em flutter",
          "files": [
            {
              "id": "7fdb248bcad3595e89183073048137c2",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/002. Animacoes em flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 675.380667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "003. Carousel slider no Flutter",
          "files": [
            {
              "id": "9e4d56a8cacd52eb9fc682cd8ac39c7d",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/003. Carousel slider no Flutter/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1736.714,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "004. Migrando plugins Gradle no Flutter para o formato declarativ",
          "files": [
            {
              "id": "d47ce890958d558892cde3c322790647",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/004. Migrando plugins Gradle no Flutter para o formato declarativ/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 1787.093333,
              "subtitles": []
            },
            {
              "id": "ae5c509ccd1155c486a64db19d07422d",
              "name": "Deprecated-imperative-apply-of-Flutters-Gradle-plugins.url",
              "path": "../018. Atualizacoes/004. Migrando plugins Gradle no Flutter para o formato declarativ/Deprecated-imperative-apply-of-Flutters-Gradle-plugins.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "005. Como resolver o use_build_context_synchronously",
          "files": [
            {
              "id": "51b43a8b0f1b552ba60f82ff9b5f2d6d",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/005. Como resolver o use_build_context_synchronously/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 726.869333,
              "subtitles": []
            },
            {
              "id": "59db953614fa563f800729827b335d6e",
              "name": "use-build-context-synchronously.url",
              "path": "../018. Atualizacoes/005. Como resolver o use_build_context_synchronously/use-build-context-synchronously.url",
              "mime": "application/octet-stream",
              "kind": "file",
              "duration": 0.0
            }
          ],
          "lessons": []
        },
        {
          "name": "006. Instalacao do Flutter Completa Atualizado",
          "files": [
            {
              "id": "f1a364a90714524b98be61a9065c60a6",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/006. Instalacao do Flutter Completa Atualizado/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 3702.229667,
              "subtitles": []
            }
          ],
          "lessons": []
        },
        {
          "name": "007. Pacote flutter geolocator-Como obter a localizacao de seu us",
          "files": [
            {
              "id": "d9b858c4c3185c1e987842939aaf84ee",
              "name": "Aula.mp4",
              "path": "../018. Atualizacoes/007. Pacote flutter geolocator-Como obter a localizacao de seu us/Aula.mp4",
              "mime": "video/mp4",
              "kind": "video",
              "duration": 614.997333,
              "subtitles": []
            }
          ],
          "lessons": []
        }
      ]
    }
  ],
  "course_id": "c88e24ecad734dcdaafe47f000e61ff8"
}