@infrab4a/connect 3.10.0-beta.3 → 3.10.0-beta.4
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/infrab4a-connect.umd.js +1 -1
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +2 -2
- package/fesm2015/infrab4a-connect.js +1 -1
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/package.json +1 -1
package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js
CHANGED
|
@@ -126,7 +126,7 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
|
|
|
126
126
|
{ shoppingCount: { columnName: 'shopping_count' } },
|
|
127
127
|
{
|
|
128
128
|
category: {
|
|
129
|
-
columnName: '
|
|
129
|
+
columnName: 'category_id',
|
|
130
130
|
foreignKeyColumn: { category_id: 'id' },
|
|
131
131
|
fields: ['id', 'name', 'reference', 'slug'],
|
|
132
132
|
},
|
|
@@ -485,4 +485,4 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
|
|
|
485
485
|
});
|
|
486
486
|
}
|
|
487
487
|
}
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvcHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBY0wsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBb0JuRCxNQUFNLE9BQU8sOEJBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFzQjVFLFlBQVksUUFBZ0IsRUFBRSxXQUFxQztRQUNqRSxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFFBQVE7WUFDUixXQUFXO1lBQ1gsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQUE7UUFtaEJJLHNCQUFpQixHQUFHLENBQUMsS0FBMEIsRUFBaUIsRUFBRSxDQUFDLGlDQUN0RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQ25GLFNBQVMsRUFBRSxPQUFP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QyxDQUFDLENBQUE7UUFDM0QsQ0FBQztLQUFBO0lBZ0JLLHlCQUF5QixDQUFDLEdBQWE7O1lBQzNDLE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzlELEtBQUssRUFBRTtvQkFDTCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7b0JBQzVCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFO29CQUM1QixJQUFJLEVBQUUsbUJBQW1CO2lCQUMxQjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIEZpbmRSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIEdldFJlcG9zaXRvcnlQYXJhbXMsXHJcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxyXG4gIFByb2R1Y3RNZXRhZGF0YSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3LFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFJldmlld1N0YXR1c1BhcmFtcyxcclxuICBSZXZpZXdXaXRoUHJvZHVjdERhdGEsXHJcbiAgU2hvcFByaWNlLFxyXG4gIFNob3BzLFxyXG4gIFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXMsXHJcbiAgV2hlcmUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzJ1xyXG5pbXBvcnQgeyBCYXNlLCBpc05pbCwgb21pdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXHJcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXHJcbmltcG9ydCB7IFByb2R1Y3RIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi4vLi4vbW9kZWxzJ1xyXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuXHJcbnR5cGUgUHJvZHVjdFJldmlld0ZpZWxkcyA9IHtcclxuICBpZD86IHN0cmluZ1xyXG4gIHNob3A6IFNob3BzXHJcbiAgcmF0ZTogbnVtYmVyXHJcbiAgYXV0aG9yPzogc3RyaW5nXHJcbiAgZW1haWw/OiBzdHJpbmdcclxuICBsb2NhdGlvbj86IHN0cmluZ1xyXG4gIHJldmlldz86IHN0cmluZ1xyXG4gIHN0YXR1cz86IGJvb2xlYW5cclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIHBlcnNvbklkPzogbnVtYmVyXHJcbiAgcG9pbnRzPzogbnVtYmVyXHJcbiAgb3JkZXJJZD86IHN0cmluZ1xyXG4gIGNyZWF0ZWRBdD86IERhdGVcclxuICB1cGRhdGVkQXQ/OiBEYXRlXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcclxuICBleHRlbmRzIHdpdGhDcnVkSGFzdXJhR3JhcGhRTCh3aXRoSGFzdXJhR3JhcGhRTDxQcm9kdWN0SGFzdXJhR3JhcGhRTD4oQmFzZSkpXHJcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxyXG57XHJcbiAgcHJpdmF0ZSBnZXQgcmV2aWV3c0ZpZWxkcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgJ2lkJyxcclxuICAgICAgJ3Nob3AnLFxyXG4gICAgICAncmF0ZScsXHJcbiAgICAgICdhdXRob3InLFxyXG4gICAgICAnZW1haWwnLFxyXG4gICAgICAnbG9jYXRpb24nLFxyXG4gICAgICAncmV2aWV3JyxcclxuICAgICAgJ3N0YXR1cycsXHJcbiAgICAgICd0aXRsZScsXHJcbiAgICAgIHsgcGVyc29uSWQ6IHsgY29sdW1uTmFtZTogJ3BlcnNvbl9pZCcgfSB9LFxyXG4gICAgICAncG9pbnRzJyxcclxuICAgICAgeyBvcmRlcklkOiB7IGNvbHVtbk5hbWU6ICdvcmRlcl9pZCcgfSB9LFxyXG4gICAgICB7IGNyZWF0ZWRBdDogeyBjb2x1bW5OYW1lOiAnY3JlYXRlZF9hdCcgfSB9LFxyXG4gICAgICB7IHVwZGF0ZWRBdDogeyBjb2x1bW5OYW1lOiAndXBkYXRlZF9hdCcgfSB9LFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IHN0cmluZywgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucykge1xyXG4gICAgc3VwZXIoe1xyXG4gICAgICB0YWJsZU5hbWU6ICdwcm9kdWN0JyxcclxuICAgICAgbW9kZWw6IFByb2R1Y3RIYXN1cmFHcmFwaFFMLFxyXG4gICAgICBlbmRwb2ludCxcclxuICAgICAgYXV0aE9wdGlvbnMsXHJcbiAgICAgIGZpZWxkczogW10sXHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IGNvbW1vbkZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4gPSBbXHJcbiAgICAgIHsgaWQ6IHsgY29sdW1uTmFtZTogJ2lkJywgdG86ICh2YWx1ZSkgPT4gK3ZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlLnRvU3RyaW5nKCkgfSB9LFxyXG4gICAgICB7IGZpcmVzdG9yZUlkOiB7IGNvbHVtbk5hbWU6ICdmaXJlc3RvcmVfaWQnIH0gfSxcclxuICAgICAgeyBwcm9kdWN0SWQ6IHsgY29sdW1uTmFtZTogJ21haW5fcHJvZHVjdF9pZCcgfSB9LFxyXG4gICAgICB7IENFU1Q6IHsgY29sdW1uTmFtZTogJ2Nlc3QnIH0gfSxcclxuICAgICAgeyBFQU46IHsgY29sdW1uTmFtZTogJ2VhbicgfSB9LFxyXG4gICAgICB7IE5DTTogeyBjb2x1bW5OYW1lOiAnbmNtJyB9IH0sXHJcbiAgICAgICdicmFuZCcsXHJcbiAgICAgIHsgY29zdFByaWNlOiB7IGNvbHVtbk5hbWU6ICdjb3N0X3ByaWNlJyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2Rlc2NyaXB0aW9uJyxcclxuICAgICAgICAgIGZyb206IChkZXNjcmlwdGlvbiwgZGF0YSkgPT4gKHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGRpZmZlcmVudGlhbHM6IGRhdGEuZGlmZmVyZW50aWFscyxcclxuICAgICAgICAgICAgd2hvTXVzdFVzZTogZGF0YS53aG9fbXVzdF91c2UsXHJcbiAgICAgICAgICAgIGhvd1RvVXNlOiBkYXRhLmhvd190b191c2UsXHJcbiAgICAgICAgICAgIGJyYW5kOiBkYXRhLmJyYW5kX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzPy5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBmaWx0ZXJzLmRlc2NyaXB0aW9uIH0pLFxyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzLmRpZmZlcmVudGlhbHMgJiYgeyBkaWZmZXJlbnRpYWxzOiBmaWx0ZXJzLmRpZmZlcmVudGlhbHMgfSksXHJcbiAgICAgICAgICAgICAgLi4uKGZpbHRlcnMud2hvTXVzdFVzZSAmJiB7XHJcbiAgICAgICAgICAgICAgICB3aG9fbXVzdF91c2U6IGZpbHRlcnMud2hvTXVzdFVzZSxcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAuLi4oZmlsdGVycy5ob3dUb1VzZSAmJiB7XHJcbiAgICAgICAgICAgICAgICBob3dfdG9fdXNlOiBmaWx0ZXJzLmhvd1RvVXNlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzLmJyYW5kICYmIHtcclxuICAgICAgICAgICAgICAgIGJyYW5kX2Rlc2NyaXB0aW9uOiBmaWx0ZXJzLmJyYW5kLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAoZGVzY3JpcHRpb25EYXRhKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhPy5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbkRhdGEuZGVzY3JpcHRpb24gfSksXHJcbiAgICAgICAgICAgIC4uLihkZXNjcmlwdGlvbkRhdGEuZGlmZmVyZW50aWFscyAmJiB7IGRpZmZlcmVudGlhbHM6IGRlc2NyaXB0aW9uRGF0YS5kaWZmZXJlbnRpYWxzIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLndob011c3RVc2UgJiYge1xyXG4gICAgICAgICAgICAgIHdob19tdXN0X3VzZTogZGVzY3JpcHRpb25EYXRhLndob011c3RVc2UsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLmhvd1RvVXNlICYmIHsgaG93X3RvX3VzZTogZGVzY3JpcHRpb25EYXRhLmhvd1RvVXNlIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLmJyYW5kICYmIHsgYnJhbmRfZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uRGF0YS5icmFuZCB9KSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgZGlmZmVyZW50aWFsczogeyBjb2x1bW5OYW1lOiAnZGlmZmVyZW50aWFscycgfSB9LFxyXG4gICAgICB7IHdob011c3RVc2U6IHsgY29sdW1uTmFtZTogJ3dob19tdXN0X3VzZScgfSB9LFxyXG4gICAgICB7IGhvd1RvVXNlOiB7IGNvbHVtbk5hbWU6ICdob3dfdG9fdXNlJyB9IH0sXHJcbiAgICAgIHsgYnJhbmREZXNjcmlwdGlvbjogeyBjb2x1bW5OYW1lOiAnYnJhbmRfZGVzY3JpcHRpb24nIH0gfSxcclxuICAgICAgeyBoYXNWYXJpYW50czogeyBjb2x1bW5OYW1lOiAnaGFzX3ZhcmlhbnRzJyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZXM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdpbWFnZXMnLFxyXG4gICAgICAgICAgdG86ICh2YWx1ZSkgPT4gKHZhbHVlPy5sZW5ndGggPiAwID8gYHtcIiR7dmFsdWU/LmpvaW4/LihgXCIsXCJgKSB8fCAnJ31cIn1gIDogYHt9YCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1pbmlhdHVyZXM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdtaW5pYXR1cmVzJyxcclxuICAgICAgICAgIHRvOiAodmFsdWUpID0+ICh2YWx1ZT8ubGVuZ3RoID4gMCA/IGB7XCIke3ZhbHVlPy5qb2luPy4oYFwiLFwiYCkgfHwgJyd9XCJ9YCA6IGB7fWApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgICduYW1lJyxcclxuICAgICAge1xyXG4gICAgICAgIHByaWNlOiB7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiAncHJpY2UnLFxyXG4gICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcFByaWNlID0+ICh7XHJcbiAgICAgICAgICAgIHByaWNlLFxyXG4gICAgICAgICAgICBmdWxsUHJpY2U6IGRhdGEuZnVsbF9wcmljZSxcclxuICAgICAgICAgICAgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogZGF0YS5zdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2UsXHJcbiAgICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogZGF0YS5zdWJzY3JpYmVyX3ByaWNlLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLigoZmlsdGVycz8ucHJpY2UgfHwgZmlsdGVycz8ucHJpY2UgPT09IDApICYmIHsgcHJpY2U6IGZpbHRlcnMucHJpY2UgfSksXHJcbiAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzLmZ1bGxQcmljZSB8fCBmaWx0ZXJzLmZ1bGxQcmljZSA9PT0gMCkgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcclxuICAgICAgICAgICAgICAuLi4oKGZpbHRlcnMuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSB8fCBmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgPT09IDApICYmIHtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIC4uLigoZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UgfHwgZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UgPT09IDApICYmIHtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfcHJpY2U6IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAocHJpY2VEYXRhKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi4ocHJpY2VEYXRhPy5wcmljZSA+PSAwICYmIHsgcHJpY2U6IHByaWNlRGF0YS5wcmljZSB9KSxcclxuICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5mdWxsUHJpY2UgPj0gMCAmJiB7IGZ1bGxfcHJpY2U6IHByaWNlRGF0YS5mdWxsUHJpY2UgfSksXHJcbiAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSA+PSAwICYmIHtcclxuICAgICAgICAgICAgICBzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgPj0gMCAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgfSksXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7IGZ1bGxQcmljZTogeyBjb2x1bW5OYW1lOiAnZnVsbF9wcmljZScgfSB9LFxyXG4gICAgICB7IHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IHsgY29sdW1uTmFtZTogJ3N1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZScgfSB9LFxyXG4gICAgICB7IHN1YnNjcmliZXJQcmljZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9wcmljZScgfSB9LFxyXG4gICAgICAncHVibGlzaGVkJyxcclxuICAgICAgJ3NrdScsXHJcbiAgICAgIHtcclxuICAgICAgICBzdG9jazoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ3N0b2NrJyxcclxuICAgICAgICAgIGZyb206IChxdWFudGl0eTogbnVtYmVyKSA9PiAoeyBxdWFudGl0eSB9KSxcclxuICAgICAgICAgIHRvOiAodmFsdWUpID0+IChpc05pbCh2YWx1ZT8ucXVhbnRpdHkpID8gdmFsdWUgOiB2YWx1ZT8ucXVhbnRpdHkpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgICdzbHVnJyxcclxuICAgICAgJ3R5cGUnLFxyXG4gICAgICAndmlkZW8nLFxyXG4gICAgICAnd2VpZ2h0JyxcclxuICAgICAgJ2dlbmRlcicsXHJcbiAgICAgIHsgdGFnczogeyBjb2x1bW5OYW1lOiAndGFncycsIHR5cGU6IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLkpzb25iIH0gfSxcclxuICAgICAgeyBmaWx0ZXJzOiB7IGNvbHVtbk5hbWU6ICdmaWx0ZXJzJywgdHlwZTogSGFzdXJhR3JhcGhRTENvbHVtblR5cGUuSnNvbmIgfSB9LFxyXG4gICAgICB7IGlzS2l0OiB7IGNvbHVtbk5hbWU6ICdpc19raXQnIH0gfSxcclxuICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcclxuICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcclxuICAgICAge1xyXG4gICAgICAgIHJhdGU6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdyZXZpZXdzX2FnZ3JlZ2F0ZScsXHJcbiAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgIGZpbHRlcnM6IHsgc3RhdHVzOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdwcm9kdWN0X3Jldmlld19ib29sX2V4cCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmllbGRzOiBbeyBhZ2dyZWdhdGU6IFt7IGF2ZzogWydyYXRlJ10gfV0gfV0sXHJcbiAgICAgICAgICBmcm9tOiAodmFsdWUpID0+IHZhbHVlLmFnZ3JlZ2F0ZS5hdmcucmF0ZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7IHNob3BwaW5nQ291bnQ6IHsgY29sdW1uTmFtZTogJ3Nob3BwaW5nX2NvdW50JyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjYXRlZ29yeToge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2NhdGVnb3J5JyxcclxuICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgY2F0ZWdvcnlfaWQ6ICdpZCcgfSxcclxuICAgICAgICAgIGZpZWxkczogWydpZCcsICduYW1lJywgJ3JlZmVyZW5jZScsICdzbHVnJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF1cclxuXHJcbiAgICB0aGlzLmZpZWxkcyA9IFtcclxuICAgICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcmllczoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2NhdGVnb3JpZXMnLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ2NhdGVnb3J5X2lkJ10sXHJcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogeyBkYXRhOiB2YWx1ZS5tYXAoKGNhdGVnb3J5KSA9PiAoeyBjYXRlZ29yeV9pZDogK2NhdGVnb3J5IH0pKSB9LFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0bzogKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeUlkKSA9PiArY2F0ZWdvcnlJZCksXHJcbiAgICAgICAgICBmcm9tOiAoY2F0ZWdvcmllczogeyBjYXRlZ29yeV9pZDogbnVtYmVyIH1bXSkgPT5cclxuICAgICAgICAgICAgY2F0ZWdvcmllcz8ubWFwKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnk/LmNhdGVnb3J5X2lkPy50b1N0cmluZygpKSB8fCBbXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAga2l0UHJvZHVjdHM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdraXRfcHJvZHVjdHMnLFxyXG4gICAgICAgICAgZm9yZWlnbktleUNvbHVtbjogeyBwcm9kdWN0SWQ6ICdpZCcgfSxcclxuICAgICAgICAgIGZpZWxkczogW1xyXG4gICAgICAgICAgICB7IHByb2R1Y3RJZDogeyBjb2x1bW5OYW1lOiAncHJvZHVjdF9pZCcgfSB9LFxyXG4gICAgICAgICAgICB7IGtpdFByb2R1Y3RJZDogeyBjb2x1bW5OYW1lOiAna2l0X3Byb2R1Y3RfaWQnIH0gfSxcclxuICAgICAgICAgICAgJ3F1YW50aXR5JyxcclxuICAgICAgICAgICAgeyBwcm9kdWN0OiB7IGNvbHVtbk5hbWU6ICdwcm9kdWN0JywgZm9yZWlnbktleUNvbHVtbjogeyBpZDogJ3Byb2R1Y3RfaWQnIH0sIGZpZWxkczogY29tbW9uRmllbGRzIH0gfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHJldmlld3M6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdyZXZpZXdzJyxcclxuICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgcHJvZHVjdF9pZDogJ2lkJyB9LFxyXG4gICAgICAgICAgZmllbGRzOiB0aGlzLnJldmlld3NGaWVsZHMsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiAnbWV0YWRhdGEnLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ3RpdGxlJywgJ2Rlc2NyaXB0aW9uJ10sXHJcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcclxuICAgICAgICAgICAgbWV0YWRhdGE6IHsgZGF0YTogdmFsdWUgfSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGUocGFyYW1zOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUw+IHtcclxuICAgIGNvbnN0IHsgbWV0YWRhdGEsIC4uLmRhdGEgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHN1cGVyLmNyZWF0ZShcclxuICAgICAgb21pdCh7IC4uLmRhdGEsIG1ldGFkYXRhOiBtZXRhZGF0YSB8fCB7IGRlc2NyaXB0aW9uOiBudWxsLCB0aXRsZTogbnVsbCB9IH0sIFsncmV2aWV3cyddKSxcclxuICAgIClcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBwcm9kdWN0LnJldmlld3MgPSBkYXRhLnJldmlld3MgJiYgKGF3YWl0IHRoaXMudXBkYXRlUmV2aWV3cygrcHJvZHVjdC5pZCwgZGF0YSkpXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZSh7IGlkOiBwcm9kdWN0LmlkIH0pXHJcblxyXG4gICAgICB0aHJvdyBlcnJvclxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IEdldFJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IE51bWJlci5pc05hTigraWRlbnRpZmllcnMuaWQpXHJcbiAgICAgID8gKGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IGlkZW50aWZpZXJzLmlkIH0sIG9wdGlvbnM6IHsgZW5hYmxlQ291bnQ6IGZhbHNlIH0gfSkpLmRhdGE/LlswXVxyXG4gICAgICA6IGF3YWl0IHN1cGVyLmdldChpZGVudGlmaWVycylcclxuXHJcbiAgICBpZiAocHJvZHVjdC5wcm9kdWN0SWQpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKCdQcm9kdWN0IG5vdCBmb3VuZCwgaXQgaXMgYSB2YXJpYW50JylcclxuXHJcbiAgICBwcm9kdWN0LnJldmlld3MgPSBwcm9kdWN0LnJldmlld3MgfHwgKGF3YWl0IHRoaXMuZmluZFJldmlld3NCeVByb2R1Y3QoK3Byb2R1Y3QuaWQpKVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0XHJcbiAgfVxyXG5cclxuICBhc3luYyBmaW5kKHBhcmFtcz86IEZpbmRSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdEhhc3VyYUdyYXBoUUw+PiB7XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGZpZWxkcywgLi4ub3B0aW9ucyB9ID0gcGFyYW1zIHx8IHt9XHJcbiAgICBjb25zdCBiaW5kRmllbGRzID1cclxuICAgICAgZmllbGRzIHx8XHJcbiAgICAgICh0aGlzLmZpZWxkc1xyXG4gICAgICAgIC5tYXAoKGZpZWxkKSA9PiAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyA/IGZpZWxkIDogT2JqZWN0LmtleXMoZmllbGQpLnNoaWZ0KCkpKVxyXG4gICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZCAhPT0gJ3Jldmlld3MnKSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8XHJcbiAgICAgICAgUHJvZHVjdEhhc3VyYUdyYXBoUUwsXHJcbiAgICAgICAga2V5b2YgUHJvZHVjdEhhc3VyYUdyYXBoUUxcclxuICAgICAgPltdKVxyXG5cclxuICAgIHJldHVybiBzdXBlci5maW5kKHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgZmlsdGVyczogeyAuLi5maWx0ZXJzLCBwcm9kdWN0SWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklTTlVMTCB9IH0sXHJcbiAgICAgIGZpZWxkczogYmluZEZpZWxkcyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nKTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5maW5kKHtcclxuICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgIHNsdWcsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkczogdGhpcy5maWVsZHMubWFwKChmaWVsZCkgPT5cclxuICAgICAgICB0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnID8gZmllbGQgOiBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKSxcclxuICAgICAgKSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8UHJvZHVjdEhhc3VyYUdyYXBoUUwsIGtleW9mIFByb2R1Y3RIYXN1cmFHcmFwaFFMPltdLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgZW5hYmxlQ291bnQ6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBwcm9kdWN0ID0gcmVzdWx0Py5kYXRhPy5zaGlmdCgpXHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yaWVzLCBraXRQcm9kdWN0cywgcmV2aWV3cywgaWQ6IGNoZWNrSWQsIHJhdGUsIG1ldGFkYXRhLCAuLi5kYXRhIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGlkOiBjaGVja0lkIH0pXHJcbiAgICBjb25zdCBpZCA9IGF3YWl0IHRoaXMuZ2V0SWQocGxhaW5EYXRhLmlkKVxyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHN1cGVyLnVwZGF0ZSh7IGlkLCAuLi5kYXRhIH0pXHJcblxyXG4gICAgcHJvZHVjdC5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiAoYXdhaXQgdGhpcy51cGRhdGVDYXRlZ29yaWVzKCtpZCwgeyBjYXRlZ29yaWVzIH0pKVxyXG4gICAgcHJvZHVjdC5raXRQcm9kdWN0cyA9IGtpdFByb2R1Y3RzICYmIChhd2FpdCB0aGlzLnVwZGF0ZUtpdFByb2R1Y3RzKCtpZCwgeyBraXRQcm9kdWN0cyB9KSlcclxuICAgIHByb2R1Y3QucmV2aWV3cyA9IHJldmlld3MgJiYgKGF3YWl0IHRoaXMudXBkYXRlUmV2aWV3cygraWQsIHsgcmV2aWV3cyB9KSlcclxuICAgIHByb2R1Y3QubWV0YWRhdGEgPSBtZXRhZGF0YSAmJiAoYXdhaXQgdGhpcy51cGRhdGVNZXRhZGF0YSgraWQsIHsgbWV0YWRhdGEgfSkpXHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoUmV2aWV3cyhzdGF0dXM6IFJldmlld1N0YXR1c1BhcmFtcyk6IFByb21pc2U8UmV2aWV3V2l0aFByb2R1Y3REYXRhW10+IHtcclxuICAgIGNvbnN0IHJldmlld3NFeHByZXNzaW9uID0ge1xyXG4gICAgICBzdGF0dXM6XHJcbiAgICAgICAgc3RhdHVzID09PSAncGVuZGluZydcclxuICAgICAgICAgID8geyBbSGFzdXJhR3JhcGhRTFdoZXJlLklTTlVMTF06IHRydWUgfVxyXG4gICAgICAgICAgOiB7IFtIYXN1cmFHcmFwaFFMV2hlcmUuRVFVQUxTXTogc3RhdHVzID09PSAnYXBwcm92ZWQnIH0sXHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHByb2R1Y3Q6IGRhdGEgfSA9IGF3YWl0IHRoaXMucXVlcnkoXHJcbiAgICAgICdwcm9kdWN0JyxcclxuICAgICAgWydpZCcsICduYW1lJywgJ3NrdScsIHsgcmV2aWV3czogeyBjb2x1bW5OYW1lOiAncmV2aWV3cycsIGZpZWxkczogdGhpcy5yZXZpZXdzRmllbGRzIH0gfV0sXHJcbiAgICAgIHtcclxuICAgICAgICB3aGVyZTogeyB2YWx1ZTogeyByZXZpZXdzOiByZXZpZXdzRXhwcmVzc2lvbiB9LCB0eXBlOiAncHJvZHVjdF9ib29sX2V4cCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIH0sXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIGRhdGEucmVkdWNlKFxyXG4gICAgICAocmV2aWV3cywgcHJvZHVjdCkgPT4gW1xyXG4gICAgICAgIC4uLnJldmlld3MsXHJcbiAgICAgICAgLi4ucHJvZHVjdC5yZXZpZXdzXHJcbiAgICAgICAgICAuZmlsdGVyKFxyXG4gICAgICAgICAgICAocmV2aWV3KSA9PlxyXG4gICAgICAgICAgICAgIChzdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBbdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyhyZXZpZXcuc3RhdHVzKSkgfHxcclxuICAgICAgICAgICAgICAoc3RhdHVzID09PSAnYXBwcm92ZWQnICYmIHJldmlldy5zdGF0dXMgPT09IHRydWUpIHx8XHJcbiAgICAgICAgICAgICAgKHN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiByZXZpZXcuc3RhdHVzID09PSBmYWxzZSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAubWFwKChyZXZpZXcpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuYmluZFJldmlld1RvTW9kZWwocmV2aWV3KSxcclxuICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICBwcm9kdWN0TmFtZTogcHJvZHVjdC5uYW1lLFxyXG4gICAgICAgICAgICBwcm9kdWN0U2t1OiBwcm9kdWN0LnNrdSxcclxuICAgICAgICAgIH0pKSxcclxuICAgICAgXSxcclxuICAgICAgW10gYXMgUmV2aWV3V2l0aFByb2R1Y3REYXRhW10sXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNhdGVnb3JpZXMoXHJcbiAgICBwcm9kdWN0SWQ6IG51bWJlcixcclxuICAgIHsgY2F0ZWdvcmllcyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAnY2F0ZWdvcmllcyc+LFxyXG4gICk6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUxbJ2NhdGVnb3JpZXMnXT4ge1xyXG4gICAgaWYgKCdhY3Rpb24nIGluIGNhdGVnb3JpZXMgJiYgY2F0ZWdvcmllcy5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgdHlwZTogJ2NhdGVnb3J5X3Byb2R1Y3RfYm9vbF9leHAnLFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICB2YWx1ZTogeyBwcm9kdWN0X2lkOiB7IF9lcTogcHJvZHVjdElkIH0gfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIFtdXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgY2F0ZWdvcmllcyB9KVxyXG5cclxuICAgIGlmICghcGxhaW5EYXRhLmNhdGVnb3JpZXMgfHwgcGxhaW5EYXRhLmNhdGVnb3JpZXMubGVuZ3RoIDw9IDApIHJldHVybiBbXVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgd2hlcmU6IHtcclxuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfcHJvZHVjdF9ib29sX2V4cCcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IHsgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9IH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2luc2VydF9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgb2JqZWN0czoge1xyXG4gICAgICAgIHR5cGU6ICdbY2F0ZWdvcnlfcHJvZHVjdF9pbnNlcnRfaW5wdXQhXScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnlJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBwbGFpbkRhdGEuY2F0ZWdvcmllc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVLaXRQcm9kdWN0cyhcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgeyBraXRQcm9kdWN0cyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAna2l0UHJvZHVjdHMnPixcclxuICApOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMWydraXRQcm9kdWN0cyddPiB7XHJcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBraXRQcm9kdWN0cyB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9wcm9kdWN0X2tpdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XHJcbiAgICAgIHdoZXJlOiB7XHJcbiAgICAgICAgdHlwZTogJ3Byb2R1Y3Rfa2l0X2Jvb2xfZXhwJyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogeyBraXRfcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9IH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2luc2VydF9wcm9kdWN0X2tpdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XHJcbiAgICAgIG9iamVjdHM6IHtcclxuICAgICAgICB0eXBlOiAnW3Byb2R1Y3Rfa2l0X2luc2VydF9pbnB1dCFdJyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogcGxhaW5EYXRhLmtpdFByb2R1Y3RzLm1hcCgoa2l0UHJvZHVjdCkgPT4gKHtcclxuICAgICAgICAgIGtpdF9wcm9kdWN0X2lkOiBwcm9kdWN0SWQsXHJcbiAgICAgICAgICBwcm9kdWN0X2lkOiBraXRQcm9kdWN0LnByb2R1Y3RJZCB8fCBraXRQcm9kdWN0LnByb2R1Y3QuaWQsXHJcbiAgICAgICAgICBxdWFudGl0eToga2l0UHJvZHVjdC5xdWFudGl0eSxcclxuICAgICAgICB9KSksXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBwbGFpbkRhdGEua2l0UHJvZHVjdHNcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmV2aWV3cyhcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgeyByZXZpZXdzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4sICdyZXZpZXdzJz4sXHJcbiAgKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3W10+IHtcclxuICAgIGlmICghcmV2aWV3cykgcmV0dXJuIFtdXHJcbiAgICBpZiAoJ2FjdGlvbicgaW4gcmV2aWV3cyAmJiByZXZpZXdzLmFjdGlvbiA9PT0gJ3JlbW92ZScpIHtcclxuICAgICAgY29uc3QgcmV2aWV3SWRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgcmV2aWV3cy52YWx1ZS5tYXAoYXN5bmMgKHJldmlld0RhdGEpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHJldmlldyA9IGF3YWl0IHRoaXMuZmluZFJldmlldyhyZXZpZXdEYXRhLCBwcm9kdWN0SWQpXHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJldmlldz8uaWRcclxuICAgICAgICB9KSxcclxuICAgICAgKVxyXG5cclxuICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignZGVsZXRlX3Byb2R1Y3RfcmV2aWV3JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgICB3aGVyZTogeyB2YWx1ZTogeyBpZDogeyBfaW46IHJldmlld0lkcy5maWx0ZXIoQm9vbGVhbikgfSB9LCB0eXBlOiAncHJvZHVjdF9yZXZpZXdfYm9vbF9leHAnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIHJldmlld3MudmFsdWUubWFwKChyZXZpZXcsIGluZGV4KSA9PiAhcmV2aWV3SWRzW2luZGV4XSAmJiByZXZpZXcpLmZpbHRlcihCb29sZWFuKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IHJldmlld3MgfSlcclxuXHJcbiAgICBpZiAoIXBsYWluRGF0YS5yZXZpZXdzIHx8IHBsYWluRGF0YS5yZXZpZXdzLmxlbmd0aCA8PSAwKSByZXR1cm4gW11cclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIHBsYWluRGF0YS5yZXZpZXdzLm1hcChhc3luYyAocmV2aWV3RGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJldmlldyA9IGF3YWl0IHRoaXMuZmluZFJldmlldyhyZXZpZXdEYXRhLCBwcm9kdWN0SWQpXHJcblxyXG4gICAgICAgIGlmIChyZXZpZXcuaWQpXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9wcm9kdWN0X3Jldmlld19ieV9waycsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICAgICAgICAgICAgcGtfY29sdW1uczoge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogeyBpZDogcmV2aWV3LmlkIH0sXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdwcm9kdWN0X3Jldmlld19wa19jb2x1bW5zX2lucHV0JyxcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgX3NldDoge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb21pdCh0aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgWydpZCcsICdwcm9kdWN0X2lkJ10pLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfc2V0X2lucHV0JyxcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkudXBkYXRlX3Byb2R1Y3RfcmV2aWV3X2J5X3BrLFxyXG4gICAgICAgICAgKVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X3Byb2R1Y3RfcmV2aWV3X29uZScsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6IG9taXQoeyAuLi50aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgcHJvZHVjdF9pZDogcHJvZHVjdElkIH0sIFsnaWQnXSksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfaW5zZXJ0X2lucHV0JyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLmluc2VydF9wcm9kdWN0X3Jldmlld19vbmUsXHJcbiAgICAgICAgKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlTWV0YWRhdGEoXHJcbiAgICBwcm9kdWN0SWQ6IG51bWJlcixcclxuICAgIHsgbWV0YWRhdGEgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiwgJ21ldGFkYXRhJz4sXHJcbiAgKTogUHJvbWlzZTxQcm9kdWN0TWV0YWRhdGE+IHtcclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IG1ldGFkYXRhIH0pXHJcblxyXG4gICAgaWYgKCFwbGFpbkRhdGEubWV0YWRhdGEpIHJldHVyblxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9wcm9kdWN0X21ldGFkYXRhX2J5X3BrJywgWydwcm9kdWN0X2lkJ10sIHtcclxuICAgICAgcGtfY29sdW1uczoge1xyXG4gICAgICAgIHZhbHVlOiB7IHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9LFxyXG4gICAgICAgIHR5cGU6ICdwcm9kdWN0X21ldGFkYXRhX3BrX2NvbHVtbnNfaW5wdXQnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBfc2V0OiB7XHJcbiAgICAgICAgdmFsdWU6IG9taXQobWV0YWRhdGEsIFsncHJvZHVjdF9pZCddKSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9tZXRhZGF0YV9zZXRfaW5wdXQnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gcGxhaW5EYXRhLm1ldGFkYXRhXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldElkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgaWYgKCFOdW1iZXIuaXNOYU4oK2lkKSkgcmV0dXJuIGlkXHJcblxyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZCB9LCBvcHRpb25zOiB7IGVuYWJsZUNvdW50OiBmYWxzZSB9IH0pXHJcblxyXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXHJcblxyXG4gICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFByb2R1Y3Qgd2l0aCBpZCAke2lkfSBub3QgZm91bmRgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmaW5kUmV2aWV3c0J5UHJvZHVjdChwcm9kdWN0SWQ6IG51bWJlcik6IFByb21pc2U8UHJvZHVjdFJldmlld1tdPiB7XHJcbiAgICBjb25zdCB7IHByb2R1Y3RfcmV2aWV3OiBkYXRhIH0gPSBhd2FpdCB0aGlzLnF1ZXJ5KCdwcm9kdWN0X3JldmlldycsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICB3aGVyZToge1xyXG4gICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICBwcm9kdWN0X2lkOiB7IF9lcTogcHJvZHVjdElkIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfYm9vbF9leHAnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhLm1hcCgocmV2aWV3KSA9PiB0aGlzLmJpbmRSZXZpZXdUb01vZGVsKHJldmlldykpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRSZXZpZXcocmV2aWV3OiBQcm9kdWN0UmV2aWV3LCBwcm9kdWN0SWQ6IG51bWJlcik6IFByb21pc2U8UHJvZHVjdFJldmlldz4ge1xyXG4gICAgaWYgKHJldmlldy5pZCkgcmV0dXJuIHJldmlld1xyXG5cclxuICAgIGxldCBsb2FkZWRSZXZpZXc6IFByb2R1Y3RSZXZpZXdcclxuXHJcbiAgICBpZiAocmV2aWV3LnBlcnNvbklkKSBsb2FkZWRSZXZpZXcgPSBhd2FpdCB0aGlzLmdldFJldmlld0J5UGVyc29uSWQocmV2aWV3LnBlcnNvbklkLCBwcm9kdWN0SWQsIHJldmlldy5vcmRlcklkKVxyXG4gICAgaWYgKCFsb2FkZWRSZXZpZXcgJiYgcmV2aWV3LmF1dGhvciAmJiByZXZpZXcuZW1haWwpXHJcbiAgICAgIGxvYWRlZFJldmlldyA9IGF3YWl0IHRoaXMuZ2V0UmV2aWV3QnlBdXRob3JBbmRFbWFpbChyZXZpZXcuYXV0aG9yLCByZXZpZXcuZW1haWwsIHByb2R1Y3RJZCwgcmV2aWV3Lm9yZGVySWQpXHJcblxyXG4gICAgcmV0dXJuIGxvYWRlZFJldmlldyB8fCByZXZpZXdcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmV2aWV3QnlQZXJzb25JZChwZXJzb25JZDogbnVtYmVyLCBwcm9kdWN0SWQ6IG51bWJlciwgb3JkZXJJZD86IHN0cmluZyk6IFByb21pc2U8UHJvZHVjdFJldmlldz4ge1xyXG4gICAgY29uc3QgeyBwcm9kdWN0X3JldmlldzogZGF0YSB9ID0gYXdhaXQgdGhpcy5xdWVyeSgncHJvZHVjdF9yZXZpZXcnLCB0aGlzLnJldmlld3NGaWVsZHMsIHtcclxuICAgICAgd2hlcmU6IHtcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9LFxyXG4gICAgICAgICAgcGVyc29uX2lkOiB7IF9lcTogcGVyc29uSWQgfSxcclxuICAgICAgICAgIC4uLihvcmRlcklkICYmIHsgb3JkZXJfaWQ6IHsgX2VxOiBvcmRlcklkIH0gfSksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0eXBlOiBgcHJvZHVjdF9yZXZpZXdfYm9vbF9leHBgLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhWzBdICYmIHRoaXMuYmluZFJldmlld1RvTW9kZWwoZGF0YVswXSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmV2aWV3QnlBdXRob3JBbmRFbWFpbChcclxuICAgIGF1dGhvcjogc3RyaW5nLFxyXG4gICAgZW1haWw6IHN0cmluZyxcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgb3JkZXJJZD86IHN0cmluZyxcclxuICApOiBQcm9taXNlPFByb2R1Y3RSZXZpZXc+IHtcclxuICAgIGNvbnN0IHsgcHJvZHVjdF9yZXZpZXc6IGRhdGEgfSA9IGF3YWl0IHRoaXMucXVlcnkoJ3Byb2R1Y3RfcmV2aWV3JywgdGhpcy5yZXZpZXdzRmllbGRzLCB7XHJcbiAgICAgIHdoZXJlOiB7XHJcbiAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgIHByb2R1Y3RfaWQ6IHsgX2VxOiBwcm9kdWN0SWQgfSxcclxuICAgICAgICAgIGF1dGhvcjogeyBfZXE6IGF1dGhvciB9LFxyXG4gICAgICAgICAgZW1haWw6IHsgX2VxOiBlbWFpbCB9LFxyXG4gICAgICAgICAgLi4uKG9yZGVySWQgJiYgeyBvcmRlcl9pZDogeyBfZXE6IG9yZGVySWQgfSB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHR5cGU6IGBwcm9kdWN0X3Jldmlld19ib29sX2V4cGAsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBkYXRhICYmIGRhdGFbMF0gJiYgdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChkYXRhWzBdKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiaW5kUmV2aWV3VG9Nb2RlbCA9IChwbGFpbjogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb2R1Y3RSZXZpZXcgPT4gKHtcclxuICAgIC4uLm9taXQocGxhaW4sIFsncHJvZHVjdF9pZCcsICdjcmVhdGVkX2F0JywgJ3VwZGF0ZWRfYXQnLCAncGVyc29uX2lkJywgJ29yZGVyX2lkJ10pLFxyXG4gICAgY3JlYXRlZEF0OiB0eXBlb2YgcGxhaW4uY3JlYXRlZF9hdCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShwbGFpbi5jcmVhdGVkX2F0KSA6IHBsYWluLmNyZWF0ZWRfYXQsXHJcbiAgICB1cGRhdGVkQXQ6IHR5cGVvZiBwbGFpbi51cGRhdGVkX2F0ID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKHBsYWluLnVwZGF0ZWRfYXQpIDogcGxhaW4udXBkYXRlZF9hdCxcclxuICAgIHBlcnNvbklkOiBwbGFpbi5wZXJzb25faWQsXHJcbiAgICBvcmRlcklkOiBwbGFpbi5vcmRlcl9pZCxcclxuICB9KVxyXG5cclxuICBwcml2YXRlIGJpbmRSZXZpZXdUb0hhc3VyYSA9IChyZXZpZXc6IFByb2R1Y3RSZXZpZXcpOiBQcm9kdWN0UmV2aWV3RmllbGRzID0+ICh7XHJcbiAgICAuLi5vbWl0KHJldmlldywgWydwcm9kdWN0SWQnLCAnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCcsICdwZXJzb25JZCcsICdvcmRlcklkJ10pLFxyXG4gICAgcGVyc29uX2lkOiByZXZpZXcucGVyc29uSWQsXHJcbiAgICBvcmRlcl9pZDogcmV2aWV3Lm9yZGVySWQsXHJcbiAgfSlcclxuXHJcbiAgYXN5bmMgY2xlYW5TaG9wcGluZ0NvdW50RnJvbUlkcyhpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5tdXRhdGlvbigndXBkYXRlX3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xyXG4gICAgICB3aGVyZToge1xyXG4gICAgICAgIHZhbHVlOiB7IGlkOiB7IF9uaW46IGlkcyB9IH0sXHJcbiAgICAgICAgdHlwZTogJ3Byb2R1Y3RfYm9vbF9leHAnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBfc2V0OiB7XHJcbiAgICAgICAgdmFsdWU6IHsgc2hvcHBpbmdfY291bnQ6IDAgfSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9zZXRfaW5wdXQnLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvcHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBY0wsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBb0JuRCxNQUFNLE9BQU8sOEJBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFzQjVFLFlBQVksUUFBZ0IsRUFBRSxXQUFxQztRQUNqRSxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFFBQVE7WUFDUixXQUFXO1lBQ1gsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQUE7UUFtaEJJLHNCQUFpQixHQUFHLENBQUMsS0FBMEIsRUFBaUIsRUFBRSxDQUFDLGlDQUN0RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQ25GLFNBQVMsRUFBRSxPQUFP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QyxDQUFDLENBQUE7UUFDM0QsQ0FBQztLQUFBO0lBZ0JLLHlCQUF5QixDQUFDLEdBQWE7O1lBQzNDLE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzlELEtBQUssRUFBRTtvQkFDTCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7b0JBQzVCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFO29CQUM1QixJQUFJLEVBQUUsbUJBQW1CO2lCQUMxQjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIEZpbmRSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIEdldFJlcG9zaXRvcnlQYXJhbXMsXHJcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxyXG4gIFByb2R1Y3RNZXRhZGF0YSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3LFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFJldmlld1N0YXR1c1BhcmFtcyxcclxuICBSZXZpZXdXaXRoUHJvZHVjdERhdGEsXHJcbiAgU2hvcFByaWNlLFxyXG4gIFNob3BzLFxyXG4gIFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXMsXHJcbiAgV2hlcmUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzJ1xyXG5pbXBvcnQgeyBCYXNlLCBpc05pbCwgb21pdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXHJcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXHJcbmltcG9ydCB7IFByb2R1Y3RIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi4vLi4vbW9kZWxzJ1xyXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuXHJcbnR5cGUgUHJvZHVjdFJldmlld0ZpZWxkcyA9IHtcclxuICBpZD86IHN0cmluZ1xyXG4gIHNob3A6IFNob3BzXHJcbiAgcmF0ZTogbnVtYmVyXHJcbiAgYXV0aG9yPzogc3RyaW5nXHJcbiAgZW1haWw/OiBzdHJpbmdcclxuICBsb2NhdGlvbj86IHN0cmluZ1xyXG4gIHJldmlldz86IHN0cmluZ1xyXG4gIHN0YXR1cz86IGJvb2xlYW5cclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIHBlcnNvbklkPzogbnVtYmVyXHJcbiAgcG9pbnRzPzogbnVtYmVyXHJcbiAgb3JkZXJJZD86IHN0cmluZ1xyXG4gIGNyZWF0ZWRBdD86IERhdGVcclxuICB1cGRhdGVkQXQ/OiBEYXRlXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcclxuICBleHRlbmRzIHdpdGhDcnVkSGFzdXJhR3JhcGhRTCh3aXRoSGFzdXJhR3JhcGhRTDxQcm9kdWN0SGFzdXJhR3JhcGhRTD4oQmFzZSkpXHJcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxyXG57XHJcbiAgcHJpdmF0ZSBnZXQgcmV2aWV3c0ZpZWxkcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgJ2lkJyxcclxuICAgICAgJ3Nob3AnLFxyXG4gICAgICAncmF0ZScsXHJcbiAgICAgICdhdXRob3InLFxyXG4gICAgICAnZW1haWwnLFxyXG4gICAgICAnbG9jYXRpb24nLFxyXG4gICAgICAncmV2aWV3JyxcclxuICAgICAgJ3N0YXR1cycsXHJcbiAgICAgICd0aXRsZScsXHJcbiAgICAgIHsgcGVyc29uSWQ6IHsgY29sdW1uTmFtZTogJ3BlcnNvbl9pZCcgfSB9LFxyXG4gICAgICAncG9pbnRzJyxcclxuICAgICAgeyBvcmRlcklkOiB7IGNvbHVtbk5hbWU6ICdvcmRlcl9pZCcgfSB9LFxyXG4gICAgICB7IGNyZWF0ZWRBdDogeyBjb2x1bW5OYW1lOiAnY3JlYXRlZF9hdCcgfSB9LFxyXG4gICAgICB7IHVwZGF0ZWRBdDogeyBjb2x1bW5OYW1lOiAndXBkYXRlZF9hdCcgfSB9LFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IHN0cmluZywgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucykge1xyXG4gICAgc3VwZXIoe1xyXG4gICAgICB0YWJsZU5hbWU6ICdwcm9kdWN0JyxcclxuICAgICAgbW9kZWw6IFByb2R1Y3RIYXN1cmFHcmFwaFFMLFxyXG4gICAgICBlbmRwb2ludCxcclxuICAgICAgYXV0aE9wdGlvbnMsXHJcbiAgICAgIGZpZWxkczogW10sXHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IGNvbW1vbkZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4gPSBbXHJcbiAgICAgIHsgaWQ6IHsgY29sdW1uTmFtZTogJ2lkJywgdG86ICh2YWx1ZSkgPT4gK3ZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlLnRvU3RyaW5nKCkgfSB9LFxyXG4gICAgICB7IGZpcmVzdG9yZUlkOiB7IGNvbHVtbk5hbWU6ICdmaXJlc3RvcmVfaWQnIH0gfSxcclxuICAgICAgeyBwcm9kdWN0SWQ6IHsgY29sdW1uTmFtZTogJ21haW5fcHJvZHVjdF9pZCcgfSB9LFxyXG4gICAgICB7IENFU1Q6IHsgY29sdW1uTmFtZTogJ2Nlc3QnIH0gfSxcclxuICAgICAgeyBFQU46IHsgY29sdW1uTmFtZTogJ2VhbicgfSB9LFxyXG4gICAgICB7IE5DTTogeyBjb2x1bW5OYW1lOiAnbmNtJyB9IH0sXHJcbiAgICAgICdicmFuZCcsXHJcbiAgICAgIHsgY29zdFByaWNlOiB7IGNvbHVtbk5hbWU6ICdjb3N0X3ByaWNlJyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2Rlc2NyaXB0aW9uJyxcclxuICAgICAgICAgIGZyb206IChkZXNjcmlwdGlvbiwgZGF0YSkgPT4gKHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGRpZmZlcmVudGlhbHM6IGRhdGEuZGlmZmVyZW50aWFscyxcclxuICAgICAgICAgICAgd2hvTXVzdFVzZTogZGF0YS53aG9fbXVzdF91c2UsXHJcbiAgICAgICAgICAgIGhvd1RvVXNlOiBkYXRhLmhvd190b191c2UsXHJcbiAgICAgICAgICAgIGJyYW5kOiBkYXRhLmJyYW5kX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzPy5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBmaWx0ZXJzLmRlc2NyaXB0aW9uIH0pLFxyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzLmRpZmZlcmVudGlhbHMgJiYgeyBkaWZmZXJlbnRpYWxzOiBmaWx0ZXJzLmRpZmZlcmVudGlhbHMgfSksXHJcbiAgICAgICAgICAgICAgLi4uKGZpbHRlcnMud2hvTXVzdFVzZSAmJiB7XHJcbiAgICAgICAgICAgICAgICB3aG9fbXVzdF91c2U6IGZpbHRlcnMud2hvTXVzdFVzZSxcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAuLi4oZmlsdGVycy5ob3dUb1VzZSAmJiB7XHJcbiAgICAgICAgICAgICAgICBob3dfdG9fdXNlOiBmaWx0ZXJzLmhvd1RvVXNlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJzLmJyYW5kICYmIHtcclxuICAgICAgICAgICAgICAgIGJyYW5kX2Rlc2NyaXB0aW9uOiBmaWx0ZXJzLmJyYW5kLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAoZGVzY3JpcHRpb25EYXRhKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhPy5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbkRhdGEuZGVzY3JpcHRpb24gfSksXHJcbiAgICAgICAgICAgIC4uLihkZXNjcmlwdGlvbkRhdGEuZGlmZmVyZW50aWFscyAmJiB7IGRpZmZlcmVudGlhbHM6IGRlc2NyaXB0aW9uRGF0YS5kaWZmZXJlbnRpYWxzIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLndob011c3RVc2UgJiYge1xyXG4gICAgICAgICAgICAgIHdob19tdXN0X3VzZTogZGVzY3JpcHRpb25EYXRhLndob011c3RVc2UsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLmhvd1RvVXNlICYmIHsgaG93X3RvX3VzZTogZGVzY3JpcHRpb25EYXRhLmhvd1RvVXNlIH0pLFxyXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb25EYXRhLmJyYW5kICYmIHsgYnJhbmRfZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uRGF0YS5icmFuZCB9KSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgZGlmZmVyZW50aWFsczogeyBjb2x1bW5OYW1lOiAnZGlmZmVyZW50aWFscycgfSB9LFxyXG4gICAgICB7IHdob011c3RVc2U6IHsgY29sdW1uTmFtZTogJ3dob19tdXN0X3VzZScgfSB9LFxyXG4gICAgICB7IGhvd1RvVXNlOiB7IGNvbHVtbk5hbWU6ICdob3dfdG9fdXNlJyB9IH0sXHJcbiAgICAgIHsgYnJhbmREZXNjcmlwdGlvbjogeyBjb2x1bW5OYW1lOiAnYnJhbmRfZGVzY3JpcHRpb24nIH0gfSxcclxuICAgICAgeyBoYXNWYXJpYW50czogeyBjb2x1bW5OYW1lOiAnaGFzX3ZhcmlhbnRzJyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZXM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdpbWFnZXMnLFxyXG4gICAgICAgICAgdG86ICh2YWx1ZSkgPT4gKHZhbHVlPy5sZW5ndGggPiAwID8gYHtcIiR7dmFsdWU/LmpvaW4/LihgXCIsXCJgKSB8fCAnJ31cIn1gIDogYHt9YCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1pbmlhdHVyZXM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdtaW5pYXR1cmVzJyxcclxuICAgICAgICAgIHRvOiAodmFsdWUpID0+ICh2YWx1ZT8ubGVuZ3RoID4gMCA/IGB7XCIke3ZhbHVlPy5qb2luPy4oYFwiLFwiYCkgfHwgJyd9XCJ9YCA6IGB7fWApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgICduYW1lJyxcclxuICAgICAge1xyXG4gICAgICAgIHByaWNlOiB7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiAncHJpY2UnLFxyXG4gICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcFByaWNlID0+ICh7XHJcbiAgICAgICAgICAgIHByaWNlLFxyXG4gICAgICAgICAgICBmdWxsUHJpY2U6IGRhdGEuZnVsbF9wcmljZSxcclxuICAgICAgICAgICAgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogZGF0YS5zdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2UsXHJcbiAgICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogZGF0YS5zdWJzY3JpYmVyX3ByaWNlLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLigoZmlsdGVycz8ucHJpY2UgfHwgZmlsdGVycz8ucHJpY2UgPT09IDApICYmIHsgcHJpY2U6IGZpbHRlcnMucHJpY2UgfSksXHJcbiAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzLmZ1bGxQcmljZSB8fCBmaWx0ZXJzLmZ1bGxQcmljZSA9PT0gMCkgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcclxuICAgICAgICAgICAgICAuLi4oKGZpbHRlcnMuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSB8fCBmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgPT09IDApICYmIHtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIC4uLigoZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UgfHwgZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UgPT09IDApICYmIHtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfcHJpY2U6IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAocHJpY2VEYXRhKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi4ocHJpY2VEYXRhPy5wcmljZSA+PSAwICYmIHsgcHJpY2U6IHByaWNlRGF0YS5wcmljZSB9KSxcclxuICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5mdWxsUHJpY2UgPj0gMCAmJiB7IGZ1bGxfcHJpY2U6IHByaWNlRGF0YS5mdWxsUHJpY2UgfSksXHJcbiAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSA+PSAwICYmIHtcclxuICAgICAgICAgICAgICBzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgPj0gMCAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgfSksXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7IGZ1bGxQcmljZTogeyBjb2x1bW5OYW1lOiAnZnVsbF9wcmljZScgfSB9LFxyXG4gICAgICB7IHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IHsgY29sdW1uTmFtZTogJ3N1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZScgfSB9LFxyXG4gICAgICB7IHN1YnNjcmliZXJQcmljZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9wcmljZScgfSB9LFxyXG4gICAgICAncHVibGlzaGVkJyxcclxuICAgICAgJ3NrdScsXHJcbiAgICAgIHtcclxuICAgICAgICBzdG9jazoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ3N0b2NrJyxcclxuICAgICAgICAgIGZyb206IChxdWFudGl0eTogbnVtYmVyKSA9PiAoeyBxdWFudGl0eSB9KSxcclxuICAgICAgICAgIHRvOiAodmFsdWUpID0+IChpc05pbCh2YWx1ZT8ucXVhbnRpdHkpID8gdmFsdWUgOiB2YWx1ZT8ucXVhbnRpdHkpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgICdzbHVnJyxcclxuICAgICAgJ3R5cGUnLFxyXG4gICAgICAndmlkZW8nLFxyXG4gICAgICAnd2VpZ2h0JyxcclxuICAgICAgJ2dlbmRlcicsXHJcbiAgICAgIHsgdGFnczogeyBjb2x1bW5OYW1lOiAndGFncycsIHR5cGU6IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLkpzb25iIH0gfSxcclxuICAgICAgeyBmaWx0ZXJzOiB7IGNvbHVtbk5hbWU6ICdmaWx0ZXJzJywgdHlwZTogSGFzdXJhR3JhcGhRTENvbHVtblR5cGUuSnNvbmIgfSB9LFxyXG4gICAgICB7IGlzS2l0OiB7IGNvbHVtbk5hbWU6ICdpc19raXQnIH0gfSxcclxuICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcclxuICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcclxuICAgICAge1xyXG4gICAgICAgIHJhdGU6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdyZXZpZXdzX2FnZ3JlZ2F0ZScsXHJcbiAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgIGZpbHRlcnM6IHsgc3RhdHVzOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdwcm9kdWN0X3Jldmlld19ib29sX2V4cCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmllbGRzOiBbeyBhZ2dyZWdhdGU6IFt7IGF2ZzogWydyYXRlJ10gfV0gfV0sXHJcbiAgICAgICAgICBmcm9tOiAodmFsdWUpID0+IHZhbHVlLmFnZ3JlZ2F0ZS5hdmcucmF0ZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7IHNob3BwaW5nQ291bnQ6IHsgY29sdW1uTmFtZTogJ3Nob3BwaW5nX2NvdW50JyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjYXRlZ29yeToge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2NhdGVnb3J5X2lkJyxcclxuICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgY2F0ZWdvcnlfaWQ6ICdpZCcgfSxcclxuICAgICAgICAgIGZpZWxkczogWydpZCcsICduYW1lJywgJ3JlZmVyZW5jZScsICdzbHVnJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF1cclxuXHJcbiAgICB0aGlzLmZpZWxkcyA9IFtcclxuICAgICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgICB7XHJcbiAgICAgICAgY2F0ZWdvcmllczoge1xyXG4gICAgICAgICAgY29sdW1uTmFtZTogJ2NhdGVnb3JpZXMnLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ2NhdGVnb3J5X2lkJ10sXHJcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogeyBkYXRhOiB2YWx1ZS5tYXAoKGNhdGVnb3J5KSA9PiAoeyBjYXRlZ29yeV9pZDogK2NhdGVnb3J5IH0pKSB9LFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0bzogKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeUlkKSA9PiArY2F0ZWdvcnlJZCksXHJcbiAgICAgICAgICBmcm9tOiAoY2F0ZWdvcmllczogeyBjYXRlZ29yeV9pZDogbnVtYmVyIH1bXSkgPT5cclxuICAgICAgICAgICAgY2F0ZWdvcmllcz8ubWFwKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnk/LmNhdGVnb3J5X2lkPy50b1N0cmluZygpKSB8fCBbXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAga2l0UHJvZHVjdHM6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdraXRfcHJvZHVjdHMnLFxyXG4gICAgICAgICAgZm9yZWlnbktleUNvbHVtbjogeyBwcm9kdWN0SWQ6ICdpZCcgfSxcclxuICAgICAgICAgIGZpZWxkczogW1xyXG4gICAgICAgICAgICB7IHByb2R1Y3RJZDogeyBjb2x1bW5OYW1lOiAncHJvZHVjdF9pZCcgfSB9LFxyXG4gICAgICAgICAgICB7IGtpdFByb2R1Y3RJZDogeyBjb2x1bW5OYW1lOiAna2l0X3Byb2R1Y3RfaWQnIH0gfSxcclxuICAgICAgICAgICAgJ3F1YW50aXR5JyxcclxuICAgICAgICAgICAgeyBwcm9kdWN0OiB7IGNvbHVtbk5hbWU6ICdwcm9kdWN0JywgZm9yZWlnbktleUNvbHVtbjogeyBpZDogJ3Byb2R1Y3RfaWQnIH0sIGZpZWxkczogY29tbW9uRmllbGRzIH0gfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHJldmlld3M6IHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6ICdyZXZpZXdzJyxcclxuICAgICAgICAgIGZvcmVpZ25LZXlDb2x1bW46IHsgcHJvZHVjdF9pZDogJ2lkJyB9LFxyXG4gICAgICAgICAgZmllbGRzOiB0aGlzLnJldmlld3NGaWVsZHMsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiAnbWV0YWRhdGEnLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ3RpdGxlJywgJ2Rlc2NyaXB0aW9uJ10sXHJcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcclxuICAgICAgICAgICAgbWV0YWRhdGE6IHsgZGF0YTogdmFsdWUgfSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGUocGFyYW1zOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUw+IHtcclxuICAgIGNvbnN0IHsgbWV0YWRhdGEsIC4uLmRhdGEgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHN1cGVyLmNyZWF0ZShcclxuICAgICAgb21pdCh7IC4uLmRhdGEsIG1ldGFkYXRhOiBtZXRhZGF0YSB8fCB7IGRlc2NyaXB0aW9uOiBudWxsLCB0aXRsZTogbnVsbCB9IH0sIFsncmV2aWV3cyddKSxcclxuICAgIClcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBwcm9kdWN0LnJldmlld3MgPSBkYXRhLnJldmlld3MgJiYgKGF3YWl0IHRoaXMudXBkYXRlUmV2aWV3cygrcHJvZHVjdC5pZCwgZGF0YSkpXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZSh7IGlkOiBwcm9kdWN0LmlkIH0pXHJcblxyXG4gICAgICB0aHJvdyBlcnJvclxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IEdldFJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IE51bWJlci5pc05hTigraWRlbnRpZmllcnMuaWQpXHJcbiAgICAgID8gKGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IGlkZW50aWZpZXJzLmlkIH0sIG9wdGlvbnM6IHsgZW5hYmxlQ291bnQ6IGZhbHNlIH0gfSkpLmRhdGE/LlswXVxyXG4gICAgICA6IGF3YWl0IHN1cGVyLmdldChpZGVudGlmaWVycylcclxuXHJcbiAgICBpZiAocHJvZHVjdC5wcm9kdWN0SWQpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKCdQcm9kdWN0IG5vdCBmb3VuZCwgaXQgaXMgYSB2YXJpYW50JylcclxuXHJcbiAgICBwcm9kdWN0LnJldmlld3MgPSBwcm9kdWN0LnJldmlld3MgfHwgKGF3YWl0IHRoaXMuZmluZFJldmlld3NCeVByb2R1Y3QoK3Byb2R1Y3QuaWQpKVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0XHJcbiAgfVxyXG5cclxuICBhc3luYyBmaW5kKHBhcmFtcz86IEZpbmRSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdEhhc3VyYUdyYXBoUUw+PiB7XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGZpZWxkcywgLi4ub3B0aW9ucyB9ID0gcGFyYW1zIHx8IHt9XHJcbiAgICBjb25zdCBiaW5kRmllbGRzID1cclxuICAgICAgZmllbGRzIHx8XHJcbiAgICAgICh0aGlzLmZpZWxkc1xyXG4gICAgICAgIC5tYXAoKGZpZWxkKSA9PiAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyA/IGZpZWxkIDogT2JqZWN0LmtleXMoZmllbGQpLnNoaWZ0KCkpKVxyXG4gICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZCAhPT0gJ3Jldmlld3MnKSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8XHJcbiAgICAgICAgUHJvZHVjdEhhc3VyYUdyYXBoUUwsXHJcbiAgICAgICAga2V5b2YgUHJvZHVjdEhhc3VyYUdyYXBoUUxcclxuICAgICAgPltdKVxyXG5cclxuICAgIHJldHVybiBzdXBlci5maW5kKHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgZmlsdGVyczogeyAuLi5maWx0ZXJzLCBwcm9kdWN0SWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklTTlVMTCB9IH0sXHJcbiAgICAgIGZpZWxkczogYmluZEZpZWxkcyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nKTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5maW5kKHtcclxuICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgIHNsdWcsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkczogdGhpcy5maWVsZHMubWFwKChmaWVsZCkgPT5cclxuICAgICAgICB0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnID8gZmllbGQgOiBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKSxcclxuICAgICAgKSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8UHJvZHVjdEhhc3VyYUdyYXBoUUwsIGtleW9mIFByb2R1Y3RIYXN1cmFHcmFwaFFMPltdLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgZW5hYmxlQ291bnQ6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBwcm9kdWN0ID0gcmVzdWx0Py5kYXRhPy5zaGlmdCgpXHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yaWVzLCBraXRQcm9kdWN0cywgcmV2aWV3cywgaWQ6IGNoZWNrSWQsIHJhdGUsIG1ldGFkYXRhLCAuLi5kYXRhIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGlkOiBjaGVja0lkIH0pXHJcbiAgICBjb25zdCBpZCA9IGF3YWl0IHRoaXMuZ2V0SWQocGxhaW5EYXRhLmlkKVxyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHN1cGVyLnVwZGF0ZSh7IGlkLCAuLi5kYXRhIH0pXHJcblxyXG4gICAgcHJvZHVjdC5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiAoYXdhaXQgdGhpcy51cGRhdGVDYXRlZ29yaWVzKCtpZCwgeyBjYXRlZ29yaWVzIH0pKVxyXG4gICAgcHJvZHVjdC5raXRQcm9kdWN0cyA9IGtpdFByb2R1Y3RzICYmIChhd2FpdCB0aGlzLnVwZGF0ZUtpdFByb2R1Y3RzKCtpZCwgeyBraXRQcm9kdWN0cyB9KSlcclxuICAgIHByb2R1Y3QucmV2aWV3cyA9IHJldmlld3MgJiYgKGF3YWl0IHRoaXMudXBkYXRlUmV2aWV3cygraWQsIHsgcmV2aWV3cyB9KSlcclxuICAgIHByb2R1Y3QubWV0YWRhdGEgPSBtZXRhZGF0YSAmJiAoYXdhaXQgdGhpcy51cGRhdGVNZXRhZGF0YSgraWQsIHsgbWV0YWRhdGEgfSkpXHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoUmV2aWV3cyhzdGF0dXM6IFJldmlld1N0YXR1c1BhcmFtcyk6IFByb21pc2U8UmV2aWV3V2l0aFByb2R1Y3REYXRhW10+IHtcclxuICAgIGNvbnN0IHJldmlld3NFeHByZXNzaW9uID0ge1xyXG4gICAgICBzdGF0dXM6XHJcbiAgICAgICAgc3RhdHVzID09PSAncGVuZGluZydcclxuICAgICAgICAgID8geyBbSGFzdXJhR3JhcGhRTFdoZXJlLklTTlVMTF06IHRydWUgfVxyXG4gICAgICAgICAgOiB7IFtIYXN1cmFHcmFwaFFMV2hlcmUuRVFVQUxTXTogc3RhdHVzID09PSAnYXBwcm92ZWQnIH0sXHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHByb2R1Y3Q6IGRhdGEgfSA9IGF3YWl0IHRoaXMucXVlcnkoXHJcbiAgICAgICdwcm9kdWN0JyxcclxuICAgICAgWydpZCcsICduYW1lJywgJ3NrdScsIHsgcmV2aWV3czogeyBjb2x1bW5OYW1lOiAncmV2aWV3cycsIGZpZWxkczogdGhpcy5yZXZpZXdzRmllbGRzIH0gfV0sXHJcbiAgICAgIHtcclxuICAgICAgICB3aGVyZTogeyB2YWx1ZTogeyByZXZpZXdzOiByZXZpZXdzRXhwcmVzc2lvbiB9LCB0eXBlOiAncHJvZHVjdF9ib29sX2V4cCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIH0sXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIGRhdGEucmVkdWNlKFxyXG4gICAgICAocmV2aWV3cywgcHJvZHVjdCkgPT4gW1xyXG4gICAgICAgIC4uLnJldmlld3MsXHJcbiAgICAgICAgLi4ucHJvZHVjdC5yZXZpZXdzXHJcbiAgICAgICAgICAuZmlsdGVyKFxyXG4gICAgICAgICAgICAocmV2aWV3KSA9PlxyXG4gICAgICAgICAgICAgIChzdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBbdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyhyZXZpZXcuc3RhdHVzKSkgfHxcclxuICAgICAgICAgICAgICAoc3RhdHVzID09PSAnYXBwcm92ZWQnICYmIHJldmlldy5zdGF0dXMgPT09IHRydWUpIHx8XHJcbiAgICAgICAgICAgICAgKHN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiByZXZpZXcuc3RhdHVzID09PSBmYWxzZSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAubWFwKChyZXZpZXcpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuYmluZFJldmlld1RvTW9kZWwocmV2aWV3KSxcclxuICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICBwcm9kdWN0TmFtZTogcHJvZHVjdC5uYW1lLFxyXG4gICAgICAgICAgICBwcm9kdWN0U2t1OiBwcm9kdWN0LnNrdSxcclxuICAgICAgICAgIH0pKSxcclxuICAgICAgXSxcclxuICAgICAgW10gYXMgUmV2aWV3V2l0aFByb2R1Y3REYXRhW10sXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNhdGVnb3JpZXMoXHJcbiAgICBwcm9kdWN0SWQ6IG51bWJlcixcclxuICAgIHsgY2F0ZWdvcmllcyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAnY2F0ZWdvcmllcyc+LFxyXG4gICk6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUxbJ2NhdGVnb3JpZXMnXT4ge1xyXG4gICAgaWYgKCdhY3Rpb24nIGluIGNhdGVnb3JpZXMgJiYgY2F0ZWdvcmllcy5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgdHlwZTogJ2NhdGVnb3J5X3Byb2R1Y3RfYm9vbF9leHAnLFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICB2YWx1ZTogeyBwcm9kdWN0X2lkOiB7IF9lcTogcHJvZHVjdElkIH0gfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIFtdXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgY2F0ZWdvcmllcyB9KVxyXG5cclxuICAgIGlmICghcGxhaW5EYXRhLmNhdGVnb3JpZXMgfHwgcGxhaW5EYXRhLmNhdGVnb3JpZXMubGVuZ3RoIDw9IDApIHJldHVybiBbXVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgd2hlcmU6IHtcclxuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfcHJvZHVjdF9ib29sX2V4cCcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IHsgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9IH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2luc2VydF9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgb2JqZWN0czoge1xyXG4gICAgICAgIHR5cGU6ICdbY2F0ZWdvcnlfcHJvZHVjdF9pbnNlcnRfaW5wdXQhXScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnlJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBwbGFpbkRhdGEuY2F0ZWdvcmllc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVLaXRQcm9kdWN0cyhcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgeyBraXRQcm9kdWN0cyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAna2l0UHJvZHVjdHMnPixcclxuICApOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMWydraXRQcm9kdWN0cyddPiB7XHJcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBraXRQcm9kdWN0cyB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9wcm9kdWN0X2tpdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XHJcbiAgICAgIHdoZXJlOiB7XHJcbiAgICAgICAgdHlwZTogJ3Byb2R1Y3Rfa2l0X2Jvb2xfZXhwJyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogeyBraXRfcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9IH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2luc2VydF9wcm9kdWN0X2tpdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XHJcbiAgICAgIG9iamVjdHM6IHtcclxuICAgICAgICB0eXBlOiAnW3Byb2R1Y3Rfa2l0X2luc2VydF9pbnB1dCFdJyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogcGxhaW5EYXRhLmtpdFByb2R1Y3RzLm1hcCgoa2l0UHJvZHVjdCkgPT4gKHtcclxuICAgICAgICAgIGtpdF9wcm9kdWN0X2lkOiBwcm9kdWN0SWQsXHJcbiAgICAgICAgICBwcm9kdWN0X2lkOiBraXRQcm9kdWN0LnByb2R1Y3RJZCB8fCBraXRQcm9kdWN0LnByb2R1Y3QuaWQsXHJcbiAgICAgICAgICBxdWFudGl0eToga2l0UHJvZHVjdC5xdWFudGl0eSxcclxuICAgICAgICB9KSksXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBwbGFpbkRhdGEua2l0UHJvZHVjdHNcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmV2aWV3cyhcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgeyByZXZpZXdzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4sICdyZXZpZXdzJz4sXHJcbiAgKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3W10+IHtcclxuICAgIGlmICghcmV2aWV3cykgcmV0dXJuIFtdXHJcbiAgICBpZiAoJ2FjdGlvbicgaW4gcmV2aWV3cyAmJiByZXZpZXdzLmFjdGlvbiA9PT0gJ3JlbW92ZScpIHtcclxuICAgICAgY29uc3QgcmV2aWV3SWRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgcmV2aWV3cy52YWx1ZS5tYXAoYXN5bmMgKHJldmlld0RhdGEpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHJldmlldyA9IGF3YWl0IHRoaXMuZmluZFJldmlldyhyZXZpZXdEYXRhLCBwcm9kdWN0SWQpXHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJldmlldz8uaWRcclxuICAgICAgICB9KSxcclxuICAgICAgKVxyXG5cclxuICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignZGVsZXRlX3Byb2R1Y3RfcmV2aWV3JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcclxuICAgICAgICB3aGVyZTogeyB2YWx1ZTogeyBpZDogeyBfaW46IHJldmlld0lkcy5maWx0ZXIoQm9vbGVhbikgfSB9LCB0eXBlOiAncHJvZHVjdF9yZXZpZXdfYm9vbF9leHAnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIHJldmlld3MudmFsdWUubWFwKChyZXZpZXcsIGluZGV4KSA9PiAhcmV2aWV3SWRzW2luZGV4XSAmJiByZXZpZXcpLmZpbHRlcihCb29sZWFuKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IHJldmlld3MgfSlcclxuXHJcbiAgICBpZiAoIXBsYWluRGF0YS5yZXZpZXdzIHx8IHBsYWluRGF0YS5yZXZpZXdzLmxlbmd0aCA8PSAwKSByZXR1cm4gW11cclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIHBsYWluRGF0YS5yZXZpZXdzLm1hcChhc3luYyAocmV2aWV3RGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJldmlldyA9IGF3YWl0IHRoaXMuZmluZFJldmlldyhyZXZpZXdEYXRhLCBwcm9kdWN0SWQpXHJcblxyXG4gICAgICAgIGlmIChyZXZpZXcuaWQpXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9wcm9kdWN0X3Jldmlld19ieV9waycsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICAgICAgICAgICAgcGtfY29sdW1uczoge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogeyBpZDogcmV2aWV3LmlkIH0sXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdwcm9kdWN0X3Jldmlld19wa19jb2x1bW5zX2lucHV0JyxcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgX3NldDoge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb21pdCh0aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgWydpZCcsICdwcm9kdWN0X2lkJ10pLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfc2V0X2lucHV0JyxcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkudXBkYXRlX3Byb2R1Y3RfcmV2aWV3X2J5X3BrLFxyXG4gICAgICAgICAgKVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X3Byb2R1Y3RfcmV2aWV3X29uZScsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6IG9taXQoeyAuLi50aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgcHJvZHVjdF9pZDogcHJvZHVjdElkIH0sIFsnaWQnXSksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfaW5zZXJ0X2lucHV0JyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLmluc2VydF9wcm9kdWN0X3Jldmlld19vbmUsXHJcbiAgICAgICAgKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlTWV0YWRhdGEoXHJcbiAgICBwcm9kdWN0SWQ6IG51bWJlcixcclxuICAgIHsgbWV0YWRhdGEgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiwgJ21ldGFkYXRhJz4sXHJcbiAgKTogUHJvbWlzZTxQcm9kdWN0TWV0YWRhdGE+IHtcclxuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IG1ldGFkYXRhIH0pXHJcblxyXG4gICAgaWYgKCFwbGFpbkRhdGEubWV0YWRhdGEpIHJldHVyblxyXG5cclxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9wcm9kdWN0X21ldGFkYXRhX2J5X3BrJywgWydwcm9kdWN0X2lkJ10sIHtcclxuICAgICAgcGtfY29sdW1uczoge1xyXG4gICAgICAgIHZhbHVlOiB7IHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9LFxyXG4gICAgICAgIHR5cGU6ICdwcm9kdWN0X21ldGFkYXRhX3BrX2NvbHVtbnNfaW5wdXQnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBfc2V0OiB7XHJcbiAgICAgICAgdmFsdWU6IG9taXQobWV0YWRhdGEsIFsncHJvZHVjdF9pZCddKSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9tZXRhZGF0YV9zZXRfaW5wdXQnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gcGxhaW5EYXRhLm1ldGFkYXRhXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldElkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgaWYgKCFOdW1iZXIuaXNOYU4oK2lkKSkgcmV0dXJuIGlkXHJcblxyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZCB9LCBvcHRpb25zOiB7IGVuYWJsZUNvdW50OiBmYWxzZSB9IH0pXHJcblxyXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXHJcblxyXG4gICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFByb2R1Y3Qgd2l0aCBpZCAke2lkfSBub3QgZm91bmRgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmaW5kUmV2aWV3c0J5UHJvZHVjdChwcm9kdWN0SWQ6IG51bWJlcik6IFByb21pc2U8UHJvZHVjdFJldmlld1tdPiB7XHJcbiAgICBjb25zdCB7IHByb2R1Y3RfcmV2aWV3OiBkYXRhIH0gPSBhd2FpdCB0aGlzLnF1ZXJ5KCdwcm9kdWN0X3JldmlldycsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xyXG4gICAgICB3aGVyZToge1xyXG4gICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICBwcm9kdWN0X2lkOiB7IF9lcTogcHJvZHVjdElkIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9yZXZpZXdfYm9vbF9leHAnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhLm1hcCgocmV2aWV3KSA9PiB0aGlzLmJpbmRSZXZpZXdUb01vZGVsKHJldmlldykpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRSZXZpZXcocmV2aWV3OiBQcm9kdWN0UmV2aWV3LCBwcm9kdWN0SWQ6IG51bWJlcik6IFByb21pc2U8UHJvZHVjdFJldmlldz4ge1xyXG4gICAgaWYgKHJldmlldy5pZCkgcmV0dXJuIHJldmlld1xyXG5cclxuICAgIGxldCBsb2FkZWRSZXZpZXc6IFByb2R1Y3RSZXZpZXdcclxuXHJcbiAgICBpZiAocmV2aWV3LnBlcnNvbklkKSBsb2FkZWRSZXZpZXcgPSBhd2FpdCB0aGlzLmdldFJldmlld0J5UGVyc29uSWQocmV2aWV3LnBlcnNvbklkLCBwcm9kdWN0SWQsIHJldmlldy5vcmRlcklkKVxyXG4gICAgaWYgKCFsb2FkZWRSZXZpZXcgJiYgcmV2aWV3LmF1dGhvciAmJiByZXZpZXcuZW1haWwpXHJcbiAgICAgIGxvYWRlZFJldmlldyA9IGF3YWl0IHRoaXMuZ2V0UmV2aWV3QnlBdXRob3JBbmRFbWFpbChyZXZpZXcuYXV0aG9yLCByZXZpZXcuZW1haWwsIHByb2R1Y3RJZCwgcmV2aWV3Lm9yZGVySWQpXHJcblxyXG4gICAgcmV0dXJuIGxvYWRlZFJldmlldyB8fCByZXZpZXdcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmV2aWV3QnlQZXJzb25JZChwZXJzb25JZDogbnVtYmVyLCBwcm9kdWN0SWQ6IG51bWJlciwgb3JkZXJJZD86IHN0cmluZyk6IFByb21pc2U8UHJvZHVjdFJldmlldz4ge1xyXG4gICAgY29uc3QgeyBwcm9kdWN0X3JldmlldzogZGF0YSB9ID0gYXdhaXQgdGhpcy5xdWVyeSgncHJvZHVjdF9yZXZpZXcnLCB0aGlzLnJldmlld3NGaWVsZHMsIHtcclxuICAgICAgd2hlcmU6IHtcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9LFxyXG4gICAgICAgICAgcGVyc29uX2lkOiB7IF9lcTogcGVyc29uSWQgfSxcclxuICAgICAgICAgIC4uLihvcmRlcklkICYmIHsgb3JkZXJfaWQ6IHsgX2VxOiBvcmRlcklkIH0gfSksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0eXBlOiBgcHJvZHVjdF9yZXZpZXdfYm9vbF9leHBgLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhWzBdICYmIHRoaXMuYmluZFJldmlld1RvTW9kZWwoZGF0YVswXSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmV2aWV3QnlBdXRob3JBbmRFbWFpbChcclxuICAgIGF1dGhvcjogc3RyaW5nLFxyXG4gICAgZW1haWw6IHN0cmluZyxcclxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxyXG4gICAgb3JkZXJJZD86IHN0cmluZyxcclxuICApOiBQcm9taXNlPFByb2R1Y3RSZXZpZXc+IHtcclxuICAgIGNvbnN0IHsgcHJvZHVjdF9yZXZpZXc6IGRhdGEgfSA9IGF3YWl0IHRoaXMucXVlcnkoJ3Byb2R1Y3RfcmV2aWV3JywgdGhpcy5yZXZpZXdzRmllbGRzLCB7XHJcbiAgICAgIHdoZXJlOiB7XHJcbiAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgIHByb2R1Y3RfaWQ6IHsgX2VxOiBwcm9kdWN0SWQgfSxcclxuICAgICAgICAgIGF1dGhvcjogeyBfZXE6IGF1dGhvciB9LFxyXG4gICAgICAgICAgZW1haWw6IHsgX2VxOiBlbWFpbCB9LFxyXG4gICAgICAgICAgLi4uKG9yZGVySWQgJiYgeyBvcmRlcl9pZDogeyBfZXE6IG9yZGVySWQgfSB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHR5cGU6IGBwcm9kdWN0X3Jldmlld19ib29sX2V4cGAsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBkYXRhICYmIGRhdGFbMF0gJiYgdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChkYXRhWzBdKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiaW5kUmV2aWV3VG9Nb2RlbCA9IChwbGFpbjogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb2R1Y3RSZXZpZXcgPT4gKHtcclxuICAgIC4uLm9taXQocGxhaW4sIFsncHJvZHVjdF9pZCcsICdjcmVhdGVkX2F0JywgJ3VwZGF0ZWRfYXQnLCAncGVyc29uX2lkJywgJ29yZGVyX2lkJ10pLFxyXG4gICAgY3JlYXRlZEF0OiB0eXBlb2YgcGxhaW4uY3JlYXRlZF9hdCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShwbGFpbi5jcmVhdGVkX2F0KSA6IHBsYWluLmNyZWF0ZWRfYXQsXHJcbiAgICB1cGRhdGVkQXQ6IHR5cGVvZiBwbGFpbi51cGRhdGVkX2F0ID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKHBsYWluLnVwZGF0ZWRfYXQpIDogcGxhaW4udXBkYXRlZF9hdCxcclxuICAgIHBlcnNvbklkOiBwbGFpbi5wZXJzb25faWQsXHJcbiAgICBvcmRlcklkOiBwbGFpbi5vcmRlcl9pZCxcclxuICB9KVxyXG5cclxuICBwcml2YXRlIGJpbmRSZXZpZXdUb0hhc3VyYSA9IChyZXZpZXc6IFByb2R1Y3RSZXZpZXcpOiBQcm9kdWN0UmV2aWV3RmllbGRzID0+ICh7XHJcbiAgICAuLi5vbWl0KHJldmlldywgWydwcm9kdWN0SWQnLCAnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCcsICdwZXJzb25JZCcsICdvcmRlcklkJ10pLFxyXG4gICAgcGVyc29uX2lkOiByZXZpZXcucGVyc29uSWQsXHJcbiAgICBvcmRlcl9pZDogcmV2aWV3Lm9yZGVySWQsXHJcbiAgfSlcclxuXHJcbiAgYXN5bmMgY2xlYW5TaG9wcGluZ0NvdW50RnJvbUlkcyhpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5tdXRhdGlvbigndXBkYXRlX3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xyXG4gICAgICB3aGVyZToge1xyXG4gICAgICAgIHZhbHVlOiB7IGlkOiB7IF9uaW46IGlkcyB9IH0sXHJcbiAgICAgICAgdHlwZTogJ3Byb2R1Y3RfYm9vbF9leHAnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBfc2V0OiB7XHJcbiAgICAgICAgdmFsdWU6IHsgc2hvcHBpbmdfY291bnQ6IDAgfSxcclxuICAgICAgICB0eXBlOiAncHJvZHVjdF9zZXRfaW5wdXQnLFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -3239,7 +3239,7 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
3239
3239
|
{ shoppingCount: { columnName: 'shopping_count' } },
|
|
3240
3240
|
{
|
|
3241
3241
|
category: {
|
|
3242
|
-
columnName: '
|
|
3242
|
+
columnName: 'category_id',
|
|
3243
3243
|
foreignKeyColumn: { category_id: 'id' },
|
|
3244
3244
|
fields: ['id', 'name', 'reference', 'slug'],
|
|
3245
3245
|
},
|