@atlasauth/angular 0.16.2 → 0.16.3

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.
@@ -132,6 +132,8 @@ export class SignInComponent {
132
132
  [enrollmentState]="flow.enrollmentState()"
133
133
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
134
134
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
135
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
136
+ (passkeySecondFactor)="flow.continueWithPasskey()"
135
137
  (policyDeclined)="flow.declinePolicy($event)"
136
138
  ></atlas-attempt-flow>
137
139
  }
@@ -152,7 +154,7 @@ export class SignInComponent {
152
154
  </p>
153
155
  }
154
156
  }
155
- `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
157
+ `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerPasskeySecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "passkeySecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
156
158
  }
157
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SignInComponent, decorators: [{
158
160
  type: Component,
@@ -204,6 +206,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
204
206
  [enrollmentState]="flow.enrollmentState()"
205
207
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
206
208
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
209
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
210
+ (passkeySecondFactor)="flow.continueWithPasskey()"
207
211
  (policyDeclined)="flow.declinePolicy($event)"
208
212
  ></atlas-attempt-flow>
209
213
  }
@@ -231,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
231
235
  }], signUpUrl: [{
232
236
  type: Input
233
237
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi1pbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEQ7Ozs7Ozs7OztHQVNHO0FBdUVILE1BQU0sT0FBTyxlQUFlO0lBQ1QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5Qyw2R0FBNkc7SUFDMUYsU0FBUyxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFFOUQ7UUFDRSxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixD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aUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLDRFQUE0RTtRQUM1RSx5RUFBeUU7UUFDekUsMkNBQTJDO1FBQzNDLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVztZQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0E5RVUsZUFBZTs0RkFBZixlQUFlLG1JQWpFaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStEVCw0REFoRVMsa0JBQWtCLCtFQUFFLG9CQUFvQix1ZkFBRSxzQkFBc0I7OzRGQWtFL0QsZUFBZTtrQkF0RTNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUM7b0JBQzNFLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0RUO2lCQUNGO3dEQVlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbWFpbExpbmtGcm9tVXJsLCB0eXBlIEVtYWlsTGluayB9IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuaW1wb3J0IHsgbGFzdFVzZWRNZXRob2RMYWJlbCwgcGFzc2tleXNTdXBwb3J0ZWQsIHNpZ25VcCBhcyBob3N0ZWRTaWduVXAgfSBmcm9tICdAYXRsYXNhdXRoL2pzJztcbmltcG9ydCB7IEF0bGFzU2VydmljZSB9IGZyb20gJy4uL2F0bGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQgeyBBdHRlbXB0Rmxvd0NvbXBvbmVudCB9IGZyb20gJy4vYXR0ZW1wdC1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbWFpbExpbmtDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY292ZXJ5Q29kZXNDb21wb25lbnQgfSBmcm9tICcuL3JlY292ZXJ5LWNvZGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdGxhc0Zsb3dDb250cm9sbGVyIH0gZnJvbSAnLi9mbG93LWNvbnRyb2xsZXInO1xuXG4vKipcbiAqIGA8YXRsYXMtc2lnbi1pbj5gIOKAlCB0aGUgZnVsbCwgbXVsdGktc3RlcCBzaWduLWluIGZsb3cgZHJpdmVuIGVudGlyZWx5IGJ5IHRoZVxuICogc2VydmVyLXNpZGUgYXR0ZW1wdCBzdGF0dXMuIFRoZSBBbmd1bGFyIHBlZXIgb2YgUmVhY3QncyBgPFNpZ25Jbi8+YC4gRHJhd3MgdGhlXG4gKiBpbnN0YW5jZSdzIHNpZ24taW4gY2FwdGNoYSB3aGVuIGl0IGlzIHJlcXVpcmVkIChhbHdheXMtb24sIG9yIGFcbiAqIGBuZWVkc19jYXB0Y2hhYCBjaGFsbGVuZ2UpLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhdGxhcy1zaWduLWluICphdGxhc1NpZ25lZE91dCBhZnRlclVybD1cIi9kYXNoYm9hcmRcIj48L2F0bGFzLXNpZ24taW4+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRsYXMtc2lnbi1pbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbRW1haWxMaW5rQ29tcG9uZW50LCBBdHRlbXB0Rmxvd0NvbXBvbmVudCwgUmVjb3ZlcnlDb2Rlc0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChlbWFpbExpbmsoKTsgYXMgbGluaykge1xuICAgICAgPGF0bGFzLWVtYWlsLWxpbmsgW2xpbmtdPVwibGlua1wiPjwvYXRsYXMtZW1haWwtbGluaz5cbiAgICB9IEBlbHNlIHtcbiAgICBAaWYgKGxhc3RVc2VkTGFiZWwoKTsgYXMgbGFiZWwpIHtcbiAgICAgIDxwIGNsYXNzPVwiYXRsYXMtdGV4dCBhdGxhcy1sYXN0LXVzZWQtaGludFwiIGRhdGEtYXRsYXM9XCJsYXN0LXVzZWRcIiBbYXR0ci5kYXRhLWF0bGFzLW1ldGhvZF09XCJmbG93Lmxhc3RNZXRob2QoKVwiPlxuICAgICAgICB7eyB0KCdzaWduSW4ubGFzdFVzZWQnKSB9fToge3sgbGFiZWwgfX1cbiAgICAgIDwvcD5cbiAgICB9XG4gICAgQGlmIChhdGxhc0Nvbm5lY3Rpb24oKTsgYXMgY29ubmVjdGlvbklkKSB7XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF0bGFzLXNvY2lhbC1idXR0b25cIiBkYXRhLWF0bGFzLXByb3ZpZGVyPVwiYXRsYXNcIiAoY2xpY2spPVwiZmxvdy5zaWduSW5XaXRoQXRsYXMoY29ubmVjdGlvbklkKVwiPlxuICAgICAgICB7eyB0KCdzaWduSW4uY29udGludWVXaXRoQXRsYXMnKSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICBAaWYgKGZsb3cuc2lnbkluV2l0aEF0bGFzRXJyb3IoKTsgYXMgbWVzc2FnZSkge1xuICAgICAgICA8cCBjbGFzcz1cImF0bGFzLWVycm9yXCIgcm9sZT1cImFsZXJ0XCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgICAgIH1cbiAgICB9XG4gICAgQGlmIChmbG93LnJlY292ZXJ5Q29kZXMoKTsgYXMgY29kZXMpIHtcbiAgICAgIDxhdGxhcy1yZWNvdmVyeS1jb2RlcyBbY29kZXNdPVwiY29kZXNcIiBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiIChzYXZlZCk9XCJmbG93LnNhdmVSZWNvdmVyeUNvZGVzKClcIj48L2F0bGFzLXJlY292ZXJ5LWNvZGVzPlxuICAgIH0gQGVsc2Uge1xuICAgIDxhdGxhcy1hdHRlbXB0LWZsb3dcbiAgICAgIFthdHRlbXB0XT1cImZsb3cuc3RhdGUoKS5hdHRlbXB0XCJcbiAgICAgIFtidXN5XT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgIFtlcnJvcnNdPVwiZmxvdy5zdGF0ZSgpLmVycm9yc1wiXG4gICAgICBbc2Vzc2lvbktlcHRdPVwiZmxvdy5zdGF0ZSgpLnNlc3Npb25LZXB0XCJcbiAgICAgIHRpdGxlS2V5PVwic2lnbkluLnRpdGxlXCJcbiAgICAgIFtjYXB0Y2hhXT1cImZsb3cuY2FwdGNoYURyYXduKCkgPyBmbG93LmNhcHRjaGEgOiBudWxsXCJcbiAgICAgIFtmaXJzdEZhY3RvcnNdPVwiZmxvdy5maXJzdEZhY3RvcnMoKVwiXG4gICAgICBbcHJlcGFyZWRGYWN0b3JdPVwiZmxvdy5wcmVwYXJlZEZhY3RvcigpXCJcbiAgICAgIFttYXRjaENvZGVdPVwiZmxvdy5zdGF0ZSgpLm1hdGNoQ29kZSA/PyBudWxsXCJcbiAgICAgIFtwYXNzd29yZEhvbGRdPVwiZmxvdy5zdGF0ZSgpLnBhc3N3b3JkSG9sZCA/PyBudWxsXCJcbiAgICAgIFtob2xkUHJvb2ZdPVwiZmxvdy5ob2xkUHJvb2YoKVwiXG4gICAgICAodXNlUGFzc3dvcmQpPVwiZmxvdy51c2VQYXNzd29yZCgpXCJcbiAgICAgIFtvZmZlckVtYWlsU2Vjb25kRmFjdG9yXT1cImZsb3cuc2V0dGluZ3MoKT8uYWNjb3VudD8uZW1haWxTZWNvbmRGYWN0b3IgPT09IHRydWVcIlxuICAgICAgW2VtYWlsZWRTZWNvbmRGYWN0b3JdPVwiZmxvdy5lbWFpbFNlY29uZEZhY3RvcigpXCJcbiAgICAgIChzdWJtaXRGbG93KT1cInN1Ym1pdElkZW50aWZpZXIoJGV2ZW50KVwiXG4gICAgICAoY2hvb3NlRmFjdG9yKT1cImZsb3cucHJlcGFyZSgkZXZlbnQpXCJcbiAgICAgIFtvZmZlclNtc1NlY29uZEZhY3Rvcl09XCJmbG93LnNldHRpbmdzKCkgIT09IG51bGwgJiYgZmxvdy5tZmFDaG9pY2VzKCkuc21zXCJcbiAgICAgIFt0ZXh0ZWRTZWNvbmRGYWN0b3JdPVwiZmxvdy5zbXNTZWNvbmRGYWN0b3IoKVwiXG4gICAgICBbZW5yb2xsbWVudF09XCJmbG93LmVucm9sbG1lbnRcIlxuICAgICAgW2Vucm9sbG1lbnRTdGF0ZV09XCJmbG93LmVucm9sbG1lbnRTdGF0ZSgpXCJcbiAgICAgIChlbWFpbFNlY29uZEZhY3Rvcik9XCJmbG93LnNlbmRFbWFpbFNlY29uZEZhY3RvcigpXCJcbiAgICAgIChzbXNTZWNvbmRGYWN0b3IpPVwiZmxvdy5zZW5kU21zU2Vjb25kRmFjdG9yKClcIlxuICAgICAgKHBvbGljeURlY2xpbmVkKT1cImZsb3cuZGVjbGluZVBvbGljeSgkZXZlbnQpXCJcbiAgICA+PC9hdGxhcy1hdHRlbXB0LWZsb3c+XG4gICAgfVxuICAgIEBpZiAoZmxvdy5wYXNza2V5T2ZmZXJlZCgpICYmICFmbG93LnJlY292ZXJ5Q29kZXMoKSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhdGxhcy1zb2NpYWwtYnV0dG9uIGF0bGFzLXBhc3NrZXktYnV0dG9uXCJcbiAgICAgICAgZGF0YS1hdGxhcy1wYXNza2V5LXNpZ24taW49XCJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgICAoY2xpY2spPVwiZmxvdy5wYXNza2V5LnNpZ25JbigpXCJcbiAgICAgID5cbiAgICAgICAge3sgdCgnc2lnbkluLnBhc3NrZXlCdXR0b24nKSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBpZiAoZmxvdy5zdGF0ZSgpLmF0dGVtcHQ/LnN0YXR1cyAhPT0gJ2NvbXBsZXRlJyAmJiBzaWduVXBIcmVmKCk7IGFzIGhyZWYpIHtcbiAgICAgIDxwIGNsYXNzPVwiYXRsYXMtZm9vdGVyXCIgZGF0YS1hdGxhcy1zaWduLXVwLXByb21wdD1cIlwiPlxuICAgICAgICB7eyB0KCdzaWduSW4ubm9BY2NvdW50JykgfX0gPGEgY2xhc3M9XCJhdGxhcy1saW5rXCIgW2hyZWZdPVwiaHJlZlwiPnt7IHQoJ3NpZ25Jbi5zaWduVXBMaW5rJykgfX08L2E+XG4gICAgICA8L3A+XG4gICAgfVxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbkluQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGF0bGFzID0gaW5qZWN0KEF0bGFzU2VydmljZSk7XG5cbiAgLyoqIE9wZW5lZCBmcm9tIGEgbWFpbGVkIGxpbms6IHRoYXQgcGFnZSwgbm90IHRoZSBmbG93LiBSZWFkIGFmdGVyIHRoZSBmaXJzdCByZW5kZXIsIHNvIGh5ZHJhdGlvbiBtYXRjaGVzLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1haWxMaW5rID0gc2lnbmFsPEVtYWlsTGluayB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB0aGlzLmVtYWlsTGluay5zZXQoZW1haWxMaW5rRnJvbVVybCh1bmRlZmluZWQsICdzaWduX2luJykpKTtcbiAgfVxuXG4gIC8qKiBXaGVyZSB0byBzZW5kIHRoZSB1c2VyIG9uY2UgdGhlIGZsb3cgY29tcGxldGVzLiBSZXNlcnZlZCBmb3IgaG9zdCByb3V0aW5nLiAqL1xuICBASW5wdXQoKSBhZnRlclVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXJlIFwiTm8gYWNjb3VudD8gU2lnbiB1cFwiIGdvZXMuIERlZmF1bHQ6IHRoZSBpbnN0YW5jZSdzIGhvc3RlZCBzaWduLXVwXG4gICAqIHBhZ2UgKGNhcnJ5aW5nIHRoZSB2aXNpdG9yJ3MgcmVmZXJyYWwpLiBgbnVsbGAgaGlkZXMgaXQuIEFsd2F5cyBzaG93biwgbmV2ZXJcbiAgICogb25seSBhZnRlciBhIGZhaWxlZCBzaWduLWluLCBzbyBpdCBzYXlzIG5vdGhpbmcgYWJvdXQgd2hldGhlciBhbiBlbWFpbCBoYXMgYW4gYWNjb3VudC5cbiAgICovXG4gIEBJbnB1dCgpIHNpZ25VcFVybD86IHN0cmluZyB8IG51bGw7XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSk7XG4gIH1cblxuICAvKiogXCJMYXN0IHVzZWQ6IFBhc3N3b3JkXCIgb24gdGhlIGlkZW50aWZpZXIgc3RlcCwgd2hlbiB0aGUgaW5zdGFuY2Ugc2hvd3MgdGhlIGhpbnQuICovXG4gIHByb3RlY3RlZCBsYXN0VXNlZExhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLmZsb3cuc3RhdGUoKS5hdHRlbXB0KSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbGFzdFVzZWRNZXRob2RMYWJlbCh0aGlzLmZsb3cubGFzdE1ldGhvZCgpLCAoa2V5KSA9PiB0aGlzLnQoa2V5KSk7XG4gIH1cblxuICAvKiogVGhlIFwiU2lnbiBpbiB3aXRoIEF0bGFzXCIgY29ubmVjdGlvbiwgb24gdGhlIGZpcnN0IHN0ZXAsIHdoZW4gdGhlIGluc3RhbmNlIGhhcyBpdCBvbi4gKi9cbiAgcHJvdGVjdGVkIGF0bGFzQ29ubmVjdGlvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5mbG93LnN0YXRlKCkuYXR0ZW1wdCB8fCB0aGlzLmZsb3cucmVjb3ZlcnlDb2RlcygpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5mbG93LnNldHRpbmdzKCk/LnNpZ25JbldpdGhBdGxhcz8uY29ubmVjdGlvbklkID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2lnblVwSHJlZigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5zaWduVXBVcmwgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIGlmICh0aGlzLnNpZ25VcFVybCkgcmV0dXJuIHRoaXMuc2lnblVwVXJsO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gaG9zdGVkU2lnblVwKHtcbiAgICAgICAgZnJvbnRlbmRBcGk6IHRoaXMuYXRsYXMuZnJvbnRlbmRBcGksXG4gICAgICAgIHJlZGlyZWN0VXJsOiB0aGlzLmFmdGVyVXJsID8/ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogdW5kZWZpbmVkKSxcbiAgICAgICAgbmF2aWdhdGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmxvdyA9IG5ldyBBdGxhc0Zsb3dDb250cm9sbGVyKFxuICAgIHRoaXMuYXRsYXMuY3JlYXRlRmFwaUNsaWVudCgpLFxuICAgICgpID0+IHRoaXMuYXRsYXMucmVsb2FkKCksXG4gICAgLy8gUmVzdW1lIG1pZC1mbG93IGlmIGFuIE9BdXRoIHJlZGlyZWN0IGNhbWUgYmFjayBvd2luZyBhIHNlY29uZCBmYWN0b3IuXG4gICAgdGhpcy5hdGxhcy5wZW5kaW5nQXR0ZW1wdCxcbiAgICAoa2V5KSA9PiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSksXG4gICk7XG5cbiAgLy8gUGFzc2tleSBhdXRvZmlsbCBydW5zIHdoaWxlIHRoZSBmaXJzdCBzdGVwIG9mZmVycyBwYXNza2V5cyAoYSBjb21wdXRlZCwgc28gaXQgcmUtYXJtcyBvbmx5IHdoZW4gdGhhdCBjaGFuZ2VzKS5cbiAgcHJpdmF0ZSByZWFkb25seSBwYXNza2V5T2ZmZXJlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvdy5wYXNza2V5T2ZmZXJlZCgpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhc3NrZXlBdXRvZmlsbCA9IGVmZmVjdCgoKSA9PiAodGhpcy5wYXNza2V5T2ZmZXJlZCgpID8gdGhpcy5mbG93LnBhc3NrZXkuYXJtQXV0b2ZpbGwoKSA6IHRoaXMuZmxvdy5wYXNza2V5LnN0b3BBdXRvZmlsbCgpKSk7XG5cbiAgcHJvdGVjdGVkIHN1Ym1pdElkZW50aWZpZXIodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5mbG93LnBhc3NrZXkuc3RvcEF1dG9maWxsKCk7XG4gICAgdm9pZCB0aGlzLmZsb3cuc3VibWl0KHZhbHVlcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHRoaXMuZmxvdy5wYXNza2V5U3VwcG9ydGVkLnNldChwYXNza2V5c1N1cHBvcnRlZCgpKTtcbiAgICAvLyBJZiBzZWVkZWQgZnJvbSBhIHBlbmRpbmcgYXR0ZW1wdCB0aGF0IGlzIGFscmVhZHkgcG9sbGFibGUsIHN0YXJ0IHBvbGxpbmcuXG4gICAgdGhpcy5mbG93LnN5bmNQb2xsaW5nKCk7XG4gICAgLy8gwqc1IHRoZSBpbnN0YW5jZSdzIGNhcHRjaGEgc2V0dGluZ3MgKHN3aXRjaGluZyBjYXB0Y2hhIG9uIGluIHRoZSBkYXNoYm9hcmRcbiAgICAvLyBkcmF3cyBpdCBoZXJlIHdpdGggbm8gY29kZSBjaGFuZ2UpIGFuZCBlbWFpbCBkZWxpdmVyeSAobm8gZW1haWxlZC1jb2RlXG4gICAgLy8gb3B0aW9uIHdoaWxlIHRoZSBhcHAgY2Fubm90IHNlbmQgZW1haWwpLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgdm9pZCB0aGlzLmZsb3cubG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3cuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi1pbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEQ7Ozs7Ozs7OztHQVNHO0FBeUVILE1BQU0sT0FBTyxlQUFlO0lBQ1QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5Qyw2R0FBNkc7SUFDMUYsU0FBUyxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFFOUQ7UUFDRSxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixD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aUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLDRFQUE0RTtRQUM1RSx5RUFBeUU7UUFDekUsMkNBQTJDO1FBQzNDLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVztZQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0E5RVUsZUFBZTs0RkFBZixlQUFlLG1JQW5FaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVULDREQWxFUyxrQkFBa0IsK0VBQUUsb0JBQW9CLDBpQkFBRSxzQkFBc0I7OzRGQW9FL0QsZUFBZTtrQkF4RTNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUM7b0JBQzNFLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7aUJBQ0Y7d0RBWVUsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGVtYWlsTGlua0Zyb21VcmwsIHR5cGUgRW1haWxMaW5rIH0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5pbXBvcnQgeyBsYXN0VXNlZE1ldGhvZExhYmVsLCBwYXNza2V5c1N1cHBvcnRlZCwgc2lnblVwIGFzIGhvc3RlZFNpZ25VcCB9IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuaW1wb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXRsYXMuc2VydmljZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEF0dGVtcHRGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9hdHRlbXB0LWZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IEVtYWlsTGlua0NvbXBvbmVudCB9IGZyb20gJy4vZW1haWwtbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjb3ZlcnlDb2Rlc0NvbXBvbmVudCB9IGZyb20gJy4vcmVjb3ZlcnktY29kZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEF0bGFzRmxvd0NvbnRyb2xsZXIgfSBmcm9tICcuL2Zsb3ctY29udHJvbGxlcic7XG5cbi8qKlxuICogYDxhdGxhcy1zaWduLWluPmAg4oCUIHRoZSBmdWxsLCBtdWx0aS1zdGVwIHNpZ24taW4gZmxvdyBkcml2ZW4gZW50aXJlbHkgYnkgdGhlXG4gKiBzZXJ2ZXItc2lkZSBhdHRlbXB0IHN0YXR1cy4gVGhlIEFuZ3VsYXIgcGVlciBvZiBSZWFjdCdzIGA8U2lnbkluLz5gLiBEcmF3cyB0aGVcbiAqIGluc3RhbmNlJ3Mgc2lnbi1pbiBjYXB0Y2hhIHdoZW4gaXQgaXMgcmVxdWlyZWQgKGFsd2F5cy1vbiwgb3IgYVxuICogYG5lZWRzX2NhcHRjaGFgIGNoYWxsZW5nZSkuXG4gKlxuICogYGBgaHRtbFxuICogPGF0bGFzLXNpZ24taW4gKmF0bGFzU2lnbmVkT3V0IGFmdGVyVXJsPVwiL2Rhc2hib2FyZFwiPjwvYXRsYXMtc2lnbi1pbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdGxhcy1zaWduLWluJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtFbWFpbExpbmtDb21wb25lbnQsIEF0dGVtcHRGbG93Q29tcG9uZW50LCBSZWNvdmVyeUNvZGVzQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGVtYWlsTGluaygpOyBhcyBsaW5rKSB7XG4gICAgICA8YXRsYXMtZW1haWwtbGluayBbbGlua109XCJsaW5rXCI+PC9hdGxhcy1lbWFpbC1saW5rPlxuICAgIH0gQGVsc2Uge1xuICAgIEBpZiAobGFzdFVzZWRMYWJlbCgpOyBhcyBsYWJlbCkge1xuICAgICAgPHAgY2xhc3M9XCJhdGxhcy10ZXh0IGF0bGFzLWxhc3QtdXNlZC1oaW50XCIgZGF0YS1hdGxhcz1cImxhc3QtdXNlZFwiIFthdHRyLmRhdGEtYXRsYXMtbWV0aG9kXT1cImZsb3cubGFzdE1ldGhvZCgpXCI+XG4gICAgICAgIHt7IHQoJ3NpZ25Jbi5sYXN0VXNlZCcpIH19OiB7eyBsYWJlbCB9fVxuICAgICAgPC9wPlxuICAgIH1cbiAgICBAaWYgKGF0bGFzQ29ubmVjdGlvbigpOyBhcyBjb25uZWN0aW9uSWQpIHtcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXRsYXMtc29jaWFsLWJ1dHRvblwiIGRhdGEtYXRsYXMtcHJvdmlkZXI9XCJhdGxhc1wiIChjbGljayk9XCJmbG93LnNpZ25JbldpdGhBdGxhcyhjb25uZWN0aW9uSWQpXCI+XG4gICAgICAgIHt7IHQoJ3NpZ25Jbi5jb250aW51ZVdpdGhBdGxhcycpIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBpZiAoZmxvdy5zaWduSW5XaXRoQXRsYXNFcnJvcigpOyBhcyBtZXNzYWdlKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiYXRsYXMtZXJyb3JcIiByb2xlPVwiYWxlcnRcIj57eyBtZXNzYWdlIH19PC9wPlxuICAgICAgfVxuICAgIH1cbiAgICBAaWYgKGZsb3cucmVjb3ZlcnlDb2RlcygpOyBhcyBjb2Rlcykge1xuICAgICAgPGF0bGFzLXJlY292ZXJ5LWNvZGVzIFtjb2Rlc109XCJjb2Rlc1wiIFtidXN5XT1cImZsb3cuc3RhdGUoKS5idXN5XCIgKHNhdmVkKT1cImZsb3cuc2F2ZVJlY292ZXJ5Q29kZXMoKVwiPjwvYXRsYXMtcmVjb3ZlcnktY29kZXM+XG4gICAgfSBAZWxzZSB7XG4gICAgPGF0bGFzLWF0dGVtcHQtZmxvd1xuICAgICAgW2F0dGVtcHRdPVwiZmxvdy5zdGF0ZSgpLmF0dGVtcHRcIlxuICAgICAgW2J1c3ldPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgW2Vycm9yc109XCJmbG93LnN0YXRlKCkuZXJyb3JzXCJcbiAgICAgIFtzZXNzaW9uS2VwdF09XCJmbG93LnN0YXRlKCkuc2Vzc2lvbktlcHRcIlxuICAgICAgdGl0bGVLZXk9XCJzaWduSW4udGl0bGVcIlxuICAgICAgW2NhcHRjaGFdPVwiZmxvdy5jYXB0Y2hhRHJhd24oKSA/IGZsb3cuY2FwdGNoYSA6IG51bGxcIlxuICAgICAgW2ZpcnN0RmFjdG9yc109XCJmbG93LmZpcnN0RmFjdG9ycygpXCJcbiAgICAgIFtwcmVwYXJlZEZhY3Rvcl09XCJmbG93LnByZXBhcmVkRmFjdG9yKClcIlxuICAgICAgW21hdGNoQ29kZV09XCJmbG93LnN0YXRlKCkubWF0Y2hDb2RlID8/IG51bGxcIlxuICAgICAgW3Bhc3N3b3JkSG9sZF09XCJmbG93LnN0YXRlKCkucGFzc3dvcmRIb2xkID8/IG51bGxcIlxuICAgICAgW2hvbGRQcm9vZl09XCJmbG93LmhvbGRQcm9vZigpXCJcbiAgICAgICh1c2VQYXNzd29yZCk9XCJmbG93LnVzZVBhc3N3b3JkKClcIlxuICAgICAgW29mZmVyRW1haWxTZWNvbmRGYWN0b3JdPVwiZmxvdy5zZXR0aW5ncygpPy5hY2NvdW50Py5lbWFpbFNlY29uZEZhY3RvciA9PT0gdHJ1ZVwiXG4gICAgICBbZW1haWxlZFNlY29uZEZhY3Rvcl09XCJmbG93LmVtYWlsU2Vjb25kRmFjdG9yKClcIlxuICAgICAgKHN1Ym1pdEZsb3cpPVwic3VibWl0SWRlbnRpZmllcigkZXZlbnQpXCJcbiAgICAgIChjaG9vc2VGYWN0b3IpPVwiZmxvdy5wcmVwYXJlKCRldmVudClcIlxuICAgICAgW29mZmVyU21zU2Vjb25kRmFjdG9yXT1cImZsb3cuc2V0dGluZ3MoKSAhPT0gbnVsbCAmJiBmbG93Lm1mYUNob2ljZXMoKS5zbXNcIlxuICAgICAgW3RleHRlZFNlY29uZEZhY3Rvcl09XCJmbG93LnNtc1NlY29uZEZhY3RvcigpXCJcbiAgICAgIFtlbnJvbGxtZW50XT1cImZsb3cuZW5yb2xsbWVudFwiXG4gICAgICBbZW5yb2xsbWVudFN0YXRlXT1cImZsb3cuZW5yb2xsbWVudFN0YXRlKClcIlxuICAgICAgKGVtYWlsU2Vjb25kRmFjdG9yKT1cImZsb3cuc2VuZEVtYWlsU2Vjb25kRmFjdG9yKClcIlxuICAgICAgKHNtc1NlY29uZEZhY3Rvcik9XCJmbG93LnNlbmRTbXNTZWNvbmRGYWN0b3IoKVwiXG4gICAgICBbb2ZmZXJQYXNza2V5U2Vjb25kRmFjdG9yXT1cImZsb3cuc2V0dGluZ3MoKSAhPT0gbnVsbCAmJiBmbG93Lm1mYUNob2ljZXMoKS5wYXNza2V5XCJcbiAgICAgIChwYXNza2V5U2Vjb25kRmFjdG9yKT1cImZsb3cuY29udGludWVXaXRoUGFzc2tleSgpXCJcbiAgICAgIChwb2xpY3lEZWNsaW5lZCk9XCJmbG93LmRlY2xpbmVQb2xpY3koJGV2ZW50KVwiXG4gICAgPjwvYXRsYXMtYXR0ZW1wdC1mbG93PlxuICAgIH1cbiAgICBAaWYgKGZsb3cucGFzc2tleU9mZmVyZWQoKSAmJiAhZmxvdy5yZWNvdmVyeUNvZGVzKCkpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYXRsYXMtc29jaWFsLWJ1dHRvbiBhdGxhcy1wYXNza2V5LWJ1dHRvblwiXG4gICAgICAgIGRhdGEtYXRsYXMtcGFzc2tleS1zaWduLWluPVwiXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgICAgKGNsaWNrKT1cImZsb3cucGFzc2tleS5zaWduSW4oKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHQoJ3NpZ25Jbi5wYXNza2V5QnV0dG9uJykgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgICBAaWYgKGZsb3cuc3RhdGUoKS5hdHRlbXB0Py5zdGF0dXMgIT09ICdjb21wbGV0ZScgJiYgc2lnblVwSHJlZigpOyBhcyBocmVmKSB7XG4gICAgICA8cCBjbGFzcz1cImF0bGFzLWZvb3RlclwiIGRhdGEtYXRsYXMtc2lnbi11cC1wcm9tcHQ9XCJcIj5cbiAgICAgICAge3sgdCgnc2lnbkluLm5vQWNjb3VudCcpIH19IDxhIGNsYXNzPVwiYXRsYXMtbGlua1wiIFtocmVmXT1cImhyZWZcIj57eyB0KCdzaWduSW4uc2lnblVwTGluaycpIH19PC9hPlxuICAgICAgPC9wPlxuICAgIH1cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25JbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdGxhcyA9IGluamVjdChBdGxhc1NlcnZpY2UpO1xuXG4gIC8qKiBPcGVuZWQgZnJvbSBhIG1haWxlZCBsaW5rOiB0aGF0IHBhZ2UsIG5vdCB0aGUgZmxvdy4gUmVhZCBhZnRlciB0aGUgZmlyc3QgcmVuZGVyLCBzbyBoeWRyYXRpb24gbWF0Y2hlcy4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtYWlsTGluayA9IHNpZ25hbDxFbWFpbExpbmsgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4gdGhpcy5lbWFpbExpbmsuc2V0KGVtYWlsTGlua0Zyb21VcmwodW5kZWZpbmVkLCAnc2lnbl9pbicpKSk7XG4gIH1cblxuICAvKiogV2hlcmUgdG8gc2VuZCB0aGUgdXNlciBvbmNlIHRoZSBmbG93IGNvbXBsZXRlcy4gUmVzZXJ2ZWQgZm9yIGhvc3Qgcm91dGluZy4gKi9cbiAgQElucHV0KCkgYWZ0ZXJVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVyZSBcIk5vIGFjY291bnQ/IFNpZ24gdXBcIiBnb2VzLiBEZWZhdWx0OiB0aGUgaW5zdGFuY2UncyBob3N0ZWQgc2lnbi11cFxuICAgKiBwYWdlIChjYXJyeWluZyB0aGUgdmlzaXRvcidzIHJlZmVycmFsKS4gYG51bGxgIGhpZGVzIGl0LiBBbHdheXMgc2hvd24sIG5ldmVyXG4gICAqIG9ubHkgYWZ0ZXIgYSBmYWlsZWQgc2lnbi1pbiwgc28gaXQgc2F5cyBub3RoaW5nIGFib3V0IHdoZXRoZXIgYW4gZW1haWwgaGFzIGFuIGFjY291bnQuXG4gICAqL1xuICBASW5wdXQoKSBzaWduVXBVcmw/OiBzdHJpbmcgfCBudWxsO1xuXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlKHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCBrZXkpO1xuICB9XG5cbiAgLyoqIFwiTGFzdCB1c2VkOiBQYXNzd29yZFwiIG9uIHRoZSBpZGVudGlmaWVyIHN0ZXAsIHdoZW4gdGhlIGluc3RhbmNlIHNob3dzIHRoZSBoaW50LiAqL1xuICBwcm90ZWN0ZWQgbGFzdFVzZWRMYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5mbG93LnN0YXRlKCkuYXR0ZW1wdCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGxhc3RVc2VkTWV0aG9kTGFiZWwodGhpcy5mbG93Lmxhc3RNZXRob2QoKSwgKGtleSkgPT4gdGhpcy50KGtleSkpO1xuICB9XG5cbiAgLyoqIFRoZSBcIlNpZ24gaW4gd2l0aCBBdGxhc1wiIGNvbm5lY3Rpb24sIG9uIHRoZSBmaXJzdCBzdGVwLCB3aGVuIHRoZSBpbnN0YW5jZSBoYXMgaXQgb24uICovXG4gIHByb3RlY3RlZCBhdGxhc0Nvbm5lY3Rpb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZmxvdy5zdGF0ZSgpLmF0dGVtcHQgfHwgdGhpcy5mbG93LnJlY292ZXJ5Q29kZXMoKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZmxvdy5zZXR0aW5ncygpPy5zaWduSW5XaXRoQXRsYXM/LmNvbm5lY3Rpb25JZCA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpZ25VcEhyZWYoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuc2lnblVwVXJsID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodGhpcy5zaWduVXBVcmwpIHJldHVybiB0aGlzLnNpZ25VcFVybDtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGhvc3RlZFNpZ25VcCh7XG4gICAgICAgIGZyb250ZW5kQXBpOiB0aGlzLmF0bGFzLmZyb250ZW5kQXBpLFxuICAgICAgICByZWRpcmVjdFVybDogdGhpcy5hZnRlclVybCA/PyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cubG9jYXRpb24uaHJlZiA6IHVuZGVmaW5lZCksXG4gICAgICAgIG5hdmlnYXRlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZsb3cgPSBuZXcgQXRsYXNGbG93Q29udHJvbGxlcihcbiAgICB0aGlzLmF0bGFzLmNyZWF0ZUZhcGlDbGllbnQoKSxcbiAgICAoKSA9PiB0aGlzLmF0bGFzLnJlbG9hZCgpLFxuICAgIC8vIFJlc3VtZSBtaWQtZmxvdyBpZiBhbiBPQXV0aCByZWRpcmVjdCBjYW1lIGJhY2sgb3dpbmcgYSBzZWNvbmQgZmFjdG9yLlxuICAgIHRoaXMuYXRsYXMucGVuZGluZ0F0dGVtcHQsXG4gICAgKGtleSkgPT4gdHJhbnNsYXRlKHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCBrZXkpLFxuICApO1xuXG4gIC8vIFBhc3NrZXkgYXV0b2ZpbGwgcnVucyB3aGlsZSB0aGUgZmlyc3Qgc3RlcCBvZmZlcnMgcGFzc2tleXMgKGEgY29tcHV0ZWQsIHNvIGl0IHJlLWFybXMgb25seSB3aGVuIHRoYXQgY2hhbmdlcykuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFzc2tleU9mZmVyZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3cucGFzc2tleU9mZmVyZWQoKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYXNza2V5QXV0b2ZpbGwgPSBlZmZlY3QoKCkgPT4gKHRoaXMucGFzc2tleU9mZmVyZWQoKSA/IHRoaXMuZmxvdy5wYXNza2V5LmFybUF1dG9maWxsKCkgOiB0aGlzLmZsb3cucGFzc2tleS5zdG9wQXV0b2ZpbGwoKSkpO1xuXG4gIHByb3RlY3RlZCBzdWJtaXRJZGVudGlmaWVyKHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuZmxvdy5wYXNza2V5LnN0b3BBdXRvZmlsbCgpO1xuICAgIHZvaWQgdGhpcy5mbG93LnN1Ym1pdCh2YWx1ZXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB0aGlzLmZsb3cucGFzc2tleVN1cHBvcnRlZC5zZXQocGFzc2tleXNTdXBwb3J0ZWQoKSk7XG4gICAgLy8gSWYgc2VlZGVkIGZyb20gYSBwZW5kaW5nIGF0dGVtcHQgdGhhdCBpcyBhbHJlYWR5IHBvbGxhYmxlLCBzdGFydCBwb2xsaW5nLlxuICAgIHRoaXMuZmxvdy5zeW5jUG9sbGluZygpO1xuICAgIC8vIMKnNSB0aGUgaW5zdGFuY2UncyBjYXB0Y2hhIHNldHRpbmdzIChzd2l0Y2hpbmcgY2FwdGNoYSBvbiBpbiB0aGUgZGFzaGJvYXJkXG4gICAgLy8gZHJhd3MgaXQgaGVyZSB3aXRoIG5vIGNvZGUgY2hhbmdlKSBhbmQgZW1haWwgZGVsaXZlcnkgKG5vIGVtYWlsZWQtY29kZVxuICAgIC8vIG9wdGlvbiB3aGlsZSB0aGUgYXBwIGNhbm5vdCBzZW5kIGVtYWlsKS5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHZvaWQgdGhpcy5mbG93LmxvYWRTZXR0aW5ncygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mbG93LmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -148,6 +148,8 @@ export class SignUpComponent {
148
148
  [enrollmentState]="flow.enrollmentState()"
149
149
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
150
150
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
151
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
152
+ (passkeySecondFactor)="flow.continueWithPasskey()"
151
153
  (policyDeclined)="flow.declinePolicy($event)"
152
154
  [signInHref]="signInHref()"
153
155
  ></atlas-attempt-flow>
@@ -167,7 +169,7 @@ export class SignUpComponent {
167
169
  ></atlas-sign-up-form>
168
170
  }
169
171
  }
170
- `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha", "passkey", "switchable", "policies"], outputs: ["switchMode", "submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerPasskeySecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "passkeySecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha", "passkey", "switchable", "policies"], outputs: ["switchMode", "submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
171
173
  }
172
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SignUpComponent, decorators: [{
173
175
  type: Component,
@@ -241,6 +243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
241
243
  [enrollmentState]="flow.enrollmentState()"
242
244
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
243
245
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
246
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
247
+ (passkeySecondFactor)="flow.continueWithPasskey()"
244
248
  (policyDeclined)="flow.declinePolicy($event)"
245
249
  [signInHref]="signInHref()"
246
250
  ></atlas-attempt-flow>
@@ -269,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
269
273
  }], signInUrl: [{
270
274
  type: Input
271
275
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi11cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXhEOzs7Ozs7Ozs7OztHQVdHO0FBNEZILE1BQU0sT0FBTyxlQUFlO0lBQ1QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5Qyw2R0FBNkc7SUFDMUYsU0FBUyxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFFOUQ7UUFDRSxlQUFlLENBQUMsR0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0ZUO2lCQUNGO3dEQVlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBhZnRlck5leHRSZW5kZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZW1haWxMaW5rRnJvbVVybCwgdHlwZSBFbWFpbExpbmsgfSBmcm9tICdAYXRsYXNhdXRoL2pzJztcbmltcG9ydCB7IGF3YWl0aW5nUGFzc2tleSwgZXhpc3RpbmdBY2NvdW50UmVzZXRVcmwsIGxvY2FsaXplZEVycm9yTWVzc2FnZSwgcGFzc2tleXNTdXBwb3J0ZWQsIHNpZ25JbkFmdGVyUHJvb2ZVcmwsIHNpZ25VcFByb3ZlZEJ5TGluaywgdHlwZSBGaWVsZEVycm9yIH0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5pbXBvcnQgeyBBdGxhc1NlcnZpY2UgfSBmcm9tICcuLi9hdGxhcy5zZXJ2aWNlJztcbmltcG9ydCB7IGNsYXNzRm9yLCB0eXBlIEVsZW1lbnRLZXkgfSBmcm9tICcuLi9hcHBlYXJhbmNlJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHsgQXR0ZW1wdEZsb3dDb21wb25lbnQgfSBmcm9tICcuL2F0dGVtcHQtZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1haWxMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9lbWFpbC1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNvdmVyeUNvZGVzQ29tcG9uZW50IH0gZnJvbSAnLi9yZWNvdmVyeS1jb2Rlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lnblVwRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vc2lnbi11cC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdGxhc0Zsb3dDb250cm9sbGVyIH0gZnJvbSAnLi9mbG93LWNvbnRyb2xsZXInO1xuXG4vKipcbiAqIGA8YXRsYXMtc2lnbi11cD5gIOKAlCBjcmVhdGVzIGFuIGFjY291bnQuIFRoZSBBbmd1bGFyIHBlZXIgb2YgUmVhY3Qnc1xuICogYDxTaWduVXAvPmAuIFRoZSBmaXJzdCBzdGVwIGlzIHRoZSBjcmVhdGUtYWNjb3VudCBmb3JtICh0aGUgaW5zdGFuY2Unc1xuICogY29uZmlndXJlZCBmaWVsZHMsIGVtYWlsLCBwYXNzd29yZCwgbGVnYWwgY29uc2VudCBhbmQg4oCUIHdoZW4gcmVxdWlyZWQg4oCUIHRoZVxuICogY2FwdGNoYSksIHdoaWNoIFBPU1RzIGAvdjEvY2xpZW50L3NpZ25fdXBzYDsgZnJvbSB0aGVyZSBpdCBzaGFyZXMgdGhlIGZsb3dcbiAqIGVuZ2luZSB3aXRoIGA8YXRsYXMtc2lnbi1pbj5gICh0aGUgZW1haWxlZC1jb2RlIHN0ZXAsIHRoZW4gdGhlIHRpY2tldFxuICogZXhjaGFuZ2UpLCBiZWNhdXNlIHRoZSBzZXF1ZW5jZSBvZiBzdGVwcyBpcyBkZWNpZGVkIGJ5IHRoZSBzZXJ2ZXIuXG4gKlxuICogYGBgaHRtbFxuICogPGF0bGFzLXNpZ24tdXAgKmF0bGFzU2lnbmVkT3V0PjwvYXRsYXMtc2lnbi11cD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdGxhcy1zaWduLXVwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtFbWFpbExpbmtDb21wb25lbnQsIEF0dGVtcHRGbG93Q29tcG9uZW50LCBSZWNvdmVyeUNvZGVzQ29tcG9uZW50LCBTaWduVXBGb3JtQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGVtYWlsTGluaygpOyBhcyBsaW5rKSB7XG4gICAgICA8YXRsYXMtZW1haWwtbGluayBbbGlua109XCJsaW5rXCI+PC9hdGxhcy1lbWFpbC1saW5rPlxuICAgIH0gQGVsc2Uge1xuICAgIEBpZiAoZmxvdy5yZWNvdmVyeUNvZGVzKCk7IGFzIGNvZGVzKSB7XG4gICAgICA8YXRsYXMtcmVjb3ZlcnktY29kZXMgW2NvZGVzXT1cImNvZGVzXCIgW2J1c3ldPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIiAoc2F2ZWQpPVwiZmxvdy5zYXZlUmVjb3ZlcnlDb2RlcygpXCI+PC9hdGxhcy1yZWNvdmVyeS1jb2Rlcz5cbiAgICB9IEBlbHNlIGlmIChmbG93LmV4aXN0aW5nQWNjb3VudE5vdGljZSgpKSB7XG4gICAgICA8ZGl2IFtjbGFzc109XCJjbHMoJ2NhcmQnLCAnYXRsYXMtY2FyZCcpXCIgZGF0YS1hdGxhcy1leGlzdGluZy1hY2NvdW50PVwiXCI+XG4gICAgICAgIDxoMSBbY2xhc3NdPVwiY2xzKCdoZWFkZXJUaXRsZScsICdhdGxhcy10aXRsZScpXCI+e3sgdCgnc2lnblVwLnRpdGxlJykgfX08L2gxPlxuICAgICAgICA8cCBjbGFzcz1cImF0bGFzLXRleHRcIj57eyB0KCdzaWduVXAuZXhpc3RpbmdBY2NvdW50JykgfX08L3A+XG4gICAgICAgIEBpZiAocmVzZXRIcmVmKCk7IGFzIGhyZWYpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImF0bGFzLXRleHRcIj48YSBjbGFzcz1cImF0bGFzLWxpbmtcIiBbaHJlZl09XCJocmVmXCI+e3sgdCgnc2lnbkluLmZvcmdvdFBhc3N3b3JkJykgfX08L2E+PC9wPlxuICAgICAgICB9XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uUHJpbWFyeScsICdhdGxhcy1idXR0b24nKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZmxvdy5jb250aW51ZUFmdGVyRXhpc3RpbmdBY2NvdW50KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnc2lnblVwLnN1Ym1pdCcpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoYXdhaXRpbmdQYXNza2V5KCkpIHtcbiAgICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIiBkYXRhLWF0bGFzLXBhc3NrZXktc2lnbi11cD1cIlwiPlxuICAgICAgICA8aDEgW2NsYXNzXT1cImNscygnaGVhZGVyVGl0bGUnLCAnYXRsYXMtdGl0bGUnKVwiPnt7IHQoJ3NpZ25VcC50aXRsZScpIH19PC9oMT5cbiAgICAgICAgQGZvciAoZXJyb3Igb2YgZmxvdy5zdGF0ZSgpLmVycm9yczsgdHJhY2sgZXJyb3IuY29kZSkge1xuICAgICAgICAgIDxwIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZEVycm9yJywgJ2F0bGFzLWVycm9yJylcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvclRleHQoZXJyb3IpIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIDxwIGNsYXNzPVwiYXRsYXMtdGV4dFwiPnt7IHQoJ3NpZ25VcC5wYXNza2V5UHJvbXB0JykgfX08L3A+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uUHJpbWFyeScsICdhdGxhcy1idXR0b24nKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZmxvdy5jcmVhdGVQYXNza2V5KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnc2lnblVwLnBhc3NrZXlDcmVhdGUnKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKGVtYWlsQ29uZmlybWVkKCkpIHtcbiAgICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIiBkYXRhLWF0bGFzLWVtYWlsLWNvbmZpcm1lZD1cIlwiPlxuICAgICAgICA8aDEgW2NsYXNzXT1cImNscygnaGVhZGVyVGl0bGUnLCAnYXRsYXMtdGl0bGUnKVwiPnt7IHQoJ3NpZ25VcC50aXRsZScpIH19PC9oMT5cbiAgICAgICAgPHAgY2xhc3M9XCJhdGxhcy10ZXh0XCIgcm9sZT1cInN0YXR1c1wiPnt7IHQoJ3NpZ25VcC5lbWFpbENvbmZpcm1lZCcpIH19PC9wPlxuICAgICAgICBAaWYgKHNpZ25JbkhyZWYoKTsgYXMgaHJlZikge1xuICAgICAgICAgIDxhIFtjbGFzc109XCJjbHMoJ2Zvcm1CdXR0b25QcmltYXJ5JywgJ2F0bGFzLWJ1dHRvbicpXCIgW2hyZWZdPVwiaHJlZlwiPnt7IHQoJ3NpZ25Jbi50aXRsZScpIH19PC9hPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChmbG93LnN0YXRlKCkuYXR0ZW1wdCkge1xuICAgICAgPGF0bGFzLWF0dGVtcHQtZmxvd1xuICAgICAgICBbYXR0ZW1wdF09XCJmbG93LnN0YXRlKCkuYXR0ZW1wdFwiXG4gICAgICAgIFtidXN5XT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgICAgW2Vycm9yc109XCJmbG93LnN0YXRlKCkuZXJyb3JzXCJcbiAgICAgICAgW3Nlc3Npb25LZXB0XT1cImZsb3cuc3RhdGUoKS5zZXNzaW9uS2VwdFwiXG4gICAgICAgIHRpdGxlS2V5PVwic2lnblVwLnRpdGxlXCJcbiAgICAgICAgW2VtYWlsVmVyaWZpY2F0aW9uXT1cImZsb3cuc2V0dGluZ3MoKT8uYWNjb3VudD8uZW1haWxWZXJpZmljYXRpb24gPz8gJ2NvZGUnXCJcbiAgICAgICAgKHN1Ym1pdEZsb3cpPVwiZmxvdy5zdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyZXNlbmQpPVwiZmxvdy5yZXNlbmRTaWduVXAoKVwiXG4gICAgICAgIFttYXRjaENvZGVdPVwiZmxvdy5zdGF0ZSgpLm1hdGNoQ29kZSA/PyBudWxsXCJcbiAgICAgICAgW29mZmVyRW1haWxTZWNvbmRGYWN0b3JdPVwiZmxvdy5zZXR0aW5ncygpPy5hY2NvdW50Py5lbWFpbFNlY29uZEZhY3RvciA9PT0gdHJ1ZVwiXG4gICAgICAgIFtlbWFpbGVkU2Vjb25kRmFjdG9yXT1cImZsb3cuZW1haWxTZWNvbmRGYWN0b3IoKVwiXG4gICAgICAgIFtvZmZlclNtc1NlY29uZEZhY3Rvcl09XCJmbG93LnNldHRpbmdzKCkgIT09IG51bGwgJiYgZmxvdy5tZmFDaG9pY2VzKCkuc21zXCJcbiAgICAgICAgW3RleHRlZFNlY29uZEZhY3Rvcl09XCJmbG93LnNtc1NlY29uZEZhY3RvcigpXCJcbiAgICAgICAgW2Vucm9sbG1lbnRdPVwiZmxvdy5lbnJvbGxtZW50XCJcbiAgICAgICAgW2Vucm9sbG1lbnRTdGF0ZV09XCJmbG93LmVucm9sbG1lbnRTdGF0ZSgpXCJcbiAgICAgICAgKGVtYWlsU2Vjb25kRmFjdG9yKT1cImZsb3cuc2VuZEVtYWlsU2Vjb25kRmFjdG9yKClcIlxuICAgICAgICAoc21zU2Vjb25kRmFjdG9yKT1cImZsb3cuc2VuZFNtc1NlY29uZEZhY3RvcigpXCJcbiAgICAgICAgKHBvbGljeURlY2xpbmVkKT1cImZsb3cuZGVjbGluZVBvbGljeSgkZXZlbnQpXCJcbiAgICAgICAgW3NpZ25JbkhyZWZdPVwic2lnbkluSHJlZigpXCJcbiAgICAgID48L2F0bGFzLWF0dGVtcHQtZmxvdz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxhdGxhcy1zaWduLXVwLWZvcm1cbiAgICAgICAgW3NldHRpbmdzXT1cImZsb3cuc2V0dGluZ3MoKVwiXG4gICAgICAgIFtidXN5XT1cImZsb3cuc3RhdGUoKS5idXN5XCJcbiAgICAgICAgW2Vycm9yc109XCJmbG93LnN0YXRlKCkuZXJyb3JzXCJcbiAgICAgICAgW2NhcHRjaGFdPVwiZmxvdy5zaWduVXBDYXB0Y2hhRHJhd24oKSA/IGZsb3cuc2lnblVwQ2FwdGNoYSA6IG51bGxcIlxuICAgICAgICBbcG9saWNpZXNdPVwiZmxvdy5wb2xpY2llc1wiXG4gICAgICAgIFtwYXNza2V5XT1cInBhc3NrZXlGb3JtKClcIlxuICAgICAgICBbc3dpdGNoYWJsZV09XCJjYW5QYXNza2V5KClcIlxuICAgICAgICAoc3dpdGNoTW9kZSk9XCJ0b2dnbGVNb2RlKClcIlxuICAgICAgICAoc3VibWl0U2lnblVwKT1cIlxuICAgICAgICAgIHBhc3NrZXlGb3JtKCkgPyBmbG93LmNyZWF0ZVdpdGhQYXNza2V5KCRldmVudC52YWx1ZXMsICRldmVudC5jb25zZW50KSA6IGZsb3cuY3JlYXRlKCRldmVudC52YWx1ZXMsICRldmVudC5jb25zZW50KVxuICAgICAgICBcIlxuICAgICAgPjwvYXRsYXMtc2lnbi11cC1mb3JtPlxuICAgIH1cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25VcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdGxhcyA9IGluamVjdChBdGxhc1NlcnZpY2UpO1xuXG4gIC8qKiBPcGVuZWQgZnJvbSBhIG1haWxlZCBsaW5rOiB0aGF0IHBhZ2UsIG5vdCB0aGUgZmxvdy4gUmVhZCBhZnRlciB0aGUgZmlyc3QgcmVuZGVyLCBzbyBoeWRyYXRpb24gbWF0Y2hlcy4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtYWlsTGluayA9IHNpZ25hbDxFbWFpbExpbmsgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4gdGhpcy5lbWFpbExpbmsuc2V0KGVtYWlsTGlua0Zyb21VcmwodW5kZWZpbmVkLCAnc2lnbl91cCcpKSk7XG4gIH1cblxuICAvKiogV2hlcmUgdG8gc2VuZCB0aGUgdXNlciBvbmNlIHRoZSBmbG93IGNvbXBsZXRlcy4gUmVzZXJ2ZWQgZm9yIGhvc3Qgcm91dGluZy4gKi9cbiAgQElucHV0KCkgYWZ0ZXJVcmw/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXJlIHRoZSBleGlzdGluZy1hY2NvdW50IG5vdGljZSdzIFwiRm9yZ290IHBhc3N3b3JkP1wiIGdvZXMuIERlZmF1bHQ6IHRoZSBob3N0ZWQgc2lnbi1pbiBwYWdlOyBgbnVsbGAgaGlkZXMgaXQuICovXG4gIEBJbnB1dCgpIHJlc2V0UGFzc3dvcmRVcmw/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBXaGVyZSBcIlNpZ24gaW5cIiBnb2VzIG9uY2UgYW4gZW1haWxlZCBsaW5rIGNvbmZpcm1lZCB0aGUgYWRkcmVzcyBhbmQgbWFkZSBubyBzZXNzaW9uIGhlcmUuIERlZmF1bHQ6IHRoZSBob3N0ZWQgc2lnbi1pbiBwYWdlOyBgbnVsbGAgaGlkZXMgaXQuICovXG4gIEBJbnB1dCgpIHNpZ25JblVybD86IHN0cmluZyB8IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZsb3cgPSBuZXcgQXRsYXNGbG93Q29udHJvbGxlcihcbiAgICB0aGlzLmF0bGFzLmNyZWF0ZUZhcGlDbGllbnQoKSxcbiAgICAoKSA9PiB0aGlzLmF0bGFzLnJlbG9hZCgpLFxuICAgIHRoaXMuYXRsYXMucGVuZGluZ0F0dGVtcHQsXG4gICAgKGtleSkgPT4gdHJhbnNsYXRlKHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCBrZXkpLFxuICAgIHRydWUsXG4gICk7XG5cbiAgLyoqIFBhc3N3b3JkIG9yIHBhc3NrZXktb25seSBzaWduLXVwICh0aGUgbGF0dGVyIHdoZW4gdGhlIGluc3RhbmNlIG9mZmVycyBpdCkuICovXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RlID0gc2lnbmFsPCdwYXNzd29yZCcgfCAncGFzc2tleSc+KCdwYXNzd29yZCcpO1xuXG4gIHByb3RlY3RlZCBjYW5QYXNza2V5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmxvdy5zZXR0aW5ncygpPy5hY2NvdW50LnBhc3NrZXlTaWduVXAgJiYgcGFzc2tleXNTdXBwb3J0ZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXNza2V5Rm9ybSgpOiB7IGVtYWlsOiAnb2ZmJyB8ICdvcHRpb25hbCcgfCAncmVxdWlyZWQnIH0gfCBudWxsIHtcbiAgICBjb25zdCBvZmZlciA9IHRoaXMuZmxvdy5zZXR0aW5ncygpPy5hY2NvdW50LnBhc3NrZXlTaWduVXAgPz8gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5tb2RlKCkgPT09ICdwYXNza2V5JyAmJiBvZmZlciAmJiB0aGlzLmNhblBhc3NrZXkoKSA/IHsgZW1haWw6IG9mZmVyLmVtYWlsIH0gOiBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZU1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5mbG93LnN0YXRlLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgZXJyb3JzOiBbXSB9KSk7XG4gICAgdGhpcy5tb2RlLnNldCh0aGlzLnBhc3NrZXlGb3JtKCkgPyAncGFzc3dvcmQnIDogJ3Bhc3NrZXknKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEhyZWYoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGV4aXN0aW5nQWNjb3VudFJlc2V0VXJsKHsgdXJsOiB0aGlzLnJlc2V0UGFzc3dvcmRVcmwsIGZyb250ZW5kQXBpOiB0aGlzLmF0bGFzLmZyb250ZW5kQXBpLCByZWRpcmVjdFVybDogdGhpcy5hZnRlclVybCB9KTtcbiAgfVxuXG4gIC8qKiBBIGxpbmsgY29uZmlybWVkIHRoZSBhZGRyZXNzIGFuZCBtYWRlIG5vIHNlc3Npb24gaGVyZS4gU2F5cyB0aGUgc2FtZSBmb3IgYW55IGFkZHJlc3MuICovXG4gIHByb3RlY3RlZCBlbWFpbENvbmZpcm1lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2lnblVwUHJvdmVkQnlMaW5rKHRoaXMuZmxvdy5zdGF0ZSgpLmF0dGVtcHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpZ25JbkhyZWYoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHNpZ25JbkFmdGVyUHJvb2ZVcmwoeyB1cmw6IHRoaXMuc2lnbkluVXJsLCBmcm9udGVuZEFwaTogdGhpcy5hdGxhcy5mcm9udGVuZEFwaSwgcmVkaXJlY3RVcmw6IHRoaXMuYWZ0ZXJVcmwgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXdhaXRpbmdQYXNza2V5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhd2FpdGluZ1Bhc3NrZXkodGhpcy5mbG93LnN0YXRlKCkuYXR0ZW1wdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZSh0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwga2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbHMoa2V5OiBFbGVtZW50S2V5LCBiYXNlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjbGFzc0ZvcihrZXksIHRoaXMuYXRsYXMuYXBwZWFyYW5jZSwgYmFzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXJyb3JUZXh0KGVycm9yOiBGaWVsZEVycm9yKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYXllciA9ICh0aGlzLmF0bGFzIGFzIHsgZXJyb3JMb2NhbGl6YXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0pLmVycm9yTG9jYWxpemF0aW9uO1xuICAgIHJldHVybiBsb2NhbGl6ZWRFcnJvck1lc3NhZ2UoZXJyb3IsIGxheWVyID8/IHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCB0aGlzLmF0bGFzLmxvY2FsaXphdGlvbik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyDCpzUgdGhlIGluc3RhbmNlJ3Mgc2lnbi11cCBmaWVsZHMsIGNvbnNlbnQgcG9saWN5IGFuZCBjYXB0Y2hhIHNldHRpbmdzLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdm9pZCB0aGlzLmZsb3cubG9hZFNldHRpbmdzKCk7XG4gICAgICB2b2lkIHRoaXMuZmxvdy5sb2FkUG9saWNpZXModGhpcy5hdGxhcy5sb2NhbGUgPz8gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3cuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi11cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXhEOzs7Ozs7Ozs7OztHQVdHO0FBOEZILE1BQU0sT0FBTyxlQUFlO0lBQ1QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5Qyw2R0FBNkc7SUFDMUYsU0FBUyxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFFOUQ7UUFDRSxlQUFlLENBQUMsR0FB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RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRlQ7aUJBQ0Y7d0RBWVUsUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbWFpbExpbmtGcm9tVXJsLCB0eXBlIEVtYWlsTGluayB9IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuaW1wb3J0IHsgYXdhaXRpbmdQYXNza2V5LCBleGlzdGluZ0FjY291bnRSZXNldFVybCwgbG9jYWxpemVkRXJyb3JNZXNzYWdlLCBwYXNza2V5c1N1cHBvcnRlZCwgc2lnbkluQWZ0ZXJQcm9vZlVybCwgc2lnblVwUHJvdmVkQnlMaW5rLCB0eXBlIEZpZWxkRXJyb3IgfSBmcm9tICdAYXRsYXNhdXRoL2pzJztcbmltcG9ydCB7IEF0bGFzU2VydmljZSB9IGZyb20gJy4uL2F0bGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xhc3NGb3IsIHR5cGUgRWxlbWVudEtleSB9IGZyb20gJy4uL2FwcGVhcmFuY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQgeyBBdHRlbXB0Rmxvd0NvbXBvbmVudCB9IGZyb20gJy4vYXR0ZW1wdC1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbWFpbExpbmtDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY292ZXJ5Q29kZXNDb21wb25lbnQgfSBmcm9tICcuL3JlY292ZXJ5LWNvZGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduVXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWduLXVwLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEF0bGFzRmxvd0NvbnRyb2xsZXIgfSBmcm9tICcuL2Zsb3ctY29udHJvbGxlcic7XG5cbi8qKlxuICogYDxhdGxhcy1zaWduLXVwPmAg4oCUIGNyZWF0ZXMgYW4gYWNjb3VudC4gVGhlIEFuZ3VsYXIgcGVlciBvZiBSZWFjdCdzXG4gKiBgPFNpZ25VcC8+YC4gVGhlIGZpcnN0IHN0ZXAgaXMgdGhlIGNyZWF0ZS1hY2NvdW50IGZvcm0gKHRoZSBpbnN0YW5jZSdzXG4gKiBjb25maWd1cmVkIGZpZWxkcywgZW1haWwsIHBhc3N3b3JkLCBsZWdhbCBjb25zZW50IGFuZCDigJQgd2hlbiByZXF1aXJlZCDigJQgdGhlXG4gKiBjYXB0Y2hhKSwgd2hpY2ggUE9TVHMgYC92MS9jbGllbnQvc2lnbl91cHNgOyBmcm9tIHRoZXJlIGl0IHNoYXJlcyB0aGUgZmxvd1xuICogZW5naW5lIHdpdGggYDxhdGxhcy1zaWduLWluPmAgKHRoZSBlbWFpbGVkLWNvZGUgc3RlcCwgdGhlbiB0aGUgdGlja2V0XG4gKiBleGNoYW5nZSksIGJlY2F1c2UgdGhlIHNlcXVlbmNlIG9mIHN0ZXBzIGlzIGRlY2lkZWQgYnkgdGhlIHNlcnZlci5cbiAqXG4gKiBgYGBodG1sXG4gKiA8YXRsYXMtc2lnbi11cCAqYXRsYXNTaWduZWRPdXQ+PC9hdGxhcy1zaWduLXVwPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F0bGFzLXNpZ24tdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0VtYWlsTGlua0NvbXBvbmVudCwgQXR0ZW1wdEZsb3dDb21wb25lbnQsIFJlY292ZXJ5Q29kZXNDb21wb25lbnQsIFNpZ25VcEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoZW1haWxMaW5rKCk7IGFzIGxpbmspIHtcbiAgICAgIDxhdGxhcy1lbWFpbC1saW5rIFtsaW5rXT1cImxpbmtcIj48L2F0bGFzLWVtYWlsLWxpbms+XG4gICAgfSBAZWxzZSB7XG4gICAgQGlmIChmbG93LnJlY292ZXJ5Q29kZXMoKTsgYXMgY29kZXMpIHtcbiAgICAgIDxhdGxhcy1yZWNvdmVyeS1jb2RlcyBbY29kZXNdPVwiY29kZXNcIiBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiIChzYXZlZCk9XCJmbG93LnNhdmVSZWNvdmVyeUNvZGVzKClcIj48L2F0bGFzLXJlY292ZXJ5LWNvZGVzPlxuICAgIH0gQGVsc2UgaWYgKGZsb3cuZXhpc3RpbmdBY2NvdW50Tm90aWNlKCkpIHtcbiAgICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIiBkYXRhLWF0bGFzLWV4aXN0aW5nLWFjY291bnQ9XCJcIj5cbiAgICAgICAgPGgxIFtjbGFzc109XCJjbHMoJ2hlYWRlclRpdGxlJywgJ2F0bGFzLXRpdGxlJylcIj57eyB0KCdzaWduVXAudGl0bGUnKSB9fTwvaDE+XG4gICAgICAgIDxwIGNsYXNzPVwiYXRsYXMtdGV4dFwiPnt7IHQoJ3NpZ25VcC5leGlzdGluZ0FjY291bnQnKSB9fTwvcD5cbiAgICAgICAgQGlmIChyZXNldEhyZWYoKTsgYXMgaHJlZikge1xuICAgICAgICAgIDxwIGNsYXNzPVwiYXRsYXMtdGV4dFwiPjxhIGNsYXNzPVwiYXRsYXMtbGlua1wiIFtocmVmXT1cImhyZWZcIj57eyB0KCdzaWduSW4uZm9yZ290UGFzc3dvcmQnKSB9fTwvYT48L3A+XG4gICAgICAgIH1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1CdXR0b25QcmltYXJ5JywgJ2F0bGFzLWJ1dHRvbicpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgICAgIChjbGljayk9XCJmbG93LmNvbnRpbnVlQWZ0ZXJFeGlzdGluZ0FjY291bnQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB0KCdzaWduVXAuc3VibWl0JykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChhd2FpdGluZ1Bhc3NrZXkoKSkge1xuICAgICAgPGRpdiBbY2xhc3NdPVwiY2xzKCdjYXJkJywgJ2F0bGFzLWNhcmQnKVwiIGRhdGEtYXRsYXMtcGFzc2tleS1zaWduLXVwPVwiXCI+XG4gICAgICAgIDxoMSBbY2xhc3NdPVwiY2xzKCdoZWFkZXJUaXRsZScsICdhdGxhcy10aXRsZScpXCI+e3sgdCgnc2lnblVwLnRpdGxlJykgfX08L2gxPlxuICAgICAgICBAZm9yIChlcnJvciBvZiBmbG93LnN0YXRlKCkuZXJyb3JzOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgICAgPHAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiIHJvbGU9XCJhbGVydFwiPnt7IGVycm9yVGV4dChlcnJvcikgfX08L3A+XG4gICAgICAgIH1cbiAgICAgICAgPHAgY2xhc3M9XCJhdGxhcy10ZXh0XCI+e3sgdCgnc2lnblVwLnBhc3NrZXlQcm9tcHQnKSB9fTwvcD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1CdXR0b25QcmltYXJ5JywgJ2F0bGFzLWJ1dHRvbicpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgICAgIChjbGljayk9XCJmbG93LmNyZWF0ZVBhc3NrZXkoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB0KCdzaWduVXAucGFzc2tleUNyZWF0ZScpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoZW1haWxDb25maXJtZWQoKSkge1xuICAgICAgPGRpdiBbY2xhc3NdPVwiY2xzKCdjYXJkJywgJ2F0bGFzLWNhcmQnKVwiIGRhdGEtYXRsYXMtZW1haWwtY29uZmlybWVkPVwiXCI+XG4gICAgICAgIDxoMSBbY2xhc3NdPVwiY2xzKCdoZWFkZXJUaXRsZScsICdhdGxhcy10aXRsZScpXCI+e3sgdCgnc2lnblVwLnRpdGxlJykgfX08L2gxPlxuICAgICAgICA8cCBjbGFzcz1cImF0bGFzLXRleHRcIiByb2xlPVwic3RhdHVzXCI+e3sgdCgnc2lnblVwLmVtYWlsQ29uZmlybWVkJykgfX08L3A+XG4gICAgICAgIEBpZiAoc2lnbkluSHJlZigpOyBhcyBocmVmKSB7XG4gICAgICAgICAgPGEgW2NsYXNzXT1cImNscygnZm9ybUJ1dHRvblByaW1hcnknLCAnYXRsYXMtYnV0dG9uJylcIiBbaHJlZl09XCJocmVmXCI+e3sgdCgnc2lnbkluLnRpdGxlJykgfX08L2E+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKGZsb3cuc3RhdGUoKS5hdHRlbXB0KSB7XG4gICAgICA8YXRsYXMtYXR0ZW1wdC1mbG93XG4gICAgICAgIFthdHRlbXB0XT1cImZsb3cuc3RhdGUoKS5hdHRlbXB0XCJcbiAgICAgICAgW2J1c3ldPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgICBbZXJyb3JzXT1cImZsb3cuc3RhdGUoKS5lcnJvcnNcIlxuICAgICAgICBbc2Vzc2lvbktlcHRdPVwiZmxvdy5zdGF0ZSgpLnNlc3Npb25LZXB0XCJcbiAgICAgICAgdGl0bGVLZXk9XCJzaWduVXAudGl0bGVcIlxuICAgICAgICBbZW1haWxWZXJpZmljYXRpb25dPVwiZmxvdy5zZXR0aW5ncygpPy5hY2NvdW50Py5lbWFpbFZlcmlmaWNhdGlvbiA/PyAnY29kZSdcIlxuICAgICAgICAoc3VibWl0Rmxvdyk9XCJmbG93LnN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHJlc2VuZCk9XCJmbG93LnJlc2VuZFNpZ25VcCgpXCJcbiAgICAgICAgW21hdGNoQ29kZV09XCJmbG93LnN0YXRlKCkubWF0Y2hDb2RlID8/IG51bGxcIlxuICAgICAgICBbb2ZmZXJFbWFpbFNlY29uZEZhY3Rvcl09XCJmbG93LnNldHRpbmdzKCk/LmFjY291bnQ/LmVtYWlsU2Vjb25kRmFjdG9yID09PSB0cnVlXCJcbiAgICAgICAgW2VtYWlsZWRTZWNvbmRGYWN0b3JdPVwiZmxvdy5lbWFpbFNlY29uZEZhY3RvcigpXCJcbiAgICAgICAgW29mZmVyU21zU2Vjb25kRmFjdG9yXT1cImZsb3cuc2V0dGluZ3MoKSAhPT0gbnVsbCAmJiBmbG93Lm1mYUNob2ljZXMoKS5zbXNcIlxuICAgICAgICBbdGV4dGVkU2Vjb25kRmFjdG9yXT1cImZsb3cuc21zU2Vjb25kRmFjdG9yKClcIlxuICAgICAgICBbZW5yb2xsbWVudF09XCJmbG93LmVucm9sbG1lbnRcIlxuICAgICAgICBbZW5yb2xsbWVudFN0YXRlXT1cImZsb3cuZW5yb2xsbWVudFN0YXRlKClcIlxuICAgICAgICAoZW1haWxTZWNvbmRGYWN0b3IpPVwiZmxvdy5zZW5kRW1haWxTZWNvbmRGYWN0b3IoKVwiXG4gICAgICAgIChzbXNTZWNvbmRGYWN0b3IpPVwiZmxvdy5zZW5kU21zU2Vjb25kRmFjdG9yKClcIlxuICAgICAgICBbb2ZmZXJQYXNza2V5U2Vjb25kRmFjdG9yXT1cImZsb3cuc2V0dGluZ3MoKSAhPT0gbnVsbCAmJiBmbG93Lm1mYUNob2ljZXMoKS5wYXNza2V5XCJcbiAgICAgICAgKHBhc3NrZXlTZWNvbmRGYWN0b3IpPVwiZmxvdy5jb250aW51ZVdpdGhQYXNza2V5KClcIlxuICAgICAgICAocG9saWN5RGVjbGluZWQpPVwiZmxvdy5kZWNsaW5lUG9saWN5KCRldmVudClcIlxuICAgICAgICBbc2lnbkluSHJlZl09XCJzaWduSW5IcmVmKClcIlxuICAgICAgPjwvYXRsYXMtYXR0ZW1wdC1mbG93PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGF0bGFzLXNpZ24tdXAtZm9ybVxuICAgICAgICBbc2V0dGluZ3NdPVwiZmxvdy5zZXR0aW5ncygpXCJcbiAgICAgICAgW2J1c3ldPVwiZmxvdy5zdGF0ZSgpLmJ1c3lcIlxuICAgICAgICBbZXJyb3JzXT1cImZsb3cuc3RhdGUoKS5lcnJvcnNcIlxuICAgICAgICBbY2FwdGNoYV09XCJmbG93LnNpZ25VcENhcHRjaGFEcmF3bigpID8gZmxvdy5zaWduVXBDYXB0Y2hhIDogbnVsbFwiXG4gICAgICAgIFtwb2xpY2llc109XCJmbG93LnBvbGljaWVzXCJcbiAgICAgICAgW3Bhc3NrZXldPVwicGFzc2tleUZvcm0oKVwiXG4gICAgICAgIFtzd2l0Y2hhYmxlXT1cImNhblBhc3NrZXkoKVwiXG4gICAgICAgIChzd2l0Y2hNb2RlKT1cInRvZ2dsZU1vZGUoKVwiXG4gICAgICAgIChzdWJtaXRTaWduVXApPVwiXG4gICAgICAgICAgcGFzc2tleUZvcm0oKSA/IGZsb3cuY3JlYXRlV2l0aFBhc3NrZXkoJGV2ZW50LnZhbHVlcywgJGV2ZW50LmNvbnNlbnQpIDogZmxvdy5jcmVhdGUoJGV2ZW50LnZhbHVlcywgJGV2ZW50LmNvbnNlbnQpXG4gICAgICAgIFwiXG4gICAgICA+PC9hdGxhcy1zaWduLXVwLWZvcm0+XG4gICAgfVxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnblVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGF0bGFzID0gaW5qZWN0KEF0bGFzU2VydmljZSk7XG5cbiAgLyoqIE9wZW5lZCBmcm9tIGEgbWFpbGVkIGxpbms6IHRoYXQgcGFnZSwgbm90IHRoZSBmbG93LiBSZWFkIGFmdGVyIHRoZSBmaXJzdCByZW5kZXIsIHNvIGh5ZHJhdGlvbiBtYXRjaGVzLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1haWxMaW5rID0gc2lnbmFsPEVtYWlsTGluayB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB0aGlzLmVtYWlsTGluay5zZXQoZW1haWxMaW5rRnJvbVVybCh1bmRlZmluZWQsICdzaWduX3VwJykpKTtcbiAgfVxuXG4gIC8qKiBXaGVyZSB0byBzZW5kIHRoZSB1c2VyIG9uY2UgdGhlIGZsb3cgY29tcGxldGVzLiBSZXNlcnZlZCBmb3IgaG9zdCByb3V0aW5nLiAqL1xuICBASW5wdXQoKSBhZnRlclVybD86IHN0cmluZztcblxuICAvKiogV2hlcmUgdGhlIGV4aXN0aW5nLWFjY291bnQgbm90aWNlJ3MgXCJGb3Jnb3QgcGFzc3dvcmQ/XCIgZ29lcy4gRGVmYXVsdDogdGhlIGhvc3RlZCBzaWduLWluIHBhZ2U7IGBudWxsYCBoaWRlcyBpdC4gKi9cbiAgQElucHV0KCkgcmVzZXRQYXNzd29yZFVybD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqIFdoZXJlIFwiU2lnbiBpblwiIGdvZXMgb25jZSBhbiBlbWFpbGVkIGxpbmsgY29uZmlybWVkIHRoZSBhZGRyZXNzIGFuZCBtYWRlIG5vIHNlc3Npb24gaGVyZS4gRGVmYXVsdDogdGhlIGhvc3RlZCBzaWduLWluIHBhZ2U7IGBudWxsYCBoaWRlcyBpdC4gKi9cbiAgQElucHV0KCkgc2lnbkluVXJsPzogc3RyaW5nIHwgbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmxvdyA9IG5ldyBBdGxhc0Zsb3dDb250cm9sbGVyKFxuICAgIHRoaXMuYXRsYXMuY3JlYXRlRmFwaUNsaWVudCgpLFxuICAgICgpID0+IHRoaXMuYXRsYXMucmVsb2FkKCksXG4gICAgdGhpcy5hdGxhcy5wZW5kaW5nQXR0ZW1wdCxcbiAgICAoa2V5KSA9PiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSksXG4gICAgdHJ1ZSxcbiAgKTtcblxuICAvKiogUGFzc3dvcmQgb3IgcGFzc2tleS1vbmx5IHNpZ24tdXAgKHRoZSBsYXR0ZXIgd2hlbiB0aGUgaW5zdGFuY2Ugb2ZmZXJzIGl0KS4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGUgPSBzaWduYWw8J3Bhc3N3b3JkJyB8ICdwYXNza2V5Jz4oJ3Bhc3N3b3JkJyk7XG5cbiAgcHJvdGVjdGVkIGNhblBhc3NrZXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mbG93LnNldHRpbmdzKCk/LmFjY291bnQucGFzc2tleVNpZ25VcCAmJiBwYXNza2V5c1N1cHBvcnRlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhc3NrZXlGb3JtKCk6IHsgZW1haWw6ICdvZmYnIHwgJ29wdGlvbmFsJyB8ICdyZXF1aXJlZCcgfSB8IG51bGwge1xuICAgIGNvbnN0IG9mZmVyID0gdGhpcy5mbG93LnNldHRpbmdzKCk/LmFjY291bnQucGFzc2tleVNpZ25VcCA/PyBudWxsO1xuICAgIHJldHVybiB0aGlzLm1vZGUoKSA9PT0gJ3Bhc3NrZXknICYmIG9mZmVyICYmIHRoaXMuY2FuUGFzc2tleSgpID8geyBlbWFpbDogb2ZmZXIuZW1haWwgfSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3cuc3RhdGUudXBkYXRlKChjdXJyZW50KSA9PiAoeyAuLi5jdXJyZW50LCBlcnJvcnM6IFtdIH0pKTtcbiAgICB0aGlzLm1vZGUuc2V0KHRoaXMucGFzc2tleUZvcm0oKSA/ICdwYXNzd29yZCcgOiAncGFzc2tleScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0SHJlZigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gZXhpc3RpbmdBY2NvdW50UmVzZXRVcmwoeyB1cmw6IHRoaXMucmVzZXRQYXNzd29yZFVybCwgZnJvbnRlbmRBcGk6IHRoaXMuYXRsYXMuZnJvbnRlbmRBcGksIHJlZGlyZWN0VXJsOiB0aGlzLmFmdGVyVXJsIH0pO1xuICB9XG5cbiAgLyoqIEEgbGluayBjb25maXJtZWQgdGhlIGFkZHJlc3MgYW5kIG1hZGUgbm8gc2Vzc2lvbiBoZXJlLiBTYXlzIHRoZSBzYW1lIGZvciBhbnkgYWRkcmVzcy4gKi9cbiAgcHJvdGVjdGVkIGVtYWlsQ29uZmlybWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaWduVXBQcm92ZWRCeUxpbmsodGhpcy5mbG93LnN0YXRlKCkuYXR0ZW1wdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2lnbkluSHJlZigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gc2lnbkluQWZ0ZXJQcm9vZlVybCh7IHVybDogdGhpcy5zaWduSW5VcmwsIGZyb250ZW5kQXBpOiB0aGlzLmF0bGFzLmZyb250ZW5kQXBpLCByZWRpcmVjdFVybDogdGhpcy5hZnRlclVybCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhd2FpdGluZ1Bhc3NrZXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGF3YWl0aW5nUGFzc2tleSh0aGlzLmZsb3cuc3RhdGUoKS5hdHRlbXB0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlKHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCBrZXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNscyhrZXk6IEVsZW1lbnRLZXksIGJhc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNsYXNzRm9yKGtleSwgdGhpcy5hdGxhcy5hcHBlYXJhbmNlLCBiYXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlcnJvclRleHQoZXJyb3I6IEZpZWxkRXJyb3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxheWVyID0gKHRoaXMuYXRsYXMgYXMgeyBlcnJvckxvY2FsaXphdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSkuZXJyb3JMb2NhbGl6YXRpb247XG4gICAgcmV0dXJuIGxvY2FsaXplZEVycm9yTWVzc2FnZShlcnJvciwgbGF5ZXIgPz8gdGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIHRoaXMuYXRsYXMubG9jYWxpemF0aW9uKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIMKnNSB0aGUgaW5zdGFuY2UncyBzaWduLXVwIGZpZWxkcywgY29uc2VudCBwb2xpY3kgYW5kIGNhcHRjaGEgc2V0dGluZ3MuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2b2lkIHRoaXMuZmxvdy5sb2FkU2V0dGluZ3MoKTtcbiAgICAgIHZvaWQgdGhpcy5mbG93LmxvYWRQb2xpY2llcyh0aGlzLmF0bGFzLmxvY2FsZSA/PyB1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmxvdy5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  /** This package's version, sent as `X-Atlas-SDK` (kept in step with package.json by a test). */
2
- export const ATLAS_ANGULAR_VERSION = '0.16.2';
2
+ export const ATLAS_ANGULAR_VERSION = '0.16.3';
3
3
  export const ATLAS_ANGULAR_SDK = { name: '@atlasauth/angular', version: ATLAS_ANGULAR_VERSION };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxnR0FBZ0c7QUFDaEcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFpQixFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXRsYXNTZGtJbmZvIH0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5cbi8qKiBUaGlzIHBhY2thZ2UncyB2ZXJzaW9uLCBzZW50IGFzIGBYLUF0bGFzLVNES2AgKGtlcHQgaW4gc3RlcCB3aXRoIHBhY2thZ2UuanNvbiBieSBhIHRlc3QpLiAqL1xuZXhwb3J0IGNvbnN0IEFUTEFTX0FOR1VMQVJfVkVSU0lPTiA9ICcwLjE2LjInO1xuZXhwb3J0IGNvbnN0IEFUTEFTX0FOR1VMQVJfU0RLOiBBdGxhc1Nka0luZm8gPSB7IG5hbWU6ICdAYXRsYXNhdXRoL2FuZ3VsYXInLCB2ZXJzaW9uOiBBVExBU19BTkdVTEFSX1ZFUlNJT04gfTtcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxnR0FBZ0c7QUFDaEcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFpQixFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXRsYXNTZGtJbmZvIH0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5cbi8qKiBUaGlzIHBhY2thZ2UncyB2ZXJzaW9uLCBzZW50IGFzIGBYLUF0bGFzLVNES2AgKGtlcHQgaW4gc3RlcCB3aXRoIHBhY2thZ2UuanNvbiBieSBhIHRlc3QpLiAqL1xuZXhwb3J0IGNvbnN0IEFUTEFTX0FOR1VMQVJfVkVSU0lPTiA9ICcwLjE2LjMnO1xuZXhwb3J0IGNvbnN0IEFUTEFTX0FOR1VMQVJfU0RLOiBBdGxhc1Nka0luZm8gPSB7IG5hbWU6ICdAYXRsYXNhdXRoL2FuZ3VsYXInLCB2ZXJzaW9uOiBBVExBU19BTkdVTEFSX1ZFUlNJT04gfTtcbiJdfQ==
@@ -4,7 +4,7 @@ import { isPlatformBrowser, DOCUMENT } from '@angular/common';
4
4
  import { toSignal } from '@angular/core/rxjs-interop';
5
5
  import { BehaviorSubject, Subject, combineLatest, firstValueFrom } from 'rxjs';
6
6
  import { map, distinctUntilChanged, filter, take } from 'rxjs/operators';
7
- import { createOrganizationAuditLog, POLICY_STRINGS, TokenCache, SignOutNotifier, resolveFrontendApi, withDevBrowser, catalogLocale, configureReferralCapture, FapiClient, SignOutGuard, localizedErrorMessage, reauthenticate, getTemplateToken, getProviderToken, signOutReasonFromClient, readRedirectResult, completeOAuthPopupLanding, mapOAuthPopupPayload, stripRedirectParams, closeOAuthPopupAfterSignIn, SDK_HEADER, sdkHeaderValue, reportSdkAdvisory, readExpiry, msUntilRefresh, policyTranslator, injectPolicyStyles, mountPolicyClickwrap, mountPolicyConsent, controllerForPending, mountPolicyAcceptStep, joinTitles, formatPolicyDate, PolicyGateController, enrollmentOptionKey, groupSetupKey, enrollmentSubmitKey, nextStep, awaitingSignUpLink, createEmailLinkConfirmation, canDownloadRecoveryCodes, copyRecoveryCodes, downloadRecoveryCodes, createCaptchaController, atlasCaptchaLabels, PolicyAcceptanceController, flowFromPending, initialFlow, createMfaEnrollment, createPasskeySignInController, startSignInWithAtlas, mfaChoicesFrom, fetchInstanceSettings, fetchLastSignInMethod, offeredFirstFactors, preparePasswordHoldProof, prepareFactor, signInCaptchaOptions, flowNeedsCaptcha, planFirstFactor, attemptPasswordHoldProof, advanceWithCaptcha, loadPolicies, createSignUp, prepareSecondFactorCode, resendSignUpVerification, createPasskeySignUp, finishPasskeySignUp, pendingRecoveryCodes, acknowledgeRecoveryCodes, pendingExistingAccountNotice, acknowledgeExistingAccount, shouldKeepPolling, pollAttempt, emailLinkFromUrl, lastUsedMethodLabel, signUp, passkeysSupported, confirmPolicies, existingAccountResetUrl, signUpProvedByLink, signInAfterProofUrl, awaitingPasskey, listCibaRequests, getCibaPin, decideCibaRequest, setCibaPin, clearCibaPin, OrganizationProfileController, describeAuditAction, actorFromClaims } from '@atlasauth/js';
7
+ import { createOrganizationAuditLog, POLICY_STRINGS, TokenCache, SignOutNotifier, resolveFrontendApi, withDevBrowser, catalogLocale, configureReferralCapture, FapiClient, SignOutGuard, localizedErrorMessage, reauthenticate, getTemplateToken, getProviderToken, signOutReasonFromClient, readRedirectResult, completeOAuthPopupLanding, mapOAuthPopupPayload, stripRedirectParams, closeOAuthPopupAfterSignIn, SDK_HEADER, sdkHeaderValue, reportSdkAdvisory, readExpiry, msUntilRefresh, policyTranslator, injectPolicyStyles, mountPolicyClickwrap, mountPolicyConsent, controllerForPending, mountPolicyAcceptStep, joinTitles, formatPolicyDate, PolicyGateController, enrollmentOptionKey, groupSetupKey, enrollmentSubmitKey, nextStep, awaitingSignUpLink, createEmailLinkConfirmation, canDownloadRecoveryCodes, copyRecoveryCodes, downloadRecoveryCodes, createCaptchaController, atlasCaptchaLabels, PolicyAcceptanceController, flowFromPending, initialFlow, createMfaEnrollment, createPasskeySignInController, startSignInWithAtlas, mfaChoicesFrom, fetchInstanceSettings, fetchLastSignInMethod, offeredFirstFactors, preparePasswordHoldProof, prepareFactor, signInCaptchaOptions, flowNeedsCaptcha, sendOnlyWaySecondFactorCode, continueOnHostedPage, planFirstFactor, attemptPasswordHoldProof, advanceWithCaptcha, loadPolicies, createSignUp, prepareSecondFactorCode, resendSignUpVerification, createPasskeySignUp, finishPasskeySignUp, pendingRecoveryCodes, acknowledgeRecoveryCodes, pendingExistingAccountNotice, acknowledgeExistingAccount, shouldKeepPolling, pollAttempt, emailLinkFromUrl, lastUsedMethodLabel, signUp, passkeysSupported, confirmPolicies, existingAccountResetUrl, signUpProvedByLink, signInAfterProofUrl, awaitingPasskey, listCibaRequests, getCibaPin, decideCibaRequest, setCibaPin, clearCibaPin, OrganizationProfileController, describeAuditAction, actorFromClaims } from '@atlasauth/js';
8
8
  export { FapiClient, SIGN_OUT_EVENT, SignOutError, advance, flowFromPending, getProviderToken, initialFlow, onAtlasSignOut, pollAttempt, prepareFactor, requestForStep, shouldKeepPolling } from '@atlasauth/js';
9
9
  import { evaluate } from '@atlasauth/authz';
10
10
  export { evaluate, hasFromClaims } from '@atlasauth/authz';
@@ -421,7 +421,7 @@ function withFallback(locale) {
421
421
  }
422
422
 
423
423
  /** This package's version, sent as `X-Atlas-SDK` (kept in step with package.json by a test). */
424
- const ATLAS_ANGULAR_VERSION = '0.16.2';
424
+ const ATLAS_ANGULAR_VERSION = '0.16.3';
425
425
  const ATLAS_ANGULAR_SDK = { name: '@atlasauth/angular', version: ATLAS_ANGULAR_VERSION };
426
426
 
427
427
  /**
@@ -1534,6 +1534,9 @@ class AttemptFlowComponent {
1534
1534
  /** `AtlasFlowController.emailSecondFactor()`: in flight, where it went, or why not. */
1535
1535
  emailedSecondFactor = null;
1536
1536
  emailSecondFactor = new EventEmitter();
1537
+ /** "Use a passkey" at the second factor (`mfaChoices().passkey`): leaves for the hosted page. */
1538
+ offerPasskeySecondFactor = false;
1539
+ passkeySecondFactor = new EventEmitter();
1537
1540
  /**
1538
1541
  * Offer "Text me a code instead" at the second factor (where the app offers
1539
1542
  * texted codes, `AtlasFlowController.mfaChoices().sms`); `smsSecondFactor`
@@ -1761,7 +1764,7 @@ class AttemptFlowComponent {
1761
1764
  }
1762
1765
  }
1763
1766
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AttemptFlowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1764
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AttemptFlowComponent, isStandalone: true, selector: "atlas-attempt-flow", inputs: { attempt: "attempt", busy: "busy", errors: "errors", sessionKept: "sessionKept", titleKey: "titleKey", signInHref: "signInHref", captcha: "captcha", firstFactors: "firstFactors", preparedFactor: "preparedFactor", passwordHold: "passwordHold", holdProof: "holdProof", offerEmailSecondFactor: "offerEmailSecondFactor", emailedSecondFactor: "emailedSecondFactor", offerSmsSecondFactor: "offerSmsSecondFactor", textedSecondFactor: "textedSecondFactor", enrollment: "enrollment", enrollmentState: "enrollmentState", emailVerification: "emailVerification", matchCode: "matchCode" }, outputs: { submitFlow: "submitFlow", chooseFactor: "chooseFactor", usePassword: "usePassword", emailSecondFactor: "emailSecondFactor", smsSecondFactor: "smsSecondFactor", resend: "resend", policyDeclined: "policyDeclined" }, ngImport: i0, template: `
1767
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AttemptFlowComponent, isStandalone: true, selector: "atlas-attempt-flow", inputs: { attempt: "attempt", busy: "busy", errors: "errors", sessionKept: "sessionKept", titleKey: "titleKey", signInHref: "signInHref", captcha: "captcha", firstFactors: "firstFactors", preparedFactor: "preparedFactor", passwordHold: "passwordHold", holdProof: "holdProof", offerEmailSecondFactor: "offerEmailSecondFactor", emailedSecondFactor: "emailedSecondFactor", offerPasskeySecondFactor: "offerPasskeySecondFactor", offerSmsSecondFactor: "offerSmsSecondFactor", textedSecondFactor: "textedSecondFactor", enrollment: "enrollment", enrollmentState: "enrollmentState", emailVerification: "emailVerification", matchCode: "matchCode" }, outputs: { submitFlow: "submitFlow", chooseFactor: "chooseFactor", usePassword: "usePassword", emailSecondFactor: "emailSecondFactor", passkeySecondFactor: "passkeySecondFactor", smsSecondFactor: "smsSecondFactor", resend: "resend", policyDeclined: "policyDeclined" }, ngImport: i0, template: `
1765
1768
  <div [class]="cls('card', 'atlas-card')">
1766
1769
  <h1 [class]="cls('headerTitle', 'atlas-title')">{{ t(titleKey) }}</h1>
1767
1770
 
@@ -1984,6 +1987,18 @@ class AttemptFlowComponent {
1984
1987
  }
1985
1988
  }
1986
1989
 
1990
+ @if (offerPasskeySecondFactor && step().kind === 'collect_second_factor') {
1991
+ <button
1992
+ [class]="cls('formButtonSecondary', 'atlas-button-secondary')"
1993
+ type="button"
1994
+ data-atlas="passkey-second-factor"
1995
+ [disabled]="busy"
1996
+ (click)="passkeySecondFactor.emit()"
1997
+ >
1998
+ {{ t('mfa.enrollPasskeyOption') }}
1999
+ </button>
2000
+ }
2001
+
1987
2002
  @if (showEmailCodeOption()) {
1988
2003
  <button
1989
2004
  [class]="cls('formButtonSecondary', 'atlas-button-secondary')"
@@ -2255,6 +2270,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2255
2270
  }
2256
2271
  }
2257
2272
 
2273
+ @if (offerPasskeySecondFactor && step().kind === 'collect_second_factor') {
2274
+ <button
2275
+ [class]="cls('formButtonSecondary', 'atlas-button-secondary')"
2276
+ type="button"
2277
+ data-atlas="passkey-second-factor"
2278
+ [disabled]="busy"
2279
+ (click)="passkeySecondFactor.emit()"
2280
+ >
2281
+ {{ t('mfa.enrollPasskeyOption') }}
2282
+ </button>
2283
+ }
2284
+
2258
2285
  @if (showEmailCodeOption()) {
2259
2286
  <button
2260
2287
  [class]="cls('formButtonSecondary', 'atlas-button-secondary')"
@@ -2330,6 +2357,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2330
2357
  type: Input
2331
2358
  }], emailSecondFactor: [{
2332
2359
  type: Output
2360
+ }], offerPasskeySecondFactor: [{
2361
+ type: Input
2362
+ }], passkeySecondFactor: [{
2363
+ type: Output
2333
2364
  }], offerSmsSecondFactor: [{
2334
2365
  type: Input
2335
2366
  }], textedSecondFactor: [{
@@ -2808,8 +2839,28 @@ class AtlasFlowController {
2808
2839
  this.syncCaptcha();
2809
2840
  this.syncEnrollment();
2810
2841
  this.autoSend();
2842
+ this.autoSendOnlyWay();
2811
2843
  }
2812
2844
  autoSentFor = null;
2845
+ onlyWayFor = null;
2846
+ /** Once per attempt, on arrival at the second factor: email the code if the inbox is the only way. */
2847
+ autoSendOnlyWay() {
2848
+ const { attempt } = this.state();
2849
+ const id = attempt?.id ?? null;
2850
+ if (!id || attempt?.status !== 'needs_second_factor' || this.onlyWayFor === id || !this.mfaChoices().emailCode)
2851
+ return;
2852
+ this.onlyWayFor = id;
2853
+ void sendOnlyWaySecondFactorCode(this.client, id).then((sentTo) => {
2854
+ // A stale answer (the flow moved to another attempt) is dropped.
2855
+ if (sentTo && this.state().attempt?.id === id)
2856
+ this.emailSecondFactor.set({ sentTo });
2857
+ });
2858
+ }
2859
+ /** "Use a passkey" at the second factor: leaves for the hosted page. */
2860
+ continueWithPasskey() {
2861
+ const id = this.state().attempt?.id;
2862
+ return !!id && continueOnHostedPage(this.mfaChoices(), id, 'needs_second_factor');
2863
+ }
2813
2864
  /**
2814
2865
  * With no password on offer, email the code as soon as the server asks for a
2815
2866
  * first factor — once per attempt, so a failed send waits for the user's retry
@@ -3152,6 +3203,8 @@ class SignInComponent {
3152
3203
  [enrollmentState]="flow.enrollmentState()"
3153
3204
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
3154
3205
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
3206
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
3207
+ (passkeySecondFactor)="flow.continueWithPasskey()"
3155
3208
  (policyDeclined)="flow.declinePolicy($event)"
3156
3209
  ></atlas-attempt-flow>
3157
3210
  }
@@ -3172,7 +3225,7 @@ class SignInComponent {
3172
3225
  </p>
3173
3226
  }
3174
3227
  }
3175
- `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3228
+ `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerPasskeySecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "passkeySecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3176
3229
  }
3177
3230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SignInComponent, decorators: [{
3178
3231
  type: Component,
@@ -3224,6 +3277,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3224
3277
  [enrollmentState]="flow.enrollmentState()"
3225
3278
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
3226
3279
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
3280
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
3281
+ (passkeySecondFactor)="flow.continueWithPasskey()"
3227
3282
  (policyDeclined)="flow.declinePolicy($event)"
3228
3283
  ></atlas-attempt-flow>
3229
3284
  }
@@ -3947,6 +4002,8 @@ class SignUpComponent {
3947
4002
  [enrollmentState]="flow.enrollmentState()"
3948
4003
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
3949
4004
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
4005
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
4006
+ (passkeySecondFactor)="flow.continueWithPasskey()"
3950
4007
  (policyDeclined)="flow.declinePolicy($event)"
3951
4008
  [signInHref]="signInHref()"
3952
4009
  ></atlas-attempt-flow>
@@ -3966,7 +4023,7 @@ class SignUpComponent {
3966
4023
  ></atlas-sign-up-form>
3967
4024
  }
3968
4025
  }
3969
- `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha", "passkey", "switchable", "policies"], outputs: ["switchMode", "submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4026
+ `, isInline: true, dependencies: [{ kind: "component", type: EmailLinkComponent, selector: "atlas-email-link", inputs: ["link"] }, { kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "sessionKept", "titleKey", "signInHref", "captcha", "firstFactors", "preparedFactor", "passwordHold", "holdProof", "offerEmailSecondFactor", "emailedSecondFactor", "offerPasskeySecondFactor", "offerSmsSecondFactor", "textedSecondFactor", "enrollment", "enrollmentState", "emailVerification", "matchCode"], outputs: ["submitFlow", "chooseFactor", "usePassword", "emailSecondFactor", "passkeySecondFactor", "smsSecondFactor", "resend", "policyDeclined"] }, { kind: "component", type: RecoveryCodesComponent, selector: "atlas-recovery-codes", inputs: ["codes", "busy"], outputs: ["saved"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha", "passkey", "switchable", "policies"], outputs: ["switchMode", "submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3970
4027
  }
3971
4028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SignUpComponent, decorators: [{
3972
4029
  type: Component,
@@ -4040,6 +4097,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
4040
4097
  [enrollmentState]="flow.enrollmentState()"
4041
4098
  (emailSecondFactor)="flow.sendEmailSecondFactor()"
4042
4099
  (smsSecondFactor)="flow.sendSmsSecondFactor()"
4100
+ [offerPasskeySecondFactor]="flow.settings() !== null && flow.mfaChoices().passkey"
4101
+ (passkeySecondFactor)="flow.continueWithPasskey()"
4043
4102
  (policyDeclined)="flow.declinePolicy($event)"
4044
4103
  [signInHref]="signInHref()"
4045
4104
  ></atlas-attempt-flow>