using System;
using System.Text;
 
namespace TehMain
{
    internal static class Program
    {
        private static int Main(string[] argv)
        {
            Random rnd;
            switch (argv.Length)
            {
                case 5:
                    if (argv[Main(new[] {"  ", " ", "  "})][Main(new[] {"", "", ""})] ==
                        Main(new[] {"  ", "       ", "       "}))
                        return Main(new[] {"    ", "       ", "    "});
                    rnd =
                        new Random((argv[Main(new[] {"  ", " ", "  "})][Main(new[] {"", "", ""})] <
                                    Main(new[] {"  ", "       ", "       "}))
                                       ? int.Parse(argv[Main(new[] {"", "", ""})])
                                       : int.Parse(argv[Main(new[] {" ", " ", " "})]));
                    var _ = (argv[Main(new[] {"  ", " ", "  "})][Main(new[] {"", "", ""})] <
                             Main(new[] {"  ", "       ", "       "}))
                                ? int.Parse(argv[Main(new[] {"", " ", " "})]) +
                                  int.Parse(argv[Main(new[] {"  ", " ", "  "})])
                                : int.Parse(argv[Main(new[] {" ", " ", "  "})]) +
                                  int.Parse(argv[Main(new[] {"  ", " ", "  "})]) - Main(new[] {"  ", " ", "  "});
                    for (var i = Main(new[] {"", "", ""}); i < _; i++)
                        rnd.Next(Main(new[] {"  ", "   ", "      "}));
                    return rnd.Next(Main(new[] {"  ", "   ", "      "})) +
                           Main(new[] {" ", "  ", "  "})*Main(new[] {"    ", "    ", "    "});
                case 4:
                    rnd = new Random(int.Parse(argv[Main(new[] {"", "", ""})]));
                    for (var i = Main(new[] {"", "", ""});
                         i < int.Parse(argv[Main(new[] {" ", "", ""})]) + int.Parse(argv[Main(new[] {"  ", " ", " "})]);
                         i++)
                        rnd.Next(int.Parse(argv[Main(new[] {" ", " ", ""})]));
                    return rnd.Next(int.Parse(argv[Main(new[] {"  ", "", ""})]));
                case 3:
                    return argv['-' - '-'].Length + argv['/'/'/'].Length*argv['/'/'/' + '/'/'/'].Length;
                case 2:
                    rnd = new Random(int.Parse(argv[Main(new[] {"", "", ""})]));
                    for (var i = Main(new[] {"", "", ""}); i < int.Parse(argv[Main(new[] {"", " ", " "})]); i++)
                        rnd.Next(Main(new[] {"  ", "   ", "      "})*Main(new[] {"     ", "         ", "     "}));
                    return rnd.Next(Main(new[] {"  ", "   ", "      "})*Main(new[] {"     ", "         ", "     "}));
                case 1:
                    Console.WriteLine(argv[Main(new[] {"", "", ""})]);
                    return Main(new[] {"", "", ""});
                case 0:
                    var sb = new StringBuilder();
                    for (var i = Main(new[] {"", "", ""});
                         i <
                         Main(new[] {Main(new[] {"  ", "  ", " "}).ToString(), Main(new[] {"  ", "  ", " "}).ToString()});
                         i++)
                        sb.Append((char)
                                  Main(new[]
                                           {
                                               Main(new[]
                                                        {
                                                            Main(new[] {"    ", "   ", "    "}).ToString(),
                                                            Main(new[] {"  ", "  ", "  "}).ToString()
                                                        }).ToString(),
                                               Main(new[]
                                                        {
                                                            Main(new[] {"  ", "     ", "     "}).ToString(),
                                                            Main(new[] {" ", "  ", "  "}).ToString()
                                                        }).ToString(),
                                               Main(new[]
                                                        {
                                                            Main(new[] {"  ", "    ", "     "}).ToString(),
                                                            Main(new[] {" ", "    ", "     "}).ToString()
                                                        }).ToString(),
                                               Main(new[]
                                                        {
                                                            Main(new[] {"  ", "  ", "  "}).ToString(),
                                                            Main(new[] {" ", "     ", "     "}).ToString()
                                                        }).ToString(),
                                               ((Main(new[]
                                                          {
                                                              Main(new[]
                                                                       {
                                                                           Main(new[] {"     ", "     ", "      "}).
                                                                               ToString()
                                                                           ,
                                                                           Main(new[] {"     ", "     ", "       "}).
                                                                               ToString()
                                                                       }).ToString()
                                                              ,
                                                              Main(new[]
                                                                       {
                                                                           Main(new[] {"     ", "     ", "      "}).
                                                                               ToString()
                                                                           ,
                                                                           Main(new[] {" ", "    ", "      "}).ToString()
                                                                       }).ToString(),
                                                              Main(new[]
                                                                       {
                                                                           Main(new[]
                                                                                    {
                                                                                        Main(new[]
                                                                                                 {
                                                                                                     "   ", "       ",
                                                                                                     "      "
                                                                                                 })
                                                                                            .ToString()
                                                                                        ,
                                                                                        Main(new[] {" ", "  ", "   "}).
                                                                                            ToString()
                                                                                    }).
                                                                               ToString(),
                                                                           Main(new[]
                                                                                    {
                                                                                        Main(new[] {"  ", "  ", " "}).
                                                                                            ToString
                                                                                            (),
                                                                                        Main(new[]
                                                                                                 {
                                                                                                     "  ", "       ",
                                                                                                     "      "
                                                                                                 })
                                                                                            .ToString()
                                                                                    })
                                                                               .ToString()
                                                                       }).ToString(),
                                                              i.ToString()
                                                          }) -
                                                 Main(new[]
                                                          {
                                                              Main(new[] {" ", "", "      "}).ToString(),
                                                              Main(new[]
                                                                       {
                                                                           Main(new[] {"   ", "     ", "      "}).
                                                                               ToString(),
                                                                           Main(new[]
                                                                                    {
                                                                                        Main(new[] {"  ", "  ", " "}).
                                                                                            ToString
                                                                                            (),
                                                                                        Main(new[]
                                                                                                 {" ", "    ", "      "})
                                                                                            .
                                                                                            ToString()
                                                                                    }).
                                                                               ToString()
                                                                       }).ToString(),
                                                              Main(new[]
                                                                       {
                                                                           Main(new[]
                                                                                    {
                                                                                        Main(new[]
                                                                                                 {
                                                                                                     "   ", "       ",
                                                                                                     "      "
                                                                                                 })
                                                                                            .ToString()
                                                                                        ,
                                                                                        Main(new[] {" ", "  ", "   "}).
                                                                                            ToString()
                                                                                    }).
                                                                               ToString(),
                                                                           Main(new[]
                                                                                    {
                                                                                        Main(new[] {"  ", "  ", " "}).
                                                                                            ToString
                                                                                            (),
                                                                                        Main(new[]
                                                                                                 {
                                                                                                     "  ", "       ",
                                                                                                     "      "
                                                                                                 })
                                                                                            .ToString()
                                                                                    })
                                                                               .ToString()
                                                                       }).ToString(),
                                                              i.ToString()
                                                          }) +
                                                 Main(new[]
                                                          {
                                                              Main(new[]
                                                                       {
                                                                           Main(new[] {"   ", "       ", "      "}).
                                                                               ToString()
                                                                           ,
                                                                           Main(new[] {" ", "  ", "   "}).ToString()
                                                                       }).ToString(),
                                                              Main(new[]
                                                                       {
                                                                           Main(new[] {"  ", "  ", " "}).ToString(),
                                                                           Main(new[] {"  ", "       ", "      "}).
                                                                               ToString()
                                                                       }).ToString()
                                                          }))%
                                                Main(new[]
                                                         {
                                                             Main(new[]
                                                                      {
                                                                          Main(new[] {"   ", "       ", "      "}).
                                                                              ToString(),
                                                                          Main(new[] {" ", "  ", "   "}).ToString()
                                                                      }).ToString(),
                                                             Main(new[]
                                                                      {
                                                                          Main(new[] {"  ", "  ", " "}).ToString(),
                                                                          Main(new[] {"  ", "       ", "      "}).
                                                                              ToString()
                                                                      }).ToString()
                                                         })).ToString()
                                           }
                                      ));
                    return Main(new[] {sb.ToString()});
                default:
                    return Main(new[] {""});
            }
        }
    }
}
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dDsKCm5hbWVzcGFjZSBUZWhNYWluCnsKICAgIGludGVybmFsIHN0YXRpYyBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50IE1haW4oc3RyaW5nW10gYXJndikKICAgICAgICB7CiAgICAgICAgICAgIFJhbmRvbSBybmQ7CiAgICAgICAgICAgIHN3aXRjaCAoYXJndi5MZW5ndGgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgICAgICBpZiAoYXJndltNYWluKG5ld1tdIHsiICAiLCAiICIsICIgICJ9KV1bTWFpbihuZXdbXSB7IiIsICIiLCAiIn0pXSA9PQogICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAiLCAiICAgICAgICIsICIgICAgICAgIn0pKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWFpbihuZXdbXSB7IiAgICAiLCAiICAgICAgICIsICIgICAgIn0pOwogICAgICAgICAgICAgICAgICAgIHJuZCA9CiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBSYW5kb20oKGFyZ3ZbTWFpbihuZXdbXSB7IiAgIiwgIiAiLCAiICAifSldW01haW4obmV3W10geyIiLCAiIiwgIiJ9KV0gPAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAiLCAiICAgICAgICIsICIgICAgICAgIn0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGludC5QYXJzZShhcmd2W01haW4obmV3W10geyIiLCAiIiwgIiJ9KV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW50LlBhcnNlKGFyZ3ZbTWFpbihuZXdbXSB7IiAiLCAiICIsICIgIn0pXSkpOwogICAgICAgICAgICAgICAgICAgIHZhciBfID0gKGFyZ3ZbTWFpbihuZXdbXSB7IiAgIiwgIiAiLCAiICAifSldW01haW4obmV3W10geyIiLCAiIiwgIiJ9KV0gPAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICAgICAgIiwgIiAgICAgICAifSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiIiwgIiAiLCAiICJ9KV0pICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC5QYXJzZShhcmd2W01haW4obmV3W10geyIgICIsICIgIiwgIiAgIn0pXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGludC5QYXJzZShhcmd2W01haW4obmV3W10geyIgIiwgIiAiLCAiICAifSldKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiICAiLCAiICIsICIgICJ9KV0pIC0gTWFpbihuZXdbXSB7IiAgIiwgIiAiLCAiICAifSk7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IE1haW4obmV3W10geyIiLCAiIiwgIiJ9KTsgaSA8IF87IGkrKykKICAgICAgICAgICAgICAgICAgICAgICAgcm5kLk5leHQoTWFpbihuZXdbXSB7IiAgIiwgIiAgICIsICIgICAgICAifSkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBybmQuTmV4dChNYWluKG5ld1tdIHsiICAiLCAiICAgIiwgIiAgICAgICJ9KSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICIsICIgICJ9KSpNYWluKG5ld1tdIHsiICAgICIsICIgICAgIiwgIiAgICAifSk7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgcm5kID0gbmV3IFJhbmRvbShpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiIiwgIiIsICIifSldKSk7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IE1haW4obmV3W10geyIiLCAiIiwgIiJ9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGkgPCBpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiICIsICIiLCAiIn0pXSkgKyBpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiICAiLCAiICIsICIgIn0pXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgIHJuZC5OZXh0KGludC5QYXJzZShhcmd2W01haW4obmV3W10geyIgIiwgIiAiLCAiIn0pXSkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBybmQuTmV4dChpbnQuUGFyc2UoYXJndltNYWluKG5ld1tdIHsiICAiLCAiIiwgIiJ9KV0pKTsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJndlsnLScgLSAnLSddLkxlbmd0aCArIGFyZ3ZbJy8nLycvJ10uTGVuZ3RoKmFyZ3ZbJy8nLycvJyArICcvJy8nLyddLkxlbmd0aDsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICBybmQgPSBuZXcgUmFuZG9tKGludC5QYXJzZShhcmd2W01haW4obmV3W10geyIiLCAiIiwgIiJ9KV0pKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gTWFpbihuZXdbXSB7IiIsICIiLCAiIn0pOyBpIDwgaW50LlBhcnNlKGFyZ3ZbTWFpbihuZXdbXSB7IiIsICIgIiwgIiAifSldKTsgaSsrKQogICAgICAgICAgICAgICAgICAgICAgICBybmQuTmV4dChNYWluKG5ld1tdIHsiICAiLCAiICAgIiwgIiAgICAgICJ9KSpNYWluKG5ld1tdIHsiICAgICAiLCAiICAgICAgICAgIiwgIiAgICAgIn0pKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm5kLk5leHQoTWFpbihuZXdbXSB7IiAgIiwgIiAgICIsICIgICAgICAifSkqTWFpbihuZXdbXSB7IiAgICAgIiwgIiAgICAgICAgICIsICIgICAgICJ9KSk7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoYXJndltNYWluKG5ld1tdIHsiIiwgIiIsICIifSldKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWFpbihuZXdbXSB7IiIsICIiLCAiIn0pOwogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IE1haW4obmV3W10geyIiLCAiIiwgIiJ9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGkgPAogICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7TWFpbihuZXdbXSB7IiAgIiwgIiAgIiwgIiAifSkuVG9TdHJpbmcoKSwgTWFpbihuZXdbXSB7IiAgIiwgIiAgIiwgIiAifSkuVG9TdHJpbmcoKX0pOwogICAgICAgICAgICAgICAgICAgICAgICAgaSsrKQogICAgICAgICAgICAgICAgICAgICAgICBzYi5BcHBlbmQoKGNoYXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgICAiLCAiICAgIiwgIiAgICAifSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgIiwgIiAgIiwgIiAgIn0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICAgICIsICIgICAgICJ9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICIsICIgICJ9KS5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAiLCAiICAgICIsICIgICAgICJ9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICAgIiwgIiAgICAgIn0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICIsICIgICJ9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICAgICIsICIgICAgICJ9KS5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAgICAiLCAiICAgICAiLCAiICAgICAgIn0pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICAgICIsICIgICAgICIsICIgICAgICAgIn0pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgICAgIiwgIiAgICAgIiwgIiAgICAgICJ9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICAgIiwgIiAgICAgICJ9KS5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIiwgIiAgICAgICAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIgICIsICIgICAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgIiwgIiAgIiwgIiAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAiLCAiICAgICAgICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICIsICIiLCAiICAgICAgIn0pLlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgICIsICIgICAgICIsICIgICAgICAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICIsICIgIn0pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IiAiLCAiICAgICIsICIgICAgICAifSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAiLCAiICAgICAgICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgIiwgIiAgIiwgIiAgICJ9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAiLCAiICAiLCAiICJ9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1N0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICIsICIgICAgICAgIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuVG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICAiLCAiICAgICAgICIsICIgICAgICAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAiLCAiICAiLCAiICAgIn0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICIsICIgIn0pLlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICIsICIgICAgICAgIiwgIiAgICAgICJ9KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5Ub1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSklCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haW4obmV3W10geyIgICAiLCAiICAgICAgICIsICIgICAgICAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAiLCAiICAiLCAiICAgIn0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbihuZXdbXSB7IiAgIiwgIiAgIiwgIiAifSkuVG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluKG5ld1tdIHsiICAiLCAiICAgICAgICIsICIgICAgICAifSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLlRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWFpbihuZXdbXSB7c2IuVG9TdHJpbmcoKX0pOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWFpbihuZXdbXSB7IiJ9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQ==