{"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\\LandLedger\\HomePage\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\views\\LandLedger\\HomePage\\index.vue","mtime":1703146860948},{"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:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9sanpjLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0ICogYXMgZWNoYXJ0cyBmcm9tICdlY2hhcnRzJzsKaW1wb3J0IHV0aWxzIGZyb20gJ0AvdXRpbHMuanMnOwppbXBvcnQgUHVibGljVGl0bGUgZnJvbSAnQC9jb21wb25lbnRzL1B1YmxpY1RpdGxlL2luZGV4JzsKaW1wb3J0IFNjYWxlRHJhd2luZyBmcm9tICdAL2NvbXBvbmVudHMvU2NhbGVEcmF3aW5nL2luZGV4JzsKaW1wb3J0IGFwaSBmcm9tICdAL2FwaS9hc3NldHNPcGVyYXRpbmcvYXNzZXRzT3BlcmF0aW5nLmpzJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdIb21lUGFnZScsCiAgLy8g6aaW6aG1CiAgY29tcG9uZW50czogewogICAgUHVibGljVGl0bGU6IFB1YmxpY1RpdGxlLAogICAgU2NhbGVEcmF3aW5nOiBTY2FsZURyYXdpbmcKICAgIC8vIE9wZXJhdGluZ0Fzc2V0cywKICAgIC8vIExhbmRBc3NldHMKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBjb2xvckxpc3Q6IFsnIzU1ZWRiMCcsICcjMDBkNGZmJywgJyNjNjc5ZTUnLCAnIzE5OGNmZiddLAogICAgICBkYXRhTGlzdDogW3sKICAgICAgICBuYW1lOiAn5ZWG5Lia55So5ZywJywKICAgICAgICB2YWx1ZTogJzEyJScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfkvY/lroXnlKjlnLAnLAogICAgICAgIHZhbHVlOiAnNiUnCiAgICAgIH1dLAogICAgICB0b3BTdGF0aXN0aWNzOiB7fSwKICAgICAgLy/pobbpg6jnu5/orqEKICAgICAgb3duZXJzaGlwRGF0YTogW10sCiAgICAgIC8v5p2D5bGeCiAgICAgIHN0YXRzRGF0YTogW10sCiAgICAgIC8v5bGe5oCnCiAgICAgIGNvbW1lcmNpYWxEYXRhOiBbXSwKICAgICAgLy/kuJrmgIEKICAgICAgc291cmNlRGF0YTogW10sCiAgICAgIC8v5p2l5rqQCiAgICAgIHN0YXR1c0RhdGE6IFtdLAogICAgICAvL+eKtuaAgQogICAgICB0eXBlRGF0YTogW10sCiAgICAgIC8v57G75Z6LCiAgICAgIGxlZnREYXRhOiB7CiAgICAgICAgbmFtZTogJ+aUv+W6nOi1hOS6pycsCiAgICAgICAgdmFsdWU6IDQ0NjM5MzcxLAogICAgICAgIHVuaXQ6ICfkuqknCiAgICAgIH0sCiAgICAgIHJpZ2h0RGF0YTogewogICAgICAgIG5hbWU6ICfkvIHkuJrotYTkuqcnLAogICAgICAgIHZhbHVlOiA2NzYzOTM3MSwKICAgICAgICB1bml0OiAn5LqpJwogICAgICB9CiAgICB9OwogIH0sCiAgd2F0Y2g6IHt9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmJlbG9uZ1N0YXRpc3RpY3MoKTsKICAgIHRoaXMubmF0dXJlU3RhdGlzdGljcygpOwogICAgdGhpcy5zb3VyY2VTdGF0aXN0aWNzKCk7CiAgICB0aGlzLnN0YXR1c1N0YXRpc3RpY3MoKTsKICAgIHRoaXMudHlwZVN0YXRpc3RpY3MoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7fSwKICBtZXRob2RzOiB7CiAgICAvL+Wtl+WFuOe/u+ivkQogICAgZ2V0RGljdE5hbWU6IGZ1bmN0aW9uIGdldERpY3ROYW1lKGNvZGUsIHZhbHVlKSB7CiAgICAgIHJldHVybiB1dGlscy5nZXREaWN0TmFtZShjb2RlLCB2YWx1ZSk7CiAgICB9LAogICAgLy/mnYPlsZ7liIbluIMKICAgIGJlbG9uZ1N0YXRpc3RpY3M6IGZ1bmN0aW9uIGJlbG9uZ1N0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIGFwaS5iZWxvbmdTdGF0aXN0aWNzKHt9LCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgX3RoaXMub3duZXJzaGlwRGF0YSA9IHJlcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgX3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzLmluaXRPd25lcnNoaXBDaGF0KCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v6LWE5Lqn5bGe5oCn5YiG5biDCiAgICBuYXR1cmVTdGF0aXN0aWNzOiBmdW5jdGlvbiBuYXR1cmVTdGF0aXN0aWNzKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgYXBpLm5hdHVyZVN0YXRpc3RpY3Moe30sIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXRlKSB7CiAgICAgICAgICBfdGhpczIuc3RhdHNEYXRhID0gcmVzLnZhbHVlOwogICAgICAgIH0KICAgICAgICBfdGhpczIuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzMi5pbml0U3RhdHNDaGF0KCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v6LWE5Lqn5p2l5rqQ5oOF5Ya1CiAgICBzb3VyY2VTdGF0aXN0aWNzOiBmdW5jdGlvbiBzb3VyY2VTdGF0aXN0aWNzKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgYXBpLnNvdXJjZVN0YXRpc3RpY3Moe30sIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXRlKSB7CiAgICAgICAgICBfdGhpczMuc291cmNlRGF0YSA9IHJlcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgX3RoaXMzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczMuaW5pdENoYXQoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy/otYTkuqfnirbmgIHmg4XlhrUKICAgIHN0YXR1c1N0YXRpc3RpY3M6IGZ1bmN0aW9uIHN0YXR1c1N0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBhcGkuc3RhdHVzU3RhdGlzdGljcyh7fSwgZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuc3RhdGUpIHsKICAgICAgICAgIF90aGlzNC5zdGF0dXNEYXRhID0gcmVzLnZhbHVlOwogICAgICAgIH0KICAgICAgICBfdGhpczQuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNC5pbml0U291cmNlQ2hhdCgpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvL+i1hOS6p+exu+Wei+WIhuW4gwogICAgdHlwZVN0YXRpc3RpY3M6IGZ1bmN0aW9uIHR5cGVTdGF0aXN0aWNzKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgYXBpLnR5cGVTdGF0aXN0aWNzKHt9LCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgX3RoaXM1LnR5cGVEYXRhID0gcmVzLnZhbHVlOwogICAgICAgIH0KICAgICAgICBfdGhpczUuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNS5pbml0VHlwZUNoYXQoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgaW5pdE93bmVyc2hpcENoYXQ6IGZ1bmN0aW9uIGluaXRPd25lcnNoaXBDaGF0KCkgewogICAgICB2YXIgZWNoYXJ0c0RhdGEgPSBbewogICAgICAgIG5hbWU6ICfpl7Lnva4nLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjMTk4Q0ZGJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICfoh6rnlKgnLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjMDBENEZGJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICflh7rnp58nLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjNTVFREIwJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICflgJ/nlKgnLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjRkZEQjJBJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICflrZjph48nLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjRkRCOTQyJwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICfooqvljaDnlKgnLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjRkY4RjU3JwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmlrDlop4nLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjQzY3OUU1JwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIG5hbWU6ICflhbbku5YnLAogICAgICAgIHZhbHVlOiAnMTAnLAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjRUEzOEMwJwogICAgICAgIH0KICAgICAgfV07CiAgICAgIC8vIHRoaXMub3duZXJzaGlwRGF0YS5mb3JFYWNoKChlLCBpbmRleCkgPT4gewogICAgICAvLyAgIGVjaGFydHNEYXRhLnB1c2goewogICAgICAvLyAgICAgbmFtZTogdGhpcy5nZXREaWN0TmFtZSgneG1ncycsIGUuYXNzZXRCZWxvbmcpLAogICAgICAvLyAgICAgdmFsdWU6IGUuY291bnQsCiAgICAgIC8vICAgICBpdGVtU3R5bGU6IHsKICAgICAgLy8gICAgICAgY29sb3I6IHRoaXMuY29sb3JMaXN0W2luZGV4XSwKICAgICAgLy8gICAgIH0sCiAgICAgIC8vICAgfSkKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvd25lcnNoaXAtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2l0ZW0nCiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIG9yaWVudDogJ3ZlcnRpY2FsJywKICAgICAgICAgIHRvcDogJ21pZGRsZScsCiAgICAgICAgICByaWdodDogMTEwLAogICAgICAgICAgc2VsZWN0ZWRNb2RlOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgc2VyaWVzOiBbewogICAgICAgICAgbmFtZTogJ+mdouenrycsCiAgICAgICAgICB0eXBlOiAncGllJywKICAgICAgICAgIHJhZGl1czogWyc1NSUnLCAnNjclJ10sCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogZmFsc2UsCiAgICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJywKICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZSwKICAgICAgICAgICAgcG9zaXRpb246ICdjZW50ZXInCiAgICAgICAgICB9LAogICAgICAgICAgZW1waGFzaXM6IHsKICAgICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICAgIGZvbnRTaXplOiAzMCwKICAgICAgICAgICAgICBmb3JtYXR0ZXI6IGZ1bmN0aW9uIGZvcm1hdHRlcihwYXJhbXMpIHsKICAgICAgICAgICAgICAgIHJldHVybiBbJ3tudW18JyArIHBhcmFtcy52YWx1ZSArICd9JyArICd7dW5pdHzkuql9JywgJ3tsYWJlbHwnICsgcGFyYW1zLm5hbWUgKyAnfSddLmpvaW4oJ1xuJyk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByaWNoOiB7CiAgICAgICAgICAgICAgICBudW06IHsKICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDMwLAogICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnLAogICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAzMCwKICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNzAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgdW5pdDogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTQsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzExMScsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBwYWRkaW5nOiBbMCwgNV0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMjAsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBjb2xvcjogJyM0NDQnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWxMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgZGF0YTogZWNoYXJ0c0RhdGEKICAgICAgICB9LCB7CiAgICAgICAgICB0eXBlOiAncGllJywKICAgICAgICAgIHJhZGl1czogWyc1MCUnLCAnNTAlJ10sCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2UsCiAgICAgICAgICBjbG9ja1dpc2U6IGZhbHNlLAogICAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsCiAgICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgICAgbm9ybWFsOiB7CiAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsCiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZWFlYWVhJwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgZGF0YTogWzEwMF0KICAgICAgICB9LCB7CiAgICAgICAgICB0eXBlOiAnZ2F1Z2UnLAogICAgICAgICAgcmFkaXVzOiAnOTglJywKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGNsb2Nrd2lzZTogdHJ1ZSwKICAgICAgICAgIHN0YXJ0QW5nbGU6ICcxMDAnLAogICAgICAgICAgZW5kQW5nbGU6ICctMjY5Ljk5OTknLAogICAgICAgICAgc3BsaXROdW1iZXI6IDIwMCwKICAgICAgICAgIC8v57q/55qE5p2h5pWwCiAgICAgICAgICBwb2ludGVyOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzVGljazogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGVuZ3RoOiAxNSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjZWFlYWVhJywKICAgICAgICAgICAgICB3aWR0aDogMQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2dhdWdlJywKICAgICAgICAgIHJhZGl1czogJzgzLjUlJywKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGNsb2Nrd2lzZTogdHJ1ZSwKICAgICAgICAgIHN0YXJ0QW5nbGU6ICcxMDAnLAogICAgICAgICAgZW5kQW5nbGU6ICctMjY5Ljk5OTknLAogICAgICAgICAgc3BsaXROdW1iZXI6IDE0MCwKICAgICAgICAgIC8v57q/55qE5p2h5pWwCiAgICAgICAgICBwb2ludGVyOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzVGljazogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBzcGxpdExpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGVuZ3RoOiAxLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNlYWVhZWEnLAogICAgICAgICAgICAgIHdpZHRoOiAyCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9XQogICAgICB9OwogICAgICBjaGFydERvbS5zZXRPcHRpb24ob3B0aW9uKTsKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICBjaGFydERvbS5yZXNpemUoKTsKICAgICAgfSk7CiAgICAgIGhhbmRsZUNoYXJ0TG9vcChvcHRpb24sIGNoYXJ0RG9tKTsKICAgICAgLy8g6aW85Zu+6Ieq5Yqo6L2u5pKtCiAgICAgIGZ1bmN0aW9uIGhhbmRsZUNoYXJ0TG9vcChvcHRpb24sIG15Q2hhcnQpIHsKICAgICAgICBpZiAoIW15Q2hhcnQpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGN1cnJlbnRJbmRleCA9IDA7IC8vIOW9k+WJjemrmOS6ruWbvuW9ouWcqOmlvOWbvuaVsOaNruS4reeahOS4i+aghwogICAgICAgIGhpZ2hsaWdodFBpZSgpOwogICAgICAgIC8vIOWPlua2iOaJgOaciemrmOS6ruW5tumrmOS6ruW9k+WJjeWbvuW9ogogICAgICAgIGZ1bmN0aW9uIGhpZ2hsaWdodFBpZSgpIHsKICAgICAgICAgIC8vIOmBjeWOhumlvOWbvuaVsOaNru+8jOWPlua2iOaJgOacieWbvuW9oueahOmrmOS6ruaViOaenAogICAgICAgICAgZm9yICh2YXIgaWR4IGluIG9wdGlvbi5zZXJpZXNbMF0uZGF0YSkgewogICAgICAgICAgICBteUNoYXJ0LmRpc3BhdGNoQWN0aW9uKHsKICAgICAgICAgICAgICB0eXBlOiAnZG93bnBsYXknLAogICAgICAgICAgICAgIHNlcmllc0luZGV4OiAwLAogICAgICAgICAgICAgIGRhdGFJbmRleDogaWR4CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgICAgLy8g6auY5Lqu5b2T5YmN5Zu+5b2iCiAgICAgICAgICBteUNoYXJ0LmRpc3BhdGNoQWN0aW9uKHsKICAgICAgICAgICAgdHlwZTogJ2hpZ2hsaWdodCcsCiAgICAgICAgICAgIHNlcmllc0luZGV4OiAwLAogICAgICAgICAgICBkYXRhSW5kZXg6IGN1cnJlbnRJbmRleAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIC8vIC8vIOeUqOaIt+m8oOagh+aCrOa1ruWIsOafkOS4gOWbvuW9ouaXtu+8jOWBnOatouiHquWKqOWIh+aNouW5tumrmOS6rum8oOagh+aCrOa1rueahOWbvuW9ogogICAgICAgIG15Q2hhcnQub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uIChwYXJhbXMpIHsKICAgICAgICAgIGlmIChwYXJhbXMuY29tcG9uZW50VHlwZSA9PSAnZ3JhcGhpYycpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgY3VycmVudEluZGV4ID0gcGFyYW1zLmRhdGFJbmRleDsKICAgICAgICAgIGhpZ2hsaWdodFBpZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgaW5pdFN0YXRzQ2hhdDogZnVuY3Rpb24gaW5pdFN0YXRzQ2hhdCgpIHsKICAgICAgdmFyIGVjaGFydHNEYXRhID0gW3sKICAgICAgICBuYW1lOiAn6Ieq5bu6JywKICAgICAgICB2YWx1ZTogJzEwJywKICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgIGNvbG9yOiAnIzE5OENGRicKICAgICAgICB9CiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn6LSt5LmwJywKICAgICAgICB2YWx1ZTogJzEwJywKICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgIGNvbG9yOiAnIzAwRDRGRicKICAgICAgICB9CiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5YiS5ouUJywKICAgICAgICB2YWx1ZTogJzEwJywKICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgIGNvbG9yOiAnI0ZGREIyQSAnCiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+e9ruaNoicsCiAgICAgICAgdmFsdWU6ICcxMCcsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyNGREI5NDInCiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WHuuiuqScsCiAgICAgICAgdmFsdWU6ICcxMCcsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyNGRjhGNTcnCiAgICAgICAgfQogICAgICB9XTsKICAgICAgLy8gdGhpcy5zdGF0c0RhdGEuZm9yRWFjaCgoZSwgaW5kZXgpID0+IHsKCiAgICAgIC8vICAgZWNoYXJ0c0RhdGEucHVzaCh7CiAgICAgIC8vICAgICBuYW1lOiB0aGlzLmdldERpY3ROYW1lKCd4bXN4JywgZS5hc3NldE5hdHVyZSksCiAgICAgIC8vICAgICB2YWx1ZTogZS5jb3VudCwKICAgICAgLy8gICAgIGl0ZW1TdHlsZTogewogICAgICAvLyAgICAgICBjb2xvcjogdGhpcy5jb2xvckxpc3RbMiArIGluZGV4XSwKICAgICAgLy8gICAgIH0sCiAgICAgIC8vICAgfSkKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0cy1jaGFydCcpKTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAnaXRlbScKICAgICAgICB9LAogICAgICAgIGxlZ2VuZDogewogICAgICAgICAgb3JpZW50OiAndmVydGljYWwnLAogICAgICAgICAgdG9wOiAnbWlkZGxlJywKICAgICAgICAgIHJpZ2h0OiAxMTAsCiAgICAgICAgICBzZWxlY3RlZE1vZGU6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICBzZXJpZXM6IFt7CiAgICAgICAgICBuYW1lOiAn6Z2i56evJywKICAgICAgICAgIHR5cGU6ICdwaWUnLAogICAgICAgICAgcmFkaXVzOiBbJzU1JScsICc2NyUnXSwKICAgICAgICAgIGNlbnRlcjogWyczNSUnLCAnNDguNCUnXSwKICAgICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiBmYWxzZSwKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLAogICAgICAgICAgICBib3JkZXJXaWR0aDogMgogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlLAogICAgICAgICAgICBwb3NpdGlvbjogJ2NlbnRlcicKICAgICAgICAgIH0sCiAgICAgICAgICBlbXBoYXNpczogewogICAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgICAgZm9udFNpemU6IDMwLAogICAgICAgICAgICAgIGZvcm1hdHRlcjogZnVuY3Rpb24gZm9ybWF0dGVyKHBhcmFtcykgewogICAgICAgICAgICAgICAgcmV0dXJuIFsne251bXwnICsgcGFyYW1zLnZhbHVlICsgJ30nICsgJ3t1bml0fOS4qn0nLCAne2xhYmVsfCcgKyBwYXJhbXMubmFtZSArICd9J10uam9pbignXG4nKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJpY2g6IHsKICAgICAgICAgICAgICAgIG51bTogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMzAsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB1bml0OiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMTExJywKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFswLCA1XQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAyMCwKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzQ0NCcKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBkYXRhOiBlY2hhcnRzRGF0YQogICAgICAgIH0sCiAgICAgICAgLy8g5aSW5ZyI6IOM5pmvCiAgICAgICAgewogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTAlJywgJzUwJSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLAogICAgICAgICAgY2xvY2tXaXNlOiBmYWxzZSwKICAgICAgICAgIGN1cnNvcjogJ2RlZmF1bHQnLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLAogICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2VhZWFlYScKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGRhdGE6IFsxMDBdCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2dhdWdlJywKICAgICAgICAgIHJhZGl1czogJzk4JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAyMDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMTUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI2VhZWFlYScsCiAgICAgICAgICAgICAgd2lkdGg6IDEKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdnYXVnZScsCiAgICAgICAgICByYWRpdXM6ICc4My41JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAxNDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjZWFlYWVhJywKICAgICAgICAgICAgICB3aWR0aDogMgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfTsKICAgICAgY2hhcnREb20uc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2hhcnREb20ucmVzaXplKCk7CiAgICAgIH0pOwogICAgICBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBjaGFydERvbSk7CiAgICAgIC8vIOmlvOWbvuiHquWKqOi9ruaSrQogICAgICBmdW5jdGlvbiBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBteUNoYXJ0KSB7CiAgICAgICAgaWYgKCFteUNoYXJ0KSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBjdXJyZW50SW5kZXggPSAwOyAvLyDlvZPliY3pq5jkuq7lm77lvaLlnKjppbzlm77mlbDmja7kuK3nmoTkuIvmoIcKICAgICAgICBoaWdobGlnaHRQaWUoKTsKICAgICAgICAvLyDlj5bmtojmiYDmnInpq5jkuq7lubbpq5jkuq7lvZPliY3lm77lvaIKICAgICAgICBmdW5jdGlvbiBoaWdobGlnaHRQaWUoKSB7CiAgICAgICAgICAvLyDpgY3ljobppbzlm77mlbDmja7vvIzlj5bmtojmiYDmnInlm77lvaLnmoTpq5jkuq7mlYjmnpwKICAgICAgICAgIGZvciAodmFyIGlkeCBpbiBvcHRpb24uc2VyaWVzWzBdLmRhdGEpIHsKICAgICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgICAgdHlwZTogJ2Rvd25wbGF5JywKICAgICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgICBkYXRhSW5kZXg6IGlkeAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIC8vIOmrmOS6ruW9k+WJjeWbvuW9ogogICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgIHR5cGU6ICdoaWdobGlnaHQnLAogICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgZGF0YUluZGV4OiBjdXJyZW50SW5kZXgKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICAvLyAvLyDnlKjmiLfpvKDmoIfmgqzmta7liLDmn5DkuIDlm77lvaLml7bvvIzlgZzmraLoh6rliqjliIfmjaLlubbpq5jkuq7pvKDmoIfmgqzmta7nmoTlm77lvaIKICAgICAgICBteUNoYXJ0Lm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbiAocGFyYW1zKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygxKTsKICAgICAgICAgIGlmIChwYXJhbXMuY29tcG9uZW50VHlwZSA9PSAnZ3JhcGhpYycpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgY3VycmVudEluZGV4ID0gcGFyYW1zLmRhdGFJbmRleDsKICAgICAgICAgIGhpZ2hsaWdodFBpZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgaW5pdFR5cGVDaGF0OiBmdW5jdGlvbiBpbml0VHlwZUNoYXQoKSB7CiAgICAgIHZhciBlY2hhcnRzRGF0YSA9IFt7CiAgICAgICAgbmFtZTogJ+W3suebmOa0uycsCiAgICAgICAgdmFsdWU6IDUsCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBjb2xvcjogJyNGRkFFNUUnCiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+W+heebmOa0uycsCiAgICAgICAgdmFsdWU6IDE1LAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgY29sb3I6ICcjNTVFREIwICcKICAgICAgICB9CiAgICAgIH1dOwogICAgICAvLyB0aGlzLnR5cGVEYXRhLmZvckVhY2goKGUsIGluZGV4KSA9PiB7CiAgICAgIC8vICAgZWNoYXJ0c0RhdGEucHVzaCh7CiAgICAgIC8vICAgICBuYW1lOiB0aGlzLmdldERpY3ROYW1lKCd6Y2x4JywgZS5hc3NldFR5cGUpLAogICAgICAvLyAgICAgdmFsdWU6IGUuY291bnQsCiAgICAgIC8vICAgICBpdGVtU3R5bGU6IHsKICAgICAgLy8gICAgICAgY29sb3I6IHRoaXMuY29sb3JMaXN0W2luZGV4XSwKICAgICAgLy8gICAgIH0sCiAgICAgIC8vICAgfSkKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0eXBlLWNoYXJ0JykpOwogICAgICB2YXIgb3B0aW9uID0gewogICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgIHRyaWdnZXI6ICdpdGVtJwogICAgICAgIH0sCiAgICAgICAgbGVnZW5kOiB7CiAgICAgICAgICBvcmllbnQ6ICd2ZXJ0aWNhbCcsCiAgICAgICAgICB0b3A6ICdtaWRkbGUnLAogICAgICAgICAgcmlnaHQ6IDExMCwKICAgICAgICAgIHNlbGVjdGVkTW9kZTogZmFsc2UKICAgICAgICB9LAogICAgICAgIHNlcmllczogW3sKICAgICAgICAgIG5hbWU6ICfpnaLnp68nLAogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTUlJywgJzY3JSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsCiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyCiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UsCiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJwogICAgICAgICAgfSwKICAgICAgICAgIGVtcGhhc2lzOiB7CiAgICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgICBmb250U2l6ZTogMzAsCiAgICAgICAgICAgICAgZm9ybWF0dGVyOiBmdW5jdGlvbiBmb3JtYXR0ZXIocGFyYW1zKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhwYXJhbXMpOwogICAgICAgICAgICAgICAgcmV0dXJuIFsne251bXwnICsgcGFyYW1zLnBlcmNlbnQgKyAnfScgKyAne3VuaXR8JX0nLCAne2xhYmVsfCcgKyBwYXJhbXMubmFtZSArICd9J10uam9pbignXG4nKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJpY2g6IHsKICAgICAgICAgICAgICAgIG51bTogewogICAgICAgICAgICAgICAgICBmb250U2l6ZTogMzAsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsCiAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDMwLAogICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB1bml0OiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNCwKICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMTExJywKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFswLCA1XQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAyMCwKICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMzAsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzQ0NCcKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBkYXRhOiBlY2hhcnRzRGF0YQogICAgICAgIH0sCiAgICAgICAgLy8g5aSW5ZyI6IOM5pmvCiAgICAgICAgewogICAgICAgICAgdHlwZTogJ3BpZScsCiAgICAgICAgICByYWRpdXM6IFsnNTAlJywgJzUwJSddLAogICAgICAgICAgY2VudGVyOiBbJzM1JScsICc0OC40JSddLAogICAgICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLAogICAgICAgICAgY2xvY2tXaXNlOiBmYWxzZSwKICAgICAgICAgIGN1cnNvcjogJ2RlZmF1bHQnLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLAogICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2VhZWFlYScKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGRhdGE6IFsxMDBdCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2dhdWdlJywKICAgICAgICAgIHJhZGl1czogJzk4JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAyMDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMTUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI2VhZWFlYScsCiAgICAgICAgICAgICAgd2lkdGg6IDEKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdnYXVnZScsCiAgICAgICAgICByYWRpdXM6ICc4My41JScsCiAgICAgICAgICBjZW50ZXI6IFsnMzUlJywgJzQ4LjQlJ10sCiAgICAgICAgICBjbG9ja3dpc2U6IHRydWUsCiAgICAgICAgICBzdGFydEFuZ2xlOiAnMTAwJywKICAgICAgICAgIGVuZEFuZ2xlOiAnLTI2OS45OTk5JywKICAgICAgICAgIHNwbGl0TnVtYmVyOiAxNDAsCiAgICAgICAgICAvL+e6v+eahOadoeaVsAogICAgICAgICAgcG9pbnRlcjogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgc3BsaXRMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxlbmd0aDogMSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjZWFlYWVhJywKICAgICAgICAgICAgICB3aWR0aDogMgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfTsKICAgICAgY2hhcnREb20uc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2hhcnREb20ucmVzaXplKCk7CiAgICAgIH0pOwogICAgICBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBjaGFydERvbSk7CiAgICAgIC8vIOmlvOWbvuiHquWKqOi9ruaSrQogICAgICBmdW5jdGlvbiBoYW5kbGVDaGFydExvb3Aob3B0aW9uLCBteUNoYXJ0KSB7CiAgICAgICAgaWYgKCFteUNoYXJ0KSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBjdXJyZW50SW5kZXggPSAwOyAvLyDlvZPliY3pq5jkuq7lm77lvaLlnKjppbzlm77mlbDmja7kuK3nmoTkuIvmoIcKICAgICAgICBoaWdobGlnaHRQaWUoKTsKICAgICAgICAvLyDlj5bmtojmiYDmnInpq5jkuq7lubbpq5jkuq7lvZPliY3lm77lvaIKICAgICAgICBmdW5jdGlvbiBoaWdobGlnaHRQaWUoKSB7CiAgICAgICAgICAvLyDpgY3ljobppbzlm77mlbDmja7vvIzlj5bmtojmiYDmnInlm77lvaLnmoTpq5jkuq7mlYjmnpwKICAgICAgICAgIGZvciAodmFyIGlkeCBpbiBvcHRpb24uc2VyaWVzWzBdLmRhdGEpIHsKICAgICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgICAgdHlwZTogJ2Rvd25wbGF5JywKICAgICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgICBkYXRhSW5kZXg6IGlkeAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIC8vIOmrmOS6ruW9k+WJjeWbvuW9ogogICAgICAgICAgbXlDaGFydC5kaXNwYXRjaEFjdGlvbih7CiAgICAgICAgICAgIHR5cGU6ICdoaWdobGlnaHQnLAogICAgICAgICAgICBzZXJpZXNJbmRleDogMCwKICAgICAgICAgICAgZGF0YUluZGV4OiBjdXJyZW50SW5kZXgKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICAvLyAvLyDnlKjmiLfpvKDmoIfmgqzmta7liLDmn5DkuIDlm77lvaLml7bvvIzlgZzmraLoh6rliqjliIfmjaLlubbpq5jkuq7pvKDmoIfmgqzmta7nmoTlm77lvaIKICAgICAgICBteUNoYXJ0Lm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbiAocGFyYW1zKSB7CiAgICAgICAgICBpZiAocGFyYW1zLmNvbXBvbmVudFR5cGUgPT0gJ2dyYXBoaWMnKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHBhcmFtcy5kYXRhSW5kZXg7CiAgICAgICAgICBoaWdobGlnaHRQaWUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGluaXRDaGF0OiBmdW5jdGlvbiBpbml0Q2hhdCgpIHsKICAgICAgdmFyIHhEYXRhID0gWycx5pyIJywgJzLmnIgnLCAnM+aciCcsICc05pyIJywgJzXmnIgnLCAnNuaciCcsICc35pyIJywgJzjmnIgnLCAnOeaciCcsICcxMOaciCcsICcxMeaciCcsICcxMuaciCddOwogICAgICB2YXIgYm9va0RhdGEgPSBbMjIsIDQ0LCAyMiwgMTEsIDIwLCA0NCwgMjMsIDU2LCA3NywgNDQsIDQyLCAzMV07CiAgICAgIHZhciBjaGFydERvbSA9IGVjaGFydHMuaW5pdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW50ZXJlc3QtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2F4aXMnIC8vIOiuvue9ruinpuWPkeexu+Wei+S4uuWdkOagh+i9tOi9tOe6v+inpuWPkQogICAgICAgIH0sCiAgICAgICAgZ3JpZDogewogICAgICAgICAgdG9wOiAnMjElJywKICAgICAgICAgIGJvdHRvbTogJzUlJywKICAgICAgICAgIHJpZ2h0OiAnNSUnCiAgICAgICAgfSwKICAgICAgICB4QXhpczogewogICAgICAgICAgdHlwZTogJ2NhdGVnb3J5JywKICAgICAgICAgIGRhdGE6IHhEYXRhLAogICAgICAgICAgYm91bmRhcnlHYXA6IGZhbHNlLAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGluZTogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBsaW5lU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogJyNBMUE5QjInIC8vIOa1heeBsOiJsgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB5QXhpczogewogICAgICAgICAgdHlwZTogJ3ZhbHVlJywKICAgICAgICAgIG5hbWU6ICflnJ/lnLDovazorqnpnaLnp68gKOS6qSknLAogICAgICAgICAgYXhpc0xpbmU6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgbGluZVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICcjQTFBOUIyJyAvLyDmtYXngbDoibIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHNwbGl0TGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgc2VyaWVzOiBbX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KHsKICAgICAgICAgIHR5cGU6ICdsaW5lJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhCiAgICAgICAgfSwgInR5cGUiLCAnbGluZScpLCAic21vb3RoIiwgdHJ1ZSksICJzaG93U3ltYm9sIiwgZmFsc2UpLCAibGluZVN0eWxlIiwgewogICAgICAgICAgY29sb3I6ICcjMTk4Q0ZGJyAvLyDorr7nva7nur/mnaHnmoTpopzoibLkuLrnuqLoibIKICAgICAgICB9KV0KICAgICAgfTsKICAgICAgY2hhcnREb20uc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2hhcnREb20ucmVzaXplKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGluaXRTb3VyY2VDaGF0OiBmdW5jdGlvbiBpbml0U291cmNlQ2hhdCgpIHsKICAgICAgdmFyIHhEYXRhID0gWyfmrqHlubYnLCAn5Z+O6ZWH5p2R6YGT6LevJywgJ+W3peS4micsICflhazot68nLCAn5YWs55So6K6+5pa9JywgJ+WFrOWbreS4jue7v+WcsCcsICfkuqTpgJrmnI3liqHlnLrnq5knLCAn5pWZ6IKyJywgJ+mbtuWUruWVhuS4micsICfllYbliqHph5Hono0nLCAn5YW25LuW5ZWG5pyNJywgJ+ekvuS8muemj+WIqSddOwogICAgICB2YXIgYm9va0RhdGEgPSBbMjMsIDMzLCA0MSwgMTUsIDMyLCA0NSwgMzIsIDEzLCA1NCwgNzZdOwogICAgICAvLyB0aGlzLnN0YXR1c0RhdGEuZm9yRWFjaChlID0+IHsKICAgICAgLy8gICB4RGF0YS5wdXNoKHRoaXMuZ2V0RGljdE5hbWUoJ3pjenQnLCBlLmFzc2V0U3RhdHVzKSkKICAgICAgLy8gICBib29rRGF0YS5wdXNoKGUuYm9va1ZhbHVlKQogICAgICAvLyAgIHN0cnVjdHVyZURhdGEucHVzaChlLnN0cnVjdHVyZV9hcmVhXykKICAgICAgLy8gfSkKICAgICAgdmFyIGNoYXJ0RG9tID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2UtY2hhcnQnKSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbHRpcDogewogICAgICAgICAgdHJpZ2dlcjogJ2F4aXMnLAogICAgICAgICAgYXhpc1BvaW50ZXI6IHsKICAgICAgICAgICAgLy8g5Z2Q5qCH6L205oyH56S65Zmo77yM5Z2Q5qCH6L206Kem5Y+R5pyJ5pWICiAgICAgICAgICAgIHR5cGU6ICdzaGFkb3cnIC8vIOm7mOiupOS4uuebtOe6v++8jOWPr+mAieS4uu+8midsaW5lJyB8ICdzaGFkb3cnCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBncmlkOiB7CiAgICAgICAgICBsZWZ0OiAnMyUnLAogICAgICAgICAgcmlnaHQ6ICc0JScsCiAgICAgICAgICBib3R0b206ICczJScsCiAgICAgICAgICBjb250YWluTGFiZWw6IHRydWUKICAgICAgICB9LAogICAgICAgIHhBeGlzOiBbewogICAgICAgICAgdHlwZTogJ2NhdGVnb3J5JywKICAgICAgICAgIGRhdGE6IHhEYXRhLAogICAgICAgICAgYXhpc1RpY2s6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgaW50ZXJ2YWw6IDAsCiAgICAgICAgICAgIC8v5Z2Q5qCH5Yi75bqm5LmL6Ze055qE5pi+56S66Ze06ZqU77yM6buY6K6k5bCx5Y+v5Lul5LqG77yI6buY6K6k5piv5LiN6YeN5Y+g77yJCiAgICAgICAgICAgIHJvdGF0ZTogMzggLy/osIPmlbTmlbDlgLzmlLnlj5jlgL7mlpznmoTluYXluqbvvIjojIPlm7QtOTDliLA5MO+8iQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI0ExQTlCMicgLy8g5rWF54Gw6ImyCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9XSwKICAgICAgICB5QXhpczogW3sKICAgICAgICAgIHR5cGU6ICd2YWx1ZScsCiAgICAgICAgICBuYW1lOiAn5Y2V5L2N77ya5LqpJywKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBmb3JtYXR0ZXI6ICd7dmFsdWV9JwogICAgICAgICAgfSwKICAgICAgICAgIHNwbGl0TGluZTogewogICAgICAgICAgICBzaG93OiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIGF4aXNMaW5lOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGxpbmVTdHlsZTogewogICAgICAgICAgICAgIGNvbG9yOiAnI0ExQTlCMicgLy8g5rWF54Gw6ImyCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9XSwKICAgICAgICBzZXJpZXM6IFt7CiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIGRhdGE6IGJvb2tEYXRhLAogICAgICAgICAgYmFyV2lkdGg6ICcxNScsCiAgICAgICAgICB5QXhpc0luZGV4OiAwLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiB7CiAgICAgICAgICAgICAgdHlwZTogJ2xpbmVhcicsCiAgICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgIHgyOiAwLAogICAgICAgICAgICAgIHkyOiAxLAogICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICAgICBjb2xvcjogJyM1NUVEQjAnIC8vIOa4kOWPmOi1t+Wni+minOiJsu+8iOe7v+iJsu+8iQogICAgICAgICAgICAgIH1dCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzMsIDMsIDAsIDBdIC8vIOiuvue9ruWchuinkuWkp+WwjwogICAgICAgICAgfQogICAgICAgIH1dCiAgICAgIH07CiAgICAgIGNoYXJ0RG9tLnNldE9wdGlvbihvcHRpb24pOwogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgewogICAgICAgIGNoYXJ0RG9tLnJlc2l6ZSgpOwogICAgICB9KTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7fQp9Ow=="},null]}