@ethlete/query 2.9.1 → 3.0.0
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/esm2020/index.mjs +2 -1
- package/esm2020/lib/auth/auth-provider.types.mjs +1 -1
- package/esm2020/lib/auth/auth-provider.utils.mjs +1 -1
- package/esm2020/lib/auth/bearer-auth-provider.mjs +2 -2
- package/esm2020/lib/directives/infinity-query-trigger.directive.mjs +4 -4
- package/esm2020/lib/directives/infinity-query.directive.mjs +21 -20
- package/esm2020/lib/directives/query.directive.mjs +9 -11
- package/esm2020/lib/entity/entity-store.mjs +73 -119
- package/esm2020/lib/entity/entity.types.mjs +1 -1
- package/esm2020/lib/entity/entity.utils.mjs +5 -0
- package/esm2020/lib/entity/index.mjs +2 -1
- package/esm2020/lib/infinite-query/infinity-query.mjs +47 -71
- package/esm2020/lib/infinite-query/infinity-query.types.mjs +1 -1
- package/esm2020/lib/infinite-query/infinity-query.utils.mjs +1 -1
- package/esm2020/lib/query/query.mjs +118 -211
- package/esm2020/lib/query/query.types.mjs +1 -1
- package/esm2020/lib/query/query.utils.mjs +1 -1
- package/esm2020/lib/query-client/query-client.mjs +3 -31
- package/esm2020/lib/query-client/query-client.types.mjs +1 -1
- package/esm2020/lib/query-creator/index.mjs +3 -0
- package/esm2020/lib/query-creator/query-creator.mjs +35 -0
- package/esm2020/lib/query-creator/query-creator.types.mjs +2 -0
- package/esm2020/lib/request/request.types.mjs +1 -1
- package/esm2020/lib/request/request.util.mjs +1 -7
- package/fesm2015/ethlete-query.mjs +317 -469
- package/fesm2015/ethlete-query.mjs.map +1 -1
- package/fesm2020/ethlete-query.mjs +311 -472
- package/fesm2020/ethlete-query.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/auth/auth-provider.types.d.ts +3 -4
- package/lib/auth/auth-provider.utils.d.ts +2 -2
- package/lib/auth/bearer-auth-provider.d.ts +1 -1
- package/lib/directives/infinity-query-trigger.directive.d.ts +1 -1
- package/lib/directives/infinity-query.directive.d.ts +6 -10
- package/lib/directives/query.directive.d.ts +7 -7
- package/lib/entity/entity-store.d.ts +13 -27
- package/lib/entity/entity.types.d.ts +0 -5
- package/lib/entity/entity.utils.d.ts +2 -0
- package/lib/entity/index.d.ts +1 -0
- package/lib/infinite-query/infinity-query.d.ts +10 -19
- package/lib/infinite-query/infinity-query.types.d.ts +4 -4
- package/lib/infinite-query/infinity-query.utils.d.ts +2 -3
- package/lib/query/query.d.ts +19 -12
- package/lib/query/query.types.d.ts +86 -51
- package/lib/query/query.utils.d.ts +16 -14
- package/lib/query-client/query-client.d.ts +12 -10
- package/lib/query-client/query-client.types.d.ts +2 -22
- package/lib/query-creator/index.d.ts +2 -0
- package/lib/query-creator/query-creator.d.ts +14 -0
- package/lib/query-creator/query-creator.types.d.ts +13 -0
- package/lib/request/request.types.d.ts +1 -1
- package/lib/request/request.util.d.ts +0 -1
- package/package.json +2 -2
|
@@ -189,4 +189,4 @@ export const paginatedEntityValueUpdater = (findFn) => ({ response, rawResponse,
|
|
|
189
189
|
rawResponse: newRawResponse,
|
|
190
190
|
};
|
|
191
191
|
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVl0QyxPQUFPLEVBQW1ELGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQTJCOUYsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUlMLE1BQXFCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQStDLENBQUM7SUFDbEgsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxVQUF1QyxNQUFxQjtRQUNqRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFrQixDQUFDO0lBQ2hGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7SUFDM0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxhQUErQjtJQUMvRCxPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9B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QkFBZ0IsR0FBRyxDQUFDLENBQUM7U0FDakQ7S0FDRixDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUc7UUFDbEIsR0FBRyxRQUFRO1FBQ1gsS0FBSyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3ZHLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUSxFQUFFLFdBQVc7UUFDckIsV0FBVyxFQUFFLGNBQWM7S0FDNUIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2luYXRlZCB9IGZyb20gJ0BldGhsZXRlL3R5cGVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyYW5zZm9ybUdxbCB9IGZyb20gJy4uL2dxbCc7XG5pbXBvcnQge1xuICBBbnlRdWVyeUNyZWF0b3IsXG4gIFF1ZXJ5Q2xpZW50LFxuICBRdWVyeUNyZWF0b3IsXG4gIFF1ZXJ5Q3JlYXRvckFyZ3MsXG4gIFF1ZXJ5Q3JlYXRvckVudGl0eSxcbiAgUXVlcnlDcmVhdG9yTWV0aG9kLFxuICBRdWVyeUNyZWF0b3JSZXNwb25zZSxcbiAgUXVlcnlDcmVhdG9yUmVzcG9uc2VUcmFuc2Zvcm1lcixcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBNZXRob2QsIFJlcXVlc3RIZWFkZXJzLCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCwgdHJhbnNmb3JtTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQge1xuICBBbnlHcWxRdWVyeUNvbmZpZyxcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q3JlYXRvckNvbGxlY3Rpb24sXG4gIEFueVF1ZXJ5T2ZDcmVhdG9yQ29sbGVjdGlvbixcbiAgQW55UXVlcnlSYXdSZXNwb25zZU9mQ3JlYXRvckNvbGxlY3Rpb24sXG4gIEFueVF1ZXJ5UmVzcG9uc2VPZkNyZWF0b3JDb2xsZWN0aW9uLFxuICBBbnlSZXN0UXVlcnlDb25maWcsXG4gIEJhc2VBcmd1bWVudHMsXG4gIENhbmNlbGxlZCxcbiAgRmFpbHVyZSxcbiAgR3FsUXVlcnlDb25maWcsXG4gIExvYWRpbmcsXG4gIFByZXBhcmVkLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVEYXRhLFxuICBRdWVyeVN0YXRlUmF3RGF0YSxcbiAgUXVlcnlTdGF0ZVR5cGUsXG4gIFJvdXRlVHlwZSxcbiAgU3VjY2Vzcyxcbn0gZnJvbSAnLi9xdWVyeS50eXBlcyc7XG5cbnR5cGUgT21pdE51bGw8VD4gPSBUIGV4dGVuZHMgbnVsbCA/IG5ldmVyIDogVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclN1Y2Nlc3MoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgVCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsLFxuICAgIFJlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZURhdGE8T21pdE51bGw8VD4+LFxuICAgIFJhd1Jlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZVJhd0RhdGE8T21pdE51bGw8VD4+LFxuICA+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8U3VjY2VzczxSZXNwb25zZSwgUmF3UmVzcG9uc2U+PjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZUF1dG9SZWZyZXNoKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+ICFpc0F1dG9SZWZyZXNoKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8VD47XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJGYWlsdXJlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+IGlzUXVlcnlTdGF0ZUZhaWx1cmUodmFsdWUpKSkgYXMgT2JzZXJ2YWJsZTxGYWlsdXJlPjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclF1ZXJ5U3RhdGVzKGFsbG93ZWRTdGF0ZXM6IFF1ZXJ5U3RhdGVUeXBlW10pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZSB8IG51bGw+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAmJiBhbGxvd2VkU3RhdGVzLmluY2x1ZGVzKHZhbHVlLnR5cGUpKSkgYXMgT2JzZXJ2YWJsZTxUPjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRha2VVbnRpbFJlc3BvbnNlKGNvbmZpZz86IHsgZXhjbHVkZU51bGw/OiBib29sZWFuIH0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZSB8IG51bGw+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgIHRha2VXaGlsZSgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8uZXhjbHVkZU51bGwgJiYgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNRdWVyeVN0YXRlTG9hZGluZyh2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGw7XG4gICAgICB9LCB0cnVlKSxcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTnVsbCgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIE9taXROdWxsPFQ+ID0+IHZhbHVlICE9PSBudWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hRdWVyeVN0YXRlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFxuICAgIFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGwsXG4gICAgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gICAgUmF3UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gID4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHN3aXRjaE1hcCgodmFsdWUpID0+IHZhbHVlPy5zdGF0ZSQgPz8gb2YobnVsbCkpKSBhcyBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8XG4gICAgICBPbWl0TnVsbDxSZXNwb25zZT4sXG4gICAgICBPbWl0TnVsbDxSYXdSZXNwb25zZT5cbiAgICA+IHwgbnVsbD47XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hRdWVyeUNvbGxlY3Rpb25TdGF0ZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxcbiAgICBUIGV4dGVuZHMgQW55UXVlcnlPZkNyZWF0b3JDb2xsZWN0aW9uPEFueVF1ZXJ5Q3JlYXRvckNvbGxlY3Rpb24+IHwgbnVsbCxcbiAgICBSZXNwb25zZSBleHRlbmRzIEFueVF1ZXJ5UmVzcG9uc2VPZkNyZWF0b3JDb2xsZWN0aW9uPE9taXROdWxsPFQ+PixcbiAgICBSYXdSZXNwb25zZSBleHRlbmRzIEFueVF1ZXJ5UmF3UmVzcG9uc2VPZkNyZWF0b3JDb2xsZWN0aW9uPE9taXROdWxsPFQ+PixcbiAgPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdmFsdWU/LnF1ZXJ5LnN0YXRlJCA/PyBvZihudWxsKSkpIGFzIE9ic2VydmFibGU8UXVlcnlTdGF0ZTxcbiAgICAgIE9taXROdWxsPFJlc3BvbnNlPixcbiAgICAgIE9taXROdWxsPFJhd1Jlc3BvbnNlPlxuICAgID4gfCBudWxsPjtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUxvYWRpbmcgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgTG9hZGluZyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuTG9hZGluZztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVN1Y2Nlc3MgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgU3VjY2VzcyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUZhaWx1cmUgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgRmFpbHVyZSA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuRmFpbHVyZTtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUNhbmNlbGxlZCA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBDYW5jZWxsZWQgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZDtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVByZXBhcmVkID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIFByZXBhcmVkID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5QcmVwYXJlZDtcblxuZXhwb3J0IGNvbnN0IGlzQXV0b1JlZnJlc2ggPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiBzdGF0ZT8ubWV0YS50cmlnZ2VyZWRWaWEgPT09ICdhdXRvJztcblxuZXhwb3J0IGNvbnN0IG1lcmdlSGVhZGVycyA9ICguLi5oZWFkZXJzOiBBcnJheTxSZXF1ZXN0SGVhZGVycyB8IG51bGwgfCB1bmRlZmluZWQ+KSA9PiB7XG4gIHJldHVybiBoZWFkZXJzLnJlZHVjZSgoYWNjLCBoZWFkZXJzKSA9PiB7XG4gICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICAuLi5oZWFkZXJzLFxuICAgIH07XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0dxbFF1ZXJ5Q29uZmlnID0gPFxuICBSZXNwb25zZSxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPiB8IHVuZGVmaW5lZCxcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiB8IHVuZGVmaW5lZCxcbiAgRW50aXR5ID0gdW5rbm93bixcbj4oXG4gIGNvbmZpZzogdW5rbm93bixcbik6IGNvbmZpZyBpcyBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PiA9PiB7XG4gIGlmICghY29uZmlnIHx8IHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoY29uZmlnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdxdWVyeScgaW4gY29uZmlnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnkgPSA8VCBleHRlbmRzIEFueVF1ZXJ5PihxdWVyeTogdW5rbm93bik6IHF1ZXJ5IGlzIFQgPT4ge1xuICBpZiAoIXF1ZXJ5IHx8IHR5cGVvZiBxdWVyeSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShxdWVyeSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnc3RhdGUkJyBpbiBxdWVyeSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVRdWVyeUNvbGxlY3Rpb24gPSA8VCBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvckNvbGxlY3Rpb24sIFIgZXh0ZW5kcyBBbnlRdWVyeU9mQ3JlYXRvckNvbGxlY3Rpb248VD4+KFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHF1ZXJ5TWFwOiBULFxuKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0PFIgfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RRdWVyeSA9IDxUIGV4dGVuZHMgQW55UXVlcnkgfCBBbnlRdWVyeU9mQ3JlYXRvckNvbGxlY3Rpb248QW55UXVlcnlDcmVhdG9yQ29sbGVjdGlvbj4gfCBudWxsPihcbiAgdjogVCxcbikgPT4gKGlzUXVlcnkodikgPyB2IDogdj8ucXVlcnkpID8/IG51bGw7XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0SGVhZGVycyA9IChcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnMgfCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCB8IG51bGwgfCB1bmRlZmluZWQsXG4gIG1ldGhvZDogTWV0aG9kLFxuKSA9PiB7XG4gIGlmICghaGVhZGVycykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChtZXRob2QgaW4gaGVhZGVycykge1xuICAgIHJldHVybiAoaGVhZGVyc1ttZXRob2RdID8/IHt9KSBhcyBSZXF1ZXN0SGVhZGVycztcbiAgfVxuXG4gIHJldHVybiBoZWFkZXJzIGFzIFJlcXVlc3RIZWFkZXJzO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhc3RRdWVyeUNyZWF0b3JUeXBlcyA9IDxcbiAgUUMgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3IsXG4gIEFyZ3VtZW50cyBleHRlbmRzIFF1ZXJ5Q3JlYXRvckFyZ3M8UUM+LFxuICBNZXRob2QgZXh0ZW5kcyBRdWVyeUNyZWF0b3JNZXRob2Q8UUM+LFxuICBSZXNwb25zZSBleHRlbmRzIFF1ZXJ5Q3JlYXRvclJlc3BvbnNlPFFDPixcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFF1ZXJ5Q3JlYXRvclJlc3BvbnNlVHJhbnNmb3JtZXI8UUM+LFxuICBFbnRpdHkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JFbnRpdHk8UUM+LFxuICBPdmVycmlkZUFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIE92ZXJyaWRlUmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZSB8IHVuZGVmaW5lZCxcbj4oY29uZmlnOiB7XG4gIGNyZWF0b3I6IFFDO1xuICBhcmdzPzogT3ZlcnJpZGVBcmd1bWVudHM7XG4gIHJlc3BvbnNlPzogT3ZlcnJpZGVSZXNwb25zZTtcbn0pID0+IHtcbiAgaWYgKGNvbmZpZy5hcmdzPy5wYXRoUGFyYW1zKSB7XG4gICAgY29uc29sZS5lcnJvcihjb25maWcpO1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYXRoIHBhcmFtcyBjYW5ub3QgYmUgb3ZlcnJpZGRlbiBpbiBjYXN0UXVlcnlDcmVhdG9yVHlwZXMuIENyZWF0ZSBhIG5ldyBxdWVyeSBjcmVhdG9yIGluc3RlYWQuJyk7XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmNyZWF0b3IgYXMgdW5rbm93biBhcyBRdWVyeUNyZWF0b3I8XG4gICAgT3ZlcnJpZGVBcmd1bWVudHMsXG4gICAgTWV0aG9kLFxuICAgIE92ZXJyaWRlUmVzcG9uc2UsXG4gICAgUm91dGUsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lcixcbiAgICBFbnRpdHlcbiAgPjtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlUXVlcnlNZXRob2QgPSAoY29uZmlnOiB7IGNvbmZpZzogQW55UmVzdFF1ZXJ5Q29uZmlnIHwgQW55R3FsUXVlcnlDb25maWc7IGNsaWVudDogUXVlcnlDbGllbnQgfSkgPT4ge1xuICBsZXQgbWV0aG9kOiBNZXRob2Q7XG5cbiAgaWYgKGlzR3FsUXVlcnlDb25maWcoY29uZmlnLmNvbmZpZykpIHtcbiAgICBjb25zdCB0cmFuc2ZlclZpYSA9IGNvbmZpZy5jb25maWcudHJhbnNmZXJWaWEgPz8gY29uZmlnLmNsaWVudC5jb25maWcucmVxdWVzdD8uZ3FsPy50cmFuc2ZlclZpYTtcbiAgICBtZXRob2QgPSB0cmFuc2Zvcm1NZXRob2QoeyBtZXRob2Q6IGNvbmZpZy5jb25maWcubWV0aG9kLCB0cmFuc2ZlclZpYSB9KTtcbiAgfSBlbHNlIHtcbiAgICBtZXRob2QgPSB0cmFuc2Zvcm1NZXRob2QoeyBtZXRob2Q6IGNvbmZpZy5jb25maWcubWV0aG9kIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlUXVlcnlCb2R5ID0gKGNvbmZpZzoge1xuICBjb25maWc6IEFueVJlc3RRdWVyeUNvbmZpZyB8IEFueUdxbFF1ZXJ5Q29uZmlnO1xuICBjbGllbnQ6IFF1ZXJ5Q2xpZW50O1xuICBtZXRob2Q6IE1ldGhvZDtcbiAgYXJncz86IEJhc2VBcmd1bWVudHM7XG59KSA9PiB7XG4gIGxldCBib2R5OiB1bmtub3duO1xuXG4gIGlmIChcbiAgICBjb25maWcubWV0aG9kID09PSAnR0VUJyB8fFxuICAgIGNvbmZpZy5tZXRob2QgPT09ICdIRUFEJyB8fFxuICAgIGNvbmZpZy5tZXRob2QgPT09ICdPUFRJT05TJyB8fFxuICAgIChpc0dxbFF1ZXJ5Q29uZmlnKGNvbmZpZy5jb25maWcpICYmXG4gICAgICAoY29uZmlnLmNvbmZpZy50cmFuc2ZlclZpYSA9PT0gJ0dFVCcgfHxcbiAgICAgICAgKGNvbmZpZy5jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmdxbD8udHJhbnNmZXJWaWEgPT09ICdHRVQnICYmICFjb25maWcuY29uZmlnLnRyYW5zZmVyVmlhKSkpXG4gICkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoaXNHcWxRdWVyeUNvbmZpZyhjb25maWcuY29uZmlnKSkge1xuICAgIGNvbnN0IHF1ZXJ5VGVtcGxhdGUgPSBjb25maWcuY29uZmlnLnF1ZXJ5O1xuICAgIGNvbnN0IHF1ZXJ5ID0gdHJhbnNmb3JtR3FsKHF1ZXJ5VGVtcGxhdGUpO1xuXG4gICAgYm9keSA9IHF1ZXJ5KGNvbmZpZy5hcmdzPy52YXJpYWJsZXMpO1xuICB9IGVsc2Uge1xuICAgIGJvZHkgPSBjb25maWcuYXJncz8uYm9keTtcbiAgfVxuXG4gIHJldHVybiBib2R5O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVRdWVyeUF1dGhIZWFkZXIgPSAoY29uZmlnOiB7XG4gIGNvbmZpZzogQW55UmVzdFF1ZXJ5Q29uZmlnIHwgQW55R3FsUXVlcnlDb25maWc7XG4gIGNsaWVudDogUXVlcnlDbGllbnQ7XG59KSA9PiB7XG4gIGxldCBhdXRoSGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZy5jb25maWcuc2VjdXJlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gY29uZmlnLmNsaWVudC5hdXRoUHJvdmlkZXI/LmhlYWRlcjtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGF1dGhIZWFkZXIgPSBoZWFkZXI7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbmZpZy5jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXIpIHtcbiAgICBpZiAoY29uZmlnLmNvbmZpZy5zZWN1cmUgPT09IHVuZGVmaW5lZCB8fCBjb25maWcuY29uZmlnLnNlY3VyZSkge1xuICAgICAgYXV0aEhlYWRlciA9IGNvbmZpZy5jbGllbnQuYXV0aFByb3ZpZGVyLmhlYWRlcjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXV0aEhlYWRlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlUXVlcnlIZWFkZXJzID0gKGNvbmZpZzoge1xuICBjb25maWc6IEFueVJlc3RRdWVyeUNvbmZpZyB8IEFueUdxbFF1ZXJ5Q29uZmlnO1xuICBjbGllbnQ6IFF1ZXJ5Q2xpZW50O1xuICBhcmdzPzogQmFzZUFyZ3VtZW50cztcbn0pID0+IHtcbiAgY29uc3QgYXV0aEhlYWRlciA9IGNvbXB1dGVRdWVyeUF1dGhIZWFkZXIoY29uZmlnKTtcblxuICBjb25zdCBtZXJnZWRIZWFkZXJzID1cbiAgICBtZXJnZUhlYWRlcnMoXG4gICAgICBnZXREZWZhdWx0SGVhZGVycyhjb25maWcuY2xpZW50LmNvbmZpZy5yZXF1ZXN0Py5oZWFkZXJzLCBjb25maWcuY29uZmlnLm1ldGhvZCksXG4gICAgICBhdXRoSGVhZGVyLFxuICAgICAgY29uZmlnLmFyZ3M/LmhlYWRlcnMsXG4gICAgKSB8fCB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIG1lcmdlZEhlYWRlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZVF1ZXJ5UXVlcnlQYXJhbXMgPSAoY29uZmlnOiB7XG4gIGNvbmZpZzogQW55UmVzdFF1ZXJ5Q29uZmlnIHwgQW55R3FsUXVlcnlDb25maWc7XG4gIGNsaWVudDogUXVlcnlDbGllbnQ7XG4gIGFyZ3M/OiBCYXNlQXJndW1lbnRzO1xufSkgPT4ge1xuICBpZiAoXG4gICAgaXNHcWxRdWVyeUNvbmZpZyhjb25maWcuY29uZmlnKSAmJlxuICAgIChjb25maWcuY29uZmlnLnRyYW5zZmVyVmlhID09PSAnR0VUJyB8fFxuICAgICAgKGNvbmZpZy5jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmdxbD8udHJhbnNmZXJWaWEgPT09ICdHRVQnICYmICFjb25maWcuY29uZmlnLnRyYW5zZmVyVmlhKSlcbiAgKSB7XG4gICAgY29uc3QgcXVlcnlUZW1wbGF0ZSA9IGNvbmZpZy5jb25maWcucXVlcnk7XG4gICAgY29uc3QgcXVlcnkgPSB0cmFuc2Zvcm1HcWwocXVlcnlUZW1wbGF0ZSk7XG5cbiAgICBsZXQgcGFyYW1zID0gcXVlcnkoY29uZmlnLmFyZ3M/LnZhcmlhYmxlcyk7XG5cbiAgICBpZiAoY29uZmlnLmFyZ3M/LnF1ZXJ5UGFyYW1zKSB7XG4gICAgICBwYXJhbXMgPSB7IC4uLnBhcmFtcywgLi4uY29uZmlnLmFyZ3M/LnF1ZXJ5UGFyYW1zIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHJldHVybiBjb25maWcuYXJncz8ucXVlcnlQYXJhbXM7XG59O1xuXG5leHBvcnQgY29uc3QgcGFnaW5hdGVkRW50aXR5VmFsdWVVcGRhdGVyID1cbiAgPFxuICAgIFQgZXh0ZW5kcyBQYWdpbmF0ZWQ8dW5rbm93bj4sXG4gICAgQXJncyBleHRlbmRzIEJhc2VBcmd1bWVudHMsXG4gICAgRW50aXR5LFxuICAgIEogZXh0ZW5kcyBUIGV4dGVuZHMgUGFnaW5hdGVkPGluZmVyIFg+ID8gWCA6IG5ldmVyLFxuICA+KFxuICAgIGZpbmRGbjogKHZhbDogSiwgZW50aXR5OiBFbnRpdHkpID0+IGJvb2xlYW4sXG4gICkgPT5cbiAgKHsgcmVzcG9uc2UsIHJhd1Jlc3BvbnNlLCBlbnRpdHkgfTogeyByYXdSZXNwb25zZTogVDsgcmVzcG9uc2U6IFQ7IGFyZ3M6IEFyZ3M7IGVudGl0eTogRW50aXR5IH0pID0+IHtcbiAgICBjb25zdCBpbmRleE9mRW50aXR5UmF3ID0gcmF3UmVzcG9uc2UuaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBmaW5kRm4oaXRlbSBhcyBKLCBlbnRpdHkpKTtcbiAgICBjb25zdCBpbmRleE9mRW50aXR5ID0gcmVzcG9uc2UuaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBmaW5kRm4oaXRlbSBhcyBKLCBlbnRpdHkpKTtcblxuICAgIGlmIChpbmRleE9mRW50aXR5ID09PSAtMSB8fCBpbmRleE9mRW50aXR5UmF3ID09PSAtMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3UmF3UmVzcG9uc2UgPSB7XG4gICAgICAuLi5yYXdSZXNwb25zZSxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIC4uLnJhd1Jlc3BvbnNlLml0ZW1zLnNsaWNlKDAsIGluZGV4T2ZFbnRpdHlSYXcpLFxuICAgICAgICBlbnRpdHksXG4gICAgICAgIC4uLnJhd1Jlc3BvbnNlLml0ZW1zLnNsaWNlKGluZGV4T2ZFbnRpdHlSYXcgKyAxKSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGNvbnN0IG5ld1Jlc3BvbnNlID0ge1xuICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICBpdGVtczogWy4uLnJlc3BvbnNlLml0ZW1zLnNsaWNlKDAsIGluZGV4T2ZFbnRpdHkpLCBlbnRpdHksIC4uLnJlc3BvbnNlLml0ZW1zLnNsaWNlKGluZGV4T2ZFbnRpdHkgKyAxKV0sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICByZXNwb25zZTogbmV3UmVzcG9uc2UsXG4gICAgICByYXdSZXNwb25zZTogbmV3UmF3UmVzcG9uc2UsXG4gICAgfTtcbiAgfTtcbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVd0QyxPQUFPLEVBQW1ELGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQXdCOUYsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUNMLE1BQXFCO1FBRXJCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQWtDLENBQUM7SUFDckcsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxVQUF1QyxNQUFxQjtRQUNqRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFrQixDQUFDO0lBQ2hGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7SUFDM0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxhQUErQjtJQUMvRCxPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9B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QUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO0tBQ0YsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEdBQUcsUUFBUTtRQUNYLEtBQUssRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUN2RyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFBRSxjQUFjO0tBQzVCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdpbmF0ZWQgfSBmcm9tICdAZXRobGV0ZS90eXBlcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4uL2VudGl0eSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1HcWwgfSBmcm9tICcuLi9ncWwnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnlDcmVhdG9yLFxuICBRdWVyeUFyZ3NPZixcbiAgUXVlcnlDcmVhdG9yLFxuICBRdWVyeURhdGFPZixcbiAgUXVlcnlSZXNwb25zZU9mLFxuICBRdWVyeVN0b3JlSWRPZixcbiAgUXVlcnlTdG9yZU9mLFxufSBmcm9tICcuLi9xdWVyeS1jcmVhdG9yJztcbmltcG9ydCB7IE1ldGhvZCwgUmVxdWVzdEhlYWRlcnMsIFJlcXVlc3RIZWFkZXJzTWV0aG9kTWFwLCB0cmFuc2Zvcm1NZXRob2QgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIEFueUdxbFF1ZXJ5Q29uZmlnLFxuICBBbnlRdWVyeSxcbiAgQW55UXVlcnlDb2xsZWN0aW9uLFxuICBBbnlRdWVyeUNvbGxlY3Rpb25SZXNwb25zZSxcbiAgQW55UXVlcnlDcmVhdG9yQ29sbGVjdGlvbixcbiAgQW55UmVzdFF1ZXJ5Q29uZmlnLFxuICBCYXNlQXJndW1lbnRzLFxuICBDYW5jZWxsZWQsXG4gIEZhaWx1cmUsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBMb2FkaW5nLFxuICBQcmVwYXJlZCxcbiAgUXVlcnlDb2xsZWN0aW9uT2YsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVSZXNwb25zZU9mLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUm91dGVUeXBlLFxuICBTdWNjZXNzLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcblxudHlwZSBPbWl0TnVsbDxUPiA9IFQgZXh0ZW5kcyBudWxsID8gbmV2ZXIgOiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU3VjY2VzcygpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZSB8IG51bGwsIFJlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZVJlc3BvbnNlT2Y8T21pdE51bGw8VD4+PihcbiAgICBzb3VyY2U6IE9ic2VydmFibGU8VD4sXG4gICkge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8U3VjY2VzczxSZXNwb25zZT4+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWdub3JlQXV0b1JlZnJlc2goKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gIWlzQXV0b1JlZnJlc2godmFsdWUpKSkgYXMgT2JzZXJ2YWJsZTxUPjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhaWx1cmUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gaXNRdWVyeVN0YXRlRmFpbHVyZSh2YWx1ZSkpKSBhcyBPYnNlcnZhYmxlPEZhaWx1cmU+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUXVlcnlTdGF0ZXMoYWxsb3dlZFN0YXRlczogUXVlcnlTdGF0ZVR5cGVbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICYmIGFsbG93ZWRTdGF0ZXMuaW5jbHVkZXModmFsdWUudHlwZSkpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFrZVVudGlsUmVzcG9uc2UoY29uZmlnPzogeyBleGNsdWRlTnVsbD86IGJvb2xlYW4gfSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgdGFrZVdoaWxlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnPy5leGNsdWRlTnVsbCAmJiB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1F1ZXJ5U3RhdGVMb2FkaW5nKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbDtcbiAgICAgIH0sIHRydWUpLFxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOdWxsKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKTogdmFsdWUgaXMgT21pdE51bGw8VD4gPT4gdmFsdWUgIT09IG51bGwpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFF1ZXJ5U3RhdGUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbCwgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJlc3BvbnNlT2Y8T21pdE51bGw8VD4+Pihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdmFsdWU/LnN0YXRlJCA/PyBvZihudWxsKSkpIGFzIE9ic2VydmFibGU8UXVlcnlTdGF0ZTxcbiAgICAgIE9taXROdWxsPFJlc3BvbnNlPlxuICAgID4gfCBudWxsPjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFF1ZXJ5Q29sbGVjdGlvblN0YXRlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsLCBSZXNwb25zZSBleHRlbmRzIEFueVF1ZXJ5Q29sbGVjdGlvblJlc3BvbnNlPE9taXROdWxsPFQ+Pj4oXG4gICAgc291cmNlOiBPYnNlcnZhYmxlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdmFsdWU/LnF1ZXJ5LnN0YXRlJCA/PyBvZihudWxsKSkpIGFzIE9ic2VydmFibGU8UXVlcnlTdGF0ZTxcbiAgICAgIE9taXROdWxsPFJlc3BvbnNlPlxuICAgID4gfCBudWxsPjtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUxvYWRpbmcgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgTG9hZGluZyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuTG9hZGluZztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVN1Y2Nlc3MgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgU3VjY2VzcyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUZhaWx1cmUgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgRmFpbHVyZSA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuRmFpbHVyZTtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUNhbmNlbGxlZCA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBDYW5jZWxsZWQgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZDtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVByZXBhcmVkID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIFByZXBhcmVkID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5QcmVwYXJlZDtcblxuZXhwb3J0IGNvbnN0IGlzQXV0b1JlZnJlc2ggPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiBzdGF0ZT8ubWV0YS50cmlnZ2VyZWRWaWEgPT09ICdhdXRvJztcblxuZXhwb3J0IGNvbnN0IG1lcmdlSGVhZGVycyA9ICguLi5oZWFkZXJzOiBBcnJheTxSZXF1ZXN0SGVhZGVycyB8IG51bGwgfCB1bmRlZmluZWQ+KSA9PiB7XG4gIHJldHVybiBoZWFkZXJzLnJlZHVjZSgoYWNjLCBoZWFkZXJzKSA9PiB7XG4gICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICAuLi5oZWFkZXJzLFxuICAgIH07XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0dxbFF1ZXJ5Q29uZmlnID0gPFxuICBSZXNwb25zZSxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPiB8IHVuZGVmaW5lZCxcbiAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgRGF0YSxcbiAgSWQsXG4+KFxuICBjb25maWc6IHVua25vd24sXG4pOiBjb25maWcgaXMgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4gPT4ge1xuICBpZiAoIWNvbmZpZyB8fCB0eXBlb2YgY29uZmlnICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGNvbmZpZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgncXVlcnknIGluIGNvbmZpZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5ID0gPFQgZXh0ZW5kcyBBbnlRdWVyeT4ocXVlcnk6IHVua25vd24pOiBxdWVyeSBpcyBUID0+IHtcbiAgaWYgKCFxdWVyeSB8fCB0eXBlb2YgcXVlcnkgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocXVlcnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3N0YXRlJCcgaW4gcXVlcnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnlDb2xsZWN0aW9uID0gPFQgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3JDb2xsZWN0aW9uLCBSIGV4dGVuZHMgUXVlcnlDb2xsZWN0aW9uT2Y8VD4+KFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHF1ZXJ5TWFwOiBULFxuKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0PFIgfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RRdWVyeSA9IDxUIGV4dGVuZHMgQW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPih2OiBUKSA9PlxuICAoaXNRdWVyeSh2KSA/IHYgOiB2Py5xdWVyeSkgPz8gbnVsbDtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRIZWFkZXJzID0gKFxuICBoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycyB8IFJlcXVlc3RIZWFkZXJzTWV0aG9kTWFwIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgbWV0aG9kOiBNZXRob2QsXG4pID0+IHtcbiAgaWYgKCFoZWFkZXJzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgaWYgKG1ldGhvZCBpbiBoZWFkZXJzKSB7XG4gICAgcmV0dXJuIChoZWFkZXJzW21ldGhvZF0gPz8ge30pIGFzIFJlcXVlc3RIZWFkZXJzO1xuICB9XG5cbiAgcmV0dXJuIGhlYWRlcnMgYXMgUmVxdWVzdEhlYWRlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgY2FzdFF1ZXJ5Q3JlYXRvclR5cGVzID0gPFxuICBRQyBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgQXJndW1lbnRzIGV4dGVuZHMgUXVlcnlBcmdzT2Y8UUM+LFxuICBSZXNwb25zZSBleHRlbmRzIFF1ZXJ5UmVzcG9uc2VPZjxRQz4sXG4gIFN0b3JlIGV4dGVuZHMgUXVlcnlTdG9yZU9mPFFDPixcbiAgRGF0YSBleHRlbmRzIFF1ZXJ5RGF0YU9mPFFDPixcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgSWQgZXh0ZW5kcyBRdWVyeVN0b3JlSWRPZjxRQz4sXG4gIE92ZXJyaWRlQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgT3ZlcnJpZGVSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlIHwgdW5kZWZpbmVkLFxuPihjb25maWc6IHtcbiAgY3JlYXRvcjogUUM7XG4gIGFyZ3M/OiBPdmVycmlkZUFyZ3VtZW50cztcbiAgcmVzcG9uc2U/OiBPdmVycmlkZVJlc3BvbnNlO1xufSkgPT4ge1xuICBpZiAoY29uZmlnLmFyZ3M/LnBhdGhQYXJhbXMpIHtcbiAgICBjb25zb2xlLmVycm9yKGNvbmZpZyk7XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhdGggcGFyYW1zIGNhbm5vdCBiZSBvdmVycmlkZGVuIGluIGNhc3RRdWVyeUNyZWF0b3JUeXBlcy4gQ3JlYXRlIGEgbmV3IHF1ZXJ5IGNyZWF0b3IgaW5zdGVhZC4nKTtcbiAgfVxuXG4gIHJldHVybiBjb25maWcuY3JlYXRvciBhcyB1bmtub3duIGFzIFF1ZXJ5Q3JlYXRvcjxPdmVycmlkZUFyZ3VtZW50cywgT3ZlcnJpZGVSZXNwb25zZSwgUm91dGUsIFN0b3JlLCBEYXRhLCBJZD47XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZVF1ZXJ5TWV0aG9kID0gKGNvbmZpZzogeyBjb25maWc6IEFueVJlc3RRdWVyeUNvbmZpZyB8IEFueUdxbFF1ZXJ5Q29uZmlnOyBjbGllbnQ6IFF1ZXJ5Q2xpZW50IH0pID0+IHtcbiAgbGV0IG1ldGhvZDogTWV0aG9kO1xuXG4gIGlmIChpc0dxbFF1ZXJ5Q29uZmlnKGNvbmZpZy5jb25maWcpKSB7XG4gICAgY29uc3QgdHJhbnNmZXJWaWEgPSBjb25maWcuY29uZmlnLnRyYW5zZmVyVmlhID8/IGNvbmZpZy5jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmdxbD8udHJhbnNmZXJWaWE7XG4gICAgbWV0aG9kID0gdHJhbnNmb3JtTWV0aG9kKHsgbWV0aG9kOiBjb25maWcuY29uZmlnLm1ldGhvZCwgdHJhbnNmZXJWaWEgfSk7XG4gIH0gZWxzZSB7XG4gICAgbWV0aG9kID0gdHJhbnNmb3JtTWV0aG9kKHsgbWV0aG9kOiBjb25maWcuY29uZmlnLm1ldGhvZCB9KTtcbiAgfVxuXG4gIHJldHVybiBtZXRob2Q7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZVF1ZXJ5Qm9keSA9IChjb25maWc6IHtcbiAgY29uZmlnOiBBbnlSZXN0UXVlcnlDb25maWcgfCBBbnlHcWxRdWVyeUNvbmZpZztcbiAgY2xpZW50OiBRdWVyeUNsaWVudDtcbiAgbWV0aG9kOiBNZXRob2Q7XG4gIGFyZ3M/OiBCYXNlQXJndW1lbnRzO1xufSkgPT4ge1xuICBsZXQgYm9keTogdW5rbm93bjtcblxuICBpZiAoXG4gICAgY29uZmlnLm1ldGhvZCA9PT0gJ0dFVCcgfHxcbiAgICBjb25maWcubWV0aG9kID09PSAnSEVBRCcgfHxcbiAgICBjb25maWcubWV0aG9kID09PSAnT1BUSU9OUycgfHxcbiAgICAoaXNHcWxRdWVyeUNvbmZpZyhjb25maWcuY29uZmlnKSAmJlxuICAgICAgKGNvbmZpZy5jb25maWcudHJhbnNmZXJWaWEgPT09ICdHRVQnIHx8XG4gICAgICAgIChjb25maWcuY2xpZW50LmNvbmZpZy5yZXF1ZXN0Py5ncWw/LnRyYW5zZmVyVmlhID09PSAnR0VUJyAmJiAhY29uZmlnLmNvbmZpZy50cmFuc2ZlclZpYSkpKVxuICApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGlzR3FsUXVlcnlDb25maWcoY29uZmlnLmNvbmZpZykpIHtcbiAgICBjb25zdCBxdWVyeVRlbXBsYXRlID0gY29uZmlnLmNvbmZpZy5xdWVyeTtcbiAgICBjb25zdCBxdWVyeSA9IHRyYW5zZm9ybUdxbChxdWVyeVRlbXBsYXRlKTtcblxuICAgIGJvZHkgPSBxdWVyeShjb25maWcuYXJncz8udmFyaWFibGVzKTtcbiAgfSBlbHNlIHtcbiAgICBib2R5ID0gY29uZmlnLmFyZ3M/LmJvZHk7XG4gIH1cblxuICByZXR1cm4gYm9keTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlUXVlcnlBdXRoSGVhZGVyID0gKGNvbmZpZzoge1xuICBjb25maWc6IEFueVJlc3RRdWVyeUNvbmZpZyB8IEFueUdxbFF1ZXJ5Q29uZmlnO1xuICBjbGllbnQ6IFF1ZXJ5Q2xpZW50O1xufSkgPT4ge1xuICBsZXQgYXV0aEhlYWRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChjb25maWcuY29uZmlnLnNlY3VyZSkge1xuICAgIGNvbnN0IGhlYWRlciA9IGNvbmZpZy5jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXI7XG5cbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBhdXRoSGVhZGVyID0gaGVhZGVyO1xuICAgIH1cbiAgfSBlbHNlIGlmIChjb25maWcuY2xpZW50LmF1dGhQcm92aWRlcj8uaGVhZGVyKSB7XG4gICAgaWYgKGNvbmZpZy5jb25maWcuc2VjdXJlID09PSB1bmRlZmluZWQgfHwgY29uZmlnLmNvbmZpZy5zZWN1cmUpIHtcbiAgICAgIGF1dGhIZWFkZXIgPSBjb25maWcuY2xpZW50LmF1dGhQcm92aWRlci5oZWFkZXI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGF1dGhIZWFkZXI7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZVF1ZXJ5SGVhZGVycyA9IChjb25maWc6IHtcbiAgY29uZmlnOiBBbnlSZXN0UXVlcnlDb25maWcgfCBBbnlHcWxRdWVyeUNvbmZpZztcbiAgY2xpZW50OiBRdWVyeUNsaWVudDtcbiAgYXJncz86IEJhc2VBcmd1bWVudHM7XG59KSA9PiB7XG4gIGNvbnN0IGF1dGhIZWFkZXIgPSBjb21wdXRlUXVlcnlBdXRoSGVhZGVyKGNvbmZpZyk7XG5cbiAgY29uc3QgbWVyZ2VkSGVhZGVycyA9XG4gICAgbWVyZ2VIZWFkZXJzKFxuICAgICAgZ2V0RGVmYXVsdEhlYWRlcnMoY29uZmlnLmNsaWVudC5jb25maWcucmVxdWVzdD8uaGVhZGVycywgY29uZmlnLmNvbmZpZy5tZXRob2QpLFxuICAgICAgYXV0aEhlYWRlcixcbiAgICAgIGNvbmZpZy5hcmdzPy5oZWFkZXJzLFxuICAgICkgfHwgdW5kZWZpbmVkO1xuXG4gIHJldHVybiBtZXJnZWRIZWFkZXJzO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVRdWVyeVF1ZXJ5UGFyYW1zID0gKGNvbmZpZzoge1xuICBjb25maWc6IEFueVJlc3RRdWVyeUNvbmZpZyB8IEFueUdxbFF1ZXJ5Q29uZmlnO1xuICBjbGllbnQ6IFF1ZXJ5Q2xpZW50O1xuICBhcmdzPzogQmFzZUFyZ3VtZW50cztcbn0pID0+IHtcbiAgaWYgKFxuICAgIGlzR3FsUXVlcnlDb25maWcoY29uZmlnLmNvbmZpZykgJiZcbiAgICAoY29uZmlnLmNvbmZpZy50cmFuc2ZlclZpYSA9PT0gJ0dFVCcgfHxcbiAgICAgIChjb25maWcuY2xpZW50LmNvbmZpZy5yZXF1ZXN0Py5ncWw/LnRyYW5zZmVyVmlhID09PSAnR0VUJyAmJiAhY29uZmlnLmNvbmZpZy50cmFuc2ZlclZpYSkpXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5VGVtcGxhdGUgPSBjb25maWcuY29uZmlnLnF1ZXJ5O1xuICAgIGNvbnN0IHF1ZXJ5ID0gdHJhbnNmb3JtR3FsKHF1ZXJ5VGVtcGxhdGUpO1xuXG4gICAgbGV0IHBhcmFtcyA9IHF1ZXJ5KGNvbmZpZy5hcmdzPy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKGNvbmZpZy5hcmdzPy5xdWVyeVBhcmFtcykge1xuICAgICAgcGFyYW1zID0geyAuLi5wYXJhbXMsIC4uLmNvbmZpZy5hcmdzPy5xdWVyeVBhcmFtcyB9O1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmFyZ3M/LnF1ZXJ5UGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhZ2luYXRlZEVudGl0eVZhbHVlVXBkYXRlciA9XG4gIDxcbiAgICBUIGV4dGVuZHMgUGFnaW5hdGVkPHVua25vd24+LFxuICAgIEFyZ3MgZXh0ZW5kcyBCYXNlQXJndW1lbnRzLFxuICAgIEVudGl0eSxcbiAgICBKIGV4dGVuZHMgVCBleHRlbmRzIFBhZ2luYXRlZDxpbmZlciBYPiA/IFggOiBuZXZlcixcbiAgPihcbiAgICBmaW5kRm46ICh2YWw6IEosIGVudGl0eTogRW50aXR5KSA9PiBib29sZWFuLFxuICApID0+XG4gICh7IHJlc3BvbnNlLCByYXdSZXNwb25zZSwgZW50aXR5IH06IHsgcmF3UmVzcG9uc2U6IFQ7IHJlc3BvbnNlOiBUOyBhcmdzOiBBcmdzOyBlbnRpdHk6IEVudGl0eSB9KSA9PiB7XG4gICAgY29uc3QgaW5kZXhPZkVudGl0eVJhdyA9IHJhd1Jlc3BvbnNlLml0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gZmluZEZuKGl0ZW0gYXMgSiwgZW50aXR5KSk7XG4gICAgY29uc3QgaW5kZXhPZkVudGl0eSA9IHJlc3BvbnNlLml0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gZmluZEZuKGl0ZW0gYXMgSiwgZW50aXR5KSk7XG5cbiAgICBpZiAoaW5kZXhPZkVudGl0eSA9PT0gLTEgfHwgaW5kZXhPZkVudGl0eVJhdyA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1Jhd1Jlc3BvbnNlID0ge1xuICAgICAgLi4ucmF3UmVzcG9uc2UsXG4gICAgICBpdGVtczogW1xuICAgICAgICAuLi5yYXdSZXNwb25zZS5pdGVtcy5zbGljZSgwLCBpbmRleE9mRW50aXR5UmF3KSxcbiAgICAgICAgZW50aXR5LFxuICAgICAgICAuLi5yYXdSZXNwb25zZS5pdGVtcy5zbGljZShpbmRleE9mRW50aXR5UmF3ICsgMSksXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCBuZXdSZXNwb25zZSA9IHtcbiAgICAgIC4uLnJlc3BvbnNlLFxuICAgICAgaXRlbXM6IFsuLi5yZXNwb25zZS5pdGVtcy5zbGljZSgwLCBpbmRleE9mRW50aXR5KSwgZW50aXR5LCAuLi5yZXNwb25zZS5pdGVtcy5zbGljZShpbmRleE9mRW50aXR5ICsgMSldLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzcG9uc2U6IG5ld1Jlc3BvbnNlLFxuICAgICAgcmF3UmVzcG9uc2U6IG5ld1Jhd1Jlc3BvbnNlLFxuICAgIH07XG4gIH07XG4iXX0=
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import {
|
|
2
|
+
import { QueryCreator } from '../query-creator';
|
|
3
3
|
import { QueryStore } from '../query-store';
|
|
4
|
-
import { buildRoute } from '../request';
|
|
5
|
-
import { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';
|
|
6
4
|
export class QueryClient {
|
|
7
5
|
get config() {
|
|
8
6
|
return this._clientConfig;
|
|
@@ -44,33 +42,7 @@ export class QueryClient {
|
|
|
44
42
|
...queryConfig,
|
|
45
43
|
method: 'GQL_MUTATE',
|
|
46
44
|
});
|
|
47
|
-
this.fetch = (queryConfig) =>
|
|
48
|
-
const prepare = (args) => {
|
|
49
|
-
const route = buildRoute({
|
|
50
|
-
base: this._clientConfig.baseRoute,
|
|
51
|
-
route: queryConfig.route,
|
|
52
|
-
pathParams: args?.pathParams,
|
|
53
|
-
queryParams: computeQueryQueryParams({ config: queryConfig, client: this, args }),
|
|
54
|
-
});
|
|
55
|
-
const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;
|
|
56
|
-
if (shouldCacheQuery(queryConfig.method)) {
|
|
57
|
-
const existingQuery = this._store.get(cacheKey);
|
|
58
|
-
if (existingQuery) {
|
|
59
|
-
return existingQuery;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const query = new Query(this, queryConfig, route, args ?? {});
|
|
63
|
-
if (shouldCacheQuery(queryConfig.method)) {
|
|
64
|
-
this._store.add(cacheKey, query);
|
|
65
|
-
}
|
|
66
|
-
return query;
|
|
67
|
-
};
|
|
68
|
-
const behaviorSubject = (initialValue = null) => new BehaviorSubject(initialValue);
|
|
69
|
-
return {
|
|
70
|
-
prepare,
|
|
71
|
-
behaviorSubject,
|
|
72
|
-
};
|
|
73
|
-
};
|
|
45
|
+
this.fetch = (queryConfig) => new QueryCreator(queryConfig, this, this._store);
|
|
74
46
|
this.setAuthProvider = (authProvider) => {
|
|
75
47
|
if (this.authProvider) {
|
|
76
48
|
throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');
|
|
@@ -102,4 +74,4 @@ export class QueryClient {
|
|
|
102
74
|
});
|
|
103
75
|
}
|
|
104
76
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBRUwsdUJBQXVCLEVBR3ZCLGdCQUFnQixFQUNoQixLQUFLLEdBSU4sTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQWlFLE1BQU0sWUFBWSxDQUFDO0FBT3ZHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFFLE1BQU0sT0FBTyxXQUFXO0lBR3RCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2hILENBQUM7SUFHRCxZQUFvQixhQUFnQztRQUFoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFGbkMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFXakYsUUFBRyxHQUFHLENBT0osV0FBOEYsRUFDOUYsRUFBRSxDQUNGLElBQUksQ0FB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QUMsT0FBTyxFQUFFLGtCQUFrQixJQUFJLElBQUk7U0FDdEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQXVMRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFByb3ZpZGVyIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQge1xuICBCYXNlQXJndW1lbnRzLFxuICBjb21wdXRlUXVlcnlRdWVyeVBhcmFtcyxcbiAgR3FsUXVlcnlDb25maWcsXG4gIEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZCxcbiAgaXNHcWxRdWVyeUNvbmZpZyxcbiAgUXVlcnksXG4gIFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZCxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5U3RvcmUgfSBmcm9tICcuLi9xdWVyeS1zdG9yZSc7XG5pbXBvcnQgeyBidWlsZFJvdXRlLCBNZXRob2QgYXMgTWV0aG9kVHlwZSwgUmVxdWVzdEhlYWRlcnMsIFJlcXVlc3RIZWFkZXJzTWV0aG9kTWFwIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQge1xuICBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcixcbiAgUXVlcnlDbGllbnRDb25maWcsXG4gIFF1ZXJ5Q3JlYXRvcixcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGUsXG59IGZyb20gJy4vcXVlcnktY2xpZW50LnR5cGVzJztcbmltcG9ydCB7IGJ1aWxkR3FsQ2FjaGVLZXksIHNob3VsZENhY2hlUXVlcnkgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudC51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlOiBRdWVyeVN0b3JlO1xuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENvbmZpZztcbiAgfVxuXG4gIGdldCBhdXRoUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuZ2V0VmFsdWUoKSA/PyB0aGlzLl9jbGllbnRDb25maWcucGFyZW50Py5fYXV0aFByb3ZpZGVyJC5nZXRWYWx1ZSgpID8/IG51bGw7XG4gIH1cbiAgZ2V0IGF1dGhQcm92aWRlciQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gdGhpcy5fY2xpZW50Q29uZmlnLnBhcmVudD8uX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoUHJvdmlkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoUHJvdmlkZXIgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jbGllbnRDb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKSB7XG4gICAgdGhpcy5fc3RvcmUgPSBuZXcgUXVlcnlTdG9yZSh7XG4gICAgICBlbmFibGVDaGFuZ2VMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVDaGFuZ2VzLFxuICAgICAgZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmc6IF9jbGllbnRDb25maWcubG9nZ2luZz8ucXVlcnlTdGF0ZUdhcmJhZ2VDb2xsZWN0b3IsXG4gICAgICBhdXRvUmVmcmVzaFF1ZXJpZXNPbldpbmRvd0ZvY3VzOiBfY2xpZW50Q29uZmlnLnJlcXVlc3Q/LmF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXMgPz8gdHJ1ZSxcbiAgICAgIGVuYWJsZVNtYXJ0UG9sbGluZzogX2NsaWVudENvbmZpZy5yZXF1ZXN0Py5lbmFibGVTbWFydFBvbGxpbmcgPz8gdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgICBFbnRpdHkgPSB1bmtub3duLFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR0VUJywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5Pih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSk7XG5cbiAgcG9zdCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgICBFbnRpdHkgPSB1bmtub3duLFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnUE9TVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICB9KTtcblxuICBwdXQgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gICAgRW50aXR5ID0gdW5rbm93bixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyLCBFbnRpdHk+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ1BVVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgIH0pO1xuXG4gIHBhdGNoID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICAgIEVudGl0eSA9IHVua25vd24sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdQQVRDSCcsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgfSk7XG5cbiAgZGVsZXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICAgIEVudGl0eSA9IHVua25vd24sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdERUxFVEUnLCBSZXNwb25zZVRyYW5zZm9ybWVyLCBFbnRpdHk+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICB9KTtcblxuICBncWxRdWVyeSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgICBFbnRpdHkgPSB1bmtub3duLFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR1FMX1FVRVJZJywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5Pih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dRTF9RVUVSWScsXG4gICAgfSk7XG5cbiAgZ3FsTXV0YXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICAgIEVudGl0eSA9IHVua25vd24sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdHUUxfTVVUQVRFJywgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5Pih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dRTF9NVVRBVEUnLFxuICAgIH0pO1xuXG4gIGZldGNoID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgICBNZXRob2QgZXh0ZW5kcyBNZXRob2RUeXBlLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gICAgRW50aXR5ID0gdW5rbm93bixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzpcbiAgICAgIHwgUmVzdFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyLCBFbnRpdHk+XG4gICAgICB8IEdxbFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyLCBFbnRpdHk+LFxuICApOiBRdWVyeUNyZWF0b3I8QXJndW1lbnRzLCBNZXRob2QsIFJlc3BvbnNlLCBSb3V0ZSwgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PiA9PiB7XG4gICAgY29uc3QgcHJlcGFyZSA9IChhcmdzPzogQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgICBiYXNlOiB0aGlzLl9jbGllbnRDb25maWcuYmFzZVJvdXRlLFxuICAgICAgICByb3V0ZTogcXVlcnlDb25maWcucm91dGUsXG4gICAgICAgIHBhdGhQYXJhbXM6IGFyZ3M/LnBhdGhQYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBjb21wdXRlUXVlcnlRdWVyeVBhcmFtcyh7IGNvbmZpZzogcXVlcnlDb25maWcsIGNsaWVudDogdGhpcywgYXJncyB9KSxcbiAgICAgIH0pIGFzIFJvdXRlO1xuXG4gICAgICBjb25zdCBjYWNoZUtleSA9IGlzR3FsUXVlcnlDb25maWcocXVlcnlDb25maWcpID8gYnVpbGRHcWxDYWNoZUtleShxdWVyeUNvbmZpZywgYXJncykgOiByb3V0ZTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICBjb25zdCBleGlzdGluZ1F1ZXJ5ID1cbiAgICAgICAgICB0aGlzLl9zdG9yZS5nZXQ8UXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5Pj4oY2FjaGVLZXkpO1xuXG4gICAgICAgIGlmIChleGlzdGluZ1F1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVlcnk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lciwgRW50aXR5PihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcXVlcnlDb25maWcsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBhcmdzID8/ICh7fSBhcyBBcmd1bWVudHMpLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICB0aGlzLl9zdG9yZS5hZGQoY2FjaGVLZXksIHF1ZXJ5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH07XG5cbiAgICBjb25zdCBiZWhhdmlvclN1YmplY3QgPSA8VCBleHRlbmRzIFJldHVyblR5cGU8dHlwZW9mIHByZXBhcmU+Pihpbml0aWFsVmFsdWU6IFQgfCBudWxsID0gbnVsbCkgPT5cbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+KGluaXRpYWxWYWx1ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJlcGFyZSxcbiAgICAgIGJlaGF2aW9yU3ViamVjdCxcbiAgICB9IGFzIHVua25vd24gYXMgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgTWV0aG9kLCBSZXNwb25zZSwgUm91dGUsIFJlc3BvbnNlVHJhbnNmb3JtZXIsIEVudGl0eT47XG4gIH07XG5cbiAgc2V0QXV0aFByb3ZpZGVyID0gKGF1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhdXRoIHByb3ZpZGVyIGlzIGFscmVhZHkgc2V0LiBQbGVhc2UgY2FsbCBjbGVhckF1dGhQcm92aWRlcigpIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHRoaXMuX2F1dGhQcm92aWRlciQubmV4dChhdXRoUHJvdmlkZXIpO1xuICB9O1xuXG4gIHNldERlZmF1bHRIZWFkZXJzID0gKGNvbmZpZzoge1xuICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzIHwgUmVxdWVzdEhlYWRlcnNNZXRob2RNYXAgfCBudWxsO1xuICAgIHJlZnJlc2hRdWVyaWVzSW5Vc2U/OiBib29sZWFuO1xuICB9KSA9PiB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnRDb25maWcucmVxdWVzdCkge1xuICAgICAgdGhpcy5fY2xpZW50Q29uZmlnLnJlcXVlc3QgPSB7XG4gICAgICAgIGhlYWRlcnM6IGNvbmZpZy5oZWFkZXJzID8/IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NsaWVudENvbmZpZy5yZXF1ZXN0LmhlYWRlcnMgPSBjb25maWcuaGVhZGVycyA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5yZWZyZXNoUXVlcmllc0luVXNlKSB7XG4gICAgICB0aGlzLl9zdG9yZS5yZWZyZXNoUXVlcmllc0luVXNlKHsgcHVyZ2VVbnVzZWQ6IHRydWUsIGlnbm9yZUNhY2hlVmFsaWRpdHk6IHRydWUgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNsZWFyQXV0aFByb3ZpZGVyID0gKCkgPT4ge1xuICAgIHRoaXMuYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyJC5uZXh0KG51bGwpO1xuICB9O1xufVxuIl19
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVDLE1BQU0sT0FBTyxXQUFXO0lBR3RCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2hILENBQUM7SUFHRCxZQUFvQixhQUFnQztRQUFoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFGbkMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFXakYsUUFBRyxHQUFHLENBUUosV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQThDO1lBQ3RELEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUwsU0FBSSxHQUFHLENBUUwsV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENB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XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vZW50aXR5JztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZCxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5Q3JlYXRvciB9IGZyb20gJy4uL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgUXVlcnlTdG9yZSB9IGZyb20gJy4uL3F1ZXJ5LXN0b3JlJztcbmltcG9ydCB7IFJlcXVlc3RIZWFkZXJzLCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnRDb25maWcgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudC50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlOiBRdWVyeVN0b3JlO1xuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENvbmZpZztcbiAgfVxuXG4gIGdldCBhdXRoUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuZ2V0VmFsdWUoKSA/PyB0aGlzLl9jbGllbnRDb25maWcucGFyZW50Py5fYXV0aFByb3ZpZGVyJC5nZXRWYWx1ZSgpID8/IG51bGw7XG4gIH1cbiAgZ2V0IGF1dGhQcm92aWRlciQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gdGhpcy5fY2xpZW50Q29uZmlnLnBhcmVudD8uX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoUHJvdmlkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoUHJvdmlkZXIgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jbGllbnRDb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKSB7XG4gICAgdGhpcy5fc3RvcmUgPSBuZXcgUXVlcnlTdG9yZSh7XG4gICAgICBlbmFibGVDaGFuZ2VMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVDaGFuZ2VzLFxuICAgICAgZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmc6IF9jbGllbnRDb25maWcubG9nZ2luZz8ucXVlcnlTdGF0ZUdhcmJhZ2VDb2xsZWN0b3IsXG4gICAgICBhdXRvUmVmcmVzaFF1ZXJpZXNPbldpbmRvd0ZvY3VzOiBfY2xpZW50Q29uZmlnLnJlcXVlc3Q/LmF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXMgPz8gdHJ1ZSxcbiAgICAgIGVuYWJsZVNtYXJ0UG9sbGluZzogX2NsaWVudENvbmZpZy5yZXF1ZXN0Py5lbmFibGVTbWFydFBvbGxpbmcgPz8gdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSk7XG5cbiAgcG9zdCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuXG4gIHB1dCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgfSk7XG5cbiAgcGF0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgfSk7XG5cbiAgZGVsZXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgSWQsXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPiA9IEVudGl0eVN0b3JlPHVua25vd24+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBJZCwgU3RvcmUsIERhdGE+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICB9KTtcblxuICBncWxRdWVyeSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogR3FsUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dRTF9RVUVSWScsXG4gICAgfSk7XG5cbiAgZ3FsTXV0YXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgSWQsXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPiA9IEVudGl0eVN0b3JlPHVua25vd24+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBJZCwgU3RvcmUsIERhdGE+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX01VVEFURScsXG4gICAgfSk7XG5cbiAgZmV0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIElkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gID4oXG4gICAgcXVlcnlDb25maWc6XG4gICAgICB8IFJlc3RRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PiBuZXcgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgUmVzcG9uc2UsIFJvdXRlLCBTdG9yZSwgRGF0YSwgSWQ+KHF1ZXJ5Q29uZmlnLCB0aGlzLCB0aGlzLl9zdG9yZSk7XG5cbiAgc2V0QXV0aFByb3ZpZGVyID0gKGF1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhdXRoIHByb3ZpZGVyIGlzIGFscmVhZHkgc2V0LiBQbGVhc2UgY2FsbCBjbGVhckF1dGhQcm92aWRlcigpIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHRoaXMuX2F1dGhQcm92aWRlciQubmV4dChhdXRoUHJvdmlkZXIpO1xuICB9O1xuXG4gIHNldERlZmF1bHRIZWFkZXJzID0gKGNvbmZpZzoge1xuICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzIHwgUmVxdWVzdEhlYWRlcnNNZXRob2RNYXAgfCBudWxsO1xuICAgIHJlZnJlc2hRdWVyaWVzSW5Vc2U/OiBib29sZWFuO1xuICB9KSA9PiB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnRDb25maWcucmVxdWVzdCkge1xuICAgICAgdGhpcy5fY2xpZW50Q29uZmlnLnJlcXVlc3QgPSB7XG4gICAgICAgIGhlYWRlcnM6IGNvbmZpZy5oZWFkZXJzID8/IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NsaWVudENvbmZpZy5yZXF1ZXN0LmhlYWRlcnMgPSBjb25maWcuaGVhZGVycyA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5yZWZyZXNoUXVlcmllc0luVXNlKSB7XG4gICAgICB0aGlzLl9zdG9yZS5yZWZyZXNoUXVlcmllc0luVXNlKHsgcHVyZ2VVbnVzZWQ6IHRydWUsIGlnbm9yZUNhY2hlVmFsaWRpdHk6IHRydWUgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNsZWFyQXV0aFByb3ZpZGVyID0gKCkgPT4ge1xuICAgIHRoaXMuYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyJC5uZXh0KG51bGwpO1xuICB9O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEdxbFRyYW5zZmVyT3B0aW9uIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgQ2FjaGVBZGFwdGVyRm4sIFJlcXVlc3RIZWFkZXJzLCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCwgUmVxdWVzdFJldHJ5Rm4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9xdWVyeS1jbGllbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5Q2xpZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBhcGkgYmFzZSByb3V0ZS5cbiAgICogQGV4YW1wbGUgJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJ1xuICAgKi9cbiAgYmFzZVJvdXRlOiBgaHR0cHM6Ly8ke3N0cmluZ31gIHwgYGh0dHA6Ly9sb2NhbGhvc3Q6JHtzdHJpbmd9YDtcblxuICAvKipcbiAgICogTG9nZ2luZyBjb25maWd1cmF0aW9uIGZvciBkZWJ1Z2dpbmcuXG4gICAqL1xuICBsb2dnaW5nPzoge1xuICAgIC8qKlxuICAgICAqIExvZyBhbGwgcXVlcnkgc3RhdGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBxdWVyeVN0YXRlQ2hhbmdlcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBMb2cgcXVlcnkgc3RhdGUgZ2FyYmFnZSBjb2xsZWN0b3IgcnVucy5cbiAgICAgKi9cbiAgICBxdWVyeVN0YXRlR2FyYmFnZUNvbGxlY3Rvcj86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlcXVlc3Qgb3B0aW9ucy5cbiAgICovXG4gIHJlcXVlc3Q/OiB7XG4gICAgLyoqXG4gICAgICogQWRhcHRlciBmdW5jdGlvbiB1c2VkIGZvciBleHRyYWN0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSByZXNwb25zZSBpcyBpbnZhbGlkLlxuICAgICAqIFRoZSBkZWZhdWx0IHVzZXMgdGhlIGBjYWNoZS1jb250cm9sYCAoYG1heC1hZ2VgICYgYHMtbWF4YWdlYCksIGBhZ2VgIGFuZCBgZXhwaXJlc2AgaGVhZGVycy5cbiAgICAgKiBTaG91bGQgcmV0dXJuIGEgbnVtYmVyIGluIHNlY29uZHMuXG4gICAgICovXG4gICAgY2FjaGVBZGFwdGVyPzogQ2FjaGVBZGFwdGVyRm47XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIGV2ZXJ5IHJlcXVlc3QuXG4gICAgICogV2lsbCBiZSBvdmVycmlkZGVuIGJ5IGhlYWRlcnMgcGFzc2VkIHRvIHRoZSBxdWVyeS5cbiAgICAgKiBEbyBub3QgaW5jbHVkZSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlciBoZXJlLiBVc2UgYW4gYEF1dGhQcm92aWRlcmAgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBoZWFkZXJzPzogUmVxdWVzdEhlYWRlcnMgfCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSByZWZyZXNoIGV4cGlyZWQgcXVlcmllcyB3aGVuIHRoZSB3aW5kb3cgcmVnYWlucyBmb2N1cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgYXV0b1JlZnJlc2hRdWVyaWVzT25XaW5kb3dGb2N1cz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgc3RvcCBwb2xsaW5nIHF1ZXJpZXMgd2hlbiB0aGUgd2luZG93IGxvc2VzIGZvY3VzLlxuICAgICAqIFBvbGxpbmcgd2lsbCByZXN1bWUgd2hlbiB0aGUgd2luZG93IHJlZ2FpbnMgZm9jdXMuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZVNtYXJ0UG9sbGluZz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBIHJldHJ5IGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIGFsbCBxdWVyaWVzLlxuICAgICAqIEBkZWZhdWx0IHNob3VsZFJldHJ5UmVxdWVzdCgpXG4gICAgICovXG4gICAgcmV0cnlGbj86IFJlcXVlc3RSZXRyeUZuO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbGwgZ3JhcGhxbCBxdWVyaWVzLlxuICAgICAqL1xuICAgIGdxbD86IHtcbiAgICAgIC8qKlxuICAgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgcXVlcnkgc2hvdWxkIGJlIHNlbnQgdmlhIEdFVCBvciBQT1NULlxuICAgICAgICogLSBgR0VUYDogVGhlIHF1ZXJ5IHdpbGwgYmUgc2VudCB2aWEgcXVlcnkgcGFyYW1ldGVycy5cbiAgICAgICAqIC0gYFBPU1RgOiBUaGUgcXVlcnkgd2lsbCBiZSBzZW50IHZpYSB0aGUgYm9keS5cbiAgICAgICAqIEBkZWZhdWx0ICdQT1NUJ1xuICAgICAgICovXG4gICAgICB0cmFuc2ZlclZpYT86IEdxbFRyYW5zZmVyT3B0aW9uO1xuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIFBhcmVudCBxdWVyeSBjbGllbnQuXG4gICAqIFVzZWQgZm9yIHNoYXJpbmcgdGhlIHNhbWUgYXV0aCBwcm92aWRlci5cbiAgICovXG4gIHBhcmVudD86IFF1ZXJ5Q2xpZW50O1xufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './query-creator';
|
|
2
|
+
export * from './query-creator.types';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktY3JlYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1jcmVhdG9yLnR5cGVzJztcbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { Query, computeQueryQueryParams, isGqlQueryConfig } from '../query';
|
|
3
|
+
import { buildGqlCacheKey, shouldCacheQuery } from '../query-client';
|
|
4
|
+
import { buildRoute } from '../request';
|
|
5
|
+
export class QueryCreator {
|
|
6
|
+
constructor(_queryConfig, _client, _store) {
|
|
7
|
+
this._queryConfig = _queryConfig;
|
|
8
|
+
this._client = _client;
|
|
9
|
+
this._store = _store;
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
this.prepare = (args) => {
|
|
13
|
+
const route = buildRoute({
|
|
14
|
+
base: this._client.config.baseRoute,
|
|
15
|
+
route: this._queryConfig.route,
|
|
16
|
+
pathParams: args?.pathParams,
|
|
17
|
+
queryParams: computeQueryQueryParams({ config: this._queryConfig, client: this._client, args }),
|
|
18
|
+
});
|
|
19
|
+
const cacheKey = isGqlQueryConfig(this._queryConfig) ? buildGqlCacheKey(this._queryConfig, args) : route;
|
|
20
|
+
if (shouldCacheQuery(this._queryConfig.method)) {
|
|
21
|
+
const existingQuery = this._store.get(cacheKey);
|
|
22
|
+
if (existingQuery) {
|
|
23
|
+
return existingQuery;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const query = new Query(this._client, this._queryConfig, route, args ?? {});
|
|
27
|
+
if (shouldCacheQuery(this._queryConfig.method)) {
|
|
28
|
+
this._store.add(cacheKey, query);
|
|
29
|
+
}
|
|
30
|
+
return query;
|
|
31
|
+
};
|
|
32
|
+
this.behaviorSubject = (initialValue) => new BehaviorSubject(initialValue ?? null);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1jcmVhdG9yL3F1ZXJ5LWNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVFLE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHeEMsTUFBTSxPQUFPLFlBQVk7SUFRdkIsWUFDVSxZQUV1RCxFQUN2RCxPQUFvQixFQUNwQixNQUFrQjtRQUpsQixpQkFBWSxHQUFaLFlBQVksQ0FFMkM7UUFDdkQsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRzVCLDZEQUE2RDtRQUM3RCxhQUFhO1FBQ2IsWUFBTyxHQUFnRSxDQUFDLElBQThCLEVBQUUsRUFBRTtZQUN4RyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUM7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO2dCQUM5QixVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVU7Z0JBQzVCLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2hHLENBQVUsQ0FBQztZQUVaLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBRXpHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQXFELFFBQVEsQ0FBQyxDQUFDO2dCQUVwRyxJQUFJLGFBQWEsRUFBRTtvQkFDakIsT0FBTyxhQUFhLENBQUM7aUJBQ3RCO2FBQ0Y7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FDckIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsWUFBWSxFQUNqQixLQUFLLEVBQ0wsSUFBSSxJQUFLLEVBQWdCLENBQzFCLENBQUM7WUFFRixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFlBQXFELEVBQUUsRUFBRSxDQUMxRSxJQUFJLGVBQWUsQ0FBeUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBckNqRixDQUFDO0NBc0NMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4uL2VudGl0eSc7XG5pbXBvcnQgeyBRdWVyeSwgY29tcHV0ZVF1ZXJ5UXVlcnlQYXJhbXMsIGlzR3FsUXVlcnlDb25maWcgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUNsaWVudCwgYnVpbGRHcWxDYWNoZUtleSwgc2hvdWxkQ2FjaGVRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcnktc3RvcmUnO1xuaW1wb3J0IHsgQmFzZUFyZ3VtZW50cywgR3FsUXVlcnlDb25maWcsIFJlc3RRdWVyeUNvbmZpZywgUm91dGVUeXBlLCBXaXRoSGVhZGVycyB9IGZyb20gJy4uL3F1ZXJ5L3F1ZXJ5LnR5cGVzJztcbmltcG9ydCB7IGJ1aWxkUm91dGUgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFF1ZXJ5UHJlcGFyZUZuIH0gZnJvbSAnLi9xdWVyeS1jcmVhdG9yLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5Q3JlYXRvcjxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUmVzcG9uc2UsXG4gIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gIERhdGEsXG4gIElkLFxuPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3F1ZXJ5Q29uZmlnOlxuICAgICAgfCBSZXN0UXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICAgcHJpdmF0ZSBfY2xpZW50OiBRdWVyeUNsaWVudCxcbiAgICBwcml2YXRlIF9zdG9yZTogUXVlcnlTdG9yZSxcbiAgKSB7fVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZVxuICBwcmVwYXJlOiBRdWVyeVByZXBhcmVGbjxBcmd1bWVudHMsIFJlc3BvbnNlLCBSb3V0ZSwgU3RvcmUsIERhdGEsIElkPiA9IChhcmdzPzogQXJndW1lbnRzICYgV2l0aEhlYWRlcnMpID0+IHtcbiAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgYmFzZTogdGhpcy5fY2xpZW50LmNvbmZpZy5iYXNlUm91dGUsXG4gICAgICByb3V0ZTogdGhpcy5fcXVlcnlDb25maWcucm91dGUsXG4gICAgICBwYXRoUGFyYW1zOiBhcmdzPy5wYXRoUGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXM6IGNvbXB1dGVRdWVyeVF1ZXJ5UGFyYW1zKHsgY29uZmlnOiB0aGlzLl9xdWVyeUNvbmZpZywgY2xpZW50OiB0aGlzLl9jbGllbnQsIGFyZ3MgfSksXG4gICAgfSkgYXMgUm91dGU7XG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGlzR3FsUXVlcnlDb25maWcodGhpcy5fcXVlcnlDb25maWcpID8gYnVpbGRHcWxDYWNoZUtleSh0aGlzLl9xdWVyeUNvbmZpZywgYXJncykgOiByb3V0ZTtcblxuICAgIGlmIChzaG91bGRDYWNoZVF1ZXJ5KHRoaXMuX3F1ZXJ5Q29uZmlnLm1ldGhvZCkpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUXVlcnkgPSB0aGlzLl9zdG9yZS5nZXQ8UXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIFN0b3JlLCBEYXRhLCBJZD4+KGNhY2hlS2V5KTtcblxuICAgICAgaWYgKGV4aXN0aW5nUXVlcnkpIHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVlcnk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIFN0b3JlLCBEYXRhLCBJZD4oXG4gICAgICB0aGlzLl9jbGllbnQsXG4gICAgICB0aGlzLl9xdWVyeUNvbmZpZyxcbiAgICAgIHJvdXRlLFxuICAgICAgYXJncyA/PyAoe30gYXMgQXJndW1lbnRzKSxcbiAgICApO1xuXG4gICAgaWYgKHNob3VsZENhY2hlUXVlcnkodGhpcy5fcXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgdGhpcy5fc3RvcmUuYWRkKGNhY2hlS2V5LCBxdWVyeSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9O1xuXG4gIGJlaGF2aW9yU3ViamVjdCA9IChpbml0aWFsVmFsdWU/OiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLnByZXBhcmU+IHwgbnVsbCkgPT5cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFJldHVyblR5cGU8dHlwZW9mIHRoaXMucHJlcGFyZT4gfCBudWxsPihpbml0aWFsVmFsdWUgPz8gbnVsbCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY3JlYXRvci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1jcmVhdG9yL3F1ZXJ5LWNyZWF0b3IudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vZW50aXR5JztcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSAnLi4vcXVlcnkvcXVlcnknO1xuaW1wb3J0IHsgQW55UXVlcnksIEJhc2VBcmd1bWVudHMsIEVtcHR5T2JqZWN0LCBSb3V0ZVR5cGUsIFdpdGhIZWFkZXJzIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgUXVlcnlDcmVhdG9yIH0gZnJvbSAnLi9xdWVyeS1jcmVhdG9yJztcblxuZXhwb3J0IHR5cGUgUXVlcnlQcmVwYXJlRm48XG4gIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+LFxuICBEYXRhLFxuICBJZCxcbj4gPSBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzXG4gID8gKGFyZ3M6IEFyZ3VtZW50cyAmIFdpdGhIZWFkZXJzKSA9PiBRdWVyeTxSZXNwb25zZSwgQXJndW1lbnRzLCBSb3V0ZSwgU3RvcmUsIERhdGEsIElkPlxuICA6IChcbiAgICAgIGFyZ3M/OiAoQXJndW1lbnRzIGV4dGVuZHMgRW1wdHlPYmplY3QgPyBBcmd1bWVudHMgOiBFbXB0eU9iamVjdCkgJiBXaXRoSGVhZGVycyxcbiAgICApID0+IFF1ZXJ5PFJlc3BvbnNlLCBBcmd1bWVudHMsIFJvdXRlLCBTdG9yZSwgRGF0YSwgSWQ+O1xuXG5leHBvcnQgdHlwZSBBbnlRdWVyeUNyZWF0b3IgPSBRdWVyeUNyZWF0b3I8YW55LCBhbnksIGFueSwgYW55LCBhbnksIGFueT47XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5QXJnc09mPFQgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3IgfCBBbnlRdWVyeSB8IG51bGw+ID0gVCBleHRlbmRzIFF1ZXJ5Q3JlYXRvcjxcbiAgaW5mZXIgQXJncyxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnlcbj5cbiAgPyBBcmdzXG4gIDogVCBleHRlbmRzIFF1ZXJ5PGFueSwgaW5mZXIgQXJncywgYW55LCBhbnksIGFueSwgYW55PlxuICA/IEFyZ3NcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgUXVlcnlSZXNwb25zZU9mPFQgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3IgfCBBbnlRdWVyeSB8IG51bGw+ID0gVCBleHRlbmRzIFF1ZXJ5Q3JlYXRvcjxcbiAgYW55LFxuICBpbmZlciBSZXNwb25zZSxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55XG4+XG4gID8gUmVzcG9uc2VcbiAgOiBUIGV4dGVuZHMgUXVlcnk8aW5mZXIgUmVzcG9uc2UsIGFueSwgYW55LCBhbnksIGFueSwgYW55PlxuICA/IFJlc3BvbnNlXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5Um91dGVPZjxUIGV4dGVuZHMgQW55UXVlcnlDcmVhdG9yIHwgQW55UXVlcnkgfCBudWxsPiA9IFQgZXh0ZW5kcyBRdWVyeUNyZWF0b3I8XG4gIGFueSxcbiAgYW55LFxuICBpbmZlciBSb3V0ZSxcbiAgYW55LFxuICBhbnksXG4gIGFueVxuPlxuICA/IFJvdXRlXG4gIDogVCBleHRlbmRzIFF1ZXJ5PGFueSwgYW55LCBpbmZlciBSb3V0ZSwgYW55LCBhbnksIGFueT5cbiAgPyBSb3V0ZVxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0b3JlT2Y8VCBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvciB8IEFueVF1ZXJ5IHwgbnVsbD4gPSBUIGV4dGVuZHMgUXVlcnlDcmVhdG9yPFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBpbmZlciBTdG9yZSxcbiAgYW55LFxuICBhbnlcbj5cbiAgPyBTdG9yZVxuICA6IFQgZXh0ZW5kcyBRdWVyeTxhbnksIGFueSwgYW55LCBpbmZlciBTdG9yZSwgYW55LCBhbnk+XG4gID8gU3RvcmVcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgUXVlcnlEYXRhT2Y8VCBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvciB8IEFueVF1ZXJ5IHwgbnVsbD4gPSBUIGV4dGVuZHMgUXVlcnlDcmVhdG9yPFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIGluZmVyIERhdGEsXG4gIGFueVxuPlxuICA/IERhdGFcbiAgOiBUIGV4dGVuZHMgUXVlcnk8YW55LCBhbnksIGFueSwgYW55LCBpbmZlciBEYXRhLCBhbnk+XG4gID8gRGF0YVxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0b3JlSWRPZjxUIGV4dGVuZHMgQW55UXVlcnlDcmVhdG9yIHwgQW55UXVlcnkgfCBudWxsPiA9IFQgZXh0ZW5kcyBRdWVyeUNyZWF0b3I8XG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBpbmZlciBTdG9yZUlkXG4+XG4gID8gU3RvcmVJZFxuICA6IFQgZXh0ZW5kcyBRdWVyeTxhbnksIGFueSwgYW55LCBhbnksIGFueSwgaW5mZXIgU3RvcmVJZD5cbiAgPyBTdG9yZUlkXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIENvbnN0cnVjdFF1ZXJ5PFQgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3I+ID0gUmV0dXJuVHlwZTxUWydwcmVwYXJlJ10+O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9yZXF1ZXN0L3JlcXVlc3QudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnLi9yZXF1ZXN0LnV0aWwnO1xuXG5leHBvcnQgdHlwZSBNZXRob2QgPVxuICB8ICdHRVQnXG4gIHwgJ1BPU1QnXG4gIHwgJ1BVVCdcbiAgfCAnREVMRVRFJ1xuICB8ICdQQVRDSCdcbiAgfCAnSEVBRCdcbiAgfCAnT1BUSU9OUydcbiAgfCAnVFJBQ0UnXG4gIHwgJ0NPTk5FQ1QnXG4gIHwgJ1BVUkdFJ1xuICB8ICdMSU5LJ1xuICB8ICdVTkxJTksnXG4gIHwgJ0dRTF9RVUVSWSdcbiAgfCAnR1FMX01VVEFURSdcbiAgfCAnQ1VTVE9NJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0RXJyb3I8RGV0YWlsID0gdW5rbm93bj4ge1xuICB1cmw6IHN0cmluZztcbiAgc3RhdHVzOiBIdHRwU3RhdHVzQ29kZTtcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICBkZXRhaWw6IERldGFpbDtcbn1cblxuZXhwb3J0IHR5cGUgUGFyYW1QcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgUGFyYW1zID0gUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgUGFyYW1QcmltaXRpdmUgfCBQYXJhbUFycmF5PjtcblxuZXhwb3J0IHR5cGUgUGFyYW1BcnJheSA9IEFycmF5PFBhcmFtUHJpbWl0aXZlPjtcblxuZXhwb3J0IHR5cGUgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFyYW1zID0ge1xuICBba2V5OiBzdHJpbmddOiBVbmZpbHRlcmVkUGFyYW1QcmltaXRpdmUgfCBVbmZpbHRlcmVkUGFyYW1BcnJheSB8IFF1ZXJ5UGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgUGF0aFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG5cbmV4cG9ydCB0eXBlIFVuZmlsdGVyZWRQYXJhbUFycmF5ID0gQXJyYXk8VW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlPjtcblxuZXhwb3J0IHR5cGUgQ2FjaGVBZGFwdGVyRm4gPSAoaGVhZGVyczogUmVxdWVzdEhlYWRlcnMpID0+IG51bWJlciB8IG51bGw7XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RIZWFkZXJzID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnNNZXRob2RNYXAgPSB7XG4gIFtNIGluIE1ldGhvZF0/OiBSZXF1ZXN0SGVhZGVycztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFhoclN0YXRlIHtcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnM7XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXRyeUZuQ29uZmlnIHtcbiAgZXJyb3I6IFJlcXVlc3RFcnJvcjtcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnM7XG4gIGN1cnJlbnRSZXRyeUNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFJldHJ5Rm5SZXN1bHQge1xuICByZXRyeTogYm9vbGVhbjtcbiAgZGVsYXk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RSZXRyeUZuID0gKGNvbmZpZzogUmVxdWVzdFJldHJ5Rm5Db25maWcpID0+IFJlcXVlc3RSZXRyeUZuUmVzdWx0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb25maWcge1xuICBtZXRob2Q6IE1ldGhvZDtcbiAgdXJsV2l0aFBhcmFtczogc3RyaW5nO1xuICBib2R5PzogdW5rbm93bjtcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xuICBoZWFkZXJzPzogUmVxdWVzdEhlYWRlcnM7XG4gIGNhY2hlQWRhcHRlcj86IENhY2hlQWRhcHRlckZuO1xuICByZXRyeUZuPzogUmVxdWVzdFJldHJ5Rm47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RQcm9ncmVzcyA9IHtcbiAgY3VycmVudDogbnVtYmVyO1xuICBwZXJjZW50YWdlPzogbnVtYmVyO1xuICB0b3RhbD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RFdmVudDxSZXNwb25zZSA9IHVua25vd24+ID1cbiAgfCB7XG4gICAgICB0eXBlOiAnc3RhcnQnO1xuICAgICAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnM7XG4gICAgICBpc1JldHJ5PzogYm9vbGVhbjtcbiAgICAgIHJldHJ5TnVtYmVyPzogbnVtYmVyO1xuICAgICAgcmV0cnlEZWxheT86IG51bWJlcjtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ2RlbGF5LXJldHJ5JztcbiAgICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzO1xuICAgICAgcmV0cnlOdW1iZXI6IG51bWJlcjtcbiAgICAgIHJldHJ5RGVsYXk6IG51bWJlcjtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ2Rvd25sb2FkLXByb2dyZXNzJztcbiAgICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzO1xuICAgICAgcHJvZ3Jlc3M6IFJlcXVlc3RQcm9ncmVzcztcbiAgICAgIHBhcnRpYWxUZXh0Pzogc3RyaW5nO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAndXBsb2FkLXByb2dyZXNzJztcbiAgICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzO1xuICAgICAgcHJvZ3Jlc3M6IFJlcXVlc3RQcm9ncmVzcztcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ3N1Y2Nlc3MnO1xuICAgICAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnM7XG4gICAgICByZXNwb25zZTogUmVzcG9uc2U7XG4gICAgICBleHBpcmVzSW5UaW1lc3RhbXA/OiBudW1iZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdmYWlsdXJlJztcbiAgICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzO1xuICAgICAgZXJyb3I6IFJlcXVlc3RFcnJvcjtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ2NhbmNlbCc7XG4gICAgICBoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycztcbiAgICB9O1xuIl19
|
|
@@ -63,12 +63,6 @@ export const buildQueryObjectString = (key, object) => {
|
|
|
63
63
|
})
|
|
64
64
|
.join('&');
|
|
65
65
|
};
|
|
66
|
-
export const isFetchResponse = (response) => typeof response === 'object' &&
|
|
67
|
-
response !== null &&
|
|
68
|
-
'status' in response &&
|
|
69
|
-
'statusText' in response &&
|
|
70
|
-
'json' in response &&
|
|
71
|
-
typeof response['json'] === 'function';
|
|
72
66
|
export const filterInvalidParams = (params) => {
|
|
73
67
|
const filteredParams = Object.entries(params)
|
|
74
68
|
.map(([key, value]) => {
|
|
@@ -258,4 +252,4 @@ export const shouldRetryRequest = (config) => {
|
|
|
258
252
|
}
|
|
259
253
|
return { retry: false };
|
|
260
254
|
};
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3JlcXVlc3QvcmVxdWVzdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVk1RyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBYyxLQUFjLEVBQTRCLEVBQUUsQ0FDdEYsS0FBSyxZQUFZLE1BQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLFlBQVksSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUsxQixFQUFFLEVBQUU7SUFDSCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzlCLE1BQU0scUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzNDO0lBRUQsSUFBSSxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUVoQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdkIsTUFBTSxxQ0FBcUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDaEU7UUFFRCxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDM0M7U0FBTTtRQUNMLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztLQUMvQjtJQUVELElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNuQyxNQUFNLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0lBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRCxJQUFJLFdBQVcsRUFBRTtZQUNmLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO1NBQ2hFO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFtQixFQUFpQixFQUFFO0lBQ3JFLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWhELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE9BQU8scUJBQXFCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQWUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyRSxPQUFPLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUEyQixDQUFDLENBQUM7U0FDaEY7UUFFRCxPQUFPLEdBQUcsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQThCLENBQUMsRUFBRSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUViLE9BQU8sV0FBVyxJQUFJLElBQUksQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFpQixFQUFFLEVBQUU7SUFDdEUsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0MsT0FBTyxLQUFLO1NBQ1QsS0FBSyxFQUFFO1NBQ1AsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxXQUFXLElBQUksa0JBQWtCLENBQUMsSUFBaUMsQ0FBQyxFQUFFLENBQUM7U0FDOUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBbUIsRUFBVSxFQUFFO0lBQ2pGLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN0RCxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1QsTUFBTSxHQUFHLEdBQUcsR0FBRyxlQUFlLEdBQUcsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRXJELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixPQUFPLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFlLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkQsT0FBTyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBMkIsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsT0FBTyxHQUFHLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUE4QixDQUFDLEVBQUUsQ0FBQztJQUNoRixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUF3QixFQUFFLENBQ3pFLE9BQU8sUUFBUSxLQUFLLFFBQVE7SUFDNUIsUUFBUSxLQUFLLElBQUk7SUFDakIsUUFBUSxJQUFJLFFBQVE7SUFDcEIsWUFBWSxJQUFJLFFBQVE7SUFDeEIsTUFBTSxJQUFJLFFBQVE7SUFDbEIsT0FBUSxRQUFxQixDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQW1CLEVBQUUsRUFBRTtJQUN6RCxNQUFNLGNBQWMsR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNsRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ3RELE9BQU8sQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsS0FBb0IsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQWlDLENBQUMsQ0FBQztTQUN0RSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFM0UsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsU0FBbUMsRUFBRSxFQUFFO0lBQ2xFLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUU7UUFDckUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDNUQsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNyRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE9BQXVCLEVBQUUsRUFBRTtJQUNqRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuQyxhQUFhO0lBQ2IsSUFBSSxTQUFTLEdBQWtCLElBQUksQ0FBQztJQUNwQyxJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBRWpDLElBQUksWUFBWSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUN0QyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxZQUFZLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3JDLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3REO1NBQU0sSUFBSSxZQUFZLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzdDLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQyxTQUFTLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztLQUNqQztTQUFNLElBQUksTUFBTSxFQUFFO1FBQ2pCLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsdURBQXVEO0tBQ2hGO1NBQU0sSUFBSSxPQUFPLEVBQUU7UUFDbEIsMkRBQTJEO1FBQzNELHVEQUF1RDtRQUN2RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsU0FBUyxHQUFHLElBQUksQ0FBQztTQUNsQjthQUFNO1lBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdEMsNkJBQTZCO1lBQzdCLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLGNBQWMsRUFBRTtnQkFDN0MsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDckU7U0FDRjtLQUNGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxPQUFzQixFQUFFLEVBQUU7SUFDbEUsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFpRCxFQUFFO0lBQzVGLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUNFLElBQUksWUFBWSxXQUFXO1FBQzNCLElBQUksWUFBWSxJQUFJO1FBQ3BCLElBQUksWUFBWSxRQUFRO1FBQ3hCLElBQUksWUFBWSxlQUFlO1FBQy9CLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFDeEI7UUFDQSxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDaEYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzdCO0lBRUQsT0FBUSxJQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBd0QsRUFBRSxFQUFFO0lBQzFGLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQUU7UUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDdkIsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUVELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztLQUMzQjtJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFO0lBQ3ZELHFDQUFxQztJQUNyQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELGlFQUFpRTtJQUNqRSxJQUFJLElBQUksWUFBWSxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELGlFQUFpRTtJQUNqRSwyQkFBMkI7SUFDM0IsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7S0FDMUI7SUFDRCx3RUFBd0U7SUFDeEUsSUFBSSxJQUFJLFlBQVksV0FBVyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCwwRUFBMEU7SUFDMUUsbUNBQW1DO0lBQ25DLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBRUQsZ0VBQWdFO0lBQ2hFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDckYsT0FBTyxrQkFBa0IsQ0FBQztLQUMzQjtJQUNELDZCQUE2QjtJQUM3QixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQXVCLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDbkUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQXVCLEVBQUUsUUFBOEMsRUFBRSxFQUFFO0lBQ3ZHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUMvQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxHQUFtQixFQUFFLEVBQUU7SUFDaEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDNUMsTUFBTSxhQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUV6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFM0MsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUM1QjtLQUNGO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBbUIsRUFBaUIsRUFBRTtJQUNuRSxJQUFJLGFBQWEsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRTtRQUMzQyxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUM7S0FDeEI7SUFDRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO1FBQ3hELE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUMzRCxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBRWpFLElBQUksTUFBTSxDQUFDLGlCQUFpQixHQUFHLENBQUMsRUFBRTtRQUNoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQ3pCO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUN6QjtJQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBRWhDLHNCQUFzQjtJQUN0QixJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUU7UUFDakIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUM7S0FDbEQ7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxNQUFNLDRDQUFrQyxJQUFJLE1BQU0sc0NBQTRCLEVBQUU7UUFDbEYsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUM7S0FDbEQ7SUFFRCxzQkFBc0I7SUFDdEIsSUFBSSxNQUFNLDZDQUFtQyxFQUFFO1FBQzdDLE1BQU0sVUFBVSxHQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEMsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEY7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUNsRDtJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YWxpZEJhc2VSb3V0ZUVycm9yLCBpbnZhbGlkUm91dGVFcnJvciwgcGF0aFBhcmFtc01pc3NpbmdJblJvdXRlRnVuY3Rpb25FcnJvciB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQge1xuICBNZXRob2QsXG4gIFBhcmFtQXJyYXksXG4gIFBhcmFtcyxcbiAgUXVlcnlQYXJhbXMsXG4gIFJlcXVlc3RFcnJvcixcbiAgUmVxdWVzdEhlYWRlcnMsXG4gIFJlcXVlc3RSZXRyeUZuLFxuICBVbmZpbHRlcmVkUGFyYW1QcmltaXRpdmUsXG59IGZyb20gJy4vcmVxdWVzdC50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc1JlcXVlc3RFcnJvciA9IDxUID0gdW5rbm93bj4oZXJyb3I6IHVua25vd24pOiBlcnJvciBpcyBSZXF1ZXN0RXJyb3I8VD4gPT5cbiAgZXJyb3IgaW5zdGFuY2VvZiBPYmplY3QgJiYgJ3N0YXR1cycgaW4gZXJyb3IgJiYgJ3N0YXR1c1RleHQnIGluIGVycm9yICYmICd1cmwnIGluIGVycm9yO1xuXG5leHBvcnQgY29uc3QgYnVpbGRSb3V0ZSA9IChvcHRpb25zOiB7XG4gIGJhc2U6IHN0cmluZztcbiAgcm91dGU6ICgoYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHN0cmluZykgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXRoUGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHF1ZXJ5UGFyYW1zPzogUXVlcnlQYXJhbXM7XG59KSA9PiB7XG4gIGlmIChvcHRpb25zLmJhc2UuZW5kc1dpdGgoJy8nKSkge1xuICAgIHRocm93IGludmFsaWRCYXNlUm91dGVFcnJvcihvcHRpb25zLmJhc2UpO1xuICB9XG5cbiAgbGV0IHJvdXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMucm91dGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoIW9wdGlvbnMucGF0aFBhcmFtcykge1xuICAgICAgdGhyb3cgcGF0aFBhcmFtc01pc3NpbmdJblJvdXRlRnVuY3Rpb25FcnJvcihvcHRpb25zLnJvdXRlKHt9KSk7XG4gICAgfVxuXG4gICAgcm91dGUgPSBvcHRpb25zLnJvdXRlKG9wdGlvbnMucGF0aFBhcmFtcyk7XG4gIH0gZWxzZSB7XG4gICAgcm91dGUgPSBvcHRpb25zLnJvdXRlID8/IG51bGw7XG4gIH1cblxuICBpZiAocm91dGUgJiYgIXJvdXRlLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHRocm93IGludmFsaWRSb3V0ZUVycm9yKHJvdXRlKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnF1ZXJ5UGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKG9wdGlvbnMucXVlcnlQYXJhbXMpO1xuXG4gICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICByb3V0ZSA9IHJvdXRlID8gYCR7cm91dGV9PyR7cXVlcnlTdHJpbmd9YCA6IGAvPyR7cXVlcnlTdHJpbmd9YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7b3B0aW9ucy5iYXNlfSR7cm91dGUgPz8gJyd9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5U3RyaW5nID0gKHBhcmFtczogUXVlcnlQYXJhbXMpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgY29uc3QgdmFsaWRQYXJhbXMgPSBmaWx0ZXJJbnZhbGlkUGFyYW1zKHBhcmFtcyk7XG5cbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3Qua2V5cyh2YWxpZFBhcmFtcylcbiAgICAubWFwKChrZXkpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbGlkUGFyYW1zW2tleV0pKSB7XG4gICAgICAgIHJldHVybiBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcoa2V5LCB2YWxpZFBhcmFtc1trZXldIGFzIFBhcmFtQXJyYXkpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkUGFyYW1zW2tleV0gPT09ICdvYmplY3QnICYmIHZhbGlkUGFyYW1zW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUXVlcnlPYmplY3RTdHJpbmcoa2V5LCB2YWxpZFBhcmFtc1trZXldIGFzIHVua25vd24gYXMgUXVlcnlQYXJhbXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWxpZFBhcmFtc1trZXldIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pfWA7XG4gICAgfSlcbiAgICAuam9pbignJicpO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZyB8fCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUXVlcnlBcnJheVN0cmluZyA9IChrZXk6IHN0cmluZywgYXJyYXk6IFBhcmFtQXJyYXkpID0+IHtcbiAgY29uc3QgdXJpQnJhY2tldHMgPSBlbmNvZGVVUklDb21wb25lbnQoJ1tdJyk7XG5cbiAgcmV0dXJuIGFycmF5XG4gICAgLnNsaWNlKClcbiAgICAubWFwKChpdGVtKSA9PiBgJHtrZXl9JHt1cmlCcmFja2V0c309JHtlbmNvZGVVUklDb21wb25lbnQoaXRlbSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKX1gKVxuICAgIC5qb2luKCcmJyk7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeU9iamVjdFN0cmluZyA9IChrZXk6IHN0cmluZywgb2JqZWN0OiBRdWVyeVBhcmFtcyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHVyaUJyYWNrZXRTdGFydCA9IGVuY29kZVVSSUNvbXBvbmVudChgJHtrZXl9W2ApO1xuICBjb25zdCB1cmlCcmFja2V0RW5kID0gZW5jb2RlVVJJQ29tcG9uZW50KGBdYCk7XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdClcbiAgICAubWFwKChrKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBgJHt1cmlCcmFja2V0U3RhcnR9JHtrfSR7dXJpQnJhY2tldEVuZH1gO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3Rba10pKSB7XG4gICAgICAgIHJldHVybiBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcoa2V5LCBvYmplY3Rba10gYXMgUGFyYW1BcnJheSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygb2JqZWN0W2tdID09PSAnb2JqZWN0JyAmJiBvYmplY3Rba10gIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUXVlcnlPYmplY3RTdHJpbmcoa2V5LCBvYmplY3Rba10gYXMgdW5rbm93biBhcyBRdWVyeVBhcmFtcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdFtrXSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0ZldGNoUmVzcG9uc2UgPSAocmVzcG9uc2U6IHVua25vd24pOiByZXNwb25zZSBpcyBSZXNwb25zZSA9PlxuICB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmXG4gIHJlc3BvbnNlICE9PSBudWxsICYmXG4gICdzdGF0dXMnIGluIHJlc3BvbnNlICYmXG4gICdzdGF0dXNUZXh0JyBpbiByZXNwb25zZSAmJlxuICAnanNvbicgaW4gcmVzcG9uc2UgJiZcbiAgdHlwZW9mIChyZXNwb25zZSBhcyBSZXNwb25zZSlbJ2pzb24nXSA9PT0gJ2Z1bmN0aW9uJztcblxuZXhwb3J0IGNvbnN0IGZpbHRlckludmFsaWRQYXJhbXMgPSAocGFyYW1zOiBRdWVyeVBhcmFtcykgPT4ge1xuICBjb25zdCBmaWx0ZXJlZFBhcmFtczogUGFyYW1zID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBba2V5LCB2YWx1ZS5maWx0ZXIoKHYpID0+IGlzUGFyYW1WYWxpZCh2KSldO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBba2V5LCBmaWx0ZXJJbnZhbGlkUGFyYW1zKHZhbHVlIGFzIFF1ZXJ5UGFyYW1zKV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgfSlcbiAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IGlzUGFyYW1WYWxpZCh2YWx1ZSBhcyBVbmZpbHRlcmVkUGFyYW1QcmltaXRpdmUpKVxuICAgIC5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXkgYXMgc3RyaW5nXTogdmFsdWUgfSksIHt9KTtcblxuICByZXR1cm4gZmlsdGVyZWRQYXJhbXM7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXJhbVZhbGlkID0gKHByaW1pdGl2ZTogVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlKSA9PiB7XG4gIGlmIChwcmltaXRpdmUgPT09IHVuZGVmaW5lZCB8fCBwcmltaXRpdmUgPT09IG51bGwgfHwgcHJpbWl0aXZlID09PSAnJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcHJpbWl0aXZlID09PSAnc3RyaW5nJyAmJiBwcmltaXRpdmUudHJpbSgpID09PSAnJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcHJpbWl0aXZlID09PSAnbnVtYmVyJyAmJiBpc05hTihwcmltaXRpdmUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0cmFjdEV4cGlyZXNJblNlY29uZHMgPSAoaGVhZGVyczogUmVxdWVzdEhlYWRlcnMpID0+IHtcbiAgY29uc3QgY2FjaGVDb250cm9sID0gaGVhZGVyc1snY2FjaGUtY29udHJvbCddO1xuICBjb25zdCBhZ2UgPSBoZWFkZXJzWydhZ2UnXTtcbiAgY29uc3QgZXhwaXJlcyA9IGhlYWRlcnNbJ2V4cGlyZXMnXTtcblxuICAvLyBJbiBzZWNvbmRzXG4gIGxldCBleHBpcmVzSW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4QWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygnbm8tY2FjaGUnKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ21heC1hZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgnbWF4LWFnZT0nKVsxXSk7XG4gIH0gZWxzZSBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygncy1tYXhhZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgncy1tYXhhZ2U9JylbMV0pO1xuICB9XG5cbiAgaWYgKG1heEFnZSAmJiBhZ2UpIHtcbiAgICBjb25zdCBhZ2VTZWNvbmRzID0gcGFyc2VJbnQoYWdlKTtcblxuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAtIGFnZVNlY29uZHM7XG4gIH0gZWxzZSBpZiAobWF4QWdlKSB7XG4gICAgZXhwaXJlc0luID0gbWF4QWdlIC8gMjsgLy8gV2UgYXNzdW1lIHRoZSByZXNwb25zZSBpcyBoYWxmIHdheSB0byBpdHMgZXhwaXJhdGlvblxuICB9IGVsc2UgaWYgKGV4cGlyZXMpIHtcbiAgICAvLyBVc2VkIGJ5IHNvbWUgYXBpcyB0byB0ZWxsIHRoZSByZXNwb25zZSB3aWxsIG5ldmVyIGV4cGlyZVxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBsZXQgdGhlIHJlc3BvbnNlIGV4cGlyZSBhZnRlciAxIGhvdXJcbiAgICBpZiAoZXhwaXJlcyA9PT0gJy0xJykge1xuICAgICAgZXhwaXJlc0luID0gMzYwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGRhdGUgaXMgdmFsaWRcbiAgICAgIGlmIChleHBpcmVzRGF0ZS50b1N0cmluZygpICE9PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICBleHBpcmVzSW4gPSBNYXRoLmZsb29yKChleHBpcmVzRGF0ZS5nZXRUaW1lKCkgLSBEYXRlLm5vdygpKSAvIDEwMDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHBpcmVzSW47XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRUaW1lc3RhbXBGcm9tU2Vjb25kcyA9IChzZWNvbmRzOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gIGlmIChzZWNvbmRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHNlY29uZHMgKiAxMDAwKS5nZXRUaW1lKCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplQm9keSA9IChib2R5OiB1bmtub3duKTogQXJyYXlCdWZmZXIgfCBCbG9iIHwgRm9ybURhdGEgfCBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoXG4gICAgYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8XG4gICAgYm9keSBpbnN0YW5jZW9mIEJsb2IgfHxcbiAgICBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgfHxcbiAgICBib2R5IGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zIHx8XG4gICAgdHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgYm9keSA9PT0gJ2Jvb2xlYW4nIHx8IEFycmF5LmlzQXJyYXkoYm9keSkpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gIH1cblxuICByZXR1cm4gKGJvZHkgYXMgYW55KS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU1ldGhvZCA9IChjb25maWc6IHsgbWV0aG9kOiBNZXRob2Q7IHRyYW5zZmVyVmlhPzogJ0dFVCcgfCAnUE9TVCcgfSkgPT4ge1xuICBpZiAoY29uZmlnLm1ldGhvZCA9PT0gJ0dRTF9RVUVSWScgfHwgY29uZmlnLm1ldGhvZCA9PT0gJ0dRTF9NVVRBVEUnKSB7XG4gICAgaWYgKCFjb25maWcudHJhbnNmZXJWaWEpIHtcbiAgICAgIHJldHVybiAnUE9TVCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZy50cmFuc2ZlclZpYTtcbiAgfVxuXG4gIHJldHVybiBjb25maWcubWV0aG9kO1xufTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdENvbnRlbnRUeXBlSGVhZGVyID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgLy8gQW4gZW1wdHkgYm9keSBoYXMgbm8gY29udGVudCB0eXBlLlxuICBpZiAoYm9keSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEZvcm1EYXRhIGJvZGllcyByZWx5IG9uIHRoZSBicm93c2VyJ3MgY29udGVudCB0eXBlIGFzc2lnbm1lbnQuXG4gIGlmIChib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBCbG9icyB1c3VhbGx5IGhhdmUgdGhlaXIgb3duIGNvbnRlbnQgdHlwZS4gSWYgaXQgZG9lc24ndCwgdGhlblxuICAvLyBubyB0eXBlIGNhbiBiZSBpbmZlcnJlZC5cbiAgaWYgKGJvZHkgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGJvZHkudHlwZSB8fCBudWxsO1xuICB9XG4gIC8vIEFycmF5IGJ1ZmZlcnMgaGF2ZSB1bmtub3duIGNvbnRlbnRzIGFuZCB0aHVzIG5vIHR5cGUgY2FuIGJlIGluZmVycmVkLlxuICBpZiAoYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gVGVjaG5pY2FsbHksIHN0cmluZ3MgY291bGQgYmUgYSBmb3JtIG9mIEpTT04gZGF0YSwgYnV0IGl0J3Mgc2FmZSBlbm91Z2hcbiAgLy8gdG8gYXNzdW1lIHRoZXkncmUgcGxhaW4gc3RyaW5ncy5cbiAgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAndGV4dC9wbGFpbic7XG4gIH1cblxuICAvLyBBcnJheXMsIG9iamVjdHMsIGJvb2xlYW4gYW5kIG51bWJlcnMgd2lsbCBiZSBlbmNvZGVkIGFzIEpTT04uXG4gIGlmICh0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIGJvZHkgPT09ICdudW1iZXInIHx8IHR5cGVvZiBib2R5ID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICB9XG4gIC8vIE5vIHR5cGUgY291bGQgYmUgaW5mZXJyZWQuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhc0hlYWRlciA9IChoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycywgaGVhZGVyOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvbWUoKGtleSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09IGhlYWRlci50b0xvd2VyQ2FzZSgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JFYWNoSGVhZGVyID0gKGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzLCBjYWxsYmFjazogKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB2b2lkKSA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGNhbGxiYWNrKGtleSwgdmFsdWUpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUFsbFhoclJlc3BvbnNlSGVhZGVycyA9ICh4aHI6IFhNTEh0dHBSZXF1ZXN0KSA9PiB7XG4gIGNvbnN0IGhlYWRlcnMgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7XG4gIGNvbnN0IHBhcnNlZEhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzID0ge307XG5cbiAgZm9yIChjb25zdCBsaW5lIG9mIGhlYWRlcnMuc3BsaXQoJ1xcbicpKSB7XG4gICAgY29uc3QgaW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICBjb25zdCBuYW1lID0gbGluZS5zbGljZSgwLCBpbmRleCk7XG4gICAgICBjb25zdCBrZXkgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGxpbmUuc2xpY2UoaW5kZXggKyAxKS50cmltKCk7XG5cbiAgICAgIHBhcnNlZEhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJzZWRIZWFkZXJzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc3BvbnNlVXJsID0gKHhocjogWE1MSHR0cFJlcXVlc3QpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKCdyZXNwb25zZVVSTCcgaW4geGhyICYmIHhoci5yZXNwb25zZVVSTCkge1xuICAgIHJldHVybiB4aHIucmVzcG9uc2VVUkw7XG4gIH1cbiAgaWYgKC9eWC1SZXF1ZXN0LVVSTDovbS50ZXN0KHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpIHtcbiAgICByZXR1cm4geGhyLmdldFJlc3BvbnNlSGVhZGVyKCdYLVJlcXVlc3QtVVJMJyk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkUmV0cnlSZXF1ZXN0OiBSZXF1ZXN0UmV0cnlGbiA9IChjb25maWcpID0+IHtcbiAgY29uc3QgZGVmYXVsdFJldHJ5RGVsYXkgPSAxMDAwICsgMTAwMCAqIGNvbmZpZy5jdXJyZW50UmV0cnlDb3VudDtcblxuICBpZiAoY29uZmlnLmN1cnJlbnRSZXRyeUNvdW50ID4gMykge1xuICAgIHJldHVybiB7IHJldHJ5OiBmYWxzZSB9O1xuICB9XG5cbiAgaWYgKCFpc1JlcXVlc3RFcnJvcihjb25maWcuZXJyb3IpKSB7XG4gICAgcmV0dXJuIHsgcmV0cnk6IGZhbHNlIH07XG4gIH1cblxuICBjb25zdCB7IHN0YXR1cyB9ID0gY29uZmlnLmVycm9yO1xuXG4gIC8vIFJldHJ5IG9uIDV4eCBlcnJvcnNcbiAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICByZXR1cm4geyByZXRyeTogdHJ1ZSwgZGVsYXk6IGRlZmF1bHRSZXRyeURlbGF5IH07XG4gIH1cblxuICAvLyBSZXRyeSBvbiA0MDggb3IgNDI1IGVycm9yc1xuICBpZiAoc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0VGltZW91dCB8fCBzdGF0dXMgPT09IEh0dHBTdGF0dXNDb2RlLlRvb0Vhcmx5KSB7XG4gICAgcmV0dXJuIHsgcmV0cnk6IHRydWUsIGRlbGF5OiBkZWZhdWx0UmV0cnlEZWxheSB9O1xuICB9XG5cbiAgLy8gUmV0cnkgb24gNDI5IGVycm9yc1xuICBpZiAoc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHMpIHtcbiAgICBjb25zdCByZXRyeUFmdGVyID1cbiAgICAgIGNvbmZpZy5oZWFkZXJzWydyZXRyeS1hZnRlciddIHx8XG4gICAgICBjb25maWcuaGVhZGVyc1snUmV0cnktQWZ0ZXInXSB8fFxuICAgICAgY29uZmlnLmhlYWRlcnNbJ3gtcmV0cnktYWZ0ZXInXSB8fFxuICAgICAgY29uZmlnLmhlYWRlcnNbJ1gtUmV0cnktQWZ0ZXInXTtcblxuICAgIGlmIChyZXRyeUFmdGVyKSB7XG4gICAgICBjb25zdCBkZWxheSA9IHBhcnNlSW50KHJldHJ5QWZ0ZXIpICogMTAwMDtcbiAgICAgIHJldHVybiB7IHJldHJ5OiB0cnVlLCBkZWxheTogTnVtYmVyLmlzTmFOKGRlbGF5KSA/IGRlZmF1bHRSZXRyeURlbGF5IDogZGVsYXkgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyByZXRyeTogdHJ1ZSwgZGVsYXk6IGRlZmF1bHRSZXRyeURlbGF5IH07XG4gIH1cblxuICByZXR1cm4geyByZXRyeTogZmFsc2UgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbnVtIEh0dHBTdGF0dXNDb2RlIHtcbiAgVW5rbm93biA9IDAsXG5cbiAgQ29udGludWUgPSAxMDAsXG4gIFN3aXRjaGluZ1Byb3RvY29scyA9IDEwMSxcbiAgUHJvY2Vzc2luZyA9IDEwMixcbiAgRWFybHlIaW50cyA9IDEwMyxcblxuICBPayA9IDIwMCxcbiAgQ3JlYXRlZCA9IDIwMSxcbiAgQWNjZXB0ZWQgPSAyMDIsXG4gIE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbiA9IDIwMyxcbiAgTm9Db250ZW50ID0gMjA0LFxuICBSZXNldENvbnRlbnQgPSAyMDUsXG4gIFBhcnRpYWxDb250ZW50ID0gMjA2LFxuICBNdWx0aVN0YXR1cyA9IDIwNyxcbiAgQWxyZWFkeVJlcG9ydGVkID0gMjA4LFxuICBJbVVzZWQgPSAyMjYsXG5cbiAgTXVsdGlwbGVDaG9pY2VzID0gMzAwLFxuICBNb3ZlZFBlcm1hbmVudGx5ID0gMzAxLFxuICBGb3VuZCA9IDMwMixcbiAgU2VlT3RoZXIgPSAzMDMsXG4gIE5vdE1vZGlmaWVkID0gMzA0LFxuICBVc2VQcm94eSA9IDMwNSxcbiAgVW51c2VkID0gMzA2LFxuICBUZW1wb3JhcnlSZWRpcmVjdCA9IDMwNyxcbiAgUGVybWFuZW50UmVkaXJlY3QgPSAzMDgsXG5cbiAgQmFkUmVxdWVzdCA9IDQwMCxcbiAgVW5hdXRob3JpemVkID0gNDAxLFxuICBQYXltZW50UmVxdWlyZWQgPSA0MDIsXG4gIEZvcmJpZGRlbiA9IDQwMyxcbiAgTm90Rm91bmQgPSA0MDQsXG4gIE1ldGhvZE5vdEFsbG93ZWQgPSA0MDUsXG4gIE5vdEFjY2VwdGFibGUgPSA0MDYsXG4gIFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZCA9IDQwNyxcbiAgUmVxdWVzdFRpbWVvdXQgPSA0MDgsXG4gIENvbmZsaWN0ID0gNDA5LFxuICBHb25lID0gNDEwLFxuICBMZW5ndGhSZXF1aXJlZCA9IDQxMSxcbiAgUHJlY29uZGl0aW9uRmFpbGVkID0gNDEyLFxuICBQYXlsb2FkVG9vTGFyZ2UgPSA0MTMsXG4gIFVyaVRvb0xvbmcgPSA0MTQsXG4gIFVuc3VwcG9ydGVkTWVkaWFUeXBlID0gNDE1LFxuICBSYW5nZU5vdFNhdGlzZmlhYmxlID0gNDE2LFxuICBFeHBlY3RhdGlvbkZhaWxlZCA9IDQxNyxcbiAgSW1BVGVhcG90ID0gNDE4LFxuICBNaXNkaXJlY3RlZFJlcXVlc3QgPSA0MjEsXG4gIFVucHJvY2Vzc2FibGVFbnRpdHkgPSA0MjIsXG4gIExvY2tlZCA9IDQyMyxcbiAgRmFpbGVkRGVwZW5kZW5jeSA9IDQyNCxcbiAgVG9vRWFybHkgPSA0MjUsXG4gIFVwZ3JhZGVSZXF1aXJlZCA9IDQyNixcbiAgUHJlY29uZGl0aW9uUmVxdWlyZWQgPSA0MjgsXG4gIFRvb01hbnlSZXF1ZXN0cyA9IDQyOSxcbiAgUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlID0gNDMxLFxuICBVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29ucyA9IDQ1MSxcblxuICBJbnRlcm5hbFNlcnZlckVycm9yID0gNTAwLFxuICBOb3RJbXBsZW1lbnRlZCA9IDUwMSxcbiAgQmFkR2F0ZXdheSA9IDUwMixcbiAgU2VydmljZVVuYXZhaWxhYmxlID0gNTAzLFxuICBHYXRld2F5VGltZW91dCA9IDUwNCxcbiAgSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQgPSA1MDUsXG4gIFZhcmlhbnRBbHNvTmVnb3RpYXRlcyA9IDUwNixcbiAgSW5zdWZmaWNpZW50U3RvcmFnZSA9IDUwNyxcbiAgTG9vcERldGVjdGVkID0gNTA4LFxuICBOb3RFeHRlbmRlZCA9IDUxMCxcbiAgTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQgPSA1MTEsXG59XG4iXX0=
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3JlcXVlc3QvcmVxdWVzdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVk1RyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBYyxLQUFjLEVBQTRCLEVBQUUsQ0FDdEYsS0FBSyxZQUFZLE1BQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLFlBQVksSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUsxQixFQUFFLEVBQUU7SUFDSCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzlCLE1BQU0scUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzNDO0lBRUQsSUFBSSxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUVoQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdkIsTUFBTSxxQ0FBcUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDaEU7UUFFRCxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDM0M7U0FBTTtRQUNMLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztLQUMvQjtJQUVELElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNuQyxNQUFNLGlCQUFpQixD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QUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEY7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUNsRDtJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YWxpZEJhc2VSb3V0ZUVycm9yLCBpbnZhbGlkUm91dGVFcnJvciwgcGF0aFBhcmFtc01pc3NpbmdJblJvdXRlRnVuY3Rpb25FcnJvciB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQge1xuICBNZXRob2QsXG4gIFBhcmFtQXJyYXksXG4gIFBhcmFtcyxcbiAgUXVlcnlQYXJhbXMsXG4gIFJlcXVlc3RFcnJvcixcbiAgUmVxdWVzdEhlYWRlcnMsXG4gIFJlcXVlc3RSZXRyeUZuLFxuICBVbmZpbHRlcmVkUGFyYW1QcmltaXRpdmUsXG59IGZyb20gJy4vcmVxdWVzdC50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc1JlcXVlc3RFcnJvciA9IDxUID0gdW5rbm93bj4oZXJyb3I6IHVua25vd24pOiBlcnJvciBpcyBSZXF1ZXN0RXJyb3I8VD4gPT5cbiAgZXJyb3IgaW5zdGFuY2VvZiBPYmplY3QgJiYgJ3N0YXR1cycgaW4gZXJyb3IgJiYgJ3N0YXR1c1RleHQnIGluIGVycm9yICYmICd1cmwnIGluIGVycm9yO1xuXG5leHBvcnQgY29uc3QgYnVpbGRSb3V0ZSA9IChvcHRpb25zOiB7XG4gIGJhc2U6IHN0cmluZztcbiAgcm91dGU6ICgoYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHN0cmluZykgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXRoUGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHF1ZXJ5UGFyYW1zPzogUXVlcnlQYXJhbXM7XG59KSA9PiB7XG4gIGlmIChvcHRpb25zLmJhc2UuZW5kc1dpdGgoJy8nKSkge1xuICAgIHRocm93IGludmFsaWRCYXNlUm91dGVFcnJvcihvcHRpb25zLmJhc2UpO1xuICB9XG5cbiAgbGV0IHJvdXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMucm91dGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoIW9wdGlvbnMucGF0aFBhcmFtcykge1xuICAgICAgdGhyb3cgcGF0aFBhcmFtc01pc3NpbmdJblJvdXRlRnVuY3Rpb25FcnJvcihvcHRpb25zLnJvdXRlKHt9KSk7XG4gICAgfVxuXG4gICAgcm91dGUgPSBvcHRpb25zLnJvdXRlKG9wdGlvbnMucGF0aFBhcmFtcyk7XG4gIH0gZWxzZSB7XG4gICAgcm91dGUgPSBvcHRpb25zLnJvdXRlID8/IG51bGw7XG4gIH1cblxuICBpZiAocm91dGUgJiYgIXJvdXRlLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHRocm93IGludmFsaWRSb3V0ZUVycm9yKHJvdXRlKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnF1ZXJ5UGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKG9wdGlvbnMucXVlcnlQYXJhbXMpO1xuXG4gICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICByb3V0ZSA9IHJvdXRlID8gYCR7cm91dGV9PyR7cXVlcnlTdHJpbmd9YCA6IGAvPyR7cXVlcnlTdHJpbmd9YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7b3B0aW9ucy5iYXNlfSR7cm91dGUgPz8gJyd9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5U3RyaW5nID0gKHBhcmFtczogUXVlcnlQYXJhbXMpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgY29uc3QgdmFsaWRQYXJhbXMgPSBmaWx0ZXJJbnZhbGlkUGFyYW1zKHBhcmFtcyk7XG5cbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3Qua2V5cyh2YWxpZFBhcmFtcylcbiAgICAubWFwKChrZXkpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbGlkUGFyYW1zW2tleV0pKSB7XG4gICAgICAgIHJldHVybiBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcoa2V5LCB2YWxpZFBhcmFtc1trZXldIGFzIFBhcmFtQXJyYXkpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkUGFyYW1zW2tleV0gPT09ICdvYmplY3QnICYmIHZhbGlkUGFyYW1zW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUXVlcnlPYmplY3RTdHJpbmcoa2V5LCB2YWxpZFBhcmFtc1trZXldIGFzIHVua25vd24gYXMgUXVlcnlQYXJhbXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWxpZFBhcmFtc1trZXldIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pfWA7XG4gICAgfSlcbiAgICAuam9pbignJicpO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZyB8fCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUXVlcnlBcnJheVN0cmluZyA9IChrZXk6IHN0cmluZywgYXJyYXk6IFBhcmFtQXJyYXkpID0+IHtcbiAgY29uc3QgdXJpQnJhY2tldHMgPSBlbmNvZGVVUklDb21wb25lbnQoJ1tdJyk7XG5cbiAgcmV0dXJuIGFycmF5XG4gICAgLnNsaWNlKClcbiAgICAubWFwKChpdGVtKSA9PiBgJHtrZXl9JHt1cmlCcmFja2V0c309JHtlbmNvZGVVUklDb21wb25lbnQoaXRlbSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKX1gKVxuICAgIC5qb2luKCcmJyk7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeU9iamVjdFN0cmluZyA9IChrZXk6IHN0cmluZywgb2JqZWN0OiBRdWVyeVBhcmFtcyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHVyaUJyYWNrZXRTdGFydCA9IGVuY29kZVVSSUNvbXBvbmVudChgJHtrZXl9W2ApO1xuICBjb25zdCB1cmlCcmFja2V0RW5kID0gZW5jb2RlVVJJQ29tcG9uZW50KGBdYCk7XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdClcbiAgICAubWFwKChrKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBgJHt1cmlCcmFja2V0U3RhcnR9JHtrfSR7dXJpQnJhY2tldEVuZH1gO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3Rba10pKSB7XG4gICAgICAgIHJldHVybiBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcoa2V5LCBvYmplY3Rba10gYXMgUGFyYW1BcnJheSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygb2JqZWN0W2tdID09PSAnb2JqZWN0JyAmJiBvYmplY3Rba10gIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUXVlcnlPYmplY3RTdHJpbmcoa2V5LCBvYmplY3Rba10gYXMgdW5rbm93biBhcyBRdWVyeVBhcmFtcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdFtrXSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJJbnZhbGlkUGFyYW1zID0gKHBhcmFtczogUXVlcnlQYXJhbXMpID0+IHtcbiAgY29uc3QgZmlsdGVyZWRQYXJhbXM6IFBhcmFtcyA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcylcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gW2tleSwgdmFsdWUuZmlsdGVyKCh2KSA9PiBpc1BhcmFtVmFsaWQodikpXTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW2tleSwgZmlsdGVySW52YWxpZFBhcmFtcyh2YWx1ZSBhcyBRdWVyeVBhcmFtcyldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2tleSwgdmFsdWVdO1xuICAgIH0pXG4gICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiBpc1BhcmFtVmFsaWQodmFsdWUgYXMgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlKSlcbiAgICAucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5IGFzIHN0cmluZ106IHZhbHVlIH0pLCB7fSk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGFyYW1WYWxpZCA9IChwcmltaXRpdmU6IFVuZmlsdGVyZWRQYXJhbVByaW1pdGl2ZSkgPT4ge1xuICBpZiAocHJpbWl0aXZlID09PSB1bmRlZmluZWQgfHwgcHJpbWl0aXZlID09PSBudWxsIHx8IHByaW1pdGl2ZSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ3N0cmluZycgJiYgcHJpbWl0aXZlLnRyaW0oKSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ251bWJlcicgJiYgaXNOYU4ocHJpbWl0aXZlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFeHBpcmVzSW5TZWNvbmRzID0gKGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzKSA9PiB7XG4gIGNvbnN0IGNhY2hlQ29udHJvbCA9IGhlYWRlcnNbJ2NhY2hlLWNvbnRyb2wnXTtcbiAgY29uc3QgYWdlID0gaGVhZGVyc1snYWdlJ107XG4gIGNvbnN0IGV4cGlyZXMgPSBoZWFkZXJzWydleHBpcmVzJ107XG5cbiAgLy8gSW4gc2Vjb25kc1xuICBsZXQgZXhwaXJlc0luOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgbGV0IG1heEFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ25vLWNhY2hlJykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChjYWNoZUNvbnRyb2w/LmluY2x1ZGVzKCdtYXgtYWdlJykpIHtcbiAgICBtYXhBZ2UgPSBwYXJzZUludChjYWNoZUNvbnRyb2wuc3BsaXQoJ21heC1hZ2U9JylbMV0pO1xuICB9IGVsc2UgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ3MtbWF4YWdlJykpIHtcbiAgICBtYXhBZ2UgPSBwYXJzZUludChjYWNoZUNvbnRyb2wuc3BsaXQoJ3MtbWF4YWdlPScpWzFdKTtcbiAgfVxuXG4gIGlmIChtYXhBZ2UgJiYgYWdlKSB7XG4gICAgY29uc3QgYWdlU2Vjb25kcyA9IHBhcnNlSW50KGFnZSk7XG5cbiAgICBleHBpcmVzSW4gPSBtYXhBZ2UgLSBhZ2VTZWNvbmRzO1xuICB9IGVsc2UgaWYgKG1heEFnZSkge1xuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAvIDI7IC8vIFdlIGFzc3VtZSB0aGUgcmVzcG9uc2UgaXMgaGFsZiB3YXkgdG8gaXRzIGV4cGlyYXRpb25cbiAgfSBlbHNlIGlmIChleHBpcmVzKSB7XG4gICAgLy8gVXNlZCBieSBzb21lIGFwaXMgdG8gdGVsbCB0aGUgcmVzcG9uc2Ugd2lsbCBuZXZlciBleHBpcmVcbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgbGV0IHRoZSByZXNwb25zZSBleHBpcmUgYWZ0ZXIgMSBob3VyXG4gICAgaWYgKGV4cGlyZXMgPT09ICctMScpIHtcbiAgICAgIGV4cGlyZXNJbiA9IDM2MDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4cGlyZXNEYXRlID0gbmV3IERhdGUoZXhwaXJlcyk7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBkYXRlIGlzIHZhbGlkXG4gICAgICBpZiAoZXhwaXJlc0RhdGUudG9TdHJpbmcoKSAhPT0gJ0ludmFsaWQgRGF0ZScpIHtcbiAgICAgICAgZXhwaXJlc0luID0gTWF0aC5mbG9vcigoZXhwaXJlc0RhdGUuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSkgLyAxMDAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwaXJlc0luO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkVGltZXN0YW1wRnJvbVNlY29uZHMgPSAoc2Vjb25kczogbnVtYmVyIHwgbnVsbCkgPT4ge1xuICBpZiAoc2Vjb25kcyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBzZWNvbmRzICogMTAwMCkuZ2V0VGltZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZUJvZHkgPSAoYm9keTogdW5rbm93bik6IEFycmF5QnVmZmVyIHwgQmxvYiB8IEZvcm1EYXRhIHwgc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKFxuICAgIGJvZHkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fFxuICAgIGJvZHkgaW5zdGFuY2VvZiBCbG9iIHx8XG4gICAgYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhIHx8XG4gICAgYm9keSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcyB8fFxuICAgIHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIGJvZHkgPT09ICdib29sZWFuJyB8fCBBcnJheS5pc0FycmF5KGJvZHkpKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICB9XG5cbiAgcmV0dXJuIChib2R5IGFzIGFueSkudG9TdHJpbmcoKTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSAoY29uZmlnOiB7IG1ldGhvZDogTWV0aG9kOyB0cmFuc2ZlclZpYT86ICdHRVQnIHwgJ1BPU1QnIH0pID0+IHtcbiAgaWYgKGNvbmZpZy5tZXRob2QgPT09ICdHUUxfUVVFUlknIHx8IGNvbmZpZy5tZXRob2QgPT09ICdHUUxfTVVUQVRFJykge1xuICAgIGlmICghY29uZmlnLnRyYW5zZmVyVmlhKSB7XG4gICAgICByZXR1cm4gJ1BPU1QnO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcudHJhbnNmZXJWaWE7XG4gIH1cblxuICByZXR1cm4gY29uZmlnLm1ldGhvZDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RDb250ZW50VHlwZUhlYWRlciA9IChib2R5OiB1bmtub3duKSA9PiB7XG4gIC8vIEFuIGVtcHR5IGJvZHkgaGFzIG5vIGNvbnRlbnQgdHlwZS5cbiAgaWYgKGJvZHkgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBGb3JtRGF0YSBib2RpZXMgcmVseSBvbiB0aGUgYnJvd3NlcidzIGNvbnRlbnQgdHlwZSBhc3NpZ25tZW50LlxuICBpZiAoYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQmxvYnMgdXN1YWxseSBoYXZlIHRoZWlyIG93biBjb250ZW50IHR5cGUuIElmIGl0IGRvZXNuJ3QsIHRoZW5cbiAgLy8gbm8gdHlwZSBjYW4gYmUgaW5mZXJyZWQuXG4gIGlmIChib2R5IGluc3RhbmNlb2YgQmxvYikge1xuICAgIHJldHVybiBib2R5LnR5cGUgfHwgbnVsbDtcbiAgfVxuICAvLyBBcnJheSBidWZmZXJzIGhhdmUgdW5rbm93biBjb250ZW50cyBhbmQgdGh1cyBubyB0eXBlIGNhbiBiZSBpbmZlcnJlZC5cbiAgaWYgKGJvZHkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIFRlY2huaWNhbGx5LCBzdHJpbmdzIGNvdWxkIGJlIGEgZm9ybSBvZiBKU09OIGRhdGEsIGJ1dCBpdCdzIHNhZmUgZW5vdWdoXG4gIC8vIHRvIGFzc3VtZSB0aGV5J3JlIHBsYWluIHN0cmluZ3MuXG4gIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gJ3RleHQvcGxhaW4nO1xuICB9XG5cbiAgLy8gQXJyYXlzLCBvYmplY3RzLCBib29sZWFuIGFuZCBudW1iZXJzIHdpbGwgYmUgZW5jb2RlZCBhcyBKU09OLlxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBib2R5ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgYm9keSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuICdhcHBsaWNhdGlvbi9qc29uJztcbiAgfVxuICAvLyBObyB0eXBlIGNvdWxkIGJlIGluZmVycmVkLlxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNIZWFkZXIgPSAoaGVhZGVyczogUmVxdWVzdEhlYWRlcnMsIGhlYWRlcjogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzKS5zb21lKChrZXkpID0+IGtleS50b0xvd2VyQ2FzZSgpID09PSBoZWFkZXIudG9Mb3dlckNhc2UoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZm9yRWFjaEhlYWRlciA9IChoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycywgY2FsbGJhY2s6ICh2YWx1ZTogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4gdm9pZCkgPT4ge1xuICBPYmplY3QuZW50cmllcyhoZWFkZXJzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjYWxsYmFjayhrZXksIHZhbHVlKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VBbGxYaHJSZXNwb25zZUhlYWRlcnMgPSAoeGhyOiBYTUxIdHRwUmVxdWVzdCkgPT4ge1xuICBjb25zdCBoZWFkZXJzID0geGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpO1xuICBjb25zdCBwYXJzZWRIZWFkZXJzOiBSZXF1ZXN0SGVhZGVycyA9IHt9O1xuXG4gIGZvciAoY29uc3QgbGluZSBvZiBoZWFkZXJzLnNwbGl0KCdcXG4nKSkge1xuICAgIGNvbnN0IGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgY29uc3QgbmFtZSA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgY29uc3Qga2V5ID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgdmFsdWUgPSBsaW5lLnNsaWNlKGluZGV4ICsgMSkudHJpbSgpO1xuXG4gICAgICBwYXJzZWRIZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyc2VkSGVhZGVycztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNwb25zZVVybCA9ICh4aHI6IFhNTEh0dHBSZXF1ZXN0KTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGlmICgncmVzcG9uc2VVUkwnIGluIHhociAmJiB4aHIucmVzcG9uc2VVUkwpIHtcbiAgICByZXR1cm4geGhyLnJlc3BvbnNlVVJMO1xuICB9XG4gIGlmICgvXlgtUmVxdWVzdC1VUkw6L20udGVzdCh4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKSB7XG4gICAgcmV0dXJuIHhoci5nZXRSZXNwb25zZUhlYWRlcignWC1SZXF1ZXN0LVVSTCcpO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3VsZFJldHJ5UmVxdWVzdDogUmVxdWVzdFJldHJ5Rm4gPSAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRSZXRyeURlbGF5ID0gMTAwMCArIDEwMDAgKiBjb25maWcuY3VycmVudFJldHJ5Q291bnQ7XG5cbiAgaWYgKGNvbmZpZy5jdXJyZW50UmV0cnlDb3VudCA+IDMpIHtcbiAgICByZXR1cm4geyByZXRyeTogZmFsc2UgfTtcbiAgfVxuXG4gIGlmICghaXNSZXF1ZXN0RXJyb3IoY29uZmlnLmVycm9yKSkge1xuICAgIHJldHVybiB7IHJldHJ5OiBmYWxzZSB9O1xuICB9XG5cbiAgY29uc3QgeyBzdGF0dXMgfSA9IGNvbmZpZy5lcnJvcjtcblxuICAvLyBSZXRyeSBvbiA1eHggZXJyb3JzXG4gIGlmIChzdGF0dXMgPj0gNTAwKSB7XG4gICAgcmV0dXJuIHsgcmV0cnk6IHRydWUsIGRlbGF5OiBkZWZhdWx0UmV0cnlEZWxheSB9O1xuICB9XG5cbiAgLy8gUmV0cnkgb24gNDA4IG9yIDQyNSBlcnJvcnNcbiAgaWYgKHN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQgfHwgc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Ub29FYXJseSkge1xuICAgIHJldHVybiB7IHJldHJ5OiB0cnVlLCBkZWxheTogZGVmYXVsdFJldHJ5RGVsYXkgfTtcbiAgfVxuXG4gIC8vIFJldHJ5IG9uIDQyOSBlcnJvcnNcbiAgaWYgKHN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzKSB7XG4gICAgY29uc3QgcmV0cnlBZnRlciA9XG4gICAgICBjb25maWcuaGVhZGVyc1sncmV0cnktYWZ0ZXInXSB8fFxuICAgICAgY29uZmlnLmhlYWRlcnNbJ1JldHJ5LUFmdGVyJ10gfHxcbiAgICAgIGNvbmZpZy5oZWFkZXJzWyd4LXJldHJ5LWFmdGVyJ10gfHxcbiAgICAgIGNvbmZpZy5oZWFkZXJzWydYLVJldHJ5LUFmdGVyJ107XG5cbiAgICBpZiAocmV0cnlBZnRlcikge1xuICAgICAgY29uc3QgZGVsYXkgPSBwYXJzZUludChyZXRyeUFmdGVyKSAqIDEwMDA7XG4gICAgICByZXR1cm4geyByZXRyeTogdHJ1ZSwgZGVsYXk6IE51bWJlci5pc05hTihkZWxheSkgPyBkZWZhdWx0UmV0cnlEZWxheSA6IGRlbGF5IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcmV0cnk6IHRydWUsIGRlbGF5OiBkZWZhdWx0UmV0cnlEZWxheSB9O1xuICB9XG5cbiAgcmV0dXJuIHsgcmV0cnk6IGZhbHNlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZW51bSBIdHRwU3RhdHVzQ29kZSB7XG4gIFVua25vd24gPSAwLFxuXG4gIENvbnRpbnVlID0gMTAwLFxuICBTd2l0Y2hpbmdQcm90b2NvbHMgPSAxMDEsXG4gIFByb2Nlc3NpbmcgPSAxMDIsXG4gIEVhcmx5SGludHMgPSAxMDMsXG5cbiAgT2sgPSAyMDAsXG4gIENyZWF0ZWQgPSAyMDEsXG4gIEFjY2VwdGVkID0gMjAyLFxuICBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb24gPSAyMDMsXG4gIE5vQ29udGVudCA9IDIwNCxcbiAgUmVzZXRDb250ZW50ID0gMjA1LFxuICBQYXJ0aWFsQ29udGVudCA9IDIwNixcbiAgTXVsdGlTdGF0dXMgPSAyMDcsXG4gIEFscmVhZHlSZXBvcnRlZCA9IDIwOCxcbiAgSW1Vc2VkID0gMjI2LFxuXG4gIE11bHRpcGxlQ2hvaWNlcyA9IDMwMCxcbiAgTW92ZWRQZXJtYW5lbnRseSA9IDMwMSxcbiAgRm91bmQgPSAzMDIsXG4gIFNlZU90aGVyID0gMzAzLFxuICBOb3RNb2RpZmllZCA9IDMwNCxcbiAgVXNlUHJveHkgPSAzMDUsXG4gIFVudXNlZCA9IDMwNixcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxuXG4gIEJhZFJlcXVlc3QgPSA0MDAsXG4gIFVuYXV0aG9yaXplZCA9IDQwMSxcbiAgUGF5bWVudFJlcXVpcmVkID0gNDAyLFxuICBGb3JiaWRkZW4gPSA0MDMsXG4gIE5vdEZvdW5kID0gNDA0LFxuICBNZXRob2ROb3RBbGxvd2VkID0gNDA1LFxuICBOb3RBY2NlcHRhYmxlID0gNDA2LFxuICBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQgPSA0MDcsXG4gIFJlcXVlc3RUaW1lb3V0ID0gNDA4LFxuICBDb25mbGljdCA9IDQwOSxcbiAgR29uZSA9IDQxMCxcbiAgTGVuZ3RoUmVxdWlyZWQgPSA0MTEsXG4gIFByZWNvbmRpdGlvbkZhaWxlZCA9IDQxMixcbiAgUGF5bG9hZFRvb0xhcmdlID0gNDEzLFxuICBVcmlUb29Mb25nID0gNDE0LFxuICBVbnN1cHBvcnRlZE1lZGlhVHlwZSA9IDQxNSxcbiAgUmFuZ2VOb3RTYXRpc2ZpYWJsZSA9IDQxNixcbiAgRXhwZWN0YXRpb25GYWlsZWQgPSA0MTcsXG4gIEltQVRlYXBvdCA9IDQxOCxcbiAgTWlzZGlyZWN0ZWRSZXF1ZXN0ID0gNDIxLFxuICBVbnByb2Nlc3NhYmxlRW50aXR5ID0gNDIyLFxuICBMb2NrZWQgPSA0MjMsXG4gIEZhaWxlZERlcGVuZGVuY3kgPSA0MjQsXG4gIFRvb0Vhcmx5ID0gNDI1LFxuICBVcGdyYWRlUmVxdWlyZWQgPSA0MjYsXG4gIFByZWNvbmRpdGlvblJlcXVpcmVkID0gNDI4LFxuICBUb29NYW55UmVxdWVzdHMgPSA0MjksXG4gIFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZSA9IDQzMSxcbiAgVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnMgPSA0NTEsXG5cbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IDUwMCxcbiAgTm90SW1wbGVtZW50ZWQgPSA1MDEsXG4gIEJhZEdhdGV3YXkgPSA1MDIsXG4gIFNlcnZpY2VVbmF2YWlsYWJsZSA9IDUwMyxcbiAgR2F0ZXdheVRpbWVvdXQgPSA1MDQsXG4gIEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkID0gNTA1LFxuICBWYXJpYW50QWxzb05lZ290aWF0ZXMgPSA1MDYsXG4gIEluc3VmZmljaWVudFN0b3JhZ2UgPSA1MDcsXG4gIExvb3BEZXRlY3RlZCA9IDUwOCxcbiAgTm90RXh0ZW5kZWQgPSA1MTAsXG4gIE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkID0gNTExLFxufVxuIl19
|