valtech-components 4.0.178 → 4.0.179
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.
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +20 -28
- package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +5 -3
- package/esm2022/lib/services/auth/oauth.service.mjs +140 -16
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +161 -44
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/organization-view/organization-view.component.d.ts +2 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
|
@@ -68,7 +68,8 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
68
68
|
apiKeysFeaturePermsDesc: 'Cada key lleva solo los permisos que tú le asignes — concede el mínimo.',
|
|
69
69
|
apiKeysFeatureSecretTitle: 'Secreto único',
|
|
70
70
|
apiKeysFeatureSecretDesc: 'El secreto se muestra una sola vez. Guárdalo en un gestor de secretos.',
|
|
71
|
-
|
|
71
|
+
activeOrgTitle: 'Organización activa',
|
|
72
|
+
switchOrgCta: 'Cambiar',
|
|
72
73
|
orgsMoreInfo: 'Aprender más sobre organizaciones',
|
|
73
74
|
orgsInfoTitle: '¿Qué son las organizaciones?',
|
|
74
75
|
orgsInfoSubtitle: 'Todo lo que necesitas saber',
|
|
@@ -167,7 +168,8 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
167
168
|
apiKeysFeaturePermsDesc: 'Each key carries only the permissions you assign — grant the minimum.',
|
|
168
169
|
apiKeysFeatureSecretTitle: 'One-time secret',
|
|
169
170
|
apiKeysFeatureSecretDesc: 'The secret is shown only once. Store it in a secret manager.',
|
|
170
|
-
|
|
171
|
+
activeOrgTitle: 'Active organization',
|
|
172
|
+
switchOrgCta: 'Switch',
|
|
171
173
|
orgsMoreInfo: 'Learn more about organizations',
|
|
172
174
|
orgsInfoTitle: 'What are organizations?',
|
|
173
175
|
orgsInfoSubtitle: 'Everything you need to know',
|
|
@@ -205,4 +207,4 @@ export const ORGANIZATION_VIEW_I18N = {
|
|
|
205
207
|
deleteError: 'Could not delete organization. Please try again.',
|
|
206
208
|
},
|
|
207
209
|
};
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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QUNsQyxVQUFVLEVBQUUsMEVBQTBFO1FBQ3RGLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsYUFBYSxFQUNYLDBGQUEwRjtRQUM1RixhQUFhLEVBQUUsdUJBQXVCO1FBQ3RDLFdBQVcsRUFBRSxrREFBa0Q7S0FDaEU7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbWJlYmlkb3MgZW4gYHZhbC1vcmdhbml6YXRpb24tdmlld2AuIEF1dG8tcmVnaXN0cmFkb3MgZW5cbiAqIGVsIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogKGBTZXR0aW5ncy5Pcmdhbml6YXRpb25gIHBvciBkZWZhdWx0KS4gU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBsYSB2aXN0YSB1c2EuXG4gKlxuICogUG9ydGFkbyBkZSBgT1JHX0kxOE5fQ09OVEVOVGAgKHNob3djYXNlKSBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqL1xuZXhwb3J0IGNvbnN0IE9SR0FOSVpBVElPTl9WSUVXX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemFjacOzbicsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnR2VzdGlvbmEgdHUgb3JnYW5pemFjacOzbiBhY3RpdmEnLFxuICAgIGluZm9UaXRsZTogJ0luZm9ybWFjacOzbicsXG4gICAgaW5mb05hbWU6ICdOb21icmUnLFxuICAgIGluZm9EZXNjcmlwdGlvbjogJ0Rlc2NyaXBjacOzbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1RpcG8nLFxuICAgIGVkaXRDdGE6ICdFZGl0YXInLFxuICAgIHNhdmVDdGE6ICdHdWFyZGFyJyxcbiAgICBjYW5jZWxDdGE6ICdDYW5jZWxhcicsXG4gICAgbWVtYmVyc1RpdGxlOiAnTWllbWJyb3MnLFxuICAgIG1lbWJlcnNFbXB0eTogJ1NpbiBtaWVtYnJvcyBhw7puLicsXG4gICAgbWVtYmVyUm9sZXM6ICdSb2xlcycsXG4gICAgaW52aXRlVGl0bGU6ICdJbnZpdGFyJyxcbiAgICBpbnZpdGVFbWFpbDogJ0NvcnJlbyBlbGVjdHLDs25pY28nLFxuICAgIGludml0ZVJvbGU6ICdSb2wnLFxuICAgIGludml0ZUN0YTogJ0ludml0YXInLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGFjacOzbiBlbnZpYWRhLicsXG4gICAgaW52aXRlRXJyb3I6ICdObyBzZSBwdWRvIGVudmlhciBsYSBpbnZpdGFjacOzbi4nLFxuICAgIG1lbWJlcnNFcnJvcjogJ05vIHNlIHB1ZGllcm9uIGNhcmdhciBsb3MgbWllbWJyb3MuJyxcbiAgICBsZWF2ZVRpdGxlOiAnU2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbicsXG4gICAgbGVhdmVIaW50OiAnRGVqYXLDoXMgZGUgdGVuZXIgYWNjZXNvIGEgZXN0YSBvcmdhbml6YWNpw7NuLicsXG4gICAgbGVhdmVDdGE6ICdTYWxpcicsXG4gICAgbGVhdmVPd25lckhpbnQ6ICdFcmVzIGVsIHByb3BpZXRhcmlvLiBUcmFuc2ZpZXJlIGxhIHByb3BpZWRhZCBhbnRlcyBkZSBzYWxpci4nLFxuICAgIGxlYXZlQ29uZmlybTogJ8K/U2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbj8nLFxuICAgIHBsYW5GcmVlOiAnR3JhdHVpdG8nLFxuICAgIHBsYW5Qcm86ICdQcm8nLFxuICAgIHBsYW5FbnRlcnByaXNlOiAnRW1wcmVzYScsXG4gICAgc2F2ZVN1Y2Nlc3M6ICdPcmdhbml6YWNpw7NuIGFjdHVhbGl6YWRhLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnSGFzIHNhbGlkbyBkZSBsYSBvcmdhbml6YWNpw7NuLicsXG4gICAgZXJyb3JUaXRsZTogJ05vIHNlIHB1ZG8gY2FyZ2FyIGxhIG9yZ2FuaXphY2nDs24nLFxuICAgIG9mZmxpbmVUaXRsZTogJ1NpbiBjb25leGnDs24nLFxuICAgIG9mZmxpbmVIaW50OiAnVmVyaWZpY2EgdHUgY29uZXhpw7NuIGUgaW50ZW50YSBkZSBudWV2by4nLFxuICAgIHJldHJ5OiAnUmVpbnRlbnRhcicsXG4gICAgc2F2ZUVycm9yOiAnTm8gc2UgcHVkbyBndWFyZGFyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgbGVhdmVFcnJvcjogJ05vIHNlIHB1ZG8gc2FsaXIuIEludGVudGEgZGUgbnVldm8uJyxcbiAgICB0cmFuc2ZlclRpdGxlOiAnVHJhbnNmZXJpciBwcm9waWVkYWQnLFxuICAgIHRyYW5zZmVySGludDogJ0VsaWdlIHVuIG1pZW1icm8gcGFyYSB0cmFuc2ZlcmlybGUgbGEgcHJvcGllZGFkIGRlIGxhIG9yZ2FuaXphY2nDs24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjY2lvbmFyIG51ZXZvIHByb3BpZXRhcmlvJyxcbiAgICB0cmFuc2ZlckN0YTogJ1RyYW5zZmVyaXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ8K/VHJhbnNmZXJpciBsYSBwcm9waWVkYWQgYSBlc3RlIG1pZW1icm8/IFBlcmRlcsOhcyBlbCByb2wgZGUgcHJvcGlldGFyaW8uJyxcbiAgICB0cmFuc2ZlclN1Y2Nlc3M6ICdQcm9waWVkYWQgdHJhbnNmZXJpZGEuJyxcbiAgICB0cmFuc2ZlckVycm9yOiAnTm8gc2UgcHVkbyB0cmFuc2ZlcmlyIGxhIHByb3BpZWRhZC4nLFxuICAgIGludml0ZUN0YVRpdGxlOiAnwr9EZXNlYXMgYWdyZWdhciBhIGFsZ3VpZW4/JyxcbiAgICBpbnZpdGVDdGFIaW50OiAnSW52aXRhIGEgdXN1YXJpb3MgYSB1bmlyc2UgYSB0dSBvcmdhbml6YWNpw7NuLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0YXInLFxuICAgIGltcG9ydE9wZW46ICdJbXBvcnRhcicsXG4gICAgYXBpS2V5c09wZW46ICdHZXN0aW9uYXInLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhY2lvbmVzIChBUEkgS2V5cyknLFxuICAgIGFwaUtleXNTZWN0aW9uSGludDogJ0NvbmVjdGEgdHVzIHNpc3RlbWFzIGV4dGVybm9zIGEgZXN0YSBvcmdhbml6YWNpw7NuIHbDrWEgQVBJIEtleS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ03DoXMgaW5mb3JtYWNpw7NuJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnSW50ZWdyYWNpb25lcyBwb3IgQVBJJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnwr9RdcOpIHB1ZWRlcyBoYWNlciBjb24gdW5hIEFQSSBLZXk/JyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6ICdSZXZvY2EgY3VhbHF1aWVyIGtleSBlbiBjdWFscXVpZXIgbW9tZW50byBkZXNkZSBsYSBzZWNjacOzbiBJbnRlZ3JhY2lvbmVzLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0NlcnJhcicsXG4gICAgYXBpS2V5c0ZlYXR1cmVBdXRvVGl0bGU6ICdBdXRvbWF0aXphY2nDs24nLFxuICAgIGFwaUtleXNGZWF0dXJlQXV0b0Rlc2M6ICdDb25lY3RhIHR1cyBzaXN0ZW1hcyBleHRlcm5vcyBkaXJlY3RhbWVudGUsIHNpbiBhYnJpciBsYSBhcHAuJyxcbiAgICBhcGlLZXlzRmVhdHVyZVBlcm1zVGl0bGU6ICdQZXJtaXNvcyBhIG1lZGlkYScsXG4gICAgYXBpS2V5c0ZlYXR1cmVQZXJtc0Rlc2M6XG4gICAgICAnQ2FkYSBrZXkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIHTDuiBsZSBhc2lnbmVzIOKAlCBjb25jZWRlIGVsIG3DrW5pbW8uJyxcbiAgICBhcGlLZXlzRmVhdHVyZVNlY3JldFRpdGxlOiAnU2VjcmV0byDDum5pY28nLFxuICAgIGFwaUtleXNGZWF0dXJlU2VjcmV0RGVzYzpcbiAgICAgICdFbCBzZWNyZXRvIHNlIG11ZXN0cmEgdW5hIHNvbGEgdmV6LiBHdcOhcmRhbG8gZW4gdW4gZ2VzdG9yIGRlIHNlY3JldG9zLicsXG4gICAgc3dpdGNoT3JnQ3RhOiAnQ2FtYmlhciBvcmdhbml6YWNpw7NuJyxcbiAgICBvcmdzTW9yZUluZm86ICdBcHJlbmRlciBtw6FzIHNvYnJlIG9yZ2FuaXphY2lvbmVzJyxcbiAgICBvcmdzSW5mb1RpdGxlOiAnwr9RdcOpIHNvbiBsYXMgb3JnYW5pemFjaW9uZXM/JyxcbiAgICBvcmdzSW5mb1N1YnRpdGxlOiAnVG9kbyBsbyBxdWUgbmVjZXNpdGFzIHNhYmVyJyxcbiAgICBvcmdzSW5mb0Nsb3NlOiAnQ2VycmFyJyxcbiAgICBvcmdzSW5mb0NvbnRlbnQ6XG4gICAgICAnTGFzIG9yZ2FuaXphY2lvbmVzIHRlIHBlcm1pdGVuIHNlcGFyYXIgdHVzIHByb3llY3RvcyB5IGRhdG9zIHBvciBlbXByZXNhLCBlcXVpcG8gbyBjb250ZXh0by4gUHVlZGVzIHBlcnRlbmVjZXIgYSB2YXJpYXMgb3JnYW5pemFjaW9uZXMgeSBjYW1iaWFyIGVudHJlIGVsbGFzIGVuIGN1YWxxdWllciBtb21lbnRvLlxcblxcbkNhZGEgb3JnYW5pemFjacOzbiB0aWVuZSBzdXMgcHJvcGlvcyBtaWVtYnJvcywgcm9sZXMgeSBwZXJtaXNvcy4gTGEgb3JnYW5pemFjacOzbiBhY3RpdmEgZGV0ZXJtaW5hIHF1w6kgZGF0b3MgdmVzIHkgcXXDqSBhY2Npb25lcyBwdWVkZXMgcmVhbGl6YXIuXFxuXFxuUHVlZGVzIGNyZWFyIHVuYSBvcmdhbml6YWNpw7NuIG51ZXZhIG8gdW5pcnRlIGEgdW5hIGV4aXN0ZW50ZSBtZWRpYW50ZSBpbnZpdGFjacOzbi4nLFxuICAgIHZpZXdNZW1iZXJDdGE6ICdWZXIgbWllbWJybycsXG4gICAgcm9sZVZpZXdlcjogJ1Zpc29yJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbicsXG4gICAgcm9sZVN1cGVyQWRtaW46ICdTdXBlciBBZG1pbicsXG4gICAgcm9sZXNTZWN0aW9uVGl0bGU6ICdSb2xlcyB5IHBlcm1pc29zJyxcbiAgICByb2xlc0hpbnQ6XG4gICAgICAnVHUgb3JnYW5pemFjacOzbiB0aWVuZSByb2xlcyBxdWUgY29udHJvbGFuIGxvIHF1ZSBjYWRhIG1pZW1icm8gcHVlZGUgdmVyIHkgaGFjZXIuIENhZGEgcm9sIGxsZXZhIHVuIGNvbmp1bnRvIGRlIHBlcm1pc29zIGFzb2NpYWRvcy4nLFxuICAgIHJvbGVzVmlld1Blcm1zOiAnVmVyIHJvbGVzIHkgcGVybWlzb3MnLFxuICAgIHJvbGVzU3lzdGVtQmFkZ2U6ICdTaXN0ZW1hJyxcbiAgICBwZXJtQWxsOiAnVG9kbycsXG4gICAgcGVybVVzZXJzOiAnVXN1YXJpb3MnLFxuICAgIHBlcm1Eb2N1bWVudHM6ICdEb2N1bWVudG9zJyxcbiAgICBwZXJtUm9sZXM6ICdSb2xlcycsXG4gICAgcGVybU1lZGlhOiAnTWVkaWEnLFxuICAgIHBlcm1UZW1wbGF0ZXM6ICdQbGFudGlsbGFzJyxcbiAgICBwZXJtUmVhZDogJ0xlZXInLFxuICAgIHBlcm1Xcml0ZTogJ0VzY3JpYmlyJyxcbiAgICBwZXJtQ3JlYXRlOiAnQ3JlYXInLFxuICAgIHBlcm1EZWxldGU6ICdFbGltaW5hcicsXG4gICAgcGVybU1hbmFnZTogJ0dlc3Rpb25hcicsXG4gICAgbWVtYmVyc1Nob3dNb3JlOiAnVmVyIG3DoXMnLFxuICAgIG9yZ3NOZXdRdWVzdGlvbjogJ8K/TmVjZXNpdGFzIG90cmEgb3JnYW5pemFjacOzbj8nLFxuICAgIG9yZ3NOZXdIaW50OiAnQ3JlYSB1biBlc3BhY2lvIHNlcGFyYWRvIHBhcmEgb3RybyBlcXVpcG8sIGVtcHJlc2EgbyBwcm95ZWN0by4nLFxuICAgIG9yZ3NOZXdDdGE6ICdOdWV2YSBvcmdhbml6YWNpw7NuJyxcbiAgICBkZWxldGVUaXRsZTogJ0VsaW1pbmFyIG9yZ2FuaXphY2nDs24nLFxuICAgIGRlbGV0ZUhpbnQ6ICdFc3RhIGFjY2nDs24gZXMgcGVybWFuZW50ZSBlIGlycmV2ZXJzaWJsZS4gVG9kb3MgbG9zIG1pZW1icm9zIHBlcmRlcsOhbiBlbCBhY2Nlc28uJyxcbiAgICBkZWxldGVDdGE6ICdFbGltaW5hciBvcmdhbml6YWNpw7NuJyxcbiAgICBkZWxldGVDb25maXJtOlxuICAgICAgJ8K/RXN0w6FzIHNlZ3Vybz8gRXN0YSBhY2Npw7NuIGVsaW1pbmFyw6EgcGVybWFuZW50ZW1lbnRlIGxhIG9yZ2FuaXphY2nDs24geSBubyBzZSBwdWVkZSBkZXNoYWNlci4nLFxuICAgIGRlbGV0ZVN1Y2Nlc3M6ICdPcmdhbml6YWNpw7NuIGVsaW1pbmFkYS4nLFxuICAgIGRlbGV0ZUVycm9yOiAnTm8gc2UgcHVkbyBlbGltaW5hciBsYSBvcmdhbml6YWNpw7NuLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemF0aW9uJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hdGlvbicsXG4gICAgaW5mb05hbWU6ICdOYW1lJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1R5cGUnLFxuICAgIGVkaXRDdGE6ICdFZGl0JyxcbiAgICBzYXZlQ3RhOiAnU2F2ZScsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsJyxcbiAgICBtZW1iZXJzVGl0bGU6ICdNZW1iZXJzJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdObyBtZW1iZXJzIHlldC4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRlJyxcbiAgICBpbnZpdGVFbWFpbDogJ0VtYWlsIGFkZHJlc3MnLFxuICAgIGludml0ZVJvbGU6ICdSb2xlJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGUnLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGF0aW9uIHNlbnQuJyxcbiAgICBpbnZpdGVFcnJvcjogJ0NvdWxkIG5vdCBzZW5kIGludml0YXRpb24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBtZW1iZXJzLicsXG4gICAgbGVhdmVUaXRsZTogJ0xlYXZlIG9yZ2FuaXphdGlvbicsXG4gICAgbGVhdmVIaW50OiAnWW91IHdpbGwgbG9zZSBhY2Nlc3MgdG8gdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICBsZWF2ZUN0YTogJ0xlYXZlJyxcbiAgICBsZWF2ZU93bmVySGludDogJ1lvdSBhcmUgdGhlIG93bmVyLiBUcmFuc2ZlciBvd25lcnNoaXAgYmVmb3JlIGxlYXZpbmcuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICdMZWF2ZSB0aGlzIG9yZ2FuaXphdGlvbj8nLFxuICAgIHBsYW5GcmVlOiAnRnJlZScsXG4gICAgcGxhblBybzogJ1BybycsXG4gICAgcGxhbkVudGVycHJpc2U6ICdFbnRlcnByaXNlJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphdGlvbiB1cGRhdGVkLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnWW91IGhhdmUgbGVmdCB0aGUgb3JnYW5pemF0aW9uLicsXG4gICAgZXJyb3JUaXRsZTogJ0NvdWxkIG5vdCBsb2FkIG9yZ2FuaXphdGlvbicsXG4gICAgb2ZmbGluZVRpdGxlOiAnTm8gY29ubmVjdGlvbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdDaGVjayB5b3VyIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgIHJldHJ5OiAnUmV0cnknLFxuICAgIHNhdmVFcnJvcjogJ0NvdWxkIG5vdCBzYXZlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgbGVhdmVFcnJvcjogJ0NvdWxkIG5vdCBsZWF2ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIHRyYW5zZmVyVGl0bGU6ICdUcmFuc2ZlciBvd25lcnNoaXAnLFxuICAgIHRyYW5zZmVySGludDogJ0Nob29zZSBhIG1lbWJlciB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjdCBuZXcgb3duZXInLFxuICAgIHRyYW5zZmVyQ3RhOiAnVHJhbnNmZXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ1RyYW5zZmVyIG93bmVyc2hpcCB0byB0aGlzIG1lbWJlcj8gWW91IHdpbGwgbG9zZSB0aGUgb3duZXIgcm9sZS4nLFxuICAgIHRyYW5zZmVyU3VjY2VzczogJ093bmVyc2hpcCB0cmFuc2ZlcnJlZC4nLFxuICAgIHRyYW5zZmVyRXJyb3I6ICdDb3VsZCBub3QgdHJhbnNmZXIgb3duZXJzaGlwLicsXG4gICAgaW52aXRlQ3RhVGl0bGU6ICdXYW50IHRvIGFkZCBzb21lb25lPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0ZSB1c2VycyB0byBqb2luIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0ZScsXG4gICAgaW1wb3J0T3BlbjogJ0ltcG9ydCcsXG4gICAgYXBpS2V5c09wZW46ICdNYW5hZ2UnLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhdGlvbnMgKEFQSSBLZXlzKScsXG4gICAgYXBpS2V5c1NlY3Rpb25IaW50OiAnQ29ubmVjdCB5b3VyIGV4dGVybmFsIHN5c3RlbXMgdG8gdGhpcyBvcmdhbml6YXRpb24gdmlhIEFQSSBLZXkuJyxcbiAgICBhcGlLZXlzTW9yZUluZm86ICdNb3JlIGluZm9ybWF0aW9uJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnQVBJIGludGVncmF0aW9ucycsXG4gICAgYXBpS2V5c0luZm9TdWJ0aXRsZTogJ1doYXQgY2FuIHlvdSBkbyB3aXRoIGFuIEFQSSBLZXk/JyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6ICdSZXZva2UgYW55IGtleSBhdCBhbnkgdGltZSBmcm9tIHRoZSBJbnRlZ3JhdGlvbnMgc2VjdGlvbi4nLFxuICAgIGFwaUtleXNJbmZvQ2xvc2U6ICdDbG9zZScsXG4gICAgYXBpS2V5c0ZlYXR1cmVBdXRvVGl0bGU6ICdBdXRvbWF0aW9uJyxcbiAgICBhcGlLZXlzRmVhdHVyZUF1dG9EZXNjOiAnQ29ubmVjdCB5b3VyIGV4dGVybmFsIHN5c3RlbXMgZGlyZWN0bHksIHdpdGhvdXQgb3BlbmluZyB0aGUgYXBwLicsXG4gICAgYXBpS2V5c0ZlYXR1cmVQZXJtc1RpdGxlOiAnQ3VzdG9tIHBlcm1pc3Npb25zJyxcbiAgICBhcGlLZXlzRmVhdHVyZVBlcm1zRGVzYzpcbiAgICAgICdFYWNoIGtleSBjYXJyaWVzIG9ubHkgdGhlIHBlcm1pc3Npb25zIHlvdSBhc3NpZ24g4oCUIGdyYW50IHRoZSBtaW5pbXVtLicsXG4gICAgYXBpS2V5c0ZlYXR1cmVTZWNyZXRUaXRsZTogJ09uZS10aW1lIHNlY3JldCcsXG4gICAgYXBpS2V5c0ZlYXR1cmVTZWNyZXREZXNjOiAnVGhlIHNlY3JldCBpcyBzaG93biBvbmx5IG9uY2UuIFN0b3JlIGl0IGluIGEgc2VjcmV0IG1hbmFnZXIuJyxcbiAgICBzd2l0Y2hPcmdDdGE6ICdTd2l0Y2ggb3JnYW5pemF0aW9uJyxcbiAgICBvcmdzTW9yZUluZm86ICdMZWFybiBtb3JlIGFib3V0IG9yZ2FuaXphdGlvbnMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICdXaGF0IGFyZSBvcmdhbml6YXRpb25zPycsXG4gICAgb3Jnc0luZm9TdWJ0aXRsZTogJ0V2ZXJ5dGhpbmcgeW91IG5lZWQgdG8ga25vdycsXG4gICAgb3Jnc0luZm9DbG9zZTogJ0Nsb3NlJyxcbiAgICBvcmdzSW5mb0NvbnRlbnQ6XG4gICAgICAnT3JnYW5pemF0aW9ucyBsZXQgeW91IHNlcGFyYXRlIHlvdXIgcHJvamVjdHMgYW5kIGRhdGEgYnkgY29tcGFueSwgdGVhbSwgb3IgY29udGV4dC4gWW91IGNhbiBiZWxvbmcgdG8gbXVsdGlwbGUgb3JnYW5pemF0aW9ucyBhbmQgc3dpdGNoIGJldHdlZW4gdGhlbSBhdCBhbnkgdGltZS5cXG5cXG5FYWNoIG9yZ2FuaXphdGlvbiBoYXMgaXRzIG93biBtZW1iZXJzLCByb2xlcywgYW5kIHBlcm1pc3Npb25zLiBUaGUgYWN0aXZlIG9yZ2FuaXphdGlvbiBkZXRlcm1pbmVzIHdoYXQgZGF0YSB5b3Ugc2VlIGFuZCB3aGF0IGFjdGlvbnMgeW91IGNhbiB0YWtlLlxcblxcbllvdSBjYW4gY3JlYXRlIGEgbmV3IG9yZ2FuaXphdGlvbiBvciBqb2luIGFuIGV4aXN0aW5nIG9uZSB2aWEgaW52aXRhdGlvbi4nLFxuICAgIHZpZXdNZW1iZXJDdGE6ICdWaWV3IG1lbWJlcicsXG4gICAgcm9sZVZpZXdlcjogJ1ZpZXdlcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW4nLFxuICAgIHJvbGVTdXBlckFkbWluOiAnU3VwZXIgQWRtaW4nLFxuICAgIHJvbGVzU2VjdGlvblRpdGxlOiAnUm9sZXMgJiBwZXJtaXNzaW9ucycsXG4gICAgcm9sZXNIaW50OlxuICAgICAgJ1lvdXIgb3JnYW5pemF0aW9uIGhhcyByb2xlcyB0aGF0IGNvbnRyb2wgd2hhdCBlYWNoIG1lbWJlciBjYW4gc2VlIGFuZCBkby4gRWFjaCByb2xlIGNhcnJpZXMgYSBzZXQgb2YgYXNzb2NpYXRlZCBwZXJtaXNzaW9ucy4nLFxuICAgIHJvbGVzVmlld1Blcm1zOiAnVmlldyByb2xlcyAmIHBlcm1pc3Npb25zJyxcbiAgICByb2xlc1N5c3RlbUJhZGdlOiAnU3lzdGVtJyxcbiAgICBwZXJtQWxsOiAnQWxsJyxcbiAgICBwZXJtVXNlcnM6ICdVc2VycycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50cycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnVGVtcGxhdGVzJyxcbiAgICBwZXJtUmVhZDogJ1JlYWQnLFxuICAgIHBlcm1Xcml0ZTogJ1dyaXRlJyxcbiAgICBwZXJtQ3JlYXRlOiAnQ3JlYXRlJyxcbiAgICBwZXJtRGVsZXRlOiAnRGVsZXRlJyxcbiAgICBwZXJtTWFuYWdlOiAnTWFuYWdlJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdTaG93IG1vcmUnLFxuICAgIG9yZ3NOZXdRdWVzdGlvbjogJ05lZWQgYW5vdGhlciBvcmdhbml6YXRpb24/JyxcbiAgICBvcmdzTmV3SGludDogJ0NyZWF0ZSBhIHNlcGFyYXRlIHNwYWNlIGZvciBhbm90aGVyIHRlYW0sIGNvbXBhbnkgb3IgcHJvamVjdC4nLFxuICAgIG9yZ3NOZXdDdGE6ICdOZXcgb3JnYW5pemF0aW9uJyxcbiAgICBkZWxldGVUaXRsZTogJ0RlbGV0ZSBvcmdhbml6YXRpb24nLFxuICAgIGRlbGV0ZUhpbnQ6ICdUaGlzIGFjdGlvbiBpcyBwZXJtYW5lbnQgYW5kIGlycmV2ZXJzaWJsZS4gQWxsIG1lbWJlcnMgd2lsbCBsb3NlIGFjY2Vzcy4nLFxuICAgIGRlbGV0ZUN0YTogJ0RlbGV0ZSBvcmdhbml6YXRpb24nLFxuICAgIGRlbGV0ZUNvbmZpcm06XG4gICAgICAnQXJlIHlvdSBzdXJlPyBUaGlzIGFjdGlvbiB3aWxsIHBlcm1hbmVudGx5IGRlbGV0ZSB0aGUgb3JnYW5pemF0aW9uIGFuZCBjYW5ub3QgYmUgdW5kb25lLicsXG4gICAgZGVsZXRlU3VjY2VzczogJ09yZ2FuaXphdGlvbiBkZWxldGVkLicsXG4gICAgZGVsZXRlRXJyb3I6ICdDb3VsZCBub3QgZGVsZXRlIG9yZ2FuaXphdGlvbi4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICB9LFxufTtcbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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LFVBQVUsRUFBRSxrQkFBa0I7UUFDOUIsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxVQUFVLEVBQUUsMEVBQTBFO1FBQ3RGLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsYUFBYSxFQUNYLDBGQUEwRjtRQUM1RixhQUFhLEVBQUUsdUJBQXVCO1FBQ3RDLFdBQVcsRUFBRSxrREFBa0Q7S0FDaEU7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbWJlYmlkb3MgZW4gYHZhbC1vcmdhbml6YXRpb24tdmlld2AuIEF1dG8tcmVnaXN0cmFkb3MgZW5cbiAqIGVsIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogKGBTZXR0aW5ncy5Pcmdhbml6YXRpb25gIHBvciBkZWZhdWx0KS4gU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBsYSB2aXN0YSB1c2EuXG4gKlxuICogUG9ydGFkbyBkZSBgT1JHX0kxOE5fQ09OVEVOVGAgKHNob3djYXNlKSBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqL1xuZXhwb3J0IGNvbnN0IE9SR0FOSVpBVElPTl9WSUVXX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemFjacOzbicsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnR2VzdGlvbmEgdHUgb3JnYW5pemFjacOzbiBhY3RpdmEnLFxuICAgIGluZm9UaXRsZTogJ0luZm9ybWFjacOzbicsXG4gICAgaW5mb05hbWU6ICdOb21icmUnLFxuICAgIGluZm9EZXNjcmlwdGlvbjogJ0Rlc2NyaXBjacOzbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1RpcG8nLFxuICAgIGVkaXRDdGE6ICdFZGl0YXInLFxuICAgIHNhdmVDdGE6ICdHdWFyZGFyJyxcbiAgICBjYW5jZWxDdGE6ICdDYW5jZWxhcicsXG4gICAgbWVtYmVyc1RpdGxlOiAnTWllbWJyb3MnLFxuICAgIG1lbWJlcnNFbXB0eTogJ1NpbiBtaWVtYnJvcyBhw7puLicsXG4gICAgbWVtYmVyUm9sZXM6ICdSb2xlcycsXG4gICAgaW52aXRlVGl0bGU6ICdJbnZpdGFyJyxcbiAgICBpbnZpdGVFbWFpbDogJ0NvcnJlbyBlbGVjdHLDs25pY28nLFxuICAgIGludml0ZVJvbGU6ICdSb2wnLFxuICAgIGludml0ZUN0YTogJ0ludml0YXInLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGFjacOzbiBlbnZpYWRhLicsXG4gICAgaW52aXRlRXJyb3I6ICdObyBzZSBwdWRvIGVudmlhciBsYSBpbnZpdGFjacOzbi4nLFxuICAgIG1lbWJlcnNFcnJvcjogJ05vIHNlIHB1ZGllcm9uIGNhcmdhciBsb3MgbWllbWJyb3MuJyxcbiAgICBsZWF2ZVRpdGxlOiAnU2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbicsXG4gICAgbGVhdmVIaW50OiAnRGVqYXLDoXMgZGUgdGVuZXIgYWNjZXNvIGEgZXN0YSBvcmdhbml6YWNpw7NuLicsXG4gICAgbGVhdmVDdGE6ICdTYWxpcicsXG4gICAgbGVhdmVPd25lckhpbnQ6ICdFcmVzIGVsIHByb3BpZXRhcmlvLiBUcmFuc2ZpZXJlIGxhIHByb3BpZWRhZCBhbnRlcyBkZSBzYWxpci4nLFxuICAgIGxlYXZlQ29uZmlybTogJ8K/U2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbj8nLFxuICAgIHBsYW5GcmVlOiAnR3JhdHVpdG8nLFxuICAgIHBsYW5Qcm86ICdQcm8nLFxuICAgIHBsYW5FbnRlcnByaXNlOiAnRW1wcmVzYScsXG4gICAgc2F2ZVN1Y2Nlc3M6ICdPcmdhbml6YWNpw7NuIGFjdHVhbGl6YWRhLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnSGFzIHNhbGlkbyBkZSBsYSBvcmdhbml6YWNpw7NuLicsXG4gICAgZXJyb3JUaXRsZTogJ05vIHNlIHB1ZG8gY2FyZ2FyIGxhIG9yZ2FuaXphY2nDs24nLFxuICAgIG9mZmxpbmVUaXRsZTogJ1NpbiBjb25leGnDs24nLFxuICAgIG9mZmxpbmVIaW50OiAnVmVyaWZpY2EgdHUgY29uZXhpw7NuIGUgaW50ZW50YSBkZSBudWV2by4nLFxuICAgIHJldHJ5OiAnUmVpbnRlbnRhcicsXG4gICAgc2F2ZUVycm9yOiAnTm8gc2UgcHVkbyBndWFyZGFyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgbGVhdmVFcnJvcjogJ05vIHNlIHB1ZG8gc2FsaXIuIEludGVudGEgZGUgbnVldm8uJyxcbiAgICB0cmFuc2ZlclRpdGxlOiAnVHJhbnNmZXJpciBwcm9waWVkYWQnLFxuICAgIHRyYW5zZmVySGludDogJ0VsaWdlIHVuIG1pZW1icm8gcGFyYSB0cmFuc2ZlcmlybGUgbGEgcHJvcGllZGFkIGRlIGxhIG9yZ2FuaXphY2nDs24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjY2lvbmFyIG51ZXZvIHByb3BpZXRhcmlvJyxcbiAgICB0cmFuc2ZlckN0YTogJ1RyYW5zZmVyaXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ8K/VHJhbnNmZXJpciBsYSBwcm9waWVkYWQgYSBlc3RlIG1pZW1icm8/IFBlcmRlcsOhcyBlbCByb2wgZGUgcHJvcGlldGFyaW8uJyxcbiAgICB0cmFuc2ZlclN1Y2Nlc3M6ICdQcm9waWVkYWQgdHJhbnNmZXJpZGEuJyxcbiAgICB0cmFuc2ZlckVycm9yOiAnTm8gc2UgcHVkbyB0cmFuc2ZlcmlyIGxhIHByb3BpZWRhZC4nLFxuICAgIGludml0ZUN0YVRpdGxlOiAnwr9EZXNlYXMgYWdyZWdhciBhIGFsZ3VpZW4/JyxcbiAgICBpbnZpdGVDdGFIaW50OiAnSW52aXRhIGEgdXN1YXJpb3MgYSB1bmlyc2UgYSB0dSBvcmdhbml6YWNpw7NuLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0YXInLFxuICAgIGltcG9ydE9wZW46ICdJbXBvcnRhcicsXG4gICAgYXBpS2V5c09wZW46ICdHZXN0aW9uYXInLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhY2lvbmVzIChBUEkgS2V5cyknLFxuICAgIGFwaUtleXNTZWN0aW9uSGludDogJ0NvbmVjdGEgdHVzIHNpc3RlbWFzIGV4dGVybm9zIGEgZXN0YSBvcmdhbml6YWNpw7NuIHbDrWEgQVBJIEtleS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ03DoXMgaW5mb3JtYWNpw7NuJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnSW50ZWdyYWNpb25lcyBwb3IgQVBJJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnwr9RdcOpIHB1ZWRlcyBoYWNlciBjb24gdW5hIEFQSSBLZXk/JyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6ICdSZXZvY2EgY3VhbHF1aWVyIGtleSBlbiBjdWFscXVpZXIgbW9tZW50byBkZXNkZSBsYSBzZWNjacOzbiBJbnRlZ3JhY2lvbmVzLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0NlcnJhcicsXG4gICAgYXBpS2V5c0ZlYXR1cmVBdXRvVGl0bGU6ICdBdXRvbWF0aXphY2nDs24nLFxuICAgIGFwaUtleXNGZWF0dXJlQXV0b0Rlc2M6ICdDb25lY3RhIHR1cyBzaXN0ZW1hcyBleHRlcm5vcyBkaXJlY3RhbWVudGUsIHNpbiBhYnJpciBsYSBhcHAuJyxcbiAgICBhcGlLZXlzRmVhdHVyZVBlcm1zVGl0bGU6ICdQZXJtaXNvcyBhIG1lZGlkYScsXG4gICAgYXBpS2V5c0ZlYXR1cmVQZXJtc0Rlc2M6XG4gICAgICAnQ2FkYSBrZXkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIHTDuiBsZSBhc2lnbmVzIOKAlCBjb25jZWRlIGVsIG3DrW5pbW8uJyxcbiAgICBhcGlLZXlzRmVhdHVyZVNlY3JldFRpdGxlOiAnU2VjcmV0byDDum5pY28nLFxuICAgIGFwaUtleXNGZWF0dXJlU2VjcmV0RGVzYzpcbiAgICAgICdFbCBzZWNyZXRvIHNlIG11ZXN0cmEgdW5hIHNvbGEgdmV6LiBHdcOhcmRhbG8gZW4gdW4gZ2VzdG9yIGRlIHNlY3JldG9zLicsXG4gICAgYWN0aXZlT3JnVGl0bGU6ICdPcmdhbml6YWNpw7NuIGFjdGl2YScsXG4gICAgc3dpdGNoT3JnQ3RhOiAnQ2FtYmlhcicsXG4gICAgb3Jnc01vcmVJbmZvOiAnQXByZW5kZXIgbcOhcyBzb2JyZSBvcmdhbml6YWNpb25lcycsXG4gICAgb3Jnc0luZm9UaXRsZTogJ8K/UXXDqSBzb24gbGFzIG9yZ2FuaXphY2lvbmVzPycsXG4gICAgb3Jnc0luZm9TdWJ0aXRsZTogJ1RvZG8gbG8gcXVlIG5lY2VzaXRhcyBzYWJlcicsXG4gICAgb3Jnc0luZm9DbG9zZTogJ0NlcnJhcicsXG4gICAgb3Jnc0luZm9Db250ZW50OlxuICAgICAgJ0xhcyBvcmdhbml6YWNpb25lcyB0ZSBwZXJtaXRlbiBzZXBhcmFyIHR1cyBwcm95ZWN0b3MgeSBkYXRvcyBwb3IgZW1wcmVzYSwgZXF1aXBvIG8gY29udGV4dG8uIFB1ZWRlcyBwZXJ0ZW5lY2VyIGEgdmFyaWFzIG9yZ2FuaXphY2lvbmVzIHkgY2FtYmlhciBlbnRyZSBlbGxhcyBlbiBjdWFscXVpZXIgbW9tZW50by5cXG5cXG5DYWRhIG9yZ2FuaXphY2nDs24gdGllbmUgc3VzIHByb3Bpb3MgbWllbWJyb3MsIHJvbGVzIHkgcGVybWlzb3MuIExhIG9yZ2FuaXphY2nDs24gYWN0aXZhIGRldGVybWluYSBxdcOpIGRhdG9zIHZlcyB5IHF1w6kgYWNjaW9uZXMgcHVlZGVzIHJlYWxpemFyLlxcblxcblB1ZWRlcyBjcmVhciB1bmEgb3JnYW5pemFjacOzbiBudWV2YSBvIHVuaXJ0ZSBhIHVuYSBleGlzdGVudGUgbWVkaWFudGUgaW52aXRhY2nDs24uJyxcbiAgICB2aWV3TWVtYmVyQ3RhOiAnVmVyIG1pZW1icm8nLFxuICAgIHJvbGVWaWV3ZXI6ICdWaXNvcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW4nLFxuICAgIHJvbGVTdXBlckFkbWluOiAnU3VwZXIgQWRtaW4nLFxuICAgIHJvbGVzU2VjdGlvblRpdGxlOiAnUm9sZXMgeSBwZXJtaXNvcycsXG4gICAgcm9sZXNIaW50OlxuICAgICAgJ1R1IG9yZ2FuaXphY2nDs24gdGllbmUgcm9sZXMgcXVlIGNvbnRyb2xhbiBsbyBxdWUgY2FkYSBtaWVtYnJvIHB1ZWRlIHZlciB5IGhhY2VyLiBDYWRhIHJvbCBsbGV2YSB1biBjb25qdW50byBkZSBwZXJtaXNvcyBhc29jaWFkb3MuJyxcbiAgICByb2xlc1ZpZXdQZXJtczogJ1ZlciByb2xlcyB5IHBlcm1pc29zJyxcbiAgICByb2xlc1N5c3RlbUJhZGdlOiAnU2lzdGVtYScsXG4gICAgcGVybUFsbDogJ1RvZG8nLFxuICAgIHBlcm1Vc2VyczogJ1VzdWFyaW9zJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRvcycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnUGxhbnRpbGxhcycsXG4gICAgcGVybVJlYWQ6ICdMZWVyJyxcbiAgICBwZXJtV3JpdGU6ICdFc2NyaWJpcicsXG4gICAgcGVybUNyZWF0ZTogJ0NyZWFyJyxcbiAgICBwZXJtRGVsZXRlOiAnRWxpbWluYXInLFxuICAgIHBlcm1NYW5hZ2U6ICdHZXN0aW9uYXInLFxuICAgIG1lbWJlcnNTaG93TW9yZTogJ1ZlciBtw6FzJyxcbiAgICBvcmdzTmV3UXVlc3Rpb246ICfCv05lY2VzaXRhcyBvdHJhIG9yZ2FuaXphY2nDs24/JyxcbiAgICBvcmdzTmV3SGludDogJ0NyZWEgdW4gZXNwYWNpbyBzZXBhcmFkbyBwYXJhIG90cm8gZXF1aXBvLCBlbXByZXNhIG8gcHJveWVjdG8uJyxcbiAgICBvcmdzTmV3Q3RhOiAnTnVldmEgb3JnYW5pemFjacOzbicsXG4gICAgZGVsZXRlVGl0bGU6ICdFbGltaW5hciBvcmdhbml6YWNpw7NuJyxcbiAgICBkZWxldGVIaW50OiAnRXN0YSBhY2Npw7NuIGVzIHBlcm1hbmVudGUgZSBpcnJldmVyc2libGUuIFRvZG9zIGxvcyBtaWVtYnJvcyBwZXJkZXLDoW4gZWwgYWNjZXNvLicsXG4gICAgZGVsZXRlQ3RhOiAnRWxpbWluYXIgb3JnYW5pemFjacOzbicsXG4gICAgZGVsZXRlQ29uZmlybTpcbiAgICAgICfCv0VzdMOhcyBzZWd1cm8/IEVzdGEgYWNjacOzbiBlbGltaW5hcsOhIHBlcm1hbmVudGVtZW50ZSBsYSBvcmdhbml6YWNpw7NuIHkgbm8gc2UgcHVlZGUgZGVzaGFjZXIuJyxcbiAgICBkZWxldGVTdWNjZXNzOiAnT3JnYW5pemFjacOzbiBlbGltaW5hZGEuJyxcbiAgICBkZWxldGVFcnJvcjogJ05vIHNlIHB1ZG8gZWxpbWluYXIgbGEgb3JnYW5pemFjacOzbi4gSW50ZW50YSBkZSBudWV2by4nLFxuICB9LFxuICBlbjoge1xuICAgIHBhZ2VUaXRsZTogJ09yZ2FuaXphdGlvbicsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnTWFuYWdlIHlvdXIgYWN0aXZlIG9yZ2FuaXphdGlvbicsXG4gICAgaW5mb1RpdGxlOiAnSW5mb3JtYXRpb24nLFxuICAgIGluZm9OYW1lOiAnTmFtZScsXG4gICAgaW5mb0Rlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgIGluZm9QbGFuOiAnUGxhbicsXG4gICAgaW5mb1R5cGU6ICdUeXBlJyxcbiAgICBlZGl0Q3RhOiAnRWRpdCcsXG4gICAgc2F2ZUN0YTogJ1NhdmUnLFxuICAgIGNhbmNlbEN0YTogJ0NhbmNlbCcsXG4gICAgbWVtYmVyc1RpdGxlOiAnTWVtYmVycycsXG4gICAgbWVtYmVyc0VtcHR5OiAnTm8gbWVtYmVycyB5ZXQuJyxcbiAgICBtZW1iZXJSb2xlczogJ1JvbGVzJyxcbiAgICBpbnZpdGVUaXRsZTogJ0ludml0ZScsXG4gICAgaW52aXRlRW1haWw6ICdFbWFpbCBhZGRyZXNzJyxcbiAgICBpbnZpdGVSb2xlOiAnUm9sZScsXG4gICAgaW52aXRlQ3RhOiAnSW52aXRlJyxcbiAgICBpbnZpdGVTdWNjZXNzOiAnSW52aXRhdGlvbiBzZW50LicsXG4gICAgaW52aXRlRXJyb3I6ICdDb3VsZCBub3Qgc2VuZCBpbnZpdGF0aW9uLicsXG4gICAgbWVtYmVyc0Vycm9yOiAnQ291bGQgbm90IGxvYWQgbWVtYmVycy4nLFxuICAgIGxlYXZlVGl0bGU6ICdMZWF2ZSBvcmdhbml6YXRpb24nLFxuICAgIGxlYXZlSGludDogJ1lvdSB3aWxsIGxvc2UgYWNjZXNzIHRvIHRoaXMgb3JnYW5pemF0aW9uLicsXG4gICAgbGVhdmVDdGE6ICdMZWF2ZScsXG4gICAgbGVhdmVPd25lckhpbnQ6ICdZb3UgYXJlIHRoZSBvd25lci4gVHJhbnNmZXIgb3duZXJzaGlwIGJlZm9yZSBsZWF2aW5nLicsXG4gICAgbGVhdmVDb25maXJtOiAnTGVhdmUgdGhpcyBvcmdhbml6YXRpb24/JyxcbiAgICBwbGFuRnJlZTogJ0ZyZWUnLFxuICAgIHBsYW5Qcm86ICdQcm8nLFxuICAgIHBsYW5FbnRlcnByaXNlOiAnRW50ZXJwcmlzZScsXG4gICAgc2F2ZVN1Y2Nlc3M6ICdPcmdhbml6YXRpb24gdXBkYXRlZC4nLFxuICAgIGxlYXZlU3VjY2VzczogJ1lvdSBoYXZlIGxlZnQgdGhlIG9yZ2FuaXphdGlvbi4nLFxuICAgIGVycm9yVGl0bGU6ICdDb3VsZCBub3QgbG9hZCBvcmdhbml6YXRpb24nLFxuICAgIG9mZmxpbmVUaXRsZTogJ05vIGNvbm5lY3Rpb24nLFxuICAgIG9mZmxpbmVIaW50OiAnQ2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uJyxcbiAgICByZXRyeTogJ1JldHJ5JyxcbiAgICBzYXZlRXJyb3I6ICdDb3VsZCBub3Qgc2F2ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIGxlYXZlRXJyb3I6ICdDb3VsZCBub3QgbGVhdmUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB0cmFuc2ZlclRpdGxlOiAnVHJhbnNmZXIgb3duZXJzaGlwJyxcbiAgICB0cmFuc2ZlckhpbnQ6ICdDaG9vc2UgYSBtZW1iZXIgdG8gdHJhbnNmZXIgb3duZXJzaGlwIG9mIHRoaXMgb3JnYW5pemF0aW9uLicsXG4gICAgdHJhbnNmZXJTZWxlY3Q6ICdTZWxlY3QgbmV3IG93bmVyJyxcbiAgICB0cmFuc2ZlckN0YTogJ1RyYW5zZmVyJyxcbiAgICB0cmFuc2ZlckNvbmZpcm06ICdUcmFuc2ZlciBvd25lcnNoaXAgdG8gdGhpcyBtZW1iZXI/IFlvdSB3aWxsIGxvc2UgdGhlIG93bmVyIHJvbGUuJyxcbiAgICB0cmFuc2ZlclN1Y2Nlc3M6ICdPd25lcnNoaXAgdHJhbnNmZXJyZWQuJyxcbiAgICB0cmFuc2ZlckVycm9yOiAnQ291bGQgbm90IHRyYW5zZmVyIG93bmVyc2hpcC4nLFxuICAgIGludml0ZUN0YVRpdGxlOiAnV2FudCB0byBhZGQgc29tZW9uZT8nLFxuICAgIGludml0ZUN0YUhpbnQ6ICdJbnZpdGUgdXNlcnMgdG8gam9pbiB5b3VyIG9yZ2FuaXphdGlvbi4nLFxuICAgIGludml0ZU9wZW46ICdJbnZpdGUnLFxuICAgIGltcG9ydE9wZW46ICdJbXBvcnQnLFxuICAgIGFwaUtleXNPcGVuOiAnTWFuYWdlJyxcbiAgICBhcGlLZXlzU2VjdGlvblRpdGxlOiAnSW50ZWdyYXRpb25zIChBUEkgS2V5cyknLFxuICAgIGFwaUtleXNTZWN0aW9uSGludDogJ0Nvbm5lY3QgeW91ciBleHRlcm5hbCBzeXN0ZW1zIHRvIHRoaXMgb3JnYW5pemF0aW9uIHZpYSBBUEkgS2V5LicsXG4gICAgYXBpS2V5c01vcmVJbmZvOiAnTW9yZSBpbmZvcm1hdGlvbicsXG4gICAgYXBpS2V5c0luZm9UaXRsZTogJ0FQSSBpbnRlZ3JhdGlvbnMnLFxuICAgIGFwaUtleXNJbmZvU3VidGl0bGU6ICdXaGF0IGNhbiB5b3UgZG8gd2l0aCBhbiBBUEkgS2V5PycsXG4gICAgYXBpS2V5c0luZm9Db250ZW50OiAnUmV2b2tlIGFueSBrZXkgYXQgYW55IHRpbWUgZnJvbSB0aGUgSW50ZWdyYXRpb25zIHNlY3Rpb24uJyxcbiAgICBhcGlLZXlzSW5mb0Nsb3NlOiAnQ2xvc2UnLFxuICAgIGFwaUtleXNGZWF0dXJlQXV0b1RpdGxlOiAnQXV0b21hdGlvbicsXG4gICAgYXBpS2V5c0ZlYXR1cmVBdXRvRGVzYzogJ0Nvbm5lY3QgeW91ciBleHRlcm5hbCBzeXN0ZW1zIGRpcmVjdGx5LCB3aXRob3V0IG9wZW5pbmcgdGhlIGFwcC4nLFxuICAgIGFwaUtleXNGZWF0dXJlUGVybXNUaXRsZTogJ0N1c3RvbSBwZXJtaXNzaW9ucycsXG4gICAgYXBpS2V5c0ZlYXR1cmVQZXJtc0Rlc2M6XG4gICAgICAnRWFjaCBrZXkgY2FycmllcyBvbmx5IHRoZSBwZXJtaXNzaW9ucyB5b3UgYXNzaWduIOKAlCBncmFudCB0aGUgbWluaW11bS4nLFxuICAgIGFwaUtleXNGZWF0dXJlU2VjcmV0VGl0bGU6ICdPbmUtdGltZSBzZWNyZXQnLFxuICAgIGFwaUtleXNGZWF0dXJlU2VjcmV0RGVzYzogJ1RoZSBzZWNyZXQgaXMgc2hvd24gb25seSBvbmNlLiBTdG9yZSBpdCBpbiBhIHNlY3JldCBtYW5hZ2VyLicsXG4gICAgYWN0aXZlT3JnVGl0bGU6ICdBY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBzd2l0Y2hPcmdDdGE6ICdTd2l0Y2gnLFxuICAgIG9yZ3NNb3JlSW5mbzogJ0xlYXJuIG1vcmUgYWJvdXQgb3JnYW5pemF0aW9ucycsXG4gICAgb3Jnc0luZm9UaXRsZTogJ1doYXQgYXJlIG9yZ2FuaXphdGlvbnM/JyxcbiAgICBvcmdzSW5mb1N1YnRpdGxlOiAnRXZlcnl0aGluZyB5b3UgbmVlZCB0byBrbm93JyxcbiAgICBvcmdzSW5mb0Nsb3NlOiAnQ2xvc2UnLFxuICAgIG9yZ3NJbmZvQ29udGVudDpcbiAgICAgICdPcmdhbml6YXRpb25zIGxldCB5b3Ugc2VwYXJhdGUgeW91ciBwcm9qZWN0cyBhbmQgZGF0YSBieSBjb21wYW55LCB0ZWFtLCBvciBjb250ZXh0LiBZb3UgY2FuIGJlbG9uZyB0byBtdWx0aXBsZSBvcmdhbml6YXRpb25zIGFuZCBzd2l0Y2ggYmV0d2VlbiB0aGVtIGF0IGFueSB0aW1lLlxcblxcbkVhY2ggb3JnYW5pemF0aW9uIGhhcyBpdHMgb3duIG1lbWJlcnMsIHJvbGVzLCBhbmQgcGVybWlzc2lvbnMuIFRoZSBhY3RpdmUgb3JnYW5pemF0aW9uIGRldGVybWluZXMgd2hhdCBkYXRhIHlvdSBzZWUgYW5kIHdoYXQgYWN0aW9ucyB5b3UgY2FuIHRha2UuXFxuXFxuWW91IGNhbiBjcmVhdGUgYSBuZXcgb3JnYW5pemF0aW9uIG9yIGpvaW4gYW4gZXhpc3Rpbmcgb25lIHZpYSBpbnZpdGF0aW9uLicsXG4gICAgdmlld01lbWJlckN0YTogJ1ZpZXcgbWVtYmVyJyxcbiAgICByb2xlVmlld2VyOiAnVmlld2VyJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbicsXG4gICAgcm9sZVN1cGVyQWRtaW46ICdTdXBlciBBZG1pbicsXG4gICAgcm9sZXNTZWN0aW9uVGl0bGU6ICdSb2xlcyAmIHBlcm1pc3Npb25zJyxcbiAgICByb2xlc0hpbnQ6XG4gICAgICAnWW91ciBvcmdhbml6YXRpb24gaGFzIHJvbGVzIHRoYXQgY29udHJvbCB3aGF0IGVhY2ggbWVtYmVyIGNhbiBzZWUgYW5kIGRvLiBFYWNoIHJvbGUgY2FycmllcyBhIHNldCBvZiBhc3NvY2lhdGVkIHBlcm1pc3Npb25zLicsXG4gICAgcm9sZXNWaWV3UGVybXM6ICdWaWV3IHJvbGVzICYgcGVybWlzc2lvbnMnLFxuICAgIHJvbGVzU3lzdGVtQmFkZ2U6ICdTeXN0ZW0nLFxuICAgIHBlcm1BbGw6ICdBbGwnLFxuICAgIHBlcm1Vc2VyczogJ1VzZXJzJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRzJyxcbiAgICBwZXJtUm9sZXM6ICdSb2xlcycsXG4gICAgcGVybU1lZGlhOiAnTWVkaWEnLFxuICAgIHBlcm1UZW1wbGF0ZXM6ICdUZW1wbGF0ZXMnLFxuICAgIHBlcm1SZWFkOiAnUmVhZCcsXG4gICAgcGVybVdyaXRlOiAnV3JpdGUnLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhdGUnLFxuICAgIHBlcm1EZWxldGU6ICdEZWxldGUnLFxuICAgIHBlcm1NYW5hZ2U6ICdNYW5hZ2UnLFxuICAgIG1lbWJlcnNTaG93TW9yZTogJ1Nob3cgbW9yZScsXG4gICAgb3Jnc05ld1F1ZXN0aW9uOiAnTmVlZCBhbm90aGVyIG9yZ2FuaXphdGlvbj8nLFxuICAgIG9yZ3NOZXdIaW50OiAnQ3JlYXRlIGEgc2VwYXJhdGUgc3BhY2UgZm9yIGFub3RoZXIgdGVhbSwgY29tcGFueSBvciBwcm9qZWN0LicsXG4gICAgb3Jnc05ld0N0YTogJ05ldyBvcmdhbml6YXRpb24nLFxuICAgIGRlbGV0ZVRpdGxlOiAnRGVsZXRlIG9yZ2FuaXphdGlvbicsXG4gICAgZGVsZXRlSGludDogJ1RoaXMgYWN0aW9uIGlzIHBlcm1hbmVudCBhbmQgaXJyZXZlcnNpYmxlLiBBbGwgbWVtYmVycyB3aWxsIGxvc2UgYWNjZXNzLicsXG4gICAgZGVsZXRlQ3RhOiAnRGVsZXRlIG9yZ2FuaXphdGlvbicsXG4gICAgZGVsZXRlQ29uZmlybTpcbiAgICAgICdBcmUgeW91IHN1cmU/IFRoaXMgYWN0aW9uIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHRoZSBvcmdhbml6YXRpb24gYW5kIGNhbm5vdCBiZSB1bmRvbmUuJyxcbiAgICBkZWxldGVTdWNjZXNzOiAnT3JnYW5pemF0aW9uIGRlbGV0ZWQuJyxcbiAgICBkZWxldGVFcnJvcjogJ0NvdWxkIG5vdCBkZWxldGUgb3JnYW5pemF0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gIH0sXG59O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable, Inject, Optional } from '@angular/core';
|
|
1
|
+
import { Injectable, Inject, Optional, isDevMode } from '@angular/core';
|
|
2
2
|
import { Observable, throwError } from 'rxjs';
|
|
3
3
|
import { VALTECH_AUTH_CONFIG } from './config';
|
|
4
4
|
import { catchError } from 'rxjs/operators';
|
|
@@ -74,21 +74,145 @@ export class OAuthService {
|
|
|
74
74
|
this.clearLocalStorageFallback();
|
|
75
75
|
const nonce = this.generateNonce();
|
|
76
76
|
this.expectedNonce = nonce;
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
|
|
80
|
-
// entregan, y popup.closed queda bloqueado ("COOP policy would block the
|
|
81
|
-
// window.closed call") → ni siquiera dispara el cancel: la ventana principal
|
|
82
|
-
// espera para siempre sin redirigir. Navegamos la VENTANA COMPLETA al /start;
|
|
83
|
-
// al volver, OAuthCallbackComponent corre como ventana principal (redirect_uri
|
|
84
|
-
// SIN popup=true) y completa la sesión vía completeInMainWindow → navega al
|
|
85
|
-
// home. Sin popup = sin COOP = sin cuelgue. (El link-flow sigue por popup.)
|
|
86
|
-
const redirectUri = `${window.location.origin}/auth/oauth/callback`;
|
|
77
|
+
// popup=true sobrevive el bounce cross-origin (Google/MS borran window.name
|
|
78
|
+
// por privacidad). El backend lo reenvía en el redirect final vía appendParams.
|
|
79
|
+
const redirectUri = `${window.location.origin}/auth/oauth/callback?popup=true`;
|
|
87
80
|
const startUrl = `${this.config?.apiUrl}/v2/auth/oauth/${provider}/start?redirect_uri=${encodeURIComponent(redirectUri)}&client_nonce=${encodeURIComponent(nonce)}`;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
81
|
+
// Abrir popup centrado
|
|
82
|
+
const width = 500;
|
|
83
|
+
const height = 600;
|
|
84
|
+
const left = window.screenX + (window.outerWidth - width) / 2;
|
|
85
|
+
const top = window.screenY + (window.outerHeight - height) / 2;
|
|
86
|
+
const features = `width=${width},height=${height},left=${left},top=${top},popup=yes`;
|
|
87
|
+
this.popup = window.open(startUrl, 'oauth', features);
|
|
88
|
+
if (!this.popup) {
|
|
89
|
+
observer.error({
|
|
90
|
+
code: 'POPUP_BLOCKED',
|
|
91
|
+
message: 'El navegador bloqueó la ventana emergente. Por favor, permite popups para este sitio.',
|
|
92
|
+
});
|
|
93
|
+
return () => { };
|
|
94
|
+
}
|
|
95
|
+
// Escuchar mensajes del popup
|
|
96
|
+
this.messageHandler = (event) => {
|
|
97
|
+
// Validar origen
|
|
98
|
+
if (event.origin !== window.location.origin) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
// Validar tipo de mensaje
|
|
102
|
+
const data = event.data;
|
|
103
|
+
if (data?.type !== 'oauth-callback') {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// Verificar el nonce del flujo (M-07): si no coincide, no es nuestro
|
|
107
|
+
// callback → ignorar (no consumir el observable).
|
|
108
|
+
if (!this.isNonceValid(data)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// Limpiar
|
|
112
|
+
this.cleanup();
|
|
113
|
+
// Emitir resultado dentro de NgZone para trigger change detection
|
|
114
|
+
this.ngZone.run(() => {
|
|
115
|
+
if (data.error) {
|
|
116
|
+
observer.error(data.error);
|
|
117
|
+
}
|
|
118
|
+
else if (data.tokens) {
|
|
119
|
+
observer.next(data.tokens);
|
|
120
|
+
observer.complete();
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
observer.error({
|
|
124
|
+
code: 'INVALID_RESPONSE',
|
|
125
|
+
message: 'Respuesta inválida del servidor de autenticación',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
window.addEventListener('message', this.messageHandler);
|
|
131
|
+
// BroadcastChannel: canal adicional immune a COOP (funciona entre misma
|
|
132
|
+
// origin sin importar el browsing context group). Es el canal más fiable
|
|
133
|
+
// cuando COOP sever el link opener→popup al pasar por Google/MS.
|
|
134
|
+
try {
|
|
135
|
+
this.broadcastChannel = new BroadcastChannel('valtech-oauth-callback');
|
|
136
|
+
this.broadcastChannel.onmessage = (event) => {
|
|
137
|
+
const data = event.data;
|
|
138
|
+
if (data?.type !== 'oauth-callback')
|
|
139
|
+
return;
|
|
140
|
+
if (!this.isNonceValid(data))
|
|
141
|
+
return;
|
|
142
|
+
this.clearLocalStorageFallback();
|
|
143
|
+
this.cleanup();
|
|
144
|
+
this.ngZone.run(() => {
|
|
145
|
+
if (data.error) {
|
|
146
|
+
observer.error(data.error);
|
|
147
|
+
}
|
|
148
|
+
else if (data.tokens) {
|
|
149
|
+
observer.next(data.tokens);
|
|
150
|
+
observer.complete();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
observer.error({
|
|
154
|
+
code: 'INVALID_RESPONSE',
|
|
155
|
+
message: 'Respuesta inválida del servidor de autenticación',
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// BroadcastChannel no disponible (contextos muy restringidos) — ignorar
|
|
163
|
+
}
|
|
164
|
+
// Polling de localStorage (COOP workaround - no podemos detectar popup.closed)
|
|
165
|
+
// También verifica si el popup se cerró manualmente
|
|
166
|
+
this.checkClosedInterval = setInterval(() => {
|
|
167
|
+
// Primero verificar localStorage (funciona aunque COOP bloquee todo)
|
|
168
|
+
const storedData = this.checkLocalStorageFallback();
|
|
169
|
+
if (storedData) {
|
|
170
|
+
this.cleanup();
|
|
171
|
+
this.ngZone.run(() => {
|
|
172
|
+
if (storedData.error) {
|
|
173
|
+
observer.error(storedData.error);
|
|
174
|
+
}
|
|
175
|
+
else if (storedData.tokens) {
|
|
176
|
+
// Gate de diagnóstico: la metadata de tokens (keys, presencia y
|
|
177
|
+
// longitud del firebaseToken) no debe filtrarse a la consola en
|
|
178
|
+
// producción (L4 del audit). Solo en dev.
|
|
179
|
+
if (isDevMode()) {
|
|
180
|
+
console.log('[OAuthService] Retrieved tokens from localStorage fallback', {
|
|
181
|
+
keys: Object.keys(storedData.tokens),
|
|
182
|
+
hasFirebaseToken: !!storedData.tokens.firebaseToken,
|
|
183
|
+
firebaseTokenLength: storedData.tokens.firebaseToken?.length ?? 0,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
observer.next(storedData.tokens);
|
|
187
|
+
observer.complete();
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
observer.error({
|
|
191
|
+
code: 'INVALID_RESPONSE',
|
|
192
|
+
message: 'Respuesta inválida del servidor de autenticación',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// Intentar verificar si popup se cerró (puede fallar por COOP)
|
|
199
|
+
try {
|
|
200
|
+
if (this.popup?.closed) {
|
|
201
|
+
this.cleanup();
|
|
202
|
+
this.ngZone.run(() => {
|
|
203
|
+
observer.error({
|
|
204
|
+
code: 'POPUP_CLOSED',
|
|
205
|
+
message: 'Se cerró la ventana de autenticación',
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// COOP bloquea acceso a popup.closed - ignorar y seguir con polling
|
|
212
|
+
}
|
|
213
|
+
}, 300);
|
|
214
|
+
// Cleanup cuando el observable se destruye
|
|
215
|
+
return () => this.cleanup();
|
|
92
216
|
});
|
|
93
217
|
}
|
|
94
218
|
/**
|
|
@@ -331,4 +455,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
331
455
|
type: Inject,
|
|
332
456
|
args: [VALTECH_AUTH_CONFIG]
|
|
333
457
|
}] }, { type: i1.HttpClient }, { type: i0.NgZone }] });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC9vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFXLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFXL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBYXZCLFlBQ21ELE1BQWdDLEVBQ3pFLElBQWdCLEVBQ2hCLE1BQWM7UUFGMkIsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFDekUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmhCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLG1CQUFjLEdBQTJDLElBQUksQ0FBQztRQUM5RCx3QkFBbUIsR0FBMEMsSUFBSSxDQUFDO1FBQ2xFLHFCQUFnQixHQUE0QixJQUFJLENBQUM7UUFDekQ7Ozs7O1dBS0c7UUFDSyxrQkFBYSxHQUFrQixJQUFJLENBQUM7SUFNekMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxRQUF1QjtRQUMvQixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLHlFQUF5RTtZQUN6RSw0RUFBNEU7WUFDNUUseUVBQXlFO1lBQ3pFLHNFQUFzRTtZQUN0RSx3RUFBd0U7WUFDeEUsNkVBQTZFO1lBQzdFLGdGQUFnRjtZQUNoRixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZ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UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxvREFBb0Q7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQixDQUFDLElBQXVCO1FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQztRQUNuRSxPQUFPLFFBQVEsSUFBSSxTQUFTLENBQUM7SUFDL0IsQ0FBQzsrR0FsVlUsWUFBWSxrQkFjRCxtQkFBbUI7bUhBZDlCLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWU3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgTmdab25lLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIFZhbHRlY2hBdXRoQ29uZmlnLFxuICBPQXV0aFByb3ZpZGVyLFxuICBPQXV0aFJlc3VsdCxcbiAgT0F1dGhFcnJvcixcbiAgT0F1dGhDYWxsYmFja0RhdGEsXG4gIExpbmtlZFByb3ZpZGVyLFxuICBIYXNQYXNzd29yZFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIE9BdXRoIHBhcmEgbG9naW4gc29jaWFsLlxuICpcbiAqIEltcGxlbWVudGEgZmx1am8gT0F1dGggc2VydmVyLXNpZGUgY29uIHBvcHVwOlxuICogMS4gRnJvbnRlbmQgYWJyZSBwb3B1cCBoYWNpYSBiYWNrZW5kXG4gKiAyLiBCYWNrZW5kIHJlZGlyaWdlIGEgcHJvdmlkZXIgKEdvb2dsZSwgQXBwbGUsIE1pY3Jvc29mdClcbiAqIDMuIFVzdWFyaW8gYXV0b3JpemFcbiAqIDQuIEJhY2tlbmQgaW50ZXJjYW1iaWEgY29kZSwgZ2VuZXJhIEpXVCwgcmVkaXJpZ2UgY29uIHRva2Vuc1xuICogNS4gUG9wdXAgZW52w61hIHRva2VucyBhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IE9BdXRoU2VydmljZSwgQXV0aFNlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICogICBwcml2YXRlIG9hdXRoID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gKiAgIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gKlxuICogICBhc3luYyBsb2dpbldpdGhHb29nbGUoKSB7XG4gKiAgICAgdGhpcy5vYXV0aC5zdGFydEZsb3coJ2dvb2dsZScpLnN1YnNjcmliZSh7XG4gKiAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gKiAgICAgICAgIC8vIFRva2VucyByZWNpYmlkb3MsIGd1YXJkYXIgZW4gYXV0aCBzdGF0ZVxuICogICAgICAgICB0aGlzLmF1dGguaGFuZGxlT0F1dGhTdWNjZXNzKHJlc3VsdCk7XG4gKiAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAqICAgICAgIH0sXG4gKiAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gKiAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ09BdXRoIGZhaWxlZDonLCBlcnJvcik7XG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcG9wdXA6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1lc3NhZ2VIYW5kbGVyOiAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hlY2tDbG9zZWRJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYnJvYWRjYXN0Q2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbCB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogTm9uY2UgZGVsIGZsdWpvIE9BdXRoIGVuIGN1cnNvIChNLTA3KS4gVml2ZSBTT0xPIGVuIG1lbW9yaWEg4oCUIHVuIFhTUyBubyBsb1xuICAgKiBwdWVkZSBsZWVyIGRlIGxvY2FsU3RvcmFnZS9zZXNzaW9uU3RvcmFnZS4gVmlhamEgYWwgYmFja2VuZCAoY2xpZW50X25vbmNlKSxcbiAgICogdnVlbHZlIGVuIGVsIGNhbGxiYWNrLCB5IHNlIHZlcmlmaWNhIGFjw6Eg4oaSIHJlY2hhemEgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YVxuICAgKiBmb3JqYWRvIHBvciBYU1MuXG4gICAqL1xuICBwcml2YXRlIGV4cGVjdGVkTm9uY2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnIHwgbnVsbCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEluaWNpYSBmbHVqbyBPQXV0aCBlbiBwb3B1cC5cbiAgICogUmV0b3JuYSBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBjdWFuZG8gZWwgdXN1YXJpbyBjb21wbGV0YSBlbCBmbHVqby5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyIC0gUHJvdmVlZG9yIE9BdXRoICgnZ29vZ2xlJywgJ2FwcGxlJywgJ21pY3Jvc29mdCcpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgcXVlIGVtaXRlIE9BdXRoUmVzdWx0IG8gZXJyb3JcbiAgICovXG4gIHN0YXJ0Rmxvdyhwcm92aWRlcjogT0F1dGhQcm92aWRlcik6IE9ic2VydmFibGU8T0F1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgLy8gTm9uY2UgZGUgZmx1am8gKE0tMDcpOiB2aXZlIHNvbG8gZW4gZXN0ZSBvYmpldG8gKG5vIGVuIHN0b3JhZ2UpLCB2aWFqYVxuICAgICAgLy8gYWwgYmFja2VuZCBlbiBjbGllbnRfbm9uY2UgeSB2dWVsdmUgZW4gZWwgY2FsbGJhY2suIEVsIG9wZW5lciBsbyB2ZXJpZmljYVxuICAgICAgLy8g4oaSIHVuIG9hdXRoX2NhbGxiYWNrX2RhdGEgZm9yamFkbyBlbiBsb2NhbFN0b3JhZ2UgcG9yIFhTUyBubyBsbyBjb25vY2UuXG4gICAgICAvLyBMaW1waWFyIGRhdG9zIHN0YWxlIGRlIGludGVudG9zIGFudGVyaW9yZXMgQU5URVMgZGUgYWJyaXIgZWwgcG9wdXAuXG4gICAgICAvLyBTaW4gZXN0bywgdW4gaW50ZW50byBwcmV2aW8gZmFsbGlkbyBkZWphIGRhdG9zIGVuIGxvY2FsU3RvcmFnZSBxdWUgZWxcbiAgICAgIC8vIGludGVydmFsbyBkZSBlc3RlIGludGVudG8gZW5jdWVudHJhIGlubWVkaWF0YW1lbnRlIGNvbW8gXCJkZW1hc2lhZG8gdmllam9zXCJcbiAgICAgIC8vIHkgZGVzY2FydGEsIGltcGlkaWVuZG8gcXVlIGxvcyBkYXRvcyBmcmVzY29zIGRlbCBudWV2byBwb3B1cCBzZWFuIGRldGVjdGFkb3MuXG4gICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcblxuICAgICAgY29uc3Qgbm9uY2UgPSB0aGlzLmdlbmVyYXRlTm9uY2UoKTtcbiAgICAgIHRoaXMuZXhwZWN0ZWROb25jZSA9IG5vbmNlO1xuXG4gICAgICAvLyBGbHVqbyBSRURJUkVDVCAoc2luIHBvcHVwKS4gRWwgcG9wdXAgcXVlZGFiYSBDT0xHQURPIGJham8gQ09PUDogR29vZ2xlXG4gICAgICAvLyBzZXRlYSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSDihpIgd2luZG93Lm9wZW5lciBxdWVkYSBzZXZlcmFkbyAoZWxcbiAgICAgIC8vIHBvc3RNZXNzYWdlIGRlbCBwb3B1cCBubyBsbGVnYSksIEJyb2FkY2FzdENoYW5uZWwvbG9jYWxTdG9yYWdlIG5vIHNpZW1wcmVcbiAgICAgIC8vIGVudHJlZ2FuLCB5IHBvcHVwLmNsb3NlZCBxdWVkYSBibG9xdWVhZG8gKFwiQ09PUCBwb2xpY3kgd291bGQgYmxvY2sgdGhlXG4gICAgICAvLyB3aW5kb3cuY2xvc2VkIGNhbGxcIikg4oaSIG5pIHNpcXVpZXJhIGRpc3BhcmEgZWwgY2FuY2VsOiBsYSB2ZW50YW5hIHByaW5jaXBhbFxuICAgICAgLy8gZXNwZXJhIHBhcmEgc2llbXByZSBzaW4gcmVkaXJpZ2lyLiBOYXZlZ2Ftb3MgbGEgVkVOVEFOQSBDT01QTEVUQSBhbCAvc3RhcnQ7XG4gICAgICAvLyBhbCB2b2x2ZXIsIE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgY29ycmUgY29tbyB2ZW50YW5hIHByaW5jaXBhbCAocmVkaXJlY3RfdXJpXG4gICAgICAvLyBTSU4gcG9wdXA9dHJ1ZSkgeSBjb21wbGV0YSBsYSBzZXNpw7NuIHbDrWEgY29tcGxldGVJbk1haW5XaW5kb3cg4oaSIG5hdmVnYSBhbFxuICAgICAgLy8gaG9tZS4gU2luIHBvcHVwID0gc2luIENPT1AgPSBzaW4gY3VlbGd1ZS4gKEVsIGxpbmstZmxvdyBzaWd1ZSBwb3IgcG9wdXAuKVxuICAgICAgY29uc3QgcmVkaXJlY3RVcmkgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hdXRoL29hdXRoL2NhbGxiYWNrYDtcbiAgICAgIGNvbnN0IHN0YXJ0VXJsID0gYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC8ke3Byb3ZpZGVyfS9zdGFydD9yZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmkpfSZjbGllbnRfbm9uY2U9JHtlbmNvZGVVUklDb21wb25lbnQobm9uY2UpfWA7XG5cbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oc3RhcnRVcmwpO1xuXG4gICAgICAvLyBMYSBww6FnaW5hIHNlIGRlc2NhcmdhIGFjw6E7IGVsIG9ic2VydmFibGUgbm8gZW1pdGUgKGxhIGZpbmFsaXphY2nDs24gb2N1cnJlXG4gICAgICAvLyBlbiBlbCBjYWxsYmFjaywgeWEgY29tbyB2ZW50YW5hIHByaW5jaXBhbCkuIFNpbiBsaXN0ZW5lcnMgbmkgcG9sbGluZy5cbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWEgZmx1am8gZGUgbGlua2luZyBwYXJhIHZpbmN1bGFyIHVuIHByb3ZlZWRvciBhZGljaW9uYWwuXG4gICAqIFJlcXVpZXJlIHF1ZSBlbCB1c3VhcmlvIGVzdMOpIGF1dGVudGljYWRvLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZXIgLSBQcm92ZWVkb3IgT0F1dGggYSB2aW5jdWxhclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBjdWFuZG8gc2UgY29tcGxldGEgZWwgbGlua2luZ1xuICAgKi9cbiAgc3RhcnRMaW5rRmxvdyhwcm92aWRlcjogT0F1dGhQcm92aWRlcik6IE9ic2VydmFibGU8T0F1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgY29uc3QgcmVkaXJlY3RVcmkgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hdXRoL29hdXRoL2NhbGxiYWNrP3BvcHVwPXRydWVgO1xuICAgICAgY29uc3Qgc3RhcnRVcmwgPSBgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL2xpbmsvJHtwcm92aWRlcn0vc3RhcnQ/cmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJpKX1gO1xuXG4gICAgICBjb25zdCB3aWR0aCA9IDUwMDtcbiAgICAgIGNvbnN0IGhlaWdodCA9IDYwMDtcbiAgICAgIGNvbnN0IGxlZnQgPSB3aW5kb3cuc2NyZWVuWCArICh3aW5kb3cub3V0ZXJXaWR0aCAtIHdpZHRoKSAvIDI7XG4gICAgICBjb25zdCB0b3AgPSB3aW5kb3cuc2NyZWVuWSArICh3aW5kb3cub3V0ZXJIZWlnaHQgLSBoZWlnaHQpIC8gMjtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gYHdpZHRoPSR7d2lkdGh9LGhlaWdodD0ke2hlaWdodH0sbGVmdD0ke2xlZnR9LHRvcD0ke3RvcH0scG9wdXA9eWVzYDtcblxuICAgICAgdGhpcy5wb3B1cCA9IHdpbmRvdy5vcGVuKHN0YXJ0VXJsLCAnb2F1dGgtbGluaycsIGZlYXR1cmVzKTtcblxuICAgICAgaWYgKCF0aGlzLnBvcHVwKSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICBjb2RlOiAnUE9QVVBfQkxPQ0tFRCcsXG4gICAgICAgICAgbWVzc2FnZTogJ0VsIG5hdmVnYWRvciBibG9xdWXDsyBsYSB2ZW50YW5hIGVtZXJnZW50ZScsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7fTsgLy8gY2xlYW51cCBmdW5jdGlvblxuICAgICAgfVxuXG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhIGFzIE9BdXRoQ2FsbGJhY2tEYXRhO1xuICAgICAgICBpZiAoZGF0YT8udHlwZSAhPT0gJ29hdXRoLWNhbGxiYWNrJykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KGRhdGEudG9rZW5zIHx8ICh7fSBhcyBPQXV0aFJlc3VsdCkpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgdGhpcy5jaGVja0Nsb3NlZEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wb3B1cD8uY2xvc2VkKSB7XG4gICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgY29kZTogJ1BPUFVQX0NMT1NFRCcsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZSBjZXJyw7MgbGEgdmVudGFuYSBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCA1MDApO1xuXG4gICAgICByZXR1cm4gKCkgPT4gdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgcHJvdmVlZG9yZXMgT0F1dGggdmluY3VsYWRvcyBhbCB1c3VhcmlvLlxuICAgKi9cbiAgZ2V0TGlua2VkUHJvdmlkZXJzKCk6IE9ic2VydmFibGU8TGlua2VkUHJvdmlkZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8eyBwcm92aWRlcnM6IExpbmtlZFByb3ZpZGVyW10gfT4oYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC9wcm92aWRlcnNgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnRkVUQ0hfRVJST1InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCBvYnRlbmVyIHByb3ZlZWRvcmVzIHZpbmN1bGFkb3MnLFxuICAgICAgICAgICAgICB9KSBhcyBPQXV0aEVycm9yXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIGFzIHVua25vd24gYXMgT2JzZXJ2YWJsZTxMaW5rZWRQcm92aWRlcltdPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN2aW5jdWxhIHVuIHByb3ZlZWRvciBPQXV0aC5cbiAgICovXG4gIHVubGlua1Byb3ZpZGVyKHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbiB9PihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL3VubGlua2AsIHsgcHJvdmlkZXIgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ1VOTElOS19FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIGRlc3ZpbmN1bGFyIHByb3ZlZWRvcicsXG4gICAgICAgICAgICAgIH0pIGFzIE9BdXRoRXJyb3JcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIGNvbnRyYXNlw7FhIHBhcmEgdXN1YXJpb3MgcXVlIHNvbG8gdGllbmVuIE9BdXRoLlxuICAgKi9cbiAgc2V0UGFzc3dvcmQocGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8eyBzdWNjZXNzOiBib29sZWFuIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4oYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC9zZXQtcGFzc3dvcmRgLCB7IHBhc3N3b3JkIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdTRVRfUEFTU1dPUkRfRVJST1InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCBlc3RhYmxlY2VyIGNvbnRyYXNlw7FhJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHRpZW5lIGNvbnRyYXNlw7FhIGVzdGFibGVjaWRhLlxuICAgKi9cbiAgaGFzUGFzc3dvcmQoKTogT2JzZXJ2YWJsZTxIYXNQYXNzd29yZFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxIYXNQYXNzd29yZFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL2hhcy1wYXNzd29yZGApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdDSEVDS19QQVNTV09SRF9FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIHZlcmlmaWNhciBjb250cmFzZcOxYScsXG4gICAgICAgICAgICAgIH0pIGFzIE9BdXRoRXJyb3JcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV2aXNhIGxvY2FsU3RvcmFnZSBwb3IgZGF0b3MgZGUgY2FsbGJhY2sgT0F1dGggKGZhbGxiYWNrIHBhcmEgQ09PUCkuXG4gICAqIFNvbG8gYWNlcHRhIGRhdG9zIHJlY2llbnRlcyAow7psdGltb3MgMzAgc2VndW5kb3MpLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0xvY2FsU3RvcmFnZUZhbGxiYWNrKCk6IE9BdXRoQ2FsbGJhY2tEYXRhIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvYXV0aF9jYWxsYmFja190aW1lc3RhbXAnKTtcbiAgICAgIGNvbnN0IGRhdGFTdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfZGF0YScpO1xuXG4gICAgICBpZiAoIXRpbWVzdGFtcCB8fCAhZGF0YVN0cikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gU29sbyBhY2VwdGFyIGRhdG9zIGRlIGxvcyDDumx0aW1vcyAzMCBzZWd1bmRvc1xuICAgICAgY29uc3QgYWdlID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KHRpbWVzdGFtcCwgMTApO1xuICAgICAgaWYgKGFnZSA+IDMwMDAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbT0F1dGhTZXJ2aWNlXSBsb2NhbFN0b3JhZ2UgZGF0YSB0b28gb2xkLCBpZ25vcmluZycpO1xuICAgICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpIGFzIE9BdXRoQ2FsbGJhY2tEYXRhO1xuICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG5cbiAgICAgIC8vIEVsIGNhbWlubyBsb2NhbFN0b3JhZ2UgZXMgZWwgcXVlIHVuIFhTUyBwb2Ryw61hIGZvcmphciAoTS0wNykuIEVsXG4gICAgICAvLyBwb3N0TWVzc2FnZSB5YSB2YWxpZGEgb3JpZ2luICsgdGlwbzsgYWPDoSByZXBsaWNhbW9zIGVzYXMgZGVmZW5zYXMgeVxuICAgICAgLy8gc3VtYW1vcyBsYSB2ZXJpZmljYWNpw7NuIGRlbCBub25jZSBkZSBmbHVqbyArIGZvcm1hIGRlbCBwYXlsb2FkLlxuICAgICAgaWYgKGRhdGE/LnR5cGUgIT09ICdvYXV0aC1jYWxsYmFjaycpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNOb25jZVZhbGlkKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzQ2FsbGJhY2tTaGFwZVZhbGlkKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aFNlcnZpY2VdIEVycm9yIHJlYWRpbmcgbG9jYWxTdG9yYWdlIGZhbGxiYWNrOicsIGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBkYXRvcyBkZSBmYWxsYmFjayBkZSBsb2NhbFN0b3JhZ2UuXG4gICAqL1xuICBwcml2YXRlIGNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJyk7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJZ25vcmFyIGVycm9yZXMgZGUgbGltcGllemFcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIHJlY3Vyc29zIGRlbCBwb3B1cC5cbiAgICovXG4gIHByaXZhdGUgY2xlYW51cCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlSGFuZGxlcikge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0Nsb3NlZEludGVydmFsKTtcbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCkge1xuICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsLmNsb3NlKCk7XG4gICAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIExpbXBpYXIgZGF0b3MgZGVsIHBvcHVwIGVuIHN0b3JhZ2UgcGFyYSBubyBjb250YW1pbmFyIGVsIHByw7N4aW1vIGludGVudG8uXG4gICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG5cbiAgICAvLyBDT09QIChHb29nbGUgdXNhIHNhbWUtb3JpZ2luKSBwdWVkZSBzZXZlcmFyIGxhIEJDRyBkZWwgcG9wdXAg4oaSIGFjY2VkZXIgYVxuICAgIC8vIHBvcHVwLmNsb3NlZCBvIGxsYW1hciBwb3B1cC5jbG9zZSgpIGxhbnphIFNlY3VyaXR5RXJyb3IuIFNpbiBlc3RlIHRyeS9jYXRjaCxcbiAgICAvLyBjbGVhbnVwKCkgdGlyYSwgbmdab25lLnJ1bigpIG51bmNhIHNlIGxsYW1hIHkgZWwgb2JzZXJ2ZXIgbm8gZW1pdGUg4oaSIHNpblxuICAgIC8vIG5hdmVnYWNpw7NuIHBvc3QtbG9naW4gKGJ1ZyBpbnRlcm1pdGVudGUpLlxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wb3B1cCAmJiAhdGhpcy5wb3B1cC5jbG9zZWQpIHtcbiAgICAgICAgdGhpcy5wb3B1cC5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQ3Jvc3MtQkNHIHBvciBDT09QOiBpZ25vcmFyLCBlbCBwb3B1cCBzZSBjaWVycmEgc29sbyB2w61hIGNsb3NlQWZ0ZXJEZWxheVxuICAgIH1cbiAgICB0aGlzLnBvcHVwID0gbnVsbDtcbiAgICAvLyBFbCBub25jZSB5YSBmdWUgdmVyaWZpY2FkbyAoc2kgY29ycmVzcG9uZMOtYSkgYW50ZXMgZGUgbGxlZ2FyIGFjw6E7IHNlXG4gICAgLy8gbGltcGlhIHBhcmEgbm8gcmV1c2FybG8gZW4gdW4gZmx1am8gZnV0dXJvIChNLTA3KS5cbiAgICB0aGlzLmV4cGVjdGVkTm9uY2UgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYSB1biBub25jZSBhbGVhdG9yaW8gKENTUFJORykgdXJsLXNhZmUgcGFyYSBlbCBmbHVqbyBPQXV0aCAoTS0wNykuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlTm9uY2UoKTogc3RyaW5nIHtcbiAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KDE2KTtcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ5dGVzKTtcbiAgICBsZXQgYmluID0gJyc7XG4gICAgYnl0ZXMuZm9yRWFjaChiID0+IChiaW4gKz0gU3RyaW5nLmZyb21DaGFyQ29kZShiKSkpO1xuICAgIC8vIGJhc2U2NHVybCBzaW4gcGFkZGluZy5cbiAgICByZXR1cm4gYnRvYShiaW4pLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0rJC8sICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBxdWUgZWwgY2FsbGJhY2sgdHJhaWdhIGVsIG5vbmNlIGRlbCBmbHVqbyBhY3R1YWwgKE0tMDcpLlxuICAgKlxuICAgKiBUb2xlcmFudGUgYSBsYSB0cmFuc2ljacOzbjogc29sbyBzZSBFWElHRSBjb2luY2lkZW5jaWEgY3VhbmRvIGVsIGNhbGxiYWNrXG4gICAqIHRyYWUgdW4gbm9uY2UuIFNpIG5vIGxvIHRyYWUgKGJhY2tlbmQgYcO6biBzaW4gTS0wNyBkZXNwbGVnYWRvLCBwLmVqLiBkZXYpLCBub1xuICAgKiBzZSBibG9xdWVhIGVsIGxvZ2luLiBDdWFuZG8gZWwgYmFja2VuZCBlY2hhIGBjbGllbnRfbm9uY2VgIGVuIHRvZG9zIGxhZG9zLCB1blxuICAgKiBjYWxsYmFjayBmb3JqYWRvIGNvbiB1biBub25jZSBkaXN0aW50byBzw60gc2UgcmVjaGF6YS4gVW4gcGF5bG9hZCBmb3JqYWRvIHBvclxuICAgKiBYU1MgcXVlIE9NSVRBIGVsIG5vbmNlIG5vIHNlIGZyZW5hIHBvciBhY8OhLCBwZXJvIGlndWFsIHBhc2EgcG9yIGxhc1xuICAgKiB2YWxpZGFjaW9uZXMgZGUgdGlwby9mb3JtYSBkZSBgY2hlY2tMb2NhbFN0b3JhZ2VGYWxsYmFja2AuXG4gICAqL1xuICBwcml2YXRlIGlzTm9uY2VWYWxpZChkYXRhOiBPQXV0aENhbGxiYWNrRGF0YSk6IGJvb2xlYW4ge1xuICAgIC8vIE5vIGhheSBmbHVqbyBjb24gbm9uY2UgYWN0aXZvIChsZWdhY3kgLyBsaW5rIGZsb3cpIOKGkiBubyBibG9xdWVhci5cbiAgICBpZiAoIXRoaXMuZXhwZWN0ZWROb25jZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEVsIGNhbGxiYWNrIG5vIHRyYWUgbm9uY2UgKGJhY2tlbmQgc2luIE0tMDcpIOKGkiBubyBibG9xdWVhciAodHJhbnNpY2nDs24pLlxuICAgIGlmICghZGF0YT8ubm9uY2UpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBOb25jZSBwcmVzZW50ZSDihpIgZGViZSBjb2luY2lkaXIgY29uIGVsIGRlbCBmbHVqby5cbiAgICByZXR1cm4gZGF0YS5ub25jZSA9PT0gdGhpcy5leHBlY3RlZE5vbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYSBsYSBmb3JtYSBkZWwgcGF5bG9hZCBkZWwgY2FsbGJhY2sgKE0tMDcpOiBkZWJlIHNlciB1biBlcnJvciBvIHRva2Vuc1xuICAgKiBjb21vIG9iamV0by4gQmxvcXVlYSBpbnllY2Npb25lcyBtYWxmb3JtYWRhcyAocHJpbWl0aXZvcywgc2hhcGVzIGJhc3VyYSkuXG4gICAqL1xuICBwcml2YXRlIGlzQ2FsbGJhY2tTaGFwZVZhbGlkKGRhdGE6IE9BdXRoQ2FsbGJhY2tEYXRhKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaGFzRXJyb3IgPSAhIWRhdGEuZXJyb3IgJiYgdHlwZW9mIGRhdGEuZXJyb3IgPT09ICdvYmplY3QnO1xuICAgIGNvbnN0IGhhc1Rva2VucyA9ICEhZGF0YS50b2tlbnMgJiYgdHlwZW9mIGRhdGEudG9rZW5zID09PSAnb2JqZWN0JztcbiAgICByZXR1cm4gaGFzRXJyb3IgfHwgaGFzVG9rZW5zO1xuICB9XG59XG4iXX0=
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC9vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBVyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBVy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFFSCxNQUFNLE9BQU8sWUFBWTtJQWF2QixZQUNtRCxNQUFnQyxFQUN6RSxJQUFnQixFQUNoQixNQUFjO1FBRjJCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3pFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWZoQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUEyQyxJQUFJLENBQUM7UUFDOUQsd0JBQW1CLEdBQTBDLElBQUksQ0FBQztRQUNsRSxxQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO1FBQ3pEOzs7OztXQUtHO1FBQ0ssa0JBQWEsR0FBa0IsSUFBSSxDQUFDO0lBTXpDLENBQUM7SUFFSjs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsUUFBdUI7UUFDL0IsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQix5RUFBeUU7WUFDekUsNEVBQTRFO1lBQzVFLHlFQUF5RTtZQUN6RSxzRUFBc0U7WUFDdEUsd0VBQXdFO1lBQ3hFLDZFQUE2RTtZQUM3RSxnRkFBZ0Y7WUFDaEYsSUFBSSxDQUFDLHlCQUF5QixF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QUssRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELG9EQUFvRDtRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CLENBQUMsSUFBdUI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO1FBQ25FLE9BQU8sUUFBUSxJQUFJLFNBQVMsQ0FBQztJQUMvQixDQUFDOytHQWhkVSxZQUFZLGtCQWNELG1CQUFtQjttSEFkOUIsWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBZTdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBOZ1pvbmUsIE9wdGlvbmFsLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgT0F1dGhQcm92aWRlcixcbiAgT0F1dGhSZXN1bHQsXG4gIE9BdXRoRXJyb3IsXG4gIE9BdXRoQ2FsbGJhY2tEYXRhLFxuICBMaW5rZWRQcm92aWRlcixcbiAgSGFzUGFzc3dvcmRSZXNwb25zZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBPQXV0aCBwYXJhIGxvZ2luIHNvY2lhbC5cbiAqXG4gKiBJbXBsZW1lbnRhIGZsdWpvIE9BdXRoIHNlcnZlci1zaWRlIGNvbiBwb3B1cDpcbiAqIDEuIEZyb250ZW5kIGFicmUgcG9wdXAgaGFjaWEgYmFja2VuZFxuICogMi4gQmFja2VuZCByZWRpcmlnZSBhIHByb3ZpZGVyIChHb29nbGUsIEFwcGxlLCBNaWNyb3NvZnQpXG4gKiAzLiBVc3VhcmlvIGF1dG9yaXphXG4gKiA0LiBCYWNrZW5kIGludGVyY2FtYmlhIGNvZGUsIGdlbmVyYSBKV1QsIHJlZGlyaWdlIGNvbiB0b2tlbnNcbiAqIDUuIFBvcHVwIGVudsOtYSB0b2tlbnMgYSB2ZW50YW5hIHBhZHJlIHZpYSBwb3N0TWVzc2FnZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBPQXV0aFNlcnZpY2UsIEF1dGhTZXJ2aWNlIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IHtcbiAqICAgcHJpdmF0ZSBvYXV0aCA9IGluamVjdChPQXV0aFNlcnZpY2UpO1xuICogICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICpcbiAqICAgYXN5bmMgbG9naW5XaXRoR29vZ2xlKCkge1xuICogICAgIHRoaXMub2F1dGguc3RhcnRGbG93KCdnb29nbGUnKS5zdWJzY3JpYmUoe1xuICogICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICogICAgICAgICAvLyBUb2tlbnMgcmVjaWJpZG9zLCBndWFyZGFyIGVuIGF1dGggc3RhdGVcbiAqICAgICAgICAgdGhpcy5hdXRoLmhhbmRsZU9BdXRoU3VjY2VzcyhyZXN1bHQpO1xuICogICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gKiAgICAgICB9LFxuICogICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICogICAgICAgICBjb25zb2xlLmVycm9yKCdPQXV0aCBmYWlsZWQ6JywgZXJyb3IpO1xuICogICAgICAgfVxuICogICAgIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtZXNzYWdlSGFuZGxlcjogKChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNoZWNrQ2xvc2VkSW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGJyb2FkY2FzdENoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWwgfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIE5vbmNlIGRlbCBmbHVqbyBPQXV0aCBlbiBjdXJzbyAoTS0wNykuIFZpdmUgU09MTyBlbiBtZW1vcmlhIOKAlCB1biBYU1Mgbm8gbG9cbiAgICogcHVlZGUgbGVlciBkZSBsb2NhbFN0b3JhZ2Uvc2Vzc2lvblN0b3JhZ2UuIFZpYWphIGFsIGJhY2tlbmQgKGNsaWVudF9ub25jZSksXG4gICAqIHZ1ZWx2ZSBlbiBlbCBjYWxsYmFjaywgeSBzZSB2ZXJpZmljYSBhY8OhIOKGkiByZWNoYXphIHVuIG9hdXRoX2NhbGxiYWNrX2RhdGFcbiAgICogZm9yamFkbyBwb3IgWFNTLlxuICAgKi9cbiAgcHJpdmF0ZSBleHBlY3RlZE5vbmNlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyB8IG51bGwsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBJbmljaWEgZmx1am8gT0F1dGggZW4gcG9wdXAuXG4gICAqIFJldG9ybmEgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgY3VhbmRvIGVsIHVzdWFyaW8gY29tcGxldGEgZWwgZmx1am8uXG4gICAqXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZlZWRvciBPQXV0aCAoJ2dvb2dsZScsICdhcHBsZScsICdtaWNyb3NvZnQnKVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBPQXV0aFJlc3VsdCBvIGVycm9yXG4gICAqL1xuICBzdGFydEZsb3cocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPE9BdXRoUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIC8vIE5vbmNlIGRlIGZsdWpvIChNLTA3KTogdml2ZSBzb2xvIGVuIGVzdGUgb2JqZXRvIChubyBlbiBzdG9yYWdlKSwgdmlhamFcbiAgICAgIC8vIGFsIGJhY2tlbmQgZW4gY2xpZW50X25vbmNlIHkgdnVlbHZlIGVuIGVsIGNhbGxiYWNrLiBFbCBvcGVuZXIgbG8gdmVyaWZpY2FcbiAgICAgIC8vIOKGkiB1biBvYXV0aF9jYWxsYmFja19kYXRhIGZvcmphZG8gZW4gbG9jYWxTdG9yYWdlIHBvciBYU1Mgbm8gbG8gY29ub2NlLlxuICAgICAgLy8gTGltcGlhciBkYXRvcyBzdGFsZSBkZSBpbnRlbnRvcyBhbnRlcmlvcmVzIEFOVEVTIGRlIGFicmlyIGVsIHBvcHVwLlxuICAgICAgLy8gU2luIGVzdG8sIHVuIGludGVudG8gcHJldmlvIGZhbGxpZG8gZGVqYSBkYXRvcyBlbiBsb2NhbFN0b3JhZ2UgcXVlIGVsXG4gICAgICAvLyBpbnRlcnZhbG8gZGUgZXN0ZSBpbnRlbnRvIGVuY3VlbnRyYSBpbm1lZGlhdGFtZW50ZSBjb21vIFwiZGVtYXNpYWRvIHZpZWpvc1wiXG4gICAgICAvLyB5IGRlc2NhcnRhLCBpbXBpZGllbmRvIHF1ZSBsb3MgZGF0b3MgZnJlc2NvcyBkZWwgbnVldm8gcG9wdXAgc2VhbiBkZXRlY3RhZG9zLlxuICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG5cbiAgICAgIGNvbnN0IG5vbmNlID0gdGhpcy5nZW5lcmF0ZU5vbmNlKCk7XG4gICAgICB0aGlzLmV4cGVjdGVkTm9uY2UgPSBub25jZTtcblxuICAgICAgLy8gcG9wdXA9dHJ1ZSBzb2JyZXZpdmUgZWwgYm91bmNlIGNyb3NzLW9yaWdpbiAoR29vZ2xlL01TIGJvcnJhbiB3aW5kb3cubmFtZVxuICAgICAgLy8gcG9yIHByaXZhY2lkYWQpLiBFbCBiYWNrZW5kIGxvIHJlZW52w61hIGVuIGVsIHJlZGlyZWN0IGZpbmFsIHbDrWEgYXBwZW5kUGFyYW1zLlxuICAgICAgY29uc3QgcmVkaXJlY3RVcmkgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hdXRoL29hdXRoL2NhbGxiYWNrP3BvcHVwPXRydWVgO1xuICAgICAgY29uc3Qgc3RhcnRVcmwgPSBgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoLyR7cHJvdmlkZXJ9L3N0YXJ0P3JlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVyaSl9JmNsaWVudF9ub25jZT0ke2VuY29kZVVSSUNvbXBvbmVudChub25jZSl9YDtcblxuICAgICAgLy8gQWJyaXIgcG9wdXAgY2VudHJhZG9cbiAgICAgIGNvbnN0IHdpZHRoID0gNTAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gNjAwO1xuICAgICAgY29uc3QgbGVmdCA9IHdpbmRvdy5zY3JlZW5YICsgKHdpbmRvdy5vdXRlcldpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JlZW5ZICsgKHdpbmRvdy5vdXRlckhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBgd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSxsZWZ0PSR7bGVmdH0sdG9wPSR7dG9wfSxwb3B1cD15ZXNgO1xuXG4gICAgICB0aGlzLnBvcHVwID0gd2luZG93Lm9wZW4oc3RhcnRVcmwsICdvYXV0aCcsIGZlYXR1cmVzKTtcblxuICAgICAgaWYgKCF0aGlzLnBvcHVwKSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICBjb2RlOiAnUE9QVVBfQkxPQ0tFRCcsXG4gICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICdFbCBuYXZlZ2Fkb3IgYmxvcXVlw7MgbGEgdmVudGFuYSBlbWVyZ2VudGUuIFBvciBmYXZvciwgcGVybWl0ZSBwb3B1cHMgcGFyYSBlc3RlIHNpdGlvLicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICAgIH1cblxuICAgICAgLy8gRXNjdWNoYXIgbWVuc2FqZXMgZGVsIHBvcHVwXG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgICAgLy8gVmFsaWRhciBvcmlnZW5cbiAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXIgdGlwbyBkZSBtZW5zYWplXG4gICAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhIGFzIE9BdXRoQ2FsbGJhY2tEYXRhO1xuICAgICAgICBpZiAoZGF0YT8udHlwZSAhPT0gJ29hdXRoLWNhbGxiYWNrJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZlcmlmaWNhciBlbCBub25jZSBkZWwgZmx1am8gKE0tMDcpOiBzaSBubyBjb2luY2lkZSwgbm8gZXMgbnVlc3Ryb1xuICAgICAgICAvLyBjYWxsYmFjayDihpIgaWdub3JhciAobm8gY29uc3VtaXIgZWwgb2JzZXJ2YWJsZSkuXG4gICAgICAgIGlmICghdGhpcy5pc05vbmNlVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW1waWFyXG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuXG4gICAgICAgIC8vIEVtaXRpciByZXN1bHRhZG8gZGVudHJvIGRlIE5nWm9uZSBwYXJhIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcihkYXRhLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudG9rZW5zKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KGRhdGEudG9rZW5zKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgY29kZTogJ0lOVkFMSURfUkVTUE9OU0UnLFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVzcHVlc3RhIGludsOhbGlkYSBkZWwgc2Vydmlkb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgLy8gQnJvYWRjYXN0Q2hhbm5lbDogY2FuYWwgYWRpY2lvbmFsIGltbXVuZSBhIENPT1AgKGZ1bmNpb25hIGVudHJlIG1pc21hXG4gICAgICAvLyBvcmlnaW4gc2luIGltcG9ydGFyIGVsIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXApLiBFcyBlbCBjYW5hbCBtw6FzIGZpYWJsZVxuICAgICAgLy8gY3VhbmRvIENPT1Agc2V2ZXIgZWwgbGluayBvcGVuZXLihpJwb3B1cCBhbCBwYXNhciBwb3IgR29vZ2xlL01TLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ3ZhbHRlY2gtb2F1dGgtY2FsbGJhY2snKTtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsLm9ubWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgICAgaWYgKGRhdGE/LnR5cGUgIT09ICdvYXV0aC1jYWxsYmFjaycpIHJldHVybjtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNOb25jZVZhbGlkKGRhdGEpKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG4gICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnRva2Vucykge1xuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGRhdGEudG9rZW5zKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnSU5WQUxJRF9SRVNQT05TRScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Jlc3B1ZXN0YSBpbnbDoWxpZGEgZGVsIHNlcnZpZG9yIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBCcm9hZGNhc3RDaGFubmVsIG5vIGRpc3BvbmlibGUgKGNvbnRleHRvcyBtdXkgcmVzdHJpbmdpZG9zKSDigJQgaWdub3JhclxuICAgICAgfVxuXG4gICAgICAvLyBQb2xsaW5nIGRlIGxvY2FsU3RvcmFnZSAoQ09PUCB3b3JrYXJvdW5kIC0gbm8gcG9kZW1vcyBkZXRlY3RhciBwb3B1cC5jbG9zZWQpXG4gICAgICAvLyBUYW1iacOpbiB2ZXJpZmljYSBzaSBlbCBwb3B1cCBzZSBjZXJyw7MgbWFudWFsbWVudGVcbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgLy8gUHJpbWVybyB2ZXJpZmljYXIgbG9jYWxTdG9yYWdlIChmdW5jaW9uYSBhdW5xdWUgQ09PUCBibG9xdWVlIHRvZG8pXG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSB0aGlzLmNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcbiAgICAgICAgaWYgKHN0b3JlZERhdGEpIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN0b3JlZERhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioc3RvcmVkRGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0b3JlZERhdGEudG9rZW5zKSB7XG4gICAgICAgICAgICAgIC8vIEdhdGUgZGUgZGlhZ27Ds3N0aWNvOiBsYSBtZXRhZGF0YSBkZSB0b2tlbnMgKGtleXMsIHByZXNlbmNpYSB5XG4gICAgICAgICAgICAgIC8vIGxvbmdpdHVkIGRlbCBmaXJlYmFzZVRva2VuKSBubyBkZWJlIGZpbHRyYXJzZSBhIGxhIGNvbnNvbGEgZW5cbiAgICAgICAgICAgICAgLy8gcHJvZHVjY2nDs24gKEw0IGRlbCBhdWRpdCkuIFNvbG8gZW4gZGV2LlxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoU2VydmljZV0gUmV0cmlldmVkIHRva2VucyBmcm9tIGxvY2FsU3RvcmFnZSBmYWxsYmFjaycsIHtcbiAgICAgICAgICAgICAgICAgIGtleXM6IE9iamVjdC5rZXlzKHN0b3JlZERhdGEudG9rZW5zKSxcbiAgICAgICAgICAgICAgICAgIGhhc0ZpcmViYXNlVG9rZW46ICEhc3RvcmVkRGF0YS50b2tlbnMuZmlyZWJhc2VUb2tlbixcbiAgICAgICAgICAgICAgICAgIGZpcmViYXNlVG9rZW5MZW5ndGg6IHN0b3JlZERhdGEudG9rZW5zLmZpcmViYXNlVG9rZW4/Lmxlbmd0aCA/PyAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoc3RvcmVkRGF0YS50b2tlbnMpO1xuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6ICdJTlZBTElEX1JFU1BPTlNFJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVzcHVlc3RhIGludsOhbGlkYSBkZWwgc2Vydmlkb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEludGVudGFyIHZlcmlmaWNhciBzaSBwb3B1cCBzZSBjZXJyw7MgKHB1ZWRlIGZhbGxhciBwb3IgQ09PUClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAodGhpcy5wb3B1cD8uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnUE9QVVBfQ0xPU0VEJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2UgY2VycsOzIGxhIHZlbnRhbmEgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBDT09QIGJsb3F1ZWEgYWNjZXNvIGEgcG9wdXAuY2xvc2VkIC0gaWdub3JhciB5IHNlZ3VpciBjb24gcG9sbGluZ1xuICAgICAgICB9XG4gICAgICB9LCAzMDApO1xuXG4gICAgICAvLyBDbGVhbnVwIGN1YW5kbyBlbCBvYnNlcnZhYmxlIHNlIGRlc3RydXllXG4gICAgICByZXR1cm4gKCkgPT4gdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhIGZsdWpvIGRlIGxpbmtpbmcgcGFyYSB2aW5jdWxhciB1biBwcm92ZWVkb3IgYWRpY2lvbmFsLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgdXN1YXJpbyBlc3TDqSBhdXRlbnRpY2Fkby5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyIC0gUHJvdmVlZG9yIE9BdXRoIGEgdmluY3VsYXJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgY3VhbmRvIHNlIGNvbXBsZXRhIGVsIGxpbmtpbmdcbiAgICovXG4gIHN0YXJ0TGlua0Zsb3cocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPE9BdXRoUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXV0aC9vYXV0aC9jYWxsYmFjaz9wb3B1cD10cnVlYDtcbiAgICAgIGNvbnN0IHN0YXJ0VXJsID0gYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC9saW5rLyR7cHJvdmlkZXJ9L3N0YXJ0P3JlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVyaSl9YDtcblxuICAgICAgY29uc3Qgd2lkdGggPSA1MDA7XG4gICAgICBjb25zdCBoZWlnaHQgPSA2MDA7XG4gICAgICBjb25zdCBsZWZ0ID0gd2luZG93LnNjcmVlblggKyAod2luZG93Lm91dGVyV2lkdGggLSB3aWR0aCkgLyAyO1xuICAgICAgY29uc3QgdG9wID0gd2luZG93LnNjcmVlblkgKyAod2luZG93Lm91dGVySGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGB3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LGxlZnQ9JHtsZWZ0fSx0b3A9JHt0b3B9LHBvcHVwPXllc2A7XG5cbiAgICAgIHRoaXMucG9wdXAgPSB3aW5kb3cub3BlbihzdGFydFVybCwgJ29hdXRoLWxpbmsnLCBmZWF0dXJlcyk7XG5cbiAgICAgIGlmICghdGhpcy5wb3B1cCkge1xuICAgICAgICBvYnNlcnZlci5lcnJvcih7XG4gICAgICAgICAgY29kZTogJ1BPUFVQX0JMT0NLRUQnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdFbCBuYXZlZ2Fkb3IgYmxvcXVlw7MgbGEgdmVudGFuYSBlbWVyZ2VudGUnLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge307IC8vIGNsZWFudXAgZnVuY3Rpb25cbiAgICAgIH1cblxuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW4gIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHJldHVybjtcblxuICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YSBhcyBPQXV0aENhbGxiYWNrRGF0YTtcbiAgICAgICAgaWYgKGRhdGE/LnR5cGUgIT09ICdvYXV0aC1jYWxsYmFjaycpIHJldHVybjtcblxuICAgICAgICB0aGlzLmNsZWFudXAoKTtcblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcihkYXRhLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChkYXRhLnRva2VucyB8fCAoe30gYXMgT0F1dGhSZXN1bHQpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlSGFuZGxlcik7XG5cbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucG9wdXA/LmNsb3NlZCkge1xuICAgICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcih7XG4gICAgICAgICAgICAgIGNvZGU6ICdQT1BVUF9DTE9TRUQnLFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnU2UgY2VycsOzIGxhIHZlbnRhbmEgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgNTAwKTtcblxuICAgICAgcmV0dXJuICgpID0+IHRoaXMuY2xlYW51cCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbG9zIHByb3ZlZWRvcmVzIE9BdXRoIHZpbmN1bGFkb3MgYWwgdXN1YXJpby5cbiAgICovXG4gIGdldExpbmtlZFByb3ZpZGVycygpOiBPYnNlcnZhYmxlPExpbmtlZFByb3ZpZGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PHsgcHJvdmlkZXJzOiBMaW5rZWRQcm92aWRlcltdIH0+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvcHJvdmlkZXJzYClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ0ZFVENIX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgb2J0ZW5lciBwcm92ZWVkb3JlcyB2aW5jdWxhZG9zJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSBhcyB1bmtub3duIGFzIE9ic2VydmFibGU8TGlua2VkUHJvdmlkZXJbXT47XG4gIH1cblxuICAvKipcbiAgICogRGVzdmluY3VsYSB1biBwcm92ZWVkb3IgT0F1dGguXG4gICAqL1xuICB1bmxpbmtQcm92aWRlcihwcm92aWRlcjogT0F1dGhQcm92aWRlcik6IE9ic2VydmFibGU8eyBzdWNjZXNzOiBib29sZWFuIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4oYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC91bmxpbmtgLCB7IHByb3ZpZGVyIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdVTkxJTktfRVJST1InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCBkZXN2aW5jdWxhciBwcm92ZWVkb3InLFxuICAgICAgICAgICAgICB9KSBhcyBPQXV0aEVycm9yXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBjb250cmFzZcOxYSBwYXJhIHVzdWFyaW9zIHF1ZSBzb2xvIHRpZW5lbiBPQXV0aC5cbiAgICovXG4gIHNldFBhc3N3b3JkKHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgc3VjY2VzczogYm9vbGVhbiB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuIH0+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvc2V0LXBhc3N3b3JkYCwgeyBwYXNzd29yZCB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnU0VUX1BBU1NXT1JEX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgZXN0YWJsZWNlciBjb250cmFzZcOxYScsXG4gICAgICAgICAgICAgIH0pIGFzIE9BdXRoRXJyb3JcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyB0aWVuZSBjb250cmFzZcOxYSBlc3RhYmxlY2lkYS5cbiAgICovXG4gIGhhc1Bhc3N3b3JkKCk6IE9ic2VydmFibGU8SGFzUGFzc3dvcmRSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SGFzUGFzc3dvcmRSZXNwb25zZT4oYCR7dGhpcy5jb25maWc/LmFwaVVybH0vdjIvYXV0aC9vYXV0aC9oYXMtcGFzc3dvcmRgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnQ0hFQ0tfUEFTU1dPUkRfRVJST1InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yPy5tZXNzYWdlIHx8ICdFcnJvciBhbCB2ZXJpZmljYXIgY29udHJhc2XDsWEnLFxuICAgICAgICAgICAgICB9KSBhcyBPQXV0aEVycm9yXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldmlzYSBsb2NhbFN0b3JhZ2UgcG9yIGRhdG9zIGRlIGNhbGxiYWNrIE9BdXRoIChmYWxsYmFjayBwYXJhIENPT1ApLlxuICAgKiBTb2xvIGFjZXB0YSBkYXRvcyByZWNpZW50ZXMgKMO6bHRpbW9zIDMwIHNlZ3VuZG9zKS5cbiAgICovXG4gIHByaXZhdGUgY2hlY2tMb2NhbFN0b3JhZ2VGYWxsYmFjaygpOiBPQXV0aENhbGxiYWNrRGF0YSB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aW1lc3RhbXAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJyk7XG4gICAgICBjb25zdCBkYXRhU3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnKTtcblxuICAgICAgaWYgKCF0aW1lc3RhbXAgfHwgIWRhdGFTdHIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvbG8gYWNlcHRhciBkYXRvcyBkZSBsb3Mgw7psdGltb3MgMzAgc2VndW5kb3NcbiAgICAgIGNvbnN0IGFnZSA9IERhdGUubm93KCkgLSBwYXJzZUludCh0aW1lc3RhbXAsIDEwKTtcbiAgICAgIGlmIChhZ2UgPiAzMDAwMCkge1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoU2VydmljZV0gbG9jYWxTdG9yYWdlIGRhdGEgdG9vIG9sZCwgaWdub3JpbmcnKTtcbiAgICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkYXRhU3RyKSBhcyBPQXV0aENhbGxiYWNrRGF0YTtcbiAgICAgIHRoaXMuY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpO1xuXG4gICAgICAvLyBFbCBjYW1pbm8gbG9jYWxTdG9yYWdlIGVzIGVsIHF1ZSB1biBYU1MgcG9kcsOtYSBmb3JqYXIgKE0tMDcpLiBFbFxuICAgICAgLy8gcG9zdE1lc3NhZ2UgeWEgdmFsaWRhIG9yaWdpbiArIHRpcG87IGFjw6EgcmVwbGljYW1vcyBlc2FzIGRlZmVuc2FzIHlcbiAgICAgIC8vIHN1bWFtb3MgbGEgdmVyaWZpY2FjacOzbiBkZWwgbm9uY2UgZGUgZmx1am8gKyBmb3JtYSBkZWwgcGF5bG9hZC5cbiAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzTm9uY2VWYWxpZChkYXRhKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc0NhbGxiYWNrU2hhcGVWYWxpZChkYXRhKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbT0F1dGhTZXJ2aWNlXSBFcnJvciByZWFkaW5nIGxvY2FsU3RvcmFnZSBmYWxsYmFjazonLCBlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZGF0b3MgZGUgZmFsbGJhY2sgZGUgbG9jYWxTdG9yYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckxvY2FsU3RvcmFnZUZhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb2F1dGhfY2FsbGJhY2tfZGF0YScpO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ29hdXRoX2NhbGxiYWNrX3RpbWVzdGFtcCcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSWdub3JhciBlcnJvcmVzIGRlIGxpbXBpZXphXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSByZWN1cnNvcyBkZWwgcG9wdXAuXG4gICAqL1xuICBwcml2YXRlIGNsZWFudXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlSGFuZGxlcik7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jaGVja0Nsb3NlZEludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCk7XG4gICAgICB0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJyb2FkY2FzdENoYW5uZWwpIHtcbiAgICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5jbG9zZSgpO1xuICAgICAgdGhpcy5icm9hZGNhc3RDaGFubmVsID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBMaW1waWFyIGRhdG9zIGRlbCBwb3B1cCBlbiBzdG9yYWdlIHBhcmEgbm8gY29udGFtaW5hciBlbCBwcsOzeGltbyBpbnRlbnRvLlxuICAgIHRoaXMuY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpO1xuXG4gICAgLy8gQ09PUCAoR29vZ2xlIHVzYSBzYW1lLW9yaWdpbikgcHVlZGUgc2V2ZXJhciBsYSBCQ0cgZGVsIHBvcHVwIOKGkiBhY2NlZGVyIGFcbiAgICAvLyBwb3B1cC5jbG9zZWQgbyBsbGFtYXIgcG9wdXAuY2xvc2UoKSBsYW56YSBTZWN1cml0eUVycm9yLiBTaW4gZXN0ZSB0cnkvY2F0Y2gsXG4gICAgLy8gY2xlYW51cCgpIHRpcmEsIG5nWm9uZS5ydW4oKSBudW5jYSBzZSBsbGFtYSB5IGVsIG9ic2VydmVyIG5vIGVtaXRlIOKGkiBzaW5cbiAgICAvLyBuYXZlZ2FjacOzbiBwb3N0LWxvZ2luIChidWcgaW50ZXJtaXRlbnRlKS5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMucG9wdXAgJiYgIXRoaXMucG9wdXAuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMucG9wdXAuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIENyb3NzLUJDRyBwb3IgQ09PUDogaWdub3JhciwgZWwgcG9wdXAgc2UgY2llcnJhIHNvbG8gdsOtYSBjbG9zZUFmdGVyRGVsYXlcbiAgICB9XG4gICAgdGhpcy5wb3B1cCA9IG51bGw7XG4gICAgLy8gRWwgbm9uY2UgeWEgZnVlIHZlcmlmaWNhZG8gKHNpIGNvcnJlc3BvbmTDrWEpIGFudGVzIGRlIGxsZWdhciBhY8OhOyBzZVxuICAgIC8vIGxpbXBpYSBwYXJhIG5vIHJldXNhcmxvIGVuIHVuIGZsdWpvIGZ1dHVybyAoTS0wNykuXG4gICAgdGhpcy5leHBlY3RlZE5vbmNlID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmEgdW4gbm9uY2UgYWxlYXRvcmlvIChDU1BSTkcpIHVybC1zYWZlIHBhcmEgZWwgZmx1am8gT0F1dGggKE0tMDcpLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5vbmNlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSgxNik7XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhieXRlcyk7XG4gICAgbGV0IGJpbiA9ICcnO1xuICAgIGJ5dGVzLmZvckVhY2goYiA9PiAoYmluICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYikpKTtcbiAgICAvLyBiYXNlNjR1cmwgc2luIHBhZGRpbmcuXG4gICAgcmV0dXJuIGJ0b2EoYmluKS5yZXBsYWNlKC9cXCsvZywgJy0nKS5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC89KyQvLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2EgcXVlIGVsIGNhbGxiYWNrIHRyYWlnYSBlbCBub25jZSBkZWwgZmx1am8gYWN0dWFsIChNLTA3KS5cbiAgICpcbiAgICogVG9sZXJhbnRlIGEgbGEgdHJhbnNpY2nDs246IHNvbG8gc2UgRVhJR0UgY29pbmNpZGVuY2lhIGN1YW5kbyBlbCBjYWxsYmFja1xuICAgKiB0cmFlIHVuIG5vbmNlLiBTaSBubyBsbyB0cmFlIChiYWNrZW5kIGHDum4gc2luIE0tMDcgZGVzcGxlZ2FkbywgcC5lai4gZGV2KSwgbm9cbiAgICogc2UgYmxvcXVlYSBlbCBsb2dpbi4gQ3VhbmRvIGVsIGJhY2tlbmQgZWNoYSBgY2xpZW50X25vbmNlYCBlbiB0b2RvcyBsYWRvcywgdW5cbiAgICogY2FsbGJhY2sgZm9yamFkbyBjb24gdW4gbm9uY2UgZGlzdGludG8gc8OtIHNlIHJlY2hhemEuIFVuIHBheWxvYWQgZm9yamFkbyBwb3JcbiAgICogWFNTIHF1ZSBPTUlUQSBlbCBub25jZSBubyBzZSBmcmVuYSBwb3IgYWPDoSwgcGVybyBpZ3VhbCBwYXNhIHBvciBsYXNcbiAgICogdmFsaWRhY2lvbmVzIGRlIHRpcG8vZm9ybWEgZGUgYGNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2tgLlxuICAgKi9cbiAgcHJpdmF0ZSBpc05vbmNlVmFsaWQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiBib29sZWFuIHtcbiAgICAvLyBObyBoYXkgZmx1am8gY29uIG5vbmNlIGFjdGl2byAobGVnYWN5IC8gbGluayBmbG93KSDihpIgbm8gYmxvcXVlYXIuXG4gICAgaWYgKCF0aGlzLmV4cGVjdGVkTm9uY2UpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBFbCBjYWxsYmFjayBubyB0cmFlIG5vbmNlIChiYWNrZW5kIHNpbiBNLTA3KSDihpIgbm8gYmxvcXVlYXIgKHRyYW5zaWNpw7NuKS5cbiAgICBpZiAoIWRhdGE/Lm5vbmNlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gTm9uY2UgcHJlc2VudGUg4oaSIGRlYmUgY29pbmNpZGlyIGNvbiBlbCBkZWwgZmx1am8uXG4gICAgcmV0dXJuIGRhdGEubm9uY2UgPT09IHRoaXMuZXhwZWN0ZWROb25jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGEgbGEgZm9ybWEgZGVsIHBheWxvYWQgZGVsIGNhbGxiYWNrIChNLTA3KTogZGViZSBzZXIgdW4gZXJyb3IgbyB0b2tlbnNcbiAgICogY29tbyBvYmpldG8uIEJsb3F1ZWEgaW55ZWNjaW9uZXMgbWFsZm9ybWFkYXMgKHByaW1pdGl2b3MsIHNoYXBlcyBiYXN1cmEpLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0NhbGxiYWNrU2hhcGVWYWxpZChkYXRhOiBPQXV0aENhbGxiYWNrRGF0YSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc0Vycm9yID0gISFkYXRhLmVycm9yICYmIHR5cGVvZiBkYXRhLmVycm9yID09PSAnb2JqZWN0JztcbiAgICBjb25zdCBoYXNUb2tlbnMgPSAhIWRhdGEudG9rZW5zICYmIHR5cGVvZiBkYXRhLnRva2VucyA9PT0gJ29iamVjdCc7XG4gICAgcmV0dXJuIGhhc0Vycm9yIHx8IGhhc1Rva2VucztcbiAgfVxufVxuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.179';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNzknO1xuIl19
|