atr-components 2.1.4 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -299,6 +299,9 @@ export declare interface ImageOpts {
299
299
  nzFileType?: string;
300
300
  keepName?: boolean;
301
301
  btnName?: string;
302
+ beforeUpload?: any;
303
+ customReq?: any;
304
+ splitStr?: string;
302
305
  }
303
306
  export declare interface equipTestData {
304
307
  code: string;
@@ -45,4 +45,4 @@ export var UserAction;
45
45
  UserAction[UserAction["QUERY"] = 3] = "QUERY";
46
46
  UserAction[UserAction["SUPPERADD"] = 4] = "SUPPERADD";
47
47
  })(UserAction || (UserAction = {}));
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLEVBQUU7SUFDWDs7T0FFRztJQUNILGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxxQkFBcUI7SUFDakMsV0FBVyxFQUFFLEtBQUs7SUFDbEIsUUFBUSxFQUFFLEVBQUU7SUFDWixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLFdBQVc7SUFDcEI7O09BRUc7SUFDSCxZQUFZLEVBQUUsVUFBVTtJQUN4QixVQUFVLEVBQUUsRUFBRTtJQUNkLG1CQUFtQjtJQUNuQixlQUFlLEVBQUUsS0FBSztJQUN0QixlQUFlLEVBQUUsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDekMsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1FBQzFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNsRSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSw2REFBNkQ7UUFDN0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sV0FBVzthQUNmLFlBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTthQUM1SSxVQUFLLEdBQUcscTlIQUFxOUgsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDeCtILGVBQVUsR0FBUSxFQUFFLENBQUM7O0FBbUM5QixNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0oseUNBQUcsQ0FBQTtJQUNILDZDQUFLLENBQUE7SUFDTCxxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSGVhZGVyc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TG9jYWxTdG9yYWdlVXRpbH0gZnJvbSBcIi4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsXCI7XHJcbmltcG9ydCB7VGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICAvKipcclxuICAgKiBvc3PlnLDlnYDliY3nvIBcclxuICAgKi9cclxuICBPU1NfVVJMOiAnJyxcclxuICAvKipcclxuICAgKiDpnZnmgIHlnLDlnYBcclxuICAgKi9cclxuICBTVEFUSUNfT1NTX1VSTDogJycsXHJcbiAgT1NTX1BPTElDWTogJ3RoaXJkL29zcy9nZXRQb2xpY3knLFxyXG4gIFNUT1JBR0VfUFJFOiAnRFFfJyxcclxuICBtZW51X3VybDogJycsXHJcbiAgT1NTX0dFVEhPU1Q6ICcnLFxyXG4gIG5lZWRPc3M6IHRydWUsXHJcbiAgZGljX3VybDogJ21nci9jb21ibycsXHJcbiAgLyoqXHJcbiAgICog55m75b2V6Lev55SxXHJcbiAgICovXHJcbiAgbG9naW5fcm91dGVyOiAnL3AvbG9naW4nLFxyXG4gIFNFUlZFUl9VUkw6ICcnLFxyXG4gIC8vaHR0cCBoZWFk5piv5ZCm6buY6K6kaGVhZFxyXG4gIG5lZWROb3JtYWxIZWFkZTogZmFsc2UsXHJcbiAgZ2V0Tm9ybWFsSGVhZGVyOiAoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XHJcbiAgICByZXR1cm4gX2hlYWRlcnNcclxuICB9LFxyXG4gIGdldERlZmF1bHRIZWFkZXI6IChfaGVhZGVyczogSHR0cEhlYWRlcnMpID0+IHtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwieC1oZWFkZXItYXRyXCIsIFwibWFuYWdlXCIpO1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLCBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJUb2tlbigpKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidXNlcklkXCIsIExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlcklkKCkpO1xyXG4gICAgLy8gX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJvcmdDb2RlXCIsVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICByZXR1cm4gX2hlYWRlcnM7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIGNvbW1vbkRhdGFzIHtcclxuICBzdGF0aWMgbGV0dGVycyA9IFtcIkFcIiwgXCJCXCIsIFwiQ1wiLCBcIkRcIiwgXCJFXCIsIFwiRlwiLCBcIkdcIiwgXCJIXCIsIFwiSVwiLCBcIkpcIiwgXCJLXCIsIFwiTFwiLCBcIk1cIiwgXCJOXCIsIFwiT1wiLCBcIlBcIiwgXCJRXCIsIFwiUlwiLCBcIlNcIiwgXCJUXCIsIFwiVVwiLCBcIlZcIiwgXCJXXCIsIFwiWFwiLCBcIllcIiwgXCJaXCJdXHJcbiAgc3RhdGljIGljb25zID0gJ3N0ZXAtYmFja3dhcmQsc3RlcC1mb3J3YXJkLGZhc3QtYmFja3dhcmQsZmFzdC1mb3J3YXJkLHNocmluayxhcnJvd3MtYWx0LGRvd24sdXAsbGVmdCxyaWdodCxjYXJldC11cCxjYXJldC1kb3duLGNhcmV0LWxlZnQsY2FyZXQtcmlnaHQsdXAtY2lyY2xlLGRvd24tY2lyY2xlLGxlZnQtY2lyY2xlLHJpZ2h0LWNpcmNsZSxkb3VibGUtcmlnaHQsZG91YmxlLWxlZnQsdmVydGljYWwtbGVmdCx2ZXJ0aWNhbC1yaWdodCx2ZXJ0aWNhbC1hbGlnbi10b3AsdmVydGljYWwtYWxpZ24tbWlkZGxlLHZlcnRpY2FsLWFsaWduLWJvdHRvbSxmb3J3YXJkLGJhY2t3YXJkLHJvbGxiYWNrLGVudGVyLHJldHdlZXQsc3dhcCxzd2FwLWxlZnQsc3dhcC1yaWdodCxhcnJvdy11cCxhcnJvdy1kb3duLGFycm93LWxlZnQsYXJyb3ctcmlnaHQscGxheS1jaXJjbGUsdXAtc3F1YXJlLGRvd24tc3F1YXJlLGxlZnQtc3F1YXJlLHJpZ2h0LXNxdWFyZSxsb2dpbixsb2dvdXQsbWVudS1mb2xkLG1lbnUtdW5mb2xkLGJvcmRlci1ib3R0b20sYm9yZGVyLWhvcml6b250YWwsYm9yZGVyLWlubmVyLGJvcmRlci1vdXRlcixib3JkZXItbGVmdCxib3JkZXItcmlnaHQsYm9yZGVyLXRvcCxib3JkZXItdmVydGljbGUscGljLWNlbnRlcixwaWMtbGVmdCxwaWMtcmlnaHQscmFkaXVzLWJvdHRvbWxlZnQscmFkaXVzLWJvdHRvbXJpZ2h0LHJhZGl1cy11cGxlZnQscmFkaXVzLXVwcmlnaHQsZnVsbHNjcmVlbixmdWxsc2NyZWVuLWV4aXQscXVlc3Rpb24scXVlc3Rpb24tY2lyY2xlLHBsdXMscGx1cy1jaXJjbGUscGF1c2UscGF1c2UtY2lyY2xlLG1pbnVzLG1pbnVzLWNpcmNsZSxwbHVzLXNxdWFyZSxtaW51cy1zcXVhcmUsaW5mbyxpbmZvLWNpcmNsZSxleGNsYW1hdGlvbixleGNsYW1hdGlvbi1jaXJjbGUsY2xvc2UsY2xvc2UtY2lyY2xlLGNsb3NlLXNxdWFyZSxjaGVjayxjaGVjay1jaXJjbGUsY2hlY2stc3F1YXJlLGNsb2NrLWNpcmNsZSx3YXJuaW5nLGlzc3Vlcy1jbG9zZSxzdG9wLGVkaXQsZm9ybSxjb3B5LHNjaXNzb3IsZGVsZXRlLHNuaXBwZXRzLGRpZmYsaGlnaGxpZ2h0LGFsaWduLWNlbnRlcixhbGlnbi1sZWZ0LGFsaWduLXJpZ2h0LGJnLWNvbG9ycyxib2xkLGl0YWxpYyx1bmRlcmxpbmUsc3RyaWtldGhyb3VnaCxyZWRvLHVuZG8sem9vbS1pbix6b29tLW91dCxmb250LWNvbG9ycyxmb250LXNpemUsbGluZS1oZWlnaHQsZGFzaCxzbWFsbC1kYXNoLHNvcnQtYXNjZW5kaW5nLHNvcnQtZGVzY2VuZGluZyxkcmFnLG9yZGVyZWQtbGlzdCx1bm9yZGVyZWQtbGlzdCxyYWRpdXMtc2V0dGluZyxjb2x1bW4td2lkdGgsY29sdW1uLWhlaWdodCxhcmVhLWNoYXJ0LHBpZS1jaGFydCxiYXItY2hhcnQsZG90LWNoYXJ0LGxpbmUtY2hhcnQscmFkYXItY2hhcnQsaGVhdC1tYXAsZmFsbCxyaXNlLHN0b2NrLGJveC1wbG90LGZ1bmQsc2xpZGVycyxhbmRyb2lkLGFwcGxlLHdpbmRvd3MsaWUsY2hyb21lLGdpdGh1YixhbGl3YW5nd2FuZyxkaW5nZGluZyx3ZWliby1zcXVhcmUsd2VpYm8tY2lyY2xlLHRhb2Jhby1jaXJjbGUsaHRtbDUsd2VpYm8sdHdpdHRlcix3ZWNoYXQseW91dHViZSxhbGlwYXktY2lyY2xlLHRhb2Jhbyxza3lwZSxxcSxtZWRpdW0td29ya21hcmssZ2l0bGFiLG1lZGl1bSxsaW5rZWRpbixnb29nbGUtcGx1cyxkcm9wYm94LGZhY2Vib29rLGNvZGVwZW4sY29kZS1zYW5kYm94LGFtYXpvbixnb29nbGUsY29kZXBlbi1jaXJjbGUsYWxpcGF5LGFudC1kZXNpZ24sYW50LWNsb3VkLGFsaXl1bix6aGlodSxzbGFjayxzbGFjay1zcXVhcmUsYmVoYW5jZSxiZWhhbmNlLXNxdWFyZSxkcmliYmJsZSxkcmliYmJsZS1zcXVhcmUsaW5zdGFncmFtLHl1cXVlLGFsaWJhYmEseWFob28scmVkZGl0LHNrZXRjaCxhbGVydCxhaW0sYWNjb3VudC1ib29rLGFwYXJ0bWVudCxhcGksYXBwc3RvcmUsYXVkaW8tbXV0ZWQsYXVkaXQsYmFuayxiYXJjb2RlLGJhcnMsYmxvY2ssYm9vayxiZWxsLGFwcHN0b3JlLWFkZCxhdWRpbyxib3JkZXIsYm9yZGVybGVzcy10YWJsZSxidWcsYnJhbmNoZXMsY2FtZXJhLGNhbGN1bGF0b3IsY2FsZW5kYXIsYnVpbGQsY2Fycnktb3V0LGJ1bGIsY2FyLGNsZWFyLGNpLGNsb3VkLWRvd25sb2FkLGNsb3VkLGNsb3VkLXN5bmMsY2xvdWQtc2VydmVyLGNsb3VkLXVwbG9hZCxjb2RlLGNvZmZlZSxjb21wcmVzcyxjb21wYXNzLGNvbW1lbnQsY2ktY2lyY2xlLGNvbnRhaW5lcixjb250cm9sLGNvcHlyaWdodCxjcmVkaXQtY2FyZCxjbHVzdGVyLGN1c3RvbWVyLXNlcnZpY2UsY29udGFjdHMsY29uc29sZS1zcWwsZGFzaGJvYXJkLGRhdGFiYXNlLGNvcHlyaWdodC1jaXJjbGUsZGVsZXRlLWNvbHVtbixkZXNrdG9wLGRlcGxveW1lbnQtdW5pdCxkZWxpdmVyZWQtcHJvY2VkdXJlLGRpc2Nvbm5lY3QsZGluZ3RhbGssZG9sbGFyLWNpcmNsZSxkaXNsaWtlLGRlbGV0ZS1yb3csZG9sbGFyLGNyb3duLGRvd25sb2FkLGVsbGlwc2lzLGVudmlyb25tZW50LGV1cm8tY2lyY2xlLGV4Y2VwdGlvbixleHBhbmQtYWx0LGV1cm8sZXhwZXJpbWVudCxleHBvcnQsZXhwYW5kLGV5ZS1pbnZpc2libGUsZXllLGZpbGUtYWRkLGZpZWxkLXN0cmluZyxmaWxlLWV4Y2xhbWF0aW9uLGZpbGUtZG9uZSxmaWVsZC10aW1lLGZpbGUtZXhjZWwsZmllbGQtYmluYXJ5LGZpbGUtZ2lmLGZpbGUtaW1hZ2UsZmlsZSxmaWxlLW1hcmtkb3duLGZpbGUtcHB0LGZpbGUtcGRmLGZpZWxkLW51bWJlcixmaWxlLXNlYXJjaCxmaWxlLXN5bmMsZmlsZS1qcGcsZmlsZS10ZXh0LGZpbHRlcixmaWxlLXppcCxmbGFnLGZvbGRlci1hZGQsZmlsZS11bmtub3duLGZvbGRlci1vcGVuLGZpcmUsZmlsZS1wcm90ZWN0LGZvbGRlci12aWV3LGZvbGRlcixmb3JrLGZvcm1hdC1wYWludGVyLGZyb3duLGZ1bmQtcHJvamVjdGlvbi1zY3JlZW4sZ2lmdCxnYXRld2F5LGZ1bmQtdmlldyxnaWYsZnVubmVsLXBsb3QsZ29sZCxnbG9iYWwsZ3JvdXAsaGRkLGZ1bmN0aW9uLGhpc3RvcnksZmlsZS13b3JkLGhvbWUsaWRjYXJkLGhvdXJnbGFzcyxoZWFydCxpbnNlcnQtcm93LWJlbG93LGltcG9ydCxpbnNlcnQtcm93LWxlZnQsaW5zZXJ0LXJvdy1hYm92ZSxpbnNlcnQtcm93LXJpZ2h0LGtleSxpbmJveCxpbnN1cmFuY2UsbGFwdG9wLGxpa2UsbGluZSxsaW5rLGxvYWRpbmctMy1xdWFydGVycyxsb2FkaW5nLGxvY2ssbWFuLG1haWwsbWFjLWNvbW1hbmQsbWVkaWNpbmUtYm94LGxheW91dCxtZWgsaW50ZXJhY3Rpb24sbWVzc2FnZSxtZW51LG1lcmdlLWNlbGxzLG1vYmlsZSxtb25leS1jb2xsZWN0LG5vZGUtaW5kZXgsbW9uaXRvcixub2RlLWV4cGFuZCxtb3JlLG51bWJlcixub3RpZmljYXRpb24sb25lLXRvLW9uZSxwZXJjZW50YWdlLHBob25lLHBhcGVyLWNsaXAscGFydGl0aW9uLHBpY3R1cmUsbm9kZS1jb2xsYXBzZSxwbGF5LXNxdWFyZSxwYXktY2lyY2xlLHBvdW5kLHByb2ZpbGUscHJvamVjdCxwcm9wZXJ0eS1zYWZldHkscG93ZXJvZmYscHVzaHBpbixxcmNvZGUscHJpbnRlcixwb3VuZC1jaXJjbGUscHVsbC1yZXF1ZXN0LHJlc3QscmVhZCxyZWxvYWQscmVjb25jaWxpYXRpb24scm9ib3Qscm9ja2V0LHJvdGF0ZS1yaWdodCxzYWZldHktY2VydGlmaWNhdGUscmVkLWVudmVsb3BlLHJvdGF0ZS1sZWZ0LHNhdmUsc2FmZXR5LHNlYXJjaCxzZWN1cml0eS1zY2FuLHNjYW4sc2VuZCxzZXR0aW5nLHNlbGVjdCxzaGFrZSxzaG9wcGluZy1jYXJ0LHNpc3Rlcm5vZGUsc2hvcCxzaG9wcGluZyxzaGFyZS1hbHQsc2NoZWR1bGUsc2tpbixzbWlsZSxzb2x1dGlvbixzb3VuZCxzcGxpdC1jZWxscyxzdGFyLHN1Ym5vZGUsdGFncyx0YWJsZXQsdGFnLHRhYmxlLHN3aXRjaGVyLHN5bmMsdGVhbSx0b29sLHRyYWRlbWFyay1jaXJjbGUsdGh1bmRlcmJvbHQsdG8tdG9wLHRyYW5zbGF0aW9uLHRyYWRlbWFyayx0cm9waHksdW5ncm91cCx1bmxvY2ssdXBsb2FkLHRyYW5zYWN0aW9uLHVzZXItZGVsZXRlLHVzYix1c2VyLWFkZCx1c2VyZ3JvdXAtZGVsZXRlLHZpZGVvLWNhbWVyYS1hZGQsdmVyaWZpZWQsdXNlcmdyb3VwLWFkZCx1c2VyLHVzZXItc3dpdGNoLHZpZGVvLWNhbWVyYSx3aWZpLHdhbGxldCx3aGF0cy1hcHAsd29tYW4sYXBwc3RvcmUnLnNwbGl0KCcsJylcclxuICBzdGF0aWMgYXdhaXRfRGF0YTogYW55ID0ge307XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBqc29uIGV4dGVuZHMgT2JqZWN0IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZCB7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICBzaG93Q291bnQ6IG51bWJlcjtcclxuICB0b3RhbFJlc3VsdDogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSZXNwb25zZURhdGFTdGFuZGFyZCB7XHJcbiAgc3RhdGU6IG51bWJlcjsgLy8g5Li6MeaJjeaYr+aIkOWKn1xyXG4gIGRhdGE6IGpzb24gfCBbe31dIHwgb2JqZWN0IHwgc3RyaW5nIHwgYW55OyAvL+ayoeacieWAvCBkYXRhOiAnJ1xyXG4gIG1lc3M6IHN0cmluZzsgLy/ov5Tlm57nmoTmtojmga9cclxuICBwYWdlPzogU2VydmVyUGFnaW5hdGlvblN0YW5kYXJkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSc2Vwb25zZVRyYW5zZm9ybUNlbGwge1xyXG4gIFtrZXk6IHN0cmluZ106IGpzb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzoge30sXHJcbiAgaXNKc29uRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzVXJsRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzQXV0b1Nob3dNZXNzYWdlPzogYm9vbGVhblxyXG4gIGlzV2l0aENyZWRlbnRpYWxzPzogYm9vbGVhblxyXG4gIGlzQ29tbW9uSHR0cEhlYWRlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlckFjdGlvbiB7XHJcbiAgQURELFxyXG4gIEVESVQsXHJcbiAgREVMLFxyXG4gIFFVRVJZLFxyXG4gIFNVUFBFUkFERFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzogYm9vbGVhbixcclxuICAgIHNob3c/OiBib29sZWFuLFxyXG4gIH0sXHJcbiAgeUF4aXM/OiBhbnksLy97ICAgIHNob3c6ZmFsc2UsICAgIHR5cGU6ICd2YWx1ZScsICAgIG1pbkludGVydmFsOiAxLH1bXVxyXG4gIHNlcmllcz86IHtcclxuICAgIG5hbWU/OiBzdHJpbmcsXHJcbiAgICBkYXRhPzogYW55W10sXHJcbiAgICBpdGVtU3R5bGU/OiBhbnksXHJcbiAgICBzdGFjaz86IGFueSxcclxuICAgIGVtcGhhc2lzPzogYW55LFxyXG4gICAgbGFiZWw/OiBhbnksXHJcbiAgICByYWRpdXM/OiBhbnlbXSxcclxuICAgIHNtb290aD86IGJvb2xlYW4sXHJcbiAgICBzZXJpZXNMYXlvdXRCeT86IHN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtT3B0IHtcclxuICB0eXBlOiAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICBsYXlvdXQ/OiBcImZ1bGxcIiB8ICcxbDJjJyB8ICcxbDFjJyxcclxuICBpdGVtczogQXRyRm9ybURldGFpbFtdLC8v6KGo5Y2V6aG555uuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtRGV0YWlsIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ2ltYWdlJyB8ICdzZWxlY3QnIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAndGVscGhvbmUnIHwgJ3Bhc3N3b3JkJyB8ICdjaGVja2JveCcgfCAnZGF5UmFuZ2UnXHJcbiAgICB8ICdlZGl0b3InIHwgJ3RleHRhcmVhJyB8ICdkYXRlVGltZScgfCAndGl0bGUnIHwgJ2RhdGVSYW5nZScgfCAnc2VsZWN0YycgfCAnc2VsZWN0SWNvbicgfCAndHJlZVNlbGVjdCcgfCAnc3dpdGNoJyB8ICdidXR0b25zJyB8ICdjb2xvcicsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNIaWRkZW4/OiBib29sZWFuLFxyXG4gIGFsbG93U2VsZWN0Tm9kZT86IGJvb2xlYW4sLy9jYXNjYWRlciDmmK/lkKblhYHorrjpgInmi6nniLboioLngrlcclxuICAvLyB2YWx1ZVByb3BlcnR5PzpzdHJpbmcsLy92YWx1ZVByb3BlcnR5IOWunumZheWAvFxyXG4gIC8vIHNob3dLZXk/OnN0cmluZywvL2Nhc2NhZGVyIOe8lui+keaIluiAheWIneWni+WMluWAvOaXtiDmoLnmja5zaG93S2V5KGxhYmVsIE9yIFZhbHVlKeadpeaJvuWFqGxhYmVs5ZKMdmFsdWVcclxuICBkZWZhdWx0VmFsdWU/OiBhbnksXHJcbiAgdmFsdWU/OiBhbnksLy/nvJbovpHkuIvljp/lp4vmlbDlgLxcclxuICBkaWN0Q29kZT86IHN0cmluZywvL3NlbGVjdCDmqKHlvI/kuIvphY3nva5cclxuICBzcGFuPzogbnVtYmVyLC8v5pi+56S65a695bqmXHJcbiAgdmFsaWRhdG9ycz86IEF0ckZvcm1WYWxpZFtdLC8v6aqM6K+B5p2h5Lu2XHJcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW4gfCBzdHJpbmcsLy/pmpDmgKfmnaHku7Yg5peg6ZyA5aGr5YaZLCBzdHJpbmfnsbvlnovmoLzlvI/lkIxvcGVyYXRvclxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIGltYWdlT3B0cz86IEltYWdlT3B0cyxcclxuICBlZGl0Q29udGVudD86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXIsLy9lZGl0b3LmnInmlYhcclxuICBkaXNhYmxlPzogYm9vbGVhbixcclxuICBsc3Bhbj86IG51bWJlcixcclxuICBjc3Bhbj86IG51bWJlcixcclxuICByb3dzPzogbnVtYmVyLC8vdGV4dGFyZWEg5pi+56S66KGM5pWwXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy/mmL7npLrmk43kvZznrKYg5qC85byPIOWmgjpzdGF0dXN8ZXF8MFxyXG4gIGJ1dHRvbj86IGZvcm1CdXR0b24sXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuLFxyXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmd8RnVuY3Rpb24sXHJcbiAgZGljdExpc3Q/OiBDdXNEaWN0W10sXHJcbiAgbnpNb2RlPzogJ211bHRpcGxlJyB8ICd0YWdzJyB8ICdkZWZhdWx0JyxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiwgaWdub3JlRGljdExpc3Q/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gIGZpcnN0VGVtcD86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgbWluTnVtYmVyPzogYW55LFxyXG4gIG1heE51bWJlcj86IGFueSxcclxuICBub3ROdWxsPzogYm9vbGVhblxyXG4gIG56U2hvd1RpbWU/OiBib29sZWFuIHwgeyBuekZvcm1hdDogc3RyaW5nIH0sXHJcbiAgYnV0dG9ucz86IGZvcm1CdXR0b25bXSxcclxuICBuekNoZWNrZWRDaGlsZHJlbj86IHN0cmluZyxcclxuICBuelVuQ2hlY2tlZENoaWxkcmVuPzogc3RyaW5nLFxyXG4gIG56UHJlY2lzaW9uPzogbnVtYmVyLFxyXG4gIG56U3RlcD86IG51bWJlcixcclxuXHJcbiAgLyoqXHJcbiAgICog5qCR5b2i5qCR5b2i5o6n5Lu25piv5ZCm5bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICovXHJcbiAgZXhwYW5kQWxsPzpib29sZWFuLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIGJ0blR5cGU/OiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy8vL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCdcclxuICAgIHwgJ2lubmVySHRtbCcgfCAnaW1hZ2U2NCcsLy/nsbvlnovvvJog5paH5a2X44CB6ZO+5o6l44CB5pON5L2cXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICB3aWR0aD86IHN0cmluZywvLzE1MHB4XHJcbiAgYWN0aW9ucz86IFRhYmxlQWN0aW9uW10sXHJcbiAgaXNSb3dTcGFuPzogYm9vbGVhbixcclxuICBpc1JpZ2h0PzogYm9vbGVhblxyXG4gIGlzTGVmdD86IGJvb2xlYW4sXHJcbiAgY29sb3I/OiBjb2xvck9wZXJhdG9yLC8v6aKc6ImyXHJcbiAgY29sb3JTaG93Pzogc3RyaW5nLFxyXG4gIGlubmVySHRtbEJhY2s/OiBGdW5jdGlvbixcclxuICBzdHlsZUNhbGxCYWNrPzogRnVuY3Rpb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXJ5SGVhZGVyIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgdHlwZTogJ2Nhc2NhZGVyJyB8ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ2RhdGVwaWNrZXInIHwgJ3NlbGVjdEN1cycgfCAnZGF0ZVJhbmdlJyB8ICdzZGF0ZScgfCAndHJlZVNlbGVjdCcgfCAnZGF5UmFuZ2UnLFxyXG4gIG56TW9kZT86ICdtdWx0aXBsZScgfCAndGFncycgfCAnZGVmYXVsdCcsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICBjb2RlPzogc3RyaW5nLFxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIHNwYW4/OiBudW1iZXIsXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsLy/lrZflhbjnvJbnoIFcclxuICBkaWN0TGlzdD86IEN1c0RpY3RbXSxcclxuICBkZWZhdWx0VmFsPzogYW55IC8vIOm7mOiupOWAvFxyXG4gIG1heFRhZ0NvdW50PzogbnVtYmVyLFxyXG4gIGxzcGFuPzogbnVtYmVyLFxyXG4gIGNzcGFuPzogbnVtYmVyLFxyXG4gIGRpc2FibGVDbGVhcj86IGJvb2xlYW4sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXVxyXG4gIC8qKlxyXG4gICAqIOagvOW8j1xyXG4gICAqIGNvbnZlcnQ6J2tleXxpZCx0aXRsZXxyZWFsTmFtZScodHJlZVNlbGVjdClcclxuICAgKiAgICB2YWx1ZXxpZCxsYWJlbHxuYW1lKHNlbGVjdEN1cylcclxuICAgKi9cclxuICBzZWxlY3RVcmw/OiB7IHVybDogc3RyaW5nLCBjb252ZXJ0OiBzdHJpbmcsIGlzTXVsdGlwbGU/OiBib29sZWFuIH0sLy9jb252ZXJ0OiBuZXdLZXl8b2xkS2V5LG5ld0tleXxvbGRLZXko5o6l5Y+j6L+U5Zue55qE5YC8KVxyXG4gIGljb24/OiB7IGlzU2hvdzogYm9vbGVhbiwgY29kZTogc3RyaW5nLCBpY29uOiBhbnkgfSxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgbnpTaG93VGltZT86IGJvb2xlYW4gfCB7IG56Rm9ybWF0OiBzdHJpbmcgfSxcclxuICBuelNob3dOb3c/OiBib29sZWFuLFxyXG4gIGV4cGFuZEFsbD86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICB1cmw/OiBzdHJpbmcsXHJcbiAgZ1R5cGU/OiAnbm9ybWFsJyB8ICd1cGxvYWQnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAgZmlyc3REYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZ1xyXG4gIGNoaWxkcmVuPzogYW55LFxyXG4gIGlzU2VsZWN0PzogYm9vbGVhbi8vY2hlY2tCb3jpu5jorqTpgInkuK1cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEltYWdlT3B0cyB7XHJcbiAgbGltaXQ/OiBudW1iZXIsXHJcbiAgbnpTaXplPzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycgfCAnYnV0dG9uJyxcclxuICBuekZpbGVUeXBlPzogc3RyaW5nLFxyXG4gIGtlZXBOYW1lPzogYm9vbGVhblxyXG4gIGJ0bk5hbWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGVxdWlwVGVzdERhdGEge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGl0ZW1OYW1lOiBzdHJpbmdcclxuICB6aG91MTogbnVtYmVyXHJcbiAgemhvdTI6IG51bWJlclxyXG4gIHpob3UzOiBudW1iZXJcclxuICB6aG91NDogbnVtYmVyXHJcbiAgemhvdTU6IG51bWJlclxyXG4gIHpob3U2OiBudW1iZXJcclxuICBpc1dyb25nMT86IGJvb2xlYW5cclxuICBpc1dyb25nMj86IGJvb2xlYW5cclxuICBpc1dyb25nMz86IGJvb2xlYW5cclxuICBpc1dyb25nND86IGJvb2xlYW5cclxuICBpc1dyb25nNT86IGJvb2xlYW5cclxuICBpc1dyb25nNj86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZWxlY3RBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBcIm5nTW9kZWxDaGFuZ2VcIiB8ICduek9wZW5DaGFuZ2UnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAga2V5Pzogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJY29uIHtcclxuICAvKiogVHlwZSBmb3IgaWNvbiAqL1xyXG4gIHR5cGU6ICdjbGFzcycgfCAnaWNvbicgfCAnaWNvbmZvbnQnIHwgJ2ltZyc7XHJcbiAgLyoqIFZhbHVlIGZvciB0aGUgaWNvbiwgY2FuIGJlIHNldCBDbGFzcyBOYW1lLCBuei1pY29uIG9mIGBuelR5cGVgLCBpbWFnZSAqL1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBhbnQgZGVzaWduIGljb24sIGRlZmF1bHQ6IGBvdXRsaW5lYCAqL1xyXG4gIHRoZW1lPzogJ291dGxpbmUnIHwgJ3R3b3RvbmUnIHwgJ2ZpbGwnO1xyXG4gIC8qKiBSb3RhdGUgaWNvbiB3aXRoIGFuaW1hdGlvbiwgZGVmYXVsdDogYGZhbHNlYCAqL1xyXG4gIHNwaW4/OiBib29sZWFuO1xyXG4gIC8qKiBPbmx5IHN1cHBvcnQgdGhlIHR3by10b25lIGljb24uIFNwZWNpZmljIHRoZSBwcmltYXJ5IGNvbG9yICovXHJcbiAgdHdvVG9uZUNvbG9yPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBpY29uIGZyb20gaWNvbmZvbnQgKi9cclxuICBpY29uZm9udD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZW51IHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGxpbms/OiBzdHJpbmc7XHJcbiAgcmVhbExpbms/OiBzdHJpbmc7XHJcbiAgaXNTZWxlY3RlZD86IEJvb2xlYW47XHJcbiAgaXNPcGVuPzogQm9vbGVhbjtcclxuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XHJcbiAgLyoqIEljb24gZm9yIHRoZSBtZW51IGl0ZW0sIG9ubHkgdmFsaWQgZm9yIHRoZSBmaXJzdCBsZXZlbCBtZW51ICovXHJcbiAgaWNvbj86IHN0cmluZyB8IE1lbnVJY29uIHwgbnVsbDtcclxuICAvKiogQmFkZ2V0IGZvciB0aGUgbWVudSBpdGVtIHdoZW4gYGdyb3VwYCBpcyBgdHJ1ZWAgKi9cclxuICBvcGVyYXRpb24/OiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgc2hvcnRjdXQgbWVudSBpdGVtICovXHJcbiAgc2VxPzogbnVtYmVyO1xyXG4gIGxldmVsPzogbnVtYmVyO1xyXG4gIC8qKiBXaGV0ZXIgc2hvcnRjdXQgbWVudSByb290IG5vZGUgKi9cclxuICBsaW5rVHlwZT86IHN0cmluZztcclxuICAvKiogV2hldGhlciB0byBhbGxvdyByZXVzZSwgbmVlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgYHJldXNlLXRhYmAgY29tcG9uZW50ICovXHJcbiAgY2hpbGRyZW4/OiBNZW51W107XHJcbiAgaXNWaXNpYmxlPzogJzAnIHwgJzEnXHJcbn1cclxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLEVBQUU7SUFDWDs7T0FFRztJQUNILGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxxQkFBcUI7SUFDakMsV0FBVyxFQUFFLEtBQUs7SUFDbEIsUUFBUSxFQUFFLEVBQUU7SUFDWixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLFdBQVc7SUFDcEI7O09BRUc7SUFDSCxZQUFZLEVBQUUsVUFBVTtJQUN4QixVQUFVLEVBQUUsRUFBRTtJQUNkLG1CQUFtQjtJQUNuQixlQUFlLEVBQUUsS0FBSztJQUN0QixlQUFlLEVBQUUsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDekMsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1FBQzFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNsRSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSw2REFBNkQ7UUFDN0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sV0FBVzthQUNmLFlBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTthQUM1SSxVQUFLLEdBQUcscTlIQUFxOUgsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDeCtILGVBQVUsR0FBUSxFQUFFLENBQUM7O0FBbUM5QixNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0oseUNBQUcsQ0FBQTtJQUNILDZDQUFLLENBQUE7SUFDTCxxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSGVhZGVyc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TG9jYWxTdG9yYWdlVXRpbH0gZnJvbSBcIi4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsXCI7XHJcbmltcG9ydCB7VGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICAvKipcclxuICAgKiBvc3PlnLDlnYDliY3nvIBcclxuICAgKi9cclxuICBPU1NfVVJMOiAnJyxcclxuICAvKipcclxuICAgKiDpnZnmgIHlnLDlnYBcclxuICAgKi9cclxuICBTVEFUSUNfT1NTX1VSTDogJycsXHJcbiAgT1NTX1BPTElDWTogJ3RoaXJkL29zcy9nZXRQb2xpY3knLFxyXG4gIFNUT1JBR0VfUFJFOiAnRFFfJyxcclxuICBtZW51X3VybDogJycsXHJcbiAgT1NTX0dFVEhPU1Q6ICcnLFxyXG4gIG5lZWRPc3M6IHRydWUsXHJcbiAgZGljX3VybDogJ21nci9jb21ibycsXHJcbiAgLyoqXHJcbiAgICog55m75b2V6Lev55SxXHJcbiAgICovXHJcbiAgbG9naW5fcm91dGVyOiAnL3AvbG9naW4nLFxyXG4gIFNFUlZFUl9VUkw6ICcnLFxyXG4gIC8vaHR0cCBoZWFk5piv5ZCm6buY6K6kaGVhZFxyXG4gIG5lZWROb3JtYWxIZWFkZTogZmFsc2UsXHJcbiAgZ2V0Tm9ybWFsSGVhZGVyOiAoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XHJcbiAgICByZXR1cm4gX2hlYWRlcnNcclxuICB9LFxyXG4gIGdldERlZmF1bHRIZWFkZXI6IChfaGVhZGVyczogSHR0cEhlYWRlcnMpID0+IHtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwieC1oZWFkZXItYXRyXCIsIFwibWFuYWdlXCIpO1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLCBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJUb2tlbigpKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidXNlcklkXCIsIExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlcklkKCkpO1xyXG4gICAgLy8gX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJvcmdDb2RlXCIsVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICByZXR1cm4gX2hlYWRlcnM7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIGNvbW1vbkRhdGFzIHtcclxuICBzdGF0aWMgbGV0dGVycyA9IFtcIkFcIiwgXCJCXCIsIFwiQ1wiLCBcIkRcIiwgXCJFXCIsIFwiRlwiLCBcIkdcIiwgXCJIXCIsIFwiSVwiLCBcIkpcIiwgXCJLXCIsIFwiTFwiLCBcIk1cIiwgXCJOXCIsIFwiT1wiLCBcIlBcIiwgXCJRXCIsIFwiUlwiLCBcIlNcIiwgXCJUXCIsIFwiVVwiLCBcIlZcIiwgXCJXXCIsIFwiWFwiLCBcIllcIiwgXCJaXCJdXHJcbiAgc3RhdGljIGljb25zID0gJ3N0ZXAtYmFja3dhcmQsc3RlcC1mb3J3YXJkLGZhc3QtYmFja3dhcmQsZmFzdC1mb3J3YXJkLHNocmluayxhcnJvd3MtYWx0LGRvd24sdXAsbGVmdCxyaWdodCxjYXJldC11cCxjYXJldC1kb3duLGNhcmV0LWxlZnQsY2FyZXQtcmlnaHQsdXAtY2lyY2xlLGRvd24tY2lyY2xlLGxlZnQtY2lyY2xlLHJpZ2h0LWNpcmNsZSxkb3VibGUtcmlnaHQsZG91YmxlLWxlZnQsdmVydGljYWwtbGVmdCx2ZXJ0aWNhbC1yaWdodCx2ZXJ0aWNhbC1hbGlnbi10b3AsdmVydGljYWwtYWxpZ24tbWlkZGxlLHZlcnRpY2FsLWFsaWduLWJvdHRvbSxmb3J3YXJkLGJhY2t3YXJkLHJvbGxiYWNrLGVudGVyLHJldHdlZXQsc3dhcCxzd2FwLWxlZnQsc3dhcC1yaWdodCxhcnJvdy11cCxhcnJvdy1kb3duLGFycm93LWxlZnQsYXJyb3ctcmlnaHQscGxheS1jaXJjbGUsdXAtc3F1YXJlLGRvd24tc3F1YXJlLGxlZnQtc3F1YXJlLHJpZ2h0LXNxdWFyZSxsb2dpbixsb2dvdXQsbWVudS1mb2xkLG1lbnUtdW5mb2xkLGJvcmRlci1ib3R0b20sYm9yZGVyLWhvcml6b250YWwsYm9yZGVyLWlubmVyLGJvcmRlci1vdXRlcixib3JkZXItbGVmdCxib3JkZXItcmlnaHQsYm9yZGVyLXRvcCxib3JkZXItdmVydGljbGUscGljLWNlbnRlcixwaWMtbGVmdCxwaWMtcmlnaHQscmFkaXVzLWJvdHRvbWxlZnQscmFkaXVzLWJvdHRvbXJpZ2h0LHJhZGl1cy11cGxlZnQscmFkaXVzLXVwcmlnaHQsZnVsbHNjcmVlbixmdWxsc2NyZWVuLWV4aXQscXVlc3Rpb24scXVlc3Rpb24tY2lyY2xlLHBsdXMscGx1cy1jaXJjbGUscGF1c2UscGF1c2UtY2lyY2xlLG1pbnVzLG1pbnVzLWNpcmNsZSxwbHVzLXNxdWFyZSxtaW51cy1zcXVhcmUsaW5mbyxpbmZvLWNpcmNsZSxleGNsYW1hdGlvbixleGNsYW1hdGlvbi1jaXJjbGUsY2xvc2UsY2xvc2UtY2lyY2xlLGNsb3NlLXNxdWFyZSxjaGVjayxjaGVjay1jaXJjbGUsY2hlY2stc3F1YXJlLGNsb2NrLWNpcmNsZSx3YXJuaW5nLGlzc3Vlcy1jbG9zZSxzdG9wLGVkaXQsZm9ybSxjb3B5LHNjaXNzb3IsZGVsZXRlLHNuaXBwZXRzLGRpZmYsaGlnaGxpZ2h0LGFsaWduLWNlbnRlcixhbGlnbi1sZWZ0LGFsaWduLXJpZ2h0LGJnLWNvbG9ycyxib2xkLGl0YWxpYyx1bmRlcmxpbmUsc3RyaWtldGhyb3VnaCxyZWRvLHVuZG8sem9vbS1pbix6b29tLW91dCxmb250LWNvbG9ycyxmb250LXNpemUsbGluZS1oZWlnaHQsZGFzaCxzbWFsbC1kYXNoLHNvcnQtYXNjZW5kaW5nLHNvcnQtZGVzY2VuZGluZyxkcmFnLG9yZGVyZWQtbGlzdCx1bm9yZGVyZWQtbGlzdCxyYWRpdXMtc2V0dGluZyxjb2x1bW4td2lkdGgsY29sdW1uLWhlaWdodCxhcmVhLWNoYXJ0LHBpZS1jaGFydCxiYXItY2hhcnQsZG90LWNoYXJ0LGxpbmUtY2hhcnQscmFkYXItY2hhcnQsaGVhdC1tYXAsZmFsbCxyaXNlLHN0b2NrLGJveC1wbG90LGZ1bmQsc2xpZGVycyxhbmRyb2lkLGFwcGxlLHdpbmRvd3MsaWUsY2hyb21lLGdpdGh1YixhbGl3YW5nd2FuZyxkaW5nZGluZyx3ZWliby1zcXVhcmUsd2VpYm8tY2lyY2xlLHRhb2Jhby1jaXJjbGUsaHRtbDUsd2VpYm8sdHdpdHRlcix3ZWNoYXQseW91dHViZSxhbGlwYXktY2lyY2xlLHRhb2Jhbyxza3lwZSxxcSxtZWRpdW0td29ya21hcmssZ2l0bGFiLG1lZGl1bSxsaW5rZWRpbixnb29nbGUtcGx1cyxkcm9wYm94LGZhY2Vib29rLGNvZGVwZW4sY29kZS1zYW5kYm94LGFtYXpvbixnb29nbGUsY29kZXBlbi1jaXJjbGUsYWxpcGF5LGFudC1kZXNpZ24sYW50LWNsb3VkLGFsaXl1bix6aGlodSxzbGFjayxzbGFjay1zcXVhcmUsYmVoYW5jZSxiZWhhbmNlLXNxdWFyZSxkcmliYmJsZSxkcmliYmJsZS1zcXVhcmUsaW5zdGFncmFtLHl1cXVlLGFsaWJhYmEseWFob28scmVkZGl0LHNrZXRjaCxhbGVydCxhaW0sYWNjb3VudC1ib29rLGFwYXJ0bWVudCxhcGksYXBwc3RvcmUsYXVkaW8tbXV0ZWQsYXVkaXQsYmFuayxiYXJjb2RlLGJhcnMsYmxvY2ssYm9vayxiZWxsLGFwcHN0b3JlLWFkZCxhdWRpbyxib3JkZXIsYm9yZGVybGVzcy10YWJsZSxidWcsYnJhbmNoZXMsY2FtZXJhLGNhbGN1bGF0b3IsY2FsZW5kYXIsYnVpbGQsY2Fycnktb3V0LGJ1bGIsY2FyLGNsZWFyLGNpLGNsb3VkLWRvd25sb2FkLGNsb3VkLGNsb3VkLXN5bmMsY2xvdWQtc2VydmVyLGNsb3VkLXVwbG9hZCxjb2RlLGNvZmZlZSxjb21wcmVzcyxjb21wYXNzLGNvbW1lbnQsY2ktY2lyY2xlLGNvbnRhaW5lcixjb250cm9sLGNvcHlyaWdodCxjcmVkaXQtY2FyZCxjbHVzdGVyLGN1c3RvbWVyLXNlcnZpY2UsY29udGFjdHMsY29uc29sZS1zcWwsZGFzaGJvYXJkLGRhdGFiYXNlLGNvcHlyaWdodC1jaXJjbGUsZGVsZXRlLWNvbHVtbixkZXNrdG9wLGRlcGxveW1lbnQtdW5pdCxkZWxpdmVyZWQtcHJvY2VkdXJlLGRpc2Nvbm5lY3QsZGluZ3RhbGssZG9sbGFyLWNpcmNsZSxkaXNsaWtlLGRlbGV0ZS1yb3csZG9sbGFyLGNyb3duLGRvd25sb2FkLGVsbGlwc2lzLGVudmlyb25tZW50LGV1cm8tY2lyY2xlLGV4Y2VwdGlvbixleHBhbmQtYWx0LGV1cm8sZXhwZXJpbWVudCxleHBvcnQsZXhwYW5kLGV5ZS1pbnZpc2libGUsZXllLGZpbGUtYWRkLGZpZWxkLXN0cmluZyxmaWxlLWV4Y2xhbWF0aW9uLGZpbGUtZG9uZSxmaWVsZC10aW1lLGZpbGUtZXhjZWwsZmllbGQtYmluYXJ5LGZpbGUtZ2lmLGZpbGUtaW1hZ2UsZmlsZSxmaWxlLW1hcmtkb3duLGZpbGUtcHB0LGZpbGUtcGRmLGZpZWxkLW51bWJlcixmaWxlLXNlYXJjaCxmaWxlLXN5bmMsZmlsZS1qcGcsZmlsZS10ZXh0LGZpbHRlcixmaWxlLXppcCxmbGFnLGZvbGRlci1hZGQsZmlsZS11bmtub3duLGZvbGRlci1vcGVuLGZpcmUsZmlsZS1wcm90ZWN0LGZvbGRlci12aWV3LGZvbGRlcixmb3JrLGZvcm1hdC1wYWludGVyLGZyb3duLGZ1bmQtcHJvamVjdGlvbi1zY3JlZW4sZ2lmdCxnYXRld2F5LGZ1bmQtdmlldyxnaWYsZnVubmVsLXBsb3QsZ29sZCxnbG9iYWwsZ3JvdXAsaGRkLGZ1bmN0aW9uLGhpc3RvcnksZmlsZS13b3JkLGhvbWUsaWRjYXJkLGhvdXJnbGFzcyxoZWFydCxpbnNlcnQtcm93LWJlbG93LGltcG9ydCxpbnNlcnQtcm93LWxlZnQsaW5zZXJ0LXJvdy1hYm92ZSxpbnNlcnQtcm93LXJpZ2h0LGtleSxpbmJveCxpbnN1cmFuY2UsbGFwdG9wLGxpa2UsbGluZSxsaW5rLGxvYWRpbmctMy1xdWFydGVycyxsb2FkaW5nLGxvY2ssbWFuLG1haWwsbWFjLWNvbW1hbmQsbWVkaWNpbmUtYm94LGxheW91dCxtZWgsaW50ZXJhY3Rpb24sbWVzc2FnZSxtZW51LG1lcmdlLWNlbGxzLG1vYmlsZSxtb25leS1jb2xsZWN0LG5vZGUtaW5kZXgsbW9uaXRvcixub2RlLWV4cGFuZCxtb3JlLG51bWJlcixub3RpZmljYXRpb24sb25lLXRvLW9uZSxwZXJjZW50YWdlLHBob25lLHBhcGVyLWNsaXAscGFydGl0aW9uLHBpY3R1cmUsbm9kZS1jb2xsYXBzZSxwbGF5LXNxdWFyZSxwYXktY2lyY2xlLHBvdW5kLHByb2ZpbGUscHJvamVjdCxwcm9wZXJ0eS1zYWZldHkscG93ZXJvZmYscHVzaHBpbixxcmNvZGUscHJpbnRlcixwb3VuZC1jaXJjbGUscHVsbC1yZXF1ZXN0LHJlc3QscmVhZCxyZWxvYWQscmVjb25jaWxpYXRpb24scm9ib3Qscm9ja2V0LHJvdGF0ZS1yaWdodCxzYWZldHktY2VydGlmaWNhdGUscmVkLWVudmVsb3BlLHJvdGF0ZS1sZWZ0LHNhdmUsc2FmZXR5LHNlYXJjaCxzZWN1cml0eS1zY2FuLHNjYW4sc2VuZCxzZXR0aW5nLHNlbGVjdCxzaGFrZSxzaG9wcGluZy1jYXJ0LHNpc3Rlcm5vZGUsc2hvcCxzaG9wcGluZyxzaGFyZS1hbHQsc2NoZWR1bGUsc2tpbixzbWlsZSxzb2x1dGlvbixzb3VuZCxzcGxpdC1jZWxscyxzdGFyLHN1Ym5vZGUsdGFncyx0YWJsZXQsdGFnLHRhYmxlLHN3aXRjaGVyLHN5bmMsdGVhbSx0b29sLHRyYWRlbWFyay1jaXJjbGUsdGh1bmRlcmJvbHQsdG8tdG9wLHRyYW5zbGF0aW9uLHRyYWRlbWFyayx0cm9waHksdW5ncm91cCx1bmxvY2ssdXBsb2FkLHRyYW5zYWN0aW9uLHVzZXItZGVsZXRlLHVzYix1c2VyLWFkZCx1c2VyZ3JvdXAtZGVsZXRlLHZpZGVvLWNhbWVyYS1hZGQsdmVyaWZpZWQsdXNlcmdyb3VwLWFkZCx1c2VyLHVzZXItc3dpdGNoLHZpZGVvLWNhbWVyYSx3aWZpLHdhbGxldCx3aGF0cy1hcHAsd29tYW4sYXBwc3RvcmUnLnNwbGl0KCcsJylcclxuICBzdGF0aWMgYXdhaXRfRGF0YTogYW55ID0ge307XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBqc29uIGV4dGVuZHMgT2JqZWN0IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZCB7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICBzaG93Q291bnQ6IG51bWJlcjtcclxuICB0b3RhbFJlc3VsdDogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSZXNwb25zZURhdGFTdGFuZGFyZCB7XHJcbiAgc3RhdGU6IG51bWJlcjsgLy8g5Li6MeaJjeaYr+aIkOWKn1xyXG4gIGRhdGE6IGpzb24gfCBbe31dIHwgb2JqZWN0IHwgc3RyaW5nIHwgYW55OyAvL+ayoeacieWAvCBkYXRhOiAnJ1xyXG4gIG1lc3M6IHN0cmluZzsgLy/ov5Tlm57nmoTmtojmga9cclxuICBwYWdlPzogU2VydmVyUGFnaW5hdGlvblN0YW5kYXJkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSc2Vwb25zZVRyYW5zZm9ybUNlbGwge1xyXG4gIFtrZXk6IHN0cmluZ106IGpzb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzoge30sXHJcbiAgaXNKc29uRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzVXJsRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzQXV0b1Nob3dNZXNzYWdlPzogYm9vbGVhblxyXG4gIGlzV2l0aENyZWRlbnRpYWxzPzogYm9vbGVhblxyXG4gIGlzQ29tbW9uSHR0cEhlYWRlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlckFjdGlvbiB7XHJcbiAgQURELFxyXG4gIEVESVQsXHJcbiAgREVMLFxyXG4gIFFVRVJZLFxyXG4gIFNVUFBFUkFERFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzogYm9vbGVhbixcclxuICAgIHNob3c/OiBib29sZWFuLFxyXG4gIH0sXHJcbiAgeUF4aXM/OiBhbnksLy97ICAgIHNob3c6ZmFsc2UsICAgIHR5cGU6ICd2YWx1ZScsICAgIG1pbkludGVydmFsOiAxLH1bXVxyXG4gIHNlcmllcz86IHtcclxuICAgIG5hbWU/OiBzdHJpbmcsXHJcbiAgICBkYXRhPzogYW55W10sXHJcbiAgICBpdGVtU3R5bGU/OiBhbnksXHJcbiAgICBzdGFjaz86IGFueSxcclxuICAgIGVtcGhhc2lzPzogYW55LFxyXG4gICAgbGFiZWw/OiBhbnksXHJcbiAgICByYWRpdXM/OiBhbnlbXSxcclxuICAgIHNtb290aD86IGJvb2xlYW4sXHJcbiAgICBzZXJpZXNMYXlvdXRCeT86IHN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtT3B0IHtcclxuICB0eXBlOiAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICBsYXlvdXQ/OiBcImZ1bGxcIiB8ICcxbDJjJyB8ICcxbDFjJyxcclxuICBpdGVtczogQXRyRm9ybURldGFpbFtdLC8v6KGo5Y2V6aG555uuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtRGV0YWlsIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ2ltYWdlJyB8ICdzZWxlY3QnIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAndGVscGhvbmUnIHwgJ3Bhc3N3b3JkJyB8ICdjaGVja2JveCcgfCAnZGF5UmFuZ2UnXHJcbiAgICB8ICdlZGl0b3InIHwgJ3RleHRhcmVhJyB8ICdkYXRlVGltZScgfCAndGl0bGUnIHwgJ2RhdGVSYW5nZScgfCAnc2VsZWN0YycgfCAnc2VsZWN0SWNvbicgfCAndHJlZVNlbGVjdCcgfCAnc3dpdGNoJyB8ICdidXR0b25zJyB8ICdjb2xvcicsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNIaWRkZW4/OiBib29sZWFuLFxyXG4gIGFsbG93U2VsZWN0Tm9kZT86IGJvb2xlYW4sLy9jYXNjYWRlciDmmK/lkKblhYHorrjpgInmi6nniLboioLngrlcclxuICAvLyB2YWx1ZVByb3BlcnR5PzpzdHJpbmcsLy92YWx1ZVByb3BlcnR5IOWunumZheWAvFxyXG4gIC8vIHNob3dLZXk/OnN0cmluZywvL2Nhc2NhZGVyIOe8lui+keaIluiAheWIneWni+WMluWAvOaXtiDmoLnmja5zaG93S2V5KGxhYmVsIE9yIFZhbHVlKeadpeaJvuWFqGxhYmVs5ZKMdmFsdWVcclxuICBkZWZhdWx0VmFsdWU/OiBhbnksXHJcbiAgdmFsdWU/OiBhbnksLy/nvJbovpHkuIvljp/lp4vmlbDlgLxcclxuICBkaWN0Q29kZT86IHN0cmluZywvL3NlbGVjdCDmqKHlvI/kuIvphY3nva5cclxuICBzcGFuPzogbnVtYmVyLC8v5pi+56S65a695bqmXHJcbiAgdmFsaWRhdG9ycz86IEF0ckZvcm1WYWxpZFtdLC8v6aqM6K+B5p2h5Lu2XHJcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW4gfCBzdHJpbmcsLy/pmpDmgKfmnaHku7Yg5peg6ZyA5aGr5YaZLCBzdHJpbmfnsbvlnovmoLzlvI/lkIxvcGVyYXRvclxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIGltYWdlT3B0cz86IEltYWdlT3B0cyxcclxuICBlZGl0Q29udGVudD86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXIsLy9lZGl0b3LmnInmlYhcclxuICBkaXNhYmxlPzogYm9vbGVhbixcclxuICBsc3Bhbj86IG51bWJlcixcclxuICBjc3Bhbj86IG51bWJlcixcclxuICByb3dzPzogbnVtYmVyLC8vdGV4dGFyZWEg5pi+56S66KGM5pWwXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy/mmL7npLrmk43kvZznrKYg5qC85byPIOWmgjpzdGF0dXN8ZXF8MFxyXG4gIGJ1dHRvbj86IGZvcm1CdXR0b24sXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuLFxyXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmd8RnVuY3Rpb24sXHJcbiAgZGljdExpc3Q/OiBDdXNEaWN0W10sXHJcbiAgbnpNb2RlPzogJ211bHRpcGxlJyB8ICd0YWdzJyB8ICdkZWZhdWx0JyxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiwgaWdub3JlRGljdExpc3Q/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gIGZpcnN0VGVtcD86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgbWluTnVtYmVyPzogYW55LFxyXG4gIG1heE51bWJlcj86IGFueSxcclxuICBub3ROdWxsPzogYm9vbGVhblxyXG4gIG56U2hvd1RpbWU/OiBib29sZWFuIHwgeyBuekZvcm1hdDogc3RyaW5nIH0sXHJcbiAgYnV0dG9ucz86IGZvcm1CdXR0b25bXSxcclxuICBuekNoZWNrZWRDaGlsZHJlbj86IHN0cmluZyxcclxuICBuelVuQ2hlY2tlZENoaWxkcmVuPzogc3RyaW5nLFxyXG4gIG56UHJlY2lzaW9uPzogbnVtYmVyLFxyXG4gIG56U3RlcD86IG51bWJlcixcclxuXHJcbiAgLyoqXHJcbiAgICog5qCR5b2i5qCR5b2i5o6n5Lu25piv5ZCm5bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICovXHJcbiAgZXhwYW5kQWxsPzpib29sZWFuLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIGJ0blR5cGU/OiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy8vL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCdcclxuICAgIHwgJ2lubmVySHRtbCcgfCAnaW1hZ2U2NCcsLy/nsbvlnovvvJog5paH5a2X44CB6ZO+5o6l44CB5pON5L2cXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICB3aWR0aD86IHN0cmluZywvLzE1MHB4XHJcbiAgYWN0aW9ucz86IFRhYmxlQWN0aW9uW10sXHJcbiAgaXNSb3dTcGFuPzogYm9vbGVhbixcclxuICBpc1JpZ2h0PzogYm9vbGVhblxyXG4gIGlzTGVmdD86IGJvb2xlYW4sXHJcbiAgY29sb3I/OiBjb2xvck9wZXJhdG9yLC8v6aKc6ImyXHJcbiAgY29sb3JTaG93Pzogc3RyaW5nLFxyXG4gIGlubmVySHRtbEJhY2s/OiBGdW5jdGlvbixcclxuICBzdHlsZUNhbGxCYWNrPzogRnVuY3Rpb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXJ5SGVhZGVyIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgdHlwZTogJ2Nhc2NhZGVyJyB8ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ2RhdGVwaWNrZXInIHwgJ3NlbGVjdEN1cycgfCAnZGF0ZVJhbmdlJyB8ICdzZGF0ZScgfCAndHJlZVNlbGVjdCcgfCAnZGF5UmFuZ2UnLFxyXG4gIG56TW9kZT86ICdtdWx0aXBsZScgfCAndGFncycgfCAnZGVmYXVsdCcsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICBjb2RlPzogc3RyaW5nLFxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIHNwYW4/OiBudW1iZXIsXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsLy/lrZflhbjnvJbnoIFcclxuICBkaWN0TGlzdD86IEN1c0RpY3RbXSxcclxuICBkZWZhdWx0VmFsPzogYW55IC8vIOm7mOiupOWAvFxyXG4gIG1heFRhZ0NvdW50PzogbnVtYmVyLFxyXG4gIGxzcGFuPzogbnVtYmVyLFxyXG4gIGNzcGFuPzogbnVtYmVyLFxyXG4gIGRpc2FibGVDbGVhcj86IGJvb2xlYW4sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXVxyXG4gIC8qKlxyXG4gICAqIOagvOW8j1xyXG4gICAqIGNvbnZlcnQ6J2tleXxpZCx0aXRsZXxyZWFsTmFtZScodHJlZVNlbGVjdClcclxuICAgKiAgICB2YWx1ZXxpZCxsYWJlbHxuYW1lKHNlbGVjdEN1cylcclxuICAgKi9cclxuICBzZWxlY3RVcmw/OiB7IHVybDogc3RyaW5nLCBjb252ZXJ0OiBzdHJpbmcsIGlzTXVsdGlwbGU/OiBib29sZWFuIH0sLy9jb252ZXJ0OiBuZXdLZXl8b2xkS2V5LG5ld0tleXxvbGRLZXko5o6l5Y+j6L+U5Zue55qE5YC8KVxyXG4gIGljb24/OiB7IGlzU2hvdzogYm9vbGVhbiwgY29kZTogc3RyaW5nLCBpY29uOiBhbnkgfSxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgbnpTaG93VGltZT86IGJvb2xlYW4gfCB7IG56Rm9ybWF0OiBzdHJpbmcgfSxcclxuICBuelNob3dOb3c/OiBib29sZWFuLFxyXG4gIGV4cGFuZEFsbD86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICB1cmw/OiBzdHJpbmcsXHJcbiAgZ1R5cGU/OiAnbm9ybWFsJyB8ICd1cGxvYWQnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAgZmlyc3REYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZ1xyXG4gIGNoaWxkcmVuPzogYW55LFxyXG4gIGlzU2VsZWN0PzogYm9vbGVhbi8vY2hlY2tCb3jpu5jorqTpgInkuK1cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEltYWdlT3B0cyB7XHJcbiAgbGltaXQ/OiBudW1iZXIsXHJcbiAgbnpTaXplPzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycgfCAnYnV0dG9uJyxcclxuICBuekZpbGVUeXBlPzogc3RyaW5nLFxyXG4gIGtlZXBOYW1lPzogYm9vbGVhblxyXG4gIGJ0bk5hbWU/OiBzdHJpbmdcclxuICBiZWZvcmVVcGxvYWQ/OmFueVxyXG4gIGN1c3RvbVJlcT86YW55XHJcbiAgc3BsaXRTdHI/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgZXF1aXBUZXN0RGF0YSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgaXRlbU5hbWU6IHN0cmluZ1xyXG4gIHpob3UxOiBudW1iZXJcclxuICB6aG91MjogbnVtYmVyXHJcbiAgemhvdTM6IG51bWJlclxyXG4gIHpob3U0OiBudW1iZXJcclxuICB6aG91NTogbnVtYmVyXHJcbiAgemhvdTY6IG51bWJlclxyXG4gIGlzV3JvbmcxPzogYm9vbGVhblxyXG4gIGlzV3JvbmcyPzogYm9vbGVhblxyXG4gIGlzV3JvbmczPzogYm9vbGVhblxyXG4gIGlzV3Jvbmc0PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc1PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc2PzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlbGVjdEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IFwibmdNb2RlbENoYW5nZVwiIHwgJ256T3BlbkNoYW5nZScsXHJcbiAgZGF0YT86IGFueSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUljb24ge1xyXG4gIC8qKiBUeXBlIGZvciBpY29uICovXHJcbiAgdHlwZTogJ2NsYXNzJyB8ICdpY29uJyB8ICdpY29uZm9udCcgfCAnaW1nJztcclxuICAvKiogVmFsdWUgZm9yIHRoZSBpY29uLCBjYW4gYmUgc2V0IENsYXNzIE5hbWUsIG56LWljb24gb2YgYG56VHlwZWAsIGltYWdlICovXHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGFudCBkZXNpZ24gaWNvbiwgZGVmYXVsdDogYG91dGxpbmVgICovXHJcbiAgdGhlbWU/OiAnb3V0bGluZScgfCAndHdvdG9uZScgfCAnZmlsbCc7XHJcbiAgLyoqIFJvdGF0ZSBpY29uIHdpdGggYW5pbWF0aW9uLCBkZWZhdWx0OiBgZmFsc2VgICovXHJcbiAgc3Bpbj86IGJvb2xlYW47XHJcbiAgLyoqIE9ubHkgc3VwcG9ydCB0aGUgdHdvLXRvbmUgaWNvbi4gU3BlY2lmaWMgdGhlIHByaW1hcnkgY29sb3IgKi9cclxuICB0d29Ub25lQ29sb3I/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGljb24gZnJvbSBpY29uZm9udCAqL1xyXG4gIGljb25mb250Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnUge1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgbGluaz86IHN0cmluZztcclxuICByZWFsTGluaz86IHN0cmluZztcclxuICBpc1NlbGVjdGVkPzogQm9vbGVhbjtcclxuICBpc09wZW4/OiBCb29sZWFuO1xyXG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcclxuICAvKiogSWNvbiBmb3IgdGhlIG1lbnUgaXRlbSwgb25seSB2YWxpZCBmb3IgdGhlIGZpcnN0IGxldmVsIG1lbnUgKi9cclxuICBpY29uPzogc3RyaW5nIHwgTWVudUljb24gfCBudWxsO1xyXG4gIC8qKiBCYWRnZXQgZm9yIHRoZSBtZW51IGl0ZW0gd2hlbiBgZ3JvdXBgIGlzIGB0cnVlYCAqL1xyXG4gIG9wZXJhdGlvbj86IHN0cmluZztcclxuICAvKiogV2hldGhlciBzaG9ydGN1dCBtZW51IGl0ZW0gKi9cclxuICBzZXE/OiBudW1iZXI7XHJcbiAgbGV2ZWw/OiBudW1iZXI7XHJcbiAgLyoqIFdoZXRlciBzaG9ydGN1dCBtZW51IHJvb3Qgbm9kZSAqL1xyXG4gIGxpbmtUeXBlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHJldXNlLCBuZWVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBgcmV1c2UtdGFiYCBjb21wb25lbnQgKi9cclxuICBjaGlsZHJlbj86IE1lbnVbXTtcclxuICBpc1Zpc2libGU/OiAnMCcgfCAnMSdcclxufVxyXG4iXX0=
@@ -2,7 +2,6 @@ import { Component, Input, Inject, LOCALE_ID, Output, EventEmitter } from '@angu
2
2
  import { UntypedFormControl, Validators } from '@angular/forms';
3
3
  import { telphoneValidator } from '../validators/atr-validtors';
4
4
  import { formatDate } from '@angular/common';
5
- import { atr_static_datas } from "../../../core/base/atr-common";
6
5
  import { ToolsUtil } from "../../../core/utils/ToolsUtil";
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "../share.service";
@@ -223,12 +222,18 @@ export class AtrFormComponent {
223
222
  item.imageOpts.key = item.key;
224
223
  if (value) {
225
224
  let images = [];
226
- let list = value.split(",");
225
+ let list = [];
226
+ if (item.imageOpts.splitStr) {
227
+ list = value.split(item.imageOpts.splitStr);
228
+ }
229
+ else {
230
+ list = [value];
231
+ }
227
232
  for (let key of list) {
228
233
  images.push({
229
234
  key: key,
230
235
  uid: "-1",
231
- url: atr_static_datas.OSS_URL + key
236
+ url: ToolsUtil.getOssUrl(key)
232
237
  });
233
238
  }
234
239
  item.imageOpts.imageList = images;
@@ -404,13 +409,19 @@ export class AtrFormComponent {
404
409
  let images = [];
405
410
  if (!value)
406
411
  value = "";
407
- let list = value.split(",");
412
+ let list = [];
413
+ if (item.imageOpts.splitStr) {
414
+ list = value.split(item.imageOpts.splitStr);
415
+ }
416
+ else {
417
+ list = [value];
418
+ }
408
419
  for (let key of list) {
409
420
  if (key != "") {
410
421
  images.push({
411
422
  key: key,
412
423
  uid: "-1",
413
- url: atr_static_datas.OSS_URL + key
424
+ url: ToolsUtil.getOssUrl(key),
414
425
  });
415
426
  }
416
427
  }
@@ -610,4 +621,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
610
621
  }], viewTitle: [{
611
622
  type: Input
612
623
  }] } });
613
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBWSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUF1QyxrQkFBa0IsRUFBRSxVQUFVLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFvRCxNQUFNLCtCQUErQixDQUFDO0FBRWxILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF4RCxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLDJDQUEyQztJQUMzQyxZQUFvQixZQUEwQixFQUFVLFdBQXdCLEVBQzVELEVBQXNCLEVBQVUsV0FBd0IsRUFBVSxRQUFrQixFQUE2QixNQUFjO1FBRC9ILGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDNUQsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBNkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZuSixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBR04sZUFB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QUMsR0FBRyxDQUFDLENBQUE7aUJBQzVCO2FBQ0Y7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFlBQVksRUFBRTtZQUN2RCxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBN2lCVSxnQkFBZ0IsOEpBWXVGLFNBQVM7bUdBWmhILGdCQUFnQiwyTUNoQjdCLHVnV0F1S0E7OzRGRHZKYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVTs7MEJBZ0J1RixNQUFNOzJCQUFDLFNBQVM7eUNBUmxILFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBJbmplY3RvciwgSW5qZWN0LCBMT0NBTEVfSUQsIE91dHB1dCwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHt0ZWxwaG9uZVZhbGlkYXRvcn0gZnJvbSAnLi4vdmFsaWRhdG9ycy9hdHItdmFsaWR0b3JzJztcclxuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1NoYXJlU2VydmljZX0gZnJvbSAnLi4vc2hhcmUuc2VydmljZSc7XHJcbmltcG9ydCB7ZW52aXJvbm1lbnR9IGZyb20gXCJuZy16b3Jyby1hbnRkL2NvcmUvZW52aXJvbm1lbnRzXCI7XHJcbmltcG9ydCB7YXRyX3N0YXRpY19kYXRhcywgQXRyRm9ybURldGFpbCwgQXRyRm9ybU9wdCwgRm9ybUFjdGlvbiwgZm9ybUJ1dHRvbn0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYmFzZS9hdHItY29tbW9uXCI7XHJcbmltcG9ydCB7RGljdFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2RpY3QvZGljdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tIFwiLi4vLi4vLi4vY29yZS91dGlscy9Ub29sc1V0aWxcIjtcclxuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2VydmljZXMvaHR0cC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0ci1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgZGljdHM6IGFueSA9IHt9O1xyXG4gIGF0ckZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCBhbnk7XHJcbiAgQElucHV0KCkgZm9ybU9wdHM6IEF0ckZvcm1PcHQgfCBhbnk7XHJcbiAgQE91dHB1dCgpIGZvcm1BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1BY3Rpb24+KCk7XHJcbiAgQE91dHB1dCgpIHVwbG9hZEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBxdWlsbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHZpZXdUaXRsZSA9ICcnO1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzaGFyZVNlcnZpY2U6IFNoYXJlU2VydmljZSwgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLCBwcml2YXRlIGRpY3RTZXJ2aWNlOiBEaWN0U2VydmljZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmF0ckZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICB9XHJcblxyXG4gIHJlc2V0TGF5b3V0KGl0ZW06IGFueSkge1xyXG4gICAgaWYgKCFpdGVtLmxzcGFuKSB7XHJcbiAgICAgIGl0ZW0ubHNwYW4gPSAyNDtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5jc3Bhbikge1xyXG4gICAgICBpdGVtLmNzcGFuID0gMjQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDaGFuZ2UoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py5zdG9wUHJvcGFnYXRpb24pIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgIH1cclxuICAgIGxldCBhY3Rpb246IEZvcm1BY3Rpb24gPSB7XHJcbiAgICAgIG5hbWU6IGl0ZW0ua2V5LFxyXG4gICAgICBjb2RlOiAnc2VsZWN0Q2hhZ25lJyxcclxuICAgIH07XHJcbiAgICB0aGlzLmZvcm1BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNoYW5nZShldmVudDogYW55LCBpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybUFjdGlvbi5lbWl0KHtcclxuICAgICAgbmFtZTogJ2Zvcm1DaGFuZ2UnLFxyXG4gICAgICBjb2RlOiBpdGVtLmtleSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG9BY3Rpb24oaXRlbTogZm9ybUJ1dHRvbiwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICB9XHJcbiAgICBsZXQgYWN0aW9uOiBGb3JtQWN0aW9uID0ge1xyXG4gICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgIGNvZGU6IGl0ZW0uY29kZSxcclxuICAgIH07XHJcbiAgICB0aGlzLmZvcm1BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuYXRyRm9ybS5nZXQoa2V5KT8uc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmF0ckZvcm0uZ2V0KGtleSk/LnZhbHVlO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldERpY0xpc3QoaXRlbTogYW55KSB7XHJcbiAgICB0aGlzLnNoYXJlU2VydmljZS5nZXREaWNMaXN0KGl0ZW0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzLnN0YXR1cyA9PSAyMDAgJiYgcmVzLml0ZW0pIHtcclxuICAgICAgICBpdGVtID0gcmVzLml0ZW1cclxuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGNvbnYoZGF0YXM6IGFueSwga2V5czogYW55KTogYW55IHtcclxuICAgIHJldHVybiBkYXRhcy5tYXAoKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgbGV0IGl0ZW06IGFueSA9IHt9O1xyXG4gICAgICBpZiAoa2V5cykge1xyXG4gICAgICAgIGtleXMuZm9yRWFjaCgodjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgdnMgPSB2LnNwbGl0KFwifFwiKTtcclxuICAgICAgICAgIGNoaWxkW3ZzWzBdXSA9IGNoaWxkW3ZzWzFdXTtcclxuICAgICAgICAgIGl0ZW1bdnNbMF1dID0gY2hpbGRbdnNbMV1dO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW0gPSBjaGlsZDtcclxuICAgICAgfVxyXG4gICAgICBjaGlsZC5uelZhbHVlUHJvcGVydHkgPSBpdGVtO1xyXG4gICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcclxuICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IHRoaXMuY29udihjaGlsZC5jaGlsZHJlbiwga2V5cylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGlsZC5pc0xlYWYgPSB0cnVlXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENhc2NhZGVyRGVmYXVsdFZhbHVlKGxpc3Q6IGFueSwgaW5kZXg6IGFueSwgdmFsdWU6IGFueSwga2V5TmFtZTogYW55KSB7XHJcbiAgICBsaXN0LmZvckVhY2goKGRpYzogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkaWNba2V5TmFtZV0gPT0gdmFsdWVbaW5kZXhdW2tleU5hbWVdKSB7XHJcbiAgICAgICAgdmFsdWVbaW5kZXhdID0ge2xhYmVsOiBkaWMubGFiZWwsIHZhbHVlOiBkaWMudmFsdWV9O1xyXG4gICAgICAgIGlmIChkaWMuY2hpbGRyZW4pIHtcclxuICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRDYXNjYWRlckRlZmF1bHRWYWx1ZShkaWMuY2hpbGRyZW4sIGluZGV4ICsgMSwgdmFsdWUsIGtleU5hbWUpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgfVxyXG5cclxuICBnZXRUcmVlKGxpc3QsIGtleXMpIHtcclxuICAgIHJldHVybiBsaXN0Lm1hcCh2ID0+IHtcclxuICAgICAga2V5cy5mb3JFYWNoKChrZXk6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBhcnIgPSBrZXkuc3BsaXQoXCJ8XCIpO1xyXG4gICAgICAgIHZbYXJyWzBdXSA9IHZbYXJyWzFdXTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh2LmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdi5jaGlsZHJlbiA9IHRoaXMuZ2V0VHJlZSh2LmNoaWxkcmVuLCBrZXlzKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHYuaXNMZWFmID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdlxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybU9wdHMgJiYgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZm9ybU9wdHMuaXRlbXMpIHtcclxuICAgICAgICAvLyB0aGlzLmF0ckZvcm0uYWRkQ29udHJvbChpdGVtLmtleSwgbmV3IEZvcm1Db250cm9sKCkpO1xyXG4gICAgICAgIHRoaXMucmVzZXRMYXlvdXQoaXRlbSlcclxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmZvcm1PcHRzLnR5cGUgPT0gJ2FkZCcgPyBpdGVtLmRlZmF1bHRWYWx1ZSA6IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybU9wdHMudHlwZSA9PSAnYWRkJykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGl0ZW0uZGljdExpc3QuZmlsdGVyKCh2OiBhbnkpID0+IHYuaXNTZWxlY3QpLm1hcCgoZGljOiBhbnkpID0+IGRpYy52YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ3RyZWVTZWxlY3QnICYmIGl0ZW0uc2VsZWN0VXJsLnVybCkge1xyXG4gICAgICAgICAgbGV0IGtleXMgPSBpdGVtLnNlbGVjdFVybC5jb252ZXJ0LnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoaXRlbS5zZWxlY3RVcmwudXJsLCB7fSwgVG9vbHNVdGlsLmdldEh0dHBPcHRpb25zKCkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLnRyZWVMaXN0ID0gdGhpcy5nZXRUcmVlKHJlcy5kYXRhLCBrZXlzKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnY2FzY2FkZXInICYmIGl0ZW0uc2VsZWN0VXJsLnVybCkge1xyXG4gICAgICAgICAgbGV0IGtleXM6IGFueSA9IG51bGxcclxuICAgICAgICAgIGlmIChpdGVtLnNlbGVjdFVybC5jb252ZXJ0KSB7XHJcbiAgICAgICAgICAgIGtleXMgPSBpdGVtLnNlbGVjdFVybC5jb252ZXJ0LnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udmFsdWVQcm9wZXJ0eSkgaXRlbS52YWx1ZVByb3BlcnR5ID0gXCJ2YWx1ZVwiXHJcbiAgICAgICAgICAvLyBsZXQgdmFsdWVTdHJMaXN0OmFueSA9IFtdXHJcbiAgICAgICAgICBpZiAoaXRlbS5zZWxlY3RVcmwudXJsKSB7XHJcbiAgICAgICAgICAgIGxldCBzZWxlY3RVcmwgPSBpdGVtLnNlbGVjdFVybDtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdFVybC5ob3N0ID09ICdvc3MnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5odHRwU2VydmljZS5nZXRPc3Moc2VsZWN0VXJsLnVybCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLmRpY3RMaXN0ID0gdGhpcy5jb252KEpTT04ucGFyc2UocmVzKSwga2V5cylcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHZhbHVlID0gdGhpcy5nZXRDYXNjYWRlckRlZmF1bHRWYWx1ZShpdGVtLmRpY3RMaXN0LCAwLCB2YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgLy8gaWYoaXRlbS5zaG93S2V5KXtcclxuICAgICAgICAgICAgICAgICAgLy8gICB2YWx1ZSA9IHRoaXMuZ2V0Q2FzY2FkZXJEZWZhdWx0VmFsdWUoaXRlbS5kaWN0TGlzdCwgMCwgdmFsdWUsaXRlbS5rZXlOYW1lLGl0ZW0udmFsdWVQcm9wZXJ0eSlcclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAvLyBmb3IobGV0IGl0ZW0gb2YgdmFsdWUpe1xyXG4gICAgICAgICAgICAgICAgICAvLyAgIHZhbHVlU3RyTGlzdC5wdXNoKGl0ZW0udmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShpdGVtLmtleSwgdmFsdWUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLnBvc3Qoc2VsZWN0VXJsLnVybCwge30sIFRvb2xzVXRpbC5nZXRIdHRwT3B0aW9ucygpKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uZGljdExpc3QgPSB0aGlzLmNvbnYocmVzLmRhdGEsIGtleXMpXHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAvLyB2YWx1ZSA9IHRoaXMuZ2V0Q2FzY2FkZXJEZWZhdWx0VmFsdWUoaXRlbS5kaWN0TGlzdCwgMCwgdmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmKGl0ZW0uc2hvd0tleSl7XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgdmFsdWUgPSB0aGlzLmdldENhc2NhZGVyRGVmYXVsdFZhbHVlKGl0ZW0uZGljdExpc3QsIDAsIHZhbHVlLGl0ZW0ua2V5TmFtZSlcclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAvLyBmb3IobGV0IGl0ZW0gb2YgdmFsdWUpe1xyXG4gICAgICAgICAgICAgICAgICAvLyAgIHZhbHVlU3RyTGlzdC5wdXNoKGl0ZW0udmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShpdGVtLmtleSwgdmFsdWUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgdGhpcy5nZXREaWN0VmFsdWUoaXRlbS5kaWN0Q29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ3NlbGVjdGMnKSB7XHJcbiAgICAgICAgICBpZiAoIWl0ZW0uZGljdExpc3QgfHwgKGl0ZW0uc2VsZWN0VXJsICYmIGl0ZW0uc2VsZWN0VXJsLmlnbm9yZURpY3RMaXN0KSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldERpY0xpc3QoaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJ0ZXh0YXJlYVwiICYmICFpdGVtLnJvd3MpXHJcbiAgICAgICAgICBpdGVtLnJvd3MgPSA1O1xyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJpbWFnZVwiKSB7XHJcbiAgICAgICAgICBpdGVtLmltYWdlT3B0cy5rZXkgPSBpdGVtLmtleVxyXG4gICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGxldCBpbWFnZXM6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgbGlzdCA9IHZhbHVlLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIGxpc3QpIHtcclxuICAgICAgICAgICAgICBpbWFnZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICAgIHVpZDogXCItMVwiLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBhdHJfc3RhdGljX2RhdGFzLk9TU19VUkwgKyBrZXlcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGl0ZW0uaW1hZ2VPcHRzLmltYWdlTGlzdCA9IGltYWdlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnZWRpdG9yJykge1xyXG4gICAgICAgICAgaWYgKCF2YWx1ZSkgdmFsdWUgPSBcIlwiXHJcbiAgICAgICAgICBpZiAoIWl0ZW0uaGVpZ2h0KVxyXG4gICAgICAgICAgICBpdGVtLmhlaWdodCA9IDMwMFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFpdGVtLnNwYW4pXHJcbiAgICAgICAgICBpdGVtLnNwYW4gPSA4XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtLmlzUmVxdWlyZWQgIT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGl0ZW0uaXNSZXF1aXJlZCA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZW1wVmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgIGZvciAobGV0IHZhbGlkYXRvciBvZiBpdGVtLnZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09IFwicmVxdWlyZWRcIikge1xyXG4gICAgICAgICAgICAgIGl0ZW0uaXNSZXF1aXJlZCA9IHRydWVcclxuICAgICAgICAgICAgICB0ZW1wVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yLnR5cGUgPT0gXCJlbWFpbFwiKSB7XHJcbiAgICAgICAgICAgICAgdGVtcFZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvci50eXBlID09IFwibWF4bGVuZ3RoXCIpIHtcclxuICAgICAgICAgICAgICB0ZW1wVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHZhbGlkYXRvci5tYXhsZW5ndGggPyB2YWxpZGF0b3IubWF4bGVuZ3RoIDogMSkpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yLnR5cGUgPT0gXCJtaW5sZW5ndGhcIikge1xyXG4gICAgICAgICAgICAgIHRlbXBWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodmFsaWRhdG9yLm1pbmxlbmd0aCA/IHZhbGlkYXRvci5taW5sZW5ndGggOiAxKSlcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxpZGF0b3IudHlwZSA9PSBcInRlbHBob25lXCIpIHtcclxuICAgICAgICAgICAgICB0ZW1wVmFsaWRhdG9ycy5wdXNoKHRlbHBob25lVmFsaWRhdG9yKCkpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yLnR5cGUgPT0gXCJwYXR0ZXJuXCIpIHtcclxuICAgICAgICAgICAgICB0ZW1wVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0b3IucGF0dGVyblZhbHVlKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHt2YWx1ZTogdmFsdWUgIT0gdW5kZWZpbmVkID8gdmFsdWUgOiBudWxsLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlID8gaXRlbS5kaXNhYmxlIDogZmFsc2V9XHJcbiAgICAgICAgaWYgKHRlbXBWYWxpZGF0b3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuYXRyRm9ybS5hZGRDb250cm9sKGl0ZW0ua2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRlZmF1bHRWYWx1ZSwgdGVtcFZhbGlkYXRvcnMpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hdHJGb3JtLmFkZENvbnRyb2woaXRlbS5rZXksIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGVmYXVsdFZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiIHRoaXMuYXRyRm9ybVwiLCB0aGlzLmF0ckZvcm0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wYXJlKHZhbHVlOiBhbnksIG9wZXJhdG9yOiBhbnksIHRhcmdldDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNSaWdodCA9IGZhbHNlO1xyXG4gICAgc3dpdGNoIChvcGVyYXRvcikge1xyXG4gICAgICBjYXNlICdlcScgOlxyXG4gICAgICAgIGlmICh2YWx1ZSA9PSB0YXJnZXQpIHtcclxuICAgICAgICAgIGlzUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZ2gnIDpcclxuICAgICAgICBpZiAodmFsdWUgPj0gdGFyZ2V0KSB7XHJcbiAgICAgICAgICBpc1JpZ2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ25vdEVtcHR5JzpcclxuICAgICAgICBpc1JpZ2h0ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBpc1JpZ2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2VtcHR5JzpcclxuICAgICAgICBpc1JpZ2h0ID0gdHJ1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZygnZW1wdHknLCAhIXZhbHVlKVxyXG4gICAgICAgIGlmICghIXZhbHVlKSB7XHJcblxyXG4gICAgICAgICAgaXNSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdCA6XHJcbiAgICAgICAgaXNSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzUmlnaHQ7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzU2hvd0Jhc2Uob3A6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzU2hvdyA9IGZhbHNlO1xyXG4gICAgaWYgKG9wLmxlbmd0aCA+IDEpIHtcclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy5hdHJGb3JtLmdldChvcFswXSkudmFsdWU7XHJcbiAgICAgIGlzU2hvdyA9IHRoaXMuY29tcGFyZSh2YWx1ZSwgb3BbMV0sIG9wWzJdKVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIGlzU2hvdyA9IGZhbHNlO1xyXG5cclxuICAgIHJldHVybiBpc1Nob3c7XHJcbiAgfVxyXG5cclxuICBpc1JlcXVpcmVkKGl0ZW06IEF0ckZvcm1EZXRhaWwpIHtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuICAgIGxldCBpc1JlcXVpcmVkID0gaXRlbS5pc1JlcXVpcmVkO1xyXG4gICAgbGV0IHR5cGUgPSB0eXBlb2YgaXNSZXF1aXJlZDtcclxuICAgIGlmICh0eXBlID09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgIHJldHVybiBpc1JlcXVpcmVkXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJzdHJpbmdcIikge1xyXG5cclxuICAgICAgcmVzdWx0ID0gdGhpcy5pc1Nob3coZmFsc2UsIGlzUmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJpc1JlcXVpcmVkXCIsIHJlc3VsdCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaXNTaG93KGlzSGlkZGVuOiBhbnksIG9wZXJhdG9yOiBhbnkpIHtcclxuICAgIGlmIChpc0hpZGRlbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgaXNTaG93ID0gZmFsc2U7XHJcbiAgICBpZiAoIW9wZXJhdG9yIHx8IG9wZXJhdG9yID09IG51bGwgfHwgb3BlcmF0b3IgPT0gXCJcIikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAob3BlcmF0b3IuaW5kZXhPZignJiYnKSA+IDApIHtcclxuICAgICAgLy8gYXxlcXxiICYmY3xlcXxkXHJcbiAgICAgIGNvbnN0IG9wcyA9IG9wZXJhdG9yLnNwbGl0KCcmJicpO1xyXG4gICAgICBpZiAob3BzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpc1Nob3cgPSB0cnVlXHJcbiAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tJc1Nob3dCYXNlKG9wc1tpXS5zcGxpdCgnfCcpKSkge1xyXG4gICAgICAgICAgICBpc1Nob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yLmluZGV4T2YoJ3x8JykgPiAwKSB7XHJcbiAgICAgIC8vIGF8ZXF8Ynx8Y3xlcXxkXHJcbiAgICAgIGNvbnN0IG9wcyA9IG9wZXJhdG9yLnNwbGl0KCd8fCcpO1xyXG4gICAgICBpZiAob3BzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaXNTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5jaGVja0lzU2hvd0Jhc2Uob3BzW2ldLnNwbGl0KCd8JykpKSB7XHJcbiAgICAgICAgICAgIGlzU2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IG9wID0gb3BlcmF0b3Iuc3BsaXQoXCJ8XCIpO1xyXG4gICAgICBpc1Nob3cgPSB0aGlzLmNoZWNrSXNTaG93QmFzZShvcCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNTaG93O1xyXG4gIH1cclxuXHJcbiAgZ2V0RGljdFZhbHVlKGNvZGU6IHN0cmluZykge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCI5OTk5XCIpO1xyXG4gICAgdGhpcy5kaWN0U2VydmljZS5nZXREaWN0Qnljb2RlKGNvZGUpLnN1YnNjcmliZShcclxuICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdCAhPSBudWxsKVxyXG4gICAgICAgICAgdGhpcy5kaWN0c1tjb2RlXSA9IHJlc3VsdC5kaWN0cztcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuZGljdHNbY29kZV0gPSBbXTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgaW1hZ2VVcGxvYWRDaGFuZ2UoZTogYW55KSB7XHJcbiAgICBpZiAoZS5rZXkpIHtcclxuICAgICAgdGhpcy5hdHJGb3JtLmdldChlLmtleSkuc2V0VmFsdWUoZS52YWx1ZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CZWZvcmVVcGxvYWQoZTogYW55LCBpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkQWN0aW9uLmVtaXQoe2NvZGU6ICdvbkJlZm9yZVVwbG9hZCcsIGRhdGE6IHsuLi5lLmRhdGEsIGtleTogaXRlbS5rZXl9fSlcclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybSgpIHtcclxuICAgIC8vIHRoaXMuYXRyRm9ybS5yZXNldCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJlZGl0b3IgcmVzZXRcIilcclxuICAgIGlmICh0aGlzLmZvcm1PcHRzICYmIHRoaXMuZm9ybU9wdHMuaXRlbXMpIHtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmZvcm1PcHRzLml0ZW1zKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtT3B0cy50eXBlID09ICdhZGQnID8gaXRlbS5kZWZhdWx0VmFsdWUgOiBpdGVtLnZhbHVlO1xyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJpbWFnZVwiKSB7XHJcbiAgICAgICAgICBpdGVtLmltYWdlT3B0cy5rZXkgPSBpdGVtLmtleVxyXG4gICAgICAgICAgbGV0IGltYWdlczogYW55ID0gW107XHJcbiAgICAgICAgICBpZiAoIXZhbHVlKSB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICBsZXQgbGlzdCA9IHZhbHVlLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIGZvciAobGV0IGtleSBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgIT0gXCJcIikge1xyXG4gICAgICAgICAgICAgIGltYWdlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGtleToga2V5LFxyXG4gICAgICAgICAgICAgICAgdWlkOiBcIi0xXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGF0cl9zdGF0aWNfZGF0YXMuT1NTX1VSTCArIGtleVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGl0ZW0uaW1hZ2VPcHRzLmltYWdlTGlzdCA9IGltYWdlcztcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGltYWdlcylcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImVkaXRvclwiKVxyXG4gICAgICAgICAgaWYgKCF2YWx1ZSkgdmFsdWUgPSBcIlwiXHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gXCJzZWxlY3RcIiAmJiB2YWx1ZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gXCJjaGVja2JveFwiICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmF0ckZvcm0uZ2V0KGl0ZW0ua2V5KS5zZXRWYWx1ZSh2YWx1ZSAhPSB1bmRlZmluZWQgPyB2YWx1ZSA6IG51bGwpXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuYXRyRm9ybS5jb250cm9scykge1xyXG4gICAgICAgIHRoaXMuYXRyRm9ybS5jb250cm9sc1tpXS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZWRpdENoYW5nZShkYXRhOiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5xdWlsbENoYW5nZS5lbWl0KHtjb2RlOiAncXVpbGxDaGFuZ2UnLCBlOiBkYXRhLCBmb3JtSXRlbTogaXRlbX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgbGV0IG9iajogYW55ID0ge1xyXG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgbW9kZTogdGhpcy5mb3JtT3B0cy50eXBlLFxyXG4gICAgICB2YWx1ZToge31cclxuICAgIH07XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmF0ckZvcm0udmFsdWU7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcclxuICAgICAgLy8gLy9jb25zb2xlLmxvZyhrZXkpO1xyXG4gICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB2YWx1ZVtrZXldICE9IG51bGwgJiYgdmFsdWVba2V5XSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodmFsdWVba2V5XSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGF0ZVR5cGVzID0gW1xyXG4gICAgICAgICAgICAgICAnZGF0ZScgLCdkYXlSYW5nZScsJ2RhdGVUaW1lJyAsJ2RhdGVSYW5nZSdcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKGRhdGVUeXBlcy5zb21lKGR0eXBlID0+IGl0ZW0udHlwZSA9PSBkdHlwZSkpIHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgaXRlbS5kYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgJ3l5eXktTU0tZGQgMDA6MDA6MDAnLCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVUaW1lJykge1xyXG4gICAgICAgICAgICAgICAgb2JqLnZhbHVlW2tleV0gPSBmb3JtYXREYXRlKG5ldyBEYXRlKE51bWJlcih2YWx1ZVtrZXldKSksICd5eXl5LU1NLWRkIEhIOm1tOnNzJywgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrZXldIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGRhdGVGb3JtYXQgPSBpdGVtLmRhdGVGb3JtYXQgPyBpdGVtLmRhdGVGb3JtYXQgOiAneXl5eS1NTS1kZCAwMDowMDowMCc7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVSYW5nZScpIHtcclxuICAgICAgICAgICAgICBsZXQgZGF0ZUFycjogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgbGV0IG56U2hvd1RpbWUgPSBpdGVtLm56U2hvd1RpbWVcclxuICAgICAgICAgICAgICBpZiAobnpTaG93VGltZSkge1xyXG4gICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJ1xyXG4gICAgICAgICAgICAgICAgaWYgKG56U2hvd1RpbWUubnpGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkICcgKyBuelNob3dUaW1lLm56Rm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmb3IgKGxldCBkIG9mIHZhbHVlW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGVBcnIucHVzaChmb3JtYXREYXRlKChkIGFzIERhdGUpLCBkYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGRhdGVBcnI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdjYXNjYWRlcicpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ3NlbGVjdCcgJiYgaXRlbS5uek1vZGUgPT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtVmFpbGQoKTogYW55IHtcclxuICAgIGxldCBvYmo6IGFueSA9IHtcclxuICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgIG1vZGU6IHRoaXMuZm9ybU9wdHMudHlwZSxcclxuICAgICAgdmFsdWU6IHt9XHJcbiAgICB9O1xyXG4gICAgZm9yIChjb25zdCBpIGluIHRoaXMuYXRyRm9ybS5jb250cm9scykge1xyXG4gICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgdGhpcy5hdHJGb3JtLmNvbnRyb2xzW2ldLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICAgIG9iai5pc1ZhbGlkID0gdGhpcy5hdHJGb3JtLnZhbGlkXHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmF0ckZvcm0udmFsdWU7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcclxuICAgICAgY29uc29sZS5sb2coa2V5KTtcclxuICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KGtleSkgJiYgdmFsdWVba2V5XSAhPSBudWxsICYmIHZhbHVlW2tleV0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZm9ybU9wdHMuaXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ICE9IGtleSkge1xyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgaXRlbS5kYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gZm9ybWF0RGF0ZShuZXcgRGF0ZShOdW1iZXIodmFsdWVba2V5XSkpLCAneXl5eS1NTS1kZCAwMDowMDowMCcsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVUaW1lJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gZm9ybWF0RGF0ZShuZXcgRGF0ZShOdW1iZXIodmFsdWVba2V5XSkpLCAneXl5eS1NTS1kZCBISDptbTpzcycsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmZvcm1PcHRzLml0ZW1zKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSAhPSBrZXkpIHtcclxuICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZGF0ZUZvcm1hdCA9IGl0ZW0uZGF0ZUZvcm1hdCA/IGl0ZW0uZGF0ZUZvcm1hdCA6ICd5eXl5LU1NLWRkIDAwOjAwOjAwJztcclxuICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZVJhbmdlJykge1xyXG4gICAgICAgICAgICAgIGxldCBkYXRlQXJyOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBkIG9mIHZhbHVlW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGVBcnIucHVzaChmb3JtYXREYXRlKChkIGFzIERhdGUpLCBkYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGRhdGVBcnI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdjYXNjYWRlcicpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ3NlbGVjdCcgJiYgaXRlbS5uek1vZGUgPT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBzaG93VGltZShpdGVtOiBhbnkpIHtcclxuICAgIGlmIChpdGVtLm56U2hvd1RpbWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW0ubnpTaG93VGltZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5kYXRlRm9ybWF0IHx8IGl0ZW0uZGF0ZUZvcm1hdCA9PSBcInl5eXktTU0tZGRcIikge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIGxldCBmb3JtYXQgPSBpdGVtLmRhdGVGb3JtYXQ7XHJcbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoXCJISFwiKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChmb3JtYXQuaW5kZXhPZihcIm1tXCIpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1hdC5pbmRleE9mKFwic3NcIikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZWZOdW1Gb3JtYXQgPSAgKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKClcclxuICB9XHJcbn1cclxuIiwiPGF0ci12aWV3LWZvcm0gKm5nSWY9XCJmb3JtT3B0cy50eXBlID09ICd2aWV3J1wiIFtkaWN0c109XCJkaWN0c1wiIFthdHJGb3JtXT1cImF0ckZvcm1cIiBbdGl0bGVdPVwidmlld1RpdGxlXCJcclxuICAgICAgICAgICAgICAgW2Zvcm1PcHRzXT1cImZvcm1PcHRzXCI+PC9hdHItdmlldy1mb3JtPlxyXG5cclxuPGZvcm0gbnotZm9ybSBbZm9ybUdyb3VwXT1cImF0ckZvcm1cIiAqbmdJZj1cImZvcm1PcHRzLnR5cGUgIT0gJ3ZpZXcnXCI+XHJcbiAgPGRpdiBuei1yb3cgbnpHdXR0ZXI9XCI4XCIgbnpUeXBlPVwiZmxleFwiIG56QWxpZ249XCJ0b3BcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9ybU9wdHMuaXRlbXNcIj5cclxuICAgICAgPGRpdiBuei1jb2wgbnpTcGFuPVwiMjRcIiBjbGFzcz1cImZvcm0tdGl0bGVcIiAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGl0bGUnXCI+XHJcbiAgICAgICAge3tpdGVtLmxhYmVsfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgbnotY29sIFtuelNwYW5dPVwiaXRlbS5zcGFuXCIgKm5nSWY9XCJpc1Nob3coaXRlbS5pc0hpZGRlbixpdGVtLm9wZXJhdG9yKVwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50ICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS5maXJzdFRlbXBcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPG56LWZvcm0taXRlbSAqbmdJZj1cIml0ZW0udHlwZSAhPSAndGl0bGUnXCI+XHJcbiAgICAgICAgICA8bnotZm9ybS1sYWJlbCBbbnpTbV09XCJpdGVtLmxzcGFuXCIgW256WHNdPVwiMjRcIiBbbnpSZXF1aXJlZF09XCJpc1JlcXVpcmVkKGl0ZW0pXCI+e3tpdGVtLmxhYmVsfX08L256LWZvcm0tbGFiZWw+XHJcbiAgICAgICAgICA8bnotZm9ybS1jb250cm9sIFtuelNtXT1cIml0ZW0uY3NwYW5cIiBbbnpYc109XCIyNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDt3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgIDxuei10cmVlLXNlbGVjdCAqbmdJZj1cIml0ZW0udHlwZSA9PSAndHJlZVNlbGVjdCcgJiYgaXRlbS50cmVlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek5vZGVzXT1cIml0ZW0udHJlZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEZWZhdWx0RXhwYW5kQWxsXT1cIml0ZW0uZXhwYW5kQWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpTaG93U2VhcmNoPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56SGlkZVVuTWF0Y2hlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpTaG93U2VhcmNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256QWxsb3dDbGVhcl09XCIhaXRlbS5ub3ROdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256TXVsdGlwbGVdPVwiaXRlbS5zZWxlY3RVcmwuaXNNdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekRpc2FibGVkXT1cIml0ZW0ucmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmb3JtQ2hhbmdlKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56VmlydHVhbEhlaWdodD1cIjMzMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9uei10cmVlLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8bnotY29sb3ItcGlja2VyICpuZ0lmPVwiaXRlbS50eXBlID09ICdjb2xvcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCIgKG5nTW9kZWxDaGFuZ2UpPVwiZm9ybUNoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seVwiPjwvbnotY29sb3ItcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwhLS0gPG56LXRyZWUtc2VsZWN0ICpuZ0lmPVwiaXRlbS50eXBlID09ICd0cmVlU2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWl0ZW0ubm90TnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek5vZGVzXT1cIml0ZW0udHJlZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuelNob3dTZWFyY2g9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpIaWRlVW5NYXRjaGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56UGxhY2VIb2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpNdWx0aXBsZV09XCJpdGVtLnNlbGVjdFVybC5pc011bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seVwiIHN0eWxlPVwiZmxleDogMVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbnotdHJlZS1zZWxlY3Q+IC0tPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VsZWN0LWljb25zICpuZ0lmPVwiaXRlbS50eXBlID09ICdzZWxlY3RJY29uJ1wiIG56LWlucHV0IHBsYWNlaG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpdGVtLnJlYWRvbmx5IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCI+XHJcbiAgICAgICAgICAgICAgPC9hcHAtc2VsZWN0LWljb25zPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGV4dCdcIiBuei1pbnB1dCBwbGFjZWhvbGRlcj1cInt7aXRlbS5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZm9ybUNoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seSB8fCBmb3JtT3B0cy50eXBlID09ICd2aWV3J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIi8+XHJcbiAgICAgICAgICAgICAgPG56LXN3aXRjaCAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3N3aXRjaCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCJpdGVtLnJlYWRvbmx5IHx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZvcm1DaGFuZ2UoJGV2ZW50LGl0ZW0pXCIgW256Q2hlY2tlZENoaWxkcmVuXT1cIml0ZW0ubnpDaGVja2VkQ2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW256VW5DaGVja2VkQ2hpbGRyZW5dPVwiaXRlbS5uelVuQ2hlY2tlZENoaWxkcmVuXCI+PC9uei1zd2l0Y2g+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGV4dGFyZWEnXCIgbnotaW5wdXQgW3Jvd3NdPVwiaXRlbS5yb3dzXCIgcGxhY2Vob2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIiBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seXx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICA8bnotaW5wdXQtbnVtYmVyICpuZ0lmPVwiaXRlbS50eXBlID09ICdudW1iZXInXCIgbnpQbGFjZUhvbGRlcj1cInt7aXRlbS5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZvcm1DaGFuZ2UoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekZvcm1hdHRlcl09XCJpdGVtLmRhdGVGb3JtYXQgfHwgZGVmTnVtRm9ybWF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelN0ZXBdPVwiaXRlbS5uelN0ZXAgfHwgMVwiIFtuelByZWNpc2lvbl09XCJpdGVtLm56UHJlY2lzaW9uIHx8IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256TWluXT1cIml0ZW0ubWluTnVtYmVyXCIgW256TWF4XT1cIml0ZW0ubWF4TnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWlucHV0LW51bWJlcj5cclxuICAgICAgICAgICAgICA8bnotcmFkaW8tZ3JvdXAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3JhZGlvJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBuei1yYWRpbyAqbmdGb3I9XCJsZXQgbyBvZiBpdGVtLmRpY3RMaXN0XCIgW256VmFsdWVdPVwiby52YWx1ZVwiPnt7by5sYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L256LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgIDxuei1jaGVja2JveC13cmFwcGVyICpuZ0lmPVwiaXRlbS50eXBlID09ICdjaGVja2JveCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG56LXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbyBvZiBpdGVtLmRpY3RMaXN0XCIgbnotY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBuei1jaGVja2JveCBbbnpWYWx1ZV09XCJvLnZhbHVlXCI+e3tvLmxhYmVsfX08L2xhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgIDxuei1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmb3JtQ2hhbmdlKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgIG56U2VydmVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBbbnpNb2RlXT1cIml0ZW0ubnpNb2RlIHx8ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgICBuekRpc2FibGVkPVwie3tpdGVtLnJlYWRvbmx5fHwgZm9ybU9wdHMudHlwZSA9PSAndmlldyd9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgbyBvZiBkaWN0c1tpdGVtLmRpY3RDb2RlXVwiIFtuekxhYmVsXT1cIm8udHlwZU5hbWVcIiBbbnpWYWx1ZV09XCJvLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPG56LXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdzZWxlY3RjJ1wiXHJcbiAgICAgICAgICAgICAgICBuelNob3dTZWFyY2hcclxuICAgICAgICAgICAgICAgIG56UGxhY2VIb2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgW256TW9kZV09XCJpdGVtLm56TW9kZSB8fCAnZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seXx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdENoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuei1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2YgaXRlbS5kaWN0TGlzdFwiIFtuekxhYmVsXT1cIm8ubGFiZWxcIiBbbnpWYWx1ZV09XCJvLnZhbHVlXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPG56LWNhc2NhZGVyIFtuekRpc2FibGVkXT1cIml0ZW0ucmVhZG9ubHlcIiBzdHlsZT1cImZsZXg6IDFcIiBbbnpBbGxvd0NsZWFyXT1cIiFpdGVtLm5vdE51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpWYWx1ZVByb3BlcnR5XT1cIml0ZW0udmFsdWVQcm9wZXJ0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiICpuZ0lmPVwiaXRlbS50eXBlID09ICdjYXNjYWRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpDaGFuZ2VPblNlbGVjdF09XCJpdGVtLmFsbG93U2VsZWN0Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek9wdGlvbnNdPVwiaXRlbS5kaWN0TGlzdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWNhc2NhZGVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICA8bnotZGF0ZS1waWNrZXIgKm5nSWY9XCIhaXRlbS5kYXRlTW9kZVwiIFtuekZvcm1hdF09XCJpdGVtLmRhdGVGb3JtYXQgPyBpdGVtLmRhdGVGb3JtYXQgOiAneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dUaW1lXT1cInNob3dUaW1lKGl0ZW0pXCIgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCJmb3JtT3B0cy50eXBlID09ICd2aWV3JyB8fCBpdGVtLnJlYWRvbmx5IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiPjwvbnotZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8bnotZGF0ZS1waWNrZXIgKm5nSWY9XCJpdGVtLmRhdGVNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZsZXg6IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek1vZGVdPVwiaXRlbS5kYXRlTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiZm9ybU9wdHMudHlwZSA9PSAndmlldycgfHwgaXRlbS5yZWFkb25seSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bnotcmFuZ2UtcGlja2VyICpuZ0lmPVwiaXRlbS50eXBlID09ICdkYXRlUmFuZ2UnXCIgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dUaW1lXT1cIml0ZW0ubnpTaG93VGltZT8gaXRlbS5uelNob3dUaW1lIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpGb3JtYXRdPVwiaXRlbS5uelNob3dUaW1lICYmIGl0ZW0ubnpTaG93VGltZS5uekZvcm1hdCA/ICgneXl5eS1NTS1kZCAnKyBpdGVtLm56U2hvd1RpbWUubnpGb3JtYXQpIDogJ3l5eXktTU0tZGQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIlsn5byA5aeL5pe26Ze0JywgJ+e7k+adn+aXtumXtCddXCI+PC9uei1yYW5nZS1waWNrZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0udHlwZSA9PSAnaW1hZ2UnXCIgbnotaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiIFtoaWRkZW5dPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8YXRyLWltZy11cGxvYWQgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2ltYWdlJ1wiIFsob3B0cyldPVwiaXRlbS5pbWFnZU9wdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25CZWZvcmVVcGxvYWQpPVwib25CZWZvcmVVcGxvYWQoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFmdGVyQ2hhbmdlKT1cImltYWdlVXBsb2FkQ2hhbmdlKCRldmVudClcIj48L2F0ci1pbWctdXBsb2FkPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgIDxlZGl0b3IgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2VkaXRvcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCIgW2NvbmZpZ109XCJ7aW5pdGlhbEZyYW1lSGVpZ2h0Oml0ZW0uaGVpZ2h0fVwiID48L2VkaXRvcj4tLT5cclxuICAgICAgICAgICAgICA8YXBwLXF1aWxsLWVkaXRvciAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZWRpdG9yJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVkaXRDaGFuZ2UoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVzXT1cIntoZWlnaHQ6aXRlbS5oZWlnaHQgPiAwID8gaXRlbS5oZWlnaHQgKyAncHgnIDogJzI1MHB4Jyx3aWR0aDonMTAwJSd9XCI+PC9hcHAtcXVpbGwtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3dvcmQnXCIgW2lubmVySFRNTF09XCJpdGVtLnZhbHVlIHxkZWZWYWw6aXRlbS5kZWZhdWx0VmFsdWUgfHNhZmVIdG1sXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnYnV0dG9ucydcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBpdGVtLmJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtuelR5cGVdPVwiYnRuLmJ0blR5cGUgfGRlZlZhbDogJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFudC1idG4gYW50LWJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4XCIgKm5nSWY9XCJidG4uaXNTaG93IHx8IGlzU2hvdyhmYWxzZSxidG4ub3BlcmF0b3IpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9BY3Rpb24oYnRuLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2J0bi5uYW1lfX08L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2YWxpZCBvZiBpdGVtLnZhbGlkYXRvcnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHJGb3JtLmdldChpdGVtLmtleSkuaGFzRXJyb3IodmFsaWQudHlwZSkgJiYgKGF0ckZvcm0uZ2V0KGl0ZW0ua2V5KS5kaXJ0eSApXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjpyZWQ7ICAgIGhlaWdodDogMTVweDttYXJnaW46IDA7bGluZS1oZWlnaHQ6IDE1cHg7XCI+e3t2YWxpZC5lcnJvckxhYmVsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cImRlZmF1bHRcIiBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO2NvbG9yOiBibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZW5kc1wiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAge3tpdGVtLmVuZHN9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpdGVtLmJ1dHRvbj8uaXNTaG93XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYW50LWJ0biBhbnQtYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvQWN0aW9uKGl0ZW0uYnV0dG9uLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5idXR0b24ubmFtZX19PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ucHJvcG9zYWxcIiBzdHlsZT1cImNvbG9yOiByZWQ7d2lkdGg6IDEwMCVcIj57e2l0ZW0ucHJvcG9zYWx9fTwvZGl2PlxyXG4gICAgICAgICAgPC9uei1mb3JtLWNvbnRyb2w+XHJcbiAgICAgICAgPC9uei1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLnRlbXBcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Zvcm0+XHJcbiJdfQ==
624
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBWSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUF1QyxrQkFBa0IsRUFBRSxVQUFVLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFLM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXhELE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsMkNBQTJDO0lBQzNDLFlBQW9CLFlBQTBCLEVBQVUsV0FBd0IsRUFDNUQsRUFBc0IsRUFBVSxXQUF3QixFQUFVLFFBQWtCLEVBQTZCLE1BQWM7UUFEL0gsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUM1RCxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUE2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVm5KLFVBQUssR0FBUSxFQUFFLENBQUM7UUFHTixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLElB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bEgsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEluamVjdG9yLCBJbmplY3QsIExPQ0FMRV9JRCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge3RlbHBob25lVmFsaWRhdG9yfSBmcm9tICcuLi92YWxpZGF0b3JzL2F0ci12YWxpZHRvcnMnO1xyXG5pbXBvcnQge2Zvcm1hdERhdGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7U2hhcmVTZXJ2aWNlfSBmcm9tICcuLi9zaGFyZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBBdHJGb3JtRGV0YWlsLCBBdHJGb3JtT3B0LCBGb3JtQWN0aW9uLCBmb3JtQnV0dG9ufSBmcm9tIFwiLi4vLi4vLi4vY29yZS9iYXNlL2F0ci1jb21tb25cIjtcclxuaW1wb3J0IHtEaWN0U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2VydmljZXMvZGljdC9kaWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5pbXBvcnQge0h0dHBTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXRyLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF0ckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkaWN0czogYW55ID0ge307XHJcbiAgYXRyRm9ybTogVW50eXBlZEZvcm1Hcm91cCB8IGFueTtcclxuICBASW5wdXQoKSBmb3JtT3B0czogQXRyRm9ybU9wdCB8IGFueTtcclxuICBAT3V0cHV0KCkgZm9ybUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUFjdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgdXBsb2FkQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHF1aWxsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgdmlld1RpdGxlID0gJyc7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNoYXJlU2VydmljZTogU2hhcmVTZXJ2aWNlLCBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByaXZhdGUgZGljdFNlcnZpY2U6IERpY3RTZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXRyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRMYXlvdXQoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoIWl0ZW0ubHNwYW4pIHtcclxuICAgICAgaXRlbS5sc3BhbiA9IDI0O1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmNzcGFuKSB7XHJcbiAgICAgIGl0ZW0uY3NwYW4gPSAyNDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdENoYW5nZShldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbikge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxyXG4gICAgfVxyXG4gICAgbGV0IGFjdGlvbjogRm9ybUFjdGlvbiA9IHtcclxuICAgICAgbmFtZTogaXRlbS5rZXksXHJcbiAgICAgIGNvZGU6ICdzZWxlY3RDaGFnbmUnLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZm9ybUFjdGlvbi5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBmb3JtQ2hhbmdlKGV2ZW50OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5mb3JtQWN0aW9uLmVtaXQoe1xyXG4gICAgICBuYW1lOiAnZm9ybUNoYW5nZScsXHJcbiAgICAgIGNvZGU6IGl0ZW0ua2V5LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb0FjdGlvbihpdGVtOiBmb3JtQnV0dG9uLCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmIChldmVudC5zdG9wUHJvcGFnYXRpb24pIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgIH1cclxuICAgIGxldCBhY3Rpb246IEZvcm1BY3Rpb24gPSB7XHJcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgY29kZTogaXRlbS5jb2RlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZm9ybUFjdGlvbi5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5hdHJGb3JtLmdldChrZXkpPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZShrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXRyRm9ybS5nZXQoa2V5KT8udmFsdWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RGljTGlzdChpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuc2hhcmVTZXJ2aWNlLmdldERpY0xpc3QoaXRlbSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMuc3RhdHVzID09IDIwMCAmJiByZXMuaXRlbSkge1xyXG4gICAgICAgIGl0ZW0gPSByZXMuaXRlbVxyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgY29udihkYXRhczogYW55LCBrZXlzOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGRhdGFzLm1hcCgoY2hpbGQ6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgaXRlbTogYW55ID0ge307XHJcbiAgICAgIGlmIChrZXlzKSB7XHJcbiAgICAgICAga2V5cy5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCB2cyA9IHYuc3BsaXQoXCJ8XCIpO1xyXG4gICAgICAgICAgY2hpbGRbdnNbMF1dID0gY2hpbGRbdnNbMV1dO1xyXG4gICAgICAgICAgaXRlbVt2c1swXV0gPSBjaGlsZFt2c1sxXV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbSA9IGNoaWxkO1xyXG4gICAgICB9XHJcbiAgICAgIGNoaWxkLm56VmFsdWVQcm9wZXJ0eSA9IGl0ZW07XHJcbiAgICAgIGlmIChjaGlsZC5jaGlsZHJlbikge1xyXG4gICAgICAgIGNoaWxkLmNoaWxkcmVuID0gdGhpcy5jb252KGNoaWxkLmNoaWxkcmVuLCBrZXlzKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoaWxkLmlzTGVhZiA9IHRydWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FzY2FkZXJEZWZhdWx0VmFsdWUobGlzdDogYW55LCBpbmRleDogYW55LCB2YWx1ZTogYW55LCBrZXlOYW1lOiBhbnkpIHtcclxuICAgIGxpc3QuZm9yRWFjaCgoZGljOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRpY1trZXlOYW1lXSA9PSB2YWx1ZVtpbmRleF1ba2V5TmFtZV0pIHtcclxuICAgICAgICB2YWx1ZVtpbmRleF0gPSB7bGFiZWw6IGRpYy5sYWJlbCwgdmFsdWU6IGRpYy52YWx1ZX07XHJcbiAgICAgICAgaWYgKGRpYy5jaGlsZHJlbikge1xyXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmdldENhc2NhZGVyRGVmYXVsdFZhbHVlKGRpYy5jaGlsZHJlbiwgaW5kZXggKyAxLCB2YWx1ZSwga2V5TmFtZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gdmFsdWVcclxuICB9XHJcblxyXG4gIGdldFRyZWUobGlzdCwga2V5cykge1xyXG4gICAgcmV0dXJuIGxpc3QubWFwKHYgPT4ge1xyXG4gICAgICBrZXlzLmZvckVhY2goKGtleTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGFyciA9IGtleS5zcGxpdChcInxcIik7XHJcbiAgICAgICAgdlthcnJbMF1dID0gdlthcnJbMV1dO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHYuY2hpbGRyZW4pIHtcclxuICAgICAgICB2LmNoaWxkcmVuID0gdGhpcy5nZXRUcmVlKHYuY2hpbGRyZW4sIGtleXMpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdi5pc0xlYWYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtT3B0cyAmJiB0aGlzLmZvcm1PcHRzLml0ZW1zKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgIC8vIHRoaXMuYXRyRm9ybS5hZGRDb250cm9sKGl0ZW0ua2V5LCBuZXcgRm9ybUNvbnRyb2woKSk7XHJcbiAgICAgICAgdGhpcy5yZXNldExheW91dChpdGVtKVxyXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybU9wdHMudHlwZSA9PSAnYWRkJyA/IGl0ZW0uZGVmYXVsdFZhbHVlIDogaXRlbS52YWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnY2hlY2tib3gnKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5mb3JtT3B0cy50eXBlID09ICdhZGQnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gaXRlbS5kaWN0TGlzdC5maWx0ZXIoKHY6IGFueSkgPT4gdi5pc1NlbGVjdCkubWFwKChkaWM6IGFueSkgPT4gZGljLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAndHJlZVNlbGVjdCcgJiYgaXRlbS5zZWxlY3RVcmwudXJsKSB7XHJcbiAgICAgICAgICBsZXQga2V5cyA9IGl0ZW0uc2VsZWN0VXJsLmNvbnZlcnQuc3BsaXQoJywnKTtcclxuICAgICAgICAgIHRoaXMuaHR0cFNlcnZpY2UucG9zdChpdGVtLnNlbGVjdFVybC51cmwsIHt9LCBUb29sc1V0aWwuZ2V0SHR0cE9wdGlvbnMoKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0udHJlZUxpc3QgPSB0aGlzLmdldFRyZWUocmVzLmRhdGEsIGtleXMpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbS50eXBlID09ICdjYXNjYWRlcicgJiYgaXRlbS5zZWxlY3RVcmwudXJsKSB7XHJcbiAgICAgICAgICBsZXQga2V5czogYW55ID0gbnVsbFxyXG4gICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0VXJsLmNvbnZlcnQpIHtcclxuICAgICAgICAgICAga2V5cyA9IGl0ZW0uc2VsZWN0VXJsLmNvbnZlcnQuc3BsaXQoJywnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghaXRlbS52YWx1ZVByb3BlcnR5KSBpdGVtLnZhbHVlUHJvcGVydHkgPSBcInZhbHVlXCJcclxuICAgICAgICAgIC8vIGxldCB2YWx1ZVN0ckxpc3Q6YW55ID0gW11cclxuICAgICAgICAgIGlmIChpdGVtLnNlbGVjdFVybC51cmwpIHtcclxuICAgICAgICAgICAgbGV0IHNlbGVjdFVybCA9IGl0ZW0uc2VsZWN0VXJsO1xyXG4gICAgICAgICAgICBpZiAoc2VsZWN0VXJsLmhvc3QgPT0gJ29zcycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLmdldE9zcyhzZWxlY3RVcmwudXJsKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uZGljdExpc3QgPSB0aGlzLmNvbnYoSlNPTi5wYXJzZShyZXMpLCBrZXlzKVxyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgPSB0aGlzLmdldENhc2NhZGVyRGVmYXVsdFZhbHVlKGl0ZW0uZGljdExpc3QsIDAsIHZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAvLyBpZihpdGVtLnNob3dLZXkpe1xyXG4gICAgICAgICAgICAgICAgICAvLyAgIHZhbHVlID0gdGhpcy5nZXRDYXNjYWRlckRlZmF1bHRWYWx1ZShpdGVtLmRpY3RMaXN0LCAwLCB2YWx1ZSxpdGVtLmtleU5hbWUsaXRlbS52YWx1ZVByb3BlcnR5KVxyXG4gICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICAgIC8vIGZvcihsZXQgaXRlbSBvZiB2YWx1ZSl7XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgdmFsdWVTdHJMaXN0LnB1c2goaXRlbS52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGl0ZW0ua2V5LCB2YWx1ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaHR0cFNlcnZpY2UucG9zdChzZWxlY3RVcmwudXJsLCB7fSwgVG9vbHNVdGlsLmdldEh0dHBPcHRpb25zKCkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaXRlbS5kaWN0TGlzdCA9IHRoaXMuY29udihyZXMuZGF0YSwga2V5cylcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHZhbHVlID0gdGhpcy5nZXRDYXNjYWRlckRlZmF1bHRWYWx1ZShpdGVtLmRpY3RMaXN0LCAwLCB2YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgLy8gaWYoaXRlbS5zaG93S2V5KXtcclxuICAgICAgICAgICAgICAgICAgLy8gICB2YWx1ZSA9IHRoaXMuZ2V0Q2FzY2FkZXJEZWZhdWx0VmFsdWUoaXRlbS5kaWN0TGlzdCwgMCwgdmFsdWUsaXRlbS5rZXlOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICAgIC8vIGZvcihsZXQgaXRlbSBvZiB2YWx1ZSl7XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgdmFsdWVTdHJMaXN0LnB1c2goaXRlbS52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGl0ZW0ua2V5LCB2YWx1ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcInNlbGVjdFwiKSB7XHJcbiAgICAgICAgICB0aGlzLmdldERpY3RWYWx1ZShpdGVtLmRpY3RDb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnc2VsZWN0YycpIHtcclxuICAgICAgICAgIGlmICghaXRlbS5kaWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RVcmwgJiYgaXRlbS5zZWxlY3RVcmwuaWdub3JlRGljdExpc3QpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGljTGlzdChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcInRleHRhcmVhXCIgJiYgIWl0ZW0ucm93cylcclxuICAgICAgICAgIGl0ZW0ucm93cyA9IDU7XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcImltYWdlXCIpIHtcclxuICAgICAgICAgIGl0ZW0uaW1hZ2VPcHRzLmtleSA9IGl0ZW0ua2V5XHJcbiAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgbGV0IGltYWdlczogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBsaXN0OnN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgIGlmKGl0ZW0uaW1hZ2VPcHRzLnNwbGl0U3RyKXtcclxuICAgICAgICAgICAgICBsaXN0ID0gdmFsdWUuc3BsaXQoaXRlbS5pbWFnZU9wdHMuc3BsaXRTdHIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxpc3QgPSBbdmFsdWVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAga2V5OiBrZXksXHJcbiAgICAgICAgICAgICAgICB1aWQ6IFwiLTFcIixcclxuICAgICAgICAgICAgICAgIHVybDogVG9vbHNVdGlsLmdldE9zc1VybChrZXkpXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpdGVtLmltYWdlT3B0cy5pbWFnZUxpc3QgPSBpbWFnZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2VkaXRvcicpIHtcclxuICAgICAgICAgIGlmICghdmFsdWUpIHZhbHVlID0gXCJcIlxyXG4gICAgICAgICAgaWYgKCFpdGVtLmhlaWdodClcclxuICAgICAgICAgICAgaXRlbS5oZWlnaHQgPSAzMDBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghaXRlbS5zcGFuKVxyXG4gICAgICAgICAgaXRlbS5zcGFuID0gOFxyXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbS5pc1JlcXVpcmVkICE9ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmVxdWlyZWQgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGVtcFZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCB2YWxpZGF0b3Igb2YgaXRlbS52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PSBcInJlcXVpcmVkXCIpIHtcclxuICAgICAgICAgICAgICBpdGVtLmlzUmVxdWlyZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgdGVtcFZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvci50eXBlID09IFwiZW1haWxcIikge1xyXG4gICAgICAgICAgICAgIHRlbXBWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbClcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxpZGF0b3IudHlwZSA9PSBcIm1heGxlbmd0aFwiKSB7XHJcbiAgICAgICAgICAgICAgdGVtcFZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh2YWxpZGF0b3IubWF4bGVuZ3RoID8gdmFsaWRhdG9yLm1heGxlbmd0aCA6IDEpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvci50eXBlID09IFwibWlubGVuZ3RoXCIpIHtcclxuICAgICAgICAgICAgICB0ZW1wVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHZhbGlkYXRvci5taW5sZW5ndGggPyB2YWxpZGF0b3IubWlubGVuZ3RoIDogMSkpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yLnR5cGUgPT0gXCJ0ZWxwaG9uZVwiKSB7XHJcbiAgICAgICAgICAgICAgdGVtcFZhbGlkYXRvcnMucHVzaCh0ZWxwaG9uZVZhbGlkYXRvcigpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvci50eXBlID09IFwicGF0dGVyblwiKSB7XHJcbiAgICAgICAgICAgICAgdGVtcFZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odmFsaWRhdG9yLnBhdHRlcm5WYWx1ZSkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSB7dmFsdWU6IHZhbHVlICE9IHVuZGVmaW5lZCA/IHZhbHVlIDogbnVsbCwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZSA/IGl0ZW0uZGlzYWJsZSA6IGZhbHNlfVxyXG4gICAgICAgIGlmICh0ZW1wVmFsaWRhdG9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmF0ckZvcm0uYWRkQ29udHJvbChpdGVtLmtleSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbChkZWZhdWx0VmFsdWUsIHRlbXBWYWxpZGF0b3JzKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYXRyRm9ybS5hZGRDb250cm9sKGl0ZW0ua2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRlZmF1bHRWYWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIiB0aGlzLmF0ckZvcm1cIiwgdGhpcy5hdHJGb3JtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGFyZSh2YWx1ZTogYW55LCBvcGVyYXRvcjogYW55LCB0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzUmlnaHQgPSBmYWxzZTtcclxuICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcclxuICAgICAgY2FzZSAnZXEnIDpcclxuICAgICAgICBpZiAodmFsdWUgPT0gdGFyZ2V0KSB7XHJcbiAgICAgICAgICBpc1JpZ2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2doJyA6XHJcbiAgICAgICAgaWYgKHZhbHVlID49IHRhcmdldCkge1xyXG4gICAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdub3RFbXB0eSc6XHJcbiAgICAgICAgaXNSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlbXB0eSc6XHJcbiAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2VtcHR5JywgISF2YWx1ZSlcclxuICAgICAgICBpZiAoISF2YWx1ZSkge1xyXG5cclxuICAgICAgICAgIGlzUmlnaHQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQgOlxyXG4gICAgICAgIGlzUmlnaHQgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpc1JpZ2h0O1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJc1Nob3dCYXNlKG9wOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1Nob3cgPSBmYWxzZTtcclxuICAgIGlmIChvcC5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMuYXRyRm9ybS5nZXQob3BbMF0pLnZhbHVlO1xyXG4gICAgICBpc1Nob3cgPSB0aGlzLmNvbXBhcmUodmFsdWUsIG9wWzFdLCBvcFsyXSlcclxuICAgIH0gZWxzZVxyXG4gICAgICBpc1Nob3cgPSBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gaXNTaG93O1xyXG4gIH1cclxuXHJcbiAgaXNSZXF1aXJlZChpdGVtOiBBdHJGb3JtRGV0YWlsKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICBsZXQgaXNSZXF1aXJlZCA9IGl0ZW0uaXNSZXF1aXJlZDtcclxuICAgIGxldCB0eXBlID0gdHlwZW9mIGlzUmVxdWlyZWQ7XHJcbiAgICBpZiAodHlwZSA9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICByZXR1cm4gaXNSZXF1aXJlZFxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RyaW5nXCIpIHtcclxuXHJcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNTaG93KGZhbHNlLCBpc1JlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwiaXNSZXF1aXJlZFwiLCByZXN1bHQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGlzU2hvdyhpc0hpZGRlbjogYW55LCBvcGVyYXRvcjogYW55KSB7XHJcbiAgICBpZiAoaXNIaWRkZW4pIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgbGV0IGlzU2hvdyA9IGZhbHNlO1xyXG4gICAgaWYgKCFvcGVyYXRvciB8fCBvcGVyYXRvciA9PSBudWxsIHx8IG9wZXJhdG9yID09IFwiXCIpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yLmluZGV4T2YoJyYmJykgPiAwKSB7XHJcbiAgICAgIC8vIGF8ZXF8YiAmJmN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnJiYnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaXNTaG93ID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNoZWNrSXNTaG93QmFzZShvcHNbaV0uc3BsaXQoJ3wnKSkpIHtcclxuICAgICAgICAgICAgaXNTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChvcGVyYXRvci5pbmRleE9mKCd8fCcpID4gMCkge1xyXG4gICAgICAvLyBhfGVxfGJ8fGN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnfHwnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlzU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tJc1Nob3dCYXNlKG9wc1tpXS5zcGxpdCgnfCcpKSkge1xyXG4gICAgICAgICAgICBpc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcCA9IG9wZXJhdG9yLnNwbGl0KFwifFwiKTtcclxuICAgICAgaXNTaG93ID0gdGhpcy5jaGVja0lzU2hvd0Jhc2Uob3ApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzU2hvdztcclxuICB9XHJcblxyXG4gIGdldERpY3RWYWx1ZShjb2RlOiBzdHJpbmcpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiOTk5OVwiKTtcclxuICAgIHRoaXMuZGljdFNlcnZpY2UuZ2V0RGljdEJ5Y29kZShjb2RlKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQgIT0gbnVsbClcclxuICAgICAgICAgIHRoaXMuZGljdHNbY29kZV0gPSByZXN1bHQuZGljdHM7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmRpY3RzW2NvZGVdID0gW107XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGltYWdlVXBsb2FkQ2hhbmdlKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5KSB7XHJcbiAgICAgIHRoaXMuYXRyRm9ybS5nZXQoZS5rZXkpLnNldFZhbHVlKGUudmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmVmb3JlVXBsb2FkKGU6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICB0aGlzLnVwbG9hZEFjdGlvbi5lbWl0KHtjb2RlOiAnb25CZWZvcmVVcGxvYWQnLCBkYXRhOiB7Li4uZS5kYXRhLCBrZXk6IGl0ZW0ua2V5fX0pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICAvLyB0aGlzLmF0ckZvcm0ucmVzZXQoKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiZWRpdG9yIHJlc2V0XCIpXHJcbiAgICBpZiAodGhpcy5mb3JtT3B0cyAmJiB0aGlzLmZvcm1PcHRzLml0ZW1zKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZm9ybU9wdHMudHlwZSA9PSAnYWRkJyA/IGl0ZW0uZGVmYXVsdFZhbHVlIDogaXRlbS52YWx1ZTtcclxuICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiaW1hZ2VcIikge1xyXG4gICAgICAgICAgaXRlbS5pbWFnZU9wdHMua2V5ID0gaXRlbS5rZXlcclxuICAgICAgICAgIGxldCBpbWFnZXM6IGFueSA9IFtdO1xyXG4gICAgICAgICAgaWYgKCF2YWx1ZSkgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgbGV0IGxpc3Q6c3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgIGlmKGl0ZW0uaW1hZ2VPcHRzLnNwbGl0U3RyKXtcclxuICAgICAgICAgICAgbGlzdCA9IHZhbHVlLnNwbGl0KGl0ZW0uaW1hZ2VPcHRzLnNwbGl0U3RyKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpc3QgPSBbdmFsdWVdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZm9yIChsZXQga2V5IG9mIGxpc3QpIHtcclxuICAgICAgICAgICAgaWYgKGtleSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAga2V5OiBrZXksXHJcbiAgICAgICAgICAgICAgICB1aWQ6IFwiLTFcIixcclxuICAgICAgICAgICAgICAgIHVybDogVG9vbHNVdGlsLmdldE9zc1VybChrZXkpLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGl0ZW0uaW1hZ2VPcHRzLmltYWdlTGlzdCA9IGltYWdlcztcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGltYWdlcylcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImVkaXRvclwiKVxyXG4gICAgICAgICAgaWYgKCF2YWx1ZSkgdmFsdWUgPSBcIlwiXHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gXCJzZWxlY3RcIiAmJiB2YWx1ZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gXCJjaGVja2JveFwiICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmF0ckZvcm0uZ2V0KGl0ZW0ua2V5KS5zZXRWYWx1ZSh2YWx1ZSAhPSB1bmRlZmluZWQgPyB2YWx1ZSA6IG51bGwpXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuYXRyRm9ybS5jb250cm9scykge1xyXG4gICAgICAgIHRoaXMuYXRyRm9ybS5jb250cm9sc1tpXS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZWRpdENoYW5nZShkYXRhOiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5xdWlsbENoYW5nZS5lbWl0KHtjb2RlOiAncXVpbGxDaGFuZ2UnLCBlOiBkYXRhLCBmb3JtSXRlbTogaXRlbX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgbGV0IG9iajogYW55ID0ge1xyXG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgbW9kZTogdGhpcy5mb3JtT3B0cy50eXBlLFxyXG4gICAgICB2YWx1ZToge31cclxuICAgIH07XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmF0ckZvcm0udmFsdWU7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcclxuICAgICAgLy8gLy9jb25zb2xlLmxvZyhrZXkpO1xyXG4gICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB2YWx1ZVtrZXldICE9IG51bGwgJiYgdmFsdWVba2V5XSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodmFsdWVba2V5XSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGF0ZVR5cGVzID0gW1xyXG4gICAgICAgICAgICAgICAnZGF0ZScgLCdkYXlSYW5nZScsJ2RhdGVUaW1lJyAsJ2RhdGVSYW5nZSdcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKGRhdGVUeXBlcy5zb21lKGR0eXBlID0+IGl0ZW0udHlwZSA9PSBkdHlwZSkpIHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgaXRlbS5kYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgJ3l5eXktTU0tZGQgMDA6MDA6MDAnLCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVUaW1lJykge1xyXG4gICAgICAgICAgICAgICAgb2JqLnZhbHVlW2tleV0gPSBmb3JtYXREYXRlKG5ldyBEYXRlKE51bWJlcih2YWx1ZVtrZXldKSksICd5eXl5LU1NLWRkIEhIOm1tOnNzJywgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrZXldIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5mb3JtT3B0cy5pdGVtcykge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgIT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGRhdGVGb3JtYXQgPSBpdGVtLmRhdGVGb3JtYXQgPyBpdGVtLmRhdGVGb3JtYXQgOiAneXl5eS1NTS1kZCAwMDowMDowMCc7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVSYW5nZScpIHtcclxuICAgICAgICAgICAgICBsZXQgZGF0ZUFycjogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgbGV0IG56U2hvd1RpbWUgPSBpdGVtLm56U2hvd1RpbWVcclxuICAgICAgICAgICAgICBpZiAobnpTaG93VGltZSkge1xyXG4gICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJ1xyXG4gICAgICAgICAgICAgICAgaWYgKG56U2hvd1RpbWUubnpGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkICcgKyBuelNob3dUaW1lLm56Rm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmb3IgKGxldCBkIG9mIHZhbHVlW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGVBcnIucHVzaChmb3JtYXREYXRlKChkIGFzIERhdGUpLCBkYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGRhdGVBcnI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdjYXNjYWRlcicpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ3NlbGVjdCcgJiYgaXRlbS5uek1vZGUgPT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtVmFpbGQoKTogYW55IHtcclxuICAgIGxldCBvYmo6IGFueSA9IHtcclxuICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgIG1vZGU6IHRoaXMuZm9ybU9wdHMudHlwZSxcclxuICAgICAgdmFsdWU6IHt9XHJcbiAgICB9O1xyXG4gICAgZm9yIChjb25zdCBpIGluIHRoaXMuYXRyRm9ybS5jb250cm9scykge1xyXG4gICAgICB0aGlzLmF0ckZvcm0uY29udHJvbHNbaV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgdGhpcy5hdHJGb3JtLmNvbnRyb2xzW2ldLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICAgIG9iai5pc1ZhbGlkID0gdGhpcy5hdHJGb3JtLnZhbGlkXHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmF0ckZvcm0udmFsdWU7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcclxuICAgICAgY29uc29sZS5sb2coa2V5KTtcclxuICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KGtleSkgJiYgdmFsdWVba2V5XSAhPSBudWxsICYmIHZhbHVlW2tleV0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZm9ybU9wdHMuaXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ICE9IGtleSkge1xyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGZvcm1hdERhdGUobmV3IERhdGUoTnVtYmVyKHZhbHVlW2tleV0pKSwgaXRlbS5kYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gZm9ybWF0RGF0ZShuZXcgRGF0ZShOdW1iZXIodmFsdWVba2V5XSkpLCAneXl5eS1NTS1kZCAwMDowMDowMCcsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVUaW1lJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gZm9ybWF0RGF0ZShuZXcgRGF0ZShOdW1iZXIodmFsdWVba2V5XSkpLCAneXl5eS1NTS1kZCBISDptbTpzcycsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmZvcm1PcHRzLml0ZW1zKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSAhPSBrZXkpIHtcclxuICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZGF0ZUZvcm1hdCA9IGl0ZW0uZGF0ZUZvcm1hdCA/IGl0ZW0uZGF0ZUZvcm1hdCA6ICd5eXl5LU1NLWRkIDAwOjAwOjAwJztcclxuICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZVJhbmdlJykge1xyXG4gICAgICAgICAgICAgIGxldCBkYXRlQXJyOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBkIG9mIHZhbHVlW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGVBcnIucHVzaChmb3JtYXREYXRlKChkIGFzIERhdGUpLCBkYXRlRm9ybWF0LCB0aGlzLmxvY2FsZSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IGRhdGVBcnI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09ICdjYXNjYWRlcicpIHtcclxuICAgICAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ3NlbGVjdCcgJiYgaXRlbS5uek1vZGUgPT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9iai52YWx1ZVtrZXldID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmoudmFsdWVba2V5XSA9IHZhbHVlW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBzaG93VGltZShpdGVtOiBhbnkpIHtcclxuICAgIGlmIChpdGVtLm56U2hvd1RpbWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW0ubnpTaG93VGltZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5kYXRlRm9ybWF0IHx8IGl0ZW0uZGF0ZUZvcm1hdCA9PSBcInl5eXktTU0tZGRcIikge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIGxldCBmb3JtYXQgPSBpdGVtLmRhdGVGb3JtYXQ7XHJcbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoXCJISFwiKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChmb3JtYXQuaW5kZXhPZihcIm1tXCIpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1hdC5pbmRleE9mKFwic3NcIikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZWZOdW1Gb3JtYXQgPSAgKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKClcclxuICB9XHJcbn1cclxuIiwiPGF0ci12aWV3LWZvcm0gKm5nSWY9XCJmb3JtT3B0cy50eXBlID09ICd2aWV3J1wiIFtkaWN0c109XCJkaWN0c1wiIFthdHJGb3JtXT1cImF0ckZvcm1cIiBbdGl0bGVdPVwidmlld1RpdGxlXCJcclxuICAgICAgICAgICAgICAgW2Zvcm1PcHRzXT1cImZvcm1PcHRzXCI+PC9hdHItdmlldy1mb3JtPlxyXG5cclxuPGZvcm0gbnotZm9ybSBbZm9ybUdyb3VwXT1cImF0ckZvcm1cIiAqbmdJZj1cImZvcm1PcHRzLnR5cGUgIT0gJ3ZpZXcnXCI+XHJcbiAgPGRpdiBuei1yb3cgbnpHdXR0ZXI9XCI4XCIgbnpUeXBlPVwiZmxleFwiIG56QWxpZ249XCJ0b3BcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9ybU9wdHMuaXRlbXNcIj5cclxuICAgICAgPGRpdiBuei1jb2wgbnpTcGFuPVwiMjRcIiBjbGFzcz1cImZvcm0tdGl0bGVcIiAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGl0bGUnXCI+XHJcbiAgICAgICAge3tpdGVtLmxhYmVsfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgbnotY29sIFtuelNwYW5dPVwiaXRlbS5zcGFuXCIgKm5nSWY9XCJpc1Nob3coaXRlbS5pc0hpZGRlbixpdGVtLm9wZXJhdG9yKVwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50ICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS5maXJzdFRlbXBcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPG56LWZvcm0taXRlbSAqbmdJZj1cIml0ZW0udHlwZSAhPSAndGl0bGUnXCI+XHJcbiAgICAgICAgICA8bnotZm9ybS1sYWJlbCBbbnpTbV09XCJpdGVtLmxzcGFuXCIgW256WHNdPVwiMjRcIiBbbnpSZXF1aXJlZF09XCJpc1JlcXVpcmVkKGl0ZW0pXCI+e3tpdGVtLmxhYmVsfX08L256LWZvcm0tbGFiZWw+XHJcbiAgICAgICAgICA8bnotZm9ybS1jb250cm9sIFtuelNtXT1cIml0ZW0uY3NwYW5cIiBbbnpYc109XCIyNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDt3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgIDxuei10cmVlLXNlbGVjdCAqbmdJZj1cIml0ZW0udHlwZSA9PSAndHJlZVNlbGVjdCcgJiYgaXRlbS50cmVlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek5vZGVzXT1cIml0ZW0udHJlZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEZWZhdWx0RXhwYW5kQWxsXT1cIml0ZW0uZXhwYW5kQWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpTaG93U2VhcmNoPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56SGlkZVVuTWF0Y2hlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpTaG93U2VhcmNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256QWxsb3dDbGVhcl09XCIhaXRlbS5ub3ROdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256TXVsdGlwbGVdPVwiaXRlbS5zZWxlY3RVcmwuaXNNdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekRpc2FibGVkXT1cIml0ZW0ucmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmb3JtQ2hhbmdlKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56VmlydHVhbEhlaWdodD1cIjMzMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9uei10cmVlLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8bnotY29sb3ItcGlja2VyICpuZ0lmPVwiaXRlbS50eXBlID09ICdjb2xvcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCIgKG5nTW9kZWxDaGFuZ2UpPVwiZm9ybUNoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seVwiPjwvbnotY29sb3ItcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwhLS0gPG56LXRyZWUtc2VsZWN0ICpuZ0lmPVwiaXRlbS50eXBlID09ICd0cmVlU2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWl0ZW0ubm90TnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek5vZGVzXT1cIml0ZW0udHJlZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuelNob3dTZWFyY2g9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpIaWRlVW5NYXRjaGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56UGxhY2VIb2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpNdWx0aXBsZV09XCJpdGVtLnNlbGVjdFVybC5pc011bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seVwiIHN0eWxlPVwiZmxleDogMVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbnotdHJlZS1zZWxlY3Q+IC0tPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VsZWN0LWljb25zICpuZ0lmPVwiaXRlbS50eXBlID09ICdzZWxlY3RJY29uJ1wiIG56LWlucHV0IHBsYWNlaG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpdGVtLnJlYWRvbmx5IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCI+XHJcbiAgICAgICAgICAgICAgPC9hcHAtc2VsZWN0LWljb25zPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGV4dCdcIiBuei1pbnB1dCBwbGFjZWhvbGRlcj1cInt7aXRlbS5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZm9ybUNoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seSB8fCBmb3JtT3B0cy50eXBlID09ICd2aWV3J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIi8+XHJcbiAgICAgICAgICAgICAgPG56LXN3aXRjaCAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3N3aXRjaCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCJpdGVtLnJlYWRvbmx5IHx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZvcm1DaGFuZ2UoJGV2ZW50LGl0ZW0pXCIgW256Q2hlY2tlZENoaWxkcmVuXT1cIml0ZW0ubnpDaGVja2VkQ2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW256VW5DaGVja2VkQ2hpbGRyZW5dPVwiaXRlbS5uelVuQ2hlY2tlZENoaWxkcmVuXCI+PC9uei1zd2l0Y2g+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGV4dGFyZWEnXCIgbnotaW5wdXQgW3Jvd3NdPVwiaXRlbS5yb3dzXCIgcGxhY2Vob2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIiBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seXx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICA8bnotaW5wdXQtbnVtYmVyICpuZ0lmPVwiaXRlbS50eXBlID09ICdudW1iZXInXCIgbnpQbGFjZUhvbGRlcj1cInt7aXRlbS5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZvcm1DaGFuZ2UoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuekZvcm1hdHRlcl09XCJpdGVtLmRhdGVGb3JtYXQgfHwgZGVmTnVtRm9ybWF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelN0ZXBdPVwiaXRlbS5uelN0ZXAgfHwgMVwiIFtuelByZWNpc2lvbl09XCJpdGVtLm56UHJlY2lzaW9uIHx8IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256TWluXT1cIml0ZW0ubWluTnVtYmVyXCIgW256TWF4XT1cIml0ZW0ubWF4TnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWlucHV0LW51bWJlcj5cclxuICAgICAgICAgICAgICA8bnotcmFkaW8tZ3JvdXAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3JhZGlvJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBuei1yYWRpbyAqbmdGb3I9XCJsZXQgbyBvZiBpdGVtLmRpY3RMaXN0XCIgW256VmFsdWVdPVwiby52YWx1ZVwiPnt7by5sYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L256LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgIDxuei1jaGVja2JveC13cmFwcGVyICpuZ0lmPVwiaXRlbS50eXBlID09ICdjaGVja2JveCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG56LXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbyBvZiBpdGVtLmRpY3RMaXN0XCIgbnotY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBuei1jaGVja2JveCBbbnpWYWx1ZV09XCJvLnZhbHVlXCI+e3tvLmxhYmVsfX08L2xhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgIDxuei1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmb3JtQ2hhbmdlKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3tpdGVtLnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCJcclxuICAgICAgICAgICAgICAgIG56U2VydmVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBbbnpNb2RlXT1cIml0ZW0ubnpNb2RlIHx8ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgICBuekRpc2FibGVkPVwie3tpdGVtLnJlYWRvbmx5fHwgZm9ybU9wdHMudHlwZSA9PSAndmlldyd9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgbyBvZiBkaWN0c1tpdGVtLmRpY3RDb2RlXVwiIFtuekxhYmVsXT1cIm8udHlwZU5hbWVcIiBbbnpWYWx1ZV09XCJvLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPG56LXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdzZWxlY3RjJ1wiXHJcbiAgICAgICAgICAgICAgICBuelNob3dTZWFyY2hcclxuICAgICAgICAgICAgICAgIG56UGxhY2VIb2xkZXI9XCJ7e2l0ZW0ucGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgW256TW9kZV09XCJpdGVtLm56TW9kZSB8fCAnZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiaXRlbS5yZWFkb25seXx8IGZvcm1PcHRzLnR5cGUgPT0gJ3ZpZXcnXCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdENoYW5nZSgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuei1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2YgaXRlbS5kaWN0TGlzdFwiIFtuekxhYmVsXT1cIm8ubGFiZWxcIiBbbnpWYWx1ZV09XCJvLnZhbHVlXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPG56LWNhc2NhZGVyIFtuekRpc2FibGVkXT1cIml0ZW0ucmVhZG9ubHlcIiBzdHlsZT1cImZsZXg6IDFcIiBbbnpBbGxvd0NsZWFyXT1cIiFpdGVtLm5vdE51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpWYWx1ZVByb3BlcnR5XT1cIml0ZW0udmFsdWVQcm9wZXJ0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiICpuZ0lmPVwiaXRlbS50eXBlID09ICdjYXNjYWRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpDaGFuZ2VPblNlbGVjdF09XCJpdGVtLmFsbG93U2VsZWN0Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek9wdGlvbnNdPVwiaXRlbS5kaWN0TGlzdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWNhc2NhZGVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICA8bnotZGF0ZS1waWNrZXIgKm5nSWY9XCIhaXRlbS5kYXRlTW9kZVwiIFtuekZvcm1hdF09XCJpdGVtLmRhdGVGb3JtYXQgPyBpdGVtLmRhdGVGb3JtYXQgOiAneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dUaW1lXT1cInNob3dUaW1lKGl0ZW0pXCIgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCJmb3JtT3B0cy50eXBlID09ICd2aWV3JyB8fCBpdGVtLnJlYWRvbmx5IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiPjwvbnotZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8bnotZGF0ZS1waWNrZXIgKm5nSWY9XCJpdGVtLmRhdGVNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZsZXg6IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuek1vZGVdPVwiaXRlbS5kYXRlTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiZm9ybU9wdHMudHlwZSA9PSAndmlldycgfHwgaXRlbS5yZWFkb25seSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIj48L256LWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bnotcmFuZ2UtcGlja2VyICpuZ0lmPVwiaXRlbS50eXBlID09ICdkYXRlUmFuZ2UnXCIgc3R5bGU9XCJmbGV4OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dUaW1lXT1cIml0ZW0ubnpTaG93VGltZT8gaXRlbS5uelNob3dUaW1lIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnpGb3JtYXRdPVwiaXRlbS5uelNob3dUaW1lICYmIGl0ZW0ubnpTaG93VGltZS5uekZvcm1hdCA/ICgneXl5eS1NTS1kZCAnKyBpdGVtLm56U2hvd1RpbWUubnpGb3JtYXQpIDogJ3l5eXktTU0tZGQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIlsn5byA5aeL5pe26Ze0JywgJ+e7k+adn+aXtumXtCddXCI+PC9uei1yYW5nZS1waWNrZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIml0ZW0udHlwZSA9PSAnaW1hZ2UnXCIgbnotaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmtleVwiIFtoaWRkZW5dPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8YXRyLWltZy11cGxvYWQgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2ltYWdlJ1wiIFsob3B0cyldPVwiaXRlbS5pbWFnZU9wdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25CZWZvcmVVcGxvYWQpPVwib25CZWZvcmVVcGxvYWQoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFmdGVyQ2hhbmdlKT1cImltYWdlVXBsb2FkQ2hhbmdlKCRldmVudClcIj48L2F0ci1pbWctdXBsb2FkPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgIDxlZGl0b3IgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2VkaXRvcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ua2V5XCIgW2NvbmZpZ109XCJ7aW5pdGlhbEZyYW1lSGVpZ2h0Oml0ZW0uaGVpZ2h0fVwiID48L2VkaXRvcj4tLT5cclxuICAgICAgICAgICAgICA8YXBwLXF1aWxsLWVkaXRvciAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZWRpdG9yJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVkaXRDaGFuZ2UoJGV2ZW50LGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVzXT1cIntoZWlnaHQ6aXRlbS5oZWlnaHQgPiAwID8gaXRlbS5oZWlnaHQgKyAncHgnIDogJzI1MHB4Jyx3aWR0aDonMTAwJSd9XCI+PC9hcHAtcXVpbGwtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3dvcmQnXCIgW2lubmVySFRNTF09XCJpdGVtLnZhbHVlIHxkZWZWYWw6aXRlbS5kZWZhdWx0VmFsdWUgfHNhZmVIdG1sXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnYnV0dG9ucydcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBpdGVtLmJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtuelR5cGVdPVwiYnRuLmJ0blR5cGUgfGRlZlZhbDogJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFudC1idG4gYW50LWJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4XCIgKm5nSWY9XCJidG4uaXNTaG93IHx8IGlzU2hvdyhmYWxzZSxidG4ub3BlcmF0b3IpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9BY3Rpb24oYnRuLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2J0bi5uYW1lfX08L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2YWxpZCBvZiBpdGVtLnZhbGlkYXRvcnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHJGb3JtLmdldChpdGVtLmtleSkuaGFzRXJyb3IodmFsaWQudHlwZSkgJiYgKGF0ckZvcm0uZ2V0KGl0ZW0ua2V5KS5kaXJ0eSApXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjpyZWQ7ICAgIGhlaWdodDogMTVweDttYXJnaW46IDA7bGluZS1oZWlnaHQ6IDE1cHg7XCI+e3t2YWxpZC5lcnJvckxhYmVsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cImRlZmF1bHRcIiBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO2NvbG9yOiBibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZW5kc1wiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAge3tpdGVtLmVuZHN9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpdGVtLmJ1dHRvbj8uaXNTaG93XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYW50LWJ0biBhbnQtYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvQWN0aW9uKGl0ZW0uYnV0dG9uLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5idXR0b24ubmFtZX19PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ucHJvcG9zYWxcIiBzdHlsZT1cImNvbG9yOiByZWQ7d2lkdGg6IDEwMCVcIj57e2l0ZW0ucHJvcG9zYWx9fTwvZGl2PlxyXG4gICAgICAgICAgPC9uei1mb3JtLWNvbnRyb2w+XHJcbiAgICAgICAgPC9uei1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLnRlbXBcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -45,11 +45,11 @@ export class LocalUploadComponent {
45
45
  }
46
46
  }
47
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LocalUploadComponent, selector: "atr-local-upload", inputs: { beforeUpload: "beforeUpload", url: "url", nzAccept: "nzAccept", name: "name", code: "code", withoutRole: "withoutRole" }, outputs: { afterChange: "afterChange" }, ngImport: i0, template: "<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i4.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i5.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i6.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { kind: "directive", type: i7.AtrRoleDirective, selector: "[atrRole]", inputs: ["atrRole"] }] }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LocalUploadComponent, selector: "atr-local-upload", inputs: { beforeUpload: "beforeUpload", url: "url", nzAccept: "nzAccept", name: "name", code: "code", withoutRole: "withoutRole" }, outputs: { afterChange: "afterChange" }, ngImport: i0, template: "<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\"\r\n [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n nzListType=\"picture-card\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i4.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i5.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i6.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { kind: "directive", type: i7.AtrRoleDirective, selector: "[atrRole]", inputs: ["atrRole"] }] }); }
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalUploadComponent, decorators: [{
51
51
  type: Component,
52
- args: [{ selector: 'atr-local-upload', template: "<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n" }]
52
+ args: [{ selector: 'atr-local-upload', template: "<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\"\r\n [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n nzListType=\"picture-card\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n" }]
53
53
  }], ctorParameters: () => [], propDecorators: { beforeUpload: [{
54
54
  type: Input
55
55
  }], url: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
65
65
  }], afterChange: [{
66
66
  type: Output
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvbG9jYWwtdXBsb2FkL2xvY2FsLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2xvY2FsLXVwbG9hZC9sb2NhbC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0I7UUFSUyxhQUFRLEdBQUcsMEJBQTBCLENBQUM7UUFLL0MsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxhQUFRLEdBQVEsS0FBSyxDQUFDO1FBTXRCLFdBQU0sR0FBSSxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUMvQixJQUFJLEdBQUcsR0FBRztnQkFDUixjQUFjLEVBQUMsS0FBSztnQkFDcEIsT0FBTyxFQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRTtnQkFDekMscUNBQXFDO2FBQ3RDLENBQUE7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQztJQWJjLENBQUM7SUFFakIsUUFBUTtRQUNOLDBEQUEwRDtJQUM1RCxDQUFDO0lBVUQsUUFBUSxDQUFDLE1BQTJCO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUN4RCxJQUFJLFFBQVEsR0FBVSxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUU7b0JBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzNCLFNBQVM7aUJBQ1Y7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUMsYUFBYSxDQUFBO29CQUMzQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUU7d0JBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7cUJBQ3BDO2lCQUNGO2FBQ0Y7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7K0dBNUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFPQ1RqQywyMkJBZ0JBOzs0RkRQYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO3dEQUtuQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsXCI7XHJcbmltcG9ydCB7TnpVcGxvYWRDaGFuZ2VQYXJhbSwgTnpVcGxvYWRGaWxlfSBmcm9tICduZy16b3Jyby1hbnRkL3VwbG9hZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0ci1sb2NhbC11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2NhbC11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvY2FsLXVwbG9hZC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYmVmb3JlVXBsb2FkOiBhbnk7XHJcbiAgQElucHV0KCkgdXJsOmFueTtcclxuICBASW5wdXQoKSBuekFjY2VwdCA9ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnO1xyXG4gIEBJbnB1dCgpIG5hbWU6YW55O1xyXG4gIEBJbnB1dCgpIGNvZGU6YW55O1xyXG4gIEBJbnB1dCgpIHdpdGhvdXRSb2xlOmFueTtcclxuICBAT3V0cHV0KClcclxuICBhZnRlckNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNob3dMaXN0IDphbnkgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHRoaXMuaGVhZGVyID0gdGhpcy5nZXREZWZhdWx0SGVhZGVyKG5ldyBIdHRwSGVhZGVycygpKTtcclxuICB9XHJcbiAgaGVhZGVyICA9IChmaWxlOiBOelVwbG9hZEZpbGUpID0+IHtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwieC1oZWFkZXItYXRyXCI6XCJ3ZWJcIixcclxuICAgICAgXCJ0b2tlblwiIDogTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VyVG9rZW4oKSxcclxuICAgICAgLy8gXCJvcmdDb2RlXCIgOiBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9O1xyXG4gIG9uQ2hhbmdlKHBhcmFtczogTnpVcGxvYWRDaGFuZ2VQYXJhbSkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMudHlwZSA9PSBcInN1Y2Nlc3NcIiB8fCBwYXJhbXMudHlwZSA9PSBcInJlbW92ZWRcIikge1xyXG4gICAgICBsZXQgZmlsZVVybHM6IGFueVtdID0gW107XHJcbiAgICAgIGZvciAobGV0IGZpbGUgb2YgcGFyYW1zLmZpbGVMaXN0KSB7XHJcbiAgICAgICAgaWYgKGZpbGVbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGVbXCJrZXlcIl0pO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmopIHtcclxuICAgICAgICAgIGxldCBvcmlnaW5GaWxlT2JqOiBhbnkgPSBmaWxlLm9yaWdpbkZpbGVPYmpcclxuICAgICAgICAgIGlmIChvcmlnaW5GaWxlT2JqW1wia2V5XCJdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWxlVXJscy5wdXNoKG9yaWdpbkZpbGVPYmpbXCJrZXlcIl0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQocGFyYW1zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVyczpIdHRwSGVhZGVycyk6SHR0cEhlYWRlcnN7XHJcbiAgLy8gICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIngtaGVhZGVyLWF0clwiLFwibWFuYWdlXCIpO1xyXG4gIC8vICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlclRva2VuKCkpO1xyXG4gIC8vICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ1c2VySWRcIixMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpKTtcclxuICAvLyAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwib3JnQ29kZVwiLFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpO1xyXG4gIC8vICAgcmV0dXJuIF9oZWFkZXJzO1xyXG4gIC8vIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXdpdGhvdXRSb2xlXCI+XHJcbiAgPG56LXVwbG9hZCBbbnpBY3Rpb25dPVwidXJsXCIgW256QWNjZXB0XT1cIm56QWNjZXB0XCIgW256SGVhZGVyc109XCJoZWFkZXJcIiBbbnpTaG93VXBsb2FkTGlzdF09XCJzaG93TGlzdFwiXHJcbiAgICAgICAgICAgICBbbnpCZWZvcmVVcGxvYWRdPVwiYmVmb3JlVXBsb2FkXCJcclxuICAgICAgICAgICAgIChuekNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICphdHJSb2xlPVwiY29kZVwiIFtuekxpbWl0XT0nMSc+XHJcbiAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelNpemU9XCJzbWFsbFwiPjxpIG56LWljb24gbnpUeXBlPVwidXBsb2FkXCI+PC9pPjxzcGFuPiB7e25hbWV9fTwvc3Bhbj48L2J1dHRvbj5cclxuICA8L256LXVwbG9hZD5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRob3V0Um9sZVwiPlxyXG4gIDxuei11cGxvYWQgW256QWN0aW9uXT1cInVybFwiIFtuekFjY2VwdF09XCJuekFjY2VwdFwiIFtuekhlYWRlcnNdPVwiaGVhZGVyXCIgW256U2hvd1VwbG9hZExpc3RdPVwic2hvd0xpc3RcIlxyXG4gICAgICAgICAgICAgW256QmVmb3JlVXBsb2FkXT1cImJlZm9yZVVwbG9hZFwiXHJcbiAgICAgICAgICAgICAobnpDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbbnpMaW1pdF09JzEnPlxyXG4gICAgPGJ1dHRvbiBuei1idXR0b24gbnpTaXplPVwic21hbGxcIj48aSBuei1pY29uIG56VHlwZT1cInVwbG9hZFwiPjwvaT48c3Bhbj4ge3tuYW1lfX08L3NwYW4+PC9idXR0b24+XHJcbiAgPC9uei11cGxvYWQ+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvbG9jYWwtdXBsb2FkL2xvY2FsLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2xvY2FsLXVwbG9hZC9sb2NhbC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0I7UUFSUyxhQUFRLEdBQUcsMEJBQTBCLENBQUM7UUFLL0MsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxhQUFRLEdBQVEsS0FBSyxDQUFDO1FBTXRCLFdBQU0sR0FBSSxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUMvQixJQUFJLEdBQUcsR0FBRztnQkFDUixjQUFjLEVBQUMsS0FBSztnQkFDcEIsT0FBTyxFQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRTtnQkFDekMscUNBQXFDO2FBQ3RDLENBQUE7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQztJQWJjLENBQUM7SUFFakIsUUFBUTtRQUNOLDBEQUEwRDtJQUM1RCxDQUFDO0lBVUQsUUFBUSxDQUFDLE1BQTJCO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUN4RCxJQUFJLFFBQVEsR0FBVSxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUU7b0JBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzNCLFNBQVM7aUJBQ1Y7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUMsYUFBYSxDQUFBO29CQUMzQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUU7d0JBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7cUJBQ3BDO2lCQUNGO2FBQ0Y7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7K0dBNUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFPQ1RqQyx1NkJBa0JBOzs0RkRUYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO3dEQUtuQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsXCI7XHJcbmltcG9ydCB7TnpVcGxvYWRDaGFuZ2VQYXJhbSwgTnpVcGxvYWRGaWxlfSBmcm9tICduZy16b3Jyby1hbnRkL3VwbG9hZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0ci1sb2NhbC11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2NhbC11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvY2FsLXVwbG9hZC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYmVmb3JlVXBsb2FkOiBhbnk7XHJcbiAgQElucHV0KCkgdXJsOmFueTtcclxuICBASW5wdXQoKSBuekFjY2VwdCA9ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnO1xyXG4gIEBJbnB1dCgpIG5hbWU6YW55O1xyXG4gIEBJbnB1dCgpIGNvZGU6YW55O1xyXG4gIEBJbnB1dCgpIHdpdGhvdXRSb2xlOmFueTtcclxuICBAT3V0cHV0KClcclxuICBhZnRlckNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNob3dMaXN0IDphbnkgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHRoaXMuaGVhZGVyID0gdGhpcy5nZXREZWZhdWx0SGVhZGVyKG5ldyBIdHRwSGVhZGVycygpKTtcclxuICB9XHJcbiAgaGVhZGVyICA9IChmaWxlOiBOelVwbG9hZEZpbGUpID0+IHtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwieC1oZWFkZXItYXRyXCI6XCJ3ZWJcIixcclxuICAgICAgXCJ0b2tlblwiIDogTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VyVG9rZW4oKSxcclxuICAgICAgLy8gXCJvcmdDb2RlXCIgOiBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9O1xyXG4gIG9uQ2hhbmdlKHBhcmFtczogTnpVcGxvYWRDaGFuZ2VQYXJhbSkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMudHlwZSA9PSBcInN1Y2Nlc3NcIiB8fCBwYXJhbXMudHlwZSA9PSBcInJlbW92ZWRcIikge1xyXG4gICAgICBsZXQgZmlsZVVybHM6IGFueVtdID0gW107XHJcbiAgICAgIGZvciAobGV0IGZpbGUgb2YgcGFyYW1zLmZpbGVMaXN0KSB7XHJcbiAgICAgICAgaWYgKGZpbGVbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGVbXCJrZXlcIl0pO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmopIHtcclxuICAgICAgICAgIGxldCBvcmlnaW5GaWxlT2JqOiBhbnkgPSBmaWxlLm9yaWdpbkZpbGVPYmpcclxuICAgICAgICAgIGlmIChvcmlnaW5GaWxlT2JqW1wia2V5XCJdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWxlVXJscy5wdXNoKG9yaWdpbkZpbGVPYmpbXCJrZXlcIl0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQocGFyYW1zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVyczpIdHRwSGVhZGVycyk6SHR0cEhlYWRlcnN7XHJcbiAgLy8gICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIngtaGVhZGVyLWF0clwiLFwibWFuYWdlXCIpO1xyXG4gIC8vICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlclRva2VuKCkpO1xyXG4gIC8vICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ1c2VySWRcIixMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpKTtcclxuICAvLyAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwib3JnQ29kZVwiLFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpO1xyXG4gIC8vICAgcmV0dXJuIF9oZWFkZXJzO1xyXG4gIC8vIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXdpdGhvdXRSb2xlXCI+XHJcbiAgPG56LXVwbG9hZCBbbnpBY3Rpb25dPVwidXJsXCIgW256QWNjZXB0XT1cIm56QWNjZXB0XCJcclxuICAgICAgICAgICAgIFtuekhlYWRlcnNdPVwiaGVhZGVyXCIgW256U2hvd1VwbG9hZExpc3RdPVwic2hvd0xpc3RcIlxyXG4gICAgICAgICAgICAgbnpMaXN0VHlwZT1cInBpY3R1cmUtY2FyZFwiXHJcbiAgICAgICAgICAgICBbbnpCZWZvcmVVcGxvYWRdPVwiYmVmb3JlVXBsb2FkXCJcclxuICAgICAgICAgICAgIChuekNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICphdHJSb2xlPVwiY29kZVwiIFtuekxpbWl0XT0nMSc+XHJcbiAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelNpemU9XCJzbWFsbFwiPjxpIG56LWljb24gbnpUeXBlPVwidXBsb2FkXCI+PC9pPjxzcGFuPiB7e25hbWV9fTwvc3Bhbj48L2J1dHRvbj5cclxuICA8L256LXVwbG9hZD5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRob3V0Um9sZVwiPlxyXG4gIDxuei11cGxvYWQgW256QWN0aW9uXT1cInVybFwiIFtuekFjY2VwdF09XCJuekFjY2VwdFwiIFtuekhlYWRlcnNdPVwiaGVhZGVyXCIgW256U2hvd1VwbG9hZExpc3RdPVwic2hvd0xpc3RcIlxyXG4gICAgICAgICAgICAgW256QmVmb3JlVXBsb2FkXT1cImJlZm9yZVVwbG9hZFwiXHJcbiAgICAgICAgICAgICAobnpDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbbnpMaW1pdF09JzEnPlxyXG4gICAgPGJ1dHRvbiBuei1idXR0b24gbnpTaXplPVwic21hbGxcIj48aSBuei1pY29uIG56VHlwZT1cInVwbG9hZFwiPjwvaT48c3Bhbj4ge3tuYW1lfX08L3NwYW4+PC9idXR0b24+XHJcbiAgPC9uei11cGxvYWQ+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=