@vendure/admin-ui 1.0.2 → 1.0.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.
- package/bundles/vendure-admin-ui-core.umd.js +2 -2
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.min.js +1 -1
- package/bundles/vendure-admin-ui-core.umd.min.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +15 -2
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.min.js +1 -1
- package/bundles/vendure-admin-ui-order.umd.min.js.map +1 -1
- package/core/common/generated-types.d.ts +8 -2
- package/core/common/version.d.ts +1 -1
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/esm2015/core/common/generated-types.js +1 -1
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/data/definitions/order-definitions.js +11 -1
- package/esm2015/order/components/order-detail/order-detail.component.js +17 -4
- package/fesm2015/vendure-admin-ui-core.js +11 -1
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +16 -3
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +2 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Auto-generated by the set-version.js script.
|
|
2
|
-
export const ADMIN_UI_VERSION = '1.0.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const ADMIN_UI_VERSION = '1.0.3';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcxLjAuMyc7XG4iXX0=
|
|
@@ -295,6 +295,16 @@ export const CREATE_FULFILLMENT = gql `
|
|
|
295
295
|
mutation CreateFulfillment($input: FulfillOrderInput!) {
|
|
296
296
|
addFulfillmentToOrder(input: $input) {
|
|
297
297
|
...Fulfillment
|
|
298
|
+
... on CreateFulfillmentError {
|
|
299
|
+
errorCode
|
|
300
|
+
message
|
|
301
|
+
fulfillmentHandlerError
|
|
302
|
+
}
|
|
303
|
+
... on FulfillmentStateTransitionError {
|
|
304
|
+
errorCode
|
|
305
|
+
message
|
|
306
|
+
transitionError
|
|
307
|
+
}
|
|
298
308
|
...ErrorResult
|
|
299
309
|
}
|
|
300
310
|
}
|
|
@@ -443,4 +453,4 @@ export const ADD_MANUAL_PAYMENT_TO_ORDER = gql `
|
|
|
443
453
|
${ORDER_DETAIL_FRAGMENT}
|
|
444
454
|
${ERROR_RESULT_FRAGMENT}
|
|
445
455
|
`;
|
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Q0FVakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNDckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpSGxDLGlCQUFpQjtNQUNqQixzQkFBc0I7TUFDdEIsb0JBQW9CO01BQ3BCLG1CQUFtQjtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O01BUzVCLGNBQWM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU10QixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BdUIzQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnhDLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTy9CLG9CQUFvQjtNQUNwQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPekIscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU96QixlQUFlO01BQ2YscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTzFCLGVBQWU7TUFDZixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJuQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9uQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O01BVXRDLGNBQWM7TUFDZCxxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXZDLGNBQWM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztNQVU1QyxvQkFBb0I7TUFDcEIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7O0NBV25DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3pCLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU94QyxxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBFUlJPUl9SRVNVTFRfRlJBR01FTlQgfSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTQ09VTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBEaXNjb3VudCBvbiBEaXNjb3VudCB7XHJcbiAgICAgICAgYWRqdXN0bWVudFNvdXJjZVxyXG4gICAgICAgIGFtb3VudFxyXG4gICAgICAgIGFtb3VudFdpdGhUYXhcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIHR5cGVcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUZVTkRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBSZWZ1bmQgb24gUmVmdW5kIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXRlbXNcclxuICAgICAgICBzaGlwcGluZ1xyXG4gICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgcGF5bWVudElkXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfQUREUkVTU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyQWRkcmVzcyBvbiBPcmRlckFkZHJlc3Mge1xyXG4gICAgICAgIGZ1bGxOYW1lXHJcbiAgICAgICAgY29tcGFueVxyXG4gICAgICAgIHN0cmVldExpbmUxXHJcbiAgICAgICAgc3RyZWV0TGluZTJcclxuICAgICAgICBjaXR5XHJcbiAgICAgICAgcHJvdmluY2VcclxuICAgICAgICBwb3N0YWxDb2RlXHJcbiAgICAgICAgY291bnRyeVxyXG4gICAgICAgIGNvdW50cnlDb2RlXHJcbiAgICAgICAgcGhvbmVOdW1iZXJcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyIG9uIE9yZGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG9yZGVyUGxhY2VkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgdG90YWxcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBjdXN0b21lciB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzaGlwcGluZ0xpbmVzIHtcclxuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZVTEZJTExNRU5UX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRnVsZmlsbG1lbnQgb24gRnVsZmlsbG1lbnQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgb3JkZXJJdGVtcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyYWNraW5nQ29kZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0xJTkVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlckxpbmUgb24gT3JkZXJMaW5lIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb2R1Y3RWYXJpYW50IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgdHJhY2tJbnZlbnRvcnlcclxuICAgICAgICAgICAgc3RvY2tPbkhhbmRcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlzY291bnRzIHtcclxuICAgICAgICAgICAgLi4uRGlzY291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgdW5pdFByaWNlXHJcbiAgICAgICAgdW5pdFByaWNlV2l0aFRheFxyXG4gICAgICAgIHByb3JhdGVkVW5pdFByaWNlXHJcbiAgICAgICAgcHJvcmF0ZWRVbml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHVuaXRQcmljZVxyXG4gICAgICAgICAgICB1bml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgICAgIHRheFJhdGVcclxuICAgICAgICAgICAgcmVmdW5kSWRcclxuICAgICAgICAgICAgY2FuY2VsbGVkXHJcbiAgICAgICAgICAgIGZ1bGZpbGxtZW50IHtcclxuICAgICAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGluZVByaWNlXHJcbiAgICAgICAgbGluZVRheFxyXG4gICAgICAgIGxpbmVQcmljZVdpdGhUYXhcclxuICAgICAgICBkaXNjb3VudGVkTGluZVByaWNlXHJcbiAgICAgICAgZGlzY291bnRlZExpbmVQcmljZVdpdGhUYXhcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9ERVRBSUxfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlckRldGFpbCBvbiBPcmRlciB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgYWN0aXZlXHJcbiAgICAgICAgY3VzdG9tZXIge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgbGFzdE5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGluZXMge1xyXG4gICAgICAgICAgICAuLi5PcmRlckxpbmVcclxuICAgICAgICB9XHJcbiAgICAgICAgc3VyY2hhcmdlcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICBwcmljZVxyXG4gICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgICAgICBkaXNjb3VudHMge1xyXG4gICAgICAgICAgICAuLi5EaXNjb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9tb3Rpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY291cG9uQ29kZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzdWJUb3RhbFxyXG4gICAgICAgIHN1YlRvdGFsV2l0aFRheFxyXG4gICAgICAgIHRvdGFsXHJcbiAgICAgICAgdG90YWxXaXRoVGF4XHJcbiAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgc2hpcHBpbmdcclxuICAgICAgICBzaGlwcGluZ1dpdGhUYXhcclxuICAgICAgICBzaGlwcGluZ0xpbmVzIHtcclxuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlckNvZGVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGF4U3VtbWFyeSB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIHRheEJhc2VcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgICAgICB0YXhUb3RhbFxyXG4gICAgICAgIH1cclxuICAgICAgICBzaGlwcGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3Mge1xyXG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF5bWVudHMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICBhbW91bnRcclxuICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlXHJcbiAgICAgICAgICAgIG1ldGFkYXRhXHJcbiAgICAgICAgICAgIHJlZnVuZHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgc3RhdGVcclxuICAgICAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgICAgICAgICBhZGp1c3RtZW50XHJcbiAgICAgICAgICAgICAgICB0b3RhbFxyXG4gICAgICAgICAgICAgICAgcGF5bWVudElkXHJcbiAgICAgICAgICAgICAgICByZWFzb25cclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICAgICAgICAgIG1ldGhvZFxyXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgICAgIG9yZGVySXRlbXMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZnVsZmlsbG1lbnRzIHtcclxuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbW9kaWZpY2F0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICBpc1NldHRsZWRcclxuICAgICAgICAgICAgcHJpY2VDaGFuZ2VcclxuICAgICAgICAgICAgbm90ZVxyXG4gICAgICAgICAgICBwYXltZW50IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBhbW91bnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcmRlckl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVmdW5kIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBwYXltZW50SWRcclxuICAgICAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3VyY2hhcmdlcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtESVNDT1VOVF9GUkFHTUVOVH1cclxuICAgICR7T1JERVJfQUREUkVTU19GUkFHTUVOVH1cclxuICAgICR7RlVMRklMTE1FTlRfRlJBR01FTlR9XHJcbiAgICAke09SREVSX0xJTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJMaXN0KCRvcHRpb25zOiBPcmRlckxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgb3JkZXJzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXIoJGlkOiBJRCEpIHtcclxuICAgICAgICBvcmRlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VUVExFX1BBWU1FTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBTZXR0bGVQYXltZW50KCRpZDogSUQhKSB7XHJcbiAgICAgICAgc2V0dGxlUGF5bWVudChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgICAgICAgICBhbW91bnRcclxuICAgICAgICAgICAgICAgIG1ldGhvZFxyXG4gICAgICAgICAgICAgICAgc3RhdGVcclxuICAgICAgICAgICAgICAgIG1ldGFkYXRhXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIFNldHRsZVBheW1lbnRFcnJvciB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50RXJyb3JNZXNzYWdlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fUEFZTUVOVF9UT19TVEFURSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFRyYW5zaXRpb25QYXltZW50VG9TdGF0ZSgkaWQ6IElEISwgJHN0YXRlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvblBheW1lbnRUb1N0YXRlKGlkOiAkaWQsIHN0YXRlOiAkc3RhdGUpIHtcclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0ZVTEZJTExNRU5UID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlRnVsZmlsbG1lbnQoJGlucHV0OiBGdWxmaWxsT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBhZGRGdWxmaWxsbWVudFRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5GdWxmaWxsbWVudFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RlVMRklMTE1FTlRfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDQU5DRUxfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDYW5jZWxPcmRlcigkaW5wdXQ6IENhbmNlbE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgY2FuY2VsT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVGVU5EX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVmdW5kT3JkZXIoJGlucHV0OiBSZWZ1bmRPcmRlcklucHV0ISkge1xyXG4gICAgICAgIHJlZnVuZE9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUmVmdW5kXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtSRUZVTkRfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTRVRUTEVfUkVGVU5EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gU2V0dGxlUmVmdW5kKCRpbnB1dDogU2V0dGxlUmVmdW5kSW5wdXQhKSB7XHJcbiAgICAgICAgc2V0dGxlUmVmdW5kKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUmVmdW5kXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtSRUZVTkRfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVJfSElTVE9SWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldE9yZGVySGlzdG9yeSgkaWQ6IElEISwgJG9wdGlvbnM6IEhpc3RvcnlFbnRyeUxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgb3JkZXIoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBoaXN0b3J5KG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgaXNQdWJsaWNcclxuICAgICAgICAgICAgICAgICAgICBhZG1pbmlzdHJhdG9yIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfTk9URV9UT19PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE5vdGVUb09yZGVyKCRpbnB1dDogQWRkTm90ZVRvT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBhZGROb3RlVG9PcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9PUkRFUl9OT1RFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlT3JkZXJOb3RlKCRpbnB1dDogVXBkYXRlT3JkZXJOb3RlSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlT3JkZXJOb3RlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICBpc1B1YmxpY1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfT1JERVJfTk9URSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZU9yZGVyTm90ZSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZU9yZGVyTm90ZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fT1JERVJfVE9fU1RBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uT3JkZXJUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcclxuICAgICAgICB0cmFuc2l0aW9uT3JkZXJUb1N0YXRlKGlkOiAkaWQsIHN0YXRlOiAkc3RhdGUpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICAgICAgLi4uIG9uIE9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX09SREVSX0NVU1RPTV9GSUVMRFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVPcmRlckN1c3RvbUZpZWxkcygkaW5wdXQ6IFVwZGF0ZU9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgc2V0T3JkZXJDdXN0b21GaWVsZHMoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlclxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9GVUxGSUxMTUVOVF9UT19TVEFURSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFRyYW5zaXRpb25GdWxmaWxsbWVudFRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xyXG4gICAgICAgIHRyYW5zaXRpb25GdWxmaWxsbWVudFRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xyXG4gICAgICAgICAgICAuLi5GdWxmaWxsbWVudFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gRnVsZmlsbG1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RlVMRklMTE1FTlRfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVJfU1VNTUFSWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldE9yZGVyU3VtbWFyeSgkc3RhcnQ6IERhdGVUaW1lISwgJGVuZDogRGF0ZVRpbWUhKSB7XHJcbiAgICAgICAgb3JkZXJzKG9wdGlvbnM6IHsgZmlsdGVyOiB7IG9yZGVyUGxhY2VkQXQ6IHsgYmV0d2VlbjogeyBzdGFydDogJHN0YXJ0LCBlbmQ6ICRlbmQgfSB9IH0gfSkge1xyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICB0b3RhbFxyXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTU9ESUZZX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gTW9kaWZ5T3JkZXIoJGlucHV0OiBNb2RpZnlPcmRlcklucHV0ISkge1xyXG4gICAgICAgIG1vZGlmeU9yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9NQU5VQUxfUEFZTUVOVF9UT19PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE1hbnVhbFBheW1lbnQoJGlucHV0OiBNYW51YWxQYXltZW50SW5wdXQhKSB7XHJcbiAgICAgICAgYWRkTWFudWFsUGF5bWVudFRvT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcbiJdfQ==
|
|
456
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Q0FVakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNDckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpSGxDLGlCQUFpQjtNQUNqQixzQkFBc0I7TUFDdEIsb0JBQW9CO01BQ3BCLG1CQUFtQjtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O01BUzVCLGNBQWM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU10QixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BdUIzQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnhDLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztNQWlCL0Isb0JBQW9CO01BQ3BCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU96QixxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3pCLGVBQWU7TUFDZixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPMUIsZUFBZTtNQUNmLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FxQm5DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU1uQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVFuQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O0NBT25DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7TUFVdEMsY0FBYztNQUNkLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNdkMsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O01BVTVDLG9CQUFvQjtNQUNwQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Q0FXbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPekIscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3hDLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IEVSUk9SX1JFU1VMVF9GUkFHTUVOVCB9IGZyb20gJy4vc2hhcmVkLWRlZmluaXRpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBESVNDT1VOVF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IERpc2NvdW50IG9uIERpc2NvdW50IHtcclxuICAgICAgICBhZGp1c3RtZW50U291cmNlXHJcbiAgICAgICAgYW1vdW50XHJcbiAgICAgICAgYW1vdW50V2l0aFRheFxyXG4gICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgdHlwZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFRlVORF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFJlZnVuZCBvbiBSZWZ1bmQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBpdGVtc1xyXG4gICAgICAgIHNoaXBwaW5nXHJcbiAgICAgICAgYWRqdXN0bWVudFxyXG4gICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICBwYXltZW50SWRcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9BRERSRVNTX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgT3JkZXJBZGRyZXNzIG9uIE9yZGVyQWRkcmVzcyB7XHJcbiAgICAgICAgZnVsbE5hbWVcclxuICAgICAgICBjb21wYW55XHJcbiAgICAgICAgc3RyZWV0TGluZTFcclxuICAgICAgICBzdHJlZXRMaW5lMlxyXG4gICAgICAgIGNpdHlcclxuICAgICAgICBwcm92aW5jZVxyXG4gICAgICAgIHBvc3RhbENvZGVcclxuICAgICAgICBjb3VudHJ5XHJcbiAgICAgICAgY291bnRyeUNvZGVcclxuICAgICAgICBwaG9uZU51bWJlclxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgT3JkZXIgb24gT3JkZXIge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgb3JkZXJQbGFjZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICB0b3RhbFxyXG4gICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgIGN1c3RvbWVyIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgZmlyc3ROYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xyXG4gICAgICAgICAgICBzaGlwcGluZ01ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgRlVMRklMTE1FTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBGdWxmaWxsbWVudCBvbiBGdWxmaWxsbWVudCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBtZXRob2RcclxuICAgICAgICBvcmRlckl0ZW1zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJhY2tpbmdDb2RlXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfTElORV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyTGluZSBvbiBPcmRlckxpbmUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJvZHVjdFZhcmlhbnQge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgICAgICBzdG9ja09uSGFuZFxyXG4gICAgICAgIH1cclxuICAgICAgICBkaXNjb3VudHMge1xyXG4gICAgICAgICAgICAuLi5EaXNjb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICB1bml0UHJpY2VcclxuICAgICAgICB1bml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgcHJvcmF0ZWRVbml0UHJpY2VcclxuICAgICAgICBwcm9yYXRlZFVuaXRQcmljZVdpdGhUYXhcclxuICAgICAgICBxdWFudGl0eVxyXG4gICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgdW5pdFByaWNlXHJcbiAgICAgICAgICAgIHVuaXRQcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgdGF4UmF0ZVxyXG4gICAgICAgICAgICByZWZ1bmRJZFxyXG4gICAgICAgICAgICBjYW5jZWxsZWRcclxuICAgICAgICAgICAgZnVsZmlsbG1lbnQge1xyXG4gICAgICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsaW5lUHJpY2VcclxuICAgICAgICBsaW5lVGF4XHJcbiAgICAgICAgbGluZVByaWNlV2l0aFRheFxyXG4gICAgICAgIGRpc2NvdW50ZWRMaW5lUHJpY2VcclxuICAgICAgICBkaXNjb3VudGVkTGluZVByaWNlV2l0aFRheFxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0RFVEFJTF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyRGV0YWlsIG9uIE9yZGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBzdGF0ZVxyXG4gICAgICAgIG5leHRTdGF0ZXNcclxuICAgICAgICBhY3RpdmVcclxuICAgICAgICBjdXN0b21lciB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyTGluZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIHByaWNlXHJcbiAgICAgICAgICAgIHByaWNlV2l0aFRheFxyXG4gICAgICAgICAgICB0YXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpc2NvdW50cyB7XHJcbiAgICAgICAgICAgIC4uLkRpc2NvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb21vdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb3Vwb25Db2RlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN1YlRvdGFsXHJcbiAgICAgICAgc3ViVG90YWxXaXRoVGF4XHJcbiAgICAgICAgdG90YWxcclxuICAgICAgICB0b3RhbFdpdGhUYXhcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBzaGlwcGluZ1xyXG4gICAgICAgIHNoaXBwaW5nV2l0aFRheFxyXG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xyXG4gICAgICAgICAgICBzaGlwcGluZ01ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZnVsZmlsbG1lbnRIYW5kbGVyQ29kZVxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0YXhTdW1tYXJ5IHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgdGF4QmFzZVxyXG4gICAgICAgICAgICB0YXhSYXRlXHJcbiAgICAgICAgICAgIHRheFRvdGFsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoaXBwaW5nQWRkcmVzcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyQWRkcmVzc1xyXG4gICAgICAgIH1cclxuICAgICAgICBiaWxsaW5nQWRkcmVzcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyQWRkcmVzc1xyXG4gICAgICAgIH1cclxuICAgICAgICBwYXltZW50cyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICAgc3RhdGVcclxuICAgICAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2VcclxuICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgcmVmdW5kcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICAgICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgICAgICBwYXltZW50SWRcclxuICAgICAgICAgICAgICAgIHJlYXNvblxyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxyXG4gICAgICAgICAgICAgICAgb3JkZXJJdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmdWxmaWxsbWVudHMge1xyXG4gICAgICAgICAgICAuLi5GdWxmaWxsbWVudFxyXG4gICAgICAgIH1cclxuICAgICAgICBtb2RpZmljYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIGlzU2V0dGxlZFxyXG4gICAgICAgICAgICBwcmljZUNoYW5nZVxyXG4gICAgICAgICAgICBub3RlXHJcbiAgICAgICAgICAgIHBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9yZGVySXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZWZ1bmQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxyXG4gICAgICAgICAgICAgICAgdG90YWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0RJU0NPVU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtPUkRFUl9BRERSRVNTX0ZSQUdNRU5UfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7T1JERVJfTElORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVJTX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlckxpc3QoJG9wdGlvbnM6IE9yZGVyTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBvcmRlcnMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uT3JkZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVIgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlcigkaWQ6IElEISkge1xyXG4gICAgICAgIG9yZGVyKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTRVRUTEVfUEFZTUVOVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldHRsZVBheW1lbnQoJGlkOiBJRCEpIHtcclxuICAgICAgICBzZXR0bGVQYXltZW50KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gU2V0dGxlUGF5bWVudEVycm9yIHtcclxuICAgICAgICAgICAgICAgIHBheW1lbnRFcnJvck1lc3NhZ2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9QQVlNRU5UX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvblBheW1lbnRUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcclxuICAgICAgICB0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xyXG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgYW1vdW50XHJcbiAgICAgICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfRlVMRklMTE1FTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVGdWxmaWxsbWVudCgkaW5wdXQ6IEZ1bGZpbGxPcmRlcklucHV0ISkge1xyXG4gICAgICAgIGFkZEZ1bGZpbGxtZW50VG9PcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIC4uLiBvbiBDcmVhdGVGdWxmaWxsbWVudEVycm9yIHtcclxuICAgICAgICAgICAgICAgIGVycm9yQ29kZVxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgZnVsZmlsbG1lbnRIYW5kbGVyRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gRnVsZmlsbG1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICBlcnJvckNvZGVcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBTkNFTF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIENhbmNlbE9yZGVyKCRpbnB1dDogQ2FuY2VsT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBjYW5jZWxPcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUZVTkRfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZWZ1bmRPcmRlcigkaW5wdXQ6IFJlZnVuZE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgcmVmdW5kT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5SZWZ1bmRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1JFRlVORF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVFRMRV9SRUZVTkQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBTZXR0bGVSZWZ1bmQoJGlucHV0OiBTZXR0bGVSZWZ1bmRJbnB1dCEpIHtcclxuICAgICAgICBzZXR0bGVSZWZ1bmQoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5SZWZ1bmRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1JFRlVORF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9ISVNUT1JZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJIaXN0b3J5KCRpZDogSUQhLCAkb3B0aW9uczogSGlzdG9yeUVudHJ5TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBvcmRlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGhpc3Rvcnkob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBpc1B1YmxpY1xyXG4gICAgICAgICAgICAgICAgICAgIGFkbWluaXN0cmF0b3Ige1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9OT1RFX1RPX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTm90ZVRvT3JkZXIoJGlucHV0OiBBZGROb3RlVG9PcmRlcklucHV0ISkge1xyXG4gICAgICAgIGFkZE5vdGVUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX09SREVSX05PVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVPcmRlck5vdGUoJGlucHV0OiBVcGRhdGVPcmRlck5vdGVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVPcmRlck5vdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgICAgIGlzUHVibGljXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9PUkRFUl9OT1RFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlT3JkZXJOb3RlKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlT3JkZXJOb3RlKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9PUkRFUl9UT19TVEFURSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFRyYW5zaXRpb25PcmRlclRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xyXG4gICAgICAgIHRyYW5zaXRpb25PcmRlclRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xyXG4gICAgICAgICAgICAuLi5PcmRlclxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfT1JERVJfQ1VTVE9NX0ZJRUxEUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZU9yZGVyQ3VzdG9tRmllbGRzKCRpbnB1dDogVXBkYXRlT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBzZXRPcmRlckN1c3RvbUZpZWxkcyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0ZVTEZJTExNRU5UX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvbkZ1bGZpbGxtZW50VG9TdGF0ZSgkaWQ6IElEISwgJHN0YXRlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbkZ1bGZpbGxtZW50VG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9TVU1NQVJZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJTdW1tYXJ5KCRzdGFydDogRGF0ZVRpbWUhLCAkZW5kOiBEYXRlVGltZSEpIHtcclxuICAgICAgICBvcmRlcnMob3B0aW9uczogeyBmaWx0ZXI6IHsgb3JkZXJQbGFjZWRBdDogeyBiZXR3ZWVuOiB7IHN0YXJ0OiAkc3RhcnQsIGVuZDogJGVuZCB9IH0gfSB9KSB7XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNT0RJRllfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBNb2RpZnlPcmRlcigkaW5wdXQ6IE1vZGlmeU9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgbW9kaWZ5T3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUREX01BTlVBTF9QQVlNRU5UX1RPX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTWFudWFsUGF5bWVudCgkaW5wdXQ6IE1hbnVhbFBheW1lbnRJbnB1dCEpIHtcclxuICAgICAgICBhZGRNYW51YWxQYXltZW50VG9PcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuIl19
|
|
@@ -3,7 +3,7 @@ import { FormGroup } from '@angular/forms';
|
|
|
3
3
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
4
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|
5
5
|
import { BaseDetailComponent, DataService, EditNoteDialogComponent, ModalService, NotificationService, ServerConfigService, SortOrder, } from '@vendure/admin-ui/core';
|
|
6
|
-
import { summate } from '@vendure/common/lib/shared-utils';
|
|
6
|
+
import { assertNever, summate } from '@vendure/common/lib/shared-utils';
|
|
7
7
|
import { EMPTY, merge, of, Subject } from 'rxjs';
|
|
8
8
|
import { map, mapTo, startWith, switchMap, take } from 'rxjs/operators';
|
|
9
9
|
import { OrderTransitionService } from '../../providers/order-transition.service';
|
|
@@ -253,15 +253,28 @@ export class OrderDetailComponent extends BaseDetailComponent {
|
|
|
253
253
|
}), switchMap(result => this.refetchOrder(result).pipe(mapTo(result))))
|
|
254
254
|
.subscribe(result => {
|
|
255
255
|
if (result) {
|
|
256
|
-
|
|
256
|
+
const { addFulfillmentToOrder } = result;
|
|
257
|
+
switch (addFulfillmentToOrder.__typename) {
|
|
257
258
|
case 'Fulfillment':
|
|
258
259
|
this.notificationService.success(_('order.create-fulfillment-success'));
|
|
259
260
|
break;
|
|
260
261
|
case 'EmptyOrderLineSelectionError':
|
|
261
262
|
case 'InsufficientStockOnHandError':
|
|
262
263
|
case 'ItemsAlreadyFulfilledError':
|
|
263
|
-
|
|
264
|
+
case 'InvalidFulfillmentHandlerError':
|
|
265
|
+
this.notificationService.error(addFulfillmentToOrder.message);
|
|
264
266
|
break;
|
|
267
|
+
case 'FulfillmentStateTransitionError':
|
|
268
|
+
this.notificationService.error(addFulfillmentToOrder.transitionError);
|
|
269
|
+
break;
|
|
270
|
+
case 'CreateFulfillmentError':
|
|
271
|
+
this.notificationService.error(addFulfillmentToOrder.fulfillmentHandlerError);
|
|
272
|
+
break;
|
|
273
|
+
case undefined:
|
|
274
|
+
this.notificationService.error(JSON.stringify(addFulfillmentToOrder));
|
|
275
|
+
break;
|
|
276
|
+
default:
|
|
277
|
+
assertNever(addFulfillmentToOrder);
|
|
265
278
|
}
|
|
266
279
|
}
|
|
267
280
|
});
|
|
@@ -485,4 +498,4 @@ OrderDetailComponent.ctorParameters = () => [
|
|
|
485
498
|
{ type: ModalService },
|
|
486
499
|
{ type: OrderTransitionService }
|
|
487
500
|
];
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItZGV0YWlsL29yZGVyLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsbUJBQW1CLEVBR25CLFdBQVcsRUFDWCx1QkFBdUIsRUFLdkIsWUFBWSxFQUNaLG1CQUFtQixFQU9uQixtQkFBbUIsRUFDbkIsU0FBUyxHQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNuSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFP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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQmFzZURldGFpbENvbXBvbmVudCxcclxuICAgIENhbmNlbE9yZGVyLFxyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIEVkaXROb3RlRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgR2V0T3JkZXJIaXN0b3J5LFxyXG4gICAgR2V0T3JkZXJRdWVyeSxcclxuICAgIEhpc3RvcnlFbnRyeSxcclxuICAgIEhpc3RvcnlFbnRyeVR5cGUsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgT3JkZXIsXHJcbiAgICBPcmRlckRldGFpbCxcclxuICAgIE9yZGVyRGV0YWlsRnJhZ21lbnQsXHJcbiAgICBPcmRlckxpbmVGcmFnbWVudCxcclxuICAgIFJlZnVuZCxcclxuICAgIFJlZnVuZE9yZGVyLFxyXG4gICAgU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgIFNvcnRPcmRlcixcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgcGljayB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvcGljayc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyLCBzdW1tYXRlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgbWFwVG8sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgT3JkZXJUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9vcmRlci10cmFuc2l0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGRNYW51YWxQYXltZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLW1hbnVhbC1wYXltZW50LWRpYWxvZy9hZGQtbWFudWFsLXBheW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbmNlbE9yZGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FuY2VsLW9yZGVyLWRpYWxvZy9jYW5jZWwtb3JkZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1bGZpbGxPcmRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Z1bGZpbGwtb3JkZXItZGlhbG9nL2Z1bGZpbGwtb3JkZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9yZGVyUHJvY2Vzc0dyYXBoRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vb3JkZXItcHJvY2Vzcy1ncmFwaC1kaWFsb2cvb3JkZXItcHJvY2Vzcy1ncmFwaC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVmdW5kT3JkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9yZWZ1bmQtb3JkZXItZGlhbG9nL3JlZnVuZC1vcmRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2V0dGxlUmVmdW5kRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vc2V0dGxlLXJlZnVuZC1kaWFsb2cvc2V0dGxlLXJlZnVuZC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItb3JkZXItZGV0YWlsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vb3JkZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyRGV0YWlsQ29tcG9uZW50XHJcbiAgICBleHRlbmRzIEJhc2VEZXRhaWxDb21wb25lbnQ8T3JkZXJEZXRhaWwuRnJhZ21lbnQ+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIGRldGFpbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIGhpc3RvcnkkOiBPYnNlcnZhYmxlPEdldE9yZGVySGlzdG9yeS5JdGVtc1tdIHwgdW5kZWZpbmVkPjtcclxuICAgIG5leHRTdGF0ZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuICAgIGZldGNoSGlzdG9yeSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkQ29uZmlnW107XHJcbiAgICBvcmRlckxpbmVDdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkQ29uZmlnW107XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTdGF0ZXMgPSBbXHJcbiAgICAgICAgJ0FkZGluZ0l0ZW1zJyxcclxuICAgICAgICAnQXJyYW5naW5nUGF5bWVudCcsXHJcbiAgICAgICAgJ1BheW1lbnRBdXRob3JpemVkJyxcclxuICAgICAgICAnUGF5bWVudFNldHRsZWQnLFxyXG4gICAgICAgICdQYXJ0aWFsbHlTaGlwcGVkJyxcclxuICAgICAgICAnU2hpcHBlZCcsXHJcbiAgICAgICAgJ1BhcnRpYWxseURlbGl2ZXJlZCcsXHJcbiAgICAgICAgJ0RlbGl2ZXJlZCcsXHJcbiAgICAgICAgJ0NhbmNlbGxlZCcsXHJcbiAgICAgICAgJ01vZGlmeWluZycsXHJcbiAgICAgICAgJ0FycmFuZ2luZ0FkZGl0aW9uYWxQYXltZW50JyxcclxuICAgIF07XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgb3JkZXJUcmFuc2l0aW9uU2VydmljZTogT3JkZXJUcmFuc2l0aW9uU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHJvdXRlLCByb3V0ZXIsIHNlcnZlckNvbmZpZ1NlcnZpY2UsIGRhdGFTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLmVudGl0eSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob3JkZXIgPT4ge1xyXG4gICAgICAgICAgICBpZiAob3JkZXIuc3RhdGUgPT09ICdNb2RpZnlpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJywgJ21vZGlmeSddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ09yZGVyJyk7XHJcbiAgICAgICAgdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdPcmRlckxpbmUnKTtcclxuICAgICAgICB0aGlzLmhpc3RvcnkkID0gdGhpcy5mZXRjaEhpc3RvcnkucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0T3JkZXJIaXN0b3J5KHRoaXMuaWQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc29ydDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBTb3J0T3JkZXIuREVTQyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLm9yZGVyPy5oaXN0b3J5Lml0ZW1zKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLm5leHRTdGF0ZXMkID0gdGhpcy5lbnRpdHkkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChvcmRlciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0luQ3VzdG9tU3RhdGUgPSAhdGhpcy5kZWZhdWx0U3RhdGVzLmluY2x1ZGVzKG9yZGVyLnN0YXRlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpc0luQ3VzdG9tU3RhdGVcclxuICAgICAgICAgICAgICAgICAgICA/IG9yZGVyLm5leHRTdGF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA6IG9yZGVyLm5leHRTdGF0ZXMuZmlsdGVyKHMgPT4gIXRoaXMuZGVmYXVsdFN0YXRlcy5pbmNsdWRlcyhzKSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblN0YXRlRGlhZ3JhbSgpIHtcclxuICAgICAgICB0aGlzLmVudGl0eSRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG9yZGVyID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChPcmRlclByb2Nlc3NHcmFwaERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVTdGF0ZTogb3JkZXIuc3RhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uVG9TdGF0ZShzdGF0ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlci50cmFuc2l0aW9uVG9TdGF0ZSh0aGlzLmlkLCBzdGF0ZSkuc3Vic2NyaWJlKCh7IHRyYW5zaXRpb25PcmRlclRvU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRyYW5zaXRpb25PcmRlclRvU3RhdGU/Ll9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci50cmFuc2l0aW9uZWQtdG8tc3RhdGUtc3VjY2VzcycpLCB7IHN0YXRlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0cmFuc2l0aW9uT3JkZXJUb1N0YXRlLnRyYW5zaXRpb25FcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBtYW51YWxseVRyYW5zaXRpb25Ub1N0YXRlKG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KSB7XHJcbiAgICAgICAgdGhpcy5vcmRlclRyYW5zaXRpb25TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5tYW51YWxseVRyYW5zaXRpb25Ub1N0YXRlKHtcclxuICAgICAgICAgICAgICAgIG9yZGVySWQ6IG9yZGVyLmlkLFxyXG4gICAgICAgICAgICAgICAgbmV4dFN0YXRlczogb3JkZXIubmV4dFN0YXRlcyxcclxuICAgICAgICAgICAgICAgIGNhbmNlbGxhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogXygnb3JkZXIubWFudWFsbHktdHJhbnNpdGlvbi10by1zdGF0ZS1tZXNzYWdlJyksXHJcbiAgICAgICAgICAgICAgICByZXRyeTogMCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zaXRpb25Ub01vZGlmeWluZygpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgIC50cmFuc2l0aW9uVG9TdGF0ZSh0aGlzLmlkLCAnTW9kaWZ5aW5nJylcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeyB0cmFuc2l0aW9uT3JkZXJUb1N0YXRlIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHJhbnNpdGlvbk9yZGVyVG9TdGF0ZT8uX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuL21vZGlmeSddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IodHJhbnNpdGlvbk9yZGVyVG9TdGF0ZS50cmFuc2l0aW9uRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDdXN0b21GaWVsZHMoY3VzdG9tRmllbGRzVmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLnVwZGF0ZU9yZGVyQ3VzdG9tRmllbGRzKHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tRmllbGRzOiBjdXN0b21GaWVsZHNWYWx1ZSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1zdWNjZXNzJyksIHsgZW50aXR5OiAnT3JkZXInIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPcmRlckFkZHJlc3NMaW5lcyhvcmRlckFkZHJlc3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nW10ge1xyXG4gICAgICAgIGlmICghb3JkZXJBZGRyZXNzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMob3JkZXJBZGRyZXNzKVxyXG4gICAgICAgICAgICAuZmlsdGVyKHZhbCA9PiB2YWwgIT09ICdPcmRlckFkZHJlc3MnKVxyXG4gICAgICAgICAgICAuZmlsdGVyKGxpbmUgPT4gISFsaW5lKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR0bGVQYXltZW50KHBheW1lbnQ6IE9yZGVyRGV0YWlsLlBheW1lbnRzKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlci5zZXR0bGVQYXltZW50KHBheW1lbnQuaWQpLnN1YnNjcmliZSgoeyBzZXR0bGVQYXltZW50IH0pID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoIChzZXR0bGVQYXltZW50Ll9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1BheW1lbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXR0bGVQYXltZW50LnN0YXRlID09PSAnU2V0dGxlZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuc2V0dGxlLXBheW1lbnQtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnb3JkZXIuc2V0dGxlLXBheW1lbnQtZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIuZ2V0T3JkZXIodGhpcy5pZCkuc2luZ2xlJC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoSGlzdG9yeS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1BheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdTZXR0bGVQYXltZW50RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihzZXR0bGVQYXltZW50Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNpdGlvblBheW1lbnRTdGF0ZSh7IHBheW1lbnQsIHN0YXRlIH06IHsgcGF5bWVudDogT3JkZXJEZXRhaWwuUGF5bWVudHM7IHN0YXRlOiBzdHJpbmcgfSkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLnRyYW5zaXRpb25QYXltZW50VG9TdGF0ZShwYXltZW50LmlkLCBzdGF0ZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeyB0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BheW1lbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci50cmFuc2l0aW9uZWQtcGF5bWVudC10by1zdGF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlci5nZXRPcmRlcih0aGlzLmlkKS5zaW5nbGUkLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoSGlzdG9yeS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5BZGRGdWxmaWxsbWVudChvcmRlcjogT3JkZXJEZXRhaWwuRnJhZ21lbnQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBhbGxJdGVtc0Z1bGZpbGxlZCA9IG9yZGVyLmxpbmVzXHJcbiAgICAgICAgICAgIC5yZWR1Y2UoKGl0ZW1zLCBsaW5lKSA9PiBbLi4uaXRlbXMsIC4uLmxpbmUuaXRlbXNdLCBbXSBhcyBPcmRlckxpbmVGcmFnbWVudFsnaXRlbXMnXSlcclxuICAgICAgICAgICAgLmV2ZXJ5KGl0ZW0gPT4gISFpdGVtLmZ1bGZpbGxtZW50KTtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhYWxsSXRlbXNGdWxmaWxsZWQgJiZcclxuICAgICAgICAgICAgIXRoaXMuaGFzVW5zZXR0bGVkTW9kaWZpY2F0aW9ucyhvcmRlcikgJiZcclxuICAgICAgICAgICAgdGhpcy5vdXRzdGFuZGluZ1BheW1lbnRBbW91bnQob3JkZXIpID09PSAwICYmXHJcbiAgICAgICAgICAgIChvcmRlci5uZXh0U3RhdGVzLmluY2x1ZGVzKCdTaGlwcGVkJykgfHxcclxuICAgICAgICAgICAgICAgIG9yZGVyLm5leHRTdGF0ZXMuaW5jbHVkZXMoJ1BhcnRpYWxseVNoaXBwZWQnKSB8fFxyXG4gICAgICAgICAgICAgICAgb3JkZXIubmV4dFN0YXRlcy5pbmNsdWRlcygnRGVsaXZlcmVkJykpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBoYXNVbnNldHRsZWRNb2RpZmljYXRpb25zKG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIDAgPCBvcmRlci5tb2RpZmljYXRpb25zLmZpbHRlcihtID0+ICFtLmlzU2V0dGxlZCkubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE91dHN0YW5kaW5nTW9kaWZpY2F0aW9uQW1vdW50KG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gc3VtbWF0ZShcclxuICAgICAgICAgICAgb3JkZXIubW9kaWZpY2F0aW9ucy5maWx0ZXIobSA9PiAhbS5pc1NldHRsZWQpLFxyXG4gICAgICAgICAgICAncHJpY2VDaGFuZ2UnLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb3V0c3RhbmRpbmdQYXltZW50QW1vdW50KG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBwYXltZW50SXNWYWxpZCA9IChwOiBPcmRlckRldGFpbC5QYXltZW50cyk6IGJvb2xlYW4gPT5cclxuICAgICAgICAgICAgcC5zdGF0ZSAhPT0gJ0NhbmNlbGxlZCcgJiYgcC5zdGF0ZSAhPT0gJ0RlY2xpbmVkJyAmJiBwLnN0YXRlICE9PSAnRXJyb3InO1xyXG5cclxuICAgICAgICBsZXQgYW1vdW50Q292ZXJlZCA9IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBwYXltZW50IG9mIG9yZGVyLnBheW1lbnRzPy5maWx0ZXIocGF5bWVudElzVmFsaWQpID8/IFtdKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZnVuZHMgPSBwYXltZW50LnJlZnVuZHMuZmlsdGVyKHIgPT4gci5zdGF0ZSAhPT0gJ0ZhaWxlZCcpID8/IFtdO1xyXG4gICAgICAgICAgICBjb25zdCByZWZ1bmRzVG90YWwgPSBzdW1tYXRlKHJlZnVuZHMgYXMgQXJyYXk8UmVxdWlyZWQ8UmVmdW5kPj4sICd0b3RhbCcpO1xyXG4gICAgICAgICAgICBhbW91bnRDb3ZlcmVkICs9IHBheW1lbnQuYW1vdW50IC0gcmVmdW5kc1RvdGFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3JkZXIudG90YWxXaXRoVGF4IC0gYW1vdW50Q292ZXJlZDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRNYW51YWxQYXltZW50KG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50KSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQWRkTWFudWFsUGF5bWVudERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRzdGFuZGluZ0Ftb3VudDogdGhpcy5vdXRzdGFuZGluZ1BheW1lbnRBbW91bnQob3JkZXIpLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5Q29kZTogb3JkZXIuY3VycmVuY3lDb2RlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmFkZE1hbnVhbFBheW1lbnRUb09yZGVyKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVySWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbklkOiByZXN1bHQudHJhbnNhY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcmVzdWx0Lm1ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN1bHQubWV0YWRhdGEgfHwge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBhZGRNYW51YWxQYXltZW50VG9PcmRlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhZGRNYW51YWxQYXltZW50VG9PcmRlci5fX3R5cGVuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLmFkZC1wYXltZW50LXRvLW9yZGVyLXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcmRlclRyYW5zaXRpb25TZXJ2aWNlLnRyYW5zaXRpb25Ub1ByZU1vZGlmeWluZ1N0YXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyLm5leHRTdGF0ZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdNYW51YWxQYXltZW50U3RhdGVFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoYWRkTWFudWFsUGF5bWVudFRvT3JkZXIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmZXRjaE9yZGVyKHsgcmVzdWx0IH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmdWxmaWxsT3JkZXIoKSB7XHJcbiAgICAgICAgdGhpcy5lbnRpdHkkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChvcmRlciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoRnVsZmlsbE9yZGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICd4bCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpbnB1dCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmNyZWF0ZUZ1bGZpbGxtZW50KGlucHV0KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gdGhpcy5yZWZldGNoT3JkZXIocmVzdWx0KS5waXBlKG1hcFRvKHJlc3VsdCkpKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChyZXN1bHQuYWRkRnVsZmlsbG1lbnRUb09yZGVyLl9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnRnVsZmlsbG1lbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuY3JlYXRlLWZ1bGZpbGxtZW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnRW1wdHlPcmRlckxpbmVTZWxlY3Rpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luc3VmZmljaWVudFN0b2NrT25IYW5kRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJdGVtc0FscmVhZHlGdWxmaWxsZWRFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IocmVzdWx0LmFkZEZ1bGZpbGxtZW50VG9PcmRlci5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNpdGlvbkZ1bGZpbGxtZW50KGlkOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgIC50cmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKGlkLCBzdGF0ZSlcclxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiB0aGlzLnJlZmV0Y2hPcmRlcihyZXN1bHQpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci5zdWNjZXNzZnVsbHktdXBkYXRlZC1mdWxmaWxsbWVudCcpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsT3JSZWZ1bmQob3JkZXI6IE9yZGVyRGV0YWlsLkZyYWdtZW50KSB7XHJcbiAgICAgICAgY29uc3QgaXNSZWZ1bmRhYmxlID0gdGhpcy5vcmRlckhhc1NldHRsZWRQYXltZW50cyhvcmRlcik7XHJcbiAgICAgICAgaWYgKG9yZGVyLnN0YXRlID09PSAnUGF5bWVudEF1dGhvcml6ZWQnIHx8IG9yZGVyLmFjdGl2ZSA9PT0gdHJ1ZSB8fCAhaXNSZWZ1bmRhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsT3JkZXIob3JkZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmdW5kT3JkZXIob3JkZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXR0bGVSZWZ1bmQocmVmdW5kOiBPcmRlckRldGFpbC5SZWZ1bmRzKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoU2V0dGxlUmVmdW5kRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnbWQnLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVmdW5kLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAodHJhbnNhY3Rpb25JZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIuc2V0dGxlUmVmdW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlZnVuZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgLy8gc3dpdGNoTWFwKHJlc3VsdCA9PiB0aGlzLnJlZmV0Y2hPcmRlcihyZXN1bHQpKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuc2V0dGxlLXJlZnVuZC1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGROb3RlKGV2ZW50OiB7IG5vdGU6IHN0cmluZzsgaXNQdWJsaWM6IGJvb2xlYW4gfSkge1xyXG4gICAgICAgIGNvbnN0IHsgbm90ZSwgaXNQdWJsaWMgfSA9IGV2ZW50O1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLmFkZE5vdGVUb09yZGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgICAgICAgICAgbm90ZSxcclxuICAgICAgICAgICAgICAgIGlzUHVibGljLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzdWx0ID0+IHRoaXMucmVmZXRjaE9yZGVyKHJlc3VsdCkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdOb3RlJyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVOb3RlKGVudHJ5OiBIaXN0b3J5RW50cnkpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChFZGl0Tm90ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UHJpdmFjeUNvbnRyb2xzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IGVudHJ5LmRhdGEubm90ZSxcclxuICAgICAgICAgICAgICAgICAgICBub3RlSXNQcml2YXRlOiAhZW50cnkuaXNQdWJsaWMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIudXBkYXRlT3JkZXJOb3RlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGVJZDogZW50cnkuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1B1YmxpYzogIXJlc3VsdC5pc1ByaXZhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RlOiByZXN1bHQubm90ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ05vdGUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZU5vdGUoZW50cnk6IEhpc3RvcnlFbnRyeSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBfKCdjb21tb24uY29uZmlybS1kZWxldGUtbm90ZScpLFxyXG4gICAgICAgICAgICAgICAgYm9keTogZW50cnkuZGF0YS5ub3RlLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdkYW5nZXInLCBsYWJlbDogXygnY29tbW9uLmRlbGV0ZScpLCByZXR1cm5WYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlcyA9PiAocmVzID8gdGhpcy5kYXRhU2VydmljZS5vcmRlci5kZWxldGVPcmRlck5vdGUoZW50cnkuaWQpIDogRU1QVFkpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoSGlzdG9yeS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWRlbGV0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdOb3RlJyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcmRlckhhc1NldHRsZWRQYXltZW50cyhvcmRlcjogT3JkZXJEZXRhaWwuRnJhZ21lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISFvcmRlci5wYXltZW50cz8uZmluZChwID0+IHAuc3RhdGUgPT09ICdTZXR0bGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYW5jZWxPcmRlcihvcmRlcjogT3JkZXJEZXRhaWwuRnJhZ21lbnQpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChDYW5jZWxPcmRlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoaW5wdXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlci5jYW5jZWxPcmRlcihpbnB1dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHRoaXMucmVmZXRjaE9yZGVyKHJlc3VsdCkpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci5jYW5jZWxsZWQtb3JkZXItc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWZ1bmRPcmRlcihvcmRlcjogT3JkZXJEZXRhaWwuRnJhZ21lbnQpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChSZWZ1bmRPcmRlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoaW5wdXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25zOiBBcnJheTxcclxuICAgICAgICAgICAgICAgICAgICAgICAgT2JzZXJ2YWJsZTxSZWZ1bmRPcmRlci5SZWZ1bmRPcmRlciB8IENhbmNlbE9yZGVyLkNhbmNlbE9yZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgID4gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQucmVmdW5kLmxpbmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlZnVuZE9yZGVyKGlucHV0LnJlZnVuZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAocmVzID0+IHJlcy5yZWZ1bmRPcmRlcikpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2FuY2VsLmxpbmVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYW5jZWxPcmRlcihpbnB1dC5jYW5jZWwpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXMuY2FuY2VsT3JkZXIpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKC4uLm9wZXJhdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocmVzdWx0Ll9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZldGNoT3JkZXIocmVzdWx0KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLmNhbmNlbGxlZC1vcmRlci1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1JlZnVuZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmV0Y2hPcmRlcihyZXN1bHQpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0ZSA9PT0gJ0ZhaWxlZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnb3JkZXIucmVmdW5kLW9yZGVyLWZhaWxlZCcpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIucmVmdW5kLW9yZGVyLXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnUXVhbnRpdHlUb29HcmVhdEVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnTXVsdGlwbGVPcmRlckVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0NhbmNlbEFjdGl2ZU9yZGVyRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdFbXB0eU9yZGVyTGluZVNlbGVjdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnQWxyZWFkeVJlZnVuZGVkRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdOb3RoaW5nVG9SZWZ1bmRFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BheW1lbnRPcmRlck1pc21hdGNoRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdSZWZ1bmRPcmRlclN0YXRlRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdSZWZ1bmRTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlZmV0Y2hPcmRlcihyZXN1bHQ6IG9iamVjdCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8R2V0T3JkZXJRdWVyeSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmdldE9yZGVyKHRoaXMuaWQpLnNpbmdsZSQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXRGb3JtVmFsdWVzKGVudGl0eTogT3JkZXIuRnJhZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICAvLyBlbXB0eVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
501
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItZGV0YWlsL29yZGVyLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsbUJBQW1CLEVBR25CLFdBQVcsRUFDWCx1QkFBdUIsRUFLdkIsWUFBWSxFQUNaLG1CQUFtQixFQU9uQixtQkFBbUIsRUFDbkIsU0FBUyxHQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7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LE1BQU0sRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7U0FDM0Q7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVTLGFBQWEsQ0FBQyxNQUFzQjtRQUMxQyxRQUFRO0lBQ1osQ0FBQzs7O1lBamlCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsaTdRQUE0QztnQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUF6Q3dCLE1BQU07WUFBdEIsY0FBYztZQW9CbkIsbUJBQW1CO1lBdEJXLGlCQUFpQjtZQVEvQyxXQUFXO1lBT1gsbUJBQW1CO1lBRG5CLFlBQVk7WUFnQlAsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBDYW5jZWxPcmRlcixcclxuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBFZGl0Tm90ZURpYWxvZ0NvbXBvbmVudCxcclxuICAgIEdldE9yZGVySGlzdG9yeSxcclxuICAgIEdldE9yZGVyUXVlcnksXHJcbiAgICBIaXN0b3J5RW50cnksXHJcbiAgICBIaXN0b3J5RW50cnlUeXBlLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIE9yZGVyLFxyXG4gICAgT3JkZXJEZXRhaWwsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgT3JkZXJMaW5lRnJhZ21lbnQsXHJcbiAgICBSZWZ1bmQsXHJcbiAgICBSZWZ1bmRPcmRlcixcclxuICAgIFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICBTb3J0T3JkZXIsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHBpY2sgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3BpY2snO1xyXG5pbXBvcnQgeyBhc3NlcnROZXZlciwgc3VtbWF0ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgRU1QVFksIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIG1hcFRvLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE9yZGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvb3JkZXItdHJhbnNpdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRkTWFudWFsUGF5bWVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1tYW51YWwtcGF5bWVudC1kaWFsb2cvYWRkLW1hbnVhbC1wYXltZW50LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYW5jZWxPcmRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NhbmNlbC1vcmRlci1kaWFsb2cvY2FuY2VsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGdWxmaWxsT3JkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9mdWxmaWxsLW9yZGVyLWRpYWxvZy9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPcmRlclByb2Nlc3NHcmFwaERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLXByb2Nlc3MtZ3JhcGgtZGlhbG9nL29yZGVyLXByb2Nlc3MtZ3JhcGgtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmdW5kLW9yZGVyLWRpYWxvZy9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNldHRsZVJlZnVuZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3NldHRsZS1yZWZ1bmQtZGlhbG9nL3NldHRsZS1yZWZ1bmQtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLW9yZGVyLWRldGFpbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL29yZGVyLWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckRldGFpbENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlRGV0YWlsQ29tcG9uZW50PE9yZGVyRGV0YWlsLkZyYWdtZW50PlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBkZXRhaWxGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBoaXN0b3J5JDogT2JzZXJ2YWJsZTxHZXRPcmRlckhpc3RvcnkuSXRlbXNbXSB8IHVuZGVmaW5lZD47XHJcbiAgICBuZXh0U3RhdGVzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XHJcbiAgICBmZXRjaEhpc3RvcnkgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U3RhdGVzID0gW1xyXG4gICAgICAgICdBZGRpbmdJdGVtcycsXHJcbiAgICAgICAgJ0FycmFuZ2luZ1BheW1lbnQnLFxyXG4gICAgICAgICdQYXltZW50QXV0aG9yaXplZCcsXHJcbiAgICAgICAgJ1BheW1lbnRTZXR0bGVkJyxcclxuICAgICAgICAnUGFydGlhbGx5U2hpcHBlZCcsXHJcbiAgICAgICAgJ1NoaXBwZWQnLFxyXG4gICAgICAgICdQYXJ0aWFsbHlEZWxpdmVyZWQnLFxyXG4gICAgICAgICdEZWxpdmVyZWQnLFxyXG4gICAgICAgICdDYW5jZWxsZWQnLFxyXG4gICAgICAgICdNb2RpZnlpbmcnLFxyXG4gICAgICAgICdBcnJhbmdpbmdBZGRpdGlvbmFsUGF5bWVudCcsXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBvcmRlclRyYW5zaXRpb25TZXJ2aWNlOiBPcmRlclRyYW5zaXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocm91dGUsIHJvdXRlciwgc2VydmVyQ29uZmlnU2VydmljZSwgZGF0YVNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZW50aXR5JC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShvcmRlciA9PiB7XHJcbiAgICAgICAgICAgIGlmIChvcmRlci5zdGF0ZSA9PT0gJ01vZGlmeWluZycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi8nLCAnbW9kaWZ5J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRzID0gdGhpcy5nZXRDdXN0b21GaWVsZENvbmZpZygnT3JkZXInKTtcclxuICAgICAgICB0aGlzLm9yZGVyTGluZUN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ09yZGVyTGluZScpO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeSQgPSB0aGlzLmZldGNoSGlzdG9yeS5waXBlKFxyXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlclxyXG4gICAgICAgICAgICAgICAgICAgIC5nZXRPcmRlckhpc3RvcnkodGhpcy5pZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcFN0cmVhbShkYXRhID0+IGRhdGEub3JkZXI/Lmhpc3RvcnkuaXRlbXMpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubmV4dFN0YXRlcyQgPSB0aGlzLmVudGl0eSQucGlwZShcclxuICAgICAgICAgICAgbWFwKG9yZGVyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzSW5DdXN0b21TdGF0ZSA9ICF0aGlzLmRlZmF1bHRTdGF0ZXMuaW5jbHVkZXMob3JkZXIuc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzSW5DdXN0b21TdGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgID8gb3JkZXIubmV4dFN0YXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDogb3JkZXIubmV4dFN0YXRlcy5maWx0ZXIocyA9PiAhdGhpcy5kZWZhdWx0U3RhdGVzLmluY2x1ZGVzKHMpKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuU3RhdGVEaWFncmFtKCkge1xyXG4gICAgICAgIHRoaXMuZW50aXR5JFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAob3JkZXIgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KE9yZGVyUHJvY2Vzc0dyYXBoRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN0YXRlOiBvcmRlci5zdGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zaXRpb25Ub1N0YXRlKHN0YXRlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLnRyYW5zaXRpb25Ub1N0YXRlKHRoaXMuaWQsIHN0YXRlKS5zdWJzY3JpYmUoKHsgdHJhbnNpdGlvbk9yZGVyVG9TdGF0ZSB9KSA9PiB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHJhbnNpdGlvbk9yZGVyVG9TdGF0ZT8uX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnT3JkZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLnRyYW5zaXRpb25lZC10by1zdGF0ZS1zdWNjZXNzJyksIHsgc3RhdGUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaEhpc3RvcnkubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHRyYW5zaXRpb25PcmRlclRvU3RhdGUudHJhbnNpdGlvbkVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG1hbnVhbGx5VHJhbnNpdGlvblRvU3RhdGUob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpIHtcclxuICAgICAgICB0aGlzLm9yZGVyVHJhbnNpdGlvblNlcnZpY2VcclxuICAgICAgICAgICAgLm1hbnVhbGx5VHJhbnNpdGlvblRvU3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgb3JkZXJJZDogb3JkZXIuaWQsXHJcbiAgICAgICAgICAgICAgICBuZXh0U3RhdGVzOiBvcmRlci5uZXh0U3RhdGVzLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsbGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBfKCdvcmRlci5tYW51YWxseS10cmFuc2l0aW9uLXRvLXN0YXRlLW1lc3NhZ2UnKSxcclxuICAgICAgICAgICAgICAgIHJldHJ5OiAwLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNpdGlvblRvTW9kaWZ5aW5nKCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLnRyYW5zaXRpb25Ub1N0YXRlKHRoaXMuaWQsICdNb2RpZnlpbmcnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHRyYW5zaXRpb25PcmRlclRvU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0cmFuc2l0aW9uT3JkZXJUb1N0YXRlPy5fX3R5cGVuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vbW9kaWZ5J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0cmFuc2l0aW9uT3JkZXJUb1N0YXRlLnRyYW5zaXRpb25FcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUN1c3RvbUZpZWxkcyhjdXN0b21GaWVsZHNWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlclxyXG4gICAgICAgICAgICAudXBkYXRlT3JkZXJDdXN0b21GaWVsZHMoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21GaWVsZHM6IGN1c3RvbUZpZWxkc1ZhbHVlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwgeyBlbnRpdHk6ICdPcmRlcicgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9yZGVyQWRkcmVzc0xpbmVzKG9yZGVyQWRkcmVzcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgaWYgKCFvcmRlckFkZHJlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhvcmRlckFkZHJlc3MpXHJcbiAgICAgICAgICAgIC5maWx0ZXIodmFsID0+IHZhbCAhPT0gJ09yZGVyQWRkcmVzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobGluZSA9PiAhIWxpbmUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHRsZVBheW1lbnQocGF5bWVudDogT3JkZXJEZXRhaWwuUGF5bWVudHMpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLnNldHRsZVBheW1lbnQocGF5bWVudC5pZCkuc3Vic2NyaWJlKCh7IHNldHRsZVBheW1lbnQgfSkgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHNldHRsZVBheW1lbnQuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnUGF5bWVudCc6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRsZVBheW1lbnQuc3RhdGUgPT09ICdTZXR0bGVkJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci5zZXR0bGUtcGF5bWVudC1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdvcmRlci5zZXR0bGUtcGF5bWVudC1lcnJvcicpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlci5nZXRPcmRlcih0aGlzLmlkKS5zaW5nbGUkLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ09yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1NldHRsZVBheW1lbnRFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHNldHRsZVBheW1lbnQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uUGF5bWVudFN0YXRlKHsgcGF5bWVudCwgc3RhdGUgfTogeyBwYXltZW50OiBPcmRlckRldGFpbC5QYXltZW50czsgc3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlclxyXG4gICAgICAgICAgICAudHJhbnNpdGlvblBheW1lbnRUb1N0YXRlKHBheW1lbnQuaWQsIHN0YXRlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHRyYW5zaXRpb25QYXltZW50VG9TdGF0ZSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRyYW5zaXRpb25QYXltZW50VG9TdGF0ZS5fX3R5cGVuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnUGF5bWVudCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLnRyYW5zaXRpb25lZC1wYXltZW50LXRvLXN0YXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmdldE9yZGVyKHRoaXMuaWQpLnNpbmdsZSQuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHRyYW5zaXRpb25QYXltZW50VG9TdGF0ZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbkFkZEZ1bGZpbGxtZW50KG9yZGVyOiBPcmRlckRldGFpbC5GcmFnbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGFsbEl0ZW1zRnVsZmlsbGVkID0gb3JkZXIubGluZXNcclxuICAgICAgICAgICAgLnJlZHVjZSgoaXRlbXMsIGxpbmUpID0+IFsuLi5pdGVtcywgLi4ubGluZS5pdGVtc10sIFtdIGFzIE9yZGVyTGluZUZyYWdtZW50WydpdGVtcyddKVxyXG4gICAgICAgICAgICAuZXZlcnkoaXRlbSA9PiAhIWl0ZW0uZnVsZmlsbG1lbnQpO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICFhbGxJdGVtc0Z1bGZpbGxlZCAmJlxyXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnNldHRsZWRNb2RpZmljYXRpb25zKG9yZGVyKSAmJlxyXG4gICAgICAgICAgICB0aGlzLm91dHN0YW5kaW5nUGF5bWVudEFtb3VudChvcmRlcikgPT09IDAgJiZcclxuICAgICAgICAgICAgKG9yZGVyLm5leHRTdGF0ZXMuaW5jbHVkZXMoJ1NoaXBwZWQnKSB8fFxyXG4gICAgICAgICAgICAgICAgb3JkZXIubmV4dFN0YXRlcy5pbmNsdWRlcygnUGFydGlhbGx5U2hpcHBlZCcpIHx8XHJcbiAgICAgICAgICAgICAgICBvcmRlci5uZXh0U3RhdGVzLmluY2x1ZGVzKCdEZWxpdmVyZWQnKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc1Vuc2V0dGxlZE1vZGlmaWNhdGlvbnMob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gMCA8IG9yZGVyLm1vZGlmaWNhdGlvbnMuZmlsdGVyKG0gPT4gIW0uaXNTZXR0bGVkKS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T3V0c3RhbmRpbmdNb2RpZmljYXRpb25BbW91bnQob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBzdW1tYXRlKFxyXG4gICAgICAgICAgICBvcmRlci5tb2RpZmljYXRpb25zLmZpbHRlcihtID0+ICFtLmlzU2V0dGxlZCksXHJcbiAgICAgICAgICAgICdwcmljZUNoYW5nZScsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvdXRzdGFuZGluZ1BheW1lbnRBbW91bnQob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHBheW1lbnRJc1ZhbGlkID0gKHA6IE9yZGVyRGV0YWlsLlBheW1lbnRzKTogYm9vbGVhbiA9PlxyXG4gICAgICAgICAgICBwLnN0YXRlICE9PSAnQ2FuY2VsbGVkJyAmJiBwLnN0YXRlICE9PSAnRGVjbGluZWQnICYmIHAuc3RhdGUgIT09ICdFcnJvcic7XHJcblxyXG4gICAgICAgIGxldCBhbW91bnRDb3ZlcmVkID0gMDtcclxuICAgICAgICBmb3IgKGNvbnN0IHBheW1lbnQgb2Ygb3JkZXIucGF5bWVudHM/LmZpbHRlcihwYXltZW50SXNWYWxpZCkgPz8gW10pIHtcclxuICAgICAgICAgICAgY29uc3QgcmVmdW5kcyA9IHBheW1lbnQucmVmdW5kcy5maWx0ZXIociA9PiByLnN0YXRlICE9PSAnRmFpbGVkJykgPz8gW107XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZnVuZHNUb3RhbCA9IHN1bW1hdGUocmVmdW5kcyBhcyBBcnJheTxSZXF1aXJlZDxSZWZ1bmQ+PiwgJ3RvdGFsJyk7XHJcbiAgICAgICAgICAgIGFtb3VudENvdmVyZWQgKz0gcGF5bWVudC5hbW91bnQgLSByZWZ1bmRzVG90YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvcmRlci50b3RhbFdpdGhUYXggLSBhbW91bnRDb3ZlcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZE1hbnVhbFBheW1lbnQob3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChBZGRNYW51YWxQYXltZW50RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dHN0YW5kaW5nQW1vdW50OiB0aGlzLm91dHN0YW5kaW5nUGF5bWVudEFtb3VudChvcmRlciksXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlOiBvcmRlci5jdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIuYWRkTWFudWFsUGF5bWVudFRvT3JkZXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWQ6IHJlc3VsdC50cmFuc2FjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiByZXN1bHQubWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC5tZXRhZGF0YSB8fCB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IGFkZE1hbnVhbFBheW1lbnRUb09yZGVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFkZE1hbnVhbFBheW1lbnRUb09yZGVyLl9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3JkZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuYWRkLXBheW1lbnQtdG8tb3JkZXItc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9yZGVyVHJhbnNpdGlvblNlcnZpY2UudHJhbnNpdGlvblRvUHJlTW9kaWZ5aW5nU3RhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIubmV4dFN0YXRlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ01hbnVhbFBheW1lbnRTdGF0ZUVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihhZGRNYW51YWxQYXltZW50VG9PcmRlci5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZldGNoT3JkZXIoeyByZXN1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bGZpbGxPcmRlcigpIHtcclxuICAgICAgICB0aGlzLmVudGl0eSRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG9yZGVyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChGdWxmaWxsT3JkZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGlucHV0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIuY3JlYXRlRnVsZmlsbG1lbnQoaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB0aGlzLnJlZmV0Y2hPcmRlcihyZXN1bHQpLnBpcGUobWFwVG8ocmVzdWx0KSkpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGFkZEZ1bGZpbGxtZW50VG9PcmRlciB9ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYWRkRnVsZmlsbG1lbnRUb09yZGVyLl9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnRnVsZmlsbG1lbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuY3JlYXRlLWZ1bGZpbGxtZW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnRW1wdHlPcmRlckxpbmVTZWxlY3Rpb25FcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luc3VmZmljaWVudFN0b2NrT25IYW5kRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJdGVtc0FscmVhZHlGdWxmaWxsZWRFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0ludmFsaWRGdWxmaWxsbWVudEhhbmRsZXJFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoYWRkRnVsZmlsbG1lbnRUb09yZGVyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0Z1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKGFkZEZ1bGZpbGxtZW50VG9PcmRlci50cmFuc2l0aW9uRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0NyZWF0ZUZ1bGZpbGxtZW50RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKGFkZEZ1bGZpbGxtZW50VG9PcmRlci5mdWxmaWxsbWVudEhhbmRsZXJFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoYWRkRnVsZmlsbG1lbnRUb09yZGVyKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKGFkZEZ1bGZpbGxtZW50VG9PcmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2l0aW9uRnVsZmlsbG1lbnQoaWQ6IHN0cmluZywgc3RhdGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgLnRyYW5zaXRpb25GdWxmaWxsbWVudFRvU3RhdGUoaWQsIHN0YXRlKVxyXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzdWx0ID0+IHRoaXMucmVmZXRjaE9yZGVyKHJlc3VsdCkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLnN1Y2Nlc3NmdWxseS11cGRhdGVkLWZ1bGZpbGxtZW50JykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWxPclJlZnVuZChvcmRlcjogT3JkZXJEZXRhaWwuRnJhZ21lbnQpIHtcclxuICAgICAgICBjb25zdCBpc1JlZnVuZGFibGUgPSB0aGlzLm9yZGVySGFzU2V0dGxlZFBheW1lbnRzKG9yZGVyKTtcclxuICAgICAgICBpZiAob3JkZXIuc3RhdGUgPT09ICdQYXltZW50QXV0aG9yaXplZCcgfHwgb3JkZXIuYWN0aXZlID09PSB0cnVlIHx8ICFpc1JlZnVuZGFibGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxPcmRlcihvcmRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZ1bmRPcmRlcihvcmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHRsZVJlZnVuZChyZWZ1bmQ6IE9yZGVyRGV0YWlsLlJlZnVuZHMpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChTZXR0bGVSZWZ1bmREaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIHNpemU6ICdtZCcsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICByZWZ1bmQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCh0cmFuc2FjdGlvbklkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlci5zZXR0bGVSZWZ1bmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVmdW5kLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAvLyBzd2l0Y2hNYXAocmVzdWx0ID0+IHRoaXMucmVmZXRjaE9yZGVyKHJlc3VsdCkpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci5zZXR0bGUtcmVmdW5kLXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZE5vdGUoZXZlbnQ6IHsgbm90ZTogc3RyaW5nOyBpc1B1YmxpYzogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgY29uc3QgeyBub3RlLCBpc1B1YmxpYyB9ID0gZXZlbnQ7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5vcmRlclxyXG4gICAgICAgICAgICAuYWRkTm90ZVRvT3JkZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICBub3RlLFxyXG4gICAgICAgICAgICAgICAgaXNQdWJsaWMsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcChyZXN1bHQgPT4gdGhpcy5yZWZldGNoT3JkZXIocmVzdWx0KSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ05vdGUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZU5vdGUoZW50cnk6IEhpc3RvcnlFbnRyeSkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEVkaXROb3RlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlQcml2YWN5Q29udHJvbHM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogZW50cnkuZGF0YS5ub3RlLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGVJc1ByaXZhdGU6ICFlbnRyeS5pc1B1YmxpYyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5vcmRlci51cGRhdGVPcmRlck5vdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZUlkOiBlbnRyeS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHVibGljOiAhcmVzdWx0LmlzUHJpdmF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IHJlc3VsdC5ub3RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaEhpc3RvcnkubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnTm90ZScsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlTm90ZShlbnRyeTogSGlzdG9yeUVudHJ5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5kaWFsb2coe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2NvbW1vbi5jb25maXJtLWRlbGV0ZS1ub3RlJyksXHJcbiAgICAgICAgICAgICAgICBib2R5OiBlbnRyeS5kYXRhLm5vdGUsXHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5jYW5jZWwnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ2RhbmdlcicsIGxhYmVsOiBfKCdjb21tb24uZGVsZXRlJyksIHJldHVyblZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocmVzID0+IChyZXMgPyB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmRlbGV0ZU9yZGVyTm90ZShlbnRyeS5pZCkgOiBFTVBUWSkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ05vdGUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9yZGVySGFzU2V0dGxlZFBheW1lbnRzKG9yZGVyOiBPcmRlckRldGFpbC5GcmFnbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIW9yZGVyLnBheW1lbnRzPy5maW5kKHAgPT4gcC5zdGF0ZSA9PT0gJ1NldHRsZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbmNlbE9yZGVyKG9yZGVyOiBPcmRlckRldGFpbC5GcmFnbWVudCkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KENhbmNlbE9yZGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAneGwnLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpbnB1dCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyLmNhbmNlbE9yZGVyKGlucHV0KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gdGhpcy5yZWZldGNoT3JkZXIocmVzdWx0KSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ29yZGVyLmNhbmNlbGxlZC1vcmRlci1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlZnVuZE9yZGVyKG9yZGVyOiBPcmRlckRldGFpbC5GcmFnbWVudCkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAneGwnLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpbnB1dCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbnM6IEFycmF5PFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBPYnNlcnZhYmxlPFJlZnVuZE9yZGVyLlJlZnVuZE9yZGVyIHwgQ2FuY2VsT3JkZXIuQ2FuY2VsT3JkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPiA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5yZWZ1bmQubGluZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVmdW5kT3JkZXIoaW5wdXQucmVmdW5kKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLnJlZnVuZE9yZGVyKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jYW5jZWwubGluZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhbmNlbE9yZGVyKGlucHV0LmNhbmNlbClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAocmVzID0+IHJlcy5jYW5jZWxPcmRlcikpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4ub3BlcmF0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChyZXN1bHQuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmV0Y2hPcmRlcihyZXN1bHQpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnb3JkZXIuY2FuY2VsbGVkLW9yZGVyLXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnUmVmdW5kJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmZXRjaE9yZGVyKHJlc3VsdCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXRlID09PSAnRmFpbGVkJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdvcmRlci5yZWZ1bmQtb3JkZXItZmFpbGVkJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdvcmRlci5yZWZ1bmQtb3JkZXItc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdRdWFudGl0eVRvb0dyZWF0RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdNdWx0aXBsZU9yZGVyRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnQ2FuY2VsQWN0aXZlT3JkZXJFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0VtcHR5T3JkZXJMaW5lU2VsZWN0aW9uRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdBbHJlYWR5UmVmdW5kZWRFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ05vdGhpbmdUb1JlZnVuZEVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnUGF5bWVudE9yZGVyTWlzbWF0Y2hFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1JlZnVuZE9yZGVyU3RhdGVFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1JlZnVuZFN0YXRlVHJhbnNpdGlvbkVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVmZXRjaE9yZGVyKHJlc3VsdDogb2JqZWN0IHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxHZXRPcmRlclF1ZXJ5IHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgdGhpcy5mZXRjaEhpc3RvcnkubmV4dCgpO1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uub3JkZXIuZ2V0T3JkZXIodGhpcy5pZCkuc2luZ2xlJDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBPcmRlci5GcmFnbWVudCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGVtcHR5XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -3377,6 +3377,16 @@ const CREATE_FULFILLMENT = gql `
|
|
|
3377
3377
|
mutation CreateFulfillment($input: FulfillOrderInput!) {
|
|
3378
3378
|
addFulfillmentToOrder(input: $input) {
|
|
3379
3379
|
...Fulfillment
|
|
3380
|
+
... on CreateFulfillmentError {
|
|
3381
|
+
errorCode
|
|
3382
|
+
message
|
|
3383
|
+
fulfillmentHandlerError
|
|
3384
|
+
}
|
|
3385
|
+
... on FulfillmentStateTransitionError {
|
|
3386
|
+
errorCode
|
|
3387
|
+
message
|
|
3388
|
+
transitionError
|
|
3389
|
+
}
|
|
3380
3390
|
...ErrorResult
|
|
3381
3391
|
}
|
|
3382
3392
|
}
|
|
@@ -13913,7 +13923,7 @@ function patchObject(obj, patch) {
|
|
|
13913
13923
|
}
|
|
13914
13924
|
|
|
13915
13925
|
// Auto-generated by the set-version.js script.
|
|
13916
|
-
const ADMIN_UI_VERSION = '1.0.
|
|
13926
|
+
const ADMIN_UI_VERSION = '1.0.3';
|
|
13917
13927
|
|
|
13918
13928
|
/**
|
|
13919
13929
|
* Responsible for registering dashboard widget components and querying for layouts.
|