@1money/component-ui 0.0.90-alpha.17 → 0.0.90-alpha.18

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.
@@ -220,7 +220,8 @@ var VerificationDialogBase = function VerificationDialogBase(_ref) {
220
220
  label: cooldownLeft > 0 ? _jsxs(_Fragment, {
221
221
  children: [resend.label, " (", cooldownLeft, "s)"]
222
222
  }) : resend.label,
223
- disabled: cooldownLeft > 0 || verifying || resending,
223
+ loading: resending,
224
+ disabled: cooldownLeft > 0 || verifying,
224
225
  onClick: handleResend
225
226
  } : secondary === false ? undefined : secondary !== null && secondary !== void 0 ? secondary : onClose ? {
226
227
  onClick: onClose
@@ -266,4 +267,4 @@ var VerificationDialogBase = function VerificationDialogBase(_ref) {
266
267
  });
267
268
  };
268
269
  export var VerificationDialog = /*#__PURE__*/memo(VerificationDialogBase);
269
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbnB1dE9UUCIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIkJhc2VEaWFsb2ciLCJWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTIiwiUFJFRklYIiwiVmVyaWZpY2F0aW9uRGlhbG9nQmFzZSIsIl9yZWYiLCJvcGVuIiwibWFza0Nsb3NhYmxlIiwic2hvd0JhY2tJY29uIiwib25CYWNrIiwiY2xhc3NOYW1lIiwiZXllYnJvdyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvblN0cm9uZyIsIm90cEhpbnQiLCJtYXNrIiwic2Vjb25kYXJ5IiwicmVzZW5kIiwiZm9vdG5vdGUiLCJvblZlcmlmeSIsIm9uQ2xvc2UiLCJzdWJtaXRUZXh0IiwiX3JlZiRsZW5ndGgiLCJsZW5ndGgiLCJfcmVmJGF1dG9TdWJtaXQiLCJhdXRvU3VibWl0IiwiX3JlZiRhdXRvRm9jdXMiLCJhdXRvRm9jdXMiLCJfcmVmJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInZlcmlmeWluZyIsInNldFZlcmlmeWluZyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwicmVzZW5kaW5nIiwic2V0UmVzZW5kaW5nIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiY29vbGRvd25MZWZ0Iiwic2V0Q29vbGRvd25MZWZ0IiwidmVyaWZ5aW5nUmVmIiwic2Vzc2lvblJlZiIsImN1cnJlbnQiLCJjb29saW5nIiwidW5kZWZpbmVkIiwidGltZXIiLCJzZXRJbnRlcnZhbCIsImxlZnQiLCJNYXRoIiwibWF4IiwiY2xlYXJJbnRlcnZhbCIsInJ1blZlcmlmeSIsImNvZGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJzZXNzaW9uIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic2VudCIsImdlbmVyaWNFcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpbmlzaCIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVSZXNlbmQiLCJfY2FsbGVlMiIsIl90MiIsIl9jb250ZXh0MiIsIm9uUmVzZW5kIiwiY29vbGRvd24iLCJyZXNvbHZlZFNlY29uZGFyeSIsImxhYmVsIiwiY2hpbGRyZW4iLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJoaW50IiwicHJpbWFyeSIsImxvYWRpbmciLCJzdGF0dXMiLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsIm9uQ2hhbmdlIiwib25Db21wbGV0ZSIsIlZlcmlmaWNhdGlvbkRpYWxvZyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNy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LGlCQUFpQjtJQUM1Qk0sT0FBTyxFQUFFO01BQ1BMLEtBQUssRUFBRWpFLFVBQVU7TUFDakJtRSxRQUFRLEVBQUVwSCxLQUFLLENBQUNtRCxNQUFNLEtBQUtBLE1BQU07TUFDakNxRSxPQUFPLEVBQUVwRCxTQUFTO01BQ2xCaUQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7UUFBQSxPQUFRNUIsU0FBUyxDQUFDekYsS0FBSyxDQUFDO01BQUE7SUR0Qy9CLENDdUNEO0lBQ0Q4QyxRQUFRLEVBQUVBLFFBQVE7SUFBQXFFLFFBQUEsRUFFbEJqRyxJQUFBLENBQUNNLFFBQVEsRUFBQTtNQUNQMkIsTUFBTSxFQUFFQSxNQUFNO01BQ2RuRCxLQUFLLEVBQUVBLEtBQUs7TUFDWnVELFNBQVMsRUFBRUEsU0FBUztNQUNwQlosSUFBSSxFQUFFQSxJQUFJO01BQ1Y4RSxNQUFNLEVBQUV6RCxLQUFLLEdBQUcsT0FBTyxHQUFHLFNBQVM7TUFDbkMwRCxRQUFRLEVBQUVKLElBQUk7TUFDZDtNQUNBO01BQ0FLLFlBQVksRUFBRTNELEtBQUssR0FBRyxPQUFPLEdBQUdrQixTQUFTO01BQ3pDMEMsUUFBUSxFQUFFbEIsWUFBWTtNQUN0Qm1CLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFHbkMsSUFBSSxFQUFJO1FBQ25CLElBQUlyQyxVQUFVLEVBQUUsS0FBS29DLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDO01BQ3RDO0lBQUMsQ0FBQTtFQUNELENBQUEsQ0FDUztBQUVqQixDQUFDO0FBRUQsT0FBTyxJQUFNb0Msa0JBQWtCLGdCQUFHM0csSUFBSSxDQUFDWSxzQkFBc0IsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzLCBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElucHV0T1RQIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JbnB1dC9PVFAnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nIH0gZnJvbSAnLi4vQmFzZURpYWxvZyc7XG5pbXBvcnQgeyBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICd2ZXJpZmljYXRpb24tZGlhbG9nJztcbi8qKlxuICogT1RQIHZlcmlmaWNhdGlvbiBzY2VuYXJpbyBzaGVsbCDigJQgYEJhc2VEaWFsb2dgICsgYElucHV0Lk9UUGAuIE93bnMgdGhlXG4gKiB2ZXJpZmljYXRpb24gaW50ZXJhY3Rpb246IGF1dG8tc3VibWl0IG9uIGNvbXBsZXRpb24sIHN1Ym1pdCBsb2FkaW5nLFxuICogZXJyb3IgZGlzcGxheSB3aXRoIGNsZWFyLW9uLWVycm9yLCBhbmQgYW4gb3B0aW9uYWwgcmF0ZS1saW1pdGVkIHJlc2VuZFxuICogcm93LiBUaGUgY29uc3VtZXIgZHJpdmVzIHRoZSB3aG9sZSBmbG93IHRocm91Z2ggb25lIGBvblZlcmlmeWAgY2FsbGJhY2suXG4gKi9cbmNvbnN0IFZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UgPSAoeyBvcGVuLCBtYXNrQ2xvc2FibGUsIHNob3dCYWNrSWNvbiwgb25CYWNrLCBjbGFzc05hbWUsIGV5ZWJyb3csIHRpdGxlLCBkZXNjcmlwdGlvbiwgXG4vLyBEZWZhdWx0cyB0byB0aGUgZmFtaWx5J3Mgc3Ryb25nIHdlaWdodDsgcGFzcyBgZmFsc2VgIHdoZW4gdGhlIGNvcHkgZW1iZWRzXG4vLyBhbiBlbWFpbCAob3Igb3RoZXIgc3BhbikgdGhhdCBzaG91bGQgYmUgdGhlIGVtcGhhc2l6ZWQgcGFydCBpbnN0ZWFkLlxuZGVzY3JpcHRpb25TdHJvbmcsIG90cEhpbnQsIG1hc2ssIHNlY29uZGFyeSwgcmVzZW5kLCBmb290bm90ZSwgb25WZXJpZnksIG9uQ2xvc2UsIHN1Ym1pdFRleHQsIGxlbmd0aCA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMubGVuZ3RoLCBhdXRvU3VibWl0ID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5hdXRvU3VibWl0LCBhdXRvRm9jdXMgPSBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmF1dG9Gb2N1cywgc2hvd0Nsb3NlSWNvbiA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMuc2hvd0Nsb3NlSWNvbiwgfSkgPT4ge1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3ZlcmlmeWluZywgc2V0VmVyaWZ5aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcmVzZW5kaW5nLCBzZXRSZXNlbmRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb29sZG93bkxlZnQsIHNldENvb2xkb3duTGVmdF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCB2ZXJpZnlpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIC8vIFNlc3Npb24gZXBvY2g6IGJ1bXBlZCBvbiBjbG9zZSBzbyBhc3luYyB3b3JrIHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBvcGVuXG4gICAgLy8gKG9uVmVyaWZ5IC8gb25SZXNlbmQgc3RpbGwgaW4gZmxpZ2h0KSBjYW5ub3QgdG91Y2ggdGhlIG5leHQgc2Vzc2lvbidzXG4gICAgLy8gc3RhdGUgb3IgbG9ja3MuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBBIGZyZXNoIHNlc3Npb24gZXZlcnkgdGltZSB0aGUgZGlhbG9nIG9wZW5zLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXNzaW9uUmVmLmN1cnJlbnQgKz0gMTtcbiAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgc2V0VmVyaWZ5aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0UmVzZW5kaW5nKGZhbHNlKTtcbiAgICAgICAgdmVyaWZ5aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LCBbb3Blbl0pO1xuICAgIGNvbnN0IGNvb2xpbmcgPSBjb29sZG93bkxlZnQgPiAwO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghY29vbGluZylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gc2V0Q29vbGRvd25MZWZ0KChsZWZ0KSA9PiBNYXRoLm1heCgwLCBsZWZ0IC0gMSkpLCAxMDAwKTtcbiAgICAgICAgcmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgIH0sIFtjb29saW5nXSk7XG4gICAgY29uc3QgcnVuVmVyaWZ5ID0gdXNlQ2FsbGJhY2soKGNvZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAodmVyaWZ5aW5nUmVmLmN1cnJlbnQgfHwgY29kZS5sZW5ndGggIT09IGxlbmd0aCB8fCAhb25WZXJpZnkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIHZlcmlmeWluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0VmVyaWZ5aW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIG9uVmVyaWZ5KGNvZGUpO1xuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCAhPT0gc2Vzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3IodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgJiYgcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgIDogVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5nZW5lcmljRXJyb3IpO1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAodGhyb3duKSB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ICE9PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldEVycm9yKHRocm93biBpbnN0YW5jZW9mIEVycm9yICYmIHRocm93bi5tZXNzYWdlXG4gICAgICAgICAgICAgICAgPyB0aHJvd24ubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5nZW5lcmljRXJyb3IpO1xuICAgICAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gQSBzdGFsZSBjb21wbGV0aW9uIG11c3Qgbm90IGNsZWFyIHRoZSBsb2NrIGEgbmV3ZXIgc2Vzc2lvbiBob2xkcy5cbiAgICAgICAgICAgIGlmIChzZXNzaW9uUmVmLmN1cnJlbnQgPT09IHNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICB2ZXJpZnlpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFZlcmlmeWluZyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSwgW2xlbmd0aCwgb25WZXJpZnldKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAobmV4dCkgPT4ge1xuICAgICAgICBzZXRWYWx1ZShuZXh0KTtcbiAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVSZXNlbmQgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCEocmVzZW5kID09PSBudWxsIHx8IHJlc2VuZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzZW5kLm9uUmVzZW5kKSB8fCBjb29sZG93bkxlZnQgPiAwIHx8IHJlc2VuZGluZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25SZWYuY3VycmVudDtcbiAgICAgICAgc2V0UmVzZW5kaW5nKHRydWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgeWllbGQgcmVzZW5kLm9uUmVzZW5kKCk7XG4gICAgICAgICAgICAvLyBDb29sZG93biBzdGFydHMgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwgZGlzcGF0Y2g7IGEgcmVqZWN0aW9uIGxlYXZlc1xuICAgICAgICAgICAgLy8gdGhlIGJ1dHRvbiBhcm1lZCBmb3IgYSByZXRyeSAodGhlIGNvbnN1bWVyIHN1cmZhY2VzIGl0cyBvd24gZXJyb3IpLlxuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbiAmJiByZXNlbmQuY29vbGRvd24pXG4gICAgICAgICAgICAgICAgc2V0Q29vbGRvd25MZWZ0KHJlc2VuZC5jb29sZG93bik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgICAgICAvLyBTd2FsbG93ZWQgZGVsaWJlcmF0ZWx5IOKAlCBzZWUgYWJvdmU7IHdpdGhvdXQgdGhpcyBhbiBvblJlc2VuZFxuICAgICAgICAgICAgLy8gcmVqZWN0aW9uIHdvdWxkIHN1cmZhY2UgYXMgYW4gdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uLlxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbilcbiAgICAgICAgICAgICAgICBzZXRSZXNlbmRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gUmVzZW5kIHRha2VzIHRoZSBsZWZ0IChzZWNvbmRhcnkpIGJ1dHRvbiwgc2hvd2luZyBhIGNvdW50ZG93biB3aGlsZVxuICAgIC8vIGNvb2xpbmcgZG93bjsgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0IENhbmNlbCAob3IgYW4gZXhwbGljaXQgc2Vjb25kYXJ5KS5cbiAgICBjb25zdCByZXNvbHZlZFNlY29uZGFyeSA9IHJlc2VuZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGxhYmVsOiBjb29sZG93bkxlZnQgPiAwID8gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3Jlc2VuZC5sYWJlbCwgXCIgKFwiLCBjb29sZG93bkxlZnQsIFwicylcIl0gfSkpIDogKHJlc2VuZC5sYWJlbCksXG4gICAgICAgICAgICBkaXNhYmxlZDogY29vbGRvd25MZWZ0ID4gMCB8fCB2ZXJpZnlpbmcgfHwgcmVzZW5kaW5nLFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlUmVzZW5kLFxuICAgICAgICB9XG4gICAgICAgIDogc2Vjb25kYXJ5ID09PSBmYWxzZVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogKHNlY29uZGFyeSAhPT0gbnVsbCAmJiBzZWNvbmRhcnkgIT09IHZvaWQgMCA/IHNlY29uZGFyeSA6IChvbkNsb3NlID8geyBvbkNsaWNrOiBvbkNsb3NlIH0gOiB1bmRlZmluZWQpKTtcbiAgICBjb25zdCBoaW50ID0gZXJyb3IgIT09IG51bGwgJiYgZXJyb3IgIT09IHZvaWQgMCA/IGVycm9yIDogb3RwSGludDtcbiAgICByZXR1cm4gKF9qc3goQmFzZURpYWxvZywgeyBvcGVuOiBvcGVuLCBleWVicm93OiBleWVicm93LCBtYXNrQ2xvc2FibGU6IG1hc2tDbG9zYWJsZSwgc2hvd0Nsb3NlSWNvbjogc2hvd0Nsb3NlSWNvbiwgc2hvd0JhY2tJY29uOiBzaG93QmFja0ljb24sIG9uQmFjazogb25CYWNrLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NuYW1lcyhQUkVGSVgpKCksIGNsYXNzTmFtZSksIHRpdGxlOiB0aXRsZSwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvblN0cm9uZzogZGVzY3JpcHRpb25TdHJvbmcsIG9uQ2xvc2U6IG9uQ2xvc2UsIHNlY29uZGFyeTogcmVzb2x2ZWRTZWNvbmRhcnksIHByaW1hcnk6IHtcbiAgICAgICAgICAgIGxhYmVsOiBzdWJtaXRUZXh0LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHZhbHVlLmxlbmd0aCAhPT0gbGVuZ3RoLFxuICAgICAgICAgICAgbG9hZGluZzogdmVyaWZ5aW5nLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4gcnVuVmVyaWZ5KHZhbHVlKSxcbiAgICAgICAgfSwgZm9vdG5vdGU6IGZvb3Rub3RlLCBjaGlsZHJlbjogX2pzeChJbnB1dE9UUCwgeyBsZW5ndGg6IGxlbmd0aCwgdmFsdWU6IHZhbHVlLCBhdXRvRm9jdXM6IGF1dG9Gb2N1cywgbWFzazogbWFzaywgc3RhdHVzOiBlcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCcsIGZlZWRiYWNrOiBoaW50LCBcbiAgICAgICAgICAgIC8vIEVycm9yIHJvd3Mgc2hvdyB0aGUgd2FybmluZyBnbHlwaCAob20gcmVxdWlyZXMgaXQgZXhwbGljaXRseSwgbGlrZVxuICAgICAgICAgICAgLy8gSW5wdXQpOyB0aGUgcGxhaW4gaGludCBoYXMgbm9uZS5cbiAgICAgICAgICAgIGZlZWRiYWNrSWNvbjogZXJyb3IgPyAnZXJyb3InIDogdW5kZWZpbmVkLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbkNvbXBsZXRlOiAoY29kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhdXRvU3VibWl0KVxuICAgICAgICAgICAgICAgICAgICB2b2lkIHJ1blZlcmlmeShjb2RlKTtcbiAgICAgICAgICAgIH0gfSkgfSkpO1xufTtcbmV4cG9ydCBjb25zdCBWZXJpZmljYXRpb25EaWFsb2cgPSBtZW1vKFZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
270
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbnB1dE9UUCIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIkJhc2VEaWFsb2ciLCJWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTIiwiUFJFRklYIiwiVmVyaWZpY2F0aW9uRGlhbG9nQmFzZSIsIl9yZWYiLCJvcGVuIiwibWFza0Nsb3NhYmxlIiwic2hvd0JhY2tJY29uIiwib25CYWNrIiwiY2xhc3NOYW1lIiwiZXllYnJvdyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvblN0cm9uZyIsIm90cEhpbnQiLCJtYXNrIiwic2Vjb25kYXJ5IiwicmVzZW5kIiwiZm9vdG5vdGUiLCJvblZlcmlmeSIsIm9uQ2xvc2UiLCJzdWJtaXRUZXh0IiwiX3JlZiRsZW5ndGgiLCJsZW5ndGgiLCJfcmVmJGF1dG9TdWJtaXQiLCJhdXRvU3VibWl0IiwiX3JlZiRhdXRvRm9jdXMiLCJhdXRvRm9jdXMiLCJfcmVmJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInZlcmlmeWluZyIsInNldFZlcmlmeWluZyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwicmVzZW5kaW5nIiwic2V0UmVzZW5kaW5nIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiY29vbGRvd25MZWZ0Iiwic2V0Q29vbGRvd25MZWZ0IiwidmVyaWZ5aW5nUmVmIiwic2Vzc2lvblJlZiIsImN1cnJlbnQiLCJjb29saW5nIiwidW5kZWZpbmVkIiwidGltZXIiLCJzZXRJbnRlcnZhbCIsImxlZnQiLCJNYXRoIiwibWF4IiwiY2xlYXJJbnRlcnZhbCIsInJ1blZlcmlmeSIsImNvZGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJzZXNzaW9uIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic2VudCIsImdlbmVyaWNFcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpbmlzaCIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVSZXNlbmQiLCJfY2FsbGVlMiIsIl90MiIsIl9jb250ZXh0MiIsIm9uUmVzZW5kIiwiY29vbGRvd24iLCJyZXNvbHZlZFNlY29uZGFyeSIsImxhYmVsIiwiY2hpbGRyZW4iLCJsb2FkaW5nIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwiaGludCIsInByaW1hcnkiLCJzdGF0dXMiLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsIm9uQ2hhbmdlIiwib25Db21wbGV0ZSIsIlZlcmlmaWNhdGlvbkRpYWxvZyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELFNBQVNPLFFBQVEsSUFBSUMsU0FBUyxFQUFFQyxJQUFJLElBQUlDLEtBQUssRUFBRUMsR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FDVHJGLFNBQVNDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdEUsU0FBU0MsUUFBUSxRQUFRLCtCQUErQjtBQUN4RCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLDJCQUEyQjtBQUMxRSxTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUMxQyxTQUFTQyw0QkFBNEIsUUFBUSxhQUFhO0FBSTFELE9BQU8sU0FBUztBQUVoQixJQUFNQyxNQUFNLEdBQUcscUJBQXFCO0FBRXBDO0FETUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0pBLElBQU1DLHNCQUFzQixHQUFnQyxTQUF0REEsc0JBQXNCQSxDQUFBQyxJQUFBLEVBd0J2QjtFQUFBLElBdkJIQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUNKQyxZQUFZLEdBQUFGLElBQUEsQ0FBWkUsWUFBWTtJQUNaQyxZQUFZLEdBQUFILElBQUEsQ0FBWkcsWUFBWTtJQUNaQyxNQUFNLEdBQUFKLElBQUEsQ0FBTkksTUFBTTtJQUNOQyxTQUFTLEdBQUFMLElBQUEsQ0FBVEssU0FBUztJQUNUQyxPQUFPLEdBQUFOLElBQUEsQ0FBUE0sT0FBTztJQUNQQyxLQUFLLEdBQUFQLElBQUEsQ0FBTE8sS0FBSztJQUNMQyxXQUFXLEdBQUFSLElBQUEsQ0FBWFEsV0FBVztJQUdYQyxpQkFBaUIsR0FBQVQsSUFBQSxDQUFqQlMsaUJBQWlCO0lBQ2pCQyxPQUFPLEdBQUFWLElBQUEsQ0FBUFUsT0FBTztJQUNQQyxJQUFJLEdBQUFYLElBQUEsQ0FBSlcsSUFBSTtJQUNKQyxTQUFTLEdBQUFaLElBQUEsQ0FBVFksU0FBUztJQUNUQyxNQUFNLEdBQUFiLElBQUEsQ0FBTmEsTUFBTTtJQUNOQyxRQUFRLEdBQUFkLElBQUEsQ0FBUmMsUUFBUTtJQUNSQyxRQUFRLEdBQUFmLElBQUEsQ0FBUmUsUUFBUTtJQUNSQyxPQUFPLEdBQUFoQixJQUFBLENBQVBnQixPQUFPO0lBQ1BDLFVBQVUsR0FBQWpCLElBQUEsQ0FBVmlCLFVBQVU7SUFBQUMsV0FBQSxHQUFBbEIsSUFBQSxDQUNWbUIsTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBR3JCLDRCQUE0QixDQUFDc0IsTUFBTSxHQUFBRCxXQUFBO0lBQUFFLGVBQUEsR0FBQXBCLElBQUEsQ0FDNUNxQixVQUFVO0lBQVZBLFVBQVUsR0FBQUQsZUFBQSxjQUFHdkIsNEJBQTRCLENBQUN3QixVQUFVLEdBQUFELGVBQUE7SUFBQUUsY0FBQSxHQUFBdEIsSUFBQSxDQUNwRHVCLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxjQUFBLGNBQUd6Qiw0QkFBNEIsQ0FBQzBCLFNBQVMsR0FBQUQsY0FBQTtJQUFBRSxrQkFBQSxHQUFBeEIsSUFBQSxDQUNsRHlCLGFBQWE7SUFBYkEsYUFBYSxHQUFBRCxrQkFBQSxjQUFHM0IsNEJBQTRCLENBQUM0QixhQUFhLEdBQUFELGtCQUFBO0VBRTFELElBQUFFLFNBQUEsR0FBMEJuQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQUFvQyxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUEvQjFELEtBQUssR0FBQTJELFVBQUE7SUFBRUUsUUFBUSxHQUFBRixVQUFBO0VBQ3RCLElBQUFHLFVBQUEsR0FBMEJ2QyxRQUFRLENBQWdCLElBQUksQ0FBQztJQUFBd0MsVUFBQSxHQUFBSCxjQUFBLENBQUFFLFVBQUE7SUFBaERFLEtBQUssR0FBQUQsVUFBQTtJQUFFRSxRQUFRLEdBQUFGLFVBQUE7RUFDdEIsSUFBQUcsVUFBQSxHQUFrQzNDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTRDLFVBQUEsR0FBQVAsY0FBQSxDQUFBTSxVQUFBO0lBQTFDRSxTQUFTLEdBQUFELFVBQUE7SUFBRUUsWUFBWSxHQUFBRixVQUFBO0VBQzlCLElBQUFHLFVBQUEsR0FBa0MvQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFnRCxVQUFBLEdBQUFYLGNBQUEsQ0FBQVUsVUFBQTtJQUExQ0UsU0FBUyxHQUFBRCxVQUFBO0lBQUVFLFlBQVksR0FBQUYsVUFBQTtFQUM5QixJQUFBRyxVQUFBLEdBQXdDbkQsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUFBb0QsV0FBQSxHQUFBZixjQUFBLENBQUFjLFVBQUE7SUFBNUNFLFlBQVksR0FBQUQsV0FBQTtJQUFFRSxlQUFlLEdBQUFGLFdBQUE7RUFDcEMsSUFBTUcsWUFBWSxHQUFHeEQsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNsQztFQUNBO0VBQ0E7RUFDQSxJQUFNeUQsVUFBVSxHQUFHekQsTUFBTSxDQUFDLENBQUMsQ0FBQztFQUU1QjtFQUNBRCxTQUFTLENBQUMsWUFBSztJQUNiLElBQUlZLElBQUksRUFBRTtJQUNWOEMsVUFBVSxDQUFDQyxPQUFPLElBQUksQ0FBQztJQUN2Qm5CLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDWkksUUFBUSxDQUFDLElBQUksQ0FBQztJQUNkSSxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25CSSxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25CSyxZQUFZLENBQUNFLE9BQU8sR0FBRyxLQUFLO0VBQzlCLENBQUMsRUFBRSxDQUFDL0MsSUFBSSxDQUFDLENBQUM7RUFFVixJQUFNZ0QsT0FBTyxHQUFHTCxZQUFZLEdBQUcsQ0FBQztFQUNoQ3ZELFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBSSxDQUFDNEQsT0FBTyxFQUFFLE9BQU9DLFNBQVM7SUFDOUIsSUFBTUMsS0FBSyxHQUFHQyxXQUFXLENBQUM7TUFBQSxPQUFNUCxlQUFlLENBQUMsVUFBQ1EsSUFBSTtRQUFBLE9BQUtDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRUYsSUFBSSxHQUFHLENBQUMsQ0FBQztNQUFBLEVBQUM7SUFBQSxHQUFFLElBQUksQ0FBQztJQUN2RixPQUFPO01BQUEsT0FBTUcsYUFBYSxDQUFDTCxLQUFLLENBQUM7SUFBQTtFQUNuQyxDQUFDLEVBQUUsQ0FBQ0YsT0FBTyxDQUFDLENBQUM7RUFFYixJQUFNUSxTQUFTLEdBQUdyRSxXQUFXLENBQzNCLFVBQU9zRSxJQUFZO0lBQUEsT0FBSWhHLFNBQUEsQ0FBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQWlHLG1CQUFBLENBQUFDLElBQUEsQ0FBQSxTQUFBQyxRQUFBO01BQUEsSUFBQUMsT0FBQSxFQUFBckYsTUFBQSxFQUFBc0YsRUFBQTtNQUFBLE9BQUFKLG1CQUFBLENBQUFLLElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBM0YsSUFBQTtVQUFBO1lBQUEsTUFDakJ3RSxZQUFZLENBQUNFLE9BQU8sSUFBSVUsSUFBSSxDQUFDdkMsTUFBTSxLQUFLQSxNQUFNLElBQUksQ0FBQ0osUUFBUTtjQUFBa0QsUUFBQSxDQUFBM0YsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBMkYsUUFBQSxDQUFBRSxNQUFBO1VBQUE7WUFDekRMLE9BQU8sR0FBR2YsVUFBVSxDQUFDQyxPQUFPO1lBQ2xDRixZQUFZLENBQUNFLE9BQU8sR0FBRyxJQUFJO1lBQzNCWCxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2xCSixRQUFRLENBQUMsSUFBSSxDQUFDO1lBQUNnQyxRQUFBLENBQUFDLElBQUE7WUFBQUQsUUFBQSxDQUFBM0YsSUFBQTtZQUVFLE9BQU15QyxRQUFRLENBQUMyQyxJQUFJLENBQUM7VUFBQTtZQUE3QmpGLE1BQU0sR0FBQXdGLFFBQUEsQ0FBQUcsSUFBQTtZQUFBLE1BQ1JyQixVQUFVLENBQUNDLE9BQU8sS0FBS2MsT0FBTztjQUFBRyxRQUFBLENBQUEzRixJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUEyRixRQUFBLENBQUFFLE1BQUE7VUFBQTtZQUNsQyxJQUFJMUYsTUFBTSxLQUFLLElBQUksRUFBRTtjQUNuQndELFFBQVEsQ0FDTixPQUFPeEQsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxHQUNoQ0EsTUFBTSxHQUNOb0IsNEJBQTRCLENBQUN3RSxZQUFZLENBQzlDO2NBQ0R4QyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2Q7WUFBQ29DLFFBQUEsQ0FBQTNGLElBQUE7WUFBQTtVQUFBO1lBQUEyRixRQUFBLENBQUFDLElBQUE7WUFBQUgsRUFBQSxHQUFBRSxRQUFBO1lBQUEsTUFFR2xCLFVBQVUsQ0FBQ0MsT0FBTyxLQUFLYyxPQUFPO2NBQUFHLFFBQUEsQ0FBQTNGLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQTJGLFFBQUEsQ0FBQUUsTUFBQTtVQUFBO1lBQ2xDbEMsUUFBUSxDQUNOOEIsRUFBQSxZQUFrQk8sS0FBSyxJQUFJUCxFQUFBLENBQU9RLE9BQU8sR0FDckNSLEVBQUEsQ0FBT1EsT0FBTyxHQUNkMUUsNEJBQTRCLENBQUN3RSxZQUFZLENBQzlDO1lBQ0R4QyxRQUFRLENBQUMsRUFBRSxDQUFDO1VBQUM7WUFBQW9DLFFBQUEsQ0FBQUMsSUFBQTtZQUViO1lBQ0EsSUFBSW5CLFVBQVUsQ0FBQ0MsT0FBTyxLQUFLYyxPQUFPLEVBQUU7Y0FDbENoQixZQUFZLENBQUNFLE9BQU8sR0FBRyxLQUFLO2NBQzVCWCxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ3JCO1lBQUMsT0FBQTRCLFFBQUEsQ0FBQU8sTUFBQTtVQUFBO1VBQUE7WUFBQSxPQUFBUCxRQUFBLENBQUFRLElBQUE7UUFBQTtNQUFBLEdBQUFaLE9BQUE7SUFBQSxDQUVKLEVBQUE7RUFBQSxHQUNELENBQUMxQyxNQUFNLEVBQUVKLFFBQVEsQ0FBQyxDQUNuQjtFQUVELElBQU0yRCxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSXBHLElBQVksRUFBSTtJQUNwQ3VELFFBQVEsQ0FBQ3ZELElBQUksQ0FBQztJQUNkLElBQUkwRCxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDM0IsQ0FBQztFQUVELElBQU0wQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQTtJQUFBLE9BQWNqSCxTQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLGVBQUFpRyxtQkFBQSxDQUFBQyxJQUFBLENBQUEsU0FBQWdCLFNBQUE7TUFBQSxJQUFBZCxPQUFBLEVBQUFlLEdBQUE7TUFBQSxPQUFBbEIsbUJBQUEsQ0FBQUssSUFBQSxXQUFBYyxTQUFBO1FBQUEsa0JBQUFBLFNBQUEsQ0FBQVosSUFBQSxHQUFBWSxTQUFBLENBQUF4RyxJQUFBO1VBQUE7WUFBQSxNQUMxQixFQUFDdUMsTUFBTSxLQUFBLElBQUEsSUFBTkEsTUFBTSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFOQSxNQUFNLENBQUVrRSxRQUFRLENBQUEsSUFBSW5DLFlBQVksR0FBRyxDQUFDLElBQUlKLFNBQVM7Y0FBQXNDLFNBQUEsQ0FBQXhHLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXdHLFNBQUEsQ0FBQVgsTUFBQTtVQUFBO1lBQ2hETCxPQUFPLEdBQUdmLFVBQVUsQ0FBQ0MsT0FBTztZQUNsQ1AsWUFBWSxDQUFDLElBQUksQ0FBQztZQUFDcUMsU0FBQSxDQUFBWixJQUFBO1lBQUFZLFNBQUEsQ0FBQXhHLElBQUE7WUFFakIsT0FBTXVDLE1BQU0sQ0FBQ2tFLFFBQVEsQ0FBQSxDQUFFO1VBQUE7WUFDdkI7WUFDQTtZQUNBLElBQUloQyxVQUFVLENBQUNDLE9BQU8sS0FBS2MsT0FBTyxJQUFJakQsTUFBTSxDQUFDbUUsUUFBUSxFQUFFbkMsZUFBZSxDQUFDaEMsTUFBTSxDQUFDbUUsUUFBUSxDQUFDO1lBQUNGLFNBQUEsQ0FBQXhHLElBQUE7WUFBQTtVQUFBO1lBQUF3RyxTQUFBLENBQUFaLElBQUE7WUFBQVcsR0FBQSxHQUFBQyxTQUFBO1VBQUE7WUFBQUEsU0FBQSxDQUFBWixJQUFBO1lBS3hGLElBQUluQixVQUFVLENBQUNDLE9BQU8sS0FBS2MsT0FBTyxFQUFFckIsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUFDLE9BQUFxQyxTQUFBLENBQUFOLE1BQUE7VUFBQTtVQUFBO1lBQUEsT0FBQU0sU0FBQSxDQUFBTCxJQUFBO1FBQUE7TUFBQSxHQUFBRyxRQUFBO0lBQUEsQ0FFM0QsRUFBQTtFQUFBO0VBRUQ7RUFDQTtFQUNBLElBQU1LLGlCQUFpQixHQUFnQ3BFLE1BQU0sR0FDekQ7SUFDRXFFLEtBQUssRUFDSHRDLFlBQVksR0FBRyxDQUFDLEdBQ2Q1RCxLQUFBLENBQUFGLFNBQUEsRUFBQTtNQUFBcUcsUUFBQSxFQUFBLENBQ0d0RSxNQUFNLENBQUNxRSxLQUFLLEVBQUEsSUFBQSxFQUFJdEMsWUFBWSxFQUFBLElBQUE7SUFBQSxDQUFBLENBQzVCLEdBRUgvQixNQUFNLENBQUNxRSxLQUNSO0lBQ0hFLE9BQU8sRUFBRTVDLFNBQVM7SUFDbEI2QyxRQUFRLEVBQUV6QyxZQUFZLEdBQUcsQ0FBQyxJQUFJUixTQUFTO0lBQ3ZDa0QsT0FBTyxFQUFFWDtFRHRCVCxDQ3VCRCxHQUNEL0QsU0FBUyxLQUFLLEtBQUssR0FDakJzQyxTQUFTLEdBQ1J0QyxTQUFTLEtBQUEsSUFBQSxJQUFUQSxTQUFTLEtBQUEsS0FBQSxDQUFBLEdBQVRBLFNBQVMsR0FBS0ksT0FBTyxHQUFHO0lBQUVzRSxPQUFPLEVBQUV0RTtFQUFPLENBQUUsR0FBR2tDLFNBQVc7RUFFakUsSUFBTXFDLElBQUksR0FBY3ZELEtBQUssS0FBQSxJQUFBLElBQUxBLEtBQUssS0FBQSxLQUFBLENBQUEsR0FBTEEsS0FBSyxHQUFJdEIsT0FBTztFQUV4QyxPQUNFeEIsSUFBQSxDQUFDVSxVQUFVLEVBQUE7SUFDVEssSUFBSSxFQUFFQSxJQUFJO0lBQ1ZLLE9BQU8sRUFBRUEsT0FBTztJQUNoQkosWUFBWSxFQUFFQSxZQUFZO0lBQzFCdUIsYUFBYSxFQUFFQSxhQUFhO0lBQzVCdEIsWUFBWSxFQUFFQSxZQUFZO0lBQzFCQyxNQUFNLEVBQUVBLE1BQU07SUFDZEMsU0FBUyxFQUFFVixPQUFPLENBQUNELFVBQVUsQ0FBQ0ksTUFBTSxDQUFDLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUM7SUFDbkRFLEtBQUssRUFBRUEsS0FBSztJQUNaQyxXQUFXLEVBQUVBLFdBQVc7SUFDeEJDLGlCQUFpQixFQUFFQSxpQkFBaUI7SUFDcENPLE9BQU8sRUFBRUEsT0FBTztJQUNoQkosU0FBUyxFQUFFcUUsaUJBQWlCO0lBQzVCTyxPQUFPLEVBQUU7TUFDUE4sS0FBSyxFQUFFakUsVUFBVTtNQUNqQm9FLFFBQVEsRUFBRXJILEtBQUssQ0FBQ21ELE1BQU0sS0FBS0EsTUFBTTtNQUNqQ2lFLE9BQU8sRUFBRWhELFNBQVM7TUFDbEJrRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVE3QixTQUFTLENBQUN6RixLQUFLLENBQUM7TUFBQTtJRHRDL0IsQ0N1Q0Q7SUFDRDhDLFFBQVEsRUFBRUEsUUFBUTtJQUFBcUUsUUFBQSxFQUVsQmpHLElBQUEsQ0FBQ00sUUFBUSxFQUFBO01BQ1AyQixNQUFNLEVBQUVBLE1BQU07TUFDZG5ELEtBQUssRUFBRUEsS0FBSztNQUNadUQsU0FBUyxFQUFFQSxTQUFTO01BQ3BCWixJQUFJLEVBQUVBLElBQUk7TUFDVjhFLE1BQU0sRUFBRXpELEtBQUssR0FBRyxPQUFPLEdBQUcsU0FBUztNQUNuQzBELFFBQVEsRUFBRUgsSUFBSTtNQUNkO01BQ0E7TUFDQUksWUFBWSxFQUFFM0QsS0FBSyxHQUFHLE9BQU8sR0FBR2tCLFNBQVM7TUFDekMwQyxRQUFRLEVBQUVsQixZQUFZO01BQ3RCbUIsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUduQyxJQUFJLEVBQUk7UUFDbkIsSUFBSXJDLFVBQVUsRUFBRSxLQUFLb0MsU0FBUyxDQUFDQyxJQUFJLENBQUM7TUFDdEM7SUFBQyxDQUFBO0VBQ0QsQ0FBQSxDQUNTO0FBRWpCLENBQUM7QUFFRCxPQUFPLElBQU1vQyxrQkFBa0IsZ0JBQUczRyxJQUFJLENBQUNZLHNCQUFzQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMsIGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSW5wdXRPVFAgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0lucHV0L09UUCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJhc2VEaWFsb2cgfSBmcm9tICcuLi9CYXNlRGlhbG9nJztcbmltcG9ydCB7IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ3ZlcmlmaWNhdGlvbi1kaWFsb2cnO1xuLyoqXG4gKiBPVFAgdmVyaWZpY2F0aW9uIHNjZW5hcmlvIHNoZWxsIOKAlCBgQmFzZURpYWxvZ2AgKyBgSW5wdXQuT1RQYC4gT3ducyB0aGVcbiAqIHZlcmlmaWNhdGlvbiBpbnRlcmFjdGlvbjogYXV0by1zdWJtaXQgb24gY29tcGxldGlvbiwgc3VibWl0IGxvYWRpbmcsXG4gKiBlcnJvciBkaXNwbGF5IHdpdGggY2xlYXItb24tZXJyb3IsIGFuZCBhbiBvcHRpb25hbCByYXRlLWxpbWl0ZWQgcmVzZW5kXG4gKiByb3cuIFRoZSBjb25zdW1lciBkcml2ZXMgdGhlIHdob2xlIGZsb3cgdGhyb3VnaCBvbmUgYG9uVmVyaWZ5YCBjYWxsYmFjay5cbiAqL1xuY29uc3QgVmVyaWZpY2F0aW9uRGlhbG9nQmFzZSA9ICh7IG9wZW4sIG1hc2tDbG9zYWJsZSwgc2hvd0JhY2tJY29uLCBvbkJhY2ssIGNsYXNzTmFtZSwgZXllYnJvdywgdGl0bGUsIGRlc2NyaXB0aW9uLCBcbi8vIERlZmF1bHRzIHRvIHRoZSBmYW1pbHkncyBzdHJvbmcgd2VpZ2h0OyBwYXNzIGBmYWxzZWAgd2hlbiB0aGUgY29weSBlbWJlZHNcbi8vIGFuIGVtYWlsIChvciBvdGhlciBzcGFuKSB0aGF0IHNob3VsZCBiZSB0aGUgZW1waGFzaXplZCBwYXJ0IGluc3RlYWQuXG5kZXNjcmlwdGlvblN0cm9uZywgb3RwSGludCwgbWFzaywgc2Vjb25kYXJ5LCByZXNlbmQsIGZvb3Rub3RlLCBvblZlcmlmeSwgb25DbG9zZSwgc3VibWl0VGV4dCwgbGVuZ3RoID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5sZW5ndGgsIGF1dG9TdWJtaXQgPSBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmF1dG9TdWJtaXQsIGF1dG9Gb2N1cyA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMuYXV0b0ZvY3VzLCBzaG93Q2xvc2VJY29uID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5zaG93Q2xvc2VJY29uLCB9KSA9PiB7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmVyaWZ5aW5nLCBzZXRWZXJpZnlpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtyZXNlbmRpbmcsIHNldFJlc2VuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2Nvb2xkb3duTGVmdCwgc2V0Q29vbGRvd25MZWZ0XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IHZlcmlmeWluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gU2Vzc2lvbiBlcG9jaDogYnVtcGVkIG9uIGNsb3NlIHNvIGFzeW5jIHdvcmsgc3RhcnRlZCBpbiBhIHByZXZpb3VzIG9wZW5cbiAgICAvLyAob25WZXJpZnkgLyBvblJlc2VuZCBzdGlsbCBpbiBmbGlnaHQpIGNhbm5vdCB0b3VjaCB0aGUgbmV4dCBzZXNzaW9uJ3NcbiAgICAvLyBzdGF0ZSBvciBsb2Nrcy5cbiAgICBjb25zdCBzZXNzaW9uUmVmID0gdXNlUmVmKDApO1xuICAgIC8vIEEgZnJlc2ggc2Vzc2lvbiBldmVyeSB0aW1lIHRoZSBkaWFsb2cgb3BlbnMuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG9wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBzZXRWYWx1ZSgnJyk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICBzZXRWZXJpZnlpbmcoZmFsc2UpO1xuICAgICAgICBzZXRSZXNlbmRpbmcoZmFsc2UpO1xuICAgICAgICB2ZXJpZnlpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sIFtvcGVuXSk7XG4gICAgY29uc3QgY29vbGluZyA9IGNvb2xkb3duTGVmdCA+IDA7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFjb29saW5nKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiBzZXRDb29sZG93bkxlZnQoKGxlZnQpID0+IE1hdGgubWF4KDAsIGxlZnQgLSAxKSksIDEwMDApO1xuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgfSwgW2Nvb2xpbmddKTtcbiAgICBjb25zdCBydW5WZXJpZnkgPSB1c2VDYWxsYmFjaygoY29kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICh2ZXJpZnlpbmdSZWYuY3VycmVudCB8fCBjb2RlLmxlbmd0aCAhPT0gbGVuZ3RoIHx8ICFvblZlcmlmeSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25SZWYuY3VycmVudDtcbiAgICAgICAgdmVyaWZ5aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRWZXJpZnlpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgb25WZXJpZnkoY29kZSk7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ICE9PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcih0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyAmJiByZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgPyByZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgOiBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmdlbmVyaWNFcnJvcik7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoICh0aHJvd24pIHtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uUmVmLmN1cnJlbnQgIT09IHNlc3Npb24pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0RXJyb3IodGhyb3duIGluc3RhbmNlb2YgRXJyb3IgJiYgdGhyb3duLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICA/IHRocm93bi5tZXNzYWdlXG4gICAgICAgICAgICAgICAgOiBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmdlbmVyaWNFcnJvcik7XG4gICAgICAgICAgICBzZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAvLyBBIHN0YWxlIGNvbXBsZXRpb24gbXVzdCBub3QgY2xlYXIgdGhlIGxvY2sgYSBuZXdlciBzZXNzaW9uIGhvbGRzLlxuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIHZlcmlmeWluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VmVyaWZ5aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbbGVuZ3RoLCBvblZlcmlmeV0pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChuZXh0KSA9PiB7XG4gICAgICAgIHNldFZhbHVlKG5leHQpO1xuICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZVJlc2VuZCA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIShyZXNlbmQgPT09IG51bGwgfHwgcmVzZW5kID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNlbmQub25SZXNlbmQpIHx8IGNvb2xkb3duTGVmdCA+IDAgfHwgcmVzZW5kaW5nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gc2Vzc2lvblJlZi5jdXJyZW50O1xuICAgICAgICBzZXRSZXNlbmRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB5aWVsZCByZXNlbmQub25SZXNlbmQoKTtcbiAgICAgICAgICAgIC8vIENvb2xkb3duIHN0YXJ0cyBvbmx5IGFmdGVyIGEgc3VjY2Vzc2Z1bCBkaXNwYXRjaDsgYSByZWplY3Rpb24gbGVhdmVzXG4gICAgICAgICAgICAvLyB0aGUgYnV0dG9uIGFybWVkIGZvciBhIHJldHJ5ICh0aGUgY29uc3VtZXIgc3VyZmFjZXMgaXRzIG93biBlcnJvcikuXG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ID09PSBzZXNzaW9uICYmIHJlc2VuZC5jb29sZG93bilcbiAgICAgICAgICAgICAgICBzZXRDb29sZG93bkxlZnQocmVzZW5kLmNvb2xkb3duKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFN3YWxsb3dlZCBkZWxpYmVyYXRlbHkg4oCUIHNlZSBhYm92ZTsgd2l0aG91dCB0aGlzIGFuIG9uUmVzZW5kXG4gICAgICAgICAgICAvLyByZWplY3Rpb24gd291bGQgc3VyZmFjZSBhcyBhbiB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24uXG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ID09PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHNldFJlc2VuZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBSZXNlbmQgdGFrZXMgdGhlIGxlZnQgKHNlY29uZGFyeSkgYnV0dG9uLCBzaG93aW5nIGEgY291bnRkb3duIHdoaWxlXG4gICAgLy8gY29vbGluZyBkb3duOyBvdGhlcndpc2UgdGhlIGRlZmF1bHQgQ2FuY2VsIChvciBhbiBleHBsaWNpdCBzZWNvbmRhcnkpLlxuICAgIGNvbnN0IHJlc29sdmVkU2Vjb25kYXJ5ID0gcmVzZW5kXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbGFiZWw6IGNvb2xkb3duTGVmdCA+IDAgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbcmVzZW5kLmxhYmVsLCBcIiAoXCIsIGNvb2xkb3duTGVmdCwgXCJzKVwiXSB9KSkgOiAocmVzZW5kLmxhYmVsKSxcbiAgICAgICAgICAgIGxvYWRpbmc6IHJlc2VuZGluZyxcbiAgICAgICAgICAgIGRpc2FibGVkOiBjb29sZG93bkxlZnQgPiAwIHx8IHZlcmlmeWluZyxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZVJlc2VuZCxcbiAgICAgICAgfVxuICAgICAgICA6IHNlY29uZGFyeSA9PT0gZmFsc2VcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IChzZWNvbmRhcnkgIT09IG51bGwgJiYgc2Vjb25kYXJ5ICE9PSB2b2lkIDAgPyBzZWNvbmRhcnkgOiAob25DbG9zZSA/IHsgb25DbGljazogb25DbG9zZSB9IDogdW5kZWZpbmVkKSk7XG4gICAgY29uc3QgaGludCA9IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IG90cEhpbnQ7XG4gICAgcmV0dXJuIChfanN4KEJhc2VEaWFsb2csIHsgb3Blbjogb3BlbiwgZXllYnJvdzogZXllYnJvdywgbWFza0Nsb3NhYmxlOiBtYXNrQ2xvc2FibGUsIHNob3dDbG9zZUljb246IHNob3dDbG9zZUljb24sIHNob3dCYWNrSWNvbjogc2hvd0JhY2tJY29uLCBvbkJhY2s6IG9uQmFjaywgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzbmFtZXMoUFJFRklYKSgpLCBjbGFzc05hbWUpLCB0aXRsZTogdGl0bGUsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZGVzY3JpcHRpb25TdHJvbmc6IGRlc2NyaXB0aW9uU3Ryb25nLCBvbkNsb3NlOiBvbkNsb3NlLCBzZWNvbmRhcnk6IHJlc29sdmVkU2Vjb25kYXJ5LCBwcmltYXJ5OiB7XG4gICAgICAgICAgICBsYWJlbDogc3VibWl0VGV4dCxcbiAgICAgICAgICAgIGRpc2FibGVkOiB2YWx1ZS5sZW5ndGggIT09IGxlbmd0aCxcbiAgICAgICAgICAgIGxvYWRpbmc6IHZlcmlmeWluZyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHJ1blZlcmlmeSh2YWx1ZSksXG4gICAgICAgIH0sIGZvb3Rub3RlOiBmb290bm90ZSwgY2hpbGRyZW46IF9qc3goSW5wdXRPVFAsIHsgbGVuZ3RoOiBsZW5ndGgsIHZhbHVlOiB2YWx1ZSwgYXV0b0ZvY3VzOiBhdXRvRm9jdXMsIG1hc2s6IG1hc2ssIHN0YXR1czogZXJyb3IgPyAnZXJyb3InIDogJ2RlZmF1bHQnLCBmZWVkYmFjazogaGludCwgXG4gICAgICAgICAgICAvLyBFcnJvciByb3dzIHNob3cgdGhlIHdhcm5pbmcgZ2x5cGggKG9tIHJlcXVpcmVzIGl0IGV4cGxpY2l0bHksIGxpa2VcbiAgICAgICAgICAgIC8vIElucHV0KTsgdGhlIHBsYWluIGhpbnQgaGFzIG5vbmUuXG4gICAgICAgICAgICBmZWVkYmFja0ljb246IGVycm9yID8gJ2Vycm9yJyA6IHVuZGVmaW5lZCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25Db21wbGV0ZTogKGNvZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXV0b1N1Ym1pdClcbiAgICAgICAgICAgICAgICAgICAgdm9pZCBydW5WZXJpZnkoY29kZSk7XG4gICAgICAgICAgICB9IH0pIH0pKTtcbn07XG5leHBvcnQgY29uc3QgVmVyaWZpY2F0aW9uRGlhbG9nID0gbWVtbyhWZXJpZmljYXRpb25EaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -127,7 +127,9 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
127
127
  }, _callee, null, [[2, 4, 5, 6]]);
128
128
  }));
129
129
  };
130
- void poll();
130
+ // Timers FIRST: a pollFn that throws synchronously settles during the
131
+ // first poll, and settle() must find real timer handles to clear —
132
+ // creating them afterwards would leave a live no-op interval behind.
131
133
  interval = setInterval(function () {
132
134
  return void poll();
133
135
  }, pollInterval);
@@ -137,6 +139,7 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
137
139
  return (_a = onPendingRef.current) === null || _a === void 0 ? void 0 : _a.call(onPendingRef);
138
140
  });
139
141
  }, pollTimeout);
142
+ void poll();
140
143
  return function () {
141
144
  settled = true;
142
145
  clearInterval(interval);
@@ -183,4 +186,4 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
183
186
  });
184
187
  };
185
188
  export var LoadingDialog = /*#__PURE__*/memo(LoadingDialogBase);
186
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvTG9hZGluZ0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VMYXRlc3QiLCJEaWFsb2ciLCJJY29ucyIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJCQVNFX0RJQUxPR19ERUZBVUxUUyIsIlBSRUZJWCIsIkxPQURJTkdfVEVYVCIsIkhJTlRfVEVYVCIsIkxvYWRpbmdEaWFsb2dCYXNlIiwiX3JlZiIsIm9wZW4iLCJfcmVmJGljb25TaXplIiwiaWNvblNpemUiLCJwb2xsRm4iLCJfcmVmJHBvbGxJbnRlcnZhbCIsInBvbGxJbnRlcnZhbCIsIl9yZWYkcG9sbFRpbWVvdXQiLCJwb2xsVGltZW91dCIsIm9uU3VjY2VzcyIsIm9uUGVuZGluZyIsIm9uRmFpbGVkIiwiY2xhc3NOYW1lIiwiY2xhc3NlcyIsInBvbGxGblJlZiIsIm9uU3VjY2Vzc1JlZiIsIm9uUGVuZGluZ1JlZiIsIm9uRmFpbGVkUmVmIiwiaGFzUG9sbEZuIiwidW5kZWZpbmVkIiwic2V0dGxlZCIsImluRmxpZ2h0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0Iiwic2V0dGxlIiwiZmlyZSIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJwb2xsIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0IiwiY3VycmVudCIsInNlbnQiLCJzdGF0dXMiLCJfYSIsImNhbGwiLCJkYXRhIiwiZmluaXNoIiwic3RvcCIsInNldEludGVydmFsIiwic2V0VGltZW91dCIsIndpZHRoIiwibWFza0Nsb3NhYmxlIiwic2hvd0Nsb3NlSWNvbiIsImNoaWxkcmVuIiwibmFtZSIsInNpemUiLCJIZWFkbGluZSIsInNwbGl0IiwibWFwIiwiY2hhciIsImluZGV4Iiwic3R5bGUiLCJhbmltYXRpb25EZWxheSIsImNvbmNhdCIsIkJvZHkiLCJzdHJvbmciLCJjb2xvciIsIkxvYWRpbmdEaWFsb2ciXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFP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QUFBLEVBQUE7UUFBSzJCLFNBQVMsRUFBRUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUFBcUMsUUFBQSxFQUFBLENBQzdCbkUsSUFBQSxDQUFDUSxVQUFVLENBQUM4RCxRQUFRLEVBQUE7VUFBQ0QsSUFBSSxFQUFDLElBQUk7VUFBQUYsUUFBQSxFQUM1Qm5FLElBQUEsQ0FBQSxNQUFBLEVBQUE7WUFBTTZCLFNBQVMsRUFBRUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUFBcUMsUUFBQSxFQUM3QnJELFlBQVksQ0FBQ3lELEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLFVBQUNDLEtBQUksRUFBRUMsS0FBSztjQUFBLE9BQ3RDMUUsSUFBQSxDQUFBLE1BQUEsRUFBQTtnQkFBK0IyRSxLQUFLLEVBQUU7a0JBQUVDLGNBQWMsS0FBQUMsTUFBQSxDQUFLSCxLQUFLLEdBQUcsR0FBRztnQkFBRyxDQUFFO2dCQUFBUCxRQUFBLEVBQ3hFTTtjQUFJLENBQUEsS0FBQUksTUFBQSxDQURPSixLQUFJLE9BQUFJLE1BQUEsQ0FBSUgsS0FBSyxDQUFFLENBRXRCO1lBQUEsQ0FDUjtVQUFDLENBQUE7UUFDRyxDQUFBLENBQ2EsRUFDdEIxRSxJQUFBLENBQUNRLFVBQVUsQ0FBQ3NFLElBQUksRUFBQTtVQUFDVCxJQUFJLEVBQUMsSUFBSTtVQUFDVSxNQUFNLEVBQUEsSUFBQTtVQUFDQyxLQUFLLEVBQUMsbUJBQW1CO1VBQUFiLFFBQUEsRUFDeERwRDtRQUFTLENBQUEsQ0FDTTtNQUFBLENBQUEsQ0FDZDtJQUFBLENBQUE7RUFDRixDQUFBLENBQ0M7QUFFYixDQUFDO0FBRUQsT0FBTyxJQUFNa0UsYUFBYSxnQkFBRzlFLElBQUksQ0FBQ2EsaUJBQWlCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL3ZhcmlhbnRzL0xvYWRpbmdEaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQkFTRV9ESUFMT0dfREVGQVVMVFMgfSBmcm9tICcuLi9CYXNlRGlhbG9nL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ2xvYWRpbmctZGlhbG9nJztcbi8vIEdlbmVyaWMgVUkgdm9jYWJ1bGFyeSAobGlrZSBDb25maXJtL0NhbmNlbCksIGZpeGVkIGFzIGluIHRoZSBsZWdhY3kgbW9kYWwuXG5jb25zdCBMT0FESU5HX1RFWFQgPSAnTG9hZGluZy4uLic7XG5jb25zdCBISU5UX1RFWFQgPSAnUGxlYXNlIHdhaXQgYSBmZXcgc2Vjb25kcyc7XG5jb25zdCBMb2FkaW5nRGlhbG9nQmFzZSA9ICh7IG9wZW4sIGljb25TaXplID0gNzQsIHBvbGxGbiwgcG9sbEludGVydmFsID0gMTAwMCwgcG9sbFRpbWVvdXQgPSA1MDAwLCBvblN1Y2Nlc3MsIG9uUGVuZGluZywgb25GYWlsZWQsIGNsYXNzTmFtZSwgfSkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKFBSRUZJWCk7XG4gICAgLy8gTGF0ZXN0LXJlZnMga2VlcCB0aGUgcG9sbGluZyBzZXNzaW9uIGFsaXZlIGFjcm9zcyByZS1yZW5kZXJzIHdpdGggaW5saW5lXG4gICAgLy8gY2FsbGJhY2tzIOKAlCBvbmx5IG9wZW4vaW50ZXJ2YWwvdGltZW91dCAoYW5kIHBvbGxGbiBwcmVzZW5jZSkgcmVzdGFydCBpdC5cbiAgICBjb25zdCBwb2xsRm5SZWYgPSB1c2VMYXRlc3QocG9sbEZuKTtcbiAgICBjb25zdCBvblN1Y2Nlc3NSZWYgPSB1c2VMYXRlc3Qob25TdWNjZXNzKTtcbiAgICBjb25zdCBvblBlbmRpbmdSZWYgPSB1c2VMYXRlc3Qob25QZW5kaW5nKTtcbiAgICBjb25zdCBvbkZhaWxlZFJlZiA9IHVzZUxhdGVzdChvbkZhaWxlZCk7XG4gICAgY29uc3QgaGFzUG9sbEZuID0gISFwb2xsRm47XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUG9sbGluZyBpcyB0aWVkIHRvIHZpc2liaWxpdHk6IGEgbW91bnRlZC1idXQtY2xvc2VkIGRpYWxvZyBtdXN0IG5vdFxuICAgICAgICAvLyBwb2xsIChvciBmaXJlIHRlcm1pbmFsIGNhbGxiYWNrcyBmcm9tIGJlaGluZCBhIGhpZGRlbiBzdXJmYWNlKS5cbiAgICAgICAgaWYgKCFoYXNQb2xsRm4gfHwgIW9wZW4pXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBTaW5nbGUtdGVybWluYWwtb3V0Y29tZSBndWFyZDogd2hpY2hldmVyIG9mIHN1Y2Nlc3MvZmFpbGVkL3BlbmRpbmdcbiAgICAgICAgLy8gc2V0dGxlcyBmaXJzdCB3aW5zOyBhbiBpbi1mbGlnaHQgcG9sbEZuIHJlc29sdmluZyBhZnRlciB0aGUgdGltZW91dFxuICAgICAgICAvLyAob3IgYWZ0ZXIgY2xvc2UvdW5tb3VudCkgaXMgZGlzY2FyZGVkLlxuICAgICAgICBsZXQgc2V0dGxlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgaW5GbGlnaHQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGludGVydmFsO1xuICAgICAgICBsZXQgdGltZW91dDtcbiAgICAgICAgY29uc3Qgc2V0dGxlID0gKGZpcmUpID0+IHtcbiAgICAgICAgICAgIGlmIChzZXR0bGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICBmaXJlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBvbGwgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmIChzZXR0bGVkIHx8IGluRmxpZ2h0KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGluRmxpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgcG9sbEZuUmVmLmN1cnJlbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uU3VjY2Vzc1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvblN1Y2Nlc3NSZWYsIHJlc3VsdC5kYXRhKTsgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdmYWlsZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uRmFpbGVkUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uRmFpbGVkUmVmLCByZXN1bHQuZGF0YSk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uRmFpbGVkUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uRmFpbGVkUmVmLCBlcnJvcik7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaW5GbGlnaHQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZvaWQgcG9sbCgpO1xuICAgICAgICBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHZvaWQgcG9sbCgpLCBwb2xsSW50ZXJ2YWwpO1xuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvblBlbmRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25QZW5kaW5nUmVmKTsgfSksIHBvbGxUaW1lb3V0KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIH07XG4gICAgfSwgW2hhc1BvbGxGbiwgb3BlbiwgcG9sbEludGVydmFsLCBwb2xsVGltZW91dCwgcG9sbEZuUmVmLCBvblN1Y2Nlc3NSZWYsIG9uUGVuZGluZ1JlZiwgb25GYWlsZWRSZWZdKTtcbiAgICByZXR1cm4gKF9qc3goRGlhbG9nLCB7IG9wZW46IG9wZW4sIHdpZHRoOiBCQVNFX0RJQUxPR19ERUZBVUxUUy53aWR0aCwgbWFza0Nsb3NhYmxlOiBmYWxzZSwgc2hvd0Nsb3NlSWNvbjogZmFsc2UsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3RhY2snKSwgY2hpbGRyZW46IFtfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BpbicpLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiAnbG9nb0JnJywgc2l6ZTogaWNvblNpemUgfSkgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd0ZXh0JyksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5LkhlYWRsaW5lLCB7IHNpemU6ICdzbScsIGNoaWxkcmVuOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd2F2ZScpLCBjaGlsZHJlbjogTE9BRElOR19URVhULnNwbGl0KCcnKS5tYXAoKGNoYXIsIGluZGV4KSA9PiAoX2pzeChcInNwYW5cIiwgeyBzdHlsZTogeyBhbmltYXRpb25EZWxheTogYCR7aW5kZXggKiAwLjF9c2AgfSwgY2hpbGRyZW46IGNoYXIgfSwgYCR7Y2hhcn0tJHtpbmRleH1gKSkpIH0pIH0pLCBfanN4KFR5cG9ncmFwaHkuQm9keSwgeyBzaXplOiAnbWQnLCBzdHJvbmc6IHRydWUsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogSElOVF9URVhUIH0pXSB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nRGlhbG9nID0gbWVtbyhMb2FkaW5nRGlhbG9nQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
189
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvTG9hZGluZ0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VMYXRlc3QiLCJEaWFsb2ciLCJJY29ucyIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJCQVNFX0RJQUxPR19ERUZBVUxUUyIsIlBSRUZJWCIsIkxPQURJTkdfVEVYVCIsIkhJTlRfVEVYVCIsIkxvYWRpbmdEaWFsb2dCYXNlIiwiX3JlZiIsIm9wZW4iLCJfcmVmJGljb25TaXplIiwiaWNvblNpemUiLCJwb2xsRm4iLCJfcmVmJHBvbGxJbnRlcnZhbCIsInBvbGxJbnRlcnZhbCIsIl9yZWYkcG9sbFRpbWVvdXQiLCJwb2xsVGltZW91dCIsIm9uU3VjY2VzcyIsIm9uUGVuZGluZyIsIm9uRmFpbGVkIiwiY2xhc3NOYW1lIiwiY2xhc3NlcyIsInBvbGxGblJlZiIsIm9uU3VjY2Vzc1JlZiIsIm9uUGVuZGluZ1JlZiIsIm9uRmFpbGVkUmVmIiwiaGFzUG9sbEZuIiwidW5kZWZpbmVkIiwic2V0dGxlZCIsImluRmxpZ2h0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0Iiwic2V0dGxlIiwiZmlyZSIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJwb2xsIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0IiwiY3VycmVudCIsInNlbnQiLCJzdGF0dXMiLCJfYSIsImNhbGwiLCJkYXRhIiwiZmluaXNoIiwic3RvcCIsInNldEludGVydmFsIiwic2V0VGltZW91dCIsIndpZHRoIiwibWFza0Nsb3NhYmxlIiwic2hvd0Nsb3NlSWNvbiIsImNoaWxkcmVuIiwibmFtZSIsInNpemUiLCJIZWFkbGluZSIsInNwbGl0IiwibWFwIiwiY2hhciIsImluZGV4Iiwic3R5bGUiLCJhbmltYXRpb25EZWxheSIsImNvbmNhdCIsIkJvZHkiLCJzdHJvbmciLCJjb2xvciIsIkxvYWRpbmdEaWFsb2ciXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELFNBQVNPLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNUOUQsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2QyxPQUFPQyxTQUFTLE1BQU0seUJBQXlCO0FBQy9DLFNBQVNDLE1BQU0sUUFBUSw0QkFBNEI7QUFDbkQsU0FBU0MsS0FBSyxRQUFRLDJCQUEyQjtBQUNqRCxTQUFTQyxVQUFVLFFBQVEsZ0NBQWdDO0FBQzNELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsMkJBQTJCO0FBQzFFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUU5RCxPQUFPLFNBQVM7QUFvQ2hCLElBQU1DLE1BQU0sR0FBRyxnQkFBZ0I7QUFFL0I7QUFDQSxJQUFNQyxZQUFZLEdBQUcsWUFBWTtBQUNqQyxJQUFNQyxTQUFTLEdBQUcsMkJBQTJCO0FBRTdDLElBQU1DLGlCQUFpQixHQUEyQixTQUE1Q0EsaUJBQWlCQSxDQUFBQyxJQUFBLEVBVWxCO0VBQUEsSUFUSEMsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7SUFBQUMsYUFBQSxHQUFBRixJQUFBLENBQ0pHLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxhQUFBLGNBQUcsRUFBRSxHQUFBQSxhQUFBO0lBQ2JFLE1BQU0sR0FBQUosSUFBQSxDQUFOSSxNQUFNO0lBQUFDLGlCQUFBLEdBQUFMLElBQUEsQ0FDTk0sWUFBWTtJQUFaQSxZQUFZLEdBQUFELGlCQUFBLGNBQUcsSUFBSSxHQUFBQSxpQkFBQTtJQUFBRSxnQkFBQSxHQUFBUCxJQUFBLENBQ25CUSxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsZ0JBQUEsY0FBRyxJQUFJLEdBQUFBLGdCQUFBO0lBQ2xCRSxTQUFTLEdBQUFULElBQUEsQ0FBVFMsU0FBUztJQUNUQyxTQUFTLEdBQUFWLElBQUEsQ0FBVFUsU0FBUztJQUNUQyxRQUFRLEdBQUFYLElBQUEsQ0FBUlcsUUFBUTtJQUNSQyxTQUFTLEdBQUFaLElBQUEsQ0FBVFksU0FBUztFQUVULElBQU1DLE9BQU8sR0FBR3BCLFVBQVUsQ0FBQ0csTUFBTSxDQUFDO0VBQ2xDO0VBQ0E7RUFDQSxJQUFNa0IsU0FBUyxHQUFHMUIsU0FBUyxDQUFDZ0IsTUFBTSxDQUFDO0VBQ25DLElBQU1XLFlBQVksR0FBRzNCLFNBQVMsQ0FBQ3FCLFNBQVMsQ0FBQztFQUN6QyxJQUFNTyxZQUFZLEdBQUc1QixTQUFTLENBQUNzQixTQUFTLENBQUM7RUFDekMsSUFBTU8sV0FBVyxHQUFHN0IsU0FBUyxDQUFDdUIsUUFBUSxDQUFDO0VBQ3ZDLElBQU1PLFNBQVMsR0FBRyxDQUFDLENBQUNkLE1BQU07RUFFMUJqQixTQUFTLENBQUMsWUFBSztJQUNiO0lBQ0E7SUFDQSxJQUFJLENBQUMrQixTQUFTLElBQUksQ0FBQ2pCLElBQUksRUFBRSxPQUFPa0IsU0FBUztJQUN6QztJQUNBO0lBQ0E7SUFDQSxJQUFJQyxPQUFPLEdBQUcsS0FBSztJQUNuQixJQUFJQyxRQUFRLEdBQUcsS0FBSztJQUNwQixJQUFJQyxRQUF3QztJQUM1QyxJQUFJQyxPQUFzQztJQUMxQyxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBTUEsQ0FBSUMsSUFBZ0IsRUFBSTtNQUNsQyxJQUFJTCxPQUFPLEVBQUU7TUFDYkEsT0FBTyxHQUFHLElBQUk7TUFDZE0sYUFBYSxDQUFDSixRQUFRLENBQUM7TUFDdkJLLFlBQVksQ0FBQ0osT0FBTyxDQUFDO01BQ3JCRSxJQUFJLENBQUEsQ0FBRTtJQUNSLENBQUM7SUFDRCxJQUFNRyxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQTtNQUFBLE9BQWNqRSxTQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLGVBQUFrRSxtQkFBQSxDQUFBQyxJQUFBLENBQUEsU0FBQUMsUUFBQTtRQUFBLElBQUFyRCxNQUFBLEVBQUFzRCxFQUFBO1FBQUEsT0FBQUgsbUJBQUEsQ0FBQUksSUFBQSxXQUFBQyxRQUFBO1VBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUEzRCxJQUFBO1lBQUE7Y0FBQSxNQUNsQjZDLE9BQU8sSUFBSUMsUUFBUTtnQkFBQWEsUUFBQSxDQUFBM0QsSUFBQTtnQkFBQTtjQUFBO2NBQUEsT0FBQTJELFFBQUEsQ0FBQUUsTUFBQTtZQUFBO2NBQ3ZCZixRQUFRLEdBQUcsSUFBSTtjQUFDYSxRQUFBLENBQUFDLElBQUE7Y0FBQUQsUUFBQSxDQUFBM0QsSUFBQTtjQUVDLE9BQU11QyxTQUFTLENBQUN1QixPQUFRLENBQUEsQ0FBRTtZQUFBO2NBQW5DM0QsTUFBTSxHQUFBd0QsUUFBQSxDQUFBSSxJQUFBO2NBQ1osSUFBSTVELE1BQU0sQ0FBQzZELE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQy9CZixNQUFNLENBQUMsWUFBSztrQkFBQSxJQUFBZ0IsRUFBQTtrQkFBQyxPQUFBLENBQUFBLEVBQUEsR0FBQXpCLFlBQVksQ0FBQ3NCLE9BQU8sTUFBQSxJQUFBLElBQUFHLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBQyxJQUFBLENBQUExQixZQUFBLEVBQUdyQyxNQUFNLENBQUNnRSxJQUFJLENBQUM7Z0JBQUEsQ0FBQSxDQUFDO2NBQ25ELENBQUMsTUFBTSxJQUFJaEUsTUFBTSxDQUFDNkQsTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDckNmLE1BQU0sQ0FBQyxZQUFLO2tCQUFBLElBQUFnQixFQUFBO2tCQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBdkIsV0FBVyxDQUFDb0IsT0FBTyxNQUFBLElBQUEsSUFBQUcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFDLElBQUEsQ0FBQXhCLFdBQUEsRUFBR3ZDLE1BQU0sQ0FBQ2dFLElBQUksQ0FBQztnQkFBQSxDQUFBLENBQUM7Y0FDbEQ7Y0FBQ1IsUUFBQSxDQUFBM0QsSUFBQTtjQUFBO1lBQUE7Y0FBQTJELFFBQUEsQ0FBQUMsSUFBQTtjQUFBSCxFQUFBLEdBQUFFLFFBQUE7Y0FFRFYsTUFBTSxDQUFDLFlBQUs7Z0JBQUEsSUFBQWdCLEVBQUE7Z0JBQUMsT0FBQSxDQUFBQSxFQUFBLEdBQUF2QixXQUFXLENBQUNvQixPQUFPLE1BQUEsSUFBQSxJQUFBRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQUMsSUFBQSxDQUFBeEIsV0FBQSxFQUFBZSxFQUFRLENBQUM7Y0FBQSxDQUFBLENBQUM7WUFBQztjQUFBRSxRQUFBLENBQUFDLElBQUE7Y0FFM0NkLFFBQVEsR0FBRyxLQUFLO2NBQUMsT0FBQWEsUUFBQSxDQUFBUyxNQUFBO1lBQUE7WUFBQTtjQUFBLE9BQUFULFFBQUEsQ0FBQVUsSUFBQTtVQUFBO1FBQUEsR0FBQWIsT0FBQTtNQUFBLENBRXBCLEVBQUE7SUFBQTtJQUNEO0lBQ0E7SUFDQTtJQUNBVCxRQUFRLEdBQUd1QixXQUFXLENBQUM7TUFBQSxPQUFNLEtBQUtqQixJQUFJLENBQUEsQ0FBRTtJQUFBLEdBQUV0QixZQUFZLENBQUM7SUFDdkRpQixPQUFPLEdBQUd1QixVQUFVLENBQUM7TUFBQSxPQUFNdEIsTUFBTSxDQUFDLFlBQUs7UUFBQSxJQUFBZ0IsRUFBQTtRQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBeEIsWUFBWSxDQUFDcUIsT0FBTyxNQUFBLElBQUEsSUFBQUcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFDLElBQUEsQ0FBQXpCLFlBQUEsQ0FBSTtNQUFBLENBQUEsQ0FBQztJQUFBLEdBQUVSLFdBQVcsQ0FBQztJQUMvRSxLQUFLb0IsSUFBSSxDQUFBLENBQUU7SUFDWCxPQUFPLFlBQUs7TUFDVlIsT0FBTyxHQUFHLElBQUk7TUFDZE0sYUFBYSxDQUFDSixRQUFRLENBQUM7TUFDdkJLLFlBQVksQ0FBQ0osT0FBTyxDQUFDO0lBQ3ZCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0wsU0FBUyxFQUFFakIsSUFBSSxFQUFFSyxZQUFZLEVBQUVFLFdBQVcsRUFBRU0sU0FBUyxFQUFFQyxZQUFZLEVBQUVDLFlBQVksRUFBRUMsV0FBVyxDQUFDLENBQUM7RUFFcEcsT0FDRWxDLElBQUEsQ0FBQ00sTUFBTSxFQUFBO0lBQ0xZLElBQUksRUFBRUEsSUFBSTtJQUNWOEMsS0FBSyxFQUFFcEQsb0JBQW9CLENBQUNvRCxLQUFLO0lBQ2pDQyxZQUFZLEVBQUUsS0FBSztJQUNuQkMsYUFBYSxFQUFFLEtBQUs7SUFDcEJyQyxTQUFTLEVBQUVsQixPQUFPLENBQUNtQixPQUFPLENBQUEsQ0FBRSxFQUFFRCxTQUFTLENBQUM7SUFBQXNDLFFBQUEsRUFFeENqRSxLQUFBLENBQUEsS0FBQSxFQUFBO01BQUsyQixTQUFTLEVBQUVDLE9BQU8sQ0FBQyxPQUFPLENBQUM7TUFBQXFDLFFBQUEsRUFBQSxDQUM5Qm5FLElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBTTZCLFNBQVMsRUFBRUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUFBcUMsUUFBQSxFQUM5Qm5FLElBQUEsQ0FBQ08sS0FBSyxFQUFBO1VBQUM2RCxJQUFJLEVBQUMsUUFBUTtVQUFDQyxJQUFJLEVBQUVqRDtRQUFRLENBQUE7TUFBSSxDQUFBLENBQ2xDLEVBQ1BsQixLQUFBLENBQUEsS0FBQSxFQUFBO1FBQUsyQixTQUFTLEVBQUVDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFBQXFDLFFBQUEsRUFBQSxDQUM3Qm5FLElBQUEsQ0FBQ1EsVUFBVSxDQUFDOEQsUUFBUSxFQUFBO1VBQUNELElBQUksRUFBQyxJQUFJO1VBQUFGLFFBQUEsRUFDNUJuRSxJQUFBLENBQUEsTUFBQSxFQUFBO1lBQU02QixTQUFTLEVBQUVDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFBQXFDLFFBQUEsRUFDN0JyRCxZQUFZLENBQUN5RCxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUNDLEdBQUcsQ0FBQyxVQUFDQyxLQUFJLEVBQUVDLEtBQUs7Y0FBQSxPQUN0QzFFLElBQUEsQ0FBQSxNQUFBLEVBQUE7Z0JBQStCMkUsS0FBSyxFQUFFO2tCQUFFQyxjQUFjLEtBQUFDLE1BQUEsQ0FBS0gsS0FBSyxHQUFHLEdBQUc7Z0JBQUcsQ0FBRTtnQkFBQVAsUUFBQSxFQUN4RU07Y0FBSSxDQUFBLEtBQUFJLE1BQUEsQ0FET0osS0FBSSxPQUFBSSxNQUFBLENBQUlILEtBQUssQ0FBRSxDQUV0QjtZQUFBLENBQ1I7VUFBQyxDQUFBO1FBQ0csQ0FBQSxDQUNhLEVBQ3RCMUUsSUFBQSxDQUFDUSxVQUFVLENBQUNzRSxJQUFJLEVBQUE7VUFBQ1QsSUFBSSxFQUFDLElBQUk7VUFBQ1UsTUFBTSxFQUFBLElBQUE7VUFBQ0MsS0FBSyxFQUFDLG1CQUFtQjtVQUFBYixRQUFBLEVBQ3hEcEQ7UUFBUyxDQUFBLENBQ007TUFBQSxDQUFBLENBQ2Q7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUNDO0FBRWIsQ0FBQztBQUVELE9BQU8sSUFBTWtFLGFBQWEsZ0JBQUc5RSxJQUFJLENBQUNhLGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJBU0VfRElBTE9HX0RFRkFVTFRTIH0gZnJvbSAnLi4vQmFzZURpYWxvZy9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdsb2FkaW5nLWRpYWxvZyc7XG4vLyBHZW5lcmljIFVJIHZvY2FidWxhcnkgKGxpa2UgQ29uZmlybS9DYW5jZWwpLCBmaXhlZCBhcyBpbiB0aGUgbGVnYWN5IG1vZGFsLlxuY29uc3QgTE9BRElOR19URVhUID0gJ0xvYWRpbmcuLi4nO1xuY29uc3QgSElOVF9URVhUID0gJ1BsZWFzZSB3YWl0IGEgZmV3IHNlY29uZHMnO1xuY29uc3QgTG9hZGluZ0RpYWxvZ0Jhc2UgPSAoeyBvcGVuLCBpY29uU2l6ZSA9IDc0LCBwb2xsRm4sIHBvbGxJbnRlcnZhbCA9IDEwMDAsIHBvbGxUaW1lb3V0ID0gNTAwMCwgb25TdWNjZXNzLCBvblBlbmRpbmcsIG9uRmFpbGVkLCBjbGFzc05hbWUsIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQUkVGSVgpO1xuICAgIC8vIExhdGVzdC1yZWZzIGtlZXAgdGhlIHBvbGxpbmcgc2Vzc2lvbiBhbGl2ZSBhY3Jvc3MgcmUtcmVuZGVycyB3aXRoIGlubGluZVxuICAgIC8vIGNhbGxiYWNrcyDigJQgb25seSBvcGVuL2ludGVydmFsL3RpbWVvdXQgKGFuZCBwb2xsRm4gcHJlc2VuY2UpIHJlc3RhcnQgaXQuXG4gICAgY29uc3QgcG9sbEZuUmVmID0gdXNlTGF0ZXN0KHBvbGxGbik7XG4gICAgY29uc3Qgb25TdWNjZXNzUmVmID0gdXNlTGF0ZXN0KG9uU3VjY2Vzcyk7XG4gICAgY29uc3Qgb25QZW5kaW5nUmVmID0gdXNlTGF0ZXN0KG9uUGVuZGluZyk7XG4gICAgY29uc3Qgb25GYWlsZWRSZWYgPSB1c2VMYXRlc3Qob25GYWlsZWQpO1xuICAgIGNvbnN0IGhhc1BvbGxGbiA9ICEhcG9sbEZuO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFBvbGxpbmcgaXMgdGllZCB0byB2aXNpYmlsaXR5OiBhIG1vdW50ZWQtYnV0LWNsb3NlZCBkaWFsb2cgbXVzdCBub3RcbiAgICAgICAgLy8gcG9sbCAob3IgZmlyZSB0ZXJtaW5hbCBjYWxsYmFja3MgZnJvbSBiZWhpbmQgYSBoaWRkZW4gc3VyZmFjZSkuXG4gICAgICAgIGlmICghaGFzUG9sbEZuIHx8ICFvcGVuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gU2luZ2xlLXRlcm1pbmFsLW91dGNvbWUgZ3VhcmQ6IHdoaWNoZXZlciBvZiBzdWNjZXNzL2ZhaWxlZC9wZW5kaW5nXG4gICAgICAgIC8vIHNldHRsZXMgZmlyc3Qgd2luczsgYW4gaW4tZmxpZ2h0IHBvbGxGbiByZXNvbHZpbmcgYWZ0ZXIgdGhlIHRpbWVvdXRcbiAgICAgICAgLy8gKG9yIGFmdGVyIGNsb3NlL3VubW91bnQpIGlzIGRpc2NhcmRlZC5cbiAgICAgICAgbGV0IHNldHRsZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgIGxldCBpbnRlcnZhbDtcbiAgICAgICAgbGV0IHRpbWVvdXQ7XG4gICAgICAgIGNvbnN0IHNldHRsZSA9IChmaXJlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXR0bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgZmlyZSgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwb2xsID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZCB8fCBpbkZsaWdodClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpbkZsaWdodCA9IHRydWU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIHBvbGxGblJlZi5jdXJyZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvblN1Y2Nlc3NSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25TdWNjZXNzUmVmLCByZXN1bHQuZGF0YSk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgcmVzdWx0LmRhdGEpOyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgZXJyb3IpOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaW1lcnMgRklSU1Q6IGEgcG9sbEZuIHRoYXQgdGhyb3dzIHN5bmNocm9ub3VzbHkgc2V0dGxlcyBkdXJpbmcgdGhlXG4gICAgICAgIC8vIGZpcnN0IHBvbGwsIGFuZCBzZXR0bGUoKSBtdXN0IGZpbmQgcmVhbCB0aW1lciBoYW5kbGVzIHRvIGNsZWFyIOKAlFxuICAgICAgICAvLyBjcmVhdGluZyB0aGVtIGFmdGVyd2FyZHMgd291bGQgbGVhdmUgYSBsaXZlIG5vLW9wIGludGVydmFsIGJlaGluZC5cbiAgICAgICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB2b2lkIHBvbGwoKSwgcG9sbEludGVydmFsKTtcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0dGxlKCgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gb25QZW5kaW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uUGVuZGluZ1JlZik7IH0pLCBwb2xsVGltZW91dCk7XG4gICAgICAgIHZvaWQgcG9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc2V0dGxlZCA9IHRydWU7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgfTtcbiAgICB9LCBbaGFzUG9sbEZuLCBvcGVuLCBwb2xsSW50ZXJ2YWwsIHBvbGxUaW1lb3V0LCBwb2xsRm5SZWYsIG9uU3VjY2Vzc1JlZiwgb25QZW5kaW5nUmVmLCBvbkZhaWxlZFJlZl0pO1xuICAgIHJldHVybiAoX2pzeChEaWFsb2csIHsgb3Blbjogb3Blbiwgd2lkdGg6IEJBU0VfRElBTE9HX0RFRkFVTFRTLndpZHRoLCBtYXNrQ2xvc2FibGU6IGZhbHNlLCBzaG93Q2xvc2VJY29uOiBmYWxzZSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdGFjaycpLCBjaGlsZHJlbjogW19qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGluJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6ICdsb2dvQmcnLCBzaXplOiBpY29uU2l6ZSB9KSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3RleHQnKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHkuSGVhZGxpbmUsIHsgc2l6ZTogJ3NtJywgY2hpbGRyZW46IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3YXZlJyksIGNoaWxkcmVuOiBMT0FESU5HX1RFWFQuc3BsaXQoJycpLm1hcCgoY2hhciwgaW5kZXgpID0+IChfanN4KFwic3BhblwiLCB7IHN0eWxlOiB7IGFuaW1hdGlvbkRlbGF5OiBgJHtpbmRleCAqIDAuMX1zYCB9LCBjaGlsZHJlbjogY2hhciB9LCBgJHtjaGFyfS0ke2luZGV4fWApKSkgfSkgfSksIF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBISU5UX1RFWFQgfSldIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IExvYWRpbmdEaWFsb2cgPSBtZW1vKExvYWRpbmdEaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -25,17 +25,19 @@ export var useRelayedFormRef = function useRelayedFormRef(formRef) {
25
25
  }
26
26
  };
27
27
  }, []);
28
- // Track a swapped-in formRef prop and backfill it with the live instance.
29
- // The cleanup clears the outgoing ref (on swap AND on shell unmount) so a
30
- // consumer can never hold a handle to an unmounted form — a stale instance
31
- // would validate an empty field store and report fake success.
28
+ // Track a swapped-in formRef prop and backfill it with the live instance;
29
+ // the cleanup clears the outgoing ref on swap and on shell unmount. The
30
+ // inner-form lifecycle needs no handling here: ProForm's own ref-sync
31
+ // cleanup publishes `undefined` through the setter when the form unmounts
32
+ // (e.g. the shell stays mounted with `open=false`), so `innerRef.current`
33
+ // never holds an unmounted instance.
32
34
  useEffect(function () {
33
35
  externalRef.current = formRef;
34
36
  if (formRef) formRef.current = innerRef.current;
35
37
  return function () {
36
38
  if (formRef) formRef.current = undefined;
37
39
  };
38
- });
40
+ }, [formRef, innerRef]);
39
41
  return innerRef;
40
42
  };
41
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NoYXJlZC9zcmMvYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLnRzIiwiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VSZWxheWVkRm9ybVJlZiIsImZvcm1SZWYiLCJleHRlcm5hbFJlZiIsImlubmVyUmVmIiwiaW5zdGFuY2UiLCJjdXJyZW50IiwibmV4dCIsImV4dGVybmFsIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFJbEQ7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRElBLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FDNUJDLE9BQXVFLEVBQ3JFO0VBQ0YsSUFBTUMsV0FBVyxHQUFHSCxNQUFNLENBQUNFLE9BQU8sQ0FBQztFQUVuQyxJQUFNRSxRQUFRLEdBQUdMLE9BQU8sQ0FBQyxZQUFLO0lBQzVCLElBQUlNLFFBQWlEO0lBQ3JELE9BQU87TUFDTCxJQUFJQyxPQUFPQSxDQUFBLEVBQUE7UUFDVCxPQUFPRCxRQUFRO01BQ2pCLENBQUM7TUFDRCxJQUFJQyxPQUFPQSxDQUFDQyxJQUE2QyxFQUFBO1FBQ3ZERixRQUFRLEdBQUdFLElBQUk7UUFDZixJQUFNQyxRQUFRLEdBQUdMLFdBQVcsQ0FBQ0csT0FBTztRQUNwQyxJQUFJRSxRQUFRLEVBQUVBLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHQyxJQUFJO01BQ3ZDO0lDSkUsQ0RLSDtFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjtFQUNBO0VBQ0E7RUFDQTtFQUNBVCxTQUFTLENBQUMsWUFBSztJQUNiSyxXQUFXLENBQUNHLE9BQU8sR0FBR0osT0FBTztJQUM3QixJQUFJQSxPQUFPLEVBQUVBLE9BQU8sQ0FBQ0ksT0FBTyxHQUFHRixRQUFRLENBQUNFLE9BQU87SUFDL0MsT0FBTyxZQUFLO01BQ1YsSUFBSUosT0FBTyxFQUFFQSxPQUFPLENBQUNJLE9BQU8sR0FBR0csU0FBUztJQUMxQyxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0VBRUYsT0FBT0wsUUFBUTtBQUNqQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL3NoYXJlZC9mb3JtQ29yZS91c2VSZWxheWVkRm9ybVJlZi5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFRoZSBpbm5lciByZWYgYSBmb3JtIHNoZWxsIChGb3JtRGlhbG9nIC8gRm9ybVBhZ2UpIGhhbmRzIHRvIEJhc2VQcm9Gb3JtLFxuICogd2lyZWQgc28gd3JpdGVzIGZsb3cgdGhyb3VnaCB0byB0aGUgY29uc3VtZXIncyBgZm9ybVJlZmAgaW1tZWRpYXRlbHkuXG4gKlxuICogUHJvRm9ybSBwdWJsaXNoZXMgaXRzIGluc3RhbmNlIGZyb20gaXRzIE9XTiBlZmZlY3QuIFdoZW4gdGhlIHNoZWxsJ3MgcG9ydGFsXG4gKiBtb3VudHMgdGhlIGZvcm0gYSBjb21taXQgYWZ0ZXIgdGhlIHNoZWxsIChEaWFsb2cgY3JlYXRlcyB0aGUgcG9ydGFsIG5vZGUgaW5cbiAqIGFuIGVmZmVjdCksIHRoZSBzaGVsbCdzIGVmZmVjdHMgaGF2ZSBhbHJlYWR5IHJ1biDigJQgYSBwYXNzaXZlXG4gKiBgZm9ybVJlZi5jdXJyZW50ID0gaW5uZXJSZWYuY3VycmVudGAgY29weSBuZXZlciByZS1maXJlcyB1bmxlc3Mgc29tZXRoaW5nXG4gKiBlbHNlIHJlLXJlbmRlcnMgdGhlIHNoZWxsLCBsZWF2aW5nIHRoZSBjb25zdW1lcidzIGZvcm1SZWYgdW5kZWZpbmVkLiBUaGVcbiAqIHNldHRlciByZWxheSBmb3J3YXJkcyB0aGUgcHVibGlzaCBpbiB0aGUgc2FtZSB0aWNrIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWxheWVkRm9ybVJlZiA9IChmb3JtUmVmKSA9PiB7XG4gICAgY29uc3QgZXh0ZXJuYWxSZWYgPSB1c2VSZWYoZm9ybVJlZik7XG4gICAgY29uc3QgaW5uZXJSZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IGluc3RhbmNlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBjdXJyZW50KG5leHQpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG5leHQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBleHRlcm5hbFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChleHRlcm5hbClcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWwuY3VycmVudCA9IG5leHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICAvLyBUcmFjayBhIHN3YXBwZWQtaW4gZm9ybVJlZiBwcm9wIGFuZCBiYWNrZmlsbCBpdCB3aXRoIHRoZSBsaXZlIGluc3RhbmNlLlxuICAgIC8vIFRoZSBjbGVhbnVwIGNsZWFycyB0aGUgb3V0Z29pbmcgcmVmIChvbiBzd2FwIEFORCBvbiBzaGVsbCB1bm1vdW50KSBzbyBhXG4gICAgLy8gY29uc3VtZXIgY2FuIG5ldmVyIGhvbGQgYSBoYW5kbGUgdG8gYW4gdW5tb3VudGVkIGZvcm0g4oCUIGEgc3RhbGUgaW5zdGFuY2VcbiAgICAvLyB3b3VsZCB2YWxpZGF0ZSBhbiBlbXB0eSBmaWVsZCBzdG9yZSBhbmQgcmVwb3J0IGZha2Ugc3VjY2Vzcy5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBleHRlcm5hbFJlZi5jdXJyZW50ID0gZm9ybVJlZjtcbiAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBpbm5lclJlZi5jdXJyZW50O1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBpbm5lclJlZjtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NoYXJlZC9zcmMvYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLnRzIiwiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VSZWxheWVkRm9ybVJlZiIsImZvcm1SZWYiLCJleHRlcm5hbFJlZiIsImlubmVyUmVmIiwiaW5zdGFuY2UiLCJjdXJyZW50IiwibmV4dCIsImV4dGVybmFsIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFJbEQ7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRElBLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FDNUJDLE9BQXVFLEVBQ3JFO0VBQ0YsSUFBTUMsV0FBVyxHQUFHSCxNQUFNLENBQUNFLE9BQU8sQ0FBQztFQUVuQyxJQUFNRSxRQUFRLEdBQUdMLE9BQU8sQ0FBQyxZQUFLO0lBQzVCLElBQUlNLFFBQWlEO0lBQ3JELE9BQU87TUFDTCxJQUFJQyxPQUFPQSxDQUFBLEVBQUE7UUFDVCxPQUFPRCxRQUFRO01BQ2pCLENBQUM7TUFDRCxJQUFJQyxPQUFPQSxDQUFDQyxJQUE2QyxFQUFBO1FBQ3ZERixRQUFRLEdBQUdFLElBQUk7UUFDZixJQUFNQyxRQUFRLEdBQUdMLFdBQVcsQ0FBQ0csT0FBTztRQUNwQyxJQUFJRSxRQUFRLEVBQUVBLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHQyxJQUFJO01BQ3ZDO0lDSkUsQ0RLSDtFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQVQsU0FBUyxDQUFDLFlBQUs7SUFDYkssV0FBVyxDQUFDRyxPQUFPLEdBQUdKLE9BQU87SUFDN0IsSUFBSUEsT0FBTyxFQUFFQSxPQUFPLENBQUNJLE9BQU8sR0FBR0YsUUFBUSxDQUFDRSxPQUFPO0lBQy9DLE9BQU8sWUFBSztNQUNWLElBQUlKLE9BQU8sRUFBRUEsT0FBTyxDQUFDSSxPQUFPLEdBQUdHLFNBQVM7SUFDMUMsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDUCxPQUFPLEVBQUVFLFFBQVEsQ0FBQyxDQUFDO0VBRXZCLE9BQU9BLFFBQVE7QUFDakIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9zaGFyZWQvZm9ybUNvcmUvdXNlUmVsYXllZEZvcm1SZWYuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBUaGUgaW5uZXIgcmVmIGEgZm9ybSBzaGVsbCAoRm9ybURpYWxvZyAvIEZvcm1QYWdlKSBoYW5kcyB0byBCYXNlUHJvRm9ybSxcbiAqIHdpcmVkIHNvIHdyaXRlcyBmbG93IHRocm91Z2ggdG8gdGhlIGNvbnN1bWVyJ3MgYGZvcm1SZWZgIGltbWVkaWF0ZWx5LlxuICpcbiAqIFByb0Zvcm0gcHVibGlzaGVzIGl0cyBpbnN0YW5jZSBmcm9tIGl0cyBPV04gZWZmZWN0LiBXaGVuIHRoZSBzaGVsbCdzIHBvcnRhbFxuICogbW91bnRzIHRoZSBmb3JtIGEgY29tbWl0IGFmdGVyIHRoZSBzaGVsbCAoRGlhbG9nIGNyZWF0ZXMgdGhlIHBvcnRhbCBub2RlIGluXG4gKiBhbiBlZmZlY3QpLCB0aGUgc2hlbGwncyBlZmZlY3RzIGhhdmUgYWxyZWFkeSBydW4g4oCUIGEgcGFzc2l2ZVxuICogYGZvcm1SZWYuY3VycmVudCA9IGlubmVyUmVmLmN1cnJlbnRgIGNvcHkgbmV2ZXIgcmUtZmlyZXMgdW5sZXNzIHNvbWV0aGluZ1xuICogZWxzZSByZS1yZW5kZXJzIHRoZSBzaGVsbCwgbGVhdmluZyB0aGUgY29uc3VtZXIncyBmb3JtUmVmIHVuZGVmaW5lZC4gVGhlXG4gKiBzZXR0ZXIgcmVsYXkgZm9yd2FyZHMgdGhlIHB1Ymxpc2ggaW4gdGhlIHNhbWUgdGljayBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgdXNlUmVsYXllZEZvcm1SZWYgPSAoZm9ybVJlZikgPT4ge1xuICAgIGNvbnN0IGV4dGVybmFsUmVmID0gdXNlUmVmKGZvcm1SZWYpO1xuICAgIGNvbnN0IGlubmVyUmVmID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBpbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgY3VycmVudChuZXh0KSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBuZXh0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsID0gZXh0ZXJuYWxSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAoZXh0ZXJuYWwpXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsLmN1cnJlbnQgPSBuZXh0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgLy8gVHJhY2sgYSBzd2FwcGVkLWluIGZvcm1SZWYgcHJvcCBhbmQgYmFja2ZpbGwgaXQgd2l0aCB0aGUgbGl2ZSBpbnN0YW5jZTtcbiAgICAvLyB0aGUgY2xlYW51cCBjbGVhcnMgdGhlIG91dGdvaW5nIHJlZiBvbiBzd2FwIGFuZCBvbiBzaGVsbCB1bm1vdW50LiBUaGVcbiAgICAvLyBpbm5lci1mb3JtIGxpZmVjeWNsZSBuZWVkcyBubyBoYW5kbGluZyBoZXJlOiBQcm9Gb3JtJ3Mgb3duIHJlZi1zeW5jXG4gICAgLy8gY2xlYW51cCBwdWJsaXNoZXMgYHVuZGVmaW5lZGAgdGhyb3VnaCB0aGUgc2V0dGVyIHdoZW4gdGhlIGZvcm0gdW5tb3VudHNcbiAgICAvLyAoZS5nLiB0aGUgc2hlbGwgc3RheXMgbW91bnRlZCB3aXRoIGBvcGVuPWZhbHNlYCksIHNvIGBpbm5lclJlZi5jdXJyZW50YFxuICAgIC8vIG5ldmVyIGhvbGRzIGFuIHVubW91bnRlZCBpbnN0YW5jZS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBleHRlcm5hbFJlZi5jdXJyZW50ID0gZm9ybVJlZjtcbiAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBpbm5lclJlZi5jdXJyZW50O1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1SZWYpXG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB9O1xuICAgIH0sIFtmb3JtUmVmLCBpbm5lclJlZl0pO1xuICAgIHJldHVybiBpbm5lclJlZjtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -328,10 +328,17 @@ var ProFormBase = function ProFormBase(props) {
328
328
  });
329
329
  }, [formInstance, applyPipeline, wrappedHandleSubmit]);
330
330
  // ── Sync to formRef prop ──
331
+ // The cleanup clears the ref on unmount: a handle to an unmounted form
332
+ // validates an empty field store and reports fake success, so consumers
333
+ // (and the business-shell relay refs) must observe `undefined` instead.
331
334
  useEffect(function () {
332
- if (formRef) {
333
- formRef.current = proFormFormInstance;
334
- }
335
+ if (!formRef) return undefined;
336
+ formRef.current = proFormFormInstance;
337
+ return function () {
338
+ if (formRef.current === proFormFormInstance) {
339
+ formRef.current = undefined;
340
+ }
341
+ };
335
342
  }, [formRef, proFormFormInstance]);
336
343
  // ── request / params auto-load ──
337
344
  var requestRef = useLatest(request);
@@ -500,4 +507,4 @@ var ProFormBase = function ProFormBase(props) {
500
507
  ProFormBase.displayName = 'ProForm';
501
508
  export var ProForm = /*#__PURE__*/memo(ProFormBase);
502
509
  export default ProForm;
503
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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QVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
510
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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Q3BEZSxPQUFPLEVBQUU0SSxvQkFBb0I7SUFDN0JuSixPQUFPLEVBQUU4QztFQUFTLENBQUEsQ0FBQSxDQUNsQixHQUNBLElBQUk7RUFFVixPQUNFOUYsSUFBQSxDQUFDa0Isb0JBQW9CLENBQUNtTCxRQUFRLEVBQUE7SUFBQ2hPLEtBQUssRUFBRW1OLFdBQVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIC8vIFRoZSBjbGVhbnVwIGNsZWFycyB0aGUgcmVmIG9uIHVubW91bnQ6IGEgaGFuZGxlIHRvIGFuIHVubW91bnRlZCBmb3JtXG4gICAgLy8gdmFsaWRhdGVzIGFuIGVtcHR5IGZpZWxkIHN0b3JlIGFuZCByZXBvcnRzIGZha2Ugc3VjY2Vzcywgc28gY29uc3VtZXJzXG4gICAgLy8gKGFuZCB0aGUgYnVzaW5lc3Mtc2hlbGwgcmVsYXkgcmVmcykgbXVzdCBvYnNlcnZlIGB1bmRlZmluZWRgIGluc3RlYWQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmb3JtUmVmKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gcHJvRm9ybUZvcm1JbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChmb3JtUmVmLmN1cnJlbnQgPT09IHByb0Zvcm1Gb3JtSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9