1 line
7.6 KiB
JavaScript
1 line
7.6 KiB
JavaScript
Z2xvYmFsVGhpcy5wb3N0MiA9IGZ1bmN0aW9uIChfdXJsLCBfZGF0YSkgewogICAgLy8gbGV0IGRhdGEgPSBidWlsZFVybChfdXJsLF9kYXRhKS5zcGxpdCgnPycpWzFdOwogICAgLy8gcmV0dXJuIHBvc3QoX3VybCx7Ym9keTplbmNvZGVVUklDb21wb25lbnQoZGF0YSksaGVhZGVyczpydWxlLmhlYWRlcnN9KTsKICAgIHJldHVybiBwb3N0KF91cmwsIHtkYXRhOiBfZGF0YSwgaGVhZGVyczogcnVsZS5oZWFkZXJzfSk7Cn0KdmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflkKzmrYwnLC8v5b2x6KeGfOWQrOS5pnzmvKvnlLt85bCP6K+0CiAgICB0aXRsZTogJ0tUVuatjOWOhVvlkKxdJywKICAgIC8vIGhvc3Q6ICdodHRwczovL3Zwc2RuLmxldXNlLnRvcCcsCiAgICBob3N0OiAnaHR0cHM6Ly9hcGkuY2xvdWRmbGFyZS5jb20nLAogICAgcm9vdDogJ2h0dHBzOi8vYXBpLmNsb3VkZmxhcmUuY29tL2NsaWVudC92NC9hY2NvdW50cy8xZWNjNGE5NDdjNWE1MTg0MjcxNDFmNGE2OGM4NmVhMS9kMS9kYXRhYmFzZS80ZjEzODVhYi1mOTUyLTQwNGEtODcwYS1lNGNmZWY0YmQ5ZmQvcXVlcnknLAogICAgbWt0dlVybDogJ2h0dHA6Ly9lbS4yMWR0di5jb20vc29uZ3MvJywKICAgIHVybDogJy9zZWFyY2htdj90YWJsZT1meWNsYXNzJnBnPWZ5cGFnZSNmeWZpbHRlcicsCiAgICBzZWFyY2hVcmw6ICcvc2VhcmNobXY/a2V5d29yZHM9KiomcGc9ZnlwYWdlJywKICAgIHBpYzogJ2h0dHBzOi8vYXBpLnBhdWdyYW0uY29tL3dhbGxwYXBlci8/c291cmNlPXNpbmEmY2F0ZWdvcnk9dXMnLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgZmlsdGVyYWJsZTogMSwKICAgIGZpbHRlcjogJ0g0c0lBQUFBQUFBQUE1MlNUVS9DTUJqSHYwdlBIQVRmdWVyRmt3ZVBoZ09IU1JaaG1JRW1oSkJnQkxJSUJFZ0kwL0JxQWdGRXdnWVJEYmp3Wld6cHZvVXIydEdsWE9UVy9wK243YSsvTmc0aW9oUVFaT0M5aklOcklRYThRQllDWWxnQ0xpRDVRNEkxaHpVTjVtYldYSlRFcURXM1JuZis0SzJ3V2lLUmhuVFBmT2lSbUZRVHJ2aHE0Q1k3a0dxN2F6NW43Tmp6RjZQUEVTeG9kcnhMdTZzR2JGZEF3a2NLdnp4WFlUbTBwbG5xYzZnTXRxWlpsajg0Rk5pWmNCekxlUW9XRmNMaGM0RklXQW93Z29KK3hnNGVEWEV2dWVieC9CTUlxd1ZyQzU2cGFyQXh4VEtiZlRiZW96TFZEaHZ2MDI3VmdIbVZyUnpRVTdNNkd4L1NXNC9iYkh4RVlkTFQ3M25Gam8vcDl2MDNWSGNjN042aFFCUE5rZHVmSWE5QjdjdFJvamZHMDBjS3l6eCtOSFlqT0IrL2tkMzY4ZEg3UFg3SjhhNkxDaXpybkd1VVRDSzF5N21HcVFVYTVualg5VDRzR1p4b3BKWFliaW9hS3cxVUhmT2lLelU0eTNDaThlTFZIRHh0c0t5MlVMNTVlblp4Y3I1QnRhSGpibWIxZ3hNLzhzaTlUT1lEQUFBPScsCiAgICBmaWx0ZXJfdXJsOiAne3tmbH19JywKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnLAogICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyIEx1ZU5yeWNXLTZqa3M3eEJqUHFYOW1qRnEyQTJNNUt1bDZJZzNEOHonLAogICAgfSwKICAgIHRpbWVvdXQ6IDUwMDAsCiAgICBjbGFzc19uYW1lOiAn5q2M5omLJuabsuW6kybmkJzntKInLAogICAgY2xhc3NfdXJsOiAnc2luZ2VyJnNvbmcnLAogICAg5LiA57qnOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGxldCBkID0gW107CiAgICAgICAgLy8gbGV0IF91cmwgPSBpbnB1dC5zcGxpdCgnIycpWzBdOwogICAgICAgIGxldCBfdXJsID0gcnVsZS5yb290OwogICAgICAgIGxldCBwYXJhbXMgPSBbXTsKICAgICAgICBsZXQgc3FsID0gJyc7CiAgICAgICAgbGV0IHNpemUgPSAyMDsKICAgICAgICBsZXQgcGcgPSBNWV9QQUdFOwogICAgICAgIGlmIChNWV9DQVRFID09PSAnc2luZ2VyJykgewogICAgICAgICAgICBzcWwgPSAnc2VsZWN0IG5hbWUsIGlkIGZyb20gc2luZ2VyIHdoZXJlIDE9MSc7CiAgICAgICAgICAgIGlmIChNWV9GTC5yZWdpb24pIHsKICAgICAgICAgICAgICAgIHBhcmFtcy5wdXNoKE1ZX0ZMLnJlZ2lvbik7CiAgICAgICAgICAgICAgICBzcWwgKz0gJyBhbmQgcmVnaW9uX2lkID0gPyc7CiAgICAgICAgICAgICAgICAvLyBfdXJsICs9ICcmd2hlcmU9cmVnaW9uX2lkJmtleXdvcmRzPScgKyBNWV9GTC5yZWdpb24gKyAnJnNpemU9MjEnOwogICAgICAgICAgICB9IGVsc2UgaWYgKE1ZX0ZMLmZvcm0pIHsKICAgICAgICAgICAgICAgIHBhcmFtcy5wdXNoKE1ZX0ZMLmZvcm0pOwogICAgICAgICAgICAgICAgc3FsICs9ICcgYW5kIGZvcm1faWQgPSA/JzsKICAgICAgICAgICAgICAgIC8vIF91cmwgKz0gJyZ3aGVyZT1mb3JtX2lkJmtleXdvcmRzPScgKyBNWV9GTC5mb3JtICsgJyZzaXplPTIxJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBzcWwgKz0gYCBvcmRlciBieSBpZCBsaW1pdCAkeyhwZyAtIDEpICogc2l6ZX0sJHtzaXplfTtgOwogICAgICAgICAgICBsZXQgaHRtbCA9IHBvc3QyKF91cmwsIHtwYXJhbXM6IHBhcmFtcywgc3FsOiBzcWx9KTsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICBkID0ganNvbi5yZXN1bHRbMF0ucmVzdWx0cy5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgcGljID0gcnVsZS5ta3R2VXJsICsgaXRlbS5pZCArICcuanBnJzsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgdm9kX2lkOiBpdGVtLm5hbWUgKyAnQEAnICsgaXRlbS5uYW1lICsgJ0BAJyArIHBpYywKICAgICAgICAgICAgICAgICAgICB2b2RfbmFtZTogaXRlbS5uYW1lLAogICAgICAgICAgICAgICAgICAgIHZvZF9waWM6IHBpYywKICAgICAgICAgICAgICAgICAgICB2b2RfcmVtYXJrczogJycsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSBpZiAoTVlfQ0FURSA9PT0gJ3NvbmcnKSB7CiAgICAgICAgICAgIHNxbCA9ICdzZWxlY3QgbnVtYmVyLCBuYW1lIGZyb20gc29uZyB3aGVyZSAxPTEnOwogICAgICAgICAgICBpZiAoTVlfRkwubGFuKSB7CiAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChNWV9GTC5sYW4pOwogICAgICAgICAgICAgICAgc3FsICs9ICcgYW5kIGxhbmd1YWdlX2lkID0gPyc7CiAgICAgICAgICAgICAgICAvLyBfdXJsICs9ICcmd2hlcmU9bGFuZ3VhZ2VfaWQma2V5d29yZHM9JyArIE1ZX0ZMLmxhbiArICcmc2l6ZT0yMSc7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoTVlfRkwudHlwZSkgewogICAgICAgICAgICAgICAgcGFyYW1zLnB1c2goTVlfRkwudHlwZSk7CiAgICAgICAgICAgICAgICBzcWwgKz0gJyBhbmQgdHlwZV9pZCA9ID8nOwogICAgICAgICAgICAgICAgLy8gX3VybCArPSAnJndoZXJlPXR5cGVfaWQma2V5d29yZHM9JyArIE1ZX0ZMLnR5cGUgKyAnJnNpemU9MjEnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNxbCArPSBgIG9yZGVyIGJ5IG51bWJlciBsaW1pdCAkeyhwZyAtIDEpICogc2l6ZX0sJHtzaXplfTtgOwogICAgICAgICAgICBsZXQgaHRtbCA9IHBvc3QyKF91cmwsIHtwYXJhbXM6IHBhcmFtcywgc3FsOiBzcWx9KTsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICBkID0ganNvbi5yZXN1bHRbMF0ucmVzdWx0cy5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIHZvZF9pZDogcnVsZS5ta3R2VXJsICsgaXRlbS5udW1iZXIgKyAnLm1rdicgKyAnQEAnICsgaXRlbS5uYW1lICsgJ0BAJyArICcnLAogICAgICAgICAgICAgICAgICAgIHZvZF9uYW1lOiBpdGVtLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgdm9kX3BpYzogcnVsZS5waWMsCiAgICAgICAgICAgICAgICAgICAgdm9kX3JlbWFya3M6ICcnLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgVk9EUyA9IGQ7CiAgICB9KSwKICAgIOS6jOe6pzogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBsZXQgX3VybCA9IHJ1bGUucm9vdDsKICAgICAgICBsZXQgaWQgPSBvcklkLnNwbGl0KCdAQCcpWzBdOwogICAgICAgIGxldCBuYW1lID0gb3JJZC5zcGxpdCgnQEAnKVsxXTsKICAgICAgICBpZiAoaWQuZW5kc1dpdGgoJy5ta3YnKSkgewogICAgICAgICAgICBWT0QgPSB7CiAgICAgICAgICAgICAgICB2b2RfbmFtZTogbmFtZSwKICAgICAgICAgICAgICAgIHZvZF9wbGF5X2Zyb206ICfnrJTloqjkuabmmJ/msrMnLAogICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6ICfnrJTloqjkuabmmJ/msrMnLAogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgVk9EID0gewogICAgICAgICAgICAgICAgdm9kX25hbWU6IGlkLAogICAgICAgICAgICAgICAgdm9kX3BsYXlfZnJvbTogJ+eslOWiqOS5puaYn+aysycsCiAgICAgICAgICAgICAgICB2b2RfY29udGVudDogJ+eslOWiqOS5puaYn+aysycsCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGlkLmVuZHNXaXRoKCcubWt2JykpIHsKICAgICAgICAgICAgVk9ELnZvZF9wbGF5X3VybCA9ICfll4XmjqLmkq3mlL4kJyArIGlkOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxldCBwYXJhbXMgPSBbaWRdOwogICAgICAgICAgICBsZXQgc3FsID0gJ3NlbGVjdCBudW1iZXIsbmFtZSBmcm9tIHNvbmcgd2hlcmUgc2luZ2VyX25hbWVzID0gPyBvcmRlciBieSBudW1iZXIgbGltaXQgMCw5OTknOwogICAgICAgICAgICBsZXQgaHRtbCA9IHBvc3QyKF91cmwsIHtwYXJhbXM6IHBhcmFtcywgc3FsOiBzcWx9KTsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICBsZXQgZGF0YSA9IGpzb24ucmVzdWx0WzBdLnJlc3VsdHM7CgogICAgICAgICAgICBWT0Qudm9kX3BsYXlfdXJsID0gKGRhdGEubWFwKGl0ZW0gPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICckJyArIHJ1bGUubWt0dlVybCArIGl0ZW0ubnVtYmVyICsgJy5ta3YnOwogICAgICAgICAgICB9KSkuam9pbignIycpOwogICAgICAgIH0KICAgIH0pLAogICAg5pCc57SiOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGxldCBfdXJsID0gcnVsZS5yb290OwogICAgICAgIGxldCB3ZCA9IEtFWTsKICAgICAgICBsZXQgc3FsID0gInNlbGVjdCBudW1iZXIsbmFtZSBmcm9tIHNvbmcgd2hlcmUgbmFtZSBsaWtlICclIiArIHdkICsgIiUnIG9yIHNpbmdlcl9uYW1lcyBsaWtlICclIiArIHdkICsgIiUnIjsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIGxldCBodG1sID0gcG9zdDIoX3VybCwge3NxbDogc3FsfSk7CiAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgIGQgPSBqc29uLnJlc3VsdFswXS5yZXN1bHRzLm1hcChpdGVtID0+IHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHZvZF9pZDogcnVsZS5ta3R2VXJsICsgaXRlbS5udW1iZXIgKyAnLm1rdicgKyAnQEAnICsgaXRlbS5uYW1lICsgJ0BAJyArICcnLAogICAgICAgICAgICAgICAgdm9kX25hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgICAgIHZvZF9waWM6IHJ1bGUucGljLAogICAgICAgICAgICAgICAgdm9kX3JlbWFya3M6IGl0ZW0uc2luZ2VyX25hbWVzLAogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgVk9EUyA9IGQ7CiAgICB9KSwKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGlucHV0ID0ge3BhcnNlOiAwLCB1cmw6IGlucHV0fTsKICAgIH0pLAp9 |