{"remainingRequest":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\ljzc-fvue\\src\\views\\PublicWelfareAssets\\HomePage\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\views\\PublicWelfareAssets\\HomePage\\index.vue","mtime":1703146860948},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\babel.config.js","mtime":1701311296006},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9sanpjLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0ICogYXMgZWNoYXJ0cyBmcm9tICdlY2hhcnRzJzsKaW1wb3J0IHV0aWxzIGZyb20gJ0AvdXRpbHMuanMnOwppbXBvcnQgUHVibGljVGl0bGUgZnJvbSAnQC9jb21wb25lbnRzL1B1YmxpY1RpdGxlL2luZGV4JzsKaW1wb3J0IGFwaSBmcm9tICdAL2FwaS9hc3NldHNPcGVyYXRpbmcvYXNzZXRzT3BlcmF0aW5nLmpzJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdIb21lUGFnZScsCiAgLy8g6aaW6aG1CiAgY29tcG9uZW50czogewogICAgUHVibGljVGl0bGU6IFB1YmxpY1RpdGxlCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgY29sb3JMaXN0OiBbJyM1NWVkYjAnLCAnIzAwZDRmZicsICcjYzY3OWU1JywgJyMxOThjZmYnXSwKICAgICAgZGF0YUxpc3Q6IFt7CiAgICAgICAgbmFtZTogJ+WVhuS4mueUqOWcsCcsCiAgICAgICAgdmFsdWU6ICcxMiUnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5L2P5a6F55So5ZywJywKICAgICAgICB2YWx1ZTogJzYlJwogICAgICB9XSwKICAgICAgdG9wU3RhdGlzdGljczoge30sCiAgICAgIC8v6aG26YOo57uf6K6hCiAgICAgIG93bmVyc2hpcERhdGE6IFtdLAogICAgICAvL+adg+WxngogICAgICBzdGF0c0RhdGE6IFtdLAogICAgICAvL+WxnuaApwogICAgICBjb21tZXJjaWFsRGF0YTogW10sCiAgICAgIC8v5Lia5oCBCiAgICAgIHNvdXJjZURhdGE6IFtdLAogICAgICAvL+adpea6kAogICAgICBzdGF0dXNEYXRhOiBbXSwKICAgICAgLy/nirbmgIEKICAgICAgdHlwZURhdGE6IFtdLAogICAgICAvL+exu+WeiwogICAgICB2YWx1ZTI6ICcyMDIzJwogICAgfTsKICB9LAogIHdhdGNoOiB7fSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5iZWxvbmdTdGF0aXN0aWNzKCk7CiAgICB0aGlzLm5hdHVyZVN0YXRpc3RpY3MoKTsKICAgIHRoaXMuc291cmNlU3RhdGlzdGljcygpOwogICAgdGhpcy5zdGF0dXNTdGF0aXN0aWNzKCk7CiAgICB0aGlzLnR5cGVTdGF0aXN0aWNzKCk7CiAgICB0aGlzLmdldFByb2plY3RJbml0KCk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkge30sCiAgbWV0aG9kczogewogICAgLy/lrZflhbjnv7vor5EKICAgIGdldERpY3ROYW1lOiBmdW5jdGlvbiBnZXREaWN0TmFtZShjb2RlLCB2YWx1ZSkgewogICAgICByZXR1cm4gdXRpbHMuZ2V0RGljdE5hbWUoY29kZSwgdmFsdWUpOwogICAgfSwKICAgIGJlbG9uZ1N0YXRpc3RpY3M6IGZ1bmN0aW9uIGJlbG9uZ1N0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIC8vIGFwaS5iZWxvbmdTdGF0aXN0aWNzKHt9LCByZXMgPT4gewogICAgICAvLyAgIGlmIChyZXMuc3RhdGUpIHsKICAgICAgLy8gICAgIHRoaXMub3duZXJzaGlwRGF0YSA9IHJlcy52YWx1ZQogICAgICAvLyAgIH0KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLmluaXRPd25lcnNoaXBDaGF0KCk7CiAgICAgIH0pOwogICAgICAvLyB9KQogICAgfSwKICAgIG5hdHVyZVN0YXRpc3RpY3M6IGZ1bmN0aW9uIG5hdHVyZVN0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICAvLyBhcGkubmF0dXJlU3RhdGlzdGljcyh7fSwgcmVzID0+IHsKICAgICAgLy8gICBpZiAocmVzLnN0YXRlKSB7CiAgICAgIC8vICAgICB0aGlzLnN0YXRzRGF0YSA9IHJlcy52YWx1ZQogICAgICAvLyAgIH0KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi5pbml0U3RhdHNDaGF0KCk7CiAgICAgIH0pOwogICAgICAvLyB9KQogICAgfSwKICAgIHNvdXJjZVN0YXRpc3RpY3M6IGZ1bmN0aW9uIHNvdXJjZVN0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICAvLyBhcGkuc291cmNlU3RhdGlzdGljcyh7fSwgcmVzID0+IHsKICAgICAgLy8gICBpZiAocmVzLnN0YXRlKSB7CiAgICAgIC8vICAgICB0aGlzLnNvdXJjZURhdGEgPSByZXMudmFsdWUKICAgICAgLy8gICB9CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczMuaW5pdENoYXQoKTsKICAgICAgfSk7CiAgICAgIC8vIH0pCiAgICB9LAogICAgc3RhdHVzU3RhdGlzdGljczogZnVuY3Rpb24gc3RhdHVzU3RhdGlzdGljcygpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIC8vIGFwaS5zdGF0dXNTdGF0aXN0aWNzKHt9LCByZXMgPT4gewogICAgICAvLyAgIGlmIChyZXMuc3RhdGUpIHsKICAgICAgLy8gICAgIHRoaXMuc3RhdHVzRGF0YSA9IHJlcy52YWx1ZQogICAgICAvLyAgIH0KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC5pbml0U291cmNlQ2hhdCgpOwogICAgICB9KTsKICAgICAgLy8gfSkKICAgIH0sCiAgICB0eXBlU3RhdGlzdGljczogZnVuY3Rpb24gdHlwZVN0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICAvLyBhcGkudHlwZVN0YXRpc3RpY3Moe30sIHJlcyA9PiB7CiAgICAgIC8vICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAvLyAgICAgdGhpcy50eXBlRGF0YSA9IHJlcy52YWx1ZQogICAgICAvLyAgIH0KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNS5pbml0VHlwZUNoYXQoKTsKICAgICAgfSk7CiAgICAgIC8vIH0pCiAgICB9LAogICAgZ2V0UHJvamVjdEluaXQ6IGZ1bmN0aW9uIGdldFByb2plY3RJbml0KCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi5wcm9qZWN0SW5pdCgpOwogICAgICB9KTsKICAgIH0sCiAgICAvL+i1hOS6p+W7uuiuvuaDheWGtQogICAgaW5pdE93bmVyc2hpcENoYXQ6IGZ1bmN0aW9uIGluaXRPd25lcnNoaXBDaGF0KCkgewogICAgICB2YXIgZWNoYXJ0c0RhdGEgPSBbewogICAgICAgIG5hbWU6ICflt7Llu7rmiJDop4TmqKEnLAogICAgICAgIHZhbHVlOiAnNScsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyM1NUVEQjAnCiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WcqOW7uuinhOaooScsCiAgICAgICAgdmFsdWU6ICcxNScsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyMwMEQ0RkYnCiAgICAgICAgfQogICAgICB9XTsKICAgICAgLy8gdGhpcy5vd25lcnNoaXBEYXRhLmZvckVhY2goKGUsIGluZGV4KSA9PiB7CiAgICAgIC8vICAgZWNoYXJ0c0RhdGEucHVzaCh7CiAgICAgIC8vICAgICBuYW1lOiB0aGlzLmdldERpY3ROYW1lKCd4bWdzJywgZS5hc3NldEJlbG9uZyksCiAgICAgIC8vICAgICB2YWx1ZTogZS5jb3VudCwKICAgICAgLy8gICAgIGl0ZW1TdHlsZTogewogICAgICAvLyAgICAgICBjb2xvcjogdGhpcy5jb2xvckxpc3RbaW5kZXhdLAogICAgICAvLyAgICAgfSwKICAgICAgLy8gICB9KQogICAgICAvLyB9KQogICAgICB2YXIgY2hhcnREb20gPSBlY2hhcnRzLmluaXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ293bmVyc2hpcC1jaGFydCcpKTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAnaXRlbScKICAgICAgICB9LAogICAgICAgIGxlZ2VuZDogewogICAgICAgICAgb3JpZW50OiAndmVydGljYWwnLAogICAgICAgICAgdG9wOiAnbWlkZGxlJywKICAgICAgICAgIHJpZ2h0OiA5MCwKICAgICAgICAgIHNlbGVjdGVkTW9kZTogZmFsc2UKICAgICAgICB9LAogICAgICAgIHNlcmllczogW3sKICAgICAgICAgIG5hbWU6ICfpnaLnp68nLAogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTUlJywgJzY3JSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsCiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyCiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UsCiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJwogICAgICAgICAgfSwKICAgICAgICAgIGVtcGhhc2lzOiB7CiAgICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgICBmb250U2l6ZTogMzAsCiAgICAgICAgICAgICAgZm9ybWF0dGVyOiBmdW5jdGlvbiBmb3JtYXR0ZXIocGFyYW1zKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWyd7bnVtfCcgKyBwYXJhbXMudmFsdWUgKyAnfScgKyAne3VuaXR85LiqfScsICd7bGFiZWx8JyArIHBhcmFtcy5uYW1lICsgJ30nXS5qb2luKCdcbicpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmljaDogewogICAgICAgICAgICAgICAgbnVtOiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAzMCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJywKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDcwMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHVuaXQ6IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDE0LAogICAgICAgICAgICAgICAgICBjb2xvcjogJyMxMTEnLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgcGFkZGluZzogWzAsIDVdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDIwLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjNDQ0JwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsTGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGRhdGE6IGVjaGFydHNEYXRhCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTAlJywgJzUwJSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLAogICAgICAgICAgY2xvY2tXaXNlOiBmYWxzZSwKICAgICAgICAgIGN1cnNvcjogJ2RlZmF1bHQnLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLAogICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2VhZWFlYScKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGRhdGE6IFsxMDBdCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2dhdWdlJywKICAgICAgICAgIHJhZGl1czogJzk4JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAyMDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMTUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI2VhZWFlYScsCiAgICAgICAgICAgICAgd2lkdGg6IDEKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdnYXVnZScsCiAgICAgICAgICByYWRpdXM6ICc4My41JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAxNDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjZWFlYWVhJywKICAgICAgICAgICAgICB3aWR0aDogMgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfTsKICAgICAgY2hhcnREb20uc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2hhcnREb20ucmVzaXplKCk7CiAgICAgIH0pOwogICAgICBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBjaGFydERvbSk7CiAgICAgIC8vIOmlvOWbvuiHquWKqOi9ruaSrQogICAgICBmdW5jdGlvbiBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBteUNoYXJ0KSB7CiAgICAgICAgaWYgKCFteUNoYXJ0KSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBjdXJyZW50SW5kZXggPSAwOyAvLyDlvZPliY3pq5jkuq7lm77lvaLlnKjppbzlm77mlbDmja7kuK3nmoTkuIvmoIcKICAgICAgICBoaWdobGlnaHRQaWUoKTsKICAgICAgICAvLyDlj5bmtojmiYDmnInpq5jkuq7lubbpq5jkuq7lvZPliY3lm77lvaIKICAgICAgICBmdW5jdGlvbiBoaWdobGlnaHRQaWUoKSB7CiAgICAgICAgICAvLyDpgY3ljobppbzlm77mlbDmja7vvIzlj5bmtojmiYDmnInlm77lvaLnmoTpq5jkuq7mlYjmnpwKICAgICAgICAgIGZvciAodmFyIGlkeCBpbiBvcHRpb24uc2VyaWVzWzBdLmRhdGEpIHsKICAgICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgICAgdHlwZTogJ2Rvd25wbGF5JywKICAgICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgICBkYXRhSW5kZXg6IGlkeAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIC8vIOmrmOS6ruW9k+WJjeWbvuW9ogogICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgIHR5cGU6ICdoaWdobGlnaHQnLAogICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgZGF0YUluZGV4OiBjdXJyZW50SW5kZXgKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICAvLyAvLyDnlKjmiLfpvKDmoIfmgqzmta7liLDmn5DkuIDlm77lvaLml7bvvIzlgZzmraLoh6rliqjliIfmjaLlubbpq5jkuq7pvKDmoIfmgqzmta7nmoTlm77lvaIKICAgICAgICBteUNoYXJ0Lm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbiAocGFyYW1zKSB7CiAgICAgICAgICBpZiAocGFyYW1zLmNvbXBvbmVudFR5cGUgPT0gJ2dyYXBoaWMnKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHBhcmFtcy5kYXRhSW5kZXg7CiAgICAgICAgICBoaWdobGlnaHRQaWUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8v6LWE5Lqn5L2/55So5oOF5Ya1CiAgICBpbml0U3RhdHNDaGF0OiBmdW5jdGlvbiBpbml0U3RhdHNDaGF0KCkgewogICAgICB2YXIgZWNoYXJ0c0RhdGEgPSBbewogICAgICAgIG5hbWU6ICfmnKrkvb/nlKjop4TmqKEnLAogICAgICAgIHZhbHVlOiAnMTUnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjNTVFREIwJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmipXlhaXkvb/nlKjop4TmqKEnLAogICAgICAgIHZhbHVlOiAnNScsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyMwMEQ0RkYnCiAgICAgICAgfQogICAgICB9XTsKICAgICAgLy8gdGhpcy5zdGF0c0RhdGEuZm9yRWFjaCgoZSwgaW5kZXgpID0+IHsKCiAgICAgIC8vICAgZWNoYXJ0c0RhdGEucHVzaCh7CiAgICAgIC8vICAgICBuYW1lOiB0aGlzLmdldERpY3ROYW1lKCd4bXN4JywgZS5hc3NldE5hdHVyZSksCiAgICAgIC8vICAgICB2YWx1ZTogZS5jb3VudCwKICAgICAgLy8gICAgIGl0ZW1TdHlsZTogewogICAgICAvLyAgICAgICBjb2xvcjogdGhpcy5jb2xvckxpc3RbMiArIGluZGV4XSwKICAgICAgLy8gICAgIH0sCiAgICAgIC8vICAgfSkKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0cy1jaGFydCcpKTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAnaXRlbScKICAgICAgICB9LAogICAgICAgIGxlZ2VuZDogewogICAgICAgICAgb3JpZW50OiAndmVydGljYWwnLAogICAgICAgICAgdG9wOiAnbWlkZGxlJywKICAgICAgICAgIHJpZ2h0OiA5MCwKICAgICAgICAgIHNlbGVjdGVkTW9kZTogZmFsc2UKICAgICAgICB9LAogICAgICAgIHNlcmllczogW3sKICAgICAgICAgIG5hbWU6ICfpnaLnp68nLAogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTUlJywgJzY3JSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsCiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyCiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UsCiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJwogICAgICAgICAgfSwKICAgICAgICAgIGVtcGhhc2lzOiB7CiAgICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgICBmb250U2l6ZTogMzAsCiAgICAgICAgICAgICAgZm9ybWF0dGVyOiBmdW5jdGlvbiBmb3JtYXR0ZXIocGFyYW1zKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWyd7bnVtfCcgKyBwYXJhbXMudmFsdWUgKyAnfScgKyAne3VuaXR85LiqfScsICd7bGFiZWx8JyArIHBhcmFtcy5uYW1lICsgJ30nXS5qb2luKCdcbicpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmljaDogewogICAgICAgICAgICAgICAgbnVtOiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAzMCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJywKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDcwMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHVuaXQ6IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDE0LAogICAgICAgICAgICAgICAgICBjb2xvcjogJyMxMTEnLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgcGFkZGluZzogWzAsIDVdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDIwLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjNDQ0JwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsTGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGRhdGE6IGVjaGFydHNEYXRhCiAgICAgICAgfSwKICAgICAgICAvLyDlpJblnIjog4zmma8KICAgICAgICB7CiAgICAgICAgICB0eXBlOiAncGllJywKICAgICAgICAgIHJhZGl1czogWyc1MCUnLCAnNTAlJ10sCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2UsCiAgICAgICAgICBjbG9ja1dpc2U6IGZhbHNlLAogICAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsCiAgICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgICAgbm9ybWFsOiB7CiAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsCiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZWFlYWVhJwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgZGF0YTogWzEwMF0KICAgICAgICB9LCB7CiAgICAgICAgICB0eXBlOiAnZ2F1Z2UnLAogICAgICAgICAgcmFkaXVzOiAnOTglJywKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGNsb2Nrd2lzZTogdHJ1ZSwKICAgICAgICAgIHN0YXJ0QW5nbGU6ICcxMDAnLAogICAgICAgICAgZW5kQW5nbGU6ICctMjY5Ljk5OTknLAogICAgICAgICAgc3BsaXROdW1iZXI6IDIwMCwKICAgICAgICAgIC8v57q/55qE5p2h5pWwCiAgICAgICAgICBwb2ludGVyOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzVGljazogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGVuZ3RoOiAxNSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjZWFlYWVhJywKICAgICAgICAgICAgICB3aWR0aDogMQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2dhdWdlJywKICAgICAgICAgIHJhZGl1czogJzgzLjUlJywKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGNsb2Nrd2lzZTogdHJ1ZSwKICAgICAgICAgIHN0YXJ0QW5nbGU6ICcxMDAnLAogICAgICAgICAgZW5kQW5nbGU6ICctMjY5Ljk5OTknLAogICAgICAgICAgc3BsaXROdW1iZXI6IDE0MCwKICAgICAgICAgIC8v57q/55qE5p2h5pWwCiAgICAgICAgICBwb2ludGVyOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzVGljazogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGVuZ3RoOiAxLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNlYWVhZWEnLAogICAgICAgICAgICAgIHdpZHRoOiAyCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9XQogICAgICB9OwogICAgICBjaGFydERvbS5zZXRPcHRpb24ob3B0aW9uKTsKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICBjaGFydERvbS5yZXNpemUoKTsKICAgICAgfSk7CiAgICAgIGhhbmRsZUNoYXJ0TG9vcChvcHRpb24sIGNoYXJ0RG9tKTsKICAgICAgLy8g6aW85Zu+6Ieq5Yqo6L2u5pKtCiAgICAgIGZ1bmN0aW9uIGhhbmRsZUNoYXJ0TG9vcChvcHRpb24sIG15Q2hhcnQpIHsKICAgICAgICBpZiAoIW15Q2hhcnQpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGN1cnJlbnRJbmRleCA9IDA7IC8vIOW9k+WJjemrmOS6ruWbvuW9ouWcqOmlvOWbvuaVsOaNruS4reeahOS4i+aghwogICAgICAgIGhpZ2hsaWdodFBpZSgpOwogICAgICAgIC8vIOWPlua2iOaJgOaciemrmOS6ruW5tumrmOS6ruW9k+WJjeWbvuW9ogogICAgICAgIGZ1bmN0aW9uIGhpZ2hsaWdodFBpZSgpIHsKICAgICAgICAgIC8vIOmBjeWOhumlvOWbvuaVsOaNru+8jOWPlua2iOaJgOacieWbvuW9oueahOmrmOS6ruaViOaenAogICAgICAgICAgZm9yICh2YXIgaWR4IGluIG9wdGlvbi5zZXJpZXNbMF0uZGF0YSkgewogICAgICAgICAgICBteUNoYXJ0LmRpc3BhdGNoQWN0aW9uKHsKICAgICAgICAgICAgICB0eXBlOiAnZG93bnBsYXknLAogICAgICAgICAgICAgIHNlcmllc0luZGV4OiAwLAogICAgICAgICAgICAgIGRhdGFJbmRleDogaWR4CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgICAgLy8g6auY5Lqu5b2T5YmN5Zu+5b2iCiAgICAgICAgICBteUNoYXJ0LmRpc3BhdGNoQWN0aW9uKHsKICAgICAgICAgICAgdHlwZTogJ2hpZ2hsaWdodCcsCiAgICAgICAgICAgIHNlcmllc0luZGV4OiAwLAogICAgICAgICAgICBkYXRhSW5kZXg6IGN1cnJlbnRJbmRleAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIC8vIC8vIOeUqOaIt+m8oOagh+aCrOa1ruWIsOafkOS4gOWbvuW9ouaXtu+8jOWBnOatouiHquWKqOWIh+aNouW5tumrmOS6rum8oOagh+aCrOa1rueahOWbvuW9ogogICAgICAgIG15Q2hhcnQub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uIChwYXJhbXMpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKDEpOwogICAgICAgICAgaWYgKHBhcmFtcy5jb21wb25lbnRUeXBlID09ICdncmFwaGljJykgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBjdXJyZW50SW5kZXggPSBwYXJhbXMuZGF0YUluZGV4OwogICAgICAgICAgaGlnaGxpZ2h0UGllKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDotYTkuqfnu7Tkv64KICAgIGluaXRUeXBlQ2hhdDogZnVuY3Rpb24gaW5pdFR5cGVDaGF0KCkgewogICAgICB2YXIgZWNoYXJ0c0RhdGEgPSBbewogICAgICAgIG5hbWU6ICfmnKrnu7Tkv64nLAogICAgICAgIHZhbHVlOiA1LAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjRkZBRTVFJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmraPlnKjnu7Tkv64nLAogICAgICAgIHZhbHVlOiA1LAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjNTVFREIwICcKICAgICAgICB9CiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5bey57u05L+uJywKICAgICAgICB2YWx1ZTogMTUsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyM2NkIyRkYgJwogICAgICAgIH0KICAgICAgfV07CiAgICAgIC8vIHRoaXMudHlwZURhdGEuZm9yRWFjaCgoZSwgaW5kZXgpID0+IHsKICAgICAgLy8gICBlY2hhcnRzRGF0YS5wdXNoKHsKICAgICAgLy8gICAgIG5hbWU6IHRoaXMuZ2V0RGljdE5hbWUoJ3pjbHgnLCBlLmFzc2V0VHlwZSksCiAgICAgIC8vICAgICB2YWx1ZTogZS5jb3VudCwKICAgICAgLy8gICAgIGl0ZW1TdHlsZTogewogICAgICAvLyAgICAgICBjb2xvcjogdGhpcy5jb2xvckxpc3RbaW5kZXhdLAogICAgICAvLyAgICAgfSwKICAgICAgLy8gICB9KQogICAgICAvLyB9KQogICAgICB2YXIgY2hhcnREb20gPSBlY2hhcnRzLmluaXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R5cGUtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2l0ZW0nCiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIG9yaWVudDogJ3ZlcnRpY2FsJywKICAgICAgICAgIHRvcDogJ21pZGRsZScsCiAgICAgICAgICByaWdodDogMTEwLAogICAgICAgICAgc2VsZWN0ZWRNb2RlOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgc2VyaWVzOiBbewogICAgICAgICAgbmFtZTogJ+mdouenrycsCiAgICAgICAgICB0eXBlOiAncGllJywKICAgICAgICAgIHJhZGl1czogWyc1NSUnLCAnNjclJ10sCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogZmFsc2UsCiAgICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJywKICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZSwKICAgICAgICAgICAgcG9zaXRpb246ICdjZW50ZXInCiAgICAgICAgICB9LAogICAgICAgICAgZW1waGFzaXM6IHsKICAgICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICAgIGZvbnRTaXplOiAzMCwKICAgICAgICAgICAgICBmb3JtYXR0ZXI6IGZ1bmN0aW9uIGZvcm1hdHRlcihwYXJhbXMpIHsKICAgICAgICAgICAgICAgIHJldHVybiBbJ3tudW18JyArIHBhcmFtcy52YWx1ZSArICd9JyArICd7dW5pdHzkuKp9JywgJ3tsYWJlbHwnICsgcGFyYW1zLm5hbWUgKyAnfSddLmpvaW4oJ1xuJyk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByaWNoOiB7CiAgICAgICAgICAgICAgICBudW06IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDMwLAogICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNzAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgdW5pdDogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTQsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzExMScsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBwYWRkaW5nOiBbMCwgNV0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMjAsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBjb2xvcjogJyM0NDQnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWxMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgZGF0YTogZWNoYXJ0c0RhdGEKICAgICAgICB9LAogICAgICAgIC8vIOWkluWciOiDjOaZrwogICAgICAgIHsKICAgICAgICAgIHR5cGU6ICdwaWUnLAogICAgICAgICAgcmFkaXVzOiBbJzUwJScsICc1MCUnXSwKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSwKICAgICAgICAgIGNsb2NrV2lzZTogZmFsc2UsCiAgICAgICAgICBjdXJzb3I6ICdkZWZhdWx0JywKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBub3JtYWw6IHsKICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMiwKICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlYWVhZWEnCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBkYXRhOiBbMTAwXQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdnYXVnZScsCiAgICAgICAgICByYWRpdXM6ICc5OCUnLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgY2xvY2t3aXNlOiB0cnVlLAogICAgICAgICAgc3RhcnRBbmdsZTogJzEwMCcsCiAgICAgICAgICBlbmRBbmdsZTogJy0yNjkuOTk5OScsCiAgICAgICAgICBzcGxpdE51bWJlcjogMjAwLAogICAgICAgICAgLy/nur/nmoTmnaHmlbAKICAgICAgICAgIHBvaW50ZXI6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHNwbGl0TGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsZW5ndGg6IDE1LAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNlYWVhZWEnLAogICAgICAgICAgICAgIHdpZHRoOiAxCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9LCB7CiAgICAgICAgICB0eXBlOiAnZ2F1Z2UnLAogICAgICAgICAgcmFkaXVzOiAnODMuNSUnLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgY2xvY2t3aXNlOiB0cnVlLAogICAgICAgICAgc3RhcnRBbmdsZTogJzEwMCcsCiAgICAgICAgICBlbmRBbmdsZTogJy0yNjkuOTk5OScsCiAgICAgICAgICBzcGxpdE51bWJlcjogMTQwLAogICAgICAgICAgLy/nur/nmoTmnaHmlbAKICAgICAgICAgIHBvaW50ZXI6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHNwbGl0TGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsZW5ndGg6IDEsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI2VhZWFlYScsCiAgICAgICAgICAgICAgd2lkdGg6IDIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH1dCiAgICAgIH07CiAgICAgIGNoYXJ0RG9tLnNldE9wdGlvbihvcHRpb24pOwogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgewogICAgICAgIGNoYXJ0RG9tLnJlc2l6ZSgpOwogICAgICB9KTsKICAgICAgaGFuZGxlQ2hhcnRMb29wKG9wdGlvbiwgY2hhcnREb20pOwogICAgICAvLyDppbzlm77oh6rliqjova7mkq0KICAgICAgZnVuY3Rpb24gaGFuZGxlQ2hhcnRMb29wKG9wdGlvbiwgbXlDaGFydCkgewogICAgICAgIGlmICghbXlDaGFydCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgY3VycmVudEluZGV4ID0gMDsgLy8g5b2T5YmN6auY5Lqu5Zu+5b2i5Zyo6aW85Zu+5pWw5o2u5Lit55qE5LiL5qCHCiAgICAgICAgaGlnaGxpZ2h0UGllKCk7CiAgICAgICAgLy8g5Y+W5raI5omA5pyJ6auY5Lqu5bm26auY5Lqu5b2T5YmN5Zu+5b2iCiAgICAgICAgZnVuY3Rpb24gaGlnaGxpZ2h0UGllKCkgewogICAgICAgICAgLy8g6YGN5Y6G6aW85Zu+5pWw5o2u77yM5Y+W5raI5omA5pyJ5Zu+5b2i55qE6auY5Lqu5pWI5p6cCiAgICAgICAgICBmb3IgKHZhciBpZHggaW4gb3B0aW9uLnNlcmllc1swXS5kYXRhKSB7CiAgICAgICAgICAgIG15Q2hhcnQuZGlzcGF0Y2hBY3Rpb24oewogICAgICAgICAgICAgIHR5cGU6ICdkb3ducGxheScsCiAgICAgICAgICAgICAgc2VyaWVzSW5kZXg6IDAsCiAgICAgICAgICAgICAgZGF0YUluZGV4OiBpZHgKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICAvLyDpq5jkuq7lvZPliY3lm77lvaIKICAgICAgICAgIG15Q2hhcnQuZGlzcGF0Y2hBY3Rpb24oewogICAgICAgICAgICB0eXBlOiAnaGlnaGxpZ2h0JywKICAgICAgICAgICAgc2VyaWVzSW5kZXg6IDAsCiAgICAgICAgICAgIGRhdGFJbmRleDogY3VycmVudEluZGV4CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgLy8gLy8g55So5oi36byg5qCH5oKs5rWu5Yiw5p+Q5LiA5Zu+5b2i5pe277yM5YGc5q2i6Ieq5Yqo5YiH5o2i5bm26auY5Lqu6byg5qCH5oKs5rWu55qE5Zu+5b2iCiAgICAgICAgbXlDaGFydC5vbignbW91c2VvdmVyJywgZnVuY3Rpb24gKHBhcmFtcykgewogICAgICAgICAgaWYgKHBhcmFtcy5jb21wb25lbnRUeXBlID09ICdncmFwaGljJykgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBjdXJyZW50SW5kZXggPSBwYXJhbXMuZGF0YUluZGV4OwogICAgICAgICAgaGlnaGxpZ2h0UGllKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmnKrmnaXop4TliJIKICAgIHByb2plY3RJbml0OiBmdW5jdGlvbiBwcm9qZWN0SW5pdCgpIHsKICAgICAgdmFyIHhEYXRhID0gWyfmrqHlubYnLCAn5Z+O6ZWH5p2R6YGT6LevJywgJ+W3peS4micsICflhazot68nLCAn5YWs55So6K6+5pa9JywgJ+WFrOWbreS4jue7v+WcsCcsICfkuqTpgJrmnI3liqHlnLrnq5knLCAn5pWZ6IKyJywgJ+mbtuWUruWVhuS4micsICfllYbliqHph5Hono0nLCAn5YW25LuW5ZWG5pyNJywgJ+ekvuS8muemj+WIqSddOwogICAgICB2YXIgYm9va0RhdGEgPSBbMjIsIDQ0LCAyMiwgMTEsIDIwLCA0NCwgMjMsIDU2LCA3NywgNDQsIDQyLCAzMV07CiAgICAgIHZhciBzdHJ1Y3R1cmVEYXRhID0gWzIyLCA0NCwgMjIsIDExLCAyMCwgNDQsIDIzLCA1NiwgNzcsIDQ0LCA0MiwgMzFdOwogICAgICB2YXIgY2hhcnREb20gPSBlY2hhcnRzLmluaXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2plY3QtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2F4aXMnLAogICAgICAgICAgYXhpc1BvaW50ZXI6IHsKICAgICAgICAgICAgLy8g5Z2Q5qCH6L205oyH56S65Zmo77yM5Z2Q5qCH6L206Kem5Y+R5pyJ5pWICiAgICAgICAgICAgIHR5cGU6ICdzaGFkb3cnIC8vIOm7mOiupOS4uuebtOe6v++8jOWPr+mAieS4uu+8midsaW5lJyB8ICdzaGFkb3cnCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIGRhdGE6IFsn6LSm6Z2i5YeA5YC8JywgJ+mdouenryddLAogICAgICAgICAgYWxpZ246ICdsZWZ0JywKICAgICAgICAgIHBhZGRpbmc6IFsxNSwgMCwgMCwgMF0KICAgICAgICB9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIGxlZnQ6ICczJScsCiAgICAgICAgICByaWdodDogJzQlJywKICAgICAgICAgIGJvdHRvbTogJzAnLAogICAgICAgICAgY29udGFpbkxhYmVsOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB4QXhpczogW3sKICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgICBkYXRhOiB4RGF0YSwKICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIGludGVydmFsOiAwLAogICAgICAgICAgICAvL+WdkOagh+WIu+W6puS5i+mXtOeahOaYvuekuumXtOmalO+8jOm7mOiupOWwseWPr+S7peS6hu+8iOm7mOiupOaYr+S4jemHjeWPoO+8iQogICAgICAgICAgICByb3RhdGU6IDM4IC8v6LCD5pW05pWw5YC85pS55Y+Y5YC+5pac55qE5bmF5bqm77yI6IyD5Zu0LTkw5YiwOTDvvIkKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfV0sCiAgICAgICAgeUF4aXM6IFt7CiAgICAgICAgICB0eXBlOiAndmFsdWUnLAogICAgICAgICAgbmFtZTogJ+WNleS9je+8muS4h+WFgycsCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfScKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ3ZhbHVlJywKICAgICAgICAgIG5hbWU6ICfljZXkvY3vvJrjjqEnLAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIGZvcm1hdHRlcjogJ3t2YWx1ZX0nCiAgICAgICAgICB9LAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfV0sCiAgICAgICAgc2VyaWVzOiBbewogICAgICAgICAgbmFtZTogJ+i0pumdouWHgOWAvCcsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhLAogICAgICAgICAgYmFyV2lkdGg6ICcxNScsCiAgICAgICAgICB5QXhpc0luZGV4OiAwLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiB7CiAgICAgICAgICAgICAgdHlwZTogJ2xpbmVhcicsCiAgICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgIHgyOiAwLAogICAgICAgICAgICAgIHkyOiAxLAogICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICAgICBjb2xvcjogJyM1NUVEQjAnIC8vIOa4kOWPmOi1t+Wni+minOiJsu+8iOe7v+iJsu+8iQogICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIG9mZnNldDogMSwKICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSg4NSwyMzcsMTc2LDAuMiknIC8vIOa4kOWPmOe7k+adn+minOiJsu+8iOa3see7v+iJsu+8iQogICAgICAgICAgICAgIH1dCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzMsIDMsIDAsIDBdIC8vIOiuvue9ruWchuinkuWkp+WwjwogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIG5hbWU6ICfpnaLnp68nLAogICAgICAgICAgdHlwZTogJ2JhcicsCiAgICAgICAgICBkYXRhOiBzdHJ1Y3R1cmVEYXRhLAogICAgICAgICAgYmFyV2lkdGg6ICcxNScsCiAgICAgICAgICB5QXhpc0luZGV4OiAxLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiB7CiAgICAgICAgICAgICAgdHlwZTogJ2xpbmVhcicsCiAgICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgIHgyOiAwLAogICAgICAgICAgICAgIHkyOiAxLAogICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICAgICBjb2xvcjogJyM4QUM0RkYnIC8vIOa4kOWPmOi1t+Wni+minOiJsu+8iOe7v+iJsu+8iQogICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIG9mZnNldDogMSwKICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSg1MSwxNTMsMjU1LDAuMiknIC8vIOa4kOWPmOe7k+adn+minOiJsu+8iOa3see7v+iJsu+8iQogICAgICAgICAgICAgIH1dCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzMsIDMsIDAsIDBdIC8vIOiuvue9ruWchuinkuWkp+WwjwogICAgICAgICAgfQogICAgICAgIH1dCiAgICAgIH07CiAgICAgIGNoYXJ0RG9tLnNldE9wdGlvbihvcHRpb24pOwogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgewogICAgICAgIGNoYXJ0RG9tLnJlc2l6ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDotYTkuqflpITnva4KICAgIGluaXRDaGF0OiBmdW5jdGlvbiBpbml0Q2hhdCgpIHsKICAgICAgdmFyIHhEYXRhID0gWycx5pyIJywgJzLmnIgnLCAnM+aciCcsICc05pyIJywgJzXmnIgnLCAnNuaciCcsICc35pyIJywgJzjmnIgnLCAnOeaciCcsICcxMOaciCcsICcxMeaciCcsICcxMuaciCddOwogICAgICB2YXIgYm9va0RhdGEgPSBbMjIsIDQ0LCAyMiwgMTEsIDIwLCA0NCwgMjMsIDU2LCA3NywgNDQsIDQyLCAzMV07CiAgICAgIHZhciBib29rRGF0YTEgPSBbMTIsIDI0LCAxMiwgMSwgMTAsIDM0LCAxMywgMzYsIDU3LCAxNCwgMTIsIDIxXTsKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnRlcmVzdC1jaGFydCcpKTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAnYXhpcycgLy8g6K6+572u6Kem5Y+R57G75Z6L5Li65Z2Q5qCH6L206L2057q/6Kem5Y+RCiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIGRhdGE6IFsn6LWE5Lqn6L2s6K6pJywgJ+i1hOS6p+aKpeW6nyddLAogICAgICAgICAgYWxpZ246ICdsZWZ0JywKICAgICAgICAgIHBhZGRpbmc6IFsxNSwgMCwgMCwgMF0KICAgICAgICB9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIHRvcDogJzIxJScsCiAgICAgICAgICBib3R0b206ICc1JScsCiAgICAgICAgICByaWdodDogJzUlJwogICAgICAgIH0sCiAgICAgICAgeEF4aXM6IHsKICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgICBkYXRhOiB4RGF0YSwKICAgICAgICAgIGJvdW5kYXJ5R2FwOiBmYWxzZSwKICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjQTFBOUIyJyAvLyDmtYXngbDoibIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgeUF4aXM6IHsKICAgICAgICAgIHR5cGU6ICd2YWx1ZScsCiAgICAgICAgICBuYW1lOiAn5Y2V5L2N77ya5LiH5YWDJywKICAgICAgICAgIG1pbjogMCwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI0ExQTlCMicgLy8g5rWF54Gw6ImyCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNlcmllczogW19kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eSh7CiAgICAgICAgICBuYW1lOiAn6LWE5Lqn6L2s6K6pJywKICAgICAgICAgIHR5cGU6ICdsaW5lJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhCiAgICAgICAgfSwgInR5cGUiLCAnbGluZScpLCAic21vb3RoIiwgdHJ1ZSksICJzaG93U3ltYm9sIiwgZmFsc2UpLCAibGluZVN0eWxlIiwgewogICAgICAgICAgY29sb3I6ICcjNTVFREIwJyAvLyDorr7nva7nur/mnaHnmoTpopzoibLkuLrnuqLoibIKICAgICAgICB9KSwgX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KHsKICAgICAgICAgIG5hbWU6ICfotYTkuqfmiqXlup8nLAogICAgICAgICAgdHlwZTogJ2xpbmUnLAogICAgICAgICAgZGF0YTogYm9va0RhdGExCiAgICAgICAgfSwgInR5cGUiLCAnbGluZScpLCAic21vb3RoIiwgdHJ1ZSksICJzaG93U3ltYm9sIiwgZmFsc2UpLCAibGluZVN0eWxlIiwgewogICAgICAgICAgY29sb3I6ICcjRkZBRTVFJyAvLyDorr7nva7nur/mnaHnmoTpopzoibLkuLrnuqLoibIKICAgICAgICB9KV0KICAgICAgfTsKICAgICAgY2hhcnREb20uc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2hhcnREb20ucmVzaXplKCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWQhOS4muaAgei1hOS6p+enu+S6pOaDheWGtQogICAgaW5pdFNvdXJjZUNoYXQ6IGZ1bmN0aW9uIGluaXRTb3VyY2VDaGF0KCkgewogICAgICB2YXIgeERhdGEgPSBbJ+auoeW5ticsICfln47plYfmnZHpgZPot68nLCAn5bel5LiaJywgJ+WFrOi3rycsICflhaznlKjorr7mlr0nLCAn5YWs5Zut5LiO57u/5ZywJywgJ+S6pOmAmuacjeWKoeWcuuermScsICfmlZnogrInLCAn6Zu25ZSu5ZWG5LiaJywgJ+WVhuWKoemHkeiejSddOwogICAgICB2YXIgYm9va0RhdGEgPSBbMjMsIDMzLCA0MSwgMTUsIDMyLCA0NSwgMzIsIDEzLCA1NCwgNzZdOwogICAgICAvLyB0aGlzLnN0YXR1c0RhdGEuZm9yRWFjaChlID0+IHsKICAgICAgLy8gICB4RGF0YS5wdXNoKHRoaXMuZ2V0RGljdE5hbWUoJ3pjenQnLCBlLmFzc2V0U3RhdHVzKSkKICAgICAgLy8gICBib29rRGF0YS5wdXNoKGUuYm9va1ZhbHVlKQogICAgICAvLyAgIHN0cnVjdHVyZURhdGEucHVzaChlLnN0cnVjdHVyZV9hcmVhXykKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2UtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2F4aXMnLAogICAgICAgICAgYXhpc1BvaW50ZXI6IHsKICAgICAgICAgICAgLy8g5Z2Q5qCH6L205oyH56S65Zmo77yM5Z2Q5qCH6L206Kem5Y+R5pyJ5pWICiAgICAgICAgICAgIHR5cGU6ICdzaGFkb3cnIC8vIOm7mOiupOS4uuebtOe6v++8jOWPr+mAieS4uu+8midsaW5lJyB8ICdzaGFkb3cnCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIGRhdGE6IFsn5oC75pWwJywgJ+W3suenu+S6pCddLAogICAgICAgICAgYWxpZ246ICdsZWZ0JywKICAgICAgICAgIHBhZGRpbmc6IFsxNSwgMCwgMCwgMF0KICAgICAgICB9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIGxlZnQ6ICczJScsCiAgICAgICAgICByaWdodDogJzQlJywKICAgICAgICAgIGJvdHRvbTogJzAnLAogICAgICAgICAgY29udGFpbkxhYmVsOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB4QXhpczogW3sKICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgICBkYXRhOiB4RGF0YSwKICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIGludGVydmFsOiAwLAogICAgICAgICAgICAvL+WdkOagh+WIu+W6puS5i+mXtOeahOaYvuekuumXtOmalO+8jOm7mOiupOWwseWPr+S7peS6hu+8iOm7mOiupOaYr+S4jemHjeWPoO+8iQogICAgICAgICAgICByb3RhdGU6IDM4IC8v6LCD5pW05pWw5YC85pS55Y+Y5YC+5pac55qE5bmF5bqm77yI6IyD5Zu0LTkw5YiwOTDvvIkKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfV0sCiAgICAgICAgeUF4aXM6IFt7CiAgICAgICAgICB0eXBlOiAndmFsdWUnLAogICAgICAgICAgbmFtZTogJ+WNleS9je+8muS6qScsCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfScKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfV0sCiAgICAgICAgc2VyaWVzOiBbewogICAgICAgICAgbmFtZTogJ+W3suenu+S6pCcsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhLAogICAgICAgICAgYmFyV2lkdGg6ICcxNScsCiAgICAgICAgICBzdGFjazogJ3VzZXInLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiAnIzU1RURCMCcgLy8g5riQ5Y+Y6LW35aeL6aKc6Imy77yI57u/6Imy77yJCiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+aAu+aVsCcsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhLAogICAgICAgICAgYmFyV2lkdGg6ICcxNScsCiAgICAgICAgICBzdGFjazogJ3VzZXInLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiAnIzY2QjJGRicsCiAgICAgICAgICAgIC8vIOa4kOWPmOi1t+Wni+minOiJsu+8iOe7v+iJsu+8iQogICAgICAgICAgICBib3JkZXJSYWRpdXM6IFszLCAzLCAwLCAwXSAvLyDorr7nva7lnIbop5LlpKflsI8KICAgICAgICAgIH0KICAgICAgICB9XQogICAgICB9OwogICAgICBjaGFydERvbS5zZXRPcHRpb24ob3B0aW9uKTsKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICBjaGFydERvbS5yZXNpemUoKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkge30KfTs="},null]}