ng2-rest 16.5.12 → 16.5.13

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.
Files changed (52) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/content-type.mjs +1 -1
  3. package/browser/esm2022/lib/cookie.mjs +1 -1
  4. package/browser/esm2022/lib/helpers.mjs +1 -1
  5. package/browser/esm2022/lib/index.mjs +1 -1
  6. package/browser/esm2022/lib/mapping.mjs +1 -1
  7. package/browser/esm2022/lib/models.mjs +1 -1
  8. package/browser/esm2022/lib/other/simple-resource.mjs +1 -1
  9. package/browser/esm2022/lib/params.mjs +1 -1
  10. package/browser/esm2022/lib/request-cache.mjs +1 -1
  11. package/browser/esm2022/lib/resource-service.mjs +1 -1
  12. package/browser/esm2022/lib/rest-headers.mjs +1 -1
  13. package/browser/esm2022/lib/rest-request.mjs +1 -1
  14. package/browser/esm2022/lib/rest.class.mjs +1 -1
  15. package/browser/esm2022/ng2-rest.mjs +1 -1
  16. package/browser/esm2022/public-api.mjs +1 -1
  17. package/browser/fesm2022/ng2-rest.mjs.map +1 -1
  18. package/client/esm2022/lib/content-type.mjs +1 -1
  19. package/client/esm2022/lib/cookie.mjs +1 -1
  20. package/client/esm2022/lib/helpers.mjs +1 -1
  21. package/client/esm2022/lib/index.mjs +1 -1
  22. package/client/esm2022/lib/mapping.mjs +1 -1
  23. package/client/esm2022/lib/models.mjs +1 -1
  24. package/client/esm2022/lib/other/simple-resource.mjs +1 -1
  25. package/client/esm2022/lib/params.mjs +1 -1
  26. package/client/esm2022/lib/request-cache.mjs +1 -1
  27. package/client/esm2022/lib/resource-service.mjs +1 -1
  28. package/client/esm2022/lib/rest-headers.mjs +1 -1
  29. package/client/esm2022/lib/rest-request.mjs +1 -1
  30. package/client/esm2022/lib/rest.class.mjs +1 -1
  31. package/client/esm2022/ng2-rest.mjs +1 -1
  32. package/client/esm2022/public-api.mjs +1 -1
  33. package/client/fesm2022/ng2-rest.mjs.map +1 -1
  34. package/client/package.json +32 -32
  35. package/package.json +4 -4
  36. package/tmp-environment.json +36 -36
  37. package/websql/esm2022/lib/content-type.mjs +1 -1
  38. package/websql/esm2022/lib/cookie.mjs +1 -1
  39. package/websql/esm2022/lib/helpers.mjs +1 -1
  40. package/websql/esm2022/lib/index.mjs +1 -1
  41. package/websql/esm2022/lib/mapping.mjs +1 -1
  42. package/websql/esm2022/lib/models.mjs +1 -1
  43. package/websql/esm2022/lib/other/simple-resource.mjs +1 -1
  44. package/websql/esm2022/lib/params.mjs +1 -1
  45. package/websql/esm2022/lib/request-cache.mjs +1 -1
  46. package/websql/esm2022/lib/resource-service.mjs +1 -1
  47. package/websql/esm2022/lib/rest-headers.mjs +1 -1
  48. package/websql/esm2022/lib/rest-request.mjs +1 -1
  49. package/websql/esm2022/lib/rest.class.mjs +1 -1
  50. package/websql/esm2022/ng2-rest.mjs +1 -1
  51. package/websql/esm2022/public-api.mjs +1 -1
  52. package/websql/fesm2022/ng2-rest.mjs.map +1 -1
@@ -10,4 +10,4 @@ export const CONTENT_TYPE = {
10
10
  }),
11
11
  };
12
12
  ({}); // @--end-of-file-for-module=ng2-rest lib/content-type.ts
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL2NvbnRlbnQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDakMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxRQUFRLEVBQUUsa0JBQWtCO0tBQzdCLENBQUM7SUFDRix3QkFBd0IsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3pDLGNBQWMsRUFBRSwwQkFBMEI7UUFDMUMsUUFBUSxFQUFFLDBCQUEwQjtLQUNyQyxDQUFDO0NBQ0gsQ0FFQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx5REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgUmVzdEhlYWRlcnMgfSBmcm9tIFwiLi9yZXN0LWhlYWRlcnNcIjtcblxuXG5leHBvcnQgY29uc3QgQ09OVEVOVF9UWVBFID0ge1xuICBBUFBMSUNBVElPTl9KU09OOiBSZXN0SGVhZGVycy5mcm9tKHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbidcbiAgfSksXG4gIEFQUExJQ0FUSU5PX1ZORF9BUElfSlNPTjogUmVzdEhlYWRlcnMuZnJvbSh7XG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi92bmQuYXBpK2pzb24nLFxuICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vdm5kLmFwaStqc29uJ1xuICB9KSxcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9jb250ZW50LXR5cGUudHMiXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9jb250ZW50LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixnQkFBZ0IsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2pDLGNBQWMsRUFBRSxrQkFBa0I7UUFDbEMsUUFBUSxFQUFFLGtCQUFrQjtLQUM3QixDQUFDO0lBQ0Ysd0JBQXdCLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztRQUN6QyxjQUFjLEVBQUUsMEJBQTBCO1FBQzFDLFFBQVEsRUFBRSwwQkFBMEI7S0FDckMsQ0FBQztDQUNILENBRUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseURBQXlEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFJlc3RIZWFkZXJzIH0gZnJvbSBcIi4vcmVzdC1oZWFkZXJzXCI7XG5cblxuZXhwb3J0IGNvbnN0IENPTlRFTlRfVFlQRSA9IHtcbiAgQVBQTElDQVRJT05fSlNPTjogUmVzdEhlYWRlcnMuZnJvbSh7XG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH0pLFxuICBBUFBMSUNBVElOT19WTkRfQVBJX0pTT046IFJlc3RIZWFkZXJzLmZyb20oe1xuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vdm5kLmFwaStqc29uJyxcbiAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5hcGkranNvbidcbiAgfSksXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvY29udGVudC10eXBlLnRzIl19
@@ -26,4 +26,4 @@ export class Cookie {
26
26
  }
27
27
  ;
28
28
  ({}); // @--end-of-file-for-module=ng2-rest lib/cookie.ts
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL2Nvb2tpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sTUFBTTtJQUVSLE1BQU0sS0FBSyxRQUFRO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztTQUNwQztRQUNELE9BQU8sTUFBTSxDQUFDLFVBQWlCLENBQUM7SUFDcEMsQ0FBQztJQUdEO0lBQ0EsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFZO1FBQ2IsSUFBSSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEcsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxJQUFhO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU1RCxJQUFJLE9BQU8sR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhELFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBRUo7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgY2xhc3MgQ29va2llIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IENvb2tpZSB7XG4gICAgICAgIGlmICghQ29va2llLl9faW5zdGFuY2UpIHtcbiAgICAgICAgICAgIENvb2tpZS5fX2luc3RhbmNlID0gbmV3IENvb2tpZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBDb29raWUuX19pbnN0YW5jZSBhcyBhbnk7XG4gICAgfVxuICAgIHByaXZhdGUgc3RhdGljIF9faW5zdGFuY2U7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuICAgIHJlYWQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgUmVnRXhwKCcoPzpefDsgKScgKyBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPShbXjtdKiknKS5leGVjKGRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgIHJldHVybiByZXN1bHQgPyByZXN1bHRbMV0gOiBudWxsO1xuICAgIH1cblxuICAgIHdyaXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZGF5cz86IG51bWJlcikge1xuICAgICAgICBpZiAoIWRheXMpIHtcbiAgICAgICAgICAgIGRheXMgPSAzNjUgKiAyMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGRheXMgKiAyNCAqIDYwICogNjAgKiAxMDAwKSk7XG5cbiAgICAgICAgdmFyIGV4cGlyZXMgPSBcIjsgZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcblxuICAgICAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgXCI9XCIgKyB2YWx1ZSArIGV4cGlyZXMgKyBcIjsgcGF0aD0vXCI7XG4gICAgfVxuXG4gICAgcmVtb3ZlKG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLndyaXRlKG5hbWUsIFwiXCIsIC0xKTtcbiAgICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9jb29raWUudHMiXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9jb29raWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE1BQU07SUFFUixNQUFNLEtBQUssUUFBUTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7U0FDcEM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxVQUFpQixDQUFDO0lBQ3BDLENBQUM7SUFHRDtJQUNBLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWTtRQUNiLElBQUksTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBYTtRQUM1QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDbkI7UUFFRCxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUQsSUFBSSxPQUFPLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoRCxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUVKO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtREFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IGNsYXNzIENvb2tpZSB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBJbnN0YW5jZSgpOiBDb29raWUge1xuICAgICAgICBpZiAoIUNvb2tpZS5fX2luc3RhbmNlKSB7XG4gICAgICAgICAgICBDb29raWUuX19pbnN0YW5jZSA9IG5ldyBDb29raWUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ29va2llLl9faW5zdGFuY2UgYXMgYW55O1xuICAgIH1cbiAgICBwcml2YXRlIHN0YXRpYyBfX2luc3RhbmNlO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICByZWFkKG5hbWU6IHN0cmluZykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFJlZ0V4cCgnKD86Xnw7ICknICsgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0oW147XSopJykuZXhlYyhkb2N1bWVudC5jb29raWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0WzFdIDogbnVsbDtcbiAgICB9XG5cbiAgICB3cml0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGRheXM/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCFkYXlzKSB7XG4gICAgICAgICAgICBkYXlzID0gMzY1ICogMjA7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChkYXlzICogMjQgKiA2MCAqIDYwICogMTAwMCkpO1xuXG4gICAgICAgIHZhciBleHBpcmVzID0gXCI7IGV4cGlyZXM9XCIgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XG5cbiAgICAgICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArIFwiPVwiICsgdmFsdWUgKyBleHBpcmVzICsgXCI7IHBhdGg9L1wiO1xuICAgIH1cblxuICAgIHJlbW92ZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53cml0ZShuYW1lLCBcIlwiLCAtMSk7XG4gICAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvY29va2llLnRzIl19
@@ -22,4 +22,4 @@ class Helpers extends CoreHelpers {
22
22
  export { Helpers };
23
23
  ;
24
24
  ({}); // @--end-of-file-for-module=ng2-rest lib/helpers.ts
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxhQUFhO0FBQ2IsTUFBYSxPQUFRLFNBQVEsV0FBVzthQUUvQixTQUFJLEdBQUcsTUFBTSxDQUFDO0lBRXJCLE1BQU0sS0FBSyxPQUFPO1FBQ2hCLE9BQU87WUFDTCxNQUFNLENBQWUsSUFBWSxFQUFFLE9BQXdCO2dCQUN6RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLFVBQVUsR0FBRyxLQUFLO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQ3pDLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM5QixJQUFJLEtBQUssR0FBRyw2RUFBNkUsQ0FBQztRQUMxRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQzs7U0FsQlUsT0FBTztBQXdCbkIsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQ29yZUhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xuaW1wb3J0IHsgSlNPTjEwIH0gZnJvbSAnanNvbjEwL2Jyb3dzZXInO1xuXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgY2xhc3MgSGVscGVycyBleHRlbmRzIENvcmVIZWxwZXJzIHtcblxuICBzdGF0aWMgSlNPTiA9IEpTT04xMDtcblxuICBzdGF0aWMgZ2V0IE1hcHBpbmcoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuY29kZTxUID0gRnVuY3Rpb24+KGpzb246IE9iamVjdCwgbWFwcGluZzogTWFwcGluZy5NYXBwaW5nKTogVCB7XG4gICAgICAgIHJldHVybiBNYXBwaW5nLmVuY29kZShqc29uLCBtYXBwaW5nKTtcbiAgICAgIH0sXG4gICAgICBkZWNvZGUoanNvbjogT2JqZWN0LCBhdXRvZGV0ZWN0ID0gZmFsc2UgKTogTWFwcGluZy5NYXBwaW5nIHtcbiAgICAgICAgcmV0dXJuIE1hcHBpbmcuZGVjb2RlKGpzb24sIGF1dG9kZXRlY3QpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrVmFsaWRVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgcmVnZXggPSAvKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3Kik/KFxcUyspKDpbMC05XSspPyhcXC98XFwvKFtcXHcjITouPys9JiUhXFwtXFwvXSkpPy87XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodXJsKTtcbiAgfVxuXG5cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bmcyLXJlc3QgbGliL2hlbHBlcnMudHMiXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsYUFBYTtBQUNiLE1BQWEsT0FBUSxTQUFRLFdBQVc7YUFFL0IsU0FBSSxHQUFHLE1BQU0sQ0FBQztJQUVyQixNQUFNLEtBQUssT0FBTztRQUNoQixPQUFPO1lBQ0wsTUFBTSxDQUFlLElBQVksRUFBRSxPQUF3QjtnQkFDekQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxVQUFVLEdBQUcsS0FBSztnQkFDckMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtZQUN6QyxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDOUIsSUFBSSxLQUFLLEdBQUcsNkVBQTZFLENBQUM7UUFDMUYsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O1NBbEJVLE9BQU87QUF3Qm5CLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0RBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXBwaW5nIH0gZnJvbSAnLi9tYXBwaW5nJztcbmltcG9ydCB7IEpTT04xMCB9IGZyb20gJ2pzb24xMC9icm93c2VyJztcblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNsYXNzIEhlbHBlcnMgZXh0ZW5kcyBDb3JlSGVscGVycyB7XG5cbiAgc3RhdGljIEpTT04gPSBKU09OMTA7XG5cbiAgc3RhdGljIGdldCBNYXBwaW5nKCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbmNvZGU8VCA9IEZ1bmN0aW9uPihqc29uOiBPYmplY3QsIG1hcHBpbmc6IE1hcHBpbmcuTWFwcGluZyk6IFQge1xuICAgICAgICByZXR1cm4gTWFwcGluZy5lbmNvZGUoanNvbiwgbWFwcGluZyk7XG4gICAgICB9LFxuICAgICAgZGVjb2RlKGpzb246IE9iamVjdCwgYXV0b2RldGVjdCA9IGZhbHNlICk6IE1hcHBpbmcuTWFwcGluZyB7XG4gICAgICAgIHJldHVybiBNYXBwaW5nLmRlY29kZShqc29uLCBhdXRvZGV0ZWN0KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1ZhbGlkVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlZ2V4ID0gLyhodHRwfGh0dHBzKTpcXC9cXC8oXFx3Kzp7MCwxfVxcdyopPyhcXFMrKSg6WzAtOV0rKT8oXFwvfFxcLyhbXFx3IyE6Lj8rPSYlIVxcLVxcL10pKT8vO1xuICAgIHJldHVybiByZWdleC50ZXN0KHVybCk7XG4gIH1cblxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9oZWxwZXJzLnRzIl19
@@ -10,4 +10,4 @@ export { SimpleResource } from './other/simple-resource';
10
10
  export { interpolateParamsToUrl } from './params';
11
11
  ;
12
12
  ({}); // @--end-of-file-for-module=ng2-rest lib/index.ts
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2Utc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL21hcHBpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXN0LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdC1oZWFkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QtY2FjaGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXR5cGUnO1xuZXhwb3J0IHsgU2ltcGxlUmVzb3VyY2UgfSBmcm9tICcuL290aGVyL3NpbXBsZS1yZXNvdXJjZSc7XG5leHBvcnQgeyBpbnRlcnBvbGF0ZVBhcmFtc1RvVXJsIH0gZnJvbSAnLi9wYXJhbXMnO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bmcyLXJlc3QgbGliL2luZGV4LnRzIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqRCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBwaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3QtaGVhZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0LWNhY2hlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGVudC10eXBlJztcbmV4cG9ydCB7IFNpbXBsZVJlc291cmNlIH0gZnJvbSAnLi9vdGhlci9zaW1wbGUtcmVzb3VyY2UnO1xuZXhwb3J0IHsgaW50ZXJwb2xhdGVQYXJhbXNUb1VybCB9IGZyb20gJy4vcGFyYW1zJztcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9pbmRleC50cyJdfQ==
@@ -247,4 +247,4 @@ export var Mapping;
247
247
  })(Mapping || (Mapping = {}));
248
248
  ;
249
249
  ({}); // @--end-of-file-for-module=ng2-rest lib/mapping.ts
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHakUsTUFBTSxLQUFXLE9BQU8sQ0FxVHZCO0FBclRELFdBQWlCLE9BQU87SUFFdEIsU0FBZ0IsTUFBTSxDQUFDLElBQVksRUFBRSxVQUFVLEdBQUcsS0FBSztRQUdyRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFdEYsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBZGUsY0FBTSxTQWNyQixDQUFBO0lBRUQsU0FBZ0IsTUFBTSxDQUFlLElBQVksRUFBRSxPQUFnQixFQUFFLFdBQW1CLEVBQUU7UUFDeEYsSUFBSSxDQUFDLENBQUMsUUFBUSxD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QUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFO3dCQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDOztxREFFNEIsZUFBZTt3QkFDNUMsTUFBTSxDQUFDLElBQUk7OzthQUd0QixDQUFDLENBQUE7cUJBQ0g7eUJBQU07d0JBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLHVDQUF1QztxQkFDekU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBSUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUVwRSxNQUFNLFlBQVksR0FBRyxNQUFNO3FCQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNaLE1BQU0sVUFBVSxHQUFHLE1BQU07eUJBQ3RCLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBRy9FO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQWpFZSwrQkFBdUIsMEJBaUV0QyxDQUFBO0FBRUgsQ0FBQyxFQXJUZ0IsT0FBTyxLQUFQLE9BQU8sUUFxVHZCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQ2lyYywgSlNPTjEwIH0gZnJvbSAnanNvbjEwL2Jyb3dzZXInO1xuaW1wb3J0IHsgd2FsayB9IGZyb20gJ2xvZGFzaC13YWxrLW9iamVjdC9icm93c2VyJztcbmltcG9ydCB7IENMQVNTLCBTWU1CT0wgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIGFzIEhlbHBlcnNMb2cgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuZXhwb3J0IG5hbWVzcGFjZSBNYXBwaW5nIHtcblxuICBleHBvcnQgZnVuY3Rpb24gZGVjb2RlKGpzb246IE9iamVjdCwgYXV0b2RldGVjdCA9IGZhbHNlKTogTWFwcGluZyB7XG5cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKGpzb24pKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIGxldCBtYXBwaW5nID0gZGVjb2RlRnJvbURlY29yYXRvcihfLmlzQXJyYXkoanNvbikgPyBfLmZpcnN0KGpzb24pIDoganNvbiwgIWF1dG9kZXRlY3QpXG5cbiAgICBpZiAoYXV0b2RldGVjdCkge1xuICAgICAgbWFwcGluZyA9IF8ubWVyZ2UoZ2V0TWFwcGluZ05haXZlKGpzb24pLCBtYXBwaW5nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGluZztcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbmNvZGU8VCA9IEZ1bmN0aW9uPihqc29uOiBPYmplY3QsIG1hcHBpbmc6IE1hcHBpbmcsIGNpcmN1bGFyOiBDaXJjW10gPSBbXSk6IFQge1xuICAgIGlmIChfLmlzU3RyaW5nKGpzb24pIHx8IF8uaXNCb29sZWFuKGpzb24pIHx8IF8uaXNOdW1iZXIoanNvbikpIHtcbiAgICAgIHJldHVybiBqc29uIGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAobWFwcGluZ1snJ10pIHtcbiAgICAgIGNvbnN0IGRlY29yYXRvck1hcHBpbmcgPSBnZXRNb2RlbHNNYXBwaW5nKENMQVNTLmdldEJ5KG1hcHBpbmdbJyddKSk7XG4gICAgICBtYXBwaW5nID0gXy5tZXJnZShtYXBwaW5nLCBkZWNvcmF0b3JNYXBwaW5nKVxuICAgIH1cblxuICAgIGxldCByZXM6IGFueTtcbiAgICBpZiAoXy5pc0FycmF5KGNpcmN1bGFyKSAmJiBjaXJjdWxhci5sZW5ndGggPiAwKSB7XG4gICAgICByZXMgPSBzZXRNYXBwaW5nQ2lyYyhqc29uLCBtYXBwaW5nLCBjaXJjdWxhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHNldE1hcHBpbmcoanNvbiwgbWFwcGluZyk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuXG4gIGZ1bmN0aW9uIGRlY29kZUZyb21EZWNvcmF0b3IoanNvbjogT2JqZWN0LCBwcm9kdWN0aW9uID0gZmFsc2UpOiBNYXBwaW5nIHtcbiAgICBjb25zdCBlbnRpdHlDbGFzcyA9IENMQVNTLmdldEZyb21PYmplY3QoanNvbik7XG4gICAgY29uc3QgbWFwcGluZ3MgPSBnZXRNb2RlbHNNYXBwaW5nKGVudGl0eUNsYXNzKTtcbiAgICByZXR1cm4gbWFwcGluZ3MgYXMgYW55O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsc01hcHBpbmcoZW50aXR5OiBGdW5jdGlvbikge1xuXG4gICAgaWYgKCFfLmlzRnVuY3Rpb24oZW50aXR5KSB8fCBlbnRpdHkgPT09IE9iamVjdCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCBjbGFzc05hbWUgPSBDTEFTUy5nZXROYW1lKGVudGl0eSlcblxuICAgIGxldCBlbml0eU9Xbk1hcHBpbmc6IGFueVtdID0gXy5pc0FycmF5KGVudGl0eVtTWU1CT0wuTU9ERUxTX01BUFBJTkddKSA/XG4gICAgICBlbnRpdHlbU1lNQk9MLk1PREVMU19NQVBQSU5HXSA6IFt7ICcnOiBjbGFzc05hbWUgfV07XG5cbiAgICBsZXQgcmVzID0ge307XG4gICAgbGV0IHBhcmVudHMgPSBlbml0eU9Xbk1hcHBpbmdcbiAgICAgIC5maWx0ZXIobSA9PiAhXy5pc1VuZGVmaW5lZChtWycnXSkgJiYgbVsnJ10gIT09IGNsYXNzTmFtZSlcbiAgICAgIC5tYXAobSA9PiBtWycnXSk7XG5cbiAgICBlbml0eU9Xbk1hcHBpbmcucmV2ZXJzZSgpLmZvckVhY2gobSA9PiB7XG4gICAgICBtID0gXy5jbG9uZURlZXAobSk7XG5cbiAgICAgIE9iamVjdC5rZXlzKG0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgdiA9IG1ba2V5XVxuICAgICAgICBjb25zdCBpc0FyciA9IF8uaXNBcnJheSh2KVxuICAgICAgICBjb25zdCBtb2RlbCA9IGlzQXJyID8gXy5maXJzdCh2KSA6IHY7XG4gICAgICAgIGlmIChwYXJlbnRzLmluY2x1ZGVzKG1vZGVsKSkge1xuICAgICAgICAgIG1ba2V5XSA9IGlzQXJyID8gW2NsYXNzTmFtZV0gOiBjbGFzc05hbWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXMgPSBfLm1lcmdlKHJlcywgbSlcbiAgICB9KVxuICAgIHJlc1snJ10gPSBjbGFzc05hbWU7XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cblxuICBleHBvcnQgdHlwZSBNYXBwaW5nPFQgPSB7fT4gPSB7XG4gICAgW1AgaW4ga2V5b2YgVF0/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGQobzogT2JqZWN0LCBwYXRoOiBzdHJpbmcsIG1hcHBpbmc6IE1hcHBpbmcgPSB7fSkge1xuICAgIGlmICghbyB8fCBBcnJheS5pc0FycmF5KG8pIHx8IHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuICAgIGNvbnN0IG9iamVjdENsYXNzTmFtZSA9IENMQVNTLmdldE5hbWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pLmNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCByZXNvbHZlQ2xhc3MgPSBDTEFTUy5nZXRCeShvYmplY3RDbGFzc05hbWUpO1xuICAgIGlmICghcmVzb2x2ZUNsYXNzKSB7XG4gICAgICBpZiAob2JqZWN0Q2xhc3NOYW1lICE9PSAnT2JqZWN0Jykge1xuICAgICAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgcmVzb2x2ZSBjbGFzcyBcIiR7b2JqZWN0Q2xhc3NOYW1lfVwiIHdoaWxlIG1hcHBpbmcuYClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW1hcHBpbmdbcGF0aF0pIG1hcHBpbmdbcGF0aF0gPSBDTEFTUy5nZXROYW1lKHJlc29sdmVDbGFzcykgYXMgYW55OztcbiAgfVxuXG4gIC8qKlxuICAgKiBVU0UgT05MWSBJTiBERVZFTE9QTUVOVFxuICAgKiBAcGFyYW0gY1xuICAgKiBAcGFyYW0gcGF0aFxuICAgKiBAcGFyYW0gbWFwcGluZ1xuICAgKiBAcGFyYW0gbGV2ZWxcbiAgICovXG4gIGZ1bmN0aW9uIGdldE1hcHBpbmdOYWl2ZShjOiBPYmplY3QsIHBhdGggPSAnJywgbWFwcGluZzogTWFwcGluZyA9IHt9LCBsZXZlbCA9IDApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjKSkge1xuICAgICAgYy5mb3JFYWNoKGMgPT4gZ2V0TWFwcGluZ05haXZlKGMsIHBhdGgsIG1hcHBpbmcsIGxldmVsKSlcbiAgICAgIHJldHVybiBtYXBwaW5nO1xuICAgIH1cbiAgICBpZiAoKytsZXZlbCA9PT0gMTYpIHJldHVybjtcbiAgICBhZGQoYywgcGF0aCwgbWFwcGluZyk7XG4gICAgZm9yICh2YXIgcCBpbiBjKSB7XG4gICAgICBpZiAoYy5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgICBjb25zdCB2ID0gY1twXTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikgJiYgdi5sZW5ndGggPiAwKSB7IC8vIHJlZHVjZXIgYXMgaW1wb3ZlbWVudFxuICAgICAgICAgIHYuZm9yRWFjaCgoZWxlbSwgaSkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UGFodCA9IFtwYXRoLCBwXS5maWx0ZXIoYyA9PiBjLnRyaW0oKSAhPSAnJykuam9pbignLicpO1xuICAgICAgICAgICAgZ2V0TWFwcGluZ05haXZlKGVsZW0sIGN1cnJlbnRQYWh0LCBtYXBwaW5nLCBsZXZlbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UGFodCA9IFtwYXRoLCBwXS5maWx0ZXIoYyA9PiBjLnRyaW0oKSAhPSAnJykuam9pbignLicpO1xuICAgICAgICAgIGFkZCh2LCBjdXJyZW50UGFodCwgbWFwcGluZyk7XG4gICAgICAgICAgZ2V0TWFwcGluZ05haXZlKHYsIGN1cnJlbnRQYWh0LCBtYXBwaW5nLCBsZXZlbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hcHBpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRNYXBwaW5nUGF0aEZyb20ocGF0aExvZGhhczogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKHBhdGhMb2RoYXMpKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBjb25zdCByZWdleCA9IC9cXFsoWzAtOWEtekEtWl18XFwnfFxcXCIpKlxcXS9nO1xuICAgIHBhdGhMb2RoYXMgPSBwYXRoTG9kaGFzXG4gICAgICAucmVwbGFjZShyZWdleCwgJycpXG4gICAgICAucmVwbGFjZSgnLi4nLCAnLicpO1xuICAgIGlmIChwYXRoTG9kaGFzLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgcGF0aExvZGhhcyA9IHBhdGhMb2RoYXMuc2xpY2UoMSlcbiAgICB9XG4gICAgcmV0dXJuIHBhdGhMb2RoYXM7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRNYXBwaW5nQ2lyYyhqc29uOiBPYmplY3QsIG1hcHBpbmc6IE1hcHBpbmcgPSB7fSwgY2lyY3VsYXI6IENpcmNbXSA9IFtdKSB7XG5cbiAgICBjb25zdCBtYWluQ2xhc3NGbiA9ICFfLmlzQXJyYXkoanNvbikgJiYgQ0xBU1MuZ2V0QnkobWFwcGluZ1snJ10pO1xuXG4gICAgd2Fsay5PYmplY3QoanNvbiwgKHYsIGxvZGFzaFBhdGgsIGNoYW5nZVZhbHVlKSA9PiB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQodikgJiYgIV8uaXNOdWxsKHYpKSB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdQYXRoID0gZ2V0TWFwcGluZ1BhdGhGcm9tKGxvZGFzaFBhdGgpXG4gICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChtYXBwaW5nW21hcHBpbmdQYXRoXSkpIHtcbiAgICAgICAgICBjb25zdCBpc0FycmF5ID0gXy5pc0FycmF5KG1hcHBpbmdbbWFwcGluZ1BhdGhdKTtcbiAgICAgICAgICBpZiAoIWlzQXJyYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGlzQXJyYXkgPyBfLmZpcnN0KG1hcHBpbmdbbWFwcGluZ1BhdGhdKSA6IG1hcHBpbmdbbWFwcGluZ1BhdGhdO1xuICAgICAgICAgICAgY29uc3QgY2xhc3NGTiA9IENMQVNTLmdldEJ5KGNsYXNzTmFtZSlcbiAgICAgICAgICAgIGlmIChfLmlzRnVuY3Rpb24oY2xhc3NGTikpIHtcblxuICAgICAgICAgICAgICBjaGFuZ2VWYWx1ZShfLm1lcmdlKG5ldyAoY2xhc3NGTiBhcyBhbnkpKCksIHYpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjaXJjdWxhci5mb3JFYWNoKGMgPT4ge1xuICAgICAgY29uc3QgcmVmID0gXy5nZXQoanNvbiwgYy5jaXJjdXJhbFRhcmdldFBhdGgpXG4gICAgICBfLnNldChqc29uLCBjLnBhdGhUb09iaiwgcmVmKVxuICAgIH0pXG5cbiAgICBpZiAoXy5pc0Z1bmN0aW9uKG1haW5DbGFzc0ZuKSkge1xuICAgICAganNvbiA9IF8ubWVyZ2UobmV3IChtYWluQ2xhc3NGbiBhcyBhbnkpKCksIGpzb24pXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuXG5cbiAgZnVuY3Rpb24gc2V0TWFwcGluZyhqc29uOiBPYmplY3QsIG1hcHBpbmc6IE1hcHBpbmcgPSB7fSkge1xuXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgcmV0dXJuIGpzb24ubWFwKGogPT4ge1xuICAgICAgICByZXR1cm4gc2V0TWFwcGluZyhqLCBtYXBwaW5nKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBtYWluQ2xhc3NGbiA9IENMQVNTLmdldEJ5KG1hcHBpbmdbJyddKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGpzb24pIHtcbiAgICAgIGlmIChqc29uLmhhc093blByb3BlcnR5KGtleSkpIHtcblxuXG5cbiAgICAgICAgaWYgKF8uaXNBcnJheShqc29uW2tleV0pKSB7XG4gICAgICAgICAganNvbltrZXldID0ganNvbltrZXldLm1hcChhcnJPYmogPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqTWFwcGluZyA9IGdldE1vZGVsc01hcHBpbmcoQ0xBU1MuZ2V0QnkobWFwcGluZ1trZXldKSlcbiAgICAgICAgICAgIHJldHVybiBzZXRNYXBwaW5nKGFyck9iaiwgb2JqTWFwcGluZylcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKF8uaXNPYmplY3QoanNvbltrZXldKSkge1xuICAgICAgICAgIGNvbnN0IG9iak1hcHBpbmcgPSBnZXRNb2RlbHNNYXBwaW5nKENMQVNTLmdldEJ5KG1hcHBpbmdba2V5XSkpXG4gICAgICAgICAganNvbltrZXldID0gc2V0TWFwcGluZyhqc29uW2tleV0sIG9iak1hcHBpbmcpXG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cblxuXG4gICAgfVxuXG4gICAgT2JqZWN0XG4gICAgICAua2V5cyhtYXBwaW5nKVxuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5ICE9PSAnJyAmJiBrZXkuc3BsaXQoJy4nKS5sZW5ndGggPj0gMilcbiAgICAgIC5mb3JFYWNoKGxvZGFzUGF0aCA9PiB7XG5cbiAgICAgICAgY29uc3Qgb2JqTWFwcGluZyA9IGdldE1vZGVsc01hcHBpbmcoQ0xBU1MuZ2V0QnkobWFwcGluZ1tsb2Rhc1BhdGhdKSlcbiAgICAgICAgY29uc3QgaW5wdXQgPSBfLmdldChqc29uLCBsb2Rhc1BhdGgpXG4gICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgICBjb25zdCByZXMgPSBzZXRNYXBwaW5nKGlucHV0LCBvYmpNYXBwaW5nKVxuICAgICAgICAgIF8uc2V0KGpzb24sIGxvZGFzUGF0aCwgcmVzKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgaWYgKCFtYWluQ2xhc3NGbikge1xuICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxuICAgIHJldHVybiBfLm1lcmdlKG5ldyAobWFpbkNsYXNzRm4gYXMgYW55KSgpLCBqc29uKVxuICB9XG5cblxuXG5cbiAgZXhwb3J0IHR5cGUgTW9kZWxWYWx1ZTxUPiA9IHtcbiAgICAvKipcbiAgICAgKiBJbnNpZGUgbW9kZWxzIHR5cGVzXG4gICAgICovXG4gICAgW3Byb3BOYW1lIGluIGtleW9mIFRdPzogVFtwcm9wTmFtZV07XG4gIH07XG5cblxuICBleHBvcnQgZnVuY3Rpb24gRGVmYXVsdE1vZGVsV2l0aE1hcHBpbmc8VCA9IE9iamVjdD4oXG4gICAgZGVmYXVsdE1vZGVsVmFsdWVzPzogTW9kZWxWYWx1ZTxUPixcbiAgICBtYXBwaW5nPzogTWFwcGluZzxUPlxuICApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogRnVuY3Rpb24pIHtcblxuICAgICAgaWYgKCFfLmlzQXJyYXkodGFyZ2V0W1NZTUJPTC5NT0RFTFNfTUFQUElOR10pKSB7XG4gICAgICAgIHRhcmdldFtTWU1CT0wuTU9ERUxTX01BUFBJTkddID0gW107XG4gICAgICB9XG5cbiAgICAgICh0YXJnZXRbU1lNQk9MLk1PREVMU19NQVBQSU5HXSBhcyBhbnlbXSkucHVzaCh7ICcnOiBDTEFTUy5nZXROYW1lKHRhcmdldCkgfSk7XG4gICAgICBpZiAoXy5pc09iamVjdChtYXBwaW5nKSkge1xuICAgICAgICB0YXJnZXRbU1lNQk9MLk1PREVMU19NQVBQSU5HXSA9ICh0YXJnZXRbU1lNQk9MLk1PREVMU19NQVBQSU5HXSBhcyBhbnlbXSkuY29uY2F0KG1hcHBpbmcpXG4gICAgICAgIE9iamVjdC5rZXlzKG1hcHBpbmcpXG4gICAgICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBtYXBwaW5nO1xuICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodikgfHwgXy5pc0Z1bmN0aW9uKHYpKSB7XG4gICAgICAgICAgICAgIHRocm93IGBcblxuXG4gICAgICAgICAgICBDbGFzczogJyR7dGFyZ2V0Lm5hbWV9J1xuW25nMnJlc3RdIEJhZCBtYXBwaW5nIHZhbHVlIGZvciBwYXRoOiAke2tleX0gLCBwbGVhc2UgdXNlIHR5cGU6IDxzdHJpbmc+IG9yIFs8c3RyaW5nPl1cbmA7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuXG4gICAgICBpZiAoXy5pc09iamVjdChkZWZhdWx0TW9kZWxWYWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHRvTWVyZ2UgPSB7fTtcbiAgICAgICAgY29uc3QgZGVzY3JpYmVkVGFyZ2V0ID0gQ0xBU1NcbiAgICAgICAgICAuZGVzY3JpYmVQcm9wZXJpdGVzKHRhcmdldClcbiAgICAgICAgICAuZmlsdGVyKHByb3AgPT4gL14oW2EtekEtWjAtOV18XFxffFxcIykrJC8udGVzdChwcm9wKSlcblxuICAgICAgICBkZXNjcmliZWRUYXJnZXQuZm9yRWFjaChwcm9wRGVmSW5Db25zdHIgPT4ge1xuICAgICAgICAgIGlmIChkZWZhdWx0TW9kZWxWYWx1ZXNbcHJvcERlZkluQ29uc3RyXSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBcblxuICAgICAgICAgICAgQ09ORkxJQ1Q6IGRlZmF1bHQgdmFsdWUgZm9yIHByb3BlcnR5OiBcIiR7cHJvcERlZkluQ29uc3RyfVwiXG4gICAgICAgICAgICBpbiBjbGFzcyBcIiR7dGFyZ2V0Lm5hbWV9XCIgYWxyZWFkeSBkZWZpbmVkIGFzIHR5cGVzY3JpcHRcbiAgICAgICAgICAgIGRlZmF1bHQgY2xhc3MgcHJvcHJ0eSB2YWx1ZS5cblxuICAgICAgICAgICAgYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9NZXJnZVtwcm9wRGVmSW5Db25zdHJdID0gbnVsbDsgLy8gVE9ETyBmcm9tIHRvU3RyaW5nIEkgY2FuJ3Qga25vdyB0aGF0XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuXG5cbiAgICAgICAgdGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXSA9IF8ubWVyZ2UodG9NZXJnZSwgZGVmYXVsdE1vZGVsVmFsdWVzKTtcblxuICAgICAgICBjb25zdCBwcm9wc1RvT21taXQgPSBPYmplY3RcbiAgICAgICAgICAua2V5cyh0YXJnZXRbU1lNQk9MLkRFRkFVTFRfTU9ERUxdKVxuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3RcbiAgICAgICAgICAgICAgLmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQucHJvdG90eXBlLCBrZXkpO1xuICAgICAgICAgICAgcmV0dXJuICEhZGVzY3JpcHRvcjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgXy5tZXJnZSh0YXJnZXQucHJvdG90eXBlLCBfLm9taXQodGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXSwgcHJvcHNUb09tbWl0KSk7XG5cblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvbWFwcGluZy50cyJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2pFLE1BQU0sS0FBVyxPQUFPLENBcVR2QjtBQXJURCxXQUFpQixPQUFPO0lBRXRCLFNBQWdCLE1BQU0sQ0FBQyxJQUFZLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFHckQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUVELElBQUksT0FBTyxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXRGLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQWRlLGNBQU0sU0FjckIsQ0FBQTtJQUVELFNBQWdCLE1BQU0sQ0FBZSxJQUFZLEVBQUUsT0FBZ0IsRUFBRSxXQUFtQixFQUFFO1FBQ3hGLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FB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a0IsQ0FBQyxlQUFlLENBQUMsRUFBRTt3QkFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQzs7cURBRTRCLGVBQWU7d0JBQzVDLE1BQU0sQ0FBQyxJQUFJOzs7YUFHdEIsQ0FBQyxDQUFBO3FCQUNIO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyx1Q0FBdUM7cUJBQ3pFO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUlILE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFFcEUsTUFBTSxZQUFZLEdBQUcsTUFBTTtxQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDWixNQUFNLFVBQVUsR0FBRyxNQUFNO3lCQUN0Qix3QkFBd0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNuRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUcvRTtRQUNILENBQUMsQ0FBQTtJQUNILENBQUM7SUFqRWUsK0JBQXVCLDBCQWlFdEMsQ0FBQTtBQUVILENBQUMsRUFyVGdCLE9BQU8sS0FBUCxPQUFPLFFBcVR2QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0RBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IENpcmMsIEpTT04xMCB9IGZyb20gJ2pzb24xMC9icm93c2VyJztcbmltcG9ydCB7IHdhbGsgfSBmcm9tICdsb2Rhc2gtd2Fsay1vYmplY3QvYnJvd3Nlcic7XG5pbXBvcnQgeyBDTEFTUywgU1lNQk9MIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyBhcyBIZWxwZXJzTG9nIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTWFwcGluZyB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlY29kZShqc29uOiBPYmplY3QsIGF1dG9kZXRlY3QgPSBmYWxzZSk6IE1hcHBpbmcge1xuXG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChqc29uKSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBsZXQgbWFwcGluZyA9IGRlY29kZUZyb21EZWNvcmF0b3IoXy5pc0FycmF5KGpzb24pID8gXy5maXJzdChqc29uKSA6IGpzb24sICFhdXRvZGV0ZWN0KVxuXG4gICAgaWYgKGF1dG9kZXRlY3QpIHtcbiAgICAgIG1hcHBpbmcgPSBfLm1lcmdlKGdldE1hcHBpbmdOYWl2ZShqc29uKSwgbWFwcGluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBpbmc7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5jb2RlPFQgPSBGdW5jdGlvbj4oanNvbjogT2JqZWN0LCBtYXBwaW5nOiBNYXBwaW5nLCBjaXJjdWxhcjogQ2lyY1tdID0gW10pOiBUIHtcbiAgICBpZiAoXy5pc1N0cmluZyhqc29uKSB8fCBfLmlzQm9vbGVhbihqc29uKSB8fCBfLmlzTnVtYmVyKGpzb24pKSB7XG4gICAgICByZXR1cm4ganNvbiBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKG1hcHBpbmdbJyddKSB7XG4gICAgICBjb25zdCBkZWNvcmF0b3JNYXBwaW5nID0gZ2V0TW9kZWxzTWFwcGluZyhDTEFTUy5nZXRCeShtYXBwaW5nWycnXSkpO1xuICAgICAgbWFwcGluZyA9IF8ubWVyZ2UobWFwcGluZywgZGVjb3JhdG9yTWFwcGluZylcbiAgICB9XG5cbiAgICBsZXQgcmVzOiBhbnk7XG4gICAgaWYgKF8uaXNBcnJheShjaXJjdWxhcikgJiYgY2lyY3VsYXIubGVuZ3RoID4gMCkge1xuICAgICAgcmVzID0gc2V0TWFwcGluZ0NpcmMoanNvbiwgbWFwcGluZywgY2lyY3VsYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSBzZXRNYXBwaW5nKGpzb24sIG1hcHBpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cblxuICBmdW5jdGlvbiBkZWNvZGVGcm9tRGVjb3JhdG9yKGpzb246IE9iamVjdCwgcHJvZHVjdGlvbiA9IGZhbHNlKTogTWFwcGluZyB7XG4gICAgY29uc3QgZW50aXR5Q2xhc3MgPSBDTEFTUy5nZXRGcm9tT2JqZWN0KGpzb24pO1xuICAgIGNvbnN0IG1hcHBpbmdzID0gZ2V0TW9kZWxzTWFwcGluZyhlbnRpdHlDbGFzcyk7XG4gICAgcmV0dXJuIG1hcHBpbmdzIGFzIGFueTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbHNNYXBwaW5nKGVudGl0eTogRnVuY3Rpb24pIHtcblxuICAgIGlmICghXy5pc0Z1bmN0aW9uKGVudGl0eSkgfHwgZW50aXR5ID09PSBPYmplY3QpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgY2xhc3NOYW1lID0gQ0xBU1MuZ2V0TmFtZShlbnRpdHkpXG5cbiAgICBsZXQgZW5pdHlPV25NYXBwaW5nOiBhbnlbXSA9IF8uaXNBcnJheShlbnRpdHlbU1lNQk9MLk1PREVMU19NQVBQSU5HXSkgP1xuICAgICAgZW50aXR5W1NZTUJPTC5NT0RFTFNfTUFQUElOR10gOiBbeyAnJzogY2xhc3NOYW1lIH1dO1xuXG4gICAgbGV0IHJlcyA9IHt9O1xuICAgIGxldCBwYXJlbnRzID0gZW5pdHlPV25NYXBwaW5nXG4gICAgICAuZmlsdGVyKG0gPT4gIV8uaXNVbmRlZmluZWQobVsnJ10pICYmIG1bJyddICE9PSBjbGFzc05hbWUpXG4gICAgICAubWFwKG0gPT4gbVsnJ10pO1xuXG4gICAgZW5pdHlPV25NYXBwaW5nLnJldmVyc2UoKS5mb3JFYWNoKG0gPT4ge1xuICAgICAgbSA9IF8uY2xvbmVEZWVwKG0pO1xuXG4gICAgICBPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSBtW2tleV1cbiAgICAgICAgY29uc3QgaXNBcnIgPSBfLmlzQXJyYXkodilcbiAgICAgICAgY29uc3QgbW9kZWwgPSBpc0FyciA/IF8uZmlyc3QodikgOiB2O1xuICAgICAgICBpZiAocGFyZW50cy5pbmNsdWRlcyhtb2RlbCkpIHtcbiAgICAgICAgICBtW2tleV0gPSBpc0FyciA/IFtjbGFzc05hbWVdIDogY2xhc3NOYW1lO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmVzID0gXy5tZXJnZShyZXMsIG0pXG4gICAgfSlcbiAgICByZXNbJyddID0gY2xhc3NOYW1lO1xuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG5cbiAgZXhwb3J0IHR5cGUgTWFwcGluZzxUID0ge30+ID0ge1xuICAgIFtQIGluIGtleW9mIFRdPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRkKG86IE9iamVjdCwgcGF0aDogc3RyaW5nLCBtYXBwaW5nOiBNYXBwaW5nID0ge30pIHtcbiAgICBpZiAoIW8gfHwgQXJyYXkuaXNBcnJheShvKSB8fCB0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBjb25zdCBvYmplY3RDbGFzc05hbWUgPSBDTEFTUy5nZXROYW1lKE9iamVjdC5nZXRQcm90b3R5cGVPZihvKS5jb25zdHJ1Y3Rvcik7XG4gICAgY29uc3QgcmVzb2x2ZUNsYXNzID0gQ0xBU1MuZ2V0Qnkob2JqZWN0Q2xhc3NOYW1lKTtcbiAgICBpZiAoIXJlc29sdmVDbGFzcykge1xuICAgICAgaWYgKG9iamVjdENsYXNzTmFtZSAhPT0gJ09iamVjdCcpIHtcbiAgICAgICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IHJlc29sdmUgY2xhc3MgXCIke29iamVjdENsYXNzTmFtZX1cIiB3aGlsZSBtYXBwaW5nLmApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFtYXBwaW5nW3BhdGhdKSBtYXBwaW5nW3BhdGhdID0gQ0xBU1MuZ2V0TmFtZShyZXNvbHZlQ2xhc3MpIGFzIGFueTs7XG4gIH1cblxuICAvKipcbiAgICogVVNFIE9OTFkgSU4gREVWRUxPUE1FTlRcbiAgICogQHBhcmFtIGNcbiAgICogQHBhcmFtIHBhdGhcbiAgICogQHBhcmFtIG1hcHBpbmdcbiAgICogQHBhcmFtIGxldmVsXG4gICAqL1xuICBmdW5jdGlvbiBnZXRNYXBwaW5nTmFpdmUoYzogT2JqZWN0LCBwYXRoID0gJycsIG1hcHBpbmc6IE1hcHBpbmcgPSB7fSwgbGV2ZWwgPSAwKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYykpIHtcbiAgICAgIGMuZm9yRWFjaChjID0+IGdldE1hcHBpbmdOYWl2ZShjLCBwYXRoLCBtYXBwaW5nLCBsZXZlbCkpXG4gICAgICByZXR1cm4gbWFwcGluZztcbiAgICB9XG4gICAgaWYgKCsrbGV2ZWwgPT09IDE2KSByZXR1cm47XG4gICAgYWRkKGMsIHBhdGgsIG1hcHBpbmcpO1xuICAgIGZvciAodmFyIHAgaW4gYykge1xuICAgICAgaWYgKGMuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgY29uc3QgdiA9IGNbcF07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpICYmIHYubGVuZ3RoID4gMCkgeyAvLyByZWR1Y2VyIGFzIGltcG92ZW1lbnRcbiAgICAgICAgICB2LmZvckVhY2goKGVsZW0sIGkpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFBhaHQgPSBbcGF0aCwgcF0uZmlsdGVyKGMgPT4gYy50cmltKCkgIT0gJycpLmpvaW4oJy4nKTtcbiAgICAgICAgICAgIGdldE1hcHBpbmdOYWl2ZShlbGVtLCBjdXJyZW50UGFodCwgbWFwcGluZywgbGV2ZWwpO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBhaHQgPSBbcGF0aCwgcF0uZmlsdGVyKGMgPT4gYy50cmltKCkgIT0gJycpLmpvaW4oJy4nKTtcbiAgICAgICAgICBhZGQodiwgY3VycmVudFBhaHQsIG1hcHBpbmcpO1xuICAgICAgICAgIGdldE1hcHBpbmdOYWl2ZSh2LCBjdXJyZW50UGFodCwgbWFwcGluZywgbGV2ZWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXBwaW5nO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TWFwcGluZ1BhdGhGcm9tKHBhdGhMb2RoYXM6IHN0cmluZykge1xuICAgIGlmICghXy5pc1N0cmluZyhwYXRoTG9kaGFzKSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgY29uc3QgcmVnZXggPSAvXFxbKFswLTlhLXpBLVpdfFxcJ3xcXFwiKSpcXF0vZztcbiAgICBwYXRoTG9kaGFzID0gcGF0aExvZGhhc1xuICAgICAgLnJlcGxhY2UocmVnZXgsICcnKVxuICAgICAgLnJlcGxhY2UoJy4uJywgJy4nKTtcbiAgICBpZiAocGF0aExvZGhhcy5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgIHBhdGhMb2RoYXMgPSBwYXRoTG9kaGFzLnNsaWNlKDEpXG4gICAgfVxuICAgIHJldHVybiBwYXRoTG9kaGFzO1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0TWFwcGluZ0NpcmMoanNvbjogT2JqZWN0LCBtYXBwaW5nOiBNYXBwaW5nID0ge30sIGNpcmN1bGFyOiBDaXJjW10gPSBbXSkge1xuXG4gICAgY29uc3QgbWFpbkNsYXNzRm4gPSAhXy5pc0FycmF5KGpzb24pICYmIENMQVNTLmdldEJ5KG1hcHBpbmdbJyddKTtcblxuICAgIHdhbGsuT2JqZWN0KGpzb24sICh2LCBsb2Rhc2hQYXRoLCBjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHYpICYmICFfLmlzTnVsbCh2KSkge1xuICAgICAgICBjb25zdCBtYXBwaW5nUGF0aCA9IGdldE1hcHBpbmdQYXRoRnJvbShsb2Rhc2hQYXRoKVxuICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQobWFwcGluZ1ttYXBwaW5nUGF0aF0pKSB7XG4gICAgICAgICAgY29uc3QgaXNBcnJheSA9IF8uaXNBcnJheShtYXBwaW5nW21hcHBpbmdQYXRoXSk7XG4gICAgICAgICAgaWYgKCFpc0FycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBpc0FycmF5ID8gXy5maXJzdChtYXBwaW5nW21hcHBpbmdQYXRoXSkgOiBtYXBwaW5nW21hcHBpbmdQYXRoXTtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzRk4gPSBDTEFTUy5nZXRCeShjbGFzc05hbWUpXG4gICAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGNsYXNzRk4pKSB7XG5cbiAgICAgICAgICAgICAgY2hhbmdlVmFsdWUoXy5tZXJnZShuZXcgKGNsYXNzRk4gYXMgYW55KSgpLCB2KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY2lyY3VsYXIuZm9yRWFjaChjID0+IHtcbiAgICAgIGNvbnN0IHJlZiA9IF8uZ2V0KGpzb24sIGMuY2lyY3VyYWxUYXJnZXRQYXRoKVxuICAgICAgXy5zZXQoanNvbiwgYy5wYXRoVG9PYmosIHJlZilcbiAgICB9KVxuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihtYWluQ2xhc3NGbikpIHtcbiAgICAgIGpzb24gPSBfLm1lcmdlKG5ldyAobWFpbkNsYXNzRm4gYXMgYW55KSgpLCBqc29uKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cblxuXG4gIGZ1bmN0aW9uIHNldE1hcHBpbmcoanNvbjogT2JqZWN0LCBtYXBwaW5nOiBNYXBwaW5nID0ge30pIHtcblxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgIHJldHVybiBqc29uLm1hcChqID0+IHtcbiAgICAgICAgcmV0dXJuIHNldE1hcHBpbmcoaiwgbWFwcGluZylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgbWFpbkNsYXNzRm4gPSBDTEFTUy5nZXRCeShtYXBwaW5nWycnXSk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uKSB7XG4gICAgICBpZiAoanNvbi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG5cblxuXG4gICAgICAgIGlmIChfLmlzQXJyYXkoanNvbltrZXldKSkge1xuICAgICAgICAgIGpzb25ba2V5XSA9IGpzb25ba2V5XS5tYXAoYXJyT2JqID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iak1hcHBpbmcgPSBnZXRNb2RlbHNNYXBwaW5nKENMQVNTLmdldEJ5KG1hcHBpbmdba2V5XSkpXG4gICAgICAgICAgICByZXR1cm4gc2V0TWFwcGluZyhhcnJPYmosIG9iak1hcHBpbmcpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KGpzb25ba2V5XSkpIHtcbiAgICAgICAgICBjb25zdCBvYmpNYXBwaW5nID0gZ2V0TW9kZWxzTWFwcGluZyhDTEFTUy5nZXRCeShtYXBwaW5nW2tleV0pKVxuICAgICAgICAgIGpzb25ba2V5XSA9IHNldE1hcHBpbmcoanNvbltrZXldLCBvYmpNYXBwaW5nKVxuICAgICAgICB9XG4gICAgICB9XG5cblxuXG5cblxuICAgIH1cblxuICAgIE9iamVjdFxuICAgICAgLmtleXMobWFwcGluZylcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGtleSAhPT0gJycgJiYga2V5LnNwbGl0KCcuJykubGVuZ3RoID49IDIpXG4gICAgICAuZm9yRWFjaChsb2Rhc1BhdGggPT4ge1xuXG4gICAgICAgIGNvbnN0IG9iak1hcHBpbmcgPSBnZXRNb2RlbHNNYXBwaW5nKENMQVNTLmdldEJ5KG1hcHBpbmdbbG9kYXNQYXRoXSkpXG4gICAgICAgIGNvbnN0IGlucHV0ID0gXy5nZXQoanNvbiwgbG9kYXNQYXRoKVxuICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgICAgY29uc3QgcmVzID0gc2V0TWFwcGluZyhpbnB1dCwgb2JqTWFwcGluZylcbiAgICAgICAgICBfLnNldChqc29uLCBsb2Rhc1BhdGgsIHJlcylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIGlmICghbWFpbkNsYXNzRm4pIHtcbiAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbiAgICByZXR1cm4gXy5tZXJnZShuZXcgKG1haW5DbGFzc0ZuIGFzIGFueSkoKSwganNvbilcbiAgfVxuXG5cblxuXG4gIGV4cG9ydCB0eXBlIE1vZGVsVmFsdWU8VD4gPSB7XG4gICAgLyoqXG4gICAgICogSW5zaWRlIG1vZGVscyB0eXBlc1xuICAgICAqL1xuICAgIFtwcm9wTmFtZSBpbiBrZXlvZiBUXT86IFRbcHJvcE5hbWVdO1xuICB9O1xuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQgPSBPYmplY3Q+KFxuICAgIGRlZmF1bHRNb2RlbFZhbHVlcz86IE1vZGVsVmFsdWU8VD4sXG4gICAgbWFwcGluZz86IE1hcHBpbmc8VD5cbiAgKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG5cbiAgICAgIGlmICghXy5pc0FycmF5KHRhcmdldFtTWU1CT0wuTU9ERUxTX01BUFBJTkddKSkge1xuICAgICAgICB0YXJnZXRbU1lNQk9MLk1PREVMU19NQVBQSU5HXSA9IFtdO1xuICAgICAgfVxuXG4gICAgICAodGFyZ2V0W1NZTUJPTC5NT0RFTFNfTUFQUElOR10gYXMgYW55W10pLnB1c2goeyAnJzogQ0xBU1MuZ2V0TmFtZSh0YXJnZXQpIH0pO1xuICAgICAgaWYgKF8uaXNPYmplY3QobWFwcGluZykpIHtcbiAgICAgICAgdGFyZ2V0W1NZTUJPTC5NT0RFTFNfTUFQUElOR10gPSAodGFyZ2V0W1NZTUJPTC5NT0RFTFNfTUFQUElOR10gYXMgYW55W10pLmNvbmNhdChtYXBwaW5nKVxuICAgICAgICBPYmplY3Qua2V5cyhtYXBwaW5nKVxuICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gbWFwcGluZztcbiAgICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHYpIHx8IF8uaXNGdW5jdGlvbih2KSkge1xuICAgICAgICAgICAgICB0aHJvdyBgXG5cblxuICAgICAgICAgICAgQ2xhc3M6ICcke3RhcmdldC5uYW1lfSdcbltuZzJyZXN0XSBCYWQgbWFwcGluZyB2YWx1ZSBmb3IgcGF0aDogJHtrZXl9ICwgcGxlYXNlIHVzZSB0eXBlOiA8c3RyaW5nPiBvciBbPHN0cmluZz5dXG5gO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cblxuICAgICAgaWYgKF8uaXNPYmplY3QoZGVmYXVsdE1vZGVsVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB0b01lcmdlID0ge307XG4gICAgICAgIGNvbnN0IGRlc2NyaWJlZFRhcmdldCA9IENMQVNTXG4gICAgICAgICAgLmRlc2NyaWJlUHJvcGVyaXRlcyh0YXJnZXQpXG4gICAgICAgICAgLmZpbHRlcihwcm9wID0+IC9eKFthLXpBLVowLTldfFxcX3xcXCMpKyQvLnRlc3QocHJvcCkpXG5cbiAgICAgICAgZGVzY3JpYmVkVGFyZ2V0LmZvckVhY2gocHJvcERlZkluQ29uc3RyID0+IHtcbiAgICAgICAgICBpZiAoZGVmYXVsdE1vZGVsVmFsdWVzW3Byb3BEZWZJbkNvbnN0cl0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgXG5cbiAgICAgICAgICAgIENPTkZMSUNUOiBkZWZhdWx0IHZhbHVlIGZvciBwcm9wZXJ0eTogXCIke3Byb3BEZWZJbkNvbnN0cn1cIlxuICAgICAgICAgICAgaW4gY2xhc3MgXCIke3RhcmdldC5uYW1lfVwiIGFscmVhZHkgZGVmaW5lZCBhcyB0eXBlc2NyaXB0XG4gICAgICAgICAgICBkZWZhdWx0IGNsYXNzIHByb3BydHkgdmFsdWUuXG5cbiAgICAgICAgICAgIGApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvTWVyZ2VbcHJvcERlZkluQ29uc3RyXSA9IG51bGw7IC8vIFRPRE8gZnJvbSB0b1N0cmluZyBJIGNhbid0IGtub3cgdGhhdFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cblxuXG4gICAgICAgIHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0gPSBfLm1lcmdlKHRvTWVyZ2UsIGRlZmF1bHRNb2RlbFZhbHVlcyk7XG5cbiAgICAgICAgY29uc3QgcHJvcHNUb09tbWl0ID0gT2JqZWN0XG4gICAgICAgICAgLmtleXModGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXSlcbiAgICAgICAgICAuZmlsdGVyKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0XG4gICAgICAgICAgICAgIC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LnByb3RvdHlwZSwga2V5KTtcbiAgICAgICAgICAgIHJldHVybiAhIWRlc2NyaXB0b3I7XG4gICAgICAgICAgfSk7XG4gICAgICAgIF8ubWVyZ2UodGFyZ2V0LnByb3RvdHlwZSwgXy5vbWl0KHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0sIHByb3BzVG9PbW1pdCkpO1xuXG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bmcyLXJlc3QgbGliL21hcHBpbmcudHMiXX0=
@@ -167,4 +167,4 @@ export var Models;
167
167
  })(Models || (Models = {}));
168
168
  ;
169
169
  ({}); // @--end-of-file-for-module=ng2-rest lib/models.ts
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLEtBQVcsTUFBTSxDQXNTdEI7QUF0U0QsV0FBaUIsTUFBTTtJQUtQLG1CQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUMxQyxrQkFBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsa0JBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFBO0lBNEVwRCxDQUFDO0lBS0QsQ0FBQztJQVdELEVBQUUsQ0FBQztJQUVKLE1BQXNCLFFBQVE7UUFDbEIsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEdBQUcsS0FBSztZQUN4QyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixJQUFJO29CQUNGLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FB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IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5pbXBvcnQgeyBSZXN0SGVhZGVycyB9IGZyb20gJy4vcmVzdC1oZWFkZXJzJztcbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuL3Jlc3QuY2xhc3MnO1xuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnLi9jb29raWUnO1xuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJy4vbWFwcGluZyc7XG5pbXBvcnQgeyBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgTW9kZWxzIGFzIEhlbHBlcnNNb2RlbHMgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvYnJvd3NlcidcbmltcG9ydCB7IEpTT04xMCwgQ2lyYyB9IGZyb20gJ2pzb24xMC9icm93c2VyJztcbmltcG9ydCB7IFJlcXVlc3RDYWNoZSB9IGZyb20gJy4vcmVxdWVzdC1jYWNoZSc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDb25maWdNb2RlbHMgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgTW9kZWxzIHtcblxuICBleHBvcnQgaW1wb3J0IEh0dHBNZXRob2QgPSBDb25maWdNb2RlbHMuSHR0cE1ldGhvZDtcbiAgZXhwb3J0IGltcG9ydCBQYXJhbVR5cGUgPSBDb25maWdNb2RlbHMuUGFyYW1UeXBlO1xuXG4gIGV4cG9ydCBpbXBvcnQgTWV0aG9kQ29uZmlnID0gSGVscGVyc01vZGVscy5NZXRob2RDb25maWc7XG4gIGV4cG9ydCBpbXBvcnQgQ2xhc3NDb25maWcgPSBIZWxwZXJzTW9kZWxzLkNsYXNzQ29uZmlnO1xuICBleHBvcnQgaW1wb3J0IFBhcmFtQ29uZmlnID0gSGVscGVyc01vZGVscy5QYXJhbUNvbmZpZ1xuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBIYW5kbGVSZXN1bHRPcHRpb25zIHtcbiAgICByZXM6IE1vZGVscy5Nb2NrUmVzcG9uc2U7XG4gICAgbWV0aG9kOiBNb2RlbHMuSHR0cE1ldGhvZDtcbiAgICBqb2JpZD86IG51bWJlcjtcbiAgICBpc0FycmF5PzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSGFuZGxlUmVzdWx0U291cmNlUmVxdWVzdE9wdGlvbnMge1xuICAgIHVybDogc3RyaW5nLFxuICAgIG1ldGhvZDogTW9kZWxzLkh0dHBNZXRob2QsXG5cbiAgICBib2R5OiBhbnksXG4gICAgaXNBcnJheTogYm9vbGVhbixcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIEJhY2tlbmRFcnJvciA9IHtcbiAgICBtc2c/OiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmdbXTtcbiAgICBkYXRhOiBhbnk7XG4gIH1cblxuICBleHBvcnQgdHlwZSBNZXRhUmVxdWVzdCA9IHtcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZW5kcG9pbnQ6IHN0cmluZztcbiAgICBlbnRpdHk6IE1hcHBpbmcuTWFwcGluZztcbiAgICBjaXJjdWxhcjogQ2lyY1tdO1xuICB9XG4gIGV4cG9ydCB0eXBlIEh0dHBDb2RlID0gMjAwIHwgNDAwIHwgNDAxIHwgNDA0IHwgNTAwO1xuXG4gIGV4cG9ydCB0eXBlIFByb21pc2VPYnNlcnZhYmxlTWl4PFQ+ID0gUHJvbWlzZTxUPiAmIHtcbiAgICBjYWNoZT86IFJlcXVlc3RDYWNoZSxcbiAgICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgTWV0aG9kV2l0aG91dEJvZHk8RSwgVCwgUiA9IFByb21pc2VPYnNlcnZhYmxlTWl4PEU+PiA9IChwYXJhbXM/OiBVcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM/OiBib29sZWFuKSA9PiBSXG4gIGV4cG9ydCB0eXBlIE1ldGhvZFdpdGhCb2R5PEUsIFQsIFIgPSBQcm9taXNlT2JzZXJ2YWJsZU1peDxFPj4gPSAoaXRlbT86IFQsIHBhcmFtcz86IFVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZVBhcmFtcz86IGJvb2xlYW4pID0+IFJcbiAgZXhwb3J0IHR5cGUgUmVwbGF5RGF0YSA9IHtcbiAgICBzdWJqZWN0OiBTdWJqZWN0PGFueT4sXG4gICAgZGF0YTogeyB1cmw6IHN0cmluZywgYm9keTogc3RyaW5nLCBoZWFkZXJzOiBSZXN0SGVhZGVycywgaXNBcnJheTogYm9vbGVhbjsgfSxcbiAgICAvKipcbiAgICAgKiBqb2JpZFxuICAgICAqL1xuICAgIGlkOiBudW1iZXI7XG4gIH07XG4gIGV4cG9ydCB0eXBlIFJlcVBhcmFtcyA9IHsgdXJsOiBzdHJpbmcsIG1ldGhvZDogQ29uZmlnTW9kZWxzLkh0dHBNZXRob2QsIGhlYWRlcnM/OiBSZXN0SGVhZGVycywgYm9keT86IGFueSwgam9iaWQ6IG51bWJlciwgaXNBcnJheTogYm9vbGVhbiB9O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VNb2RlbDxBLCBUQT4ge1xuICAgIG1vZGVsOiAocGF0aE1vZGVscz86IE9iamVjdCwgcmVzcG9uc2VPYmplY3RUeXBlPzogRnVuY3Rpb24pID0+IFJlc3Q8QSwgVEE+LFxuICAgIHJlcGxheTogKG1ldGhvZDogQ29uZmlnTW9kZWxzLkh0dHBNZXRob2QpID0+IHZvaWQ7XG4gICAgaGVhZGVyczogUmVzdEhlYWRlcnM7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIE5nMlJlc3RNZXRob2RzPEUsIFQ+IHtcbiAgICBnZXQ6IE1ldGhvZFdpdGhvdXRCb2R5PEUsIFQ+O1xuICAgIHBvc3Q6IE1ldGhvZFdpdGhCb2R5PEUsIFQ+O1xuICAgIHB1dDogTWV0aG9kV2l0aEJvZHk8RSwgVD47XG4gICAgcGF0Y2g6IE1ldGhvZFdpdGhCb2R5PEUsIFQ+O1xuICAgIGhlYWQ6IE1ldGhvZFdpdGhvdXRCb2R5PEUsIFQ+O1xuICAgIGRlbGV0ZTogTWV0aG9kV2l0aG91dEJvZHk8RSwgVD47XG4gICAganNvbnA6IE1ldGhvZFdpdGhvdXRCb2R5PEUsIFQ+O1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgTW9ja0NvbnRyb2xsZXIgPSAoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgbWV0aG9kOiBDb25maWdNb2RlbHMuSHR0cE1ldGhvZCxcbiAgICBoZWFkZXJzPzogUmVzdEhlYWRlcnMsXG4gICAgYm9keT86IGFueVxuICApID0+IE1vY2tSZXNwb25zZTtcblxuICBleHBvcnQgdHlwZSBNb2NrSHR0cCA9IChNb2NrUmVzcG9uc2UgfCBNb2NrQ29udHJvbGxlcik7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGbk1ldGhvZHNIdHRwPFQsIFRBPiBleHRlbmRzIE5nMlJlc3RNZXRob2RzPEh0dHBSZXNwb25zZTxUPiwgVD4ge1xuICAgIGFycmF5OiBOZzJSZXN0TWV0aG9kczxIdHRwUmVzcG9uc2U8VEE+LCBUQT47XG4gIH07XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGbk1ldGhvZHNIdHRwV2l0aE1vY2s8VCwgVEE+IGV4dGVuZHMgTmcyUmVzdE1ldGhvZHM8SHR0cFJlc3BvbnNlPFQ+LCBUPiB7XG4gICAgYXJyYXk6IE5nMlJlc3RNZXRob2RzPEh0dHBSZXNwb25zZTxUQT4sIFRBPjtcbiAgICBtb2NrKG1vY2s6IE1vY2tIdHRwLCBjb2RlOiBIdHRwQ29kZSk6IEZuTWV0aG9kc0h0dHA8VCwgVEE+O1xuICB9O1xuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIE5lc3RlZFBhcmFtcyB7XG4gICAgW3BhcmFtczogc3RyaW5nXTogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBVcmxQYXJhbXMge1xuICAgIFt1cmxNb2RlbE5hbWU6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBSZWdFeHAgfCBPYmplY3Q7XG4gICAgcmVnZXg/OiBSZWdFeHA7XG4gIH1bXTtcblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUJvZHkge1xuICAgIHByb3RlY3RlZCB0b0pTT04oZGF0YSwgaXNKU09OQXJyYXkgPSBmYWxzZSkge1xuICAgICAgbGV0IHIgPSBpc0pTT05BcnJheSA/IFtdIDoge307XG4gICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgciA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gciBhcyBhbnk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEh0dHBCb2R5PFQ+IGV4dGVuZHMgQmFzZUJvZHkge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNwb25zZVRleHQ6IHN0cmluZyB8IEJsb2IsIHByaXZhdGUgaXNBcnJheSA9IGZhbHNlLFxuICAgICAgcHJpdmF0ZSBlbnRpdHk6IE1hcHBpbmcuTWFwcGluZyxcbiAgICAgIHByaXZhdGUgY2lyY3VsYXI6IENpcmNbXVxuICAgICkge1xuICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJsb2IoKTogQmxvYiB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZVRleHQgYXMgQmxvYjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5WYWx1ZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICghSGVscGVycy5pc0Jsb2IodGhpcy5yZXNwb25zZVRleHQpKSB7XG4gICAgICAgIHJldHVybiBbJ29rJywgJ3RydWUnXS5pbmNsdWRlcygodGhpcy5yZXNwb25zZVRleHQgYXMgc3RyaW5nKS50cmltKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbnVtZXJpY1ZhbHVlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoIUhlbHBlcnMuaXNCbG9iKHRoaXMucmVzcG9uc2VUZXh0KSkge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMucmVzcG9uc2VUZXh0Py50cmltKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmF3SnNvbigpOiBQYXJ0aWFsPFQ+IHtcbiAgICAgIGlmICghSGVscGVycy5pc0Jsb2IodGhpcy5yZXNwb25zZVRleHQpKSB7XG4gICAgICAgIGxldCByZXMgPSB0aGlzLnRvSlNPTih0aGlzLnJlc3BvbnNlVGV4dCwgdGhpcy5pc0FycmF5KTtcbiAgICAgICAgaWYgKHRoaXMuY2lyY3VsYXIgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmNpcmN1bGFyKSkge1xuICAgICAgICAgIHJlcyA9IEpTT04xMC5wYXJzZShKU09OLnN0cmluZ2lmeShyZXMpLCB0aGlzLmNpcmN1bGFyKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGpzb24oKTogVCB7XG4gICAgICBpZiAoIUhlbHBlcnMuaXNCbG9iKHRoaXMucmVzcG9uc2VUZXh0KSkge1xuICAgICAgICBpZiAodGhpcy5lbnRpdHkgJiYgdHlwZW9mIHRoaXMuZW50aXR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5KCk7IC8vIEBMQVNUXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW50aXR5ICYmIHR5cGVvZiB0aGlzLmVudGl0eSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy50b0pTT04odGhpcy5yZXNwb25zZVRleHQsIHRoaXMuaXNBcnJheSk7XG4gICAgICAgICAgcmV0dXJuIE1hcHBpbmcuZW5jb2RlKGpzb24sIHRoaXMuZW50aXR5LCB0aGlzLmNpcmN1bGFyKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlcyA9IHRoaXMudG9KU09OKHRoaXMucmVzcG9uc2VUZXh0LCB0aGlzLmlzQXJyYXkpO1xuICAgICAgICBpZiAodGhpcy5jaXJjdWxhciAmJiBBcnJheS5pc0FycmF5KHRoaXMuY2lyY3VsYXIpKSB7XG4gICAgICAgICAgcmVzID0gSlNPTjEwLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlcyksIHRoaXMuY2lyY3VsYXIpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB1bmRlZmluZWQgd2hlbiBibG9iXG4gICAgICovXG4gICAgcHVibGljIGdldCB0ZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoIUhlbHBlcnMuaXNCbG9iKHRoaXMucmVzcG9uc2VUZXh0KSkge1xuICAgICAgICByZXR1cm4gKHRoaXMucmVzcG9uc2VUZXh0IGFzIHN0cmluZykucmVwbGFjZSgvXlxcXCIvLCAnJykucmVwbGFjZSgvXFxcIiQvLCAnJylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRXJyb3JCb2R5IGV4dGVuZHMgQmFzZUJvZHkge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YSkge1xuICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGpzb24oKTogT2JqZWN0IHtcbiAgICAgIHJldHVybiB0aGlzLnRvSlNPTih0aGlzLmRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHRleHQoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhXG4gICAgfVxuICB9XG5cblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlc3BvbnNlPFQ+IHtcbiAgICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IGNvb2tpZXMgPSBDb29raWUuSW5zdGFuY2U7XG5cbiAgICBwdWJsaWMgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICByZXR1cm4gQmFzZVJlc3BvbnNlLmNvb2tpZXM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIHJlc3BvbnNlVGV4dD86IHN0cmluZyB8IEJsb2IsXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVycz86IFJlc3RIZWFkZXJzLFxuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NvZGU/OiBIdHRwQ29kZSB8IG51bWJlcixcbiAgICAgIHB1YmxpYyBpc0FycmF5ID0gZmFsc2VcbiAgICApIHtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgSHR0cFJlc3BvbnNlPFQ+IGV4dGVuZHMgQmFzZVJlc3BvbnNlPFQ+IHtcbiAgICBwdWJsaWMgYm9keT86IEh0dHBCb2R5PFQ+O1xuXG5cblxuXG4gICAgcnE6IFJlcXVlc3RDYWNoZTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBzb3VyY2VSZXF1ZXN0OiBNb2RlbHMuSGFuZGxlUmVzdWx0U291cmNlUmVxdWVzdE9wdGlvbnMsXG4gICAgICBwdWJsaWMgcmVzcG9uc2VUZXh0Pzogc3RyaW5nIHwgQmxvYixcbiAgICAgIHB1YmxpYyBoZWFkZXJzPzogUmVzdEhlYWRlcnMsXG4gICAgICBwdWJsaWMgc3RhdHVzQ29kZT86IEh0dHBDb2RlIHwgbnVtYmVyLFxuICAgICAgcHVibGljIGVudGl0eT86IE1hcHBpbmcuTWFwcGluZyB8IEZ1bmN0aW9uLFxuICAgICAgcHVibGljIGNpcmN1bGFyPzogQ2lyY1tdLFxuICAgICAgcHVibGljIGpvYmlkPzogbnVtYmVyLFxuICAgICAgcHVibGljIGlzQXJyYXkgPSBmYWxzZSxcbiAgICApIHtcblxuXG5cbiAgICAgIHN1cGVyKHJlc3BvbnNlVGV4dCwgaGVhZGVycywgc3RhdHVzQ29kZSwgaXNBcnJheSk7XG5cbiAgICAgIHRoaXMuaW5pdCgpXG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5ID09PSAnc3RyaW5nJykge1xuXG4gICAgICAgIGxldCBlbnRpdHlKU09OID0gdGhpcy5oZWFkZXJzLmdldEFsbCh0aGlzLmVudGl0eSlcbiAgICAgICAgaWYgKCEhZW50aXR5SlNPTikge1xuICAgICAgICAgIHRoaXMuZW50aXR5ID0gSlNPTi5wYXJzZShlbnRpdHlKU09OLmpvaW4oKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jaXJjdWxhciA9PT0gJ3N0cmluZycpIHtcblxuICAgICAgICBsZXQgY2lyY3VyYWxKU09OID0gdGhpcy5oZWFkZXJzLmdldEFsbCh0aGlzLmNpcmN1bGFyKTtcbiAgICAgICAgaWYgKCEhY2lyY3VyYWxKU09OKSB7XG4gICAgICAgICAgdGhpcy5jaXJjdWxhciA9IEpTT04ucGFyc2UoY2lyY3VyYWxKU09OLmpvaW4oKSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgdGhpcy5ib2R5ID0gbmV3IEh0dHBCb2R5KHRoaXMucmVzcG9uc2VUZXh0LCB0aGlzLmlzQXJyYXksIHRoaXMuZW50aXR5LCB0aGlzLmNpcmN1bGFyKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgZ2V0IGNhY2hlKCkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5ycSkpIHtcbiAgICAgICAgdGhpcy5ycSA9IG5ldyBSZXF1ZXN0Q2FjaGUodGhpcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFJlcXVlc3RDYWNoZSh0aGlzKTtcbiAgICB9XG5cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2VFcnJvciBleHRlbmRzIEJhc2VSZXNwb25zZTxhbnk+IHtcbiAgICBwcml2YXRlIGJvZHk6IEVycm9yQm9keTtcblxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICByZXNwb25zZVRleHQ/OiBzdHJpbmcsXG4gICAgICBoZWFkZXJzPzogUmVzdEhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlPzogSHR0cENvZGUgfCBudW1iZXIsXG4gICAgICBwdWJsaWMgam9iaWQ/OiBudW1iZXIsXG4gICAgKSB7XG4gICAgICBzdXBlcihyZXNwb25zZVRleHQsIGhlYWRlcnMsIHN0YXR1c0NvZGUpO1xuICAgICAgdGhpcy5ib2R5ID0gbmV3IEVycm9yQm9keShyZXNwb25zZVRleHQpXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBNb2NrUmVzcG9uc2Uge1xuICAgIGRhdGE/OiBhbnk7XG4gICAgY29kZT86IEh0dHBDb2RlO1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIGhlYWRlcnM/OiBSZXN0SGVhZGVycztcbiAgICBqb2JpZD86IG51bWJlcjtcbiAgICBpc0FycmF5OiBib29sZWFuO1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgUmVzcG9uc2VUeXBlQXhpb3MgPSAnYmxvYicgfCAndGV4dCdcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvbW9kZWxzLnRzIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxLQUFXLE1BQU0sQ0FzU3RCO0FBdFNELFdBQWlCLE1BQU07SUFLUCxtQkFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDMUMsa0JBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3hDLGtCQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQTtJQTRFcEQsQ0FBQztJQUtELENBQUM7SUFXRCxFQUFFLENBQUM7SUFFSixNQUFzQixRQUFRO1FBQ2xCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxHQUFHLEtBQUs7WUFDeEMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsSUFBSTtvQkFDRixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMs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IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL2Jyb3dzZXInO1xuaW1wb3J0IHsgUmVzdEhlYWRlcnMgfSBmcm9tICcuL3Jlc3QtaGVhZGVycyc7XG5pbXBvcnQgeyBSZXN0IH0gZnJvbSAnLi9yZXN0LmNsYXNzJztcbmltcG9ydCB7IENvb2tpZSB9IGZyb20gJy4vY29va2llJztcbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xuaW1wb3J0IHsgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IE1vZGVscyBhcyBIZWxwZXJzTW9kZWxzIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL2Jyb3dzZXInXG5pbXBvcnQgeyBKU09OMTAsIENpcmMgfSBmcm9tICdqc29uMTAvYnJvd3Nlcic7XG5pbXBvcnQgeyBSZXF1ZXN0Q2FjaGUgfSBmcm9tICcuL3JlcXVlc3QtY2FjaGUnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQ29uZmlnTW9kZWxzIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbi8qICovXG4vKiAqL1xuICBcblxuXG5leHBvcnQgbmFtZXNwYWNlIE1vZGVscyB7XG5cbiAgZXhwb3J0IGltcG9ydCBIdHRwTWV0aG9kID0gQ29uZmlnTW9kZWxzLkh0dHBNZXRob2Q7XG4gIGV4cG9ydCBpbXBvcnQgUGFyYW1UeXBlID0gQ29uZmlnTW9kZWxzLlBhcmFtVHlwZTtcblxuICBleHBvcnQgaW1wb3J0IE1ldGhvZENvbmZpZyA9IEhlbHBlcnNNb2RlbHMuTWV0aG9kQ29uZmlnO1xuICBleHBvcnQgaW1wb3J0IENsYXNzQ29uZmlnID0gSGVscGVyc01vZGVscy5DbGFzc0NvbmZpZztcbiAgZXhwb3J0IGltcG9ydCBQYXJhbUNvbmZpZyA9IEhlbHBlcnNNb2RlbHMuUGFyYW1Db25maWdcblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSGFuZGxlUmVzdWx0T3B0aW9ucyB7XG4gICAgcmVzOiBNb2RlbHMuTW9ja1Jlc3BvbnNlO1xuICAgIG1ldGhvZDogTW9kZWxzLkh0dHBNZXRob2Q7XG4gICAgam9iaWQ/OiBudW1iZXI7XG4gICAgaXNBcnJheT86IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEhhbmRsZVJlc3VsdFNvdXJjZVJlcXVlc3RPcHRpb25zIHtcbiAgICB1cmw6IHN0cmluZyxcbiAgICBtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kLFxuXG4gICAgYm9keTogYW55LFxuICAgIGlzQXJyYXk6IGJvb2xlYW4sXG4gIH1cblxuICBleHBvcnQgdHlwZSBCYWNrZW5kRXJyb3IgPSB7XG4gICAgbXNnPzogc3RyaW5nO1xuICAgIHN0YWNrPzogc3RyaW5nW107XG4gICAgZGF0YTogYW55O1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgTWV0YVJlcXVlc3QgPSB7XG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGVuZHBvaW50OiBzdHJpbmc7XG4gICAgZW50aXR5OiBNYXBwaW5nLk1hcHBpbmc7XG4gICAgY2lyY3VsYXI6IENpcmNbXTtcbiAgfVxuICBleHBvcnQgdHlwZSBIdHRwQ29kZSA9IDIwMCB8IDQwMCB8IDQwMSB8IDQwNCB8IDUwMDtcblxuICBleHBvcnQgdHlwZSBQcm9taXNlT2JzZXJ2YWJsZU1peDxUPiA9IFByb21pc2U8VD4gJiB7XG4gICAgY2FjaGU/OiBSZXF1ZXN0Q2FjaGUsXG4gICAgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPjtcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIE1ldGhvZFdpdGhvdXRCb2R5PEUsIFQsIFIgPSBQcm9taXNlT2JzZXJ2YWJsZU1peDxFPj4gPSAocGFyYW1zPzogVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbikgPT4gUlxuICBleHBvcnQgdHlwZSBNZXRob2RXaXRoQm9keTxFLCBULCBSID0gUHJvbWlzZU9ic2VydmFibGVNaXg8RT4+ID0gKGl0ZW0/OiBULCBwYXJhbXM/OiBVcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM/OiBib29sZWFuKSA9PiBSXG4gIGV4cG9ydCB0eXBlIFJlcGxheURhdGEgPSB7XG4gICAgc3ViamVjdDogU3ViamVjdDxhbnk+LFxuICAgIGRhdGE6IHsgdXJsOiBzdHJpbmcsIGJvZHk6IHN0cmluZywgaGVhZGVyczogUmVzdEhlYWRlcnMsIGlzQXJyYXk6IGJvb2xlYW47IH0sXG4gICAgLyoqXG4gICAgICogam9iaWRcbiAgICAgKi9cbiAgICBpZDogbnVtYmVyO1xuICB9O1xuICBleHBvcnQgdHlwZSBSZXFQYXJhbXMgPSB7IHVybDogc3RyaW5nLCBtZXRob2Q6IENvbmZpZ01vZGVscy5IdHRwTWV0aG9kLCBoZWFkZXJzPzogUmVzdEhlYWRlcnMsIGJvZHk/OiBhbnksIGpvYmlkOiBudW1iZXIsIGlzQXJyYXk6IGJvb2xlYW4gfTtcblxuICBleHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTW9kZWw8QSwgVEE+IHtcbiAgICBtb2RlbDogKHBhdGhNb2RlbHM/OiBPYmplY3QsIHJlc3BvbnNlT2JqZWN0VHlwZT86IEZ1bmN0aW9uKSA9PiBSZXN0PEEsIFRBPixcbiAgICByZXBsYXk6IChtZXRob2Q6IENvbmZpZ01vZGVscy5IdHRwTWV0aG9kKSA9PiB2b2lkO1xuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBOZzJSZXN0TWV0aG9kczxFLCBUPiB7XG4gICAgZ2V0OiBNZXRob2RXaXRob3V0Qm9keTxFLCBUPjtcbiAgICBwb3N0OiBNZXRob2RXaXRoQm9keTxFLCBUPjtcbiAgICBwdXQ6IE1ldGhvZFdpdGhCb2R5PEUsIFQ+O1xuICAgIHBhdGNoOiBNZXRob2RXaXRoQm9keTxFLCBUPjtcbiAgICBoZWFkOiBNZXRob2RXaXRob3V0Qm9keTxFLCBUPjtcbiAgICBkZWxldGU6IE1ldGhvZFdpdGhvdXRCb2R5PEUsIFQ+O1xuICAgIGpzb25wOiBNZXRob2RXaXRob3V0Qm9keTxFLCBUPjtcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIE1vY2tDb250cm9sbGVyID0gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG1ldGhvZDogQ29uZmlnTW9kZWxzLkh0dHBNZXRob2QsXG4gICAgaGVhZGVycz86IFJlc3RIZWFkZXJzLFxuICAgIGJvZHk/OiBhbnlcbiAgKSA9PiBNb2NrUmVzcG9uc2U7XG5cbiAgZXhwb3J0IHR5cGUgTW9ja0h0dHAgPSAoTW9ja1Jlc3BvbnNlIHwgTW9ja0NvbnRyb2xsZXIpO1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRm5NZXRob2RzSHR0cDxULCBUQT4gZXh0ZW5kcyBOZzJSZXN0TWV0aG9kczxIdHRwUmVzcG9uc2U8VD4sIFQ+IHtcbiAgICBhcnJheTogTmcyUmVzdE1ldGhvZHM8SHR0cFJlc3BvbnNlPFRBPiwgVEE+O1xuICB9O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRm5NZXRob2RzSHR0cFdpdGhNb2NrPFQsIFRBPiBleHRlbmRzIE5nMlJlc3RNZXRob2RzPEh0dHBSZXNwb25zZTxUPiwgVD4ge1xuICAgIGFycmF5OiBOZzJSZXN0TWV0aG9kczxIdHRwUmVzcG9uc2U8VEE+LCBUQT47XG4gICAgbW9jayhtb2NrOiBNb2NrSHR0cCwgY29kZTogSHR0cENvZGUpOiBGbk1ldGhvZHNIdHRwPFQsIFRBPjtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBOZXN0ZWRQYXJhbXMge1xuICAgIFtwYXJhbXM6IHN0cmluZ106IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXJsUGFyYW1zIHtcbiAgICBbdXJsTW9kZWxOYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgUmVnRXhwIHwgT2JqZWN0O1xuICAgIHJlZ2V4PzogUmVnRXhwO1xuICB9W107XG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VCb2R5IHtcbiAgICBwcm90ZWN0ZWQgdG9KU09OKGRhdGEsIGlzSlNPTkFycmF5ID0gZmFsc2UpIHtcbiAgICAgIGxldCByID0gaXNKU09OQXJyYXkgPyBbXSA6IHt9O1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHIgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICB9IGNhdGNoIChlKSB7IH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHIgYXMgYW55O1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBIdHRwQm9keTxUPiBleHRlbmRzIEJhc2VCb2R5IHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzcG9uc2VUZXh0OiBzdHJpbmcgfCBCbG9iLCBwcml2YXRlIGlzQXJyYXkgPSBmYWxzZSxcbiAgICAgIHByaXZhdGUgZW50aXR5OiBNYXBwaW5nLk1hcHBpbmcsXG4gICAgICBwcml2YXRlIGNpcmN1bGFyOiBDaXJjW11cbiAgICApIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBibG9iKCk6IEJsb2Ige1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VUZXh0IGFzIEJsb2I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuVmFsdWUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoIUhlbHBlcnMuaXNCbG9iKHRoaXMucmVzcG9uc2VUZXh0KSkge1xuICAgICAgICByZXR1cm4gWydvaycsICd0cnVlJ10uaW5jbHVkZXMoKHRoaXMucmVzcG9uc2VUZXh0IGFzIHN0cmluZykudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG51bWVyaWNWYWx1ZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKCFIZWxwZXJzLmlzQmxvYih0aGlzLnJlc3BvbnNlVGV4dCkpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLnJlc3BvbnNlVGV4dD8udHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJhd0pzb24oKTogUGFydGlhbDxUPiB7XG4gICAgICBpZiAoIUhlbHBlcnMuaXNCbG9iKHRoaXMucmVzcG9uc2VUZXh0KSkge1xuICAgICAgICBsZXQgcmVzID0gdGhpcy50b0pTT04odGhpcy5yZXNwb25zZVRleHQsIHRoaXMuaXNBcnJheSk7XG4gICAgICAgIGlmICh0aGlzLmNpcmN1bGFyICYmIEFycmF5LmlzQXJyYXkodGhpcy5jaXJjdWxhcikpIHtcbiAgICAgICAgICByZXMgPSBKU09OMTAucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVzKSwgdGhpcy5jaXJjdWxhcilcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBqc29uKCk6IFQge1xuICAgICAgaWYgKCFIZWxwZXJzLmlzQmxvYih0aGlzLnJlc3BvbnNlVGV4dCkpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5ICYmIHR5cGVvZiB0aGlzLmVudGl0eSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmVudGl0eSgpOyAvLyBATEFTVFxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVudGl0eSAmJiB0eXBlb2YgdGhpcy5lbnRpdHkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QganNvbiA9IHRoaXMudG9KU09OKHRoaXMucmVzcG9uc2VUZXh0LCB0aGlzLmlzQXJyYXkpO1xuICAgICAgICAgIHJldHVybiBNYXBwaW5nLmVuY29kZShqc29uLCB0aGlzLmVudGl0eSwgdGhpcy5jaXJjdWxhcikgYXMgYW55O1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXMgPSB0aGlzLnRvSlNPTih0aGlzLnJlc3BvbnNlVGV4dCwgdGhpcy5pc0FycmF5KTtcbiAgICAgICAgaWYgKHRoaXMuY2lyY3VsYXIgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmNpcmN1bGFyKSkge1xuICAgICAgICAgIHJlcyA9IEpTT04xMC5wYXJzZShKU09OLnN0cmluZ2lmeShyZXMpLCB0aGlzLmNpcmN1bGFyKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdW5kZWZpbmVkIHdoZW4gYmxvYlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKCFIZWxwZXJzLmlzQmxvYih0aGlzLnJlc3BvbnNlVGV4dCkpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJlc3BvbnNlVGV4dCBhcyBzdHJpbmcpLnJlcGxhY2UoL15cXFwiLywgJycpLnJlcGxhY2UoL1xcXCIkLywgJycpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEVycm9yQm9keSBleHRlbmRzIEJhc2VCb2R5IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGEpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBqc29uKCk6IE9iamVjdCB7XG4gICAgICByZXR1cm4gdGhpcy50b0pTT04odGhpcy5kYXRhKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB0ZXh0KCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YVxuICAgIH1cbiAgfVxuXG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZXNwb25zZTxUPiB7XG4gICAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBjb29raWVzID0gQ29va2llLkluc3RhbmNlO1xuXG4gICAgcHVibGljIGdldCBjb29raWVzKCkge1xuICAgICAgcmV0dXJuIEJhc2VSZXNwb25zZS5jb29raWVzO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyByZXNwb25zZVRleHQ/OiBzdHJpbmcgfCBCbG9iLFxuICAgICAgcHVibGljIHJlYWRvbmx5IGhlYWRlcnM/OiBSZXN0SGVhZGVycyxcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNDb2RlPzogSHR0cENvZGUgfCBudW1iZXIsXG4gICAgICBwdWJsaWMgaXNBcnJheSA9IGZhbHNlXG4gICAgKSB7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEh0dHBSZXNwb25zZTxUPiBleHRlbmRzIEJhc2VSZXNwb25zZTxUPiB7XG4gICAgcHVibGljIGJvZHk/OiBIdHRwQm9keTxUPjtcblxuXG5cblxuICAgIHJxOiBSZXF1ZXN0Q2FjaGU7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgc291cmNlUmVxdWVzdDogTW9kZWxzLkhhbmRsZVJlc3VsdFNvdXJjZVJlcXVlc3RPcHRpb25zLFxuICAgICAgcHVibGljIHJlc3BvbnNlVGV4dD86IHN0cmluZyB8IEJsb2IsXG4gICAgICBwdWJsaWMgaGVhZGVycz86IFJlc3RIZWFkZXJzLFxuICAgICAgcHVibGljIHN0YXR1c0NvZGU/OiBIdHRwQ29kZSB8IG51bWJlcixcbiAgICAgIHB1YmxpYyBlbnRpdHk/OiBNYXBwaW5nLk1hcHBpbmcgfCBGdW5jdGlvbixcbiAgICAgIHB1YmxpYyBjaXJjdWxhcj86IENpcmNbXSxcbiAgICAgIHB1YmxpYyBqb2JpZD86IG51bWJlcixcbiAgICAgIHB1YmxpYyBpc0FycmF5ID0gZmFsc2UsXG4gICAgKSB7XG5cblxuXG4gICAgICBzdXBlcihyZXNwb25zZVRleHQsIGhlYWRlcnMsIHN0YXR1c0NvZGUsIGlzQXJyYXkpO1xuXG4gICAgICB0aGlzLmluaXQoKVxuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KCkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudGl0eSA9PT0gJ3N0cmluZycpIHtcblxuICAgICAgICBsZXQgZW50aXR5SlNPTiA9IHRoaXMuaGVhZGVycy5nZXRBbGwodGhpcy5lbnRpdHkpXG4gICAgICAgIGlmICghIWVudGl0eUpTT04pIHtcbiAgICAgICAgICB0aGlzLmVudGl0eSA9IEpTT04ucGFyc2UoZW50aXR5SlNPTi5qb2luKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2lyY3VsYXIgPT09ICdzdHJpbmcnKSB7XG5cbiAgICAgICAgbGV0IGNpcmN1cmFsSlNPTiA9IHRoaXMuaGVhZGVycy5nZXRBbGwodGhpcy5jaXJjdWxhcik7XG4gICAgICAgIGlmICghIWNpcmN1cmFsSlNPTikge1xuICAgICAgICAgIHRoaXMuY2lyY3VsYXIgPSBKU09OLnBhcnNlKGNpcmN1cmFsSlNPTi5qb2luKCkpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIHRoaXMuYm9keSA9IG5ldyBIdHRwQm9keSh0aGlzLnJlc3BvbnNlVGV4dCwgdGhpcy5pc0FycmF5LCB0aGlzLmVudGl0eSwgdGhpcy5jaXJjdWxhcikgYXMgYW55O1xuICAgIH1cblxuICAgIGdldCBjYWNoZSgpIHtcbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMucnEpKSB7XG4gICAgICAgIHRoaXMucnEgPSBuZXcgUmVxdWVzdENhY2hlKHRoaXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBSZXF1ZXN0Q2FjaGUodGhpcyk7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgSHR0cFJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBCYXNlUmVzcG9uc2U8YW55PiB7XG4gICAgcHJpdmF0ZSBib2R5OiBFcnJvckJvZHk7XG5cblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgcmVzcG9uc2VUZXh0Pzogc3RyaW5nLFxuICAgICAgaGVhZGVycz86IFJlc3RIZWFkZXJzLFxuICAgICAgc3RhdHVzQ29kZT86IEh0dHBDb2RlIHwgbnVtYmVyLFxuICAgICAgcHVibGljIGpvYmlkPzogbnVtYmVyLFxuICAgICkge1xuICAgICAgc3VwZXIocmVzcG9uc2VUZXh0LCBoZWFkZXJzLCBzdGF0dXNDb2RlKTtcbiAgICAgIHRoaXMuYm9keSA9IG5ldyBFcnJvckJvZHkocmVzcG9uc2VUZXh0KVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTW9ja1Jlc3BvbnNlIHtcbiAgICBkYXRhPzogYW55O1xuICAgIGNvZGU/OiBIdHRwQ29kZTtcbiAgICBlcnJvcj86IHN0cmluZztcbiAgICBoZWFkZXJzPzogUmVzdEhlYWRlcnM7XG4gICAgam9iaWQ/OiBudW1iZXI7XG4gICAgaXNBcnJheTogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFJlc3BvbnNlVHlwZUF4aW9zID0gJ2Jsb2InIHwgJ3RleHQnXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bmcyLXJlc3QgbGliL21vZGVscy50cyJdfQ==
@@ -116,4 +116,4 @@ class SimpleResource {
116
116
  export { SimpleResource };
117
117
  ;
118
118
  ({}); // @--end-of-file-for-module=ng2-rest lib/other/simple-resource.ts
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL290aGVyL3NpbXBsZS1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXFCL0M7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLGdCQUFnQjthQUNOLDhCQUF5QixHQUFHLEtBQUssQUFBUixDQUFTO2FBQ2xDLGFBQVEsR0FBbUIsRUFBRSxBQUFyQixDQUFzQjtJQTZHNUMsWUFBMkIsUUFBb0IsRUFBVSxVQUFrQjtRQUFoRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQXpHM0U7O1VBRUU7UUFDRixVQUFLLEdBQXlCLENBQUMsVUFBZSxFQUFFLEVBQUU7WUFFaEQsT0FBTztnQkFFTCxHQUFHLEVBQUUsQ0FBQyxVQUFlLEVBQUUsRUFBRTtvQkFDdkIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO3dCQUNqRCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs2QkFDdkQsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMseUJBQXlCLENBQUM7NkJBQzdELFVBQVU7NkJBQ1YsU0FBUyxDQUNSLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNyQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUM7Z0JBRUQsS0FBSyxFQUFFLENBQUMsSUFBTyxFQUFFLFdBQWdCLEVBQUUsRUFBRTtvQkFDbkMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO3dCQUNqRCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs2QkFDdkQsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDOzZCQUNwRSxVQUFVOzZCQUNWLFNBQVMsQ0FDUixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDckMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO29CQUNqQyxDQUFDLENBQUMsQ0FBQTtnQkFFSixDQUFDO2dCQUVELElBQUksRUFBRSxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUN4QixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7d0JBQ2pELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDOzZCQUN2RCxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQzs2QkFDOUQsVUFBVTs2QkFDVixTQUFTLENBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDakMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFFRCxLQUFLLEVBQUUsQ0FBQyxVQUFlLEVBQUUsRUFBRTtvQkFDekIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBc0IsRUFBRSxFQUFFO3dCQUNsRCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs0QkFDeEQsS0FBSzs2QkFDSixHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQzs2QkFDN0QsVUFBVTs2QkFDVixTQUFTLENBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDakMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFHRCxJQUFJLEVBQUUsQ0FBQyxJQUFPLEVBQUUsV0FBZ0IsRUFBRSxFQUFFO29CQUNsQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7d0JBQ2pELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDOzZCQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMseUJBQXlCLENBQUM7NkJBQ3JFLFVBQVU7NkJBQ1YsU0FBUyxDQUNSLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNyQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLENBQUMsQ0FBQyxDQUFBO2dCQUVKLENBQUM7Z0JBR0QsR0FBRyxFQUFFLENBQUMsSUFBTyxFQUFFLFdBQWdCLEVBQUUsRUFBRTtvQkFDakMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO3dCQUNqRCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs2QkFDdkQsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDOzZCQUNwRSxVQUFVOzZCQUNWLFNBQVMsQ0FDUixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDckMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO29CQUNqQyxDQUFDLENBQUMsQ0FBQTtnQkFFSixDQUFDO2dCQUdELE1BQU0sRUFBRSxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUMxQixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7d0JBQ2pELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDOzZCQUN2RCxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQzs2QkFDaEUsVUFBVTs2QkFDVixTQUFTLENBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDakMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQzthQUdGLENBQUE7UUFDSCxDQUFDLENBQUE7UUFNQyxJQUFJLENBQUMsSUFBSSxHQUFRLFFBQVEsQ0FBQyxNQUFNLENBQWEsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXJFLENBQUM7O0FBTUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGNBQWM7YUFJVixtQ0FBOEIsR0FBRyxLQUFLLENBQUM7SUFDL0MsTUFBTSxLQUFLLHlCQUF5QixDQUFDLEtBQUs7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsRUFBRTtZQUNsRCxjQUFjLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO1lBQ3JELGdCQUFnQixDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQTtZQUNsRCxPQUFPO1NBQ1I7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDO1VBQ1AsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUztRQUNyQixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQVksUUFBZ0IsRUFBRSxLQUFhO1FBQ3pDLElBQUksSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQTBDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQzs7U0F0QlUsY0FBYztBQTBCMUIsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrRUFBa0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZS1zZXJ2aWNlJztcblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdFByb21pc2VzPEEsIFRBLCBRUCBleHRlbmRzIE1vZGVscy5VcmxQYXJhbXM+IHtcbiAgZ2V0OiAocXVlcnlQYXJhbXM/OiBRUCkgPT4gT2JzZXJ2YWJsZTxNb2RlbHMuSHR0cFJlc3BvbnNlPEE+PjtcbiAgaGVhZDogKHF1ZXJ5UGFyYW1zPzogUVApID0+IE9ic2VydmFibGU8TW9kZWxzLkh0dHBSZXNwb25zZTxBPj47XG4gIHF1ZXJ5OiAocXVlcnlQYXJhbXM/OiBRUCkgPT4gT2JzZXJ2YWJsZTxNb2RlbHMuSHR0cFJlc3BvbnNlPFRBPj47XG4gIHB1dDogKGl0ZW0/OiBBLCBxdWVyeVBhcmFtcz86IFFQKSA9PiBPYnNlcnZhYmxlPE1vZGVscy5IdHRwUmVzcG9uc2U8QT4+O1xuICBwYXRjaDogKGl0ZW0/OiBBLCBxdWVyeVBhcmFtcz86IFFQKSA9PiBPYnNlcnZhYmxlPE1vZGVscy5IdHRwUmVzcG9uc2U8QT4+O1xuICBwb3N0OiAoaXRlbT86IEEsIHF1ZXJ5UGFyYW1zPzogUVApID0+IE9ic2VydmFibGU8TW9kZWxzLkh0dHBSZXNwb25zZTxBPj47XG4gIGRlbGV0ZTogKHF1ZXJ5UGFyYW1zPzogUVApID0+IE9ic2VydmFibGU8TW9kZWxzLkh0dHBSZXNwb25zZTxBPiB8IGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWw8QSwgVEEsIFJQIGV4dGVuZHMgT2JqZWN0LCBRUCBleHRlbmRzIE1vZGVscy5VcmxQYXJhbXM+IHtcbiAgKHJlc3RQYXJhbXM/OiBSUCk6IFJlc3RQcm9taXNlczxBLCBUQSwgUVA+O1xufVxuXG5cblxuXG4vKipcbiAqXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBTaW1wbGVSZXNvdXJjZVxuICogQGV4dGVuZHMge1Jlc291cmNlPFQsIEEsIFRBPn1cbiAqIEB0ZW1wbGF0ZSBFICBFbmRwb2ludCB0eXBlXG4gKiBAdGVtcGxhdGUgQSBTaW5nbGUgbW9kbGUgdHlwZVxuICogQHRlbXBsYXRlIFRBIEFycmF5IE1vZGVsIFR5cGVcbiAqIEB0ZW1wbGF0ZSBSUCByZXN0IHVybCBwYXJhbWV0ZXJzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBRUCBxdWVyeSBwYXJhbWV0ZXIgdHlwZVxuICovXG5jbGFzcyBFeHRlbmRlZFJlc291cmNlPEUsIEEsIFRBLCBSUCBleHRlbmRzIE9iamVjdCwgUVAgZXh0ZW5kcyBNb2RlbHMuVXJsUGFyYW1zPiAge1xuICBwdWJsaWMgc3RhdGljIGRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXMgPSBmYWxzZTtcbiAgcHVibGljIHN0YXRpYyBoYW5kbGVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICByZXN0OiBNb2RlbHMuUmVzb3VyY2VNb2RlbDxBLCBUQT47XG5cbiAgLyoqXG4gICAqIEdldCBtb2RlbCBieSByZXN0IHBhcmFtc1xuICAqL1xuICBtb2RlbDogTW9kZWw8QSwgVEEsIFJQLCBRUD4gPSAocmVzdFBhcmFtcz86IFJQKSA9PiB7XG5cbiAgICByZXR1cm4ge1xuXG4gICAgICBnZXQ6IChxdWVyeVByYW1zPzogUVApID0+IHtcbiAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8QT4pID0+IHtcbiAgICAgICAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLnB1c2godGhpcy5yZXN0Lm1vZGVsKHJlc3RQYXJhbXMpXG4gICAgICAgICAgICAuZ2V0KFtxdWVyeVByYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcbiAgICAgIH0sXG5cbiAgICAgIHBhdGNoOiAoaXRlbTogQSwgcXVlcnlQYXJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcylcbiAgICAgICAgICAgIC5wdXQoaXRlbSwgW3F1ZXJ5UGFyYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcblxuICAgICAgfSxcblxuICAgICAgaGVhZDogKHF1ZXJ5UHJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcylcbiAgICAgICAgICAgIC5oZWFkKFtxdWVyeVByYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcbiAgICAgIH0sXG5cbiAgICAgIHF1ZXJ5OiAocXVlcnlQcmFtcz86IFFQKSA9PiB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPFRBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcykuXG4gICAgICAgICAgICBhcnJheVxuICAgICAgICAgICAgLmdldChbcXVlcnlQcmFtc10sIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcylcbiAgICAgICAgICAgIC5vYnNlcnZhYmxlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBkYXRhID0+IG9ic2VydmVyLm5leHQoZGF0YS5ib2R5Lmpzb24pLFxuICAgICAgICAgICAgICBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgICAgICAgKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSkpXG4gICAgICAgIH0pXG4gICAgICB9LFxuXG5cbiAgICAgIHBvc3Q6IChpdGVtOiBBLCBxdWVyeVBhcmFtcz86IFFQKSA9PiB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEE+KSA9PiB7XG4gICAgICAgICAgRXh0ZW5kZWRSZXNvdXJjZS5oYW5kbGVycy5wdXNoKHRoaXMucmVzdC5tb2RlbChyZXN0UGFyYW1zKVxuICAgICAgICAgICAgLnBvc3QoaXRlbSwgW3F1ZXJ5UGFyYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcblxuICAgICAgfSxcblxuXG4gICAgICBwdXQ6IChpdGVtOiBBLCBxdWVyeVBhcmFtcz86IFFQKSA9PiB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEE+KSA9PiB7XG4gICAgICAgICAgRXh0ZW5kZWRSZXNvdXJjZS5oYW5kbGVycy5wdXNoKHRoaXMucmVzdC5tb2RlbChyZXN0UGFyYW1zKVxuICAgICAgICAgICAgLnB1dChpdGVtLCBbcXVlcnlQYXJhbXNdLCBFeHRlbmRlZFJlc291cmNlLmRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAub2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgZGF0YSA9PiBvYnNlcnZlci5uZXh0KGRhdGEuYm9keS5qc29uKSxcbiAgICAgICAgICAgICAgZXJyID0+IG9ic2VydmVyLmVycm9yKGVyciksXG4gICAgICAgICAgICAgICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCkpKVxuICAgICAgICB9KVxuXG4gICAgICB9LFxuXG5cbiAgICAgIGRlbGV0ZTogKHF1ZXJ5UHJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcylcbiAgICAgICAgICAgIC5kZWxldGUoW3F1ZXJ5UHJhbXNdLCBFeHRlbmRlZFJlc291cmNlLmRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAub2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgZGF0YSA9PiBvYnNlcnZlci5uZXh0KGRhdGEuYm9keS5qc29uKSxcbiAgICAgICAgICAgICAgZXJyID0+IG9ic2VydmVyLmVycm9yKGVyciksXG4gICAgICAgICAgICAgICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCkpKVxuICAgICAgICB9KVxuICAgICAgfVxuXG5cbiAgICB9XG4gIH1cblxuXG5cblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBlbmRwb2ludDogRSB8IHN0cmluZywgcHJpdmF0ZSBwYXRoX21vZGVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3QgPSA8YW55PlJlc291cmNlLmNyZWF0ZTxBLCBUQT4oPGFueT5lbmRwb2ludCwgcGF0aF9tb2RlbCk7XG5cbiAgfVxuXG59XG5cblxuXG4vKipcbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgU2ltcGxlUmVzb3VyY2VcbiAqIEB0ZW1wbGF0ZSBBIHNpbmdsZSBtb2RlbCB0eXBlXG4gKiBAdGVtcGxhdGUgVEEgYXJyYXkgbW9kZWwgdHlwZVxuICogQHRlbXBsYXRlIFJQIHJlc3QgcGFyYW1ldGVycyB0eXBlXG4gKiBAdGVtcGxhdGUgUVAgcXVlcnkgcGFyYW1ldGVycyB0eXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVSZXNvdXJjZTxBLCBUQT4ge1xuICBtb2RlbDogTW9kZWw8QSwgVEEsIE9iamVjdCwgTW9kZWxzLlVybFBhcmFtcz47XG5cblxuICBwcml2YXRlIHN0YXRpYyBfaXNTZXRRdWVyeVBhcmFtc1NlcmlhbGl6YXRpb24gPSBmYWxzZTtcbiAgcHVibGljIHN0YXRpYyBzZXQgZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcyh2YWx1ZSkge1xuICAgIGlmICghU2ltcGxlUmVzb3VyY2UuX2lzU2V0UXVlcnlQYXJhbXNTZXJpYWxpemF0aW9uKSB7XG4gICAgICBTaW1wbGVSZXNvdXJjZS5faXNTZXRRdWVyeVBhcmFtc1NlcmlhbGl6YXRpb24gPSB0cnVlO1xuICAgICAgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zID0gdmFsdWVcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKGBRdWVyeSBwYXJhbXMgc2VyaWFsaXphdGlvbiBhbHJlYWR5IHNldCBhc1xuICAgICAgICAke0V4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtc30sYCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIF9fZGVzdHJveSgpIHtcbiAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLmZvckVhY2goaCA9PiBoLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IHN0cmluZywgbW9kZWw6IHN0cmluZykge1xuICAgIGxldCByZXN0ID0gbmV3IEV4dGVuZGVkUmVzb3VyY2U8c3RyaW5nLCBBLCBUQSwgT2JqZWN0LCBNb2RlbHMuVXJsUGFyYW1zPihlbmRwb2ludCwgbW9kZWwpO1xuICAgIHRoaXMubW9kZWwgPSByZXN0Lm1vZGVsO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9vdGhlci9zaW1wbGUtcmVzb3VyY2UudHMiXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9vdGhlci9zaW1wbGUtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFxQi9DOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxnQkFBZ0I7YUFDTiw4QkFBeUIsR0FBRyxLQUFLLEFBQVIsQ0FBUzthQUNsQyxhQUFRLEdBQW1CLEVBQUUsQUFBckIsQ0FBc0I7SUE2RzVDLFlBQTJCLFFBQW9CLEVBQVUsVUFBa0I7UUFBaEQsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVE7UUF6RzNFOztVQUVFO1FBQ0YsVUFBSyxHQUF5QixDQUFDLFVBQWUsRUFBRSxFQUFFO1lBRWhELE9BQU87Z0JBRUwsR0FBRyxFQUFFLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQ3ZCLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQXFCLEVBQUUsRUFBRTt3QkFDakQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7NkJBQ3ZELEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDOzZCQUM3RCxVQUFVOzZCQUNWLFNBQVMsQ0FDUixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDckMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxF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QUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7O1NBdEJVLGNBQWM7QUEwQjFCLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0VBQWtFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2Utc2VydmljZSc7XG5cblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RQcm9taXNlczxBLCBUQSwgUVAgZXh0ZW5kcyBNb2RlbHMuVXJsUGFyYW1zPiB7XG4gIGdldDogKHF1ZXJ5UGFyYW1zPzogUVApID0+IE9ic2VydmFibGU8TW9kZWxzLkh0dHBSZXNwb25zZTxBPj47XG4gIGhlYWQ6IChxdWVyeVBhcmFtcz86IFFQKSA9PiBPYnNlcnZhYmxlPE1vZGVscy5IdHRwUmVzcG9uc2U8QT4+O1xuICBxdWVyeTogKHF1ZXJ5UGFyYW1zPzogUVApID0+IE9ic2VydmFibGU8TW9kZWxzLkh0dHBSZXNwb25zZTxUQT4+O1xuICBwdXQ6IChpdGVtPzogQSwgcXVlcnlQYXJhbXM/OiBRUCkgPT4gT2JzZXJ2YWJsZTxNb2RlbHMuSHR0cFJlc3BvbnNlPEE+PjtcbiAgcGF0Y2g6IChpdGVtPzogQSwgcXVlcnlQYXJhbXM/OiBRUCkgPT4gT2JzZXJ2YWJsZTxNb2RlbHMuSHR0cFJlc3BvbnNlPEE+PjtcbiAgcG9zdDogKGl0ZW0/OiBBLCBxdWVyeVBhcmFtcz86IFFQKSA9PiBPYnNlcnZhYmxlPE1vZGVscy5IdHRwUmVzcG9uc2U8QT4+O1xuICBkZWxldGU6IChxdWVyeVBhcmFtcz86IFFQKSA9PiBPYnNlcnZhYmxlPE1vZGVscy5IdHRwUmVzcG9uc2U8QT4gfCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsPEEsIFRBLCBSUCBleHRlbmRzIE9iamVjdCwgUVAgZXh0ZW5kcyBNb2RlbHMuVXJsUGFyYW1zPiB7XG4gIChyZXN0UGFyYW1zPzogUlApOiBSZXN0UHJvbWlzZXM8QSwgVEEsIFFQPjtcbn1cblxuXG5cblxuLyoqXG4gKlxuICogQGV4cG9ydFxuICogQGFic3RyYWN0XG4gKiBAY2xhc3MgU2ltcGxlUmVzb3VyY2VcbiAqIEBleHRlbmRzIHtSZXNvdXJjZTxULCBBLCBUQT59XG4gKiBAdGVtcGxhdGUgRSAgRW5kcG9pbnQgdHlwZVxuICogQHRlbXBsYXRlIEEgU2luZ2xlIG1vZGxlIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUQSBBcnJheSBNb2RlbCBUeXBlXG4gKiBAdGVtcGxhdGUgUlAgcmVzdCB1cmwgcGFyYW1ldGVycyB0eXBlXG4gKiBAdGVtcGxhdGUgUVAgcXVlcnkgcGFyYW1ldGVyIHR5cGVcbiAqL1xuY2xhc3MgRXh0ZW5kZWRSZXNvdXJjZTxFLCBBLCBUQSwgUlAgZXh0ZW5kcyBPYmplY3QsIFFQIGV4dGVuZHMgTW9kZWxzLlVybFBhcmFtcz4gIHtcbiAgcHVibGljIHN0YXRpYyBkb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zID0gZmFsc2U7XG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcmVzdDogTW9kZWxzLlJlc291cmNlTW9kZWw8QSwgVEE+O1xuXG4gIC8qKlxuICAgKiBHZXQgbW9kZWwgYnkgcmVzdCBwYXJhbXNcbiAgKi9cbiAgbW9kZWw6IE1vZGVsPEEsIFRBLCBSUCwgUVA+ID0gKHJlc3RQYXJhbXM/OiBSUCkgPT4ge1xuXG4gICAgcmV0dXJuIHtcblxuICAgICAgZ2V0OiAocXVlcnlQcmFtcz86IFFQKSA9PiB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEE+KSA9PiB7XG4gICAgICAgICAgRXh0ZW5kZWRSZXNvdXJjZS5oYW5kbGVycy5wdXNoKHRoaXMucmVzdC5tb2RlbChyZXN0UGFyYW1zKVxuICAgICAgICAgICAgLmdldChbcXVlcnlQcmFtc10sIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcylcbiAgICAgICAgICAgIC5vYnNlcnZhYmxlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBkYXRhID0+IG9ic2VydmVyLm5leHQoZGF0YS5ib2R5Lmpzb24pLFxuICAgICAgICAgICAgICBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgICAgICAgKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSkpXG4gICAgICAgIH0pXG4gICAgICB9LFxuXG4gICAgICBwYXRjaDogKGl0ZW06IEEsIHF1ZXJ5UGFyYW1zPzogUVApID0+IHtcbiAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8QT4pID0+IHtcbiAgICAgICAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLnB1c2godGhpcy5yZXN0Lm1vZGVsKHJlc3RQYXJhbXMpXG4gICAgICAgICAgICAucHV0KGl0ZW0sIFtxdWVyeVBhcmFtc10sIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcylcbiAgICAgICAgICAgIC5vYnNlcnZhYmxlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBkYXRhID0+IG9ic2VydmVyLm5leHQoZGF0YS5ib2R5Lmpzb24pLFxuICAgICAgICAgICAgICBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgICAgICAgKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSkpXG4gICAgICAgIH0pXG5cbiAgICAgIH0sXG5cbiAgICAgIGhlYWQ6IChxdWVyeVByYW1zPzogUVApID0+IHtcbiAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8QT4pID0+IHtcbiAgICAgICAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLnB1c2godGhpcy5yZXN0Lm1vZGVsKHJlc3RQYXJhbXMpXG4gICAgICAgICAgICAuaGVhZChbcXVlcnlQcmFtc10sIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcylcbiAgICAgICAgICAgIC5vYnNlcnZhYmxlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBkYXRhID0+IG9ic2VydmVyLm5leHQoZGF0YS5ib2R5Lmpzb24pLFxuICAgICAgICAgICAgICBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgICAgICAgKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSkpXG4gICAgICAgIH0pXG4gICAgICB9LFxuXG4gICAgICBxdWVyeTogKHF1ZXJ5UHJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxUQT4pID0+IHtcbiAgICAgICAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLnB1c2godGhpcy5yZXN0Lm1vZGVsKHJlc3RQYXJhbXMpLlxuICAgICAgICAgICAgYXJyYXlcbiAgICAgICAgICAgIC5nZXQoW3F1ZXJ5UHJhbXNdLCBFeHRlbmRlZFJlc291cmNlLmRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAub2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgZGF0YSA9PiBvYnNlcnZlci5uZXh0KGRhdGEuYm9keS5qc29uKSxcbiAgICAgICAgICAgICAgZXJyID0+IG9ic2VydmVyLmVycm9yKGVyciksXG4gICAgICAgICAgICAgICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCkpKVxuICAgICAgICB9KVxuICAgICAgfSxcblxuXG4gICAgICBwb3N0OiAoaXRlbTogQSwgcXVlcnlQYXJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcylcbiAgICAgICAgICAgIC5wb3N0KGl0ZW0sIFtxdWVyeVBhcmFtc10sIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcylcbiAgICAgICAgICAgIC5vYnNlcnZhYmxlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBkYXRhID0+IG9ic2VydmVyLm5leHQoZGF0YS5ib2R5Lmpzb24pLFxuICAgICAgICAgICAgICBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgICAgICAgKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSkpXG4gICAgICAgIH0pXG5cbiAgICAgIH0sXG5cblxuICAgICAgcHV0OiAoaXRlbTogQSwgcXVlcnlQYXJhbXM/OiBRUCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxBPikgPT4ge1xuICAgICAgICAgIEV4dGVuZGVkUmVzb3VyY2UuaGFuZGxlcnMucHVzaCh0aGlzLnJlc3QubW9kZWwocmVzdFBhcmFtcylcbiAgICAgICAgICAgIC5wdXQoaXRlbSwgW3F1ZXJ5UGFyYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcblxuICAgICAgfSxcblxuXG4gICAgICBkZWxldGU6IChxdWVyeVByYW1zPzogUVApID0+IHtcbiAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8QT4pID0+IHtcbiAgICAgICAgICBFeHRlbmRlZFJlc291cmNlLmhhbmRsZXJzLnB1c2godGhpcy5yZXN0Lm1vZGVsKHJlc3RQYXJhbXMpXG4gICAgICAgICAgICAuZGVsZXRlKFtxdWVyeVByYW1zXSwgRXh0ZW5kZWRSZXNvdXJjZS5kb05vdFNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgLm9ic2VydmFibGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGRhdGEgPT4gb2JzZXJ2ZXIubmV4dChkYXRhLmJvZHkuanNvbiksXG4gICAgICAgICAgICAgIGVyciA9PiBvYnNlcnZlci5lcnJvcihlcnIpLFxuICAgICAgICAgICAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuXG4gICAgfVxuICB9XG5cblxuXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZW5kcG9pbnQ6IEUgfCBzdHJpbmcsIHByaXZhdGUgcGF0aF9tb2RlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN0ID0gPGFueT5SZXNvdXJjZS5jcmVhdGU8QSwgVEE+KDxhbnk+ZW5kcG9pbnQsIHBhdGhfbW9kZWwpO1xuXG4gIH1cblxufVxuXG5cblxuLyoqXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFNpbXBsZVJlc291cmNlXG4gKiBAdGVtcGxhdGUgQSBzaW5nbGUgbW9kZWwgdHlwZVxuICogQHRlbXBsYXRlIFRBIGFycmF5IG1vZGVsIHR5cGVcbiAqIEB0ZW1wbGF0ZSBSUCByZXN0IHBhcmFtZXRlcnMgdHlwZVxuICogQHRlbXBsYXRlIFFQIHF1ZXJ5IHBhcmFtZXRlcnMgdHlwZVxuICovXG5leHBvcnQgY2xhc3MgU2ltcGxlUmVzb3VyY2U8QSwgVEE+IHtcbiAgbW9kZWw6IE1vZGVsPEEsIFRBLCBPYmplY3QsIE1vZGVscy5VcmxQYXJhbXM+O1xuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2lzU2V0UXVlcnlQYXJhbXNTZXJpYWxpemF0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBzdGF0aWMgc2V0IGRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXModmFsdWUpIHtcbiAgICBpZiAoIVNpbXBsZVJlc291cmNlLl9pc1NldFF1ZXJ5UGFyYW1zU2VyaWFsaXphdGlvbikge1xuICAgICAgU2ltcGxlUmVzb3VyY2UuX2lzU2V0UXVlcnlQYXJhbXNTZXJpYWxpemF0aW9uID0gdHJ1ZTtcbiAgICAgIEV4dGVuZGVkUmVzb3VyY2UuZG9Ob3RTZXJpYWxpemVRdWVyeVBhcmFtcyA9IHZhbHVlXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUud2FybihgUXVlcnkgcGFyYW1zIHNlcmlhbGl6YXRpb24gYWxyZWFkeSBzZXQgYXNcbiAgICAgICAgJHtFeHRlbmRlZFJlc291cmNlLmRvTm90U2VyaWFsaXplUXVlcnlQYXJhbXN9LGApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBfX2Rlc3Ryb3koKSB7XG4gICAgRXh0ZW5kZWRSZXNvdXJjZS5oYW5kbGVycy5mb3JFYWNoKGggPT4gaC51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50OiBzdHJpbmcsIG1vZGVsOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdCA9IG5ldyBFeHRlbmRlZFJlc291cmNlPHN0cmluZywgQSwgVEEsIE9iamVjdCwgTW9kZWxzLlVybFBhcmFtcz4oZW5kcG9pbnQsIG1vZGVsKTtcbiAgICB0aGlzLm1vZGVsID0gcmVzdC5tb2RlbDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvb3RoZXIvc2ltcGxlLXJlc291cmNlLnRzIl19
@@ -276,4 +276,4 @@ export function prepareUrlOldWay(params) {
276
276
  }
277
277
  ;
278
278
  ({}); // @--end-of-file-for-module=ng2-rest lib/params.ts
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbGliL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7QUFJNUQseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBZTtJQUNyQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBVyxFQUFFLE9BQWU7SUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRztRQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENB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SUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN4QzthQUVGO1lBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FHckM7SUFHSCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBR0QsU0FBUyxTQUFTLENBQUMsQ0FBQztJQUNsQixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUN6QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM5QztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUdELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUE2QjtJQUM1RCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7QUFDdEMsQ0FBQztBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbURBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IGRpZmZDaGFycyB9IGZyb20gJ2RpZmYnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgnW25nMi1yZXN0XSBwYXJhbXMnLCBMZXZlbC5fX05PVEhJTkcpXG5cblxuXG4vKiogY2hlY2sgaWYgc3RyaW5nIGlzIGEgdmFsaWQgcGF0dGVybiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWQocGF0dGVybjogc3RyaW5nKSB7XG4gIHJldHVybiAobmV3IFJlZ0V4cCgnXFwvOlthLXpBLVpdKicsICdnJykpLnRlc3QocGF0dGVybi5yZXBsYWNlKCc6Ly8nLCAnJykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2sodXJsOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIUhlbHBlcnMuY2hlY2tWYWxpZFVybCh1cmwpKSB7XG4gICAgbG9nLmVycm9yKGBJbmNvcnJlY3QgdXJsOiAke3VybH1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHVybC5jaGFyQXQodXJsLmxlbmd0aCAtIDEpID09PSAnLycpIHVybCA9IHVybC5zbGljZSgwLCB1cmwubGVuZ3RoIC0gMik7XG4gIGlmIChwYXR0ZXJuLmNoYXJBdChwYXR0ZXJuLmxlbmd0aCAtIDEpID09PSAnLycpIHBhdHRlcm4gPSBwYXR0ZXJuLnNsaWNlKDAsIHVybC5sZW5ndGggLSAyKTtcbiAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvXFwvL2csICdcXC8nKTtcbiAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKCdcXC86W2EtekEtWl0qJywgJ2cnKSwgJy4rJyk7XG4gIGxldCByZWcgPSBuZXcgUmVnRXhwKHBhdHRlcm4sICdnJyk7XG4gIHJldHVybiByZWcudGVzdCh1cmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxzKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgbGV0IG0gPSBwYXR0ZXJuLm1hdGNoKG5ldyBSZWdFeHAoJ1thLXotQS1aXSpcXC86JywgJ2cnKSk7XG4gIHJldHVybiBtLm1hcChwID0+IHAucmVwbGFjZSgnLzonLCAnJykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzdFByYW1zTmFtZXMocGF0dGVybjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBpZiAocGF0dGVybi5jaGFyQXQocGF0dGVybi5sZW5ndGggLSAxKSAhPT0gJy8nKSBwYXR0ZXJuID0gYCR7cGF0dGVybn0vYDtcbiAgbGV0IG0gPSBwYXR0ZXJuLm1hdGNoKG5ldyBSZWdFeHAoJzpbYS16QS1aXSpcXC8nLCAnZycpKTtcbiAgbGV0IHJlcyA9IG0ubWFwKHAgPT4gcC5yZXBsYWNlKCc6JywgJycpLnJlcGxhY2UoJy8nLCAnJykpO1xuICByZXR1cm4gcmVzLmZpbHRlcihwID0+IHAudHJpbSgpICE9PSAnJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluc01vZGVscyh1cmw6IHN0cmluZywgbW9kZWxzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICBpZiAodXJsLmNoYXJBdCgwKSAhPT0gJy8nKSB1cmwgPSAnLycgKyB1cmw7XG5cbiAgbGV0IHJlcyA9IG1vZGVscy5maWx0ZXIobSA9PiB7XG4gICAgbGV0IHdvcmQgPSAnLycgKyBtO1xuXG4gICAgbGV0IGlpaSA9IHVybC5pbmRleE9mKHdvcmQpO1xuXG4gICAgaWYgKGlpaSArIHdvcmQubGVuZ3RoIDwgdXJsLmxlbmd0aCAmJiB1cmwuY2hhckF0KGlpaSArIHdvcmQubGVuZ3RoKSAhPT0gJy8nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpaWkgIT09IC0xKSB7XG4gICAgICB1cmwgPSB1cmwucmVwbGFjZShuZXcgUmVnRXhwKCdcXC8nICsgbSwgJ2cnKSwgJycpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSkubGVuZ3RoO1xuXG4gIHJldHVybiByZXMgPT09IG1vZGVscy5sZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFycyhuOiBudW1iZXIpOiBzdHJpbmcge1xuICBsZXQgcmVzID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSByZXMgKz0gJyonO1xuICByZXR1cm4gcmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzdFBhcmFtcyh1cmw6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogT2JqZWN0IHtcbiAgbGV0IHJlcyA9IHt9O1xuICBsZXQgbW9kZWxzID0gZ2V0UmVzdFByYW1zTmFtZXMocGF0dGVybik7XG5cbiAgbW9kZWxzLmZvckVhY2gobSA9PiB7XG4gICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShgOiR7bX1gLCBzdGFycyhtLmxlbmd0aCkpO1xuICB9KVxuXG4gIGxldCBjdXJyZW50TW9kZWw6IHN0cmluZyA9IHZvaWQgMDtcbiAgZGlmZkNoYXJzKHBhdHRlcm4sIHVybCkuZm9yRWFjaChkID0+IHtcblxuICAgIGlmIChkLmFkZGVkKSB7XG4gICAgICBpZiAoIWlzTmFOKE51bWJlcihkLnZhbHVlKSkpIHJlc1tjdXJyZW50TW9kZWxdID0gTnVtYmVyKGQudmFsdWUpO1xuICAgICAgZWxzZSBpZiAoZC52YWx1ZS50cmltKCkgPT09ICd0cnVlJykgcmVzW2N1cnJlbnRNb2RlbF0gPSB0cnVlO1xuICAgICAgZWxzZSBpZiAoZC52YWx1ZS50cmltKCkgPT09ICdmYWxzZScpIHJlc1tjdXJyZW50TW9kZWxdID0gZmFsc2U7XG4gICAgICBlbHNlIHJlc1tjdXJyZW50TW9kZWxdID0gZGVjb2RlVVJJQ29tcG9uZW50KGQudmFsdWUpO1xuICAgICAgY3VycmVudE1vZGVsID0gdm9pZCAwO1xuICAgIH1cbiAgICBsZXQgbSA9IGQudmFsdWUucmVwbGFjZSgnOicsIFwiXCIpO1xuXG4gICAgaWYgKGQucmVtb3ZlZCkge1xuICAgICAgY3VycmVudE1vZGVsID0gbW9kZWxzLnNoaWZ0KCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlcztcbn1cblxuZXhwb3J0IGNvbnN0IHJlZ2V4aXNQYXRoID0gL1teXFwuLl0rKFxcLlteXFwuLl0rKSsvZztcblxuLyoqXG4gKiBNb2RlbHMgbGlrZSBib29rcy86aWRcbiAqL1xuZnVuY3Rpb24gY3V0VXJsTW9kZWwocGFyYW1zOiBPYmplY3QsIG1vZGVsczogc3RyaW5nW10sIG91dHB1dDogc3RyaW5nW10pIHtcbiAgaWYgKG1vZGVscy5sZW5ndGggPT09IDApIHJldHVybiBvdXRwdXQuam9pbignXFwvJyk7XG4gIGxldCBtID0gbW9kZWxzLnBvcCgpO1xuXG4gIGxldCBwYXJhbSA9IG0ubWF0Y2goLzpbYS16QS1aMC05XFwuXSsvKVswXS5yZXBsYWNlKCc6JywgJycpO1xuICBjb25zdCBwYXJhbUlzUGF0aCA9IHJlZ2V4aXNQYXRoLnRlc3QocGFyYW0pXG5cbiAgbGV0IG1vZGVsID0gbS5tYXRjaCgvW2EtekEtWjAtOV0rXFwvLylbMF0ucmVwbGFjZSgnXFwvJywgJycpO1xuICBpZiAocGFyYW1zID09PSB2b2lkIDAgfHxcbiAgICAocGFyYW1Jc1BhdGggPyBfLmdldChwYXJhbXMsIHBhcmFtKSA9PT0gdm9pZCAwIDogcGFyYW1zW3BhcmFtXSA9PT0gdm9pZCAwKSB8fFxuICAgIHBhcmFtID09PSAndW5kZWZpbmVkJykge1xuICAgIG91dHB1dC5sZW5ndGggPSAwO1xuICAgIG91dHB1dC51bnNoaWZ0KG1vZGVsKVxuICAgIHJldHVybiBjdXRVcmxNb2RlbChwYXJhbXMsIG1vZGVscywgb3V0cHV0KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocGFyYW1Jc1BhdGgpIHtcblxuICAgICAgbGV0IG1yZXAgPSBtLnJlcGxhY2UobmV3IFJlZ0V4cChgOiR7cGFyYW19YCwgJ2cnKSwgYCR7Xy5nZXQocGFyYW1zLCBwYXJhbSl9YClcbiAgICAgIG91dHB1dC51bnNoaWZ0KG1yZXApXG4gICAgICByZXR1cm4gY3V0VXJsTW9kZWwocGFyYW1zLCBtb2RlbHMsIG91dHB1dCk7XG4gICAgfSBlbHNlIHtcblxuICAgICAgbGV0IG1yZXAgPSBtLnJlcGxhY2UobmV3IFJlZ0V4cChgOiR7cGFyYW19YCwgJ2cnKSwgYCR7cGFyYW1zW3BhcmFtXX1gKVxuICAgICAgb3V0cHV0LnVuc2hpZnQobXJlcClcbiAgICAgIHJldHVybiBjdXRVcmxNb2RlbChwYXJhbXMsIG1vZGVscywgb3V0cHV0KTtcbiAgICB9XG5cbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcnBvbGF0ZVBhcmFtc1RvVXJsKHBhcmFtczogT2JqZWN0LCB1cmw6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgY29uc3QgcmVnZXhJbnQgPSAvXFxbXFxbKFteXFwuLl0rXFwuW15cXC4uXSspK1xcXVxcXS9nO1xuXG4gIHVybCA9IHVybC5zcGxpdCgnLycpLm1hcChwID0+IHtcblxuICAgIGxldCBpc1BhcmFtID0gcC5zdGFydHNXaXRoKCc6JylcbiAgICBpZiAoaXNQYXJhbSkge1xuICAgICAgbGV0IHBhcnQgPSBwLnNsaWNlKDEpO1xuXG4gICAgICBpZiAocmVnZXhJbnQudGVzdChwYXJ0KSkge1xuXG4gICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoJ1tbJywgJycpXG4gICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoJ11dJywgJycpXG4gICAgICB9XG4gICAgICByZXR1cm4gYDoke3BhcnR9YFxuICAgIH1cbiAgICByZXR1cm4gcDtcbiAgfSkuam9pbignLycpO1xuXG5cblxuXG5cbiAgbGV0IHNsYXNoID0ge1xuICAgIHN0YXJ0OiB1cmwuY2hhckF0KDApID09PSAnXFwvJyxcbiAgICBlbmQ6IHVybC5jaGFyQXQodXJsLmxlbmd0aCAtIDEpID09PSAnXFwvJ1xuICB9XG5cbiAgbGV0IG1vcmVQcmFtc09uRW5kID0gdXJsLm1hdGNoKC8oXFwvOlthLXpBLVowLTlcXC5dKyl7MiwxMH0vZyk7XG4gIGlmIChtb3JlUHJhbXNPbkVuZCAmJiAoQXJyYXkuaXNBcnJheShtb3JlUHJhbXNPbkVuZCkgJiYgbW9yZVByYW1zT25FbmQubGVuZ3RoID09PSAxKSkge1xuXG4gICAgbGV0IG0gPSBtb3JlUHJhbXNPbkVuZFswXTtcbiAgICBsZXQgbWF0Y2ggPSBtLm1hdGNoKC9cXC86W2EtekEtWjAtOVxcLl0rL2cpO1xuXG4gICAgbWF0Y2guZm9yRWFjaChlID0+IHtcbiAgICAgIGxldCBjID0gZS5yZXBsYWNlKCdcXC86JywgJycpO1xuXG4gICAgICBpZiAocmVnZXhpc1BhdGgudGVzdChjKSkge1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShlLCBgLyR7Xy5nZXQocGFyYW1zLCBjKX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoZSwgYC8ke3BhcmFtc1tjXX1gKVxuICAgICAgfVxuXG5cblxuICAgIH0pXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGxldCBuZXN0ZWRQYXJhbXMgPSB1cmwubWF0Y2goL1thLXpBLVowLTldK1xcLzpbYS16QS1aMC05XFwuXSsvZyk7XG4gIGlmICghbmVzdGVkUGFyYW1zIHx8IChBcnJheS5pc0FycmF5KG5lc3RlZFBhcmFtcykgJiYgbmVzdGVkUGFyYW1zLmxlbmd0aCA9PT0gMCkpIHJldHVybiB1cmw7XG5cblxuICBpZiAoIXNsYXNoLmVuZCkgdXJsID0gYCR7dXJsfS9gO1xuICBsZXQgYWRkVW5kZWZpbmVkRm9yQWxvbmUgPSAoIS86W2EtekEtWjAtOVxcLl0rXFwvJC9nLnRlc3QodXJsKSAmJiAvW2EtekEtWjAtOV0rXFwvJC9nLnRlc3QodXJsKSk7XG5cbiAgbGV0IHJlcGxhY2UgPSAobmVzdGVkUGFyYW1zLmxlbmd0aCA+IDEgPyBuZXN0ZWRQYXJhbXMuam9pbignXFwvJykgOiBuZXN0ZWRQYXJhbXNbMF0pICtcbiAgICAoYWRkVW5kZWZpbmVkRm9yQWxvbmUgPyAnXFwvJyArIHVybC5tYXRjaCgvW2EtekEtWjAtOV0rXFwvJC9nKVswXSA6ICdcXC8nKTtcbiAgbGV0IGJlZ2luSHJlZiA9IHVybC5yZXBsYWNlKHJlcGxhY2UsICcnKVxuXG4gIGlmIChhZGRVbmRlZmluZWRGb3JBbG9uZSkge1xuICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXC8kL2csICcvOnVuZGVmaW5lZCcpXG4gICAgbmVzdGVkUGFyYW1zID0gdXJsLm1hdGNoKC9bYS16QS1aMC05XStcXC86W2EtekEtWjAtOVxcLl0rL2cpO1xuICAgIHVybCA9IGN1dFVybE1vZGVsKHBhcmFtcywgbmVzdGVkUGFyYW1zLCBbXSlcbiAgfSBlbHNlIHtcbiAgICB1cmwgPSBjdXRVcmxNb2RlbChwYXJhbXMsIG5lc3RlZFBhcmFtcywgW10pXG4gIH1cbiAgdXJsID0gYmVnaW5IcmVmICsgdXJsO1xuXG4gIGlmICh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSAhPT0gJy8nICYmIHNsYXNoLmVuZCkgdXJsID0gYCR7dXJsfS9gO1xuICBpZiAodXJsLmNoYXJBdCgwKSAhPT0gJ1xcLycgJiYgc2xhc2guc3RhcnQpIHVybCA9IGAvJHt1cmx9YDtcblxuICByZXR1cm4gdXJsO1xufVxuXG4vKipcbiAqIEdldCBxdWVyeSBwYXJhbXMgZnJvbSB1cmwsIGxpa2UgJ2V4JyBpbiAvYXBpL2Jvb2tzP2V4PXZhbHVlXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVVybCh1cmw6IHN0cmluZyk6IE9iamVjdCB7XG4gIGxldCByZWdleCA9IC9bPyZdKFtePSNdKyk9KFteJiNdKikvZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBtYXRjaDtcbiAgd2hpbGUgKG1hdGNoID0gcmVnZXguZXhlYyh1cmwpKSB7XG4gICAgcGFyYW1zW2RlY29kZVVSSUNvbXBvbmVudChtYXRjaFsxXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzJdKTtcbiAgfVxuICBsZXQgcGFyYW1zT2JqZWN0ID0gPE9iamVjdD5wYXJhbXM7XG4gIGZvciAobGV0IHAgaW4gcGFyYW1zT2JqZWN0KSB7XG4gICAgaWYgKHBhcmFtc09iamVjdFtwXSA9PT0gdm9pZCAwKSB7XG4gICAgICBkZWxldGUgcGFyYW1zT2JqZWN0W3BdO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwYXJhbXNPYmplY3QuaGFzT3duUHJvcGVydHkocCkpIHtcblxuICAgICAgbGV0IG4gPSBOdW1iZXIocGFyYW1zW3BdKTtcbiAgICAgIGlmICghaXNOYU4obikpIHtcbiAgICAgICAgcGFyYW1zW3BdID0gbjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHBhcmFtc1twXSA9PT0gJ3N0cmluZycpIHtcblxuXG4gICAgICAgIGxldCBqc29uO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHBhcmFtc1twXSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH1cbiAgICAgICAgaWYgKGpzb24gIT09IHZvaWQgMCkge1xuICAgICAgICAgIHBhcmFtc1twXSA9IGpzb247XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuXG5cblxuXG5cblxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyYW1zO1xufVxuXG4vKipcbiAqIENyZWF0ZSBxdWVyeSBwYXJhbXMgc3RyaW5nIGZvciB1cmxcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1VybFBhcmFtc1tdfSBwYXJhbXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJhbXNVcmwocGFyYW1zOiBNb2RlbHMuVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuICBsZXQgdXJscGFydHM6IHN0cmluZ1tdID0gW107XG4gIGlmICghcGFyYW1zKSByZXR1cm4gJyc7XG4gIGlmICghKHBhcmFtcyBpbnN0YW5jZW9mIEFycmF5KSkgcmV0dXJuICcnO1xuICBpZiAocGFyYW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuXG4gIHBhcmFtcy5mb3JFYWNoKHVybHBhcmFtID0+IHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodXJscGFyYW0pICE9PSAne30nKSB7XG5cbiAgICAgIGxldCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgbGV0IHBhcmFtT2JqZWN0ID0gPE9iamVjdD51cmxwYXJhbTtcblxuXG4gICAgICBmb3IgKGxldCBwIGluIHBhcmFtT2JqZWN0KSB7XG4gICAgICAgIGlmIChwYXJhbU9iamVjdFtwXSA9PT0gdm9pZCAwKSBkZWxldGUgcGFyYW1PYmplY3RbcF07XG4gICAgICAgIGlmIChwYXJhbU9iamVjdC5oYXNPd25Qcm9wZXJ0eShwKSAmJiB0eXBlb2YgcCA9PT0gJ3N0cmluZycgJiYgcCAhPT0gJ3JlZ2V4JyAmJiAhKHBhcmFtT2JqZWN0W3BdIGluc3RhbmNlb2YgUmVnRXhwKSkge1xuICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDAgJiYgcFswXSA9PT0gJy8nKSB7XG4gICAgICAgICAgICBsZXQgbmV3TmFtZSA9IHAuc2xpY2UoMSwgcC5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHVybHBhcmFtW25ld05hbWVdID0gdXJscGFyYW1bcF07XG4gICAgICAgICAgICB1cmxwYXJhbVtwXSA9IHZvaWQgMDtcbiAgICAgICAgICAgIHAgPSBuZXdOYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocC5sZW5ndGggPiAwICYmIHBbcC5sZW5ndGggLSAxXSA9PT0gJy8nKSB7XG4gICAgICAgICAgICBsZXQgbmV3TmFtZSA9IHAuc2xpY2UoMCwgcC5sZW5ndGggLSAyKTtcbiAgICAgICAgICAgIHVybHBhcmFtW25ld05hbWVdID0gdXJscGFyYW1bcF07XG4gICAgICAgICAgICB1cmxwYXJhbVtwXSA9IHZvaWQgMDtcbiAgICAgICAgICAgIHAgPSBuZXdOYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgdjogYW55ID0gdXJscGFyYW1bcF07XG4gICAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgIHVybHBhcmFtW3BdID0gSlNPTi5zdHJpbmdpZnkodXJscGFyYW1bcF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB1cmxwYXJhbVtwXSA9IGRvTm90U2VyaWFsaXplID8gPHN0cmluZz51cmxwYXJhbVtwXSA6IGVuY29kZVVSSUNvbXBvbmVudCg8c3RyaW5nPnVybHBhcmFtW3BdKTtcbiAgICAgICAgICBpZiAodXJscGFyYW0ucmVnZXggIT09IHZvaWQgMCAmJiB1cmxwYXJhbS5yZWdleCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuXG4gICAgICAgICAgICBpZiAoIXVybHBhcmFtLnJlZ2V4LnRlc3QoPHN0cmluZz51cmxwYXJhbVtwXSkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBEYXRhOiAke3VybHBhcmFtW3BdfSBpbmNvc3Rpc3RlbnQgd2l0aCByZWdleCAke3VybHBhcmFtLnJlZ2V4LnNvdXJjZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyYW1ldGVycy5wdXNoKGAke3B9PSR7dXJscGFyYW1bcF19YCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICB1cmxwYXJ0cy5wdXNoKHBhcmFtZXRlcnMuam9pbignJicpKTtcblxuXG4gICAgfVxuXG5cbiAgfSk7XG4gIGxldCBqb2luID0gdXJscGFydHMuam9pbigpLnRyaW0oKTtcbiAgaWYgKGpvaW4udHJpbSgpID09PSAnJykgcmV0dXJuICcnO1xuICByZXR1cm4gYD8ke3VybHBhcnRzLmpvaW4oJyYnKX1gO1xufVxuXG5cbmZ1bmN0aW9uIHRyYW5zZm9ybShvKSB7XG4gIGlmICh0eXBlb2YgbyA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KG8pKTtcbiAgfVxuICByZXR1cm4gbztcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVVybE9sZFdheShwYXJhbXM/OiBUZW1wbGF0ZVN0cmluZ3NBcnJheSk6IHN0cmluZyB7XG4gIGlmICghcGFyYW1zKSByZXR1cm4gdGhpcy5lbmRwb2ludDtcbiAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdvYmplY3QnKSB7XG4gICAgcGFyYW1zID0gdHJhbnNmb3JtKHBhcmFtcyk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBwYXJhbXM7XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9wYXJhbXMudHMiXX0=
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBSTVELHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVcsRUFBRSxPQUFlO0lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRSxJQUFJLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQWU7SUFDdkMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBZTtJQUMvQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQUUsT0FBTyxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUM7SUFDeEUsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFXLEVBQUUsTUFBZ0I7SUFDMUQsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUUzQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzFCLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFbkIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUVWLE9BQU8sR0FBRyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsQ0FBUztJQUM3QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUFFLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBZTtJQUN4RCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV4QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxZQUFZLEdBQVcsS0FBSyxDQUFDLENBQUM7SUFDbEMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFFbEMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM1RCxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssTUFBTTtnQkFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUN4RCxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssT0FBTztnQkFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDOztnQkFDMUQsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQ2IsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsU0FBUyxXQUFXLENBQUMsTUFBYyxFQUFFLE1BQWdCLEVBQUUsTUFBZ0I7SUFDckUsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXJCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFM0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDO1FBQ25CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQzFFLEtBQUssS0FBSyxXQUFXLEVBQUU7UUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQixPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzVDO1NBQU07UUFDTCxJQUFJLFdBQVcsRUFBRTtZQUVmLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUM3RSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BCLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDNUM7YUFBTTtZQUVMLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNwQixPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO0tBRUY7QUFDSCxDQUFDO0FBR0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxHQUFXO0lBRWhFLE1BQU0sUUFBUSxHQUFHLDhCQUE4QixDQUFDO0lBRWhELEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUUzQixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBRXZCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDN0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2FBQzlCO1lBQ0QsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFBO1NBQ2xCO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFNYixJQUFJLEtBQUssR0FBRztRQUNWLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUk7UUFDN0IsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO0tBQ3pDLENBQUE7SUFFRCxJQUFJLGNBQWMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QsSUFBSSxjQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFFcEYsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTdCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2FBQzdDO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDdEM7UUFJSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxJQUFJLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUc1RixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNoQyxJQUFJLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFOUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFFLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXhDLElBQUksb0JBQW9CLEVBQUU7UUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQ3hDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDM0QsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0tBQzVDO1NBQU07UUFDTCxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUE7S0FDNUM7SUFDRCxHQUFHLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUV0QixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNyRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLO1FBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFFM0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0VBRUU7QUFDRixNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxLQUFLLEdBQUcsd0JBQXdCLEVBQ2xDLE1BQU0sR0FBRyxFQUFFLEVBQ1gsS0FBSyxDQUFDO0lBQ1IsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM5QixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRTtJQUNELElBQUksWUFBWSxHQUFXLE1BQU0sQ0FBQztJQUNsQyxLQUFLLElBQUksQ0FBQyxJQUFJLFlBQVksRUFBRTtRQUMxQixJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixTQUFTO1NBQ1Y7UUFDRCxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFFbEMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZCxTQUFTO2FBQ1Y7WUFDRCxJQUFJLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFHakMsSUFBSSxJQUFJLENBQUM7Z0JBQ1QsSUFBSTtvQkFDRixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDOUI7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRztnQkFDbkIsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7b0JBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ2pCLFNBQVM7aUJBQ1Y7YUFRRjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUEwQixFQUFFLGlCQUEwQixLQUFLO0lBQ3RGLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRW5DLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUVyQyxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUM7WUFDOUIsSUFBSSxXQUFXLEdBQVcsUUFBUSxDQUFDO1lBR25DLEtBQUssSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFO2dCQUN6QixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7b0JBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxFQUFFO29CQUNsSCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7d0JBQ2hDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQzt3QkFDckIsQ0FBQyxHQUFHLE9BQU8sQ0FBQztxQkFDYjtvQkFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTt3QkFDM0MsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO3dCQUNyQixDQUFDLEdBQUcsT0FBTyxDQUFDO3FCQUNiO29CQUNELElBQUksQ0FBQyxHQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFlBQVksTUFBTSxFQUFFO3dCQUN2QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDM0M7b0JBQ0QsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBUyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0YsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLFlBQVksTUFBTSxFQUFFO3dCQUVqRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7eUJBQ3ZGO3FCQUNGO29CQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDeEM7YUFFRjtZQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBR3JDO0lBR0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUdELFNBQVMsU0FBUyxDQUFDLENBQUM7SUFDbEIsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDekIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFHRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBNkI7SUFDNUQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDOUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM1QjtJQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLENBQUM7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBkaWZmQ2hhcnMgfSBmcm9tICdkaWZmJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL2Jyb3dzZXInO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IGxvZyA9IExvZy5jcmVhdGUoJ1tuZzItcmVzdF0gcGFyYW1zJywgTGV2ZWwuX19OT1RISU5HKVxuXG5cblxuLyoqIGNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHBhdHRlcm4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkKHBhdHRlcm46IHN0cmluZykge1xuICByZXR1cm4gKG5ldyBSZWdFeHAoJ1xcLzpbYS16QS1aXSonLCAnZycpKS50ZXN0KHBhdHRlcm4ucmVwbGFjZSgnOi8vJywgJycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKHVybDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFIZWxwZXJzLmNoZWNrVmFsaWRVcmwodXJsKSkge1xuICAgIGxvZy5lcnJvcihgSW5jb3JyZWN0IHVybDogJHt1cmx9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSA9PT0gJy8nKSB1cmwgPSB1cmwuc2xpY2UoMCwgdXJsLmxlbmd0aCAtIDIpO1xuICBpZiAocGF0dGVybi5jaGFyQXQocGF0dGVybi5sZW5ndGggLSAxKSA9PT0gJy8nKSBwYXR0ZXJuID0gcGF0dGVybi5zbGljZSgwLCB1cmwubGVuZ3RoIC0gMik7XG4gIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLy9nLCAnXFwvJyk7XG4gIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvOlthLXpBLVpdKicsICdnJyksICcuKycpO1xuICBsZXQgcmVnID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCAnZycpO1xuICByZXR1cm4gcmVnLnRlc3QodXJsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVscyhwYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGxldCBtID0gcGF0dGVybi5tYXRjaChuZXcgUmVnRXhwKCdbYS16LUEtWl0qXFwvOicsICdnJykpO1xuICByZXR1cm4gbS5tYXAocCA9PiBwLnJlcGxhY2UoJy86JywgJycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3RQcmFtc05hbWVzKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKHBhdHRlcm4uY2hhckF0KHBhdHRlcm4ubGVuZ3RoIC0gMSkgIT09ICcvJykgcGF0dGVybiA9IGAke3BhdHRlcm59L2A7XG4gIGxldCBtID0gcGF0dGVybi5tYXRjaChuZXcgUmVnRXhwKCc6W2EtekEtWl0qXFwvJywgJ2cnKSk7XG4gIGxldCByZXMgPSBtLm1hcChwID0+IHAucmVwbGFjZSgnOicsICcnKS5yZXBsYWNlKCcvJywgJycpKTtcbiAgcmV0dXJuIHJlcy5maWx0ZXIocCA9PiBwLnRyaW0oKSAhPT0gJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNNb2RlbHModXJsOiBzdHJpbmcsIG1vZGVsczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgaWYgKHVybC5jaGFyQXQoMCkgIT09ICcvJykgdXJsID0gJy8nICsgdXJsO1xuXG4gIGxldCByZXMgPSBtb2RlbHMuZmlsdGVyKG0gPT4ge1xuICAgIGxldCB3b3JkID0gJy8nICsgbTtcblxuICAgIGxldCBpaWkgPSB1cmwuaW5kZXhPZih3b3JkKTtcblxuICAgIGlmIChpaWkgKyB3b3JkLmxlbmd0aCA8IHVybC5sZW5ndGggJiYgdXJsLmNoYXJBdChpaWkgKyB3b3JkLmxlbmd0aCkgIT09ICcvJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaWlpICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvJyArIG0sICdnJyksICcnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pLmxlbmd0aDtcblxuICByZXR1cm4gcmVzID09PSBtb2RlbHMubGVuZ3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnMobjogbnVtYmVyKTogc3RyaW5nIHtcbiAgbGV0IHJlcyA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgcmVzICs9ICcqJztcbiAgcmV0dXJuIHJlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3RQYXJhbXModXJsOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IE9iamVjdCB7XG4gIGxldCByZXMgPSB7fTtcbiAgbGV0IG1vZGVscyA9IGdldFJlc3RQcmFtc05hbWVzKHBhdHRlcm4pO1xuXG4gIG1vZGVscy5mb3JFYWNoKG0gPT4ge1xuICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoYDoke219YCwgc3RhcnMobS5sZW5ndGgpKTtcbiAgfSlcblxuICBsZXQgY3VycmVudE1vZGVsOiBzdHJpbmcgPSB2b2lkIDA7XG4gIGRpZmZDaGFycyhwYXR0ZXJuLCB1cmwpLmZvckVhY2goZCA9PiB7XG5cbiAgICBpZiAoZC5hZGRlZCkge1xuICAgICAgaWYgKCFpc05hTihOdW1iZXIoZC52YWx1ZSkpKSByZXNbY3VycmVudE1vZGVsXSA9IE51bWJlcihkLnZhbHVlKTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAndHJ1ZScpIHJlc1tjdXJyZW50TW9kZWxdID0gdHJ1ZTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAnZmFsc2UnKSByZXNbY3VycmVudE1vZGVsXSA9IGZhbHNlO1xuICAgICAgZWxzZSByZXNbY3VycmVudE1vZGVsXSA9IGRlY29kZVVSSUNvbXBvbmVudChkLnZhbHVlKTtcbiAgICAgIGN1cnJlbnRNb2RlbCA9IHZvaWQgMDtcbiAgICB9XG4gICAgbGV0IG0gPSBkLnZhbHVlLnJlcGxhY2UoJzonLCBcIlwiKTtcblxuICAgIGlmIChkLnJlbW92ZWQpIHtcbiAgICAgIGN1cnJlbnRNb2RlbCA9IG1vZGVscy5zaGlmdCgpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59XG5cbmV4cG9ydCBjb25zdCByZWdleGlzUGF0aCA9IC9bXlxcLi5dKyhcXC5bXlxcLi5dKykrL2c7XG5cbi8qKlxuICogTW9kZWxzIGxpa2UgYm9va3MvOmlkXG4gKi9cbmZ1bmN0aW9uIGN1dFVybE1vZGVsKHBhcmFtczogT2JqZWN0LCBtb2RlbHM6IHN0cmluZ1tdLCBvdXRwdXQ6IHN0cmluZ1tdKSB7XG4gIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSByZXR1cm4gb3V0cHV0LmpvaW4oJ1xcLycpO1xuICBsZXQgbSA9IG1vZGVscy5wb3AoKTtcblxuICBsZXQgcGFyYW0gPSBtLm1hdGNoKC86W2EtekEtWjAtOVxcLl0rLylbMF0ucmVwbGFjZSgnOicsICcnKTtcbiAgY29uc3QgcGFyYW1Jc1BhdGggPSByZWdleGlzUGF0aC50ZXN0KHBhcmFtKVxuXG4gIGxldCBtb2RlbCA9IG0ubWF0Y2goL1thLXpBLVowLTldK1xcLy8pWzBdLnJlcGxhY2UoJ1xcLycsICcnKTtcbiAgaWYgKHBhcmFtcyA9PT0gdm9pZCAwIHx8XG4gICAgKHBhcmFtSXNQYXRoID8gXy5nZXQocGFyYW1zLCBwYXJhbSkgPT09IHZvaWQgMCA6IHBhcmFtc1twYXJhbV0gPT09IHZvaWQgMCkgfHxcbiAgICBwYXJhbSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvdXRwdXQubGVuZ3RoID0gMDtcbiAgICBvdXRwdXQudW5zaGlmdChtb2RlbClcbiAgICByZXR1cm4gY3V0VXJsTW9kZWwocGFyYW1zLCBtb2RlbHMsIG91dHB1dCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHBhcmFtSXNQYXRoKSB7XG5cbiAgICAgIGxldCBtcmVwID0gbS5yZXBsYWNlKG5ldyBSZWdFeHAoYDoke3BhcmFtfWAsICdnJyksIGAke18uZ2V0KHBhcmFtcywgcGFyYW0pfWApXG4gICAgICBvdXRwdXQudW5zaGlmdChtcmVwKVxuICAgICAgcmV0dXJuIGN1dFVybE1vZGVsKHBhcmFtcywgbW9kZWxzLCBvdXRwdXQpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCBtcmVwID0gbS5yZXBsYWNlKG5ldyBSZWdFeHAoYDoke3BhcmFtfWAsICdnJyksIGAke3BhcmFtc1twYXJhbV19YClcbiAgICAgIG91dHB1dC51bnNoaWZ0KG1yZXApXG4gICAgICByZXR1cm4gY3V0VXJsTW9kZWwocGFyYW1zLCBtb2RlbHMsIG91dHB1dCk7XG4gICAgfVxuXG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJwb2xhdGVQYXJhbXNUb1VybChwYXJhbXM6IE9iamVjdCwgdXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIGNvbnN0IHJlZ2V4SW50ID0gL1xcW1xcWyhbXlxcLi5dK1xcLlteXFwuLl0rKStcXF1cXF0vZztcblxuICB1cmwgPSB1cmwuc3BsaXQoJy8nKS5tYXAocCA9PiB7XG5cbiAgICBsZXQgaXNQYXJhbSA9IHAuc3RhcnRzV2l0aCgnOicpXG4gICAgaWYgKGlzUGFyYW0pIHtcbiAgICAgIGxldCBwYXJ0ID0gcC5zbGljZSgxKTtcblxuICAgICAgaWYgKHJlZ2V4SW50LnRlc3QocGFydCkpIHtcblxuICAgICAgICBwYXJ0ID0gcGFydC5yZXBsYWNlKCdbWycsICcnKVxuICAgICAgICBwYXJ0ID0gcGFydC5yZXBsYWNlKCddXScsICcnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGA6JHtwYXJ0fWBcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0pLmpvaW4oJy8nKTtcblxuXG5cblxuXG4gIGxldCBzbGFzaCA9IHtcbiAgICBzdGFydDogdXJsLmNoYXJBdCgwKSA9PT0gJ1xcLycsXG4gICAgZW5kOiB1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSA9PT0gJ1xcLydcbiAgfVxuXG4gIGxldCBtb3JlUHJhbXNPbkVuZCA9IHVybC5tYXRjaCgvKFxcLzpbYS16QS1aMC05XFwuXSspezIsMTB9L2cpO1xuICBpZiAobW9yZVByYW1zT25FbmQgJiYgKEFycmF5LmlzQXJyYXkobW9yZVByYW1zT25FbmQpICYmIG1vcmVQcmFtc09uRW5kLmxlbmd0aCA9PT0gMSkpIHtcblxuICAgIGxldCBtID0gbW9yZVByYW1zT25FbmRbMF07XG4gICAgbGV0IG1hdGNoID0gbS5tYXRjaCgvXFwvOlthLXpBLVowLTlcXC5dKy9nKTtcblxuICAgIG1hdGNoLmZvckVhY2goZSA9PiB7XG4gICAgICBsZXQgYyA9IGUucmVwbGFjZSgnXFwvOicsICcnKTtcblxuICAgICAgaWYgKHJlZ2V4aXNQYXRoLnRlc3QoYykpIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoZSwgYC8ke18uZ2V0KHBhcmFtcywgYyl9YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGUsIGAvJHtwYXJhbXNbY119YClcbiAgICAgIH1cblxuXG5cbiAgICB9KVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBsZXQgbmVzdGVkUGFyYW1zID0gdXJsLm1hdGNoKC9bYS16QS1aMC05XStcXC86W2EtekEtWjAtOVxcLl0rL2cpO1xuICBpZiAoIW5lc3RlZFBhcmFtcyB8fCAoQXJyYXkuaXNBcnJheShuZXN0ZWRQYXJhbXMpICYmIG5lc3RlZFBhcmFtcy5sZW5ndGggPT09IDApKSByZXR1cm4gdXJsO1xuXG5cbiAgaWYgKCFzbGFzaC5lbmQpIHVybCA9IGAke3VybH0vYDtcbiAgbGV0IGFkZFVuZGVmaW5lZEZvckFsb25lID0gKCEvOlthLXpBLVowLTlcXC5dK1xcLyQvZy50ZXN0KHVybCkgJiYgL1thLXpBLVowLTldK1xcLyQvZy50ZXN0KHVybCkpO1xuXG4gIGxldCByZXBsYWNlID0gKG5lc3RlZFBhcmFtcy5sZW5ndGggPiAxID8gbmVzdGVkUGFyYW1zLmpvaW4oJ1xcLycpIDogbmVzdGVkUGFyYW1zWzBdKSArXG4gICAgKGFkZFVuZGVmaW5lZEZvckFsb25lID8gJ1xcLycgKyB1cmwubWF0Y2goL1thLXpBLVowLTldK1xcLyQvZylbMF0gOiAnXFwvJyk7XG4gIGxldCBiZWdpbkhyZWYgPSB1cmwucmVwbGFjZShyZXBsYWNlLCAnJylcblxuICBpZiAoYWRkVW5kZWZpbmVkRm9yQWxvbmUpIHtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwvJC9nLCAnLzp1bmRlZmluZWQnKVxuICAgIG5lc3RlZFBhcmFtcyA9IHVybC5tYXRjaCgvW2EtekEtWjAtOV0rXFwvOlthLXpBLVowLTlcXC5dKy9nKTtcbiAgICB1cmwgPSBjdXRVcmxNb2RlbChwYXJhbXMsIG5lc3RlZFBhcmFtcywgW10pXG4gIH0gZWxzZSB7XG4gICAgdXJsID0gY3V0VXJsTW9kZWwocGFyYW1zLCBuZXN0ZWRQYXJhbXMsIFtdKVxuICB9XG4gIHVybCA9IGJlZ2luSHJlZiArIHVybDtcblxuICBpZiAodXJsLmNoYXJBdCh1cmwubGVuZ3RoIC0gMSkgIT09ICcvJyAmJiBzbGFzaC5lbmQpIHVybCA9IGAke3VybH0vYDtcbiAgaWYgKHVybC5jaGFyQXQoMCkgIT09ICdcXC8nICYmIHNsYXNoLnN0YXJ0KSB1cmwgPSBgLyR7dXJsfWA7XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBHZXQgcXVlcnkgcGFyYW1zIGZyb20gdXJsLCBsaWtlICdleCcgaW4gL2FwaS9ib29rcz9leD12YWx1ZVxuKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVVcmwodXJsOiBzdHJpbmcpOiBPYmplY3Qge1xuICBsZXQgcmVnZXggPSAvWz8mXShbXj0jXSspPShbXiYjXSopL2csXG4gICAgcGFyYW1zID0ge30sXG4gICAgbWF0Y2g7XG4gIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModXJsKSkge1xuICAgIHBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMV0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFsyXSk7XG4gIH1cbiAgbGV0IHBhcmFtc09iamVjdCA9IDxPYmplY3Q+cGFyYW1zO1xuICBmb3IgKGxldCBwIGluIHBhcmFtc09iamVjdCkge1xuICAgIGlmIChwYXJhbXNPYmplY3RbcF0gPT09IHZvaWQgMCkge1xuICAgICAgZGVsZXRlIHBhcmFtc09iamVjdFtwXTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAocGFyYW1zT2JqZWN0Lmhhc093blByb3BlcnR5KHApKSB7XG5cbiAgICAgIGxldCBuID0gTnVtYmVyKHBhcmFtc1twXSk7XG4gICAgICBpZiAoIWlzTmFOKG4pKSB7XG4gICAgICAgIHBhcmFtc1twXSA9IG47XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXJhbXNbcF0gPT09ICdzdHJpbmcnKSB7XG5cblxuICAgICAgICBsZXQganNvbjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShwYXJhbXNbcF0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikgeyB9XG4gICAgICAgIGlmIChqc29uICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBwYXJhbXNbcF0gPSBqc29uO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cblxuXG5cblxuXG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuLyoqXG4gKiBDcmVhdGUgcXVlcnkgcGFyYW1zIHN0cmluZyBmb3IgdXJsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtVcmxQYXJhbXNbXX0gcGFyYW1zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyYW1zVXJsKHBhcmFtczogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgbGV0IHVybHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoIXBhcmFtcykgcmV0dXJuICcnO1xuICBpZiAoIShwYXJhbXMgaW5zdGFuY2VvZiBBcnJheSkpIHJldHVybiAnJztcbiAgaWYgKHBhcmFtcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcblxuICBwYXJhbXMuZm9yRWFjaCh1cmxwYXJhbSA9PiB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHVybHBhcmFtKSAhPT0gJ3t9Jykge1xuXG4gICAgICBsZXQgcGFyYW1ldGVyczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBwYXJhbU9iamVjdCA9IDxPYmplY3Q+dXJscGFyYW07XG5cblxuICAgICAgZm9yIChsZXQgcCBpbiBwYXJhbU9iamVjdCkge1xuICAgICAgICBpZiAocGFyYW1PYmplY3RbcF0gPT09IHZvaWQgMCkgZGVsZXRlIHBhcmFtT2JqZWN0W3BdO1xuICAgICAgICBpZiAocGFyYW1PYmplY3QuaGFzT3duUHJvcGVydHkocCkgJiYgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmIHAgIT09ICdyZWdleCcgJiYgIShwYXJhbU9iamVjdFtwXSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHtcbiAgICAgICAgICBpZiAocC5sZW5ndGggPiAwICYmIHBbMF0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDEsIHAubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHAubGVuZ3RoID4gMCAmJiBwW3AubGVuZ3RoIC0gMV0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDAsIHAubGVuZ3RoIC0gMik7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IHY6IGFueSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICB1cmxwYXJhbVtwXSA9IEpTT04uc3RyaW5naWZ5KHVybHBhcmFtW3BdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJscGFyYW1bcF0gPSBkb05vdFNlcmlhbGl6ZSA/IDxzdHJpbmc+dXJscGFyYW1bcF0gOiBlbmNvZGVVUklDb21wb25lbnQoPHN0cmluZz51cmxwYXJhbVtwXSk7XG4gICAgICAgICAgaWYgKHVybHBhcmFtLnJlZ2V4ICE9PSB2b2lkIDAgJiYgdXJscGFyYW0ucmVnZXggaW5zdGFuY2VvZiBSZWdFeHApIHtcblxuICAgICAgICAgICAgaWYgKCF1cmxwYXJhbS5yZWdleC50ZXN0KDxzdHJpbmc+dXJscGFyYW1bcF0pKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRGF0YTogJHt1cmxwYXJhbVtwXX0gaW5jb3N0aXN0ZW50IHdpdGggcmVnZXggJHt1cmxwYXJhbS5yZWdleC5zb3VyY2V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmFtZXRlcnMucHVzaChgJHtwfT0ke3VybHBhcmFtW3BdfWApO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgdXJscGFydHMucHVzaChwYXJhbWV0ZXJzLmpvaW4oJyYnKSk7XG5cblxuICAgIH1cblxuXG4gIH0pO1xuICBsZXQgam9pbiA9IHVybHBhcnRzLmpvaW4oKS50cmltKCk7XG4gIGlmIChqb2luLnRyaW0oKSA9PT0gJycpIHJldHVybiAnJztcbiAgcmV0dXJuIGA/JHt1cmxwYXJ0cy5qb2luKCcmJyl9YDtcbn1cblxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0obykge1xuICBpZiAodHlwZW9mIG8gPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShvKSk7XG4gIH1cbiAgcmV0dXJuIG87XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVVcmxPbGRXYXkocGFyYW1zPzogVGVtcGxhdGVTdHJpbmdzQXJyYXkpOiBzdHJpbmcge1xuICBpZiAoIXBhcmFtcykgcmV0dXJuIHRoaXMuZW5kcG9pbnQ7XG4gIGlmICh0eXBlb2YgcGFyYW1zID09PSAnb2JqZWN0Jykge1xuICAgIHBhcmFtcyA9IHRyYW5zZm9ybShwYXJhbXMpO1xuICB9XG4gIHJldHVybiB0aGlzLmVuZHBvaW50ICsgJy8nICsgcGFyYW1zO1xufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvcGFyYW1zLnRzIl19
@@ -99,4 +99,4 @@ class RequestCache {
99
99
  export { RequestCache };
100
100
  ;
101
101
  ({}); // @--end-of-file-for-module=ng2-rest lib/request-cache.ts
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9yZXF1ZXN0LWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUV4RDs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7YUFFUCxzQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQzthQUUzQyxXQUFNLEdBQW1CLEVBQUUsQ0FBQzthQUM1QiwrQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFFMUMsTUFBTSxDQUFDLHVCQUF1QjtRQUNwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsRUFBRTtZQUM1QyxZQUFZLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEUsSUFBSSxRQUFRLEdBQW1CLEVBQUUsQ0FBQztZQUNsQyxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJO29CQUNGLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBbUIsQ0FBQztpQkFDL0M7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7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QUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCxLQUFLO1FBQ0gsWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU07UUFDSixZQUFZLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7O1NBakhVLFlBQVk7QUFxSHhCLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgUmVzdEhlYWRlcnMgfSBmcm9tICcuL3Jlc3QtaGVhZGVycyc7XG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKCdyZXF1ZXN0LWNhY2hlJywgTGV2ZWwuX19OT1RISU5HKVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiB0aGVyZSBpcyBDYWNoZSBBUEkgZm9yIHRoYXRcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RDYWNoZSB7XG5cbiAgc3RhdGljIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gJ25nMnJlc3RyZXF1ZXN0Y2FjaGUnO1xuXG4gIHByaXZhdGUgc3RhdGljIGNhY2hlZDogUmVxdWVzdENhY2hlW10gPSBbXTtcbiAgcHJpdmF0ZSBzdGF0aWMgaXNSZXN0b3JlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZTtcblxuICBwcml2YXRlIHN0YXRpYyByZXN0b3JlRnJvbUxvY2FsU3RvcmFnZSgpIHtcbiAgICBpZiAoSGVscGVycy5pc05vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFSZXF1ZXN0Q2FjaGUuaXNSZXN0b3JlZEZyb21Mb2NhbFN0b3JhZ2UpIHtcbiAgICAgIFJlcXVlc3RDYWNoZS5pc1Jlc3RvcmVkRnJvbUxvY2FsU3RvcmFnZSA9IHRydWU7XG4gICAgICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oUmVxdWVzdENhY2hlLkxPQ0FMX1NUT1JBR0VfS0VZKTtcbiAgICAgIGxldCByZXF1ZXN0czogUmVxdWVzdENhY2hlW10gPSBbXTtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVxdWVzdHMgPSBKU09OLnBhcnNlKGRhdGEpIGFzIFJlcXVlc3RDYWNoZVtdO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdG9yZWQgPSByZXF1ZXN0cy5tYXAociA9PiB7XG4gICAgICAgICAgbGV0IHsgc291cmNlUmVxdWVzdCwgcmVzcG9uc2VUZXh0LCBib2R5LCBoZWFkZXJzLCBjaXJjdWxhcixcbiAgICAgICAgICAgIGVudGl0eSwgaXNBcnJheSwgY29va2llcywgc3RhdHVzQ29kZSB9ID0gci5yZXNwb25zZTtcbiAgICAgICAgICByLnJlc3BvbnNlID0gbmV3IE1vZGVscy5IdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICBzb3VyY2VSZXF1ZXN0LFxuICAgICAgICAgICAgcmVzcG9uc2VUZXh0LFxuICAgICAgICAgICAgUmVzdEhlYWRlcnMuZnJvbShoZWFkZXJzKSxcbiAgICAgICAgICAgIHN0YXR1c0NvZGUsXG4gICAgICAgICAgICBlbnRpdHksXG4gICAgICAgICAgICBjaXJjdWxhcixcbiAgICAgICAgICAgIC0xLCAvLyBqb2JpZCBmcm9tIGxvY2FsIHN0b3JhZ2UgVE9ET1xuICAgICAgICAgICAgaXNBcnJheSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHIgPSBuZXcgUmVxdWVzdENhY2hlKHIucmVzcG9uc2UpO1xuICAgICAgICAgIHIucmVzcG9uc2UucnEgPSByO1xuXG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0pO1xuICAgICAgICBsb2cuaSgnUkVTVE9SRUQgRlJPTSBMT0NBTCBTVE9SQUdFJywgcmVzdG9yZWQpO1xuICAgICAgICBSZXF1ZXN0Q2FjaGUuY2FjaGVkID0gcmVzdG9yZWQ7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbmRCeShzb3VyY2VSZXF1ZXN0OiBNb2RlbHMuSGFuZGxlUmVzdWx0U291cmNlUmVxdWVzdE9wdGlvbnMpIHtcbiAgICBsb2cuaSgnZmluZGJ5Jywgc291cmNlUmVxdWVzdClcbiAgICBsb2cuaSgnUmVxdWVzdENhY2hlLmNhY2hlZCcsIFJlcXVlc3RDYWNoZS5jYWNoZWQpXG4gICAgUmVxdWVzdENhY2hlLnJlc3RvcmVGcm9tTG9jYWxTdG9yYWdlKCk7XG4gICAgcmV0dXJuIFJlcXVlc3RDYWNoZS5jYWNoZWQuZmluZChjID0+IHtcbiAgICAgIGNvbnN0IGEgPSBjLnJlc3BvbnNlLnNvdXJjZVJlcXVlc3Q7XG4gICAgICBjb25zdCBiID0gc291cmNlUmVxdWVzdDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGEuaXNBcnJheSA9PT0gYi5pc0FycmF5ICYmXG4gICAgICAgIGEudXJsID09PSBiLnVybCAmJlxuICAgICAgICBhLm1ldGhvZCA9PT0gYi5tZXRob2QgJiZcbiAgICAgICAgYS5ib2R5ID09PSBiLmJvZHlcbiAgICAgIClcbiAgICB9KTtcbiAgfVxuXG5cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXNwb25zZTogTW9kZWxzLkh0dHBSZXNwb25zZTxhbnk+XG4gICkge1xuXG4gIH1cblxuICBnZXQgY29udGFpbnNDYWNoZSgpIHtcbiAgICBSZXF1ZXN0Q2FjaGUucmVzdG9yZUZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgICByZXR1cm4gUmVxdWVzdENhY2hlLmNhY2hlZC5pbmNsdWRlcyh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgcGVyc2lzdHNJbkxvY2FsU3RvcmFnZSgpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShSZXF1ZXN0Q2FjaGUuTE9DQUxfU1RPUkFHRV9LRVksXG4gICAgICBKU09OLnN0cmluZ2lmeShSZXF1ZXN0Q2FjaGUuY2FjaGVkLm1hcChyID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgICAgc291cmNlUmVxdWVzdDogci5yZXNwb25zZS5zb3VyY2VSZXF1ZXN0LFxuICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiByLnJlc3BvbnNlLnJlc3BvbnNlVGV4dCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHIucmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHIucmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGVudGl0eTogci5yZXNwb25zZS5lbnRpdHksXG4gICAgICAgICAgICBjaXJjdWxhcjogci5yZXNwb25zZS5jaXJjdWxhcixcbiAgICAgICAgICAgIGlzQXJyYXk6IHIucmVzcG9uc2UuaXNBcnJheSxcbiAgICAgICAgICB9IGFzIE1vZGVscy5IdHRwUmVzcG9uc2U8YW55PlxuICAgICAgICB9O1xuICAgICAgfSkpKTtcbiAgfVxuXG4gIHN0b3JlKCkge1xuICAgIFJlcXVlc3RDYWNoZS5yZXN0b3JlRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIGlmICghdGhpcy5jb250YWluc0NhY2hlKSB7XG4gICAgICBSZXF1ZXN0Q2FjaGUuY2FjaGVkLnB1c2godGhpcyk7XG4gICAgICB0aGlzLnBlcnNpc3RzSW5Mb2NhbFN0b3JhZ2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ2FscmVhZHkgc3RvcmVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIFJlcXVlc3RDYWNoZS5yZXN0b3JlRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIGNvbnN0IGluZGV4ID0gUmVxdWVzdENhY2hlLmNhY2hlZC5pbmRleE9mKHRoaXMpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIFJlcXVlc3RDYWNoZS5jYWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMucGVyc2lzdHNJbkxvY2FsU3RvcmFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSByZW1vdmVkJyk7XG4gICAgfVxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9yZXF1ZXN0LWNhY2hlLnRzIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvcmVxdWVzdC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFeEQ7OztHQUdHO0FBQ0gsTUFBYSxZQUFZO2FBRVAsc0JBQWlCLEdBQUcscUJBQXFCLENBQUM7YUFFM0MsV0FBTSxHQUFtQixFQUFFLENBQUM7YUFDNUIsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO0lBRTFDLE1BQU0sQ0FBQyx1QkFBdUI7UUFDcEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUU7WUFDNUMsWUFBWSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2xFLElBQUksUUFBUSxHQUFtQixFQUFFLENBQUM7WUFDbEMsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSTtvQkFDRixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW1CLENBQUM7aUJBQy9DO2dCQUFDLE9BQU8sS0FBSyxFQUFFO2lC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SixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsS0FBSztRQUNILFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDOztTQWpIVSxZQUFZO0FBcUh4QixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IFJlc3RIZWFkZXJzIH0gZnJvbSAnLi9yZXN0LWhlYWRlcnMnO1xuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgncmVxdWVzdC1jYWNoZScsIExldmVsLl9fTk9USElORylcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogdGhlcmUgaXMgQ2FjaGUgQVBJIGZvciB0aGF0XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0Q2FjaGUge1xuXG4gIHN0YXRpYyByZWFkb25seSBMT0NBTF9TVE9SQUdFX0tFWSA9ICduZzJyZXN0cmVxdWVzdGNhY2hlJztcblxuICBwcml2YXRlIHN0YXRpYyBjYWNoZWQ6IFJlcXVlc3RDYWNoZVtdID0gW107XG4gIHByaXZhdGUgc3RhdGljIGlzUmVzdG9yZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVzdG9yZUZyb21Mb2NhbFN0b3JhZ2UoKSB7XG4gICAgaWYgKEhlbHBlcnMuaXNOb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghUmVxdWVzdENhY2hlLmlzUmVzdG9yZWRGcm9tTG9jYWxTdG9yYWdlKSB7XG4gICAgICBSZXF1ZXN0Q2FjaGUuaXNSZXN0b3JlZEZyb21Mb2NhbFN0b3JhZ2UgPSB0cnVlO1xuICAgICAgY29uc3QgZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFJlcXVlc3RDYWNoZS5MT0NBTF9TVE9SQUdFX0tFWSk7XG4gICAgICBsZXQgcmVxdWVzdHM6IFJlcXVlc3RDYWNoZVtdID0gW107XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlcXVlc3RzID0gSlNPTi5wYXJzZShkYXRhKSBhcyBSZXF1ZXN0Q2FjaGVbXTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcblxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3RvcmVkID0gcmVxdWVzdHMubWFwKHIgPT4ge1xuICAgICAgICAgIGxldCB7IHNvdXJjZVJlcXVlc3QsIHJlc3BvbnNlVGV4dCwgYm9keSwgaGVhZGVycywgY2lyY3VsYXIsXG4gICAgICAgICAgICBlbnRpdHksIGlzQXJyYXksIGNvb2tpZXMsIHN0YXR1c0NvZGUgfSA9IHIucmVzcG9uc2U7XG4gICAgICAgICAgci5yZXNwb25zZSA9IG5ldyBNb2RlbHMuSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgc291cmNlUmVxdWVzdCxcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCxcbiAgICAgICAgICAgIFJlc3RIZWFkZXJzLmZyb20oaGVhZGVycyksXG4gICAgICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICAgICAgZW50aXR5LFxuICAgICAgICAgICAgY2lyY3VsYXIsXG4gICAgICAgICAgICAtMSwgLy8gam9iaWQgZnJvbSBsb2NhbCBzdG9yYWdlIFRPRE9cbiAgICAgICAgICAgIGlzQXJyYXksXG4gICAgICAgICAgKTtcbiAgICAgICAgICByID0gbmV3IFJlcXVlc3RDYWNoZShyLnJlc3BvbnNlKTtcbiAgICAgICAgICByLnJlc3BvbnNlLnJxID0gcjtcblxuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmkoJ1JFU1RPUkVEIEZST00gTE9DQUwgU1RPUkFHRScsIHJlc3RvcmVkKTtcbiAgICAgICAgUmVxdWVzdENhY2hlLmNhY2hlZCA9IHJlc3RvcmVkO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmaW5kQnkoc291cmNlUmVxdWVzdDogTW9kZWxzLkhhbmRsZVJlc3VsdFNvdXJjZVJlcXVlc3RPcHRpb25zKSB7XG4gICAgbG9nLmkoJ2ZpbmRieScsIHNvdXJjZVJlcXVlc3QpXG4gICAgbG9nLmkoJ1JlcXVlc3RDYWNoZS5jYWNoZWQnLCBSZXF1ZXN0Q2FjaGUuY2FjaGVkKVxuICAgIFJlcXVlc3RDYWNoZS5yZXN0b3JlRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIHJldHVybiBSZXF1ZXN0Q2FjaGUuY2FjaGVkLmZpbmQoYyA9PiB7XG4gICAgICBjb25zdCBhID0gYy5yZXNwb25zZS5zb3VyY2VSZXF1ZXN0O1xuICAgICAgY29uc3QgYiA9IHNvdXJjZVJlcXVlc3Q7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBhLmlzQXJyYXkgPT09IGIuaXNBcnJheSAmJlxuICAgICAgICBhLnVybCA9PT0gYi51cmwgJiZcbiAgICAgICAgYS5tZXRob2QgPT09IGIubWV0aG9kICYmXG4gICAgICAgIGEuYm9keSA9PT0gYi5ib2R5XG4gICAgICApXG4gICAgfSk7XG4gIH1cblxuXG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVzcG9uc2U6IE1vZGVscy5IdHRwUmVzcG9uc2U8YW55PlxuICApIHtcblxuICB9XG5cbiAgZ2V0IGNvbnRhaW5zQ2FjaGUoKSB7XG4gICAgUmVxdWVzdENhY2hlLnJlc3RvcmVGcm9tTG9jYWxTdG9yYWdlKCk7XG4gICAgcmV0dXJuIFJlcXVlc3RDYWNoZS5jYWNoZWQuaW5jbHVkZXModGhpcyk7XG4gIH1cblxuICBwcml2YXRlIHBlcnNpc3RzSW5Mb2NhbFN0b3JhZ2UoKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUmVxdWVzdENhY2hlLkxPQ0FMX1NUT1JBR0VfS0VZLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoUmVxdWVzdENhY2hlLmNhY2hlZC5tYXAociA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgIHNvdXJjZVJlcXVlc3Q6IHIucmVzcG9uc2Uuc291cmNlUmVxdWVzdCxcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dDogci5yZXNwb25zZS5yZXNwb25zZVRleHQsXG4gICAgICAgICAgICBoZWFkZXJzOiByLnJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiByLnJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICBlbnRpdHk6IHIucmVzcG9uc2UuZW50aXR5LFxuICAgICAgICAgICAgY2lyY3VsYXI6IHIucmVzcG9uc2UuY2lyY3VsYXIsXG4gICAgICAgICAgICBpc0FycmF5OiByLnJlc3BvbnNlLmlzQXJyYXksXG4gICAgICAgICAgfSBhcyBNb2RlbHMuSHR0cFJlc3BvbnNlPGFueT5cbiAgICAgICAgfTtcbiAgICAgIH0pKSk7XG4gIH1cblxuICBzdG9yZSgpIHtcbiAgICBSZXF1ZXN0Q2FjaGUucmVzdG9yZUZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgICBpZiAoIXRoaXMuY29udGFpbnNDYWNoZSkge1xuICAgICAgUmVxdWVzdENhY2hlLmNhY2hlZC5wdXNoKHRoaXMpO1xuICAgICAgdGhpcy5wZXJzaXN0c0luTG9jYWxTdG9yYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhbHJlYWR5IHN0b3JlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICBSZXF1ZXN0Q2FjaGUucmVzdG9yZUZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgICBjb25zdCBpbmRleCA9IFJlcXVlc3RDYWNoZS5jYWNoZWQuaW5kZXhPZih0aGlzKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBSZXF1ZXN0Q2FjaGUuY2FjaGVkLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLnBlcnNpc3RzSW5Mb2NhbFN0b3JhZ2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ2FscmVhZHkgcmVtb3ZlZCcpO1xuICAgIH1cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCBsaWIvcmVxdWVzdC1jYWNoZS50cyJdfQ==