@pipeline-builder/pipeline-core 4.4.5 → 4.4.7

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 (56) hide show
  1. package/lib/cdk.js +1 -1
  2. package/lib/config/app-config.js +1 -1
  3. package/lib/config/aws-config-cdk.js +1 -1
  4. package/lib/config/config-types.d.ts +36 -1
  5. package/lib/config/config-types.js +1 -1
  6. package/lib/config/handler-constants.js +1 -1
  7. package/lib/config/infrastructure-config.js +8 -2
  8. package/lib/config/server-config.js +1 -1
  9. package/lib/config/service-client.js +1 -1
  10. package/lib/core/artifact-manager.js +1 -1
  11. package/lib/core/audit-correlation.js +1 -1
  12. package/lib/core/id-generator.js +1 -1
  13. package/lib/core/metadata-builder.js +1 -1
  14. package/lib/core/metadata-helpers.js +1 -1
  15. package/lib/core/network-types.js +1 -1
  16. package/lib/core/network.js +1 -1
  17. package/lib/core/pipeline-helpers.js +1 -1
  18. package/lib/core/pipeline-registration.js +1 -1
  19. package/lib/core/pipeline-types.js +1 -1
  20. package/lib/core/platform-tls.js +1 -1
  21. package/lib/core/plugin-contract.js +1 -1
  22. package/lib/core/plugin-lookup-envelope.js +1 -1
  23. package/lib/core/quota-exceeded.js +1 -1
  24. package/lib/core/role-types.js +1 -1
  25. package/lib/core/role.js +1 -1
  26. package/lib/core/runtime-check.js +1 -1
  27. package/lib/core/security-group-types.js +1 -1
  28. package/lib/core/security-group.js +1 -1
  29. package/lib/core/security-reports.js +1 -1
  30. package/lib/core/step-manifest.js +1 -1
  31. package/lib/core/synth-failure.js +1 -1
  32. package/lib/handlers/bundle/index.mjs +43 -0
  33. package/lib/handlers/platform-credential.js +1 -1
  34. package/lib/handlers/plugin-lookup-handler.js +1 -1
  35. package/lib/index.js +1 -1
  36. package/lib/pipeline/deploy-attribution.js +1 -1
  37. package/lib/pipeline/pipeline-builder.js +1 -1
  38. package/lib/pipeline/pipeline-configuration.js +1 -1
  39. package/lib/pipeline/plugin-lookup.js +18 -26
  40. package/lib/pipeline/plugin-spec.js +1 -1
  41. package/lib/pipeline/runtime-vuln-check-step.js +1 -1
  42. package/lib/pipeline/source-builder.js +1 -1
  43. package/lib/pipeline/source-types.js +1 -1
  44. package/lib/pipeline/stage-builder.js +1 -1
  45. package/lib/pipeline/step-manifest-recorder.js +1 -1
  46. package/lib/pipeline/step-types.js +1 -1
  47. package/lib/pipeline/structure-preview.js +1 -1
  48. package/lib/template/draft.js +1 -1
  49. package/lib/template/evaluator.js +1 -1
  50. package/lib/template/index.js +1 -1
  51. package/lib/template/plugin-resolver.js +1 -1
  52. package/lib/template/tokenizer.js +1 -1
  53. package/lib/template/topo-sort.js +1 -1
  54. package/lib/template/validate.js +1 -1
  55. package/lib/template/walker.js +1 -1
  56. package/package.json +8 -8
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGVwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5GaWx0ZXIsIFBsdWdpbiB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGEnO1xuaW1wb3J0IHR5cGUgeyBDb21wdXRlVHlwZSBhcyBDZGtDb21wdXRlVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBJRmlsZVNldFByb2R1Y2VyIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZVR5cGUgfSBmcm9tICcuL3NvdXJjZS10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFydGlmYWN0S2V5LCBBcnRpZmFjdE1hbmFnZXIgfSBmcm9tICcuLi9jb3JlL2FydGlmYWN0LW1hbmFnZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB0eXBlIHsgTmV0d29ya0NvbmZpZyB9IGZyb20gJy4uL2NvcmUvbmV0d29yay10eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1ldGFEYXRhVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhbmQgY29uZmlndXJpbmcgYSBwbHVnaW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHBsdWdpbiB0byB1c2VcbiAgICogTXVzdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcGx1Z2luIGluIHRoZSBkYXRhYmFzZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXIgaGFuZGxlIG9mIGFuIGluc3RhbGxlZCBlY29zeXN0ZW0gbGlzdGluZyB0byByZXNvbHZlIHRocm91Z2guXG4gICAqIEFic2VudDogdGhlIG9yZydzIG93biBwbHVnaW4sIHRoZW4gaXRzIHBhcmVudFxuICAgKiBvcmcncywgdGhlbiB0aGUgT2ZmaWNpYWwgbGlzdGluZy4gUHJlc2VudDogb25seSB0aGF0IHB1Ymxpc2hlcidzIGxpc3RpbmcsXG4gICAqIHRocm91Z2ggYW4gaW5zdGFsbC5cbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hlcj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBwbHVnaW4gaW5zdGFuY2VcbiAgICogVXNlZnVsIHdoZW4gdXNpbmcgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsdGVyIGNyaXRlcmlhIGZvciBwbHVnaW4gc2VsZWN0aW9uXG4gICAqIENhbiBiZSB1c2VkIHRvIHNlbGVjdCBzcGVjaWZpYyBwbHVnaW4gdmVyc2lvbnMgb3IgdmFyaWFudHNcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBsdWdpbkZpbHRlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0byBtZXJnZSB3aXRoIHBsdWdpbidzIGRlZmF1bHQgbWV0YWRhdGFcbiAgICogVGhpcyBtZXRhZGF0YSB3aWxsIGJlIGF2YWlsYWJsZSB0byB0aGUgcGx1Z2luIGR1cmluZyBleGVjdXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xufVxuXG4vKipcbiAqIFN5bnRoZXNpcyBzdGVwIGNvbmZpZ3VyYXRpb24gY29tYmluaW5nIHNvdXJjZSBhbmQgcGx1Z2luLlxuICogRXh0ZW5kcyBTdGVwQ3VzdG9taXphdGlvbiB0byBzdXBwb3J0IGluamVjdGluZyBjdXN0b20gY29tbWFuZHMgYW5kIGVudiB2YXJzXG4gKiBpbnRvIHRoZSBzeW50aCBDb2RlQnVpbGQgc3RlcCAoc2FtZSBob29rcyBhdmFpbGFibGUgYXMgc3RhZ2Ugc3RlcHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqXG4gICAqIFNvdXJjZSBjb25maWd1cmF0aW9uIChTMywgR2l0SHViLCBvciBDb2RlU3RhcilcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogU291cmNlVHlwZTtcblxuICAvKipcbiAgICogUGx1Z2luIHRvIHVzZSBmb3Igc3ludGhlc2lzXG4gICAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBzeW50aGVzaXMgc3RlcFxuICAgKiBUaGlzIHdpbGwgYmUgbWVyZ2VkIHdpdGggZ2xvYmFsIG1ldGFkYXRhIGFuZCBwbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xuXG4gIC8qKlxuICAgKiBTdGVwLWxldmVsIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhcHBsaWVkIG9ubHkgdG8gdGhlIHN5bnRoIENvZGVCdWlsZCBzdGVwLlxuICAgKiBPdmVycmlkZXMgdGhlIHBpcGVsaW5lLWxldmVsIGBkZWZhdWx0cy5uZXR3b3JrYCB3aGVuIGJvdGggYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29yaz86IE5ldHdvcmtDb25maWc7XG59XG5cbi8qKlxuICogUGVyLXN0ZXAgY3VzdG9taXphdGlvbiBvcHRpb25zIGZvciBjb21tYW5kcyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICogQ3VzdG9tIGNvbW1hbmRzIGFyZSBpbmplY3RlZCBiZWZvcmUvYWZ0ZXIgdGhlIHBsdWdpbidzIGNvbW1hbmRzLlxuICogQ3VzdG9tIGVudiB2YXJzIGFyZSBtZXJnZWQgb24gdG9wIG9mIHRoZSBwbHVnaW4ncyBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwQ3VzdG9taXphdGlvbiB7XG4gIC8qKiBDb21tYW5kcyB0byBydW4gYmVmb3JlIHRoZSBwbHVnaW4ncyBpbnN0YWxsIGNvbW1hbmRzICovXG4gIHJlYWRvbmx5IHByZUluc3RhbGxDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKiBDb21tYW5kcyB0byBydW4gYWZ0ZXIgdGhlIHBsdWdpbidzIGluc3RhbGwgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcG9zdEluc3RhbGxDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKiBDb21tYW5kcyB0byBydW4gYmVmb3JlIHRoZSBwbHVnaW4ncyBidWlsZCBjb21tYW5kcyAqL1xuICByZWFkb25seSBwcmVDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKiBDb21tYW5kcyB0byBydW4gYWZ0ZXIgdGhlIHBsdWdpbidzIGJ1aWxkIGNvbW1hbmRzICovXG4gIHJlYWRvbmx5IHBvc3RDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gZW52aXJvbm1lbnQgdmFyaWFibGVzIG1lcmdlZCBvbiB0b3Agb2YgdGhlIHBsdWdpbidzIGVudiAqL1xuICByZWFkb25seSBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgaW5wdXQgYXJ0aWZhY3Qgd2l0aCBhbiBvcHRpb25hbCBtb3VudCBkaXJlY3RvcnkuXG4gKiBXaGVuIGRpcmVjdG9yeSBpcyBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgYXJ0aWZhY3QncyBvdXRwdXREaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkaXRpb25hbElucHV0QXJ0aWZhY3RDb25maWcge1xuICAvKiogQXJ0aWZhY3Qga2V5IGlkZW50aWZ5aW5nIHRoZSBzb3VyY2Ugc3RlcCdzIG91dHB1dCAqL1xuICByZWFkb25seSBhcnRpZmFjdDogQXJ0aWZhY3RLZXk7XG5cbiAgLyoqIERpcmVjdG9yeSB0byBtb3VudCB0aGUgaW5wdXQgYXQuIERlZmF1bHRzIHRvIGFydGlmYWN0Lm91dHB1dERpcmVjdG9yeSB3aGVuIG9taXR0ZWQuICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSBzdGVwIHdpdGhpbiBhIHBpcGVsaW5lIHN0YWdlLlxuICogVXNlcyBQbHVnaW5PcHRpb25zIGZvciBuYW1lLWJhc2VkIHBsdWdpbiBzZWxlY3Rpb24gKHJlc29sdmVkIGF0IGJ1aWxkIHRpbWUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlU3RlcE9wdGlvbnMgZXh0ZW5kcyBTdGVwQ3VzdG9taXphdGlvbiB7XG4gIC8qKiBQbHVnaW4gdG8gdXNlIGZvciB0aGlzIHN0ZXAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW5PcHRpb25zO1xuXG4gIC8qKiBTdGVwLWxldmVsIG1ldGFkYXRhIG1lcmdlZCB3aXRoIHN0YWdlIGFuZCBnbG9iYWwgbWV0YWRhdGEgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG5cbiAgLyoqIE9wdGlvbmFsIG5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzdGVwJ3MgQ29kZUJ1aWxkIGFjdGlvbiAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29ya0NvbmZpZztcblxuICAvKipcbiAgICogQ29kZUJ1aWxkIHRpbWVvdXQgaW4gbWludXRlcy5cbiAgICogQGRlZmF1bHQgNjAgKEFXUyBDb2RlQnVpbGQgZGVmYXVsdClcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIHRoaXMgc3RlcCB3aXRoaW4gdGhlIHBpcGVsaW5lIHdhdmUuXG4gICAqIC0gJ3ByZSc6IFJ1bnMgYmVmb3JlIHRoZSBzdGFnZSBkZXBsb3ltZW50IChkZWZhdWx0KVxuICAgKiAtICdwb3N0JzogUnVucyBhZnRlciB0aGUgc3RhZ2UgZGVwbG95bWVudFxuICAgKiBAZGVmYXVsdCAncHJlJ1xuICAgKi9cbiAgcmVhZG9ubHkgcG9zaXRpb24/OiAncHJlJyB8ICdwb3N0JztcblxuICAvKiogQXJ0aWZhY3Qga2V5IGZvciB0aGlzIHN0ZXAncyBwcmltYXJ5IGlucHV0IChyZXNvbHZlZCB2aWEgQXJ0aWZhY3RNYW5hZ2VyKSAqL1xuICByZWFkb25seSBpbnB1dEFydGlmYWN0PzogQXJ0aWZhY3RLZXk7XG5cbiAgLyoqIEFkZGl0aW9uYWwgaW5wdXQgYXJ0aWZhY3RzIGZvciB0aGlzIHN0ZXAuIEVhY2ggZW50cnkgc3BlY2lmaWVzIGFuIGFydGlmYWN0IGFuZCBhbiBvcHRpb25hbCBtb3VudCBkaXJlY3RvcnkuICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cz86IEFkZGl0aW9uYWxJbnB1dEFydGlmYWN0Q29uZmlnW107XG5cbiAgLyoqIE92ZXJyaWRlIHRoZSBwbHVnaW4ncyBmYWlsdXJlIGJlaGF2aW9yIGZvciB0aGlzIHN0ZXAuICovXG4gIHJlYWRvbmx5IGZhaWx1cmVCZWhhdmlvcj86ICdmYWlsJyB8ICd3YXJuJyB8ICdpZ25vcmUnO1xufVxuXG4vKipcbiAqIEEgcGlwZWxpbmUgc3RhZ2UgY29udGFpbmluZyBvbmUgb3IgbW9yZSBidWlsZCBzdGVwcy5cbiAqIEVhY2ggc3RhZ2UgbWFwcyB0byBhIENESyBQaXBlbGluZSB3YXZlLCB3aXRoIHN0ZXBzIGV4ZWN1dGluZyB3aXRoaW4gdGhlIHdhdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VPcHRpb25zIHtcbiAgLyoqIERpc3BsYXkgbmFtZSBmb3IgdGhpcyBzdGFnZSAqL1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENvZGVQaXBlbGluZSBzdGFnZSAod2F2ZSkgbmFtZS4gRGVmYXVsdHMgdG8gYDxzdGFnZU5hbWU+LWFsaWFzYCDigJQgc2VlXG4gICAqIGBjb2RlUGlwZWxpbmVTdGFnZU5hbWVgLCB0aGUgc2luZ2xlIHBsYWNlIHRoYXQgZGVyaXZhdGlvbiBsaXZlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKiBCdWlsZCBzdGVwcyB0byBleGVjdXRlIHdpdGhpbiB0aGlzIHN0YWdlICovXG4gIHJlYWRvbmx5IHN0ZXBzOiBTdGFnZVN0ZXBPcHRpb25zW107XG5cbiAgLyoqXG4gICAqIERlcGxveSBlbnZpcm9ubWVudCB0aGlzIHN0YWdlIHRhcmdldHMgKGUuZy4gYHByb2R1Y3Rpb25gLCBgc3RhZ2luZ2ApLlxuICAgKiBEZWNsYXJpbmcgaXQgbWFya3MgdGhlIHN0YWdlIGFzIGEgKipkZXBsb3kqKiBmb3IgRE9SQSBtZXRyaWNzOiBwaXBlbGluZS1jb3JlXG4gICAqIGxpc3RzIGV2ZXJ5IHN1Y2ggc3RhZ2UgaW4gdGhlIGBwYi5kZXBsb3lzYCB0YWcgYXNcbiAgICogYDxDb2RlUGlwZWxpbmUgc3RhZ2UgbmFtZT46PGVudmlyb25tZW50PmAg4oCUIHRoZSBzdGFnZSBuYW1lIGJlaW5nIHRoZSB3YXZlIGlkXG4gICAqIChgYWxpYXNgLCBlbHNlIGA8c3RhZ2VOYW1lPi1hbGlhc2ApLCBiZWNhdXNlIHRoYXQgaXMgd2hhdCBDb2RlUGlwZWxpbmVcbiAgICogZXZlbnRzIHJlcG9ydCDigJQgc28gdGhlIGV2ZW50cyBMYW1iZGEgY2FuIGF0dHJpYnV0ZSBkZXBsb3ltZW50cyBwZXJcbiAgICogZW52aXJvbm1lbnQuIE9taXQgaXQgYW5kIHRoZSBzdGFnZSBpcyBub3QgdHJlYXRlZCBhcyBhIGRlcGxveS5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgQ29kZUJ1aWxkIHN0ZXAgaW4gdGhlIHBpcGVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJ1aWxkU3RlcE9wdGlvbnMgZXh0ZW5kcyBTdGVwQ3VzdG9taXphdGlvbiB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBDb2RlQnVpbGQgc3RlcFxuICAgKiBTaG91bGQgYmUgZGVzY3JpcHRpdmUgYW5kIHVuaXF1ZSB3aXRoaW4gdGhlIHBpcGVsaW5lXG4gICAqIEBleGFtcGxlICdteS1vcmctbXktcHJvamVjdC1zeW50aCdcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZUlkIGluc3RhbmNlIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBjb25zdHJ1Y3QgSURzXG4gICAqIFVzZWQgZm9yIG5ldHdvcmsgcmVzb3VyY2UgbG9va3VwcyAoVlBDLCBzdWJuZXRzLCBzZWN1cml0eSBncm91cHMpXG4gICAqL1xuICByZWFkb25seSB1bmlxdWVJZDogVW5pcXVlSWQ7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjb25maWd1cmF0aW9uIGZyb20gdGhlIGRhdGFiYXNlXG4gICAqIENvbnRhaW5zIGFsbCB0aGUgcGx1Z2luJ3Mgc3BlYyBkYXRhIGFuZCBydW50aW1lIGluZm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbjtcblxuICAvKipcbiAgICogQ0RLIHNjb3BlIHVzZWQgdG8gY3JlYXRlIGNvbnN0cnVjdHMgKFZQQy9zdWJuZXQvc2VjdXJpdHktZ3JvdXAgbG9va3VwcykuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBJbnB1dCBzb3VyY2UgZm9yIHRoaXMgc3RlcFxuICAgKiBUeXBpY2FsbHkgdGhlIG91dHB1dCBmcm9tIGEgcHJldmlvdXMgc3RlcCBvciB0aGUgcGlwZWxpbmUgc291cmNlXG4gICAqL1xuICByZWFkb25seSBpbnB1dD86IElGaWxlU2V0UHJvZHVjZXI7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgdG8gbWVyZ2Ugd2l0aCBwbHVnaW4gbWV0YWRhdGFcbiAgICogV2lsbCBvdmVycmlkZSBjb25mbGljdGluZyBrZXlzIGZyb20gcGx1Z2luIG1ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IE1ldGFEYXRhVHlwZTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgQ29kZUJ1aWxkIHN0ZXAuXG4gICAqIFdoZW4gcHJvdmlkZWQsIHJlc29sdmVzIFZQQywgc3VibmV0IHNlbGVjdGlvbiwgYW5kIHNlY3VyaXR5IGdyb3Vwc1xuICAgKiBzbyB0aGUgYnVpbGQgcnVucyBpbnNpZGUgdGhlIHNwZWNpZmllZCBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29yaz86IE5ldHdvcmtDb25maWc7XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIENvZGVCdWlsZCBjb21wdXRlIHR5cGUgd2hlbiB0aGUgcGx1Z2luIGRvZXNuJ3Qgc3BlY2lmeSBvbmUuXG4gICAqIEBkZWZhdWx0IENvbXB1dGVUeXBlLlNNQUxMXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Q29tcHV0ZVR5cGU/OiBDZGtDb21wdXRlVHlwZTtcblxuICAvKipcbiAgICogQ29kZUJ1aWxkIHRpbWVvdXQgaW4gbWludXRlcy5cbiAgICogQGRlZmF1bHQgNjAgKEFXUyBDb2RlQnVpbGQgZGVmYXVsdClcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqIEFkZGl0aW9uYWwgaW5wdXRzIG1hcHBlZCBieSBkaXJlY3RvcnkgcGF0aCAocmVzb2x2ZWQgRmlsZVNldHMpICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBJRmlsZVNldFByb2R1Y2VyPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYXJ0aWZhY3QgbWFuYWdlciBmb3IgdHJhY2tpbmcgYnVpbGQgb3V0cHV0c1xuICAgKiBXaGVuIHByb3ZpZGVkIGFuZCBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5IGlzIHNldCwgdGhlIHN0ZXAgd2lsbCBiZSByZWdpc3RlcmVkXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdE1hbmFnZXI/OiBBcnRpZmFjdE1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFN0YWdlIG5hbWUgZm9yIGFydGlmYWN0IGtleSBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFnZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0YWdlIGFsaWFzIGZvciBhcnRpZmFjdCBrZXkgZ2VuZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VBbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGFsaWFzIGZvciBhcnRpZmFjdCBrZXkgZ2VuZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luQWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZhaWx1cmUgYmVoYXZpb3IgZm9yIHRoaXMgc3RlcCdzIGJ1aWxkIGNvbW1hbmRzLlxuICAgKiBBcHBsaWVkIGF0IHNoZWxsIGxldmVsOiAnZmFpbCcgPSBkZWZhdWx0LCAnd2FybicgPSBsb2cgKyBjb250aW51ZSwgJ2lnbm9yZScgPSB8fCB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUJlaGF2aW9yPzogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG5cbiAgLyoqIFRlbmFudCBpZGVudGlmaWVyIGZvciByZXNvbHZpbmcgcGVyLW9yZyBzZWNyZXRzIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlciAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUtbGV2ZWwgY29uZmlnIHVzZWQgYXMgdGhlIGBwaXBlbGluZS4qYCBzY29wZSB3aGVuIHJlc29sdmluZ1xuICAgKiB0ZW1wbGF0ZSB0b2tlbnMgaW5zaWRlIHBsdWdpbiBzcGVjcy4gUmVxdWlyZWQg4oCUIGV2ZXJ5IGB7eyBwaXBlbGluZS4qIH19YFxuICAgKiByZWZlcmVuY2UgaW4gYSBwbHVnaW4gc3BlYyBpcyBldmFsdWF0ZWQgYWdhaW5zdCB0aGlzIG9iamVjdCBhdCBzeW50aCB0aW1lLlxuICAgKlxuICAgKiBDYWxsZXJzIGNvbnN0cnVjdGluZyBhIHN0ZXAgZGlyZWN0bHkgbXVzdCBwcm92aWRlIHRoZSBwaXBlbGluZSBpZGVudGl0eVxuICAgKiArIG1ldGFkYXRhICsgdmFycyBzbyB0ZW1wbGF0ZSByZXNvbHV0aW9uIGlzIG5ldmVyIHNpbGVudGx5IHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC10eXBlcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3N0ZXAtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbkZpbHRlciwgUGx1Z2luIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YSc7XG5pbXBvcnQgdHlwZSB7IENvbXB1dGVUeXBlIGFzIENka0NvbXB1dGVUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgdHlwZSB7IElGaWxlU2V0UHJvZHVjZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgU291cmNlVHlwZSB9IGZyb20gJy4vc291cmNlLXR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgQXJ0aWZhY3RLZXksIEFydGlmYWN0TWFuYWdlciB9IGZyb20gJy4uL2NvcmUvYXJ0aWZhY3QtbWFuYWdlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29yZS9pZC1nZW5lcmF0b3IuanMnO1xuaW1wb3J0IHR5cGUgeyBOZXR3b3JrQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9uZXR3b3JrLXR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgTWV0YURhdGFUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc2VsZWN0aW5nIGFuZCBjb25maWd1cmluZyBhIHBsdWdpblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk9wdGlvbnMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcGx1Z2luIHRvIHVzZVxuICAgKiBNdXN0IG1hdGNoIGEgcmVnaXN0ZXJlZCBwbHVnaW4gaW4gdGhlIGRhdGFiYXNlXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlciBoYW5kbGUgb2YgYW4gaW5zdGFsbGVkIGVjb3N5c3RlbSBsaXN0aW5nIHRvIHJlc29sdmUgdGhyb3VnaC5cbiAgICogQWJzZW50OiB0aGUgb3JnJ3Mgb3duIHBsdWdpbiwgdGhlbiBpdHMgcGFyZW50XG4gICAqIG9yZydzLCB0aGVuIHRoZSBPZmZpY2lhbCBsaXN0aW5nLiBQcmVzZW50OiBvbmx5IHRoYXQgcHVibGlzaGVyJ3MgbGlzdGluZyxcbiAgICogdGhyb3VnaCBhbiBpbnN0YWxsLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIHBsdWdpbiBpbnN0YW5jZVxuICAgKiBVc2VmdWwgd2hlbiB1c2luZyB0aGUgc2FtZSBwbHVnaW4gbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWx0ZXIgY3JpdGVyaWEgZm9yIHBsdWdpbiBzZWxlY3Rpb25cbiAgICogQ2FuIGJlIHVzZWQgdG8gc2VsZWN0IHNwZWNpZmljIHBsdWdpbiB2ZXJzaW9ucyBvciB2YXJpYW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyPzogUGx1Z2luRmlsdGVyO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG1ldGFkYXRhIHRvIG1lcmdlIHdpdGggcGx1Z2luJ3MgZGVmYXVsdCBtZXRhZGF0YVxuICAgKiBUaGlzIG1ldGFkYXRhIHdpbGwgYmUgYXZhaWxhYmxlIHRvIHRoZSBwbHVnaW4gZHVyaW5nIGV4ZWN1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG59XG5cbi8qKlxuICogU3ludGhlc2lzIHN0ZXAgY29uZmlndXJhdGlvbiBjb21iaW5pbmcgc291cmNlIGFuZCBwbHVnaW4uXG4gKiBFeHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHRvIHN1cHBvcnQgaW5qZWN0aW5nIGN1c3RvbSBjb21tYW5kcyBhbmQgZW52IHZhcnNcbiAqIGludG8gdGhlIHN5bnRoIENvZGVCdWlsZCBzdGVwIChzYW1lIGhvb2tzIGF2YWlsYWJsZSBhcyBzdGFnZSBzdGVwcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhPcHRpb25zIGV4dGVuZHMgU3RlcEN1c3RvbWl6YXRpb24ge1xuICAvKipcbiAgICogU291cmNlIGNvbmZpZ3VyYXRpb24gKFMzLCBHaXRIdWIsIG9yIENvZGVTdGFyKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBTb3VyY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gdG8gdXNlIGZvciBzeW50aGVzaXNcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luT3B0aW9ucztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSBmb3IgdGhlIHN5bnRoZXNpcyBzdGVwXG4gICAqIFRoaXMgd2lsbCBiZSBtZXJnZWQgd2l0aCBnbG9iYWwgbWV0YWRhdGEgYW5kIHBsdWdpbiBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBNZXRhRGF0YVR5cGU7XG5cbiAgLyoqXG4gICAqIFN0ZXAtbGV2ZWwgbmV0d29yayBjb25maWd1cmF0aW9uIGFwcGxpZWQgb25seSB0byB0aGUgc3ludGggQ29kZUJ1aWxkIHN0ZXAuXG4gICAqIE92ZXJyaWRlcyB0aGUgcGlwZWxpbmUtbGV2ZWwgYGRlZmF1bHRzLm5ldHdvcmtgIHdoZW4gYm90aCBhcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29ya0NvbmZpZztcbn1cblxuLyoqXG4gKiBQZXItc3RlcCBjdXN0b21pemF0aW9uIG9wdGlvbnMgZm9yIGNvbW1hbmRzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKiBDdXN0b20gY29tbWFuZHMgYXJlIGluamVjdGVkIGJlZm9yZS9hZnRlciB0aGUgcGx1Z2luJ3MgY29tbWFuZHMuXG4gKiBDdXN0b20gZW52IHZhcnMgYXJlIG1lcmdlZCBvbiB0b3Agb2YgdGhlIHBsdWdpbidzIGRlZmF1bHRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBiZWZvcmUgdGhlIHBsdWdpbidzIGluc3RhbGwgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcHJlSW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBhZnRlciB0aGUgcGx1Z2luJ3MgaW5zdGFsbCBjb21tYW5kcyAqL1xuICByZWFkb25seSBwb3N0SW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBiZWZvcmUgdGhlIHBsdWdpbidzIGJ1aWxkIGNvbW1hbmRzICovXG4gIHJlYWRvbmx5IHByZUNvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbW1hbmRzIHRvIHJ1biBhZnRlciB0aGUgcGx1Z2luJ3MgYnVpbGQgY29tbWFuZHMgKi9cbiAgcmVhZG9ubHkgcG9zdENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbWVyZ2VkIG9uIHRvcCBvZiB0aGUgcGx1Z2luJ3MgZW52ICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQW4gYWRkaXRpb25hbCBpbnB1dCBhcnRpZmFjdCB3aXRoIGFuIG9wdGlvbmFsIG1vdW50IGRpcmVjdG9yeS5cbiAqIFdoZW4gZGlyZWN0b3J5IGlzIG9taXR0ZWQsIGRlZmF1bHRzIHRvIHRoZSBhcnRpZmFjdCdzIG91dHB1dERpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsSW5wdXRBcnRpZmFjdENvbmZpZyB7XG4gIC8qKiBBcnRpZmFjdCBrZXkgaWRlbnRpZnlpbmcgdGhlIHNvdXJjZSBzdGVwJ3Mgb3V0cHV0ICovXG4gIHJlYWRvbmx5IGFydGlmYWN0OiBBcnRpZmFjdEtleTtcblxuICAvKiogRGlyZWN0b3J5IHRvIG1vdW50IHRoZSBpbnB1dCBhdC4gRGVmYXVsdHMgdG8gYXJ0aWZhY3Qub3V0cHV0RGlyZWN0b3J5IHdoZW4gb21pdHRlZC4gKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIHN0ZXAgd2l0aGluIGEgcGlwZWxpbmUgc3RhZ2UuXG4gKiBVc2VzIFBsdWdpbk9wdGlvbnMgZm9yIG5hbWUtYmFzZWQgcGx1Z2luIHNlbGVjdGlvbiAocmVzb2x2ZWQgYXQgYnVpbGQgdGltZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VTdGVwT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqIFBsdWdpbiB0byB1c2UgZm9yIHRoaXMgc3RlcCAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbk9wdGlvbnM7XG5cbiAgLyoqIFN0ZXAtbGV2ZWwgbWV0YWRhdGEgbWVyZ2VkIHdpdGggc3RhZ2UgYW5kIGdsb2JhbCBtZXRhZGF0YSAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IE1ldGFEYXRhVHlwZTtcblxuICAvKiogT3B0aW9uYWwgbmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGlzIHN0ZXAncyBDb2RlQnVpbGQgYWN0aW9uICovXG4gIHJlYWRvbmx5IG5ldHdvcms/OiBOZXR3b3JrQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgdGltZW91dCBpbiBtaW51dGVzLlxuICAgKiBAZGVmYXVsdCA2MCAoQVdTIENvZGVCdWlsZCBkZWZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhpcyBzdGVwIHdpdGhpbiB0aGUgcGlwZWxpbmUgd2F2ZS5cbiAgICogLSAncHJlJzogUnVucyBiZWZvcmUgdGhlIHN0YWdlIGRlcGxveW1lbnQgKGRlZmF1bHQpXG4gICAqIC0gJ3Bvc3QnOiBSdW5zIGFmdGVyIHRoZSBzdGFnZSBkZXBsb3ltZW50XG4gICAqIEBkZWZhdWx0ICdwcmUnXG4gICAqL1xuICByZWFkb25seSBwb3NpdGlvbj86ICdwcmUnIHwgJ3Bvc3QnO1xuXG4gIC8qKiBBcnRpZmFjdCBrZXkgZm9yIHRoaXMgc3RlcCdzIHByaW1hcnkgaW5wdXQgKHJlc29sdmVkIHZpYSBBcnRpZmFjdE1hbmFnZXIpICovXG4gIHJlYWRvbmx5IGlucHV0QXJ0aWZhY3Q/OiBBcnRpZmFjdEtleTtcblxuICAvKiogQWRkaXRpb25hbCBpbnB1dCBhcnRpZmFjdHMgZm9yIHRoaXMgc3RlcC4gRWFjaCBlbnRyeSBzcGVjaWZpZXMgYW4gYXJ0aWZhY3QgYW5kIGFuIG9wdGlvbmFsIG1vdW50IGRpcmVjdG9yeS4gKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPzogQWRkaXRpb25hbElucHV0QXJ0aWZhY3RDb25maWdbXTtcblxuICAvKiogT3ZlcnJpZGUgdGhlIHBsdWdpbidzIGZhaWx1cmUgYmVoYXZpb3IgZm9yIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUJlaGF2aW9yPzogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG59XG5cbi8qKlxuICogQSBwaXBlbGluZSBzdGFnZSBjb250YWluaW5nIG9uZSBvciBtb3JlIGJ1aWxkIHN0ZXBzLlxuICogRWFjaCBzdGFnZSBtYXBzIHRvIGEgQ0RLIFBpcGVsaW5lIHdhdmUsIHdpdGggc3RlcHMgZXhlY3V0aW5nIHdpdGhpbiB0aGUgd2F2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZU9wdGlvbnMge1xuICAvKiogRGlzcGxheSBuYW1lIGZvciB0aGlzIHN0YWdlICovXG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZVBpcGVsaW5lIHN0YWdlICh3YXZlKSBuYW1lLiBEZWZhdWx0cyB0byBgPHN0YWdlTmFtZT4tYWxpYXNgIOKAlCBzZWVcbiAgICogYGNvZGVQaXBlbGluZVN0YWdlTmFtZWAsIHRoZSBzaW5nbGUgcGxhY2UgdGhhdCBkZXJpdmF0aW9uIGxpdmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqIEJ1aWxkIHN0ZXBzIHRvIGV4ZWN1dGUgd2l0aGluIHRoaXMgc3RhZ2UgKi9cbiAgcmVhZG9ubHkgc3RlcHM6IFN0YWdlU3RlcE9wdGlvbnNbXTtcblxuICAvKipcbiAgICogRGVwbG95IGVudmlyb25tZW50IHRoaXMgc3RhZ2UgdGFyZ2V0cyAoZS5nLiBgcHJvZHVjdGlvbmAsIGBzdGFnaW5nYCkuXG4gICAqIERlY2xhcmluZyBpdCBtYXJrcyB0aGUgc3RhZ2UgYXMgYSAqKmRlcGxveSoqIGZvciBET1JBIG1ldHJpY3M6IHBpcGVsaW5lLWNvcmVcbiAgICogbGlzdHMgZXZlcnkgc3VjaCBzdGFnZSBpbiB0aGUgYHBiLmRlcGxveXNgIHRhZyBhc1xuICAgKiBgPENvZGVQaXBlbGluZSBzdGFnZSBuYW1lPjo8ZW52aXJvbm1lbnQ+YCDigJQgdGhlIHN0YWdlIG5hbWUgYmVpbmcgdGhlIHdhdmUgaWRcbiAgICogKGBhbGlhc2AsIGVsc2UgYDxzdGFnZU5hbWU+LWFsaWFzYCksIGJlY2F1c2UgdGhhdCBpcyB3aGF0IENvZGVQaXBlbGluZVxuICAgKiBldmVudHMgcmVwb3J0IOKAlCBzbyB0aGUgZXZlbnRzIExhbWJkYSBjYW4gYXR0cmlidXRlIGRlcGxveW1lbnRzIHBlclxuICAgKiBlbnZpcm9ubWVudC4gT21pdCBpdCBhbmQgdGhlIHN0YWdlIGlzIG5vdCB0cmVhdGVkIGFzIGEgZGVwbG95LlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBDb2RlQnVpbGQgc3RlcCBpbiB0aGUgcGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQnVpbGRTdGVwT3B0aW9ucyBleHRlbmRzIFN0ZXBDdXN0b21pemF0aW9uIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIENvZGVCdWlsZCBzdGVwXG4gICAqIFNob3VsZCBiZSBkZXNjcmlwdGl2ZSBhbmQgdW5pcXVlIHdpdGhpbiB0aGUgcGlwZWxpbmVcbiAgICogQGV4YW1wbGUgJ215LW9yZy1teS1wcm9qZWN0LXN5bnRoJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlSWQgaW5zdGFuY2UgZm9yIGdlbmVyYXRpbmcgdW5pcXVlIGNvbnN0cnVjdCBJRHNcbiAgICogVXNlZCBmb3IgbmV0d29yayByZXNvdXJjZSBsb29rdXBzIChWUEMsIHN1Ym5ldHMsIHNlY3VyaXR5IGdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcblxuICAvKipcbiAgICogUGx1Z2luIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZGF0YWJhc2VcbiAgICogQ29udGFpbnMgYWxsIHRoZSBwbHVnaW4ncyBzcGVjIGRhdGEgYW5kIHJ1bnRpbWUgaW5mb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luO1xuXG4gIC8qKlxuICAgKiBDREsgc2NvcGUgdXNlZCB0byBjcmVhdGUgY29uc3RydWN0cyAoVlBDL3N1Ym5ldC9zZWN1cml0eS1ncm91cCBsb29rdXBzKS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIElucHV0IHNvdXJjZSBmb3IgdGhpcyBzdGVwXG4gICAqIFR5cGljYWxseSB0aGUgb3V0cHV0IGZyb20gYSBwcmV2aW91cyBzdGVwIG9yIHRoZSBwaXBlbGluZSBzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0PzogSUZpbGVTZXRQcm9kdWNlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0byBtZXJnZSB3aXRoIHBsdWdpbiBtZXRhZGF0YVxuICAgKiBXaWxsIG92ZXJyaWRlIGNvbmZsaWN0aW5nIGtleXMgZnJvbSBwbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogTWV0YURhdGFUeXBlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlQnVpbGQgc3RlcC5cbiAgICogV2hlbiBwcm92aWRlZCwgcmVzb2x2ZXMgVlBDLCBzdWJuZXQgc2VsZWN0aW9uLCBhbmQgc2VjdXJpdHkgZ3JvdXBzXG4gICAqIHNvIHRoZSBidWlsZCBydW5zIGluc2lkZSB0aGUgc3BlY2lmaWVkIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29ya0NvbmZpZztcblxuICAvKipcbiAgICogRmFsbGJhY2sgQ29kZUJ1aWxkIGNvbXB1dGUgdHlwZSB3aGVuIHRoZSBwbHVnaW4gZG9lc24ndCBzcGVjaWZ5IG9uZS5cbiAgICogQGRlZmF1bHQgQ29tcHV0ZVR5cGUuU01BTExcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb21wdXRlVHlwZT86IENka0NvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgdGltZW91dCBpbiBtaW51dGVzLlxuICAgKiBAZGVmYXVsdCA2MCAoQVdTIENvZGVCdWlsZCBkZWZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKiogQWRkaXRpb25hbCBpbnB1dHMgbWFwcGVkIGJ5IGRpcmVjdG9yeSBwYXRoIChyZXNvbHZlZCBGaWxlU2V0cykgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0cz86IFJlY29yZDxzdHJpbmcsIElGaWxlU2V0UHJvZHVjZXI+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhcnRpZmFjdCBtYW5hZ2VyIGZvciB0cmFja2luZyBidWlsZCBvdXRwdXRzXG4gICAqIFdoZW4gcHJvdmlkZWQgYW5kIHByaW1hcnlPdXRwdXREaXJlY3RvcnkgaXMgc2V0LCB0aGUgc3RlcCB3aWxsIGJlIHJlZ2lzdGVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TWFuYWdlcj86IEFydGlmYWN0TWFuYWdlcjtcblxuICAvKipcbiAgICogU3RhZ2UgbmFtZSBmb3IgYXJ0aWZhY3Qga2V5IGdlbmVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RhZ2UgYWxpYXMgZm9yIGFydGlmYWN0IGtleSBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFnZUFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gYWxpYXMgZm9yIGFydGlmYWN0IGtleSBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5BbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogRmFpbHVyZSBiZWhhdmlvciBmb3IgdGhpcyBzdGVwJ3MgYnVpbGQgY29tbWFuZHMuXG4gICAqIEFwcGxpZWQgYXQgc2hlbGwgbGV2ZWw6ICdmYWlsJyA9IGRlZmF1bHQsICd3YXJuJyA9IGxvZyArIGNvbnRpbnVlLCAnaWdub3JlJyA9IHx8IHRydWUuXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlQmVoYXZpb3I/OiAnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJztcblxuICAvKiogVGVuYW50IGlkZW50aWZpZXIgZm9yIHJlc29sdmluZyBwZXItb3JnIHNlY3JldHMgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZS1sZXZlbCBjb25maWcgdXNlZCBhcyB0aGUgYHBpcGVsaW5lLipgIHNjb3BlIHdoZW4gcmVzb2x2aW5nXG4gICAqIHRlbXBsYXRlIHRva2VucyBpbnNpZGUgcGx1Z2luIHNwZWNzLiBSZXF1aXJlZCDigJQgZXZlcnkgYHt7IHBpcGVsaW5lLiogfX1gXG4gICAqIHJlZmVyZW5jZSBpbiBhIHBsdWdpbiBzcGVjIGlzIGV2YWx1YXRlZCBhZ2FpbnN0IHRoaXMgb2JqZWN0IGF0IHN5bnRoIHRpbWUuXG4gICAqXG4gICAqIENhbGxlcnMgY29uc3RydWN0aW5nIGEgc3RlcCBkaXJlY3RseSBtdXN0IHByb3ZpZGUgdGhlIHBpcGVsaW5lIGlkZW50aXR5XG4gICAqICsgbWV0YWRhdGEgKyB2YXJzIHNvIHRlbXBsYXRlIHJlc29sdXRpb24gaXMgbmV2ZXIgc2lsZW50bHkgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuIl19
@@ -104,4 +104,4 @@ export function diffStructure(before, after) {
104
104
  && pluginsAdded.length === 0 && pluginsRemoved.length === 0 && iamChanged === undefined,
105
105
  };
106
106
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXByZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc3RydWN0dXJlLXByZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQXVELE1BQU0seUJBQXlCLENBQUM7QUE0RGhKLHdEQUF3RDtBQUN4RCxTQUFTLFNBQVMsQ0FBQyxNQUF5RDtJQUMxRSxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLFdBQVcsQ0FBQztJQUN6QyxPQUFPLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBMEI7SUFDN0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxTQUFTLENBQUM7SUFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDakMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBdUIsQ0FBQztJQUMxRixPQUFPO1FBQ0wsUUFBUTtRQUNSLGNBQWMsRUFBRSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsS0FBSyxVQUFVLElBQUksUUFBUSxLQUFLLFVBQVU7UUFDNUYsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVELDJFQUEyRTtBQUMzRSxN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LENBQUMsQ0FBQztJQUUxRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDekUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDckMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLE9BQU87UUFDTCxXQUFXO1FBQ1gsYUFBYTtRQUNiLGFBQWE7UUFDYixZQUFZO1FBQ1osY0FBYztRQUNkLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDO2VBQzFGLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxTQUFTO0tBQzFGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIGNvbmNyZXRlIHNoYXBlIGEgcGlwZWxpbmUgY29uZmlndXJhdGlvbiB3aWxsIHN5bnRoZXNpemUgdG8g4oCUIHN0YWdlcywgdGhlXG4gKiBwbHVnaW5zIGVhY2ggb25lIHJ1bnMsIHRoZSBkZXBsb3lzLCBhbmQgaG93IGl0cyBJQU0gcm9sZSBpcyBvYnRhaW5lZCDigJRcbiAqIFdJVEhPVVQgaW1wb3J0aW5nIGBhd3MtY2RrLWxpYmAgb3Igc3ludGhlc2l6aW5nIGFueXRoaW5nLlxuICpcbiAqIEV4aXN0cyBzbyBhIHJldmlld2VyIGFwcHJvdmVzIHNvbWV0aGluZyBjb25jcmV0ZS4gYFBPU1QgL3BpcGVsaW5lcy92YWxpZGF0ZWBcbiAqIGFuZCB0aGUgY3JlYXRlIHJlc3BvbnNlIHByZXZpb3VzbHkgYW5zd2VyZWQgb25seSBcInZhbGlkL2ludmFsaWRcIjogYSByZXZpZXdlclxuICogYXNrZWQgdG8gc2lnbiBvZmYgb24gYSBwaXBlbGluZSBoYWQgdG8gcmVhZCByYXcgYHByb3BzYCBKU09OIGFuZCB3b3JrIG91dCB3aGF0XG4gKiBpdCB3b3VsZCBidWlsZCwgYW5kIGFuIHVwZGF0ZSBnYXZlIG5vIGluZGljYXRpb24gb2Ygd2hhdCBpdCBDSEFOR0VELiBUaGlzIGlzXG4gKiB0aGUgc3VtbWFyeSB0aG9zZSByZXNwb25zZXMgY2FycnksIHBsdXMge0BsaW5rIGRpZmZTdHJ1Y3R1cmV9IGZvciB0aGUgdXBkYXRlXG4gKiBjYXNlLlxuICpcbiAqIEl0IGlzIGEgcHJvamVjdGlvbiBvZiB0aGUgY29uZmlnLCBub3QgYSBDbG91ZEZvcm1hdGlvbiBkaWZmOiB0aGUgQVBJIGhhcyBubyBDREtcbiAqIGFuZCBjYW5ub3Qga25vdyBzeW50aGVzaXplZCBsb2dpY2FsIGlkcy4gV2hhdCBpdCBkb2VzIGNvdmVyIGlzIHdoYXQgcmV2aWV3ZXJzXG4gKiBhY3R1YWxseSBhc2sgYWJvdXQg4oCUIHdoaWNoIHN0YWdlcyBleGlzdCwgaW4gd2hhdCBvcmRlciwgcnVubmluZyB3aGljaCBwbHVnaW5cbiAqIHZlcnNpb25zLCB3aGljaCBzdGFnZXMgZGVwbG95IHdoZXJlLCBhbmQgd2hldGhlciB0aGUgcGlwZWxpbmUgdGFrZXMgYVxuICogY2FsbGVyLXN1cHBsaWVkIElBTSByb2xlLlxuICovXG5cbmltcG9ydCB7IGNvZGVQaXBlbGluZVN0YWdlTmFtZSwgZGVzY3JpYmVEZXBsb3lBdHRyaWJ1dGlvbiwgdHlwZSBEZXBsb3lBdHRyaWJ1dGlvbiwgdHlwZSBEZXBsb3lBdHRyaWJ1dGlvbklucHV0IH0gZnJvbSAnLi9kZXBsb3ktYXR0cmlidXRpb24uanMnO1xuXG4vKiogT25lIHBsdWdpbiBzdGVwLCBhcyBhIHJldmlld2VyIHJlYWRzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmV2aWV3U3RlcCB7XG4gIC8qKiBgcHVibGlzaGVyL25hbWVgIHdoZW4gYSBwdWJsaXNoZXIgaXMgZGVjbGFyZWQsIGVsc2UgdGhlIGJhcmUgbmFtZS4gKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBzdHJpbmc7XG4gIC8qKiBEZWNsYXJlZCB2ZXJzaW9uIG9yIHJhbmdlOyBgbGF0ZXN0YCB3aGVuIHVucGlubmVkLiAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBgcHJlYCAoYmVmb3JlIHRoZSBkZXBsb3kpIG9yIGBwb3N0YC4gKi9cbiAgcmVhZG9ubHkgcG9zaXRpb246ICdwcmUnIHwgJ3Bvc3QnO1xufVxuXG4vKiogT25lIHN0YWdlIG9mIHRoZSBwaXBlbGluZSwgaW4gZGVjbGFyYXRpb24gb3JkZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXZpZXdTdGFnZSB7XG4gIC8qKiBUaGUgYXV0aG9yJ3MgZGlzcGxheSBuYW1lLiAqL1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIENvZGVQaXBlbGluZSB3aWxsIHVzZSDigJQgd2hhdCBpdHMgZXZlbnRzIHJlcG9ydCBhcyBgZGV0YWlsLnN0YWdlYC4gKi9cbiAgcmVhZG9ubHkgY29kZVBpcGVsaW5lU3RhZ2U6IHN0cmluZztcbiAgLyoqIEVudmlyb25tZW50IHRoaXMgc3RhZ2UgZGVwbG95cyB0bywgd2hlbiBpdCBkZWNsYXJlcyBvbmUuICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xuICByZWFkb25seSBzdGVwczogcmVhZG9ubHkgUHJldmlld1N0ZXBbXTtcbn1cblxuLyoqXG4gKiBIb3cgdGhlIHBpcGVsaW5lIG9idGFpbnMgaXRzIElBTSByb2xlLCBhbmQgd2hldGhlciB0aGF0IGlzIHRoZSBjYWxsZXIncyBjaG9pY2UuXG4gKiBgY2FsbGVyLXN1cHBsaWVkYCBpcyB0aGUgcmV2aWV3YWJsZSBjYXNlOiB0aGUgcGlwZWxpbmUgYXNzdW1lcyBhIHJvbGUgdGhlIGNvbmZpZ1xuICogbmFtZXMsIHNvIGl0cyBwZXJtaXNzaW9ucyBhcmUgd2hhdGV2ZXIgdGhhdCByb2xlIGFscmVhZHkgaG9sZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0lhbSB7XG4gIC8qKiBUaGUgZGVjbGFyZWQgYHJvbGUudHlwZWAsIG9yIGBkZWZhdWx0YCB3aGVuIG5vbmUgaXMgZGVjbGFyZWQuICovXG4gIHJlYWRvbmx5IHJvbGVUeXBlOiBzdHJpbmc7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIGNvbmZpZyBuYW1lcyBhbiBleGlzdGluZyByb2xlL0FSTiByYXRoZXIgdGhhbiB0YWtpbmcgdGhlIGRlZmF1bHQuICovXG4gIHJlYWRvbmx5IGNhbGxlclN1cHBsaWVkOiBib29sZWFuO1xuICAvKiogVGhlIG5hbWVkIHJvbGUgb3IgQVJOLCB3aGVuIHRoZSBjb25maWcgZGVjbGFyZXMgb25lLiAqL1xuICByZWFkb25seSByb2xlUmVmPzogc3RyaW5nO1xufVxuXG4vKiogRXZlcnl0aGluZyB0aGUgcHJldmlldyByZXBvcnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVQcmV2aWV3IHtcbiAgcmVhZG9ubHkgc3RhZ2VzOiByZWFkb25seSBQcmV2aWV3U3RhZ2VbXTtcbiAgcmVhZG9ubHkgZGVwbG95czogcmVhZG9ubHkgRGVwbG95QXR0cmlidXRpb25bXTtcbiAgcmVhZG9ubHkgaWFtOiBQcmV2aWV3SWFtO1xuICAvKiogRGlzdGluY3QgYHBsdWdpbkB2ZXJzaW9uYCBhY3Jvc3MgZXZlcnkgc3RhZ2Ug4oCUIHRoZSBzdXBwbHktY2hhaW4gc3VyZmFjZS4gKi9cbiAgcmVhZG9ubHkgcGx1Z2luczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKiBUaGUgY29uZmlnIGZpZWxkcyB0aGlzIHByb2plY3Rpb24gcmVhZHMuICovXG5pbnRlcmZhY2UgUHJldmlld0lucHV0IGV4dGVuZHMgRGVwbG95QXR0cmlidXRpb25JbnB1dCB7XG4gIHJlYWRvbmx5IHN0YWdlcz86IHJlYWRvbmx5IHtcbiAgICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgICByZWFkb25seSBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgICByZWFkb25seSBzdGVwcz86IHJlYWRvbmx5IHtcbiAgICAgIHJlYWRvbmx5IHBsdWdpbj86IHsgcmVhZG9ubHkgbmFtZT86IHN0cmluZzsgcmVhZG9ubHkgcHVibGlzaGVyPzogc3RyaW5nOyByZWFkb25seSBmaWx0ZXI/OiB7IHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmcgfSB9O1xuICAgICAgcmVhZG9ubHkgcG9zaXRpb24/OiBzdHJpbmc7XG4gICAgfVtdO1xuICB9W107XG4gIHJlYWRvbmx5IHJvbGU/OiB7IHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7IHJlYWRvbmx5IG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xufVxuXG4vKiogYHB1Ymxpc2hlci9uYW1lYCB3aGVuIHNjb3BlZCwgZWxzZSB0aGUgYmFyZSBuYW1lLiAqL1xuZnVuY3Rpb24gcGx1Z2luUmVmKHBsdWdpbjogeyBuYW1lPzogc3RyaW5nOyBwdWJsaXNoZXI/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGNvbnN0IG5hbWUgPSBwbHVnaW4/Lm5hbWUgPz8gJyh1bm5hbWVkKSc7XG4gIHJldHVybiBwbHVnaW4/LnB1Ymxpc2hlciA/IGAke3BsdWdpbi5wdWJsaXNoZXJ9LyR7bmFtZX1gIDogbmFtZTtcbn1cblxuLyoqXG4gKiBIb3cgdGhlIHJvbGUgaXMgb2J0YWluZWQuIGByb2xlQXJuYC9gcm9sZU5hbWVgL2BvaWRjUm9sZWAgYWxsIG1lYW4gdGhlIHBpcGVsaW5lXG4gKiBhc3N1bWVzIHNvbWV0aGluZyB0aGUgY29uZmlnIG5hbWVzOyBvbmx5IHRoZSBhYnNlbnQvZGVmYXVsdCBjYXNlIGlzIHRoZVxuICogcGxhdGZvcm0ncyBvd24gbGVhc3QtcHJpdmlsZWdlIHJvbGUuXG4gKi9cbmZ1bmN0aW9uIGRlc2NyaWJlSWFtKHJvbGU6IFByZXZpZXdJbnB1dFsncm9sZSddKTogUHJldmlld0lhbSB7XG4gIGNvbnN0IHJvbGVUeXBlID0gcm9sZT8udHlwZSA/PyAnZGVmYXVsdCc7XG4gIGNvbnN0IG9wdHMgPSByb2xlPy5vcHRpb25zID8/IHt9O1xuICBjb25zdCByZWYgPSAob3B0cy5yb2xlQXJuID8/IG9wdHMucm9sZU5hbWUgPz8gb3B0cy5yb2xlQXJuVG9Bc3N1bWUpIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHtcbiAgICByb2xlVHlwZSxcbiAgICBjYWxsZXJTdXBwbGllZDogcm9sZVR5cGUgPT09ICdyb2xlQXJuJyB8fCByb2xlVHlwZSA9PT0gJ3JvbGVOYW1lJyB8fCByb2xlVHlwZSA9PT0gJ29pZGNSb2xlJyxcbiAgICAuLi4ocmVmID8geyByb2xlUmVmOiByZWYgfSA6IHt9KSxcbiAgfTtcbn1cblxuLyoqIFByb2plY3QgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uIGludG8gdGhlIHN0cnVjdHVyZSBpdCB3aWxsIHByb2R1Y2UuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldmlld1N0cnVjdHVyZShwcm9wczogUHJldmlld0lucHV0KTogU3RydWN0dXJlUHJldmlldyB7XG4gIGNvbnN0IHN0YWdlczogUHJldmlld1N0YWdlW10gPSAocHJvcHMuc3RhZ2VzID8/IFtdKS5tYXAoKHMpID0+ICh7XG4gICAgc3RhZ2VOYW1lOiBzLnN0YWdlTmFtZSxcbiAgICBjb2RlUGlwZWxpbmVTdGFnZTogY29kZVBpcGVsaW5lU3RhZ2VOYW1lKHMpLFxuICAgIC4uLihzLmVudmlyb25tZW50ID8geyBlbnZpcm9ubWVudDogcy5lbnZpcm9ubWVudCB9IDoge30pLFxuICAgIHN0ZXBzOiAocy5zdGVwcyA/PyBbXSkubWFwKChzdGVwKSA9PiAoe1xuICAgICAgcGx1Z2luOiBwbHVnaW5SZWYoc3RlcC5wbHVnaW4pLFxuICAgICAgLy8gQW4gdW5waW5uZWQgcGx1Z2luIHJlc29sdmVzIHRvIHdoYXRldmVyIGlzIG5ld2VzdCBBVCBTWU5USCwgd2hpY2ggaXMgdGhlXG4gICAgICAvLyBzaW5nbGUgbW9zdCByZXZpZXctd29ydGh5IGZhY3QgYWJvdXQgYSBzdGVwIOKAlCBzYXkgYGxhdGVzdGAgcmF0aGVyIHRoYW5cbiAgICAgIC8vIG9taXR0aW5nIGl0LCBzbyBhIHJldmlld2VyIHNlZXMgdGhlIGRpZmZlcmVuY2UgZnJvbSBhIHBpbm5lZCB2ZXJzaW9uLlxuICAgICAgdmVyc2lvbjogc3RlcC5wbHVnaW4/LmZpbHRlcj8udmVyc2lvbiA/PyAnbGF0ZXN0JyxcbiAgICAgIHBvc2l0aW9uOiBzdGVwLnBvc2l0aW9uID09PSAncG9zdCcgPyAncG9zdCcgOiAncHJlJyxcbiAgICB9KSksXG4gIH0pKTtcblxuICBjb25zdCBwbHVnaW5zID0gWy4uLm5ldyBTZXQoXG4gICAgc3RhZ2VzLmZsYXRNYXAoKHMpID0+IHMuc3RlcHMubWFwKChzdCkgPT4gYCR7c3QucGx1Z2lufUAke3N0LnZlcnNpb259YCkpLFxuICApXS5zb3J0KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFnZXMsXG4gICAgZGVwbG95czogZGVzY3JpYmVEZXBsb3lBdHRyaWJ1dGlvbihwcm9wcykuZGVwbG95cyxcbiAgICBpYW06IGRlc2NyaWJlSWFtKHByb3BzLnJvbGUpLFxuICAgIHBsdWdpbnMsXG4gIH07XG59XG5cbi8qKiBXaGF0IGFuIHVwZGF0ZSB3b3VsZCBjaGFuZ2UsIHJlbGF0aXZlIHRvIHRoZSBzdG9yZWQgY29uZmlndXJhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlRGlmZiB7XG4gIC8qKiBTdGFnZSBkaXNwbGF5IG5hbWVzIGFkZGVkIC8gcmVtb3ZlZCAvIGtlcHQsIGluIHRoZSBuZXcgY29uZmlnJ3Mgb3JkZXIuICovXG4gIHJlYWRvbmx5IHN0YWdlc0FkZGVkOiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc3RhZ2VzUmVtb3ZlZDogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBTdGFnZXMgd2hvc2Ugc3RlcCBsaXN0IG9yIGVudmlyb25tZW50IGNoYW5nZWQuICovXG4gIHJlYWRvbmx5IHN0YWdlc0NoYW5nZWQ6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogYHBsdWdpbkB2ZXJzaW9uYCBlbnRyaWVzIGFkZGVkIC8gcmVtb3ZlZC4gKi9cbiAgcmVhZG9ubHkgcGx1Z2luc0FkZGVkOiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGx1Z2luc1JlbW92ZWQ6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogU2V0IHdoZW4gdGhlIElBTSByb2xlIGNoYW5nZXMg4oCUIHRoZSBjaGFuZ2UgbW9zdCB3b3J0aCBhIHNlY29uZCBwYWlyIG9mIGV5ZXMuICovXG4gIHJlYWRvbmx5IGlhbUNoYW5nZWQ/OiB7IHJlYWRvbmx5IGZyb206IFByZXZpZXdJYW07IHJlYWRvbmx5IHRvOiBQcmV2aWV3SWFtIH07XG4gIC8qKiBUcnVlIHdoZW4gbm90aGluZyBpbiB0aGUgcHJvamVjdGlvbiBkaWZmZXJzLiAqL1xuICByZWFkb25seSB1bmNoYW5nZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBBIHN0YWdlJ3MgY29tcGFyYWJsZSBpZGVudGl0eTogaXRzIHN0ZXBzIGluIG9yZGVyLCBwbHVzIGl0cyBlbnZpcm9ubWVudC4gKi9cbmZ1bmN0aW9uIHN0YWdlRmluZ2VycHJpbnQoc3RhZ2U6IFByZXZpZXdTdGFnZSk6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbXG4gICAgc3RhZ2UuZW52aXJvbm1lbnQgPz8gbnVsbCxcbiAgICBzdGFnZS5jb2RlUGlwZWxpbmVTdGFnZSxcbiAgICBzdGFnZS5zdGVwcy5tYXAoKHMpID0+IFtzLnBsdWdpbiwgcy52ZXJzaW9uLCBzLnBvc2l0aW9uXSksXG4gIF0pO1xufVxuXG4vKipcbiAqIERpZmYgdHdvIHByb2plY3Rpb25zLiBLZXllZCBvbiB0aGUgYXV0aG9yJ3MgYHN0YWdlTmFtZWAsIGJlY2F1c2UgdGhhdCBpcyB3aGF0IGFcbiAqIHJldmlld2VyIHJlY29nbml6ZXMg4oCUIGEgcmVuYW1lZCBzdGFnZSByZWFkcyBhcyBvbmUgcmVtb3ZlZCBhbmQgb25lIGFkZGVkLCB3aGljaFxuICogaXMgdGhlIGhvbmVzdCBzdW1tYXJ5IChDb2RlUGlwZWxpbmUgcmVwbGFjZXMgdGhlIHN0YWdlIGVpdGhlciB3YXkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZlN0cnVjdHVyZShiZWZvcmU6IFN0cnVjdHVyZVByZXZpZXcsIGFmdGVyOiBTdHJ1Y3R1cmVQcmV2aWV3KTogU3RydWN0dXJlRGlmZiB7XG4gIGNvbnN0IGJlZm9yZUJ5TmFtZSA9IG5ldyBNYXAoYmVmb3JlLnN0YWdlcy5tYXAoKHMpID0+IFtzLnN0YWdlTmFtZSwgc10pKTtcbiAgY29uc3QgYWZ0ZXJCeU5hbWUgPSBuZXcgTWFwKGFmdGVyLnN0YWdlcy5tYXAoKHMpID0+IFtzLnN0YWdlTmFtZSwgc10pKTtcblxuICBjb25zdCBzdGFnZXNBZGRlZCA9IGFmdGVyLnN0YWdlcy5maWx0ZXIoKHMpID0+ICFiZWZvcmVCeU5hbWUuaGFzKHMuc3RhZ2VOYW1lKSkubWFwKChzKSA9PiBzLnN0YWdlTmFtZSk7XG4gIGNvbnN0IHN0YWdlc1JlbW92ZWQgPSBiZWZvcmUuc3RhZ2VzLmZpbHRlcigocykgPT4gIWFmdGVyQnlOYW1lLmhhcyhzLnN0YWdlTmFtZSkpLm1hcCgocykgPT4gcy5zdGFnZU5hbWUpO1xuICBjb25zdCBzdGFnZXNDaGFuZ2VkID0gYWZ0ZXIuc3RhZ2VzXG4gICAgLmZpbHRlcigocykgPT4ge1xuICAgICAgY29uc3QgcHJldiA9IGJlZm9yZUJ5TmFtZS5nZXQocy5zdGFnZU5hbWUpO1xuICAgICAgcmV0dXJuIHByZXYgIT09IHVuZGVmaW5lZCAmJiBzdGFnZUZpbmdlcnByaW50KHByZXYpICE9PSBzdGFnZUZpbmdlcnByaW50KHMpO1xuICAgIH0pXG4gICAgLm1hcCgocykgPT4gcy5zdGFnZU5hbWUpO1xuXG4gIGNvbnN0IGJlZm9yZVBsdWdpbnMgPSBuZXcgU2V0KGJlZm9yZS5wbHVnaW5zKTtcbiAgY29uc3QgYWZ0ZXJQbHVnaW5zID0gbmV3IFNldChhZnRlci5wbHVnaW5zKTtcbiAgY29uc3QgcGx1Z2luc0FkZGVkID0gYWZ0ZXIucGx1Z2lucy5maWx0ZXIoKHApID0+ICFiZWZvcmVQbHVnaW5zLmhhcyhwKSk7XG4gIGNvbnN0IHBsdWdpbnNSZW1vdmVkID0gYmVmb3JlLnBsdWdpbnMuZmlsdGVyKChwKSA9PiAhYWZ0ZXJQbHVnaW5zLmhhcyhwKSk7XG5cbiAgY29uc3QgaWFtQ2hhbmdlZCA9IEpTT04uc3RyaW5naWZ5KGJlZm9yZS5pYW0pICE9PSBKU09OLnN0cmluZ2lmeShhZnRlci5pYW0pXG4gICAgPyB7IGZyb206IGJlZm9yZS5pYW0sIHRvOiBhZnRlci5pYW0gfVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgc3RhZ2VzQWRkZWQsXG4gICAgc3RhZ2VzUmVtb3ZlZCxcbiAgICBzdGFnZXNDaGFuZ2VkLFxuICAgIHBsdWdpbnNBZGRlZCxcbiAgICBwbHVnaW5zUmVtb3ZlZCxcbiAgICAuLi4oaWFtQ2hhbmdlZCA/IHsgaWFtQ2hhbmdlZCB9IDoge30pLFxuICAgIHVuY2hhbmdlZDogc3RhZ2VzQWRkZWQubGVuZ3RoID09PSAwICYmIHN0YWdlc1JlbW92ZWQubGVuZ3RoID09PSAwICYmIHN0YWdlc0NoYW5nZWQubGVuZ3RoID09PSAwXG4gICAgICAmJiBwbHVnaW5zQWRkZWQubGVuZ3RoID09PSAwICYmIHBsdWdpbnNSZW1vdmVkLmxlbmd0aCA9PT0gMCAmJiBpYW1DaGFuZ2VkID09PSB1bmRlZmluZWQsXG4gIH07XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLXByZXZpZXcuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdHJ1Y3R1cmUtcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBdUQsTUFBTSx5QkFBeUIsQ0FBQztBQTREaEosd0RBQXdEO0FBQ3hELFNBQVMsU0FBUyxDQUFDLE1BQXlEO0lBQzFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDO0lBQ3pDLE9BQU8sTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUEwQjtJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUF1QixDQUFDO0lBQzFGLE9BQU87UUFDTCxRQUFRO1FBQ1IsY0FBYyxFQUFFLFFBQVEsS0FBSyxTQUFTLElBQUksUUFBUSxLQUFLLFVBQVUsSUFBSSxRQUFRLEtBQUssVUFBVTtRQUM1RixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLE1BQU0sVUFBVSxnQkFBZ0Is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LE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUN6RSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsT0FBTztRQUNMLFdBQVc7UUFDWCxhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixjQUFjO1FBQ2QsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLFNBQVMsRUFBRSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUM7ZUFDMUYsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxLQUFLLFNBQVM7S0FDMUYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgY29uY3JldGUgc2hhcGUgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uIHdpbGwgc3ludGhlc2l6ZSB0byDigJQgc3RhZ2VzLCB0aGVcbiAqIHBsdWdpbnMgZWFjaCBvbmUgcnVucywgdGhlIGRlcGxveXMsIGFuZCBob3cgaXRzIElBTSByb2xlIGlzIG9idGFpbmVkIOKAlFxuICogV0lUSE9VVCBpbXBvcnRpbmcgYGF3cy1jZGstbGliYCBvciBzeW50aGVzaXppbmcgYW55dGhpbmcuXG4gKlxuICogRXhpc3RzIHNvIGEgcmV2aWV3ZXIgYXBwcm92ZXMgc29tZXRoaW5nIGNvbmNyZXRlLiBgUE9TVCAvcGlwZWxpbmVzL3ZhbGlkYXRlYFxuICogYW5kIHRoZSBjcmVhdGUgcmVzcG9uc2UgcHJldmlvdXNseSBhbnN3ZXJlZCBvbmx5IFwidmFsaWQvaW52YWxpZFwiOiBhIHJldmlld2VyXG4gKiBhc2tlZCB0byBzaWduIG9mZiBvbiBhIHBpcGVsaW5lIGhhZCB0byByZWFkIHJhdyBgcHJvcHNgIEpTT04gYW5kIHdvcmsgb3V0IHdoYXRcbiAqIGl0IHdvdWxkIGJ1aWxkLCBhbmQgYW4gdXBkYXRlIGdhdmUgbm8gaW5kaWNhdGlvbiBvZiB3aGF0IGl0IENIQU5HRUQuIFRoaXMgaXNcbiAqIHRoZSBzdW1tYXJ5IHRob3NlIHJlc3BvbnNlcyBjYXJyeSwgcGx1cyB7QGxpbmsgZGlmZlN0cnVjdHVyZX0gZm9yIHRoZSB1cGRhdGVcbiAqIGNhc2UuXG4gKlxuICogSXQgaXMgYSBwcm9qZWN0aW9uIG9mIHRoZSBjb25maWcsIG5vdCBhIENsb3VkRm9ybWF0aW9uIGRpZmY6IHRoZSBBUEkgaGFzIG5vIENES1xuICogYW5kIGNhbm5vdCBrbm93IHN5bnRoZXNpemVkIGxvZ2ljYWwgaWRzLiBXaGF0IGl0IGRvZXMgY292ZXIgaXMgd2hhdCByZXZpZXdlcnNcbiAqIGFjdHVhbGx5IGFzayBhYm91dCDigJQgd2hpY2ggc3RhZ2VzIGV4aXN0LCBpbiB3aGF0IG9yZGVyLCBydW5uaW5nIHdoaWNoIHBsdWdpblxuICogdmVyc2lvbnMsIHdoaWNoIHN0YWdlcyBkZXBsb3kgd2hlcmUsIGFuZCB3aGV0aGVyIHRoZSBwaXBlbGluZSB0YWtlcyBhXG4gKiBjYWxsZXItc3VwcGxpZWQgSUFNIHJvbGUuXG4gKi9cblxuaW1wb3J0IHsgY29kZVBpcGVsaW5lU3RhZ2VOYW1lLCBkZXNjcmliZURlcGxveUF0dHJpYnV0aW9uLCB0eXBlIERlcGxveUF0dHJpYnV0aW9uLCB0eXBlIERlcGxveUF0dHJpYnV0aW9uSW5wdXQgfSBmcm9tICcuL2RlcGxveS1hdHRyaWJ1dGlvbi5qcyc7XG5cbi8qKiBPbmUgcGx1Z2luIHN0ZXAsIGFzIGEgcmV2aWV3ZXIgcmVhZHMgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXZpZXdTdGVwIHtcbiAgLyoqIGBwdWJsaXNoZXIvbmFtZWAgd2hlbiBhIHB1Ymxpc2hlciBpcyBkZWNsYXJlZCwgZWxzZSB0aGUgYmFyZSBuYW1lLiAqL1xuICByZWFkb25seSBwbHVnaW46IHN0cmluZztcbiAgLyoqIERlY2xhcmVkIHZlcnNpb24gb3IgcmFuZ2U7IGBsYXRlc3RgIHdoZW4gdW5waW5uZWQuICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbiAgLyoqIGBwcmVgIChiZWZvcmUgdGhlIGRlcGxveSkgb3IgYHBvc3RgLiAqL1xuICByZWFkb25seSBwb3NpdGlvbjogJ3ByZScgfCAncG9zdCc7XG59XG5cbi8qKiBPbmUgc3RhZ2Ugb2YgdGhlIHBpcGVsaW5lLCBpbiBkZWNsYXJhdGlvbiBvcmRlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld1N0YWdlIHtcbiAgLyoqIFRoZSBhdXRob3IncyBkaXNwbGF5IG5hbWUuICovXG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgQ29kZVBpcGVsaW5lIHdpbGwgdXNlIOKAlCB3aGF0IGl0cyBldmVudHMgcmVwb3J0IGFzIGBkZXRhaWwuc3RhZ2VgLiAqL1xuICByZWFkb25seSBjb2RlUGlwZWxpbmVTdGFnZTogc3RyaW5nO1xuICAvKiogRW52aXJvbm1lbnQgdGhpcyBzdGFnZSBkZXBsb3lzIHRvLCB3aGVuIGl0IGRlY2xhcmVzIG9uZS4gKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0ZXBzOiByZWFkb25seSBQcmV2aWV3U3RlcFtdO1xufVxuXG4vKipcbiAqIEhvdyB0aGUgcGlwZWxpbmUgb2J0YWlucyBpdHMgSUFNIHJvbGUsIGFuZCB3aGV0aGVyIHRoYXQgaXMgdGhlIGNhbGxlcidzIGNob2ljZS5cbiAqIGBjYWxsZXItc3VwcGxpZWRgIGlzIHRoZSByZXZpZXdhYmxlIGNhc2U6IHRoZSBwaXBlbGluZSBhc3N1bWVzIGEgcm9sZSB0aGUgY29uZmlnXG4gKiBuYW1lcywgc28gaXRzIHBlcm1pc3Npb25zIGFyZSB3aGF0ZXZlciB0aGF0IHJvbGUgYWxyZWFkeSBob2xkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmV2aWV3SWFtIHtcbiAgLyoqIFRoZSBkZWNsYXJlZCBgcm9sZS50eXBlYCwgb3IgYGRlZmF1bHRgIHdoZW4gbm9uZSBpcyBkZWNsYXJlZC4gKi9cbiAgcmVhZG9ubHkgcm9sZVR5cGU6IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgY29uZmlnIG5hbWVzIGFuIGV4aXN0aW5nIHJvbGUvQVJOIHJhdGhlciB0aGFuIHRha2luZyB0aGUgZGVmYXVsdC4gKi9cbiAgcmVhZG9ubHkgY2FsbGVyU3VwcGxpZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgbmFtZWQgcm9sZSBvciBBUk4sIHdoZW4gdGhlIGNvbmZpZyBkZWNsYXJlcyBvbmUuICovXG4gIHJlYWRvbmx5IHJvbGVSZWY/OiBzdHJpbmc7XG59XG5cbi8qKiBFdmVyeXRoaW5nIHRoZSBwcmV2aWV3IHJlcG9ydHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cnVjdHVyZVByZXZpZXcge1xuICByZWFkb25seSBzdGFnZXM6IHJlYWRvbmx5IFByZXZpZXdTdGFnZVtdO1xuICByZWFkb25seSBkZXBsb3lzOiByZWFkb25seSBEZXBsb3lBdHRyaWJ1dGlvbltdO1xuICByZWFkb25seSBpYW06IFByZXZpZXdJYW07XG4gIC8qKiBEaXN0aW5jdCBgcGx1Z2luQHZlcnNpb25gIGFjcm9zcyBldmVyeSBzdGFnZSDigJQgdGhlIHN1cHBseS1jaGFpbiBzdXJmYWNlLiAqL1xuICByZWFkb25seSBwbHVnaW5zOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIFRoZSBjb25maWcgZmllbGRzIHRoaXMgcHJvamVjdGlvbiByZWFkcy4gKi9cbmludGVyZmFjZSBQcmV2aWV3SW5wdXQgZXh0ZW5kcyBEZXBsb3lBdHRyaWJ1dGlvbklucHV0IHtcbiAgcmVhZG9ubHkgc3RhZ2VzPzogcmVhZG9ubHkge1xuICAgIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHN0ZXBzPzogcmVhZG9ubHkge1xuICAgICAgcmVhZG9ubHkgcGx1Z2luPzogeyByZWFkb25seSBuYW1lPzogc3RyaW5nOyByZWFkb25seSBwdWJsaXNoZXI/OiBzdHJpbmc7IHJlYWRvbmx5IGZpbHRlcj86IHsgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZyB9IH07XG4gICAgICByZWFkb25seSBwb3NpdGlvbj86IHN0cmluZztcbiAgICB9W107XG4gIH1bXTtcbiAgcmVhZG9ubHkgcm9sZT86IHsgcmVhZG9ubHkgdHlwZT86IHN0cmluZzsgcmVhZG9ubHkgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH07XG59XG5cbi8qKiBgcHVibGlzaGVyL25hbWVgIHdoZW4gc2NvcGVkLCBlbHNlIHRoZSBiYXJlIG5hbWUuICovXG5mdW5jdGlvbiBwbHVnaW5SZWYocGx1Z2luOiB7IG5hbWU/OiBzdHJpbmc7IHB1Ymxpc2hlcj86IHN0cmluZyB9IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZSA9IHBsdWdpbj8ubmFtZSA/PyAnKHVubmFtZWQpJztcbiAgcmV0dXJuIHBsdWdpbj8ucHVibGlzaGVyID8gYCR7cGx1Z2luLnB1Ymxpc2hlcn0vJHtuYW1lfWAgOiBuYW1lO1xufVxuXG4vKipcbiAqIEhvdyB0aGUgcm9sZSBpcyBvYnRhaW5lZC4gYHJvbGVBcm5gL2Byb2xlTmFtZWAvYG9pZGNSb2xlYCBhbGwgbWVhbiB0aGUgcGlwZWxpbmVcbiAqIGFzc3VtZXMgc29tZXRoaW5nIHRoZSBjb25maWcgbmFtZXM7IG9ubHkgdGhlIGFic2VudC9kZWZhdWx0IGNhc2UgaXMgdGhlXG4gKiBwbGF0Zm9ybSdzIG93biBsZWFzdC1wcml2aWxlZ2Ugcm9sZS5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVJYW0ocm9sZTogUHJldmlld0lucHV0Wydyb2xlJ10pOiBQcmV2aWV3SWFtIHtcbiAgY29uc3Qgcm9sZVR5cGUgPSByb2xlPy50eXBlID8/ICdkZWZhdWx0JztcbiAgY29uc3Qgb3B0cyA9IHJvbGU/Lm9wdGlvbnMgPz8ge307XG4gIGNvbnN0IHJlZiA9IChvcHRzLnJvbGVBcm4gPz8gb3B0cy5yb2xlTmFtZSA/PyBvcHRzLnJvbGVBcm5Ub0Fzc3VtZSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXR1cm4ge1xuICAgIHJvbGVUeXBlLFxuICAgIGNhbGxlclN1cHBsaWVkOiByb2xlVHlwZSA9PT0gJ3JvbGVBcm4nIHx8IHJvbGVUeXBlID09PSAncm9sZU5hbWUnIHx8IHJvbGVUeXBlID09PSAnb2lkY1JvbGUnLFxuICAgIC4uLihyZWYgPyB7IHJvbGVSZWY6IHJlZiB9IDoge30pLFxuICB9O1xufVxuXG4vKiogUHJvamVjdCBhIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24gaW50byB0aGUgc3RydWN0dXJlIGl0IHdpbGwgcHJvZHVjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aWV3U3RydWN0dXJlKHByb3BzOiBQcmV2aWV3SW5wdXQpOiBTdHJ1Y3R1cmVQcmV2aWV3IHtcbiAgY29uc3Qgc3RhZ2VzOiBQcmV2aWV3U3RhZ2VbXSA9IChwcm9wcy5zdGFnZXMgPz8gW10pLm1hcCgocykgPT4gKHtcbiAgICBzdGFnZU5hbWU6IHMuc3RhZ2VOYW1lLFxuICAgIGNvZGVQaXBlbGluZVN0YWdlOiBjb2RlUGlwZWxpbmVTdGFnZU5hbWUocyksXG4gICAgLi4uKHMuZW52aXJvbm1lbnQgPyB7IGVudmlyb25tZW50OiBzLmVudmlyb25tZW50IH0gOiB7fSksXG4gICAgc3RlcHM6IChzLnN0ZXBzID8/IFtdKS5tYXAoKHN0ZXApID0+ICh7XG4gICAgICBwbHVnaW46IHBsdWdpblJlZihzdGVwLnBsdWdpbiksXG4gICAgICAvLyBBbiB1bnBpbm5lZCBwbHVnaW4gcmVzb2x2ZXMgdG8gd2hhdGV2ZXIgaXMgbmV3ZXN0IEFUIFNZTlRILCB3aGljaCBpcyB0aGVcbiAgICAgIC8vIHNpbmdsZSBtb3N0IHJldmlldy13b3J0aHkgZmFjdCBhYm91dCBhIHN0ZXAg4oCUIHNheSBgbGF0ZXN0YCByYXRoZXIgdGhhblxuICAgICAgLy8gb21pdHRpbmcgaXQsIHNvIGEgcmV2aWV3ZXIgc2VlcyB0aGUgZGlmZmVyZW5jZSBmcm9tIGEgcGlubmVkIHZlcnNpb24uXG4gICAgICB2ZXJzaW9uOiBzdGVwLnBsdWdpbj8uZmlsdGVyPy52ZXJzaW9uID8/ICdsYXRlc3QnLFxuICAgICAgcG9zaXRpb246IHN0ZXAucG9zaXRpb24gPT09ICdwb3N0JyA/ICdwb3N0JyA6ICdwcmUnLFxuICAgIH0pKSxcbiAgfSkpO1xuXG4gIGNvbnN0IHBsdWdpbnMgPSBbLi4ubmV3IFNldChcbiAgICBzdGFnZXMuZmxhdE1hcCgocykgPT4gcy5zdGVwcy5tYXAoKHN0KSA9PiBgJHtzdC5wbHVnaW59QCR7c3QudmVyc2lvbn1gKSksXG4gICldLnNvcnQoKTtcblxuICByZXR1cm4ge1xuICAgIHN0YWdlcyxcbiAgICBkZXBsb3lzOiBkZXNjcmliZURlcGxveUF0dHJpYnV0aW9uKHByb3BzKS5kZXBsb3lzLFxuICAgIGlhbTogZGVzY3JpYmVJYW0ocHJvcHMucm9sZSksXG4gICAgcGx1Z2lucyxcbiAgfTtcbn1cblxuLyoqIFdoYXQgYW4gdXBkYXRlIHdvdWxkIGNoYW5nZSwgcmVsYXRpdmUgdG8gdGhlIHN0b3JlZCBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVEaWZmIHtcbiAgLyoqIFN0YWdlIGRpc3BsYXkgbmFtZXMgYWRkZWQgLyByZW1vdmVkIC8ga2VwdCwgaW4gdGhlIG5ldyBjb25maWcncyBvcmRlci4gKi9cbiAgcmVhZG9ubHkgc3RhZ2VzQWRkZWQ6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBzdGFnZXNSZW1vdmVkOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIFN0YWdlcyB3aG9zZSBzdGVwIGxpc3Qgb3IgZW52aXJvbm1lbnQgY2hhbmdlZC4gKi9cbiAgcmVhZG9ubHkgc3RhZ2VzQ2hhbmdlZDogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBgcGx1Z2luQHZlcnNpb25gIGVudHJpZXMgYWRkZWQgLyByZW1vdmVkLiAqL1xuICByZWFkb25seSBwbHVnaW5zQWRkZWQ6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBwbHVnaW5zUmVtb3ZlZDogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBTZXQgd2hlbiB0aGUgSUFNIHJvbGUgY2hhbmdlcyDigJQgdGhlIGNoYW5nZSBtb3N0IHdvcnRoIGEgc2Vjb25kIHBhaXIgb2YgZXllcy4gKi9cbiAgcmVhZG9ubHkgaWFtQ2hhbmdlZD86IHsgcmVhZG9ubHkgZnJvbTogUHJldmlld0lhbTsgcmVhZG9ubHkgdG86IFByZXZpZXdJYW0gfTtcbiAgLyoqIFRydWUgd2hlbiBub3RoaW5nIGluIHRoZSBwcm9qZWN0aW9uIGRpZmZlcnMuICovXG4gIHJlYWRvbmx5IHVuY2hhbmdlZDogYm9vbGVhbjtcbn1cblxuLyoqIEEgc3RhZ2UncyBjb21wYXJhYmxlIGlkZW50aXR5OiBpdHMgc3RlcHMgaW4gb3JkZXIsIHBsdXMgaXRzIGVudmlyb25tZW50LiAqL1xuZnVuY3Rpb24gc3RhZ2VGaW5nZXJwcmludChzdGFnZTogUHJldmlld1N0YWdlKTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFtcbiAgICBzdGFnZS5lbnZpcm9ubWVudCA/PyBudWxsLFxuICAgIHN0YWdlLmNvZGVQaXBlbGluZVN0YWdlLFxuICAgIHN0YWdlLnN0ZXBzLm1hcCgocykgPT4gW3MucGx1Z2luLCBzLnZlcnNpb24sIHMucG9zaXRpb25dKSxcbiAgXSk7XG59XG5cbi8qKlxuICogRGlmZiB0d28gcHJvamVjdGlvbnMuIEtleWVkIG9uIHRoZSBhdXRob3IncyBgc3RhZ2VOYW1lYCwgYmVjYXVzZSB0aGF0IGlzIHdoYXQgYVxuICogcmV2aWV3ZXIgcmVjb2duaXplcyDigJQgYSByZW5hbWVkIHN0YWdlIHJlYWRzIGFzIG9uZSByZW1vdmVkIGFuZCBvbmUgYWRkZWQsIHdoaWNoXG4gKiBpcyB0aGUgaG9uZXN0IHN1bW1hcnkgKENvZGVQaXBlbGluZSByZXBsYWNlcyB0aGUgc3RhZ2UgZWl0aGVyIHdheSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmU3RydWN0dXJlKGJlZm9yZTogU3RydWN0dXJlUHJldmlldywgYWZ0ZXI6IFN0cnVjdHVyZVByZXZpZXcpOiBTdHJ1Y3R1cmVEaWZmIHtcbiAgY29uc3QgYmVmb3JlQnlOYW1lID0gbmV3IE1hcChiZWZvcmUuc3RhZ2VzLm1hcCgocykgPT4gW3Muc3RhZ2VOYW1lLCBzXSkpO1xuICBjb25zdCBhZnRlckJ5TmFtZSA9IG5ldyBNYXAoYWZ0ZXIuc3RhZ2VzLm1hcCgocykgPT4gW3Muc3RhZ2VOYW1lLCBzXSkpO1xuXG4gIGNvbnN0IHN0YWdlc0FkZGVkID0gYWZ0ZXIuc3RhZ2VzLmZpbHRlcigocykgPT4gIWJlZm9yZUJ5TmFtZS5oYXMocy5zdGFnZU5hbWUpKS5tYXAoKHMpID0+IHMuc3RhZ2VOYW1lKTtcbiAgY29uc3Qgc3RhZ2VzUmVtb3ZlZCA9IGJlZm9yZS5zdGFnZXMuZmlsdGVyKChzKSA9PiAhYWZ0ZXJCeU5hbWUuaGFzKHMuc3RhZ2VOYW1lKSkubWFwKChzKSA9PiBzLnN0YWdlTmFtZSk7XG4gIGNvbnN0IHN0YWdlc0NoYW5nZWQgPSBhZnRlci5zdGFnZXNcbiAgICAuZmlsdGVyKChzKSA9PiB7XG4gICAgICBjb25zdCBwcmV2ID0gYmVmb3JlQnlOYW1lLmdldChzLnN0YWdlTmFtZSk7XG4gICAgICByZXR1cm4gcHJldiAhPT0gdW5kZWZpbmVkICYmIHN0YWdlRmluZ2VycHJpbnQocHJldikgIT09IHN0YWdlRmluZ2VycHJpbnQocyk7XG4gICAgfSlcbiAgICAubWFwKChzKSA9PiBzLnN0YWdlTmFtZSk7XG5cbiAgY29uc3QgYmVmb3JlUGx1Z2lucyA9IG5ldyBTZXQoYmVmb3JlLnBsdWdpbnMpO1xuICBjb25zdCBhZnRlclBsdWdpbnMgPSBuZXcgU2V0KGFmdGVyLnBsdWdpbnMpO1xuICBjb25zdCBwbHVnaW5zQWRkZWQgPSBhZnRlci5wbHVnaW5zLmZpbHRlcigocCkgPT4gIWJlZm9yZVBsdWdpbnMuaGFzKHApKTtcbiAgY29uc3QgcGx1Z2luc1JlbW92ZWQgPSBiZWZvcmUucGx1Z2lucy5maWx0ZXIoKHApID0+ICFhZnRlclBsdWdpbnMuaGFzKHApKTtcblxuICBjb25zdCBpYW1DaGFuZ2VkID0gSlNPTi5zdHJpbmdpZnkoYmVmb3JlLmlhbSkgIT09IEpTT04uc3RyaW5naWZ5KGFmdGVyLmlhbSlcbiAgICA/IHsgZnJvbTogYmVmb3JlLmlhbSwgdG86IGFmdGVyLmlhbSB9XG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFnZXNBZGRlZCxcbiAgICBzdGFnZXNSZW1vdmVkLFxuICAgIHN0YWdlc0NoYW5nZWQsXG4gICAgcGx1Z2luc0FkZGVkLFxuICAgIHBsdWdpbnNSZW1vdmVkLFxuICAgIC4uLihpYW1DaGFuZ2VkID8geyBpYW1DaGFuZ2VkIH0gOiB7fSksXG4gICAgdW5jaGFuZ2VkOiBzdGFnZXNBZGRlZC5sZW5ndGggPT09IDAgJiYgc3RhZ2VzUmVtb3ZlZC5sZW5ndGggPT09IDAgJiYgc3RhZ2VzQ2hhbmdlZC5sZW5ndGggPT09IDBcbiAgICAgICYmIHBsdWdpbnNBZGRlZC5sZW5ndGggPT09IDAgJiYgcGx1Z2luc1JlbW92ZWQubGVuZ3RoID09PSAwICYmIGlhbUNoYW5nZWQgPT09IHVuZGVmaW5lZCxcbiAgfTtcbn1cbiJdfQ==
@@ -210,4 +210,4 @@ export function formatTemplateDraftProblems(problems) {
210
210
  return `[${where}] ${p.message}`;
211
211
  });
212
212
  }
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvZHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBd0QzQyw0RkFBNEY7QUFDNUYsTUFBTSxVQUFVLEdBQUcsK0JBQStCLENBQUM7QUFFbkQsMEdBQTBHO0FBQzFHLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFOUMscUVBQXFFO0FBQ3JFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUUvRSwwRUFBMEU7QUFDMUUsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLElBQUksS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMxQyxLQUFLLE1BQU0sTUFBTSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sWUFBWSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FB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QUFDO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDO1FBQ3BELFFBQVE7UUFDUixtQkFBbUIsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQzNDLGNBQWMsRUFBRSxRQUFRO0tBQ3pCLENBQUM7QUFDSixDQUFDO0FBRUQseUVBQXlFO0FBQ3pFLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxRQUF5QztJQUNuRixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xHLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFNlcnZpY2Utc2lkZSB2YWxpZGF0aW9uIG9mIGEgRFJBRlRFRCBwaXBlbGluZSB0ZW1wbGF0ZSDigJQgdGhlIG9uZSBlbnRyeSBwb2ludFxuICogYSBjYWxsZXIgbmVlZHMgdG8gYXNrIFwid291bGQgdGhpcyB0ZW1wbGF0ZSBzdXJ2aXZlIGJlaW5nIGNyZWF0ZWQgYW5kIHRoZW5cbiAqIGluc3RhbnRpYXRlZD9cIiBiZWZvcmUgaXQgaXMgb2ZmZXJlZCB0byBhbnlvbmUuXG4gKlxuICogSXQgZXhpc3RzIGJlY2F1c2UgYSBkcmFmdGVkIHRlbXBsYXRlICh0aGUgYXNrIGFnZW50J3MgYHByb3Bvc2VfdGVtcGxhdGVgLCBhXG4gKiBDTEktYXV0aG9yZWQgZmlsZSwgYW4gaW1wb3J0KSBpcyBvdGhlcndpc2UgY2hlY2tlZCBvbmx5IGFnYWluc3QgYSBzaGFwZVxuICogc2NoZW1hLiBBIHNoYXBlIHNjaGVtYSBjYW5ub3Qgc2VlIHRoYXQgYHt7IHZhcnMuUkVHSU9OIH19YCBpcyByZWZlcmVuY2VkIGJ1dFxuICogbmV2ZXIgZGVjbGFyZWQgaW4gYGlucHV0c2AsIG9yIHRoYXQgdHdvIG1ldGFkYXRhIHZhbHVlcyByZWZlcmVuY2UgZWFjaCBvdGhlclxuICogaW4gYSBjeWNsZTogYm90aCBhcmUgYWNjZXB0ZWQgYXQgY3JlYXRlIHRpbWUgYW5kIG9ubHkgZmFpbCBsYXRlciwgYXQgc3ludGgsXG4gKiBmYXIgZnJvbSB3aG9ldmVyIHdyb3RlIHRoZW0uXG4gKlxuICogV2hhdCBpdCByZXBvcnRzOlxuICogIC0gYHBhcnNlYCAgICAgICAgICAgICAgICDigJQgbWFsZm9ybWVkIGB7eyDigKYgfX1gIGFueXdoZXJlIGluIHRoZSBib2R5LCBhdCBpdHMgbGluZS9jb2wuXG4gKiAgLSBgcmVzZXJ2ZWQtc2NvcGVgICAgICAgIOKAlCBge3sgc2VjcmV0cy4qIH19YCwgd2hpY2ggdGhlIGVuZ2luZSByZXNlcnZlcy5cbiAqICAtIGB1bmtub3duLXNjb3BlYCAgICAgICAg4oCUIGEgc2VsZi1yZWZlcmVuY2luZyBmaWVsZCBwb2ludGluZyBhdCBhIHJvb3QgdGhhdCBpc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5laXRoZXIgYG1ldGFkYXRhYCBub3IgYHZhcnNgOyB0aGUgcGlwZWxpbmUgY3JlYXRlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCByZWplY3RzIGV4YWN0bHkgdGhlc2UuXG4gKiAgLSBgY3ljbGVgICAgICAgICAgICAgICAgIOKAlCBzZWxmLXJlZmVyZW5jZXMgdGhhdCBjYW5ub3QgYmUgb3JkZXJlZC5cbiAqICAtIGB1bmRlY2xhcmVkLXZhcmlhYmxlYCAg4oCUIGB7eyB2YXJzLlggfX1gIHdpdGggbm8gbWF0Y2hpbmcgYGlucHV0c1tdLm5hbWVgIGFuZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIGRlZmF1bHQgaW4gYHByb3BzLnZhcnNgLCBzbyBpbnN0YW50aWF0aW9uIGNhblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldmVyIHN1cHBseSBpdC5cbiAqICAtIGBkdXBsaWNhdGUtaW5wdXRgIC8gYGludmFsaWQtaW5wdXQtbmFtZWAg4oCUIGFuIGlucHV0IHRoYXQgY2Fubm90IGJlIGZpbGxlZDpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHJlcGVhdGVkIG5hbWUsIG9yIG9uZSB0aGUgZ3JhbW1hciBjYW5ub3QgZXhwcmVzc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIGB7eyB2YXJzLjxuYW1lPiB9fWAuXG4gKiAgLSBgdW51c2VkLWlucHV0YCAgICAgICAgIOKAlCBkZWNsYXJlZCBidXQgbmV2ZXIgcmVmZXJlbmNlZC4gQSBXQVJOSU5HOiB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSBzdGlsbCB3b3JrcywgaXQganVzdCBhc2tzIGZvciBzb21ldGhpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdCBpZ25vcmVzLlxuICpcbiAqIEVycm9ycyBtZWFuIFwiZG8gbm90IG9mZmVyIHRoaXNcIjsgd2FybmluZ3MgbWVhbiBcInNheSBzbyBhbmQgbGV0IHRoZSBhdXRob3JcbiAqIGRlY2lkZVwiLiBgdmFsaWRgIHJlZmxlY3RzIGVycm9ycyBvbmx5LlxuICovXG5cbmltcG9ydCB7IFRva2VuaXplckVycm9yLCB0b2tlbml6ZSB9IGZyb20gJy4vdG9rZW5pemVyLmpzJztcbmltcG9ydCB7IGRldGVjdEN5Y2xlcyB9IGZyb20gJy4vdmFsaWRhdGUuanMnO1xuaW1wb3J0IHsgdmlzaXRTdHJpbmdzIH0gZnJvbSAnLi93YWxrZXIuanMnO1xuXG4vKiogV2hhdCB3ZW50IHdyb25nLiBTZWUgdGhlIG1vZHVsZSBoZWFkZXIgZm9yIHdoYXQgZWFjaCBraW5kIG1lYW5zLiAqL1xuZXhwb3J0IHR5cGUgVGVtcGxhdGVEcmFmdFByb2JsZW1LaW5kID1cbiAgfCAnaW52YWxpZC1wcm9wcydcbiAgfCAncGFyc2UnXG4gIHwgJ3Jlc2VydmVkLXNjb3BlJ1xuICB8ICd1bmtub3duLXNjb3BlJ1xuICB8ICdjeWNsZSdcbiAgfCAndW5kZWNsYXJlZC12YXJpYWJsZSdcbiAgfCAnZHVwbGljYXRlLWlucHV0J1xuICB8ICdpbnZhbGlkLWlucHV0LW5hbWUnXG4gIHwgJ3VudXNlZC1pbnB1dCc7XG5cbi8qKiBPbmUgcHJvYmxlbSBmb3VuZCBpbiBhIGRyYWZ0ZWQgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRHJhZnRQcm9ibGVtIHtcbiAgcmVhZG9ubHkga2luZDogVGVtcGxhdGVEcmFmdFByb2JsZW1LaW5kO1xuICAvKiogYGVycm9yYCBibG9ja3MgdGhlIGRyYWZ0OyBgd2FybmluZ2AgaXMgd29ydGggc2F5aW5nIGJ1dCBub3QgZmF0YWwuICovXG4gIHJlYWRvbmx5IHNldmVyaXR5OiAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBEb3R0ZWQgcGF0aCBvZiB0aGUgb2ZmZW5kaW5nIGZpZWxkIGluc2lkZSBgcHJvcHNgLCB3aGVuIHRoZXJlIGlzIG9uZS4gKi9cbiAgcmVhZG9ubHkgZmllbGQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxpbmU/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbD86IG51bWJlcjtcbiAgLyoqIFRoZSBge3sgcGF0aCB9fWAgdGhhdCBjYXVzZWQgaXQuICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBGb3IgYGN5Y2xlYDogdGhlIHNjb3BlIGtleXMgZm9ybWluZyB0aGUgbG9vcC4gKi9cbiAgcmVhZG9ubHkgY3ljbGU/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIEZvciB0aGUgdmFyaWFibGUvaW5wdXQga2luZHM6IHRoZSBgdmFycy48bmFtZT5gIGludm9sdmVkLiAqL1xuICByZWFkb25seSB2YXJpYWJsZT86IHN0cmluZztcbn1cblxuLyoqIE9uZSBkZWNsYXJlZCBpbnB1dCwgcmVhZCBkZWZlbnNpdmVseSDigJQgYSBkcmFmdCdzIGBpbnB1dHNgIGlzIHVudHJ1c3RlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVEcmFmdElucHV0IHtcbiAgcmVhZG9ubHkgbmFtZT86IHVua25vd247XG59XG5cbi8qKiBUaGUgcGFydCBvZiBhIGRyYWZ0ZWQgdGVtcGxhdGUgdGhpcyB2YWxpZGF0b3IgcmVhZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRHJhZnRMaWtlIHtcbiAgLyoqIFRoZSB0ZW1wbGF0ZSBib2R5OiBhIEJ1aWxkZXJQcm9wcyBjYXJyeWluZyBge3sgdmFycy4qIH19YCBwbGFjZWhvbGRlcnMuICovXG4gIHJlYWRvbmx5IHByb3BzPzogdW5rbm93bjtcbiAgLyoqIFRoZSBkZWNsYXJlZCBgdmFycy4qYCBjb250cmFjdC4gKi9cbiAgcmVhZG9ubHkgaW5wdXRzPzogcmVhZG9ubHkgVGVtcGxhdGVEcmFmdElucHV0W10gfCBudWxsO1xufVxuXG4vKiogVGhlIHZlcmRpY3Qgb24gYSBkcmFmdGVkIHRlbXBsYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZURyYWZ0VmFsaWRhdGlvbiB7XG4gIC8qKiBUcnVlIHdoZW4gbm8gcHJvYmxlbSBoYXMgYHNldmVyaXR5OiAnZXJyb3InYC4gKi9cbiAgcmVhZG9ubHkgdmFsaWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHByb2JsZW1zOiByZWFkb25seSBUZW1wbGF0ZURyYWZ0UHJvYmxlbVtdO1xuICAvKiogRXZlcnkgYHZhcnMuPG5hbWU+YCB0aGUgYm9keSByZWZlcmVuY2VzLCBzb3J0ZWQuICovXG4gIHJlYWRvbmx5IHJlZmVyZW5jZWRWYXJpYWJsZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogRXZlcnkgd2VsbC1mb3JtZWQgYGlucHV0c1tdLm5hbWVgLCBpbiBkZWNsYXJhdGlvbiBvcmRlci4gKi9cbiAgcmVhZG9ubHkgZGVjbGFyZWRJbnB1dHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKiogVGhlIHRlbXBsYXRlIGdyYW1tYXIncyBpZGVudGlmaWVyIHJ1bGUgKHRva2VuaXplci50cyk6IGBbYS16QS1aX11bYS16QS1aMC05X117MCw2M31gLiAqL1xuY29uc3QgSURFTlRJRklFUiA9IC9eW2EtekEtWl9dW2EtekEtWjAtOV9dezAsNjN9JC87XG5cbi8qKiBUaGUgcm9vdHMgYSBzZWxmLXJlZmVyZW5jaW5nIHBpcGVsaW5lIGZpZWxkIG1heSBhZGRyZXNzIChzYW1lIHNldCB0aGUgcGlwZWxpbmUgY3JlYXRlIHBhdGggYWxsb3dzKS4gKi9cbmNvbnN0IFNFTEZfU0NPUEVfUk9PVFMgPSBbJ21ldGFkYXRhJywgJ3ZhcnMnXTtcblxuLyoqIFRoZSBtZXRhZGF0YSBsYXllcnMgc3ludGggbWVyZ2VzLCBpbiB0aGUgb3JkZXIgaXQgbWVyZ2VzIHRoZW0uICovXG5jb25zdCBNRVRBREFUQV9QUkVGSVhFUyA9IFsnZ2xvYmFsLicsICdkZWZhdWx0cy5tZXRhZGF0YS4nLCAnc3ludGgubWV0YWRhdGEuJ107XG5cbi8qKiBUaGUgZmlyc3QgcGF0aCBzZWdtZW50IG9mIGByZXN0YCDigJQgYEEuQmAgYW5kIGBBWzBdYCBib3RoIHlpZWxkIGBBYC4gKi9cbmZ1bmN0aW9uIGZpcnN0U2VnbWVudChyZXN0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IC9eW14uW10rLy5leGVjKHJlc3QpO1xuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFswXSA6IHJlc3Q7XG59XG5cbi8qKlxuICogVGhlIHNjb3BlIGtleSBhIHRlbXBsYXRhYmxlIGZpZWxkIFdSSVRFUywgb3IgbnVsbCB3aGVuIHRoZSBmaWVsZCBpcyBub3RcbiAqIHNlbGYtcmVmZXJlbmNpbmcuIGBnbG9iYWwuZW52YCwgYGRlZmF1bHRzLm1ldGFkYXRhLmVudmAgYW5kXG4gKiBgc3ludGgubWV0YWRhdGEuZW52YCBhbGwgd3JpdGUgYG1ldGFkYXRhLmVudmAg4oCUIHRoYXQgaXMgaG93IHN5bnRoIGxheWVyc1xuICogdGhlbSDigJQgc28gYSBjeWNsZSB0aHJvdWdoIGFueSBsYXllciBpcyBmb3VuZC5cbiAqL1xuZnVuY3Rpb24gc2VsZlNjb3BlS2V5KGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKGZpZWxkID09PSAncHJvamVjdCcpIHJldHVybiAncHJvamVjdCc7XG4gIGZvciAoY29uc3QgcHJlZml4IG9mIE1FVEFEQVRBX1BSRUZJWEVTKSB7XG4gICAgaWYgKGZpZWxkLnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGBtZXRhZGF0YS4ke2ZpcnN0U2VnbWVudChmaWVsZC5zbGljZShwcmVmaXgubGVuZ3RoKSl9YDtcbiAgfVxuICBpZiAoZmllbGQuc3RhcnRzV2l0aCgndmFycy4nKSkgcmV0dXJuIGB2YXJzLiR7Zmlyc3RTZWdtZW50KGZpZWxkLnNsaWNlKCd2YXJzLicubGVuZ3RoKSl9YDtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzUmVjb3JkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGRyYWZ0ZWQgcGlwZWxpbmUgdGVtcGxhdGUuIE5ldmVyIHRocm93czogYSBtYWxmb3JtZWQgZHJhZnQgY29tZXNcbiAqIGJhY2sgYXMgcHJvYmxlbXMsIGJlY2F1c2UgdGhlIGNhbGxlcidzIGpvYiBpcyB0byByZXBvcnQgdGhlbSwgbm90IHRvIGNyYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUZW1wbGF0ZURyYWZ0KGRyYWZ0OiBUZW1wbGF0ZURyYWZ0TGlrZSk6IFRlbXBsYXRlRHJhZnRWYWxpZGF0aW9uIHtcbiAgY29uc3QgcHJvYmxlbXM6IFRlbXBsYXRlRHJhZnRQcm9ibGVtW10gPSBbXTtcbiAgY29uc3QgcmVmZXJlbmNlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGlmICghaXNSZWNvcmQoZHJhZnQucHJvcHMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIHByb2JsZW1zOiBbeyBraW5kOiAnaW52YWxpZC1wcm9wcycsIHNldmVyaXR5OiAnZXJyb3InLCBtZXNzYWdlOiAnVGVtcGxhdGUgYm9keSAocHJvcHMpIG11c3QgYmUgYW4gb2JqZWN0JyB9XSxcbiAgICAgIHJlZmVyZW5jZWRWYXJpYWJsZXM6IFtdLFxuICAgICAgZGVjbGFyZWRJbnB1dHM6IFtdLFxuICAgIH07XG4gIH1cbiAgY29uc3QgcHJvcHMgPSBkcmFmdC5wcm9wcztcblxuICAvLyAtLSBQYXNzIDE6IGV2ZXJ5IHN0cmluZyBpbiB0aGUgYm9keSwgc28gYSBtYWxmb3JtZWQgYHt7YCBpcyBjYXVnaHQgd2hlcmV2ZXJcbiAgLy8gICAgaXQgaXMg4oCUIG5vdCBvbmx5IGluIHRoZSBmaWVsZHMgdGhlIHBpcGVsaW5lIGNyZWF0ZSBwYXRoIGhhcHBlbnMgdG8gY2hlY2suXG4gIGxldCBwYXJzZUZhaWxlZCA9IGZhbHNlO1xuICB2aXNpdFN0cmluZ3MocHJvcHMsICgpID0+IHRydWUsIChmaWVsZCwgc291cmNlKSA9PiB7XG4gICAgbGV0IHRva2VucztcbiAgICB0cnkge1xuICAgICAgdG9rZW5zID0gdG9rZW5pemUoc291cmNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHBhcnNlRmFpbGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHBvcyA9IGVyciBpbnN0YW5jZW9mIFRva2VuaXplckVycm9yID8gZXJyLnBvcyA6IHVuZGVmaW5lZDtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBraW5kOiAncGFyc2UnLFxuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgLi4uKHBvcyAmJiB7IGxpbmU6IHBvcy5saW5lLCBjb2w6IHBvcy5jb2wgfSksXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZlJlZmVyZW5jaW5nID0gc2VsZlNjb3BlS2V5KGZpZWxkKSAhPT0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgaWYgKHRva2VuLmtpbmQgIT09ICdleHByJykgY29udGludWU7XG4gICAgICBjb25zdCByb290ID0gdG9rZW4ucGF0aFswXSE7XG4gICAgICBjb25zdCBwYXRoID0gdG9rZW4ucGF0aC5qb2luKCcuJyk7XG4gICAgICBpZiAocm9vdCA9PT0gJ3NlY3JldHMnKSB7XG4gICAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICAgIGtpbmQ6ICdyZXNlcnZlZC1zY29wZScsXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogJ1xcJ3NlY3JldHNcXCcgaXMgYSByZXNlcnZlZCBzY29wZSDigJQgYSB0ZW1wbGF0ZSBib2R5IG11c3Qgbm90IHJlZmVyZW5jZSBpdCcsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBsaW5lOiB0b2tlbi5wb3MubGluZSxcbiAgICAgICAgICBjb2w6IHRva2VuLnBvcy5jb2wsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyb290ID09PSAndmFycycgJiYgdG9rZW4ucGF0aC5sZW5ndGggPiAxKSByZWZlcmVuY2VkLmFkZCh0b2tlbi5wYXRoWzFdISk7XG4gICAgICBpZiAoc2VsZlJlZmVyZW5jaW5nICYmICFTRUxGX1NDT1BFX1JPT1RTLmluY2x1ZGVzKHJvb3QpKSB7XG4gICAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICAgIGtpbmQ6ICd1bmtub3duLXNjb3BlJyxcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgcmVmZXJlbmNlcyB1bmtub3duIHNjb3BlIHJvb3QgJyR7cm9vdH0nIChhIHBpcGVsaW5lIGZpZWxkIG1heSByZWZlcmVuY2UgJHtTRUxGX1NDT1BFX1JPT1RTLmpvaW4oJyBvciAnKX0gb25seSlgLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbGluZTogdG9rZW4ucG9zLmxpbmUsXG4gICAgICAgICAgY29sOiB0b2tlbi5wb3MuY29sLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIC0tIFBhc3MgMjogY3ljbGVzIGFtb25nIHRoZSBzZWxmLXJlZmVyZW5jaW5nIGZpZWxkcy4gU2tpcHBlZCB3aGVuIGFueXRoaW5nXG4gIC8vICAgIGZhaWxlZCB0byBwYXJzZSDigJQgdGhlIGN5Y2xlIHdhbGtlciB0b2tlbml6ZXMgZWFnZXJseSBhbmQgd291bGQgdGhyb3cgb25cbiAgLy8gICAgdGhlIHNhbWUgYmFkIGZpZWxkIHRoYXQgcGFzcyAxIGFscmVhZHkgcmVwb3J0ZWQuXG4gIGlmICghcGFyc2VGYWlsZWQpIHtcbiAgICBmb3IgKGNvbnN0IGVyciBvZiBkZXRlY3RDeWNsZXMocHJvcHMsIChmaWVsZCkgPT4gc2VsZlNjb3BlS2V5KGZpZWxkKSAhPT0gbnVsbCwgc2VsZlNjb3BlS2V5KSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgIGtpbmQ6ICdjeWNsZScsXG4gICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgZmllbGQ6IGVyci5maWVsZCxcbiAgICAgICAgLi4uKGVyci5jeWNsZSAmJiB7IGN5Y2xlOiBlcnIuY3ljbGUgfSksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBQYXNzIDM6IHRoZSBkZWNsYXJlZCBpbnB1dHMuIEFuIGlucHV0IHRoZSBncmFtbWFyIGNhbm5vdCBleHByZXNzLCBvciBvbmVcbiAgLy8gICAgZGVjbGFyZWQgdHdpY2UsIGNhbiBuZXZlciBiZSBmaWxsZWQgaW4g4oCUIGJvdGggYXJlIGVycm9ycywgbm90IHdhcm5pbmdzLlxuICBjb25zdCBkZWNsYXJlZDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGlucHV0IG9mIGRyYWZ0LmlucHV0cyA/PyBbXSkge1xuICAgIGNvbnN0IG5hbWUgPSBpbnB1dD8ubmFtZTtcbiAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnIHx8ICFJREVOVElGSUVSLnRlc3QobmFtZSkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBraW5kOiAnaW52YWxpZC1pbnB1dC1uYW1lJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IGBEZWNsYXJlZCBpbnB1dCAke0pTT04uc3RyaW5naWZ5KG5hbWUpfSBpcyBub3QgYSB1c2FibGUgdmFyaWFibGUgbmFtZSAoJHtJREVOVElGSUVSLnNvdXJjZX0pYCxcbiAgICAgICAgLi4uKHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyAmJiB7IHZhcmlhYmxlOiBuYW1lIH0pLFxuICAgICAgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHNlZW4uaGFzKG5hbWUpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHsga2luZDogJ2R1cGxpY2F0ZS1pbnB1dCcsIHNldmVyaXR5OiAnZXJyb3InLCBtZXNzYWdlOiBgRGVjbGFyZWQgaW5wdXQgJyR7bmFtZX0nIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2VgLCB2YXJpYWJsZTogbmFtZSB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzZWVuLmFkZChuYW1lKTtcbiAgICBkZWNsYXJlZC5wdXNoKG5hbWUpO1xuICB9XG5cbiAgLy8gLS0gUGFzcyA0OiB0aGUgY29udHJhY3QgYmV0d2VlbiBib2R5IGFuZCBpbnB1dHMuIEEgdmFyIHRoZSBib2R5IHJlZmVyZW5jZXNcbiAgLy8gICAgaXMgc3VwcGxpZWQgZWl0aGVyIGJ5IGEgZGVjbGFyZWQgaW5wdXQgb3IgYnkgYSBkZWZhdWx0IGFscmVhZHkgc2l0dGluZyBpblxuICAvLyAgICBgcHJvcHMudmFyc2A7IGFueXRoaW5nIGVsc2UgaGFzIG5vIHdheSBvZiBldmVyIGdldHRpbmcgYSB2YWx1ZS5cbiAgY29uc3QgZGVmYXVsdGVkID0gaXNSZWNvcmQocHJvcHMudmFycykgPyBPYmplY3Qua2V5cyhwcm9wcy52YXJzKSA6IFtdO1xuICBjb25zdCBzdXBwbGllZCA9IG5ldyBTZXQoWy4uLmRlY2xhcmVkLCAuLi5kZWZhdWx0ZWRdKTtcbiAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiBbLi4ucmVmZXJlbmNlZF0uc29ydCgpKSB7XG4gICAgaWYgKHN1cHBsaWVkLmhhcyh2YXJpYWJsZSkpIGNvbnRpbnVlO1xuICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAga2luZDogJ3VuZGVjbGFyZWQtdmFyaWFibGUnLFxuICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgcmVmZXJlbmNlcyB7eyB2YXJzLiR7dmFyaWFibGV9IH19IGJ1dCBkZWNsYXJlcyBubyBpbnB1dCBuYW1lZCAnJHt2YXJpYWJsZX0nYCxcbiAgICAgIHZhcmlhYmxlLFxuICAgIH0pO1xuICB9XG4gIGZvciAoY29uc3QgbmFtZSBvZiBkZWNsYXJlZCkge1xuICAgIGlmIChyZWZlcmVuY2VkLmhhcyhuYW1lKSkgY29udGludWU7XG4gICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICBraW5kOiAndW51c2VkLWlucHV0JyxcbiAgICAgIHNldmVyaXR5OiAnd2FybmluZycsXG4gICAgICBtZXNzYWdlOiBgRGVjbGFyZWQgaW5wdXQgJyR7bmFtZX0nIGlzIG5ldmVyIHJlZmVyZW5jZWQgYXMge3sgdmFycy4ke25hbWV9IH19YCxcbiAgICAgIHZhcmlhYmxlOiBuYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWxpZDogIXByb2JsZW1zLnNvbWUoKHApID0+IHAuc2V2ZXJpdHkgPT09ICdlcnJvcicpLFxuICAgIHByb2JsZW1zLFxuICAgIHJlZmVyZW5jZWRWYXJpYWJsZXM6IFsuLi5yZWZlcmVuY2VkXS5zb3J0KCksXG4gICAgZGVjbGFyZWRJbnB1dHM6IGRlY2xhcmVkLFxuICB9O1xufVxuXG4vKiogT25lIHJlYWRhYmxlIGxpbmUgcGVyIHByb2JsZW0sIGZvciBhIHRvb2wgcmVzdWx0IG9yIGFuIGVycm9yIGJvZHkuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGVtcGxhdGVEcmFmdFByb2JsZW1zKHByb2JsZW1zOiByZWFkb25seSBUZW1wbGF0ZURyYWZ0UHJvYmxlbVtdKTogc3RyaW5nW10ge1xuICByZXR1cm4gcHJvYmxlbXMubWFwKChwKSA9PiB7XG4gICAgY29uc3Qgd2hlcmUgPSBwLmZpZWxkID8gYCR7cC5maWVsZH0ke3AubGluZSAhPT0gdW5kZWZpbmVkID8gYDoke3AubGluZX06JHtwLmNvbH1gIDogJyd9YCA6IHAua2luZDtcbiAgICByZXR1cm4gYFske3doZXJlfV0gJHtwLm1lc3NhZ2V9YDtcbiAgfSk7XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9kcmFmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUF3RDNDLDRGQUE0RjtBQUM1RixNQUFNLFVBQVUsR0FBRywrQkFBK0IsQ0FBQztBQUVuRCwwR0FBMEc7QUFDMUcsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUU5QyxxRUFBcUU7QUFDckUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRS9FLDBFQUEwRTtBQUMxRSxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsSUFBSSxLQUFLLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzFDLEtBQUssTUFBTSxNQUFNLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxZQUFZLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFN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Q0wsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUM7UUFDcEQsUUFBUTtRQUNSLG1CQUFtQixFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFDM0MsY0FBYyxFQUFFLFFBQVE7S0FDekIsQ0FBQztBQUNKLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQXlDO0lBQ25GLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbEcsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU2VydmljZS1zaWRlIHZhbGlkYXRpb24gb2YgYSBEUkFGVEVEIHBpcGVsaW5lIHRlbXBsYXRlIOKAlCB0aGUgb25lIGVudHJ5IHBvaW50XG4gKiBhIGNhbGxlciBuZWVkcyB0byBhc2sgXCJ3b3VsZCB0aGlzIHRlbXBsYXRlIHN1cnZpdmUgYmVpbmcgY3JlYXRlZCBhbmQgdGhlblxuICogaW5zdGFudGlhdGVkP1wiIGJlZm9yZSBpdCBpcyBvZmZlcmVkIHRvIGFueW9uZS5cbiAqXG4gKiBJdCBleGlzdHMgYmVjYXVzZSBhIGRyYWZ0ZWQgdGVtcGxhdGUgKHRoZSBhc2sgYWdlbnQncyBgcHJvcG9zZV90ZW1wbGF0ZWAsIGFcbiAqIENMSS1hdXRob3JlZCBmaWxlLCBhbiBpbXBvcnQpIGlzIG90aGVyd2lzZSBjaGVja2VkIG9ubHkgYWdhaW5zdCBhIHNoYXBlXG4gKiBzY2hlbWEuIEEgc2hhcGUgc2NoZW1hIGNhbm5vdCBzZWUgdGhhdCBge3sgdmFycy5SRUdJT04gfX1gIGlzIHJlZmVyZW5jZWQgYnV0XG4gKiBuZXZlciBkZWNsYXJlZCBpbiBgaW5wdXRzYCwgb3IgdGhhdCB0d28gbWV0YWRhdGEgdmFsdWVzIHJlZmVyZW5jZSBlYWNoIG90aGVyXG4gKiBpbiBhIGN5Y2xlOiBib3RoIGFyZSBhY2NlcHRlZCBhdCBjcmVhdGUgdGltZSBhbmQgb25seSBmYWlsIGxhdGVyLCBhdCBzeW50aCxcbiAqIGZhciBmcm9tIHdob2V2ZXIgd3JvdGUgdGhlbS5cbiAqXG4gKiBXaGF0IGl0IHJlcG9ydHM6XG4gKiAgLSBgcGFyc2VgICAgICAgICAgICAgICAgIOKAlCBtYWxmb3JtZWQgYHt7IOKApiB9fWAgYW55d2hlcmUgaW4gdGhlIGJvZHksIGF0IGl0cyBsaW5lL2NvbC5cbiAqICAtIGByZXNlcnZlZC1zY29wZWAgICAgICAg4oCUIGB7eyBzZWNyZXRzLiogfX1gLCB3aGljaCB0aGUgZW5naW5lIHJlc2VydmVzLlxuICogIC0gYHVua25vd24tc2NvcGVgICAgICAgICDigJQgYSBzZWxmLXJlZmVyZW5jaW5nIGZpZWxkIHBvaW50aW5nIGF0IGEgcm9vdCB0aGF0IGlzXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVpdGhlciBgbWV0YWRhdGFgIG5vciBgdmFyc2A7IHRoZSBwaXBlbGluZSBjcmVhdGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIHJlamVjdHMgZXhhY3RseSB0aGVzZS5cbiAqICAtIGBjeWNsZWAgICAgICAgICAgICAgICAg4oCUIHNlbGYtcmVmZXJlbmNlcyB0aGF0IGNhbm5vdCBiZSBvcmRlcmVkLlxuICogIC0gYHVuZGVjbGFyZWQtdmFyaWFibGVgICDigJQgYHt7IHZhcnMuWCB9fWAgd2l0aCBubyBtYXRjaGluZyBgaW5wdXRzW10ubmFtZWAgYW5kXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8gZGVmYXVsdCBpbiBgcHJvcHMudmFyc2AsIHNvIGluc3RhbnRpYXRpb24gY2FuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV2ZXIgc3VwcGx5IGl0LlxuICogIC0gYGR1cGxpY2F0ZS1pbnB1dGAgLyBgaW52YWxpZC1pbnB1dC1uYW1lYCDigJQgYW4gaW5wdXQgdGhhdCBjYW5ub3QgYmUgZmlsbGVkOlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgcmVwZWF0ZWQgbmFtZSwgb3Igb25lIHRoZSBncmFtbWFyIGNhbm5vdCBleHByZXNzXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYHt7IHZhcnMuPG5hbWU+IH19YC5cbiAqICAtIGB1bnVzZWQtaW5wdXRgICAgICAgICAg4oCUIGRlY2xhcmVkIGJ1dCBuZXZlciByZWZlcmVuY2VkLiBBIFdBUk5JTkc6IHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlIHN0aWxsIHdvcmtzLCBpdCBqdXN0IGFza3MgZm9yIHNvbWV0aGluZ1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0IGlnbm9yZXMuXG4gKlxuICogRXJyb3JzIG1lYW4gXCJkbyBub3Qgb2ZmZXIgdGhpc1wiOyB3YXJuaW5ncyBtZWFuIFwic2F5IHNvIGFuZCBsZXQgdGhlIGF1dGhvclxuICogZGVjaWRlXCIuIGB2YWxpZGAgcmVmbGVjdHMgZXJyb3JzIG9ubHkuXG4gKi9cblxuaW1wb3J0IHsgVG9rZW5pemVyRXJyb3IsIHRva2VuaXplIH0gZnJvbSAnLi90b2tlbml6ZXIuanMnO1xuaW1wb3J0IHsgZGV0ZWN0Q3ljbGVzIH0gZnJvbSAnLi92YWxpZGF0ZS5qcyc7XG5pbXBvcnQgeyB2aXNpdFN0cmluZ3MgfSBmcm9tICcuL3dhbGtlci5qcyc7XG5cbi8qKiBXaGF0IHdlbnQgd3JvbmcuIFNlZSB0aGUgbW9kdWxlIGhlYWRlciBmb3Igd2hhdCBlYWNoIGtpbmQgbWVhbnMuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZURyYWZ0UHJvYmxlbUtpbmQgPVxuICB8ICdpbnZhbGlkLXByb3BzJ1xuICB8ICdwYXJzZSdcbiAgfCAncmVzZXJ2ZWQtc2NvcGUnXG4gIHwgJ3Vua25vd24tc2NvcGUnXG4gIHwgJ2N5Y2xlJ1xuICB8ICd1bmRlY2xhcmVkLXZhcmlhYmxlJ1xuICB8ICdkdXBsaWNhdGUtaW5wdXQnXG4gIHwgJ2ludmFsaWQtaW5wdXQtbmFtZSdcbiAgfCAndW51c2VkLWlucHV0JztcblxuLyoqIE9uZSBwcm9ibGVtIGZvdW5kIGluIGEgZHJhZnRlZCB0ZW1wbGF0ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVEcmFmdFByb2JsZW0ge1xuICByZWFkb25seSBraW5kOiBUZW1wbGF0ZURyYWZ0UHJvYmxlbUtpbmQ7XG4gIC8qKiBgZXJyb3JgIGJsb2NrcyB0aGUgZHJhZnQ7IGB3YXJuaW5nYCBpcyB3b3J0aCBzYXlpbmcgYnV0IG5vdCBmYXRhbC4gKi9cbiAgcmVhZG9ubHkgc2V2ZXJpdHk6ICdlcnJvcicgfCAnd2FybmluZyc7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIERvdHRlZCBwYXRoIG9mIHRoZSBvZmZlbmRpbmcgZmllbGQgaW5zaWRlIGBwcm9wc2AsIHdoZW4gdGhlcmUgaXMgb25lLiAqL1xuICByZWFkb25seSBmaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbGluZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgY29sPzogbnVtYmVyO1xuICAvKiogVGhlIGB7eyBwYXRoIH19YCB0aGF0IGNhdXNlZCBpdC4gKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEZvciBgY3ljbGVgOiB0aGUgc2NvcGUga2V5cyBmb3JtaW5nIHRoZSBsb29wLiAqL1xuICByZWFkb25seSBjeWNsZT86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogRm9yIHRoZSB2YXJpYWJsZS9pbnB1dCBraW5kczogdGhlIGB2YXJzLjxuYW1lPmAgaW52b2x2ZWQuICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlPzogc3RyaW5nO1xufVxuXG4vKiogT25lIGRlY2xhcmVkIGlucHV0LCByZWFkIGRlZmVuc2l2ZWx5IOKAlCBhIGRyYWZ0J3MgYGlucHV0c2AgaXMgdW50cnVzdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZURyYWZ0SW5wdXQge1xuICByZWFkb25seSBuYW1lPzogdW5rbm93bjtcbn1cblxuLyoqIFRoZSBwYXJ0IG9mIGEgZHJhZnRlZCB0ZW1wbGF0ZSB0aGlzIHZhbGlkYXRvciByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVEcmFmdExpa2Uge1xuICAvKiogVGhlIHRlbXBsYXRlIGJvZHk6IGEgQnVpbGRlclByb3BzIGNhcnJ5aW5nIGB7eyB2YXJzLiogfX1gIHBsYWNlaG9sZGVycy4gKi9cbiAgcmVhZG9ubHkgcHJvcHM/OiB1bmtub3duO1xuICAvKiogVGhlIGRlY2xhcmVkIGB2YXJzLipgIGNvbnRyYWN0LiAqL1xuICByZWFkb25seSBpbnB1dHM/OiByZWFkb25seSBUZW1wbGF0ZURyYWZ0SW5wdXRbXSB8IG51bGw7XG59XG5cbi8qKiBUaGUgdmVyZGljdCBvbiBhIGRyYWZ0ZWQgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRHJhZnRWYWxpZGF0aW9uIHtcbiAgLyoqIFRydWUgd2hlbiBubyBwcm9ibGVtIGhhcyBgc2V2ZXJpdHk6ICdlcnJvcidgLiAqL1xuICByZWFkb25seSB2YWxpZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHJvYmxlbXM6IHJlYWRvbmx5IFRlbXBsYXRlRHJhZnRQcm9ibGVtW107XG4gIC8qKiBFdmVyeSBgdmFycy48bmFtZT5gIHRoZSBib2R5IHJlZmVyZW5jZXMsIHNvcnRlZC4gKi9cbiAgcmVhZG9ubHkgcmVmZXJlbmNlZFZhcmlhYmxlczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBFdmVyeSB3ZWxsLWZvcm1lZCBgaW5wdXRzW10ubmFtZWAsIGluIGRlY2xhcmF0aW9uIG9yZGVyLiAqL1xuICByZWFkb25seSBkZWNsYXJlZElucHV0czogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKiBUaGUgdGVtcGxhdGUgZ3JhbW1hcidzIGlkZW50aWZpZXIgcnVsZSAodG9rZW5pemVyLnRzKTogYFthLXpBLVpfXVthLXpBLVowLTlfXXswLDYzfWAuICovXG5jb25zdCBJREVOVElGSUVSID0gL15bYS16QS1aX11bYS16QS1aMC05X117MCw2M30kLztcblxuLyoqIFRoZSByb290cyBhIHNlbGYtcmVmZXJlbmNpbmcgcGlwZWxpbmUgZmllbGQgbWF5IGFkZHJlc3MgKHNhbWUgc2V0IHRoZSBwaXBlbGluZSBjcmVhdGUgcGF0aCBhbGxvd3MpLiAqL1xuY29uc3QgU0VMRl9TQ09QRV9ST09UUyA9IFsnbWV0YWRhdGEnLCAndmFycyddO1xuXG4vKiogVGhlIG1ldGFkYXRhIGxheWVycyBzeW50aCBtZXJnZXMsIGluIHRoZSBvcmRlciBpdCBtZXJnZXMgdGhlbS4gKi9cbmNvbnN0IE1FVEFEQVRBX1BSRUZJWEVTID0gWydnbG9iYWwuJywgJ2RlZmF1bHRzLm1ldGFkYXRhLicsICdzeW50aC5tZXRhZGF0YS4nXTtcblxuLyoqIFRoZSBmaXJzdCBwYXRoIHNlZ21lbnQgb2YgYHJlc3RgIOKAlCBgQS5CYCBhbmQgYEFbMF1gIGJvdGggeWllbGQgYEFgLiAqL1xuZnVuY3Rpb24gZmlyc3RTZWdtZW50KHJlc3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gL15bXi5bXSsvLmV4ZWMocmVzdCk7XG4gIHJldHVybiBtYXRjaCA/IG1hdGNoWzBdIDogcmVzdDtcbn1cblxuLyoqXG4gKiBUaGUgc2NvcGUga2V5IGEgdGVtcGxhdGFibGUgZmllbGQgV1JJVEVTLCBvciBudWxsIHdoZW4gdGhlIGZpZWxkIGlzIG5vdFxuICogc2VsZi1yZWZlcmVuY2luZy4gYGdsb2JhbC5lbnZgLCBgZGVmYXVsdHMubWV0YWRhdGEuZW52YCBhbmRcbiAqIGBzeW50aC5tZXRhZGF0YS5lbnZgIGFsbCB3cml0ZSBgbWV0YWRhdGEuZW52YCDigJQgdGhhdCBpcyBob3cgc3ludGggbGF5ZXJzXG4gKiB0aGVtIOKAlCBzbyBhIGN5Y2xlIHRocm91Z2ggYW55IGxheWVyIGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiBzZWxmU2NvcGVLZXkoZmllbGQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoZmllbGQgPT09ICdwcm9qZWN0JykgcmV0dXJuICdwcm9qZWN0JztcbiAgZm9yIChjb25zdCBwcmVmaXggb2YgTUVUQURBVEFfUFJFRklYRVMpIHtcbiAgICBpZiAoZmllbGQuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gYG1ldGFkYXRhLiR7Zmlyc3RTZWdtZW50KGZpZWxkLnNsaWNlKHByZWZpeC5sZW5ndGgpKX1gO1xuICB9XG4gIGlmIChmaWVsZC5zdGFydHNXaXRoKCd2YXJzLicpKSByZXR1cm4gYHZhcnMuJHtmaXJzdFNlZ21lbnQoZmllbGQuc2xpY2UoJ3ZhcnMuJy5sZW5ndGgpKX1gO1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNSZWNvcmQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGEgZHJhZnRlZCBwaXBlbGluZSB0ZW1wbGF0ZS4gTmV2ZXIgdGhyb3dzOiBhIG1hbGZvcm1lZCBkcmFmdCBjb21lc1xuICogYmFjayBhcyBwcm9ibGVtcywgYmVjYXVzZSB0aGUgY2FsbGVyJ3Mgam9iIGlzIHRvIHJlcG9ydCB0aGVtLCBub3QgdG8gY3Jhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlbXBsYXRlRHJhZnQoZHJhZnQ6IFRlbXBsYXRlRHJhZnRMaWtlKTogVGVtcGxhdGVEcmFmdFZhbGlkYXRpb24ge1xuICBjb25zdCBwcm9ibGVtczogVGVtcGxhdGVEcmFmdFByb2JsZW1bXSA9IFtdO1xuICBjb25zdCByZWZlcmVuY2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgaWYgKCFpc1JlY29yZChkcmFmdC5wcm9wcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgcHJvYmxlbXM6IFt7IGtpbmQ6ICdpbnZhbGlkLXByb3BzJywgc2V2ZXJpdHk6ICdlcnJvcicsIG1lc3NhZ2U6ICdUZW1wbGF0ZSBib2R5IChwcm9wcykgbXVzdCBiZSBhbiBvYmplY3QnIH1dLFxuICAgICAgcmVmZXJlbmNlZFZhcmlhYmxlczogW10sXG4gICAgICBkZWNsYXJlZElucHV0czogW10sXG4gICAgfTtcbiAgfVxuICBjb25zdCBwcm9wcyA9IGRyYWZ0LnByb3BzO1xuXG4gIC8vIC0tIFBhc3MgMTogZXZlcnkgc3RyaW5nIGluIHRoZSBib2R5LCBzbyBhIG1hbGZvcm1lZCBge3tgIGlzIGNhdWdodCB3aGVyZXZlclxuICAvLyAgICBpdCBpcyDigJQgbm90IG9ubHkgaW4gdGhlIGZpZWxkcyB0aGUgcGlwZWxpbmUgY3JlYXRlIHBhdGggaGFwcGVucyB0byBjaGVjay5cbiAgbGV0IHBhcnNlRmFpbGVkID0gZmFsc2U7XG4gIHZpc2l0U3RyaW5ncyhwcm9wcywgKCkgPT4gdHJ1ZSwgKGZpZWxkLCBzb3VyY2UpID0+IHtcbiAgICBsZXQgdG9rZW5zO1xuICAgIHRyeSB7XG4gICAgICB0b2tlbnMgPSB0b2tlbml6ZShzb3VyY2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcGFyc2VGYWlsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgcG9zID0gZXJyIGluc3RhbmNlb2YgVG9rZW5pemVyRXJyb3IgPyBlcnIucG9zIDogdW5kZWZpbmVkO1xuICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgIGtpbmQ6ICdwYXJzZScsXG4gICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVyciksXG4gICAgICAgIGZpZWxkLFxuICAgICAgICAuLi4ocG9zICYmIHsgbGluZTogcG9zLmxpbmUsIGNvbDogcG9zLmNvbCB9KSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzZWxmUmVmZXJlbmNpbmcgPSBzZWxmU2NvcGVLZXkoZmllbGQpICE9PSBudWxsO1xuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICBpZiAodG9rZW4ua2luZCAhPT0gJ2V4cHInKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHJvb3QgPSB0b2tlbi5wYXRoWzBdITtcbiAgICAgIGNvbnN0IHBhdGggPSB0b2tlbi5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGlmIChyb290ID09PSAnc2VjcmV0cycpIHtcbiAgICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgICAga2luZDogJ3Jlc2VydmVkLXNjb3BlJyxcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiAnXFwnc2VjcmV0c1xcJyBpcyBhIHJlc2VydmVkIHNjb3BlIOKAlCBhIHRlbXBsYXRlIGJvZHkgbXVzdCBub3QgcmVmZXJlbmNlIGl0JyxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIGxpbmU6IHRva2VuLnBvcy5saW5lLFxuICAgICAgICAgIGNvbDogdG9rZW4ucG9zLmNvbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJvb3QgPT09ICd2YXJzJyAmJiB0b2tlbi5wYXRoLmxlbmd0aCA+IDEpIHJlZmVyZW5jZWQuYWRkKHRva2VuLnBhdGhbMV0hKTtcbiAgICAgIGlmIChzZWxmUmVmZXJlbmNpbmcgJiYgIVNFTEZfU0NPUEVfUk9PVFMuaW5jbHVkZXMocm9vdCkpIHtcbiAgICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgICAga2luZDogJ3Vua25vd24tc2NvcGUnLFxuICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSByZWZlcmVuY2VzIHVua25vd24gc2NvcGUgcm9vdCAnJHtyb290fScgKGEgcGlwZWxpbmUgZmllbGQgbWF5IHJlZmVyZW5jZSAke1NFTEZfU0NPUEVfUk9PVFMuam9pbignIG9yICcpfSBvbmx5KWAsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBsaW5lOiB0b2tlbi5wb3MubGluZSxcbiAgICAgICAgICBjb2w6IHRva2VuLnBvcy5jb2wsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gLS0gUGFzcyAyOiBjeWNsZXMgYW1vbmcgdGhlIHNlbGYtcmVmZXJlbmNpbmcgZmllbGRzLiBTa2lwcGVkIHdoZW4gYW55dGhpbmdcbiAgLy8gICAgZmFpbGVkIHRvIHBhcnNlIOKAlCB0aGUgY3ljbGUgd2Fsa2VyIHRva2VuaXplcyBlYWdlcmx5IGFuZCB3b3VsZCB0aHJvdyBvblxuICAvLyAgICB0aGUgc2FtZSBiYWQgZmllbGQgdGhhdCBwYXNzIDEgYWxyZWFkeSByZXBvcnRlZC5cbiAgaWYgKCFwYXJzZUZhaWxlZCkge1xuICAgIGZvciAoY29uc3QgZXJyIG9mIGRldGVjdEN5Y2xlcyhwcm9wcywgKGZpZWxkKSA9PiBzZWxmU2NvcGVLZXkoZmllbGQpICE9PSBudWxsLCBzZWxmU2NvcGVLZXkpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAga2luZDogJ2N5Y2xlJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IGVyci5tZXNzYWdlLFxuICAgICAgICBmaWVsZDogZXJyLmZpZWxkLFxuICAgICAgICAuLi4oZXJyLmN5Y2xlICYmIHsgY3ljbGU6IGVyci5jeWNsZSB9KSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIFBhc3MgMzogdGhlIGRlY2xhcmVkIGlucHV0cy4gQW4gaW5wdXQgdGhlIGdyYW1tYXIgY2Fubm90IGV4cHJlc3MsIG9yIG9uZVxuICAvLyAgICBkZWNsYXJlZCB0d2ljZSwgY2FuIG5ldmVyIGJlIGZpbGxlZCBpbiDigJQgYm90aCBhcmUgZXJyb3JzLCBub3Qgd2FybmluZ3MuXG4gIGNvbnN0IGRlY2xhcmVkOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgaW5wdXQgb2YgZHJhZnQuaW5wdXRzID8/IFtdKSB7XG4gICAgY29uc3QgbmFtZSA9IGlucHV0Py5uYW1lO1xuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycgfHwgIUlERU5USUZJRVIudGVzdChuYW1lKSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgIGtpbmQ6ICdpbnZhbGlkLWlucHV0LW5hbWUnLFxuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogYERlY2xhcmVkIGlucHV0ICR7SlNPTi5zdHJpbmdpZnkobmFtZSl9IGlzIG5vdCBhIHVzYWJsZSB2YXJpYWJsZSBuYW1lICgke0lERU5USUZJRVIuc291cmNlfSlgLFxuICAgICAgICAuLi4odHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnICYmIHsgdmFyaWFibGU6IG5hbWUgfSksXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoc2Vlbi5oYXMobmFtZSkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goeyBraW5kOiAnZHVwbGljYXRlLWlucHV0Jywgc2V2ZXJpdHk6ICdlcnJvcicsIG1lc3NhZ2U6IGBEZWNsYXJlZCBpbnB1dCAnJHtuYW1lfScgYXBwZWFycyBtb3JlIHRoYW4gb25jZWAsIHZhcmlhYmxlOiBuYW1lIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHNlZW4uYWRkKG5hbWUpO1xuICAgIGRlY2xhcmVkLnB1c2gobmFtZSk7XG4gIH1cblxuICAvLyAtLSBQYXNzIDQ6IHRoZSBjb250cmFjdCBiZXR3ZWVuIGJvZHkgYW5kIGlucHV0cy4gQSB2YXIgdGhlIGJvZHkgcmVmZXJlbmNlc1xuICAvLyAgICBpcyBzdXBwbGllZCBlaXRoZXIgYnkgYSBkZWNsYXJlZCBpbnB1dCBvciBieSBhIGRlZmF1bHQgYWxyZWFkeSBzaXR0aW5nIGluXG4gIC8vICAgIGBwcm9wcy52YXJzYDsgYW55dGhpbmcgZWxzZSBoYXMgbm8gd2F5IG9mIGV2ZXIgZ2V0dGluZyBhIHZhbHVlLlxuICBjb25zdCBkZWZhdWx0ZWQgPSBpc1JlY29yZChwcm9wcy52YXJzKSA/IE9iamVjdC5rZXlzKHByb3BzLnZhcnMpIDogW107XG4gIGNvbnN0IHN1cHBsaWVkID0gbmV3IFNldChbLi4uZGVjbGFyZWQsIC4uLmRlZmF1bHRlZF0pO1xuICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIFsuLi5yZWZlcmVuY2VkXS5zb3J0KCkpIHtcbiAgICBpZiAoc3VwcGxpZWQuaGFzKHZhcmlhYmxlKSkgY29udGludWU7XG4gICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICBraW5kOiAndW5kZWNsYXJlZC12YXJpYWJsZScsXG4gICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSByZWZlcmVuY2VzIHt7IHZhcnMuJHt2YXJpYWJsZX0gfX0gYnV0IGRlY2xhcmVzIG5vIGlucHV0IG5hbWVkICcke3ZhcmlhYmxlfSdgLFxuICAgICAgdmFyaWFibGUsXG4gICAgfSk7XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lIG9mIGRlY2xhcmVkKSB7XG4gICAgaWYgKHJlZmVyZW5jZWQuaGFzKG5hbWUpKSBjb250aW51ZTtcbiAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgIGtpbmQ6ICd1bnVzZWQtaW5wdXQnLFxuICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJyxcbiAgICAgIG1lc3NhZ2U6IGBEZWNsYXJlZCBpbnB1dCAnJHtuYW1lfScgaXMgbmV2ZXIgcmVmZXJlbmNlZCBhcyB7eyB2YXJzLiR7bmFtZX0gfX1gLFxuICAgICAgdmFyaWFibGU6IG5hbWUsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHZhbGlkOiAhcHJvYmxlbXMuc29tZSgocCkgPT4gcC5zZXZlcml0eSA9PT0gJ2Vycm9yJyksXG4gICAgcHJvYmxlbXMsXG4gICAgcmVmZXJlbmNlZFZhcmlhYmxlczogWy4uLnJlZmVyZW5jZWRdLnNvcnQoKSxcbiAgICBkZWNsYXJlZElucHV0czogZGVjbGFyZWQsXG4gIH07XG59XG5cbi8qKiBPbmUgcmVhZGFibGUgbGluZSBwZXIgcHJvYmxlbSwgZm9yIGEgdG9vbCByZXN1bHQgb3IgYW4gZXJyb3IgYm9keS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUZW1wbGF0ZURyYWZ0UHJvYmxlbXMocHJvYmxlbXM6IHJlYWRvbmx5IFRlbXBsYXRlRHJhZnRQcm9ibGVtW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBwcm9ibGVtcy5tYXAoKHApID0+IHtcbiAgICBjb25zdCB3aGVyZSA9IHAuZmllbGQgPyBgJHtwLmZpZWxkfSR7cC5saW5lICE9PSB1bmRlZmluZWQgPyBgOiR7cC5saW5lfToke3AuY29sfWAgOiAnJ31gIDogcC5raW5kO1xuICAgIHJldHVybiBgWyR7d2hlcmV9XSAke3AubWVzc2FnZX1gO1xuICB9KTtcbn1cbiJdfQ==
@@ -161,4 +161,4 @@ function makeEvalError(e) {
161
161
  err.pos = e.pos;
162
162
  return err;
163
163
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL2V2YWx1YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWF2RCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFZLEVBQUUsSUFBYztJQUNyRCxJQUFJLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDekIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFFLEdBQUcsR0FBSSxHQUErQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FDckIsTUFBZSxFQUNmLEtBQVksRUFDWixLQUFjO0lBRWQsMkVBQTJFO0lBQzNFLHdEQUF3RDtJQUN4RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFzQyxD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RCxHQUFHLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO0lBQy9CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsQixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEIsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNoQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb2VyY2VLaW5kLCBTb3VyY2VQb3NpdGlvbiwgVG9rZW4gfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCB0eXBlIFNjb3BlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbEVycm9yIHtcbiAgY29kZTogRXJyb3JDb2RlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwb3M/OiBTb3VyY2VQb3NpdGlvbjtcbn1cblxuY29uc3QgUkVTRVJWRURfUk9PVF9QQVRIUyA9IG5ldyBTZXQoWydzZWNyZXRzJ10pO1xuXG4vKipcbiAqIExvb2sgdXAgYSBkb3Qtc2VwYXJhdGVkIHBhdGggaW5zaWRlIGEgc2NvcGUgb2JqZWN0LiBSZXR1cm5zIGB1bmRlZmluZWRgXG4gKiBpZiBhbnkgaW50ZXJtZWRpYXRlIHNlZ21lbnQgaXMgbWlzc2luZyBvciBub3QgYW4gb2JqZWN0LlxuICpcbiAqIE9ubHkgT1dOIGVudW1lcmFibGUtb3Itbm90LWluaGVyaXRlZCBwcm9wZXJ0aWVzIGFyZSB0cmF2ZXJzZWQ6IGEgc2VnbWVudCBpc1xuICogcmVzb2x2ZWQgdmlhIGBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxgIHNvIGluaGVyaXRlZCBtZW1iZXJzIG9mXG4gKiB0aGUgcHJvdG90eXBlIGNoYWluIChgY29uc3RydWN0b3JgLCBgdG9TdHJpbmdgLCBgdmFsdWVPZmAsIGBoYXNPd25Qcm9wZXJ0eWAsXG4gKiB0aGUgYF9fcHJvdG9fX2AgYWNjZXNzb3IsIOKApikgbmV2ZXIgcmVzb2x2ZSDigJQgdGhleSByZXR1cm4gYHVuZGVmaW5lZGAgYW5kIHRodXNcbiAqIGZhbGwgdGhyb3VnaCB0byB0aGUgY2FsbGVyJ3Mgbm9ybWFsIHVua25vd24tcGF0aCBoYW5kbGluZyAoYSBgfCBkZWZhdWx0OmBcbiAqIGZhbGxiYWNrIG9yIGEgYFRFTVBMQVRFX1VOS05PV05fUEFUSGAgZXJyb3IpLiBBcHBsaWVkIGF0IGV2ZXJ5IGxldmVsLFxuICogaW5jbHVkaW5nIHRoZSByb290IHNlZ21lbnQsIHRoaXMgYWxzbyBtYWtlcyB0aGUgc2NvcGUncyBvd24gdG9wLWxldmVsIGtleXNcbiAqIHRoZSBlZmZlY3RpdmUgcm9vdCBhbGxvdy1saXN0LCBzbyBhbiB1bmtub3duL3Byb3RvdHlwZSByb290IGlzIHJlamVjdGVkIGV2ZW5cbiAqIG9uIHRoZSBzeW50aCBwYXRoIHRoYXQgc2tpcHMgYHZhbGlkYXRlVGVtcGxhdGVzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cFBhdGgoc2NvcGU6IFNjb3BlLCBwYXRoOiBzdHJpbmdbXSk6IHVua25vd24ge1xuICBsZXQgY3VyOiB1bmtub3duID0gc2NvcGU7XG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiBwYXRoKSB7XG4gICAgaWYgKGN1ciA9PSBudWxsIHx8IHR5cGVvZiBjdXIgIT09ICdvYmplY3QnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGN1ciwgc2VnbWVudCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY3VyID0gKGN1ciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbc2VnbWVudF07XG4gIH1cbiAgcmV0dXJuIGN1cjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgdG9rZW4gc3RyZWFtIGFnYWluc3QgYSBzY29wZS4gUmV0dXJucyB0aGUgcmVzb2x2ZWQgc3RyaW5nLlxuICogVGhyb3dzIGBFdmFsRXJyb3JgIHdoZW4gYW4gdW5yZXNvbHZlZCBwYXRoIGhhcyBubyBkZWZhdWx0IGZpbHRlci5cbiAqXG4gKiBDb2VyY2lvbiBmaWx0ZXJzIChgfCBudW1iZXJgLCBgfCBib29sYCwgYHwganNvbmApIG9ubHkgdGFrZSBlZmZlY3RcbiAqIHdoZW4gdGhlIHRlbXBsYXRlIGV4cHJlc3Npb24gaXMgdGhlIGVudGlyZSBmaWVsZCDigJQgZS5nLlxuICogYHJlcGxpY2FzOiBcInt7IHZhcnMuY291bnQgfCBudW1iZXIgfX1cImAgeWllbGRzIGAzYCAobnVtYmVyKSB3aGlsZVxuICogYHJlcGxpY2FzOiBcImNvdW50PXt7IHZhcnMuY291bnQgfCBudW1iZXIgfX1cImAgeWllbGRzIGBcImNvdW50PTNcImBcbiAqIChzdHJpbmcsIGJlY2F1c2UgdGhlIHRlbXBsYXRlIGlzIGVtYmVkZGVkIGluIHN1cnJvdW5kaW5nIGxpdGVyYWxzKS5cbiAqIE1peGVkLWxpdGVyYWwgZmllbGRzIGFsd2F5cyByZXR1cm4gYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKFxuICB0b2tlbnM6IFRva2VuW10sXG4gIHNjb3BlOiBTY29wZSxcbiAgZmllbGQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVua25vd25bXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgLy8gV2hvbGUtZmllbGQgY29lcmNpb24gc2hvcnRjdXQ6IG9ubHkgYXBwbHkgY29lcmNpb24gd2hlbiB0aGUgZW50aXJlIGZpZWxkXG4gIC8vIGlzIGEgc2luZ2xlIGV4cHJlc3Npb24gKG5vIHN1cnJvdW5kaW5nIGxpdGVyYWwgdGV4dCkuXG4gIGlmICh0b2tlbnMubGVuZ3RoID09PSAxICYmIHRva2Vuc1swXSEua2luZCA9PT0gJ2V4cHInICYmIHRva2Vuc1swXSEuY29lcmNlKSB7XG4gICAgY29uc3QgdG9rID0gdG9rZW5zWzBdISBhcyBFeHRyYWN0PFRva2VuLCB7IGtpbmQ6ICdleHByJyB9PjtcbiAgICBjb25zdCByYXcgPSByZXNvbHZlT25lKHRvaywgc2NvcGUsIGZpZWxkKTtcbiAgICByZXR1cm4gYXBwbHlDb2VyY2lvbihyYXcsIHRvay5jb2VyY2UhLCB0b2ssIGZpZWxkKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHRvayBvZiB0b2tlbnMpIHtcbiAgICBpZiAodG9rLmtpbmQgPT09ICdsaXRlcmFsJykge1xuICAgICAgcGFydHMucHVzaCh0b2sudmFsdWUpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHJhdyA9IHJlc29sdmVPbmUodG9rLCBzY29wZSwgZmllbGQpO1xuICAgIHBhcnRzLnB1c2godHlwZW9mIHJhdyA9PT0gJ3N0cmluZycgPyByYXcgOiBTdHJpbmcocmF3KSk7XG4gIH1cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpO1xufVxuXG4vKiogUmVzb2x2ZSBhIHNpbmdsZSBleHByZXNzaW9uIHRva2VuIHRvIGl0cyBzdHJpbmcgZm9ybSAobm8gY29lcmNpb24pLiAqL1xuZnVuY3Rpb24gcmVzb2x2ZU9uZSh0b2s6IEV4dHJhY3Q8VG9rZW4sIHsga2luZDogJ2V4cHInIH0+LCBzY29wZTogU2NvcGUsIGZpZWxkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgcm9vdCA9IHRvay5wYXRoWzBdITtcbiAgaWYgKFJFU0VSVkVEX1JPT1RfUEFUSFMuaGFzKHJvb3QpKSB7XG4gICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCxcbiAgICAgIG1lc3NhZ2U6IGAnJHtyb290fScgaXMgYSByZXNlcnZlZCBzY29wZSDigJQgdXNlIHRoZSBwbHVnaW4ncyAnc2VjcmV0czonIGZpZWxkIGluc3RlYWRgLFxuICAgICAgZmllbGQsXG4gICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICBwb3M6IHRvay5wb3MsXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgdmFsdWUgPSBsb29rdXBQYXRoKHNjb3BlLCB0b2sucGF0aCk7XG4gIC8vIEEgbWlzc2luZyBwYXRoIE9SIGFuIGVtcHR5IHN0cmluZyBmYWxscyB0byB0aGUgZGVmYXVsdCAoaW50ZW5kZWQsIHRlc3RlZCk6XG4gIC8vIGFuIHVuc2V0L2JsYW5rIHZhbHVlIGlzIHRyZWF0ZWQgYXMgXCJwcm92aWRlIGEgZGVmYXVsdCBvciBmYWlsXCIuXG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xuICAgIGlmICh0b2suZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHJldHVybiB0b2suZGVmYXVsdFZhbHVlO1xuICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1VOS05PV05fUEFUSCxcbiAgICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSByZWZlcmVuY2VzIHVua25vd24gcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9JyBhbmQgbm8gZGVmYXVsdCBwcm92aWRlZGAsXG4gICAgICBmaWVsZCxcbiAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgIHBvczogdG9rLnBvcyxcbiAgICB9KTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9JyByZXNvbHZlZCB0byBhbiBvYmplY3Q7IG9ubHkgc3RyaW5ncy9udW1iZXJzL2Jvb2xlYW5zIGFyZSBpbnRlcnBvbGF0YWJsZWAsXG4gICAgICBmaWVsZCxcbiAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgIHBvczogdG9rLnBvcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cblxuLyoqIEFwcGx5IGEgd2hvbGUtZmllbGQgY29lcmNpb24gZmlsdGVyIHRvIGEgcmVzb2x2ZWQgc3RyaW5nIHZhbHVlLiAqL1xuZnVuY3Rpb24gYXBwbHlDb2VyY2lvbihcbiAgcmF3OiBzdHJpbmcsXG4gIGtpbmQ6IENvZXJjZUtpbmQsXG4gIHRvazogRXh0cmFjdDxUb2tlbiwgeyBraW5kOiAnZXhwcicgfT4sXG4gIGZpZWxkPzogc3RyaW5nLFxuKTogbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBzdHJpbmcgfCB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgIGNvbnN0IG4gPSBOdW1iZXIocmF3KTtcbiAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG4pKSB7XG4gICAgICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgICAgIG1lc3NhZ2U6IGAnJHtyYXd9JyBjYW5ub3QgYmUgY29lcmNlZCB0byBudW1iZXIgYXQgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9J2AsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgICAgIHBvczogdG9rLnBvcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbjtcbiAgICB9XG4gICAgY2FzZSAnYm9vbCc6IHtcbiAgICAgIGNvbnN0IHYgPSByYXcudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodiA9PT0gJ3RydWUnIHx8IHYgPT09ICcxJyB8fCB2ID09PSAneWVzJykgcmV0dXJuIHRydWU7XG4gICAgICBpZiAodiA9PT0gJ2ZhbHNlJyB8fCB2ID09PSAnMCcgfHwgdiA9PT0gJ25vJyB8fCB2ID09PSAnJykgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgICBtZXNzYWdlOiBgJyR7cmF3fScgY2Fubm90IGJlIGNvZXJjZWQgdG8gYm9vbCBhdCBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nYCxcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgcG9zOiB0b2sucG9zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXcpIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5rbm93bltdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICAgICAgbWVzc2FnZTogYCcke3Jhd30nIGlzIG5vdCB2YWxpZCBKU09OIGF0IHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfSc6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBwb3M6IHRvay5wb3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3QgZGVwZW5kZW5jeSBwYXRocyBmcm9tIGEgdG9rZW4gc3RyZWFtLiBVc2VkIGJ5IHRoZSB0b3BvbG9naWNhbFxuICogc29ydCBwYXNzIHRvIG9yZGVyIHJlc29sdXRpb24gb2Ygc2VsZi1yZWZlcmVuY2luZyBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXBlbmRlbmNpZXModG9rZW5zOiBUb2tlbltdKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgdG9rIG9mIHRva2Vucykge1xuICAgIGlmICh0b2sua2luZCA9PT0gJ2V4cHInKSBvdXQucHVzaCh0b2sucGF0aC5qb2luKCcuJykpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIG1ha2VFdmFsRXJyb3IoZTogRXZhbEVycm9yKTogRXJyb3IgJiBFdmFsRXJyb3Ige1xuICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoZS5tZXNzYWdlKSBhcyBFcnJvciAmIEV2YWxFcnJvcjtcbiAgZXJyLm5hbWUgPSAnVGVtcGxhdGVFdmFsRXJyb3InO1xuICBlcnIuY29kZSA9IGUuY29kZTtcbiAgZXJyLmZpZWxkID0gZS5maWVsZDtcbiAgZXJyLnBhdGggPSBlLnBhdGg7XG4gIGVyci5wb3MgPSBlLnBvcztcbiAgcmV0dXJuIGVycjtcbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdG9yLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBYXZELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRWpEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQVksRUFBRSxJQUFjO0lBQ3JELElBQUksR0FBRyxHQUFZLEtBQUssQ0FBQztJQUN6QixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDMUUsR0FBRyxHQUFJLEdBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixNQUFlLEVBQ2YsS0FBWSxFQUNaLEtBQWM7SUFFZCwyRUFBMkU7SUFDM0Usd0RBQXdEO0lBQ3hELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQXNDLENBQUM7UUFDM0QsTUFBTSxH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LEdBQUcsbUJBQW1CLENBQUM7SUFDL0IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQixHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEIsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2hCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgdHlwZSB7IENvZXJjZUtpbmQsIFNvdXJjZVBvc2l0aW9uLCBUb2tlbiB9IGZyb20gJy4vdG9rZW5pemVyLmpzJztcblxuZXhwb3J0IHR5cGUgU2NvcGUgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmFsRXJyb3Ige1xuICBjb2RlOiBFcnJvckNvZGU7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZmllbGQ/OiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHBvcz86IFNvdXJjZVBvc2l0aW9uO1xufVxuXG5jb25zdCBSRVNFUlZFRF9ST09UX1BBVEhTID0gbmV3IFNldChbJ3NlY3JldHMnXSk7XG5cbi8qKlxuICogTG9vayB1cCBhIGRvdC1zZXBhcmF0ZWQgcGF0aCBpbnNpZGUgYSBzY29wZSBvYmplY3QuIFJldHVybnMgYHVuZGVmaW5lZGBcbiAqIGlmIGFueSBpbnRlcm1lZGlhdGUgc2VnbWVudCBpcyBtaXNzaW5nIG9yIG5vdCBhbiBvYmplY3QuXG4gKlxuICogT25seSBPV04gZW51bWVyYWJsZS1vci1ub3QtaW5oZXJpdGVkIHByb3BlcnRpZXMgYXJlIHRyYXZlcnNlZDogYSBzZWdtZW50IGlzXG4gKiByZXNvbHZlZCB2aWEgYE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbGAgc28gaW5oZXJpdGVkIG1lbWJlcnMgb2ZcbiAqIHRoZSBwcm90b3R5cGUgY2hhaW4gKGBjb25zdHJ1Y3RvcmAsIGB0b1N0cmluZ2AsIGB2YWx1ZU9mYCwgYGhhc093blByb3BlcnR5YCxcbiAqIHRoZSBgX19wcm90b19fYCBhY2Nlc3Nvciwg4oCmKSBuZXZlciByZXNvbHZlIOKAlCB0aGV5IHJldHVybiBgdW5kZWZpbmVkYCBhbmQgdGh1c1xuICogZmFsbCB0aHJvdWdoIHRvIHRoZSBjYWxsZXIncyBub3JtYWwgdW5rbm93bi1wYXRoIGhhbmRsaW5nIChhIGB8IGRlZmF1bHQ6YFxuICogZmFsbGJhY2sgb3IgYSBgVEVNUExBVEVfVU5LTk9XTl9QQVRIYCBlcnJvcikuIEFwcGxpZWQgYXQgZXZlcnkgbGV2ZWwsXG4gKiBpbmNsdWRpbmcgdGhlIHJvb3Qgc2VnbWVudCwgdGhpcyBhbHNvIG1ha2VzIHRoZSBzY29wZSdzIG93biB0b3AtbGV2ZWwga2V5c1xuICogdGhlIGVmZmVjdGl2ZSByb290IGFsbG93LWxpc3QsIHNvIGFuIHVua25vd24vcHJvdG90eXBlIHJvb3QgaXMgcmVqZWN0ZWQgZXZlblxuICogb24gdGhlIHN5bnRoIHBhdGggdGhhdCBza2lwcyBgdmFsaWRhdGVUZW1wbGF0ZXNgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9va3VwUGF0aChzY29wZTogU2NvcGUsIHBhdGg6IHN0cmluZ1tdKTogdW5rbm93biB7XG4gIGxldCBjdXI6IHVua25vd24gPSBzY29wZTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGgpIHtcbiAgICBpZiAoY3VyID09IG51bGwgfHwgdHlwZW9mIGN1ciAhPT0gJ29iamVjdCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VyLCBzZWdtZW50KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjdXIgPSAoY3VyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtzZWdtZW50XTtcbiAgfVxuICByZXR1cm4gY3VyO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYSB0b2tlbiBzdHJlYW0gYWdhaW5zdCBhIHNjb3BlLiBSZXR1cm5zIHRoZSByZXNvbHZlZCBzdHJpbmcuXG4gKiBUaHJvd3MgYEV2YWxFcnJvcmAgd2hlbiBhbiB1bnJlc29sdmVkIHBhdGggaGFzIG5vIGRlZmF1bHQgZmlsdGVyLlxuICpcbiAqIENvZXJjaW9uIGZpbHRlcnMgKGB8IG51bWJlcmAsIGB8IGJvb2xgLCBgfCBqc29uYCkgb25seSB0YWtlIGVmZmVjdFxuICogd2hlbiB0aGUgdGVtcGxhdGUgZXhwcmVzc2lvbiBpcyB0aGUgZW50aXJlIGZpZWxkIOKAlCBlLmcuXG4gKiBgcmVwbGljYXM6IFwie3sgdmFycy5jb3VudCB8IG51bWJlciB9fVwiYCB5aWVsZHMgYDNgIChudW1iZXIpIHdoaWxlXG4gKiBgcmVwbGljYXM6IFwiY291bnQ9e3sgdmFycy5jb3VudCB8IG51bWJlciB9fVwiYCB5aWVsZHMgYFwiY291bnQ9M1wiYFxuICogKHN0cmluZywgYmVjYXVzZSB0aGUgdGVtcGxhdGUgaXMgZW1iZWRkZWQgaW4gc3Vycm91bmRpbmcgbGl0ZXJhbHMpLlxuICogTWl4ZWQtbGl0ZXJhbCBmaWVsZHMgYWx3YXlzIHJldHVybiBhIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoXG4gIHRva2VuczogVG9rZW5bXSxcbiAgc2NvcGU6IFNjb3BlLFxuICBmaWVsZD86IHN0cmluZyxcbik6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5rbm93bltdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAvLyBXaG9sZS1maWVsZCBjb2VyY2lvbiBzaG9ydGN1dDogb25seSBhcHBseSBjb2VyY2lvbiB3aGVuIHRoZSBlbnRpcmUgZmllbGRcbiAgLy8gaXMgYSBzaW5nbGUgZXhwcmVzc2lvbiAobm8gc3Vycm91bmRpbmcgbGl0ZXJhbCB0ZXh0KS5cbiAgaWYgKHRva2Vucy5sZW5ndGggPT09IDEgJiYgdG9rZW5zWzBdIS5raW5kID09PSAnZXhwcicgJiYgdG9rZW5zWzBdIS5jb2VyY2UpIHtcbiAgICBjb25zdCB0b2sgPSB0b2tlbnNbMF0hIGFzIEV4dHJhY3Q8VG9rZW4sIHsga2luZDogJ2V4cHInIH0+O1xuICAgIGNvbnN0IHJhdyA9IHJlc29sdmVPbmUodG9rLCBzY29wZSwgZmllbGQpO1xuICAgIHJldHVybiBhcHBseUNvZXJjaW9uKHJhdywgdG9rLmNvZXJjZSEsIHRvaywgZmllbGQpO1xuICB9XG5cbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgdG9rIG9mIHRva2Vucykge1xuICAgIGlmICh0b2sua2luZCA9PT0gJ2xpdGVyYWwnKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRvay52YWx1ZSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgcmF3ID0gcmVzb2x2ZU9uZSh0b2ssIHNjb3BlLCBmaWVsZCk7XG4gICAgcGFydHMucHVzaCh0eXBlb2YgcmF3ID09PSAnc3RyaW5nJyA/IHJhdyA6IFN0cmluZyhyYXcpKTtcbiAgfVxuICByZXR1cm4gcGFydHMuam9pbignJyk7XG59XG5cbi8qKiBSZXNvbHZlIGEgc2luZ2xlIGV4cHJlc3Npb24gdG9rZW4gdG8gaXRzIHN0cmluZyBmb3JtIChubyBjb2VyY2lvbikuICovXG5mdW5jdGlvbiByZXNvbHZlT25lKHRvazogRXh0cmFjdDxUb2tlbiwgeyBraW5kOiAnZXhwcicgfT4sIHNjb3BlOiBTY29wZSwgZmllbGQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByb290ID0gdG9rLnBhdGhbMF0hO1xuICBpZiAoUkVTRVJWRURfUk9PVF9QQVRIUy5oYXMocm9vdCkpIHtcbiAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9TRUNSRVRTX1JFU0VSVkVELFxuICAgICAgbWVzc2FnZTogYCcke3Jvb3R9JyBpcyBhIHJlc2VydmVkIHNjb3BlIOKAlCB1c2UgdGhlIHBsdWdpbidzICdzZWNyZXRzOicgZmllbGQgaW5zdGVhZGAsXG4gICAgICBmaWVsZCxcbiAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgIHBvczogdG9rLnBvcyxcbiAgICB9KTtcbiAgfVxuICBjb25zdCB2YWx1ZSA9IGxvb2t1cFBhdGgoc2NvcGUsIHRvay5wYXRoKTtcbiAgLy8gQSBtaXNzaW5nIHBhdGggT1IgYW4gZW1wdHkgc3RyaW5nIGZhbGxzIHRvIHRoZSBkZWZhdWx0IChpbnRlbmRlZCwgdGVzdGVkKTpcbiAgLy8gYW4gdW5zZXQvYmxhbmsgdmFsdWUgaXMgdHJlYXRlZCBhcyBcInByb3ZpZGUgYSBkZWZhdWx0IG9yIGZhaWxcIi5cbiAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgaWYgKHRvay5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRvay5kZWZhdWx0VmFsdWU7XG4gICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfVU5LTk9XTl9QQVRILFxuICAgICAgbWVzc2FnZTogYFRlbXBsYXRlIHJlZmVyZW5jZXMgdW5rbm93biBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nIGFuZCBubyBkZWZhdWx0IHByb3ZpZGVkYCxcbiAgICAgIGZpZWxkLFxuICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgcG9zOiB0b2sucG9zLFxuICAgIH0pO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfVFlQRV9NSVNNQVRDSCxcbiAgICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nIHJlc29sdmVkIHRvIGFuIG9iamVjdDsgb25seSBzdHJpbmdzL251bWJlcnMvYm9vbGVhbnMgYXJlIGludGVycG9sYXRhYmxlYCxcbiAgICAgIGZpZWxkLFxuICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgcG9zOiB0b2sucG9zLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuXG4vKiogQXBwbHkgYSB3aG9sZS1maWVsZCBjb2VyY2lvbiBmaWx0ZXIgdG8gYSByZXNvbHZlZCBzdHJpbmcgdmFsdWUuICovXG5mdW5jdGlvbiBhcHBseUNvZXJjaW9uKFxuICByYXc6IHN0cmluZyxcbiAga2luZDogQ29lcmNlS2luZCxcbiAgdG9rOiBFeHRyYWN0PFRva2VuLCB7IGtpbmQ6ICdleHByJyB9PixcbiAgZmllbGQ/OiBzdHJpbmcsXG4pOiBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHN0cmluZyB8IHVua25vd25bXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgc3dpdGNoIChraW5kKSB7XG4gICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgY29uc3QgbiA9IE51bWJlcihyYXcpO1xuICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobikpIHtcbiAgICAgICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICAgICAgbWVzc2FnZTogYCcke3Jhd30nIGNhbm5vdCBiZSBjb2VyY2VkIHRvIG51bWJlciBhdCBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nYCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgcG9zOiB0b2sucG9zLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuO1xuICAgIH1cbiAgICBjYXNlICdib29sJzoge1xuICAgICAgY29uc3QgdiA9IHJhdy50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh2ID09PSAndHJ1ZScgfHwgdiA9PT0gJzEnIHx8IHYgPT09ICd5ZXMnKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICh2ID09PSAnZmFsc2UnIHx8IHYgPT09ICcwJyB8fCB2ID09PSAnbm8nIHx8IHYgPT09ICcnKSByZXR1cm4gZmFsc2U7XG4gICAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICAgIG1lc3NhZ2U6IGAnJHtyYXd9JyBjYW5ub3QgYmUgY29lcmNlZCB0byBib29sIGF0IHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfSdgLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgICBwb3M6IHRvay5wb3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FzZSAnanNvbic6IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJhdykgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfVFlQRV9NSVNNQVRDSCxcbiAgICAgICAgICBtZXNzYWdlOiBgJyR7cmF3fScgaXMgbm90IHZhbGlkIEpTT04gYXQgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9JzogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgICAgIHBvczogdG9rLnBvcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdCBkZXBlbmRlbmN5IHBhdGhzIGZyb20gYSB0b2tlbiBzdHJlYW0uIFVzZWQgYnkgdGhlIHRvcG9sb2dpY2FsXG4gKiBzb3J0IHBhc3MgdG8gb3JkZXIgcmVzb2x1dGlvbiBvZiBzZWxmLXJlZmVyZW5jaW5nIGRvY3VtZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY2llcyh0b2tlbnM6IFRva2VuW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCB0b2sgb2YgdG9rZW5zKSB7XG4gICAgaWYgKHRvay5raW5kID09PSAnZXhwcicpIG91dC5wdXNoKHRvay5wYXRoLmpvaW4oJy4nKSk7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gbWFrZUV2YWxFcnJvcihlOiBFdmFsRXJyb3IpOiBFcnJvciAmIEV2YWxFcnJvciB7XG4gIGNvbnN0IGVyciA9IG5ldyBFcnJvcihlLm1lc3NhZ2UpIGFzIEVycm9yICYgRXZhbEVycm9yO1xuICBlcnIubmFtZSA9ICdUZW1wbGF0ZUV2YWxFcnJvcic7XG4gIGVyci5jb2RlID0gZS5jb2RlO1xuICBlcnIuZmllbGQgPSBlLmZpZWxkO1xuICBlcnIucGF0aCA9IGUucGF0aDtcbiAgZXJyLnBvcyA9IGUucG9zO1xuICByZXR1cm4gZXJyO1xufVxuIl19
@@ -102,4 +102,4 @@ export function resolveSelfReferencing(doc, scope, isTemplatable, fieldToScopePa
102
102
  }
103
103
  return { errors };
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsY0FBYyxHQUtmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEdBRWIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBRU4sTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsMkJBQTJCLEdBTTVCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLHdFQUF3RTtBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQU0vRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixHQUFNLEVBQ04sS0FBWSxFQUNaLGFBQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUE0QixFQUFFLENBQUM7SUFDM0MsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtB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Q3BDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUIsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQztnQkFDSCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEdBQUcsR0FBa0QsQ0FBQztnQkFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsb0JBQW9CO29CQUM5QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87b0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUs7b0JBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtpQkFDYixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQge1xuICB0b2tlbml6ZSxcbiAgaGFzVGVtcGxhdGUsXG4gIE1BWF9GSUVMRF9TSVpFX0JZVEVTLFxuICBNQVhfUEFUSF9ERVBUSCxcbiAgdHlwZSBUb2tlbixcbiAgdHlwZSBMaXRlcmFsVG9rZW4sXG4gIHR5cGUgRXhwclRva2VuLFxuICB0eXBlIFNvdXJjZVBvc2l0aW9uLFxufSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCB7XG4gIHJlc29sdmUsXG4gIGRlcGVuZGVuY2llcyxcbiAgdHlwZSBTY29wZSxcbn0gZnJvbSAnLi9ldmFsdWF0b3IuanMnO1xuXG5leHBvcnQge1xuICB0eXBlIEZpZWxkUHJlZGljYXRlLFxufSBmcm9tICcuL3dhbGtlci5qcyc7XG5cbmV4cG9ydCB7XG4gIHZhbGlkYXRlVGVtcGxhdGVzLFxuICBkZXRlY3RDeWNsZXMsXG4gIGFsbG93ZWRTY29wZVJvb3RzLFxuICB0eXBlIFRlbXBsYXRlRXJyb3IsXG4gIHR5cGUgVGVtcGxhdGVWYWxpZGF0aW9uUmVzdWx0LFxufSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcblxuZXhwb3J0IHtcbiAgdmFsaWRhdGVUZW1wbGF0ZURyYWZ0LFxuICBmb3JtYXRUZW1wbGF0ZURyYWZ0UHJvYmxlbXMsXG4gIHR5cGUgVGVtcGxhdGVEcmFmdElucHV0LFxuICB0eXBlIFRlbXBsYXRlRHJhZnRMaWtlLFxuICB0eXBlIFRlbXBsYXRlRHJhZnRQcm9ibGVtLFxuICB0eXBlIFRlbXBsYXRlRHJhZnRQcm9ibGVtS2luZCxcbiAgdHlwZSBUZW1wbGF0ZURyYWZ0VmFsaWRhdGlvbixcbn0gZnJvbSAnLi9kcmFmdC5qcyc7XG5cbi8vIC0tIENvbnZlbmllbmNlOiBoaWdoLWxldmVsIHJlc29sdmUoKSB0aGF0IHdhbGtzICsgcmVzb2x2ZXMgKyBtZWFzdXJlc1xuXG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyByZXNvbHZlIGFzIGV2YWx1YXRvclJlc29sdmUsIHR5cGUgU2NvcGUgfSBmcm9tICcuL2V2YWx1YXRvci5qcyc7XG5pbXBvcnQgeyB0b3BvU29ydCB9IGZyb20gJy4vdG9wby1zb3J0LmpzJztcbmltcG9ydCB7IHdhbGtBbmRCaW5kLCB0eXBlIEZpZWxkUHJlZGljYXRlIH0gZnJvbSAnLi93YWxrZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVSZXN1bHQge1xuICBlcnJvcnM6IEFycmF5PHsgY29kZTogRXJyb3JDb2RlOyBtZXNzYWdlOiBzdHJpbmc7IGZpZWxkPzogc3RyaW5nOyBwYXRoPzogc3RyaW5nIH0+O1xufVxuXG4vKipcbiAqIFJlc29sdmUgYWxsIHRlbXBsYXRlcyBpbnNpZGUgYGRvY2AgYnkgbXV0YXRpbmcgc3RyaW5nIGZpZWxkcyBpbiBwbGFjZS5cbiAqIGBkb2NgIGlzIHRyZWF0ZWQgYXMgb3BhcXVlIOKAlCBvbmx5IHN0cmluZyBmaWVsZHMgdGhhdCBtYXRjaCBgaXNUZW1wbGF0YWJsZWBcbiAqIGFyZSByZXdyaXR0ZW4uIFJldHVybnMgY29sbGVjdGVkIGVycm9ycyAoZW1wdHkgYXJyYXkgb24gc3VjY2VzcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVGVtcGxhdGVzPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBkb2M6IFQsXG4gIHNjb3BlOiBTY29wZSxcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4pOiBSZXNvbHZlUmVzdWx0IHtcbiAgY29uc3QgZXJyb3JzOiBSZXNvbHZlUmVzdWx0WydlcnJvcnMnXSA9IFtdO1xuICAvLyBpbmNsdWRlTGl0ZXJhbE9ubHk6IGxpdGVyYWwtb25seSBmaWVsZHMgKGEgYmFyZSBge3t7e2AgZXNjYXBlKSBzdGlsbCBuZWVkXG4gIC8vIHJld3JpdGluZyBzbyB0aGUgdG9rZW5pemVyJ3MgYHt7e3tgIOKGkiBge3tgIHVuZXNjYXBlIGxhbmRzIGluIHRoZSBkb2N1bWVudC5cbiAgY29uc3QgZW50cmllcyA9IHdhbGtBbmRCaW5kKGRvYywgaXNUZW1wbGF0YWJsZSwgdHJ1ZSk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2YWx1YXRvclJlc29sdmUoZW50cnkudG9rZW5zLCBzY29wZSwgZW50cnkuZmllbGQpO1xuICAgICAgZW50cnkuc2V0KHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGUgPSBlcnIgYXMgRXJyb3IgJiB7IGNvZGU/OiBFcnJvckNvZGU7IHBhdGg/OiBzdHJpbmcgfTtcbiAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgY29kZTogZS5jb2RlID8/IEVycm9yQ29kZS5URU1QTEFURV9QQVJTRV9FUlJPUixcbiAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICBmaWVsZDogZW50cnkuZmllbGQsXG4gICAgICAgIHBhdGg6IGUucGF0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBlcnJvcnMgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgc2VsZi1yZWZlcmVuY2luZyBkb2N1bWVudCAoZS5nLiBwaXBlbGluZS5qc29uIHdoZXJlXG4gKiBtZXRhZGF0YSBmaWVsZHMgcmVmZXJlbmNlIGVhY2ggb3RoZXIpLiBUb3BvbG9naWNhbGx5IG9yZGVycyB0aGVcbiAqIHJlc29sdXRpb24gc28gZGVwZW5kZW5jaWVzIGNvbWUgZmlyc3QuIE11dGF0ZXMgYGRvY2AgaW4gcGxhY2UuXG4gKlxuICogYGZpZWxkVG9TY29wZVBhdGhgIG1hcHMgZWFjaCBmaWVsZCAoZS5nLiBgbWV0YWRhdGEuZW52YCkgdG8gdGhlIHNjb3BlXG4gKiBwYXRoIGl0IHBvcHVsYXRlcyAodHlwaWNhbGx5IHRoZSBzYW1lLCBzYW5zIGFueSBhcnJheSBpbmRpY2VzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTZWxmUmVmZXJlbmNpbmc8VCBleHRlbmRzIG9iamVjdD4oXG4gIGRvYzogVCxcbiAgc2NvcGU6IFNjb3BlLFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbiAgZmllbGRUb1Njb3BlUGF0aDogKGZpZWxkOiBzdHJpbmcpID0+IHN0cmluZyB8IG51bGwsXG4pOiBSZXNvbHZlUmVzdWx0IHtcbiAgLy8gaW5jbHVkZUxpdGVyYWxPbmx5OiBhIHNlbGYtcmVmZXJlbmNpbmcgZmllbGQgdGhhdCBpcyBvbmx5IGEgYHt7e3tgIGVzY2FwZVxuICAvLyBzdGlsbCBuZWVkcyBpdHMgdW5lc2NhcGUgd3JpdHRlbiBiYWNrIChzYW1lIHJhdGlvbmFsZSBhcyByZXNvbHZlVGVtcGxhdGVzKS5cbiAgY29uc3QgZW50cmllcyA9IHdhbGtBbmRCaW5kKGRvYywgaXNUZW1wbGF0YWJsZSwgdHJ1ZSk7XG4gIC8vIEJ1aWxkIHRvcG8gbm9kZXMga2V5ZWQgYnkgdGFyZ2V0IHNjb3BlIHBhdGhcbiAgY29uc3Qgbm9kZXMgPSBlbnRyaWVzXG4gICAgLm1hcChlID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGZpZWxkVG9TY29wZVBhdGgoZS5maWVsZCk7XG4gICAgICBpZiAoIWtleSkgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCBkZXBzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCB0IG9mIGUudG9rZW5zKSBpZiAodC5raW5kID09PSAnZXhwcicpIGRlcHMucHVzaCh0LnBhdGguam9pbignLicpKTtcbiAgICAgIHJldHVybiB7IGtleSwgZGVwcywgZW50cnk6IGUgfTtcbiAgICB9KVxuICAgIC5maWx0ZXIoKG4pOiBuIGlzIE5vbk51bGxhYmxlPHR5cGVvZiBuPiA9PiBuICE9PSBudWxsKTtcblxuICBjb25zdCB7IG9yZGVyZWQsIGN5Y2xlcyB9ID0gdG9wb1NvcnQobm9kZXMubWFwKG4gPT4gKHsga2V5OiBuLmtleSwgZGVwczogbi5kZXBzIH0pKSk7XG4gIGNvbnN0IGVycm9yczogUmVzb2x2ZVJlc3VsdFsnZXJyb3JzJ10gPSBbXTtcbiAgaWYgKGN5Y2xlcy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IGMgb2YgY3ljbGVzKSB7XG4gICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9DWUNMRSxcbiAgICAgICAgbWVzc2FnZTogYFRlbXBsYXRlIGN5Y2xlIGRldGVjdGVkOiAke2Muam9pbignIC0+ICcpfWAsXG4gICAgICAgIHBhdGg6IGMuam9pbignIC0+ICcpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7IGVycm9ycyB9O1xuICB9XG5cbiAgLy8gUmVzb2x2ZSBpbiB0b3BvIG9yZGVyOyBtdWx0aXBsZSBlbnRyaWVzIG1heSBzaGFyZSBhIHNjb3BlIGtleSAoZS5nLiBvbmVcbiAgLy8gcGlwZWxpbmUgZmllbGQgY291bGQgbWFwIHRvIHRoZSBzYW1lIHNjb3BlIHBhdGgg4oCUIHVubGlrZWx5IGhlcmUpLCBzb1xuICAvLyBpdGVyYXRlIGFsbCBlbnRyaWVzIHdob3NlIGtleSA9PSBvcmRlcmVkW2ldLlxuICBjb25zdCBieUtleSA9IG5ldyBNYXA8c3RyaW5nLCB0eXBlb2Ygbm9kZXM+KCk7XG4gIGZvciAoY29uc3QgbiBvZiBub2Rlcykge1xuICAgIGNvbnN0IGxpc3QgPSBieUtleS5nZXQobi5rZXkpID8/IFtdO1xuICAgIGxpc3QucHVzaChuKTtcbiAgICBieUtleS5zZXQobi5rZXksIGxpc3QpO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2Ygb3JkZXJlZCkge1xuICAgIGZvciAoY29uc3QgbiBvZiBieUtleS5nZXQoa2V5KSA/PyBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmFsdWF0b3JSZXNvbHZlKG4uZW50cnkudG9rZW5zLCBzY29wZSwgbi5lbnRyeS5maWVsZCk7XG4gICAgICAgIG4uZW50cnkuc2V0KHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBlID0gZXJyIGFzIEVycm9yICYgeyBjb2RlPzogRXJyb3JDb2RlOyBwYXRoPzogc3RyaW5nIH07XG4gICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICBjb2RlOiBlLmNvZGUgPz8gRXJyb3JDb2RlLlRFTVBMQVRFX1BBUlNFX0VSUk9SLFxuICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICBmaWVsZDogbi5lbnRyeS5maWVsZCxcbiAgICAgICAgICBwYXRoOiBlLnBhdGgsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBlcnJvcnMgfTtcbn1cblxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixjQUFjLEdBS2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsT0FBTyxFQUNQLFlBQVksR0FFYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixpQkFBaUIsR0FHbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiwyQkFBMkIsR0FNNUIsTUFBTSxZQUFZLENBQUM7QUFFcEIsd0VBQXdFO0FBRXhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxJQUFJLGdCQUFnQixFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBTS9EOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQU0sRUFDTixLQUFZLEVBQ1osYUFBNkI7SUFFN0IsTUFBTSxNQUFNLEdBQTRCLEVBQUUsQ0FBQztJQUMzQyw0RUFBNEU7SUFDNUUsNkVBQTZFO0lBQzdFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFB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QUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDO2dCQUNILE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsR0FBRyxHQUFrRCxDQUFDO2dCQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxvQkFBb0I7b0JBQzlDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztvQkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2lCQUNiLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7XG4gIHRva2VuaXplLFxuICBoYXNUZW1wbGF0ZSxcbiAgTUFYX0ZJRUxEX1NJWkVfQllURVMsXG4gIE1BWF9QQVRIX0RFUFRILFxuICB0eXBlIFRva2VuLFxuICB0eXBlIExpdGVyYWxUb2tlbixcbiAgdHlwZSBFeHByVG9rZW4sXG4gIHR5cGUgU291cmNlUG9zaXRpb24sXG59IGZyb20gJy4vdG9rZW5pemVyLmpzJztcblxuZXhwb3J0IHtcbiAgcmVzb2x2ZSxcbiAgZGVwZW5kZW5jaWVzLFxuICB0eXBlIFNjb3BlLFxufSBmcm9tICcuL2V2YWx1YXRvci5qcyc7XG5cbmV4cG9ydCB7XG4gIHR5cGUgRmllbGRQcmVkaWNhdGUsXG59IGZyb20gJy4vd2Fsa2VyLmpzJztcblxuZXhwb3J0IHtcbiAgdmFsaWRhdGVUZW1wbGF0ZXMsXG4gIGRldGVjdEN5Y2xlcyxcbiAgYWxsb3dlZFNjb3BlUm9vdHMsXG4gIHR5cGUgVGVtcGxhdGVFcnJvcixcbiAgdHlwZSBUZW1wbGF0ZVZhbGlkYXRpb25SZXN1bHQsXG59IGZyb20gJy4vdmFsaWRhdGUuanMnO1xuXG5leHBvcnQge1xuICB2YWxpZGF0ZVRlbXBsYXRlRHJhZnQsXG4gIGZvcm1hdFRlbXBsYXRlRHJhZnRQcm9ibGVtcyxcbiAgdHlwZSBUZW1wbGF0ZURyYWZ0SW5wdXQsXG4gIHR5cGUgVGVtcGxhdGVEcmFmdExpa2UsXG4gIHR5cGUgVGVtcGxhdGVEcmFmdFByb2JsZW0sXG4gIHR5cGUgVGVtcGxhdGVEcmFmdFByb2JsZW1LaW5kLFxuICB0eXBlIFRlbXBsYXRlRHJhZnRWYWxpZGF0aW9uLFxufSBmcm9tICcuL2RyYWZ0LmpzJztcblxuLy8gLS0gQ29udmVuaWVuY2U6IGhpZ2gtbGV2ZWwgcmVzb2x2ZSgpIHRoYXQgd2Fsa3MgKyByZXNvbHZlcyArIG1lYXN1cmVzXG5cbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IHJlc29sdmUgYXMgZXZhbHVhdG9yUmVzb2x2ZSwgdHlwZSBTY29wZSB9IGZyb20gJy4vZXZhbHVhdG9yLmpzJztcbmltcG9ydCB7IHRvcG9Tb3J0IH0gZnJvbSAnLi90b3BvLXNvcnQuanMnO1xuaW1wb3J0IHsgd2Fsa0FuZEJpbmQsIHR5cGUgRmllbGRQcmVkaWNhdGUgfSBmcm9tICcuL3dhbGtlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVJlc3VsdCB7XG4gIGVycm9yczogQXJyYXk8eyBjb2RlOiBFcnJvckNvZGU7IG1lc3NhZ2U6IHN0cmluZzsgZmllbGQ/OiBzdHJpbmc7IHBhdGg/OiBzdHJpbmcgfT47XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhbGwgdGVtcGxhdGVzIGluc2lkZSBgZG9jYCBieSBtdXRhdGluZyBzdHJpbmcgZmllbGRzIGluIHBsYWNlLlxuICogYGRvY2AgaXMgdHJlYXRlZCBhcyBvcGFxdWUg4oCUIG9ubHkgc3RyaW5nIGZpZWxkcyB0aGF0IG1hdGNoIGBpc1RlbXBsYXRhYmxlYFxuICogYXJlIHJld3JpdHRlbi4gUmV0dXJucyBjb2xsZWN0ZWQgZXJyb3JzIChlbXB0eSBhcnJheSBvbiBzdWNjZXNzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUZW1wbGF0ZXM8VCBleHRlbmRzIG9iamVjdD4oXG4gIGRvYzogVCxcbiAgc2NvcGU6IFNjb3BlLFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbik6IFJlc29sdmVSZXN1bHQge1xuICBjb25zdCBlcnJvcnM6IFJlc29sdmVSZXN1bHRbJ2Vycm9ycyddID0gW107XG4gIC8vIGluY2x1ZGVMaXRlcmFsT25seTogbGl0ZXJhbC1vbmx5IGZpZWxkcyAoYSBiYXJlIGB7e3t7YCBlc2NhcGUpIHN0aWxsIG5lZWRcbiAgLy8gcmV3cml0aW5nIHNvIHRoZSB0b2tlbml6ZXIncyBge3t7e2Ag4oaSIGB7e2AgdW5lc2NhcGUgbGFuZHMgaW4gdGhlIGRvY3VtZW50LlxuICBjb25zdCBlbnRyaWVzID0gd2Fsa0FuZEJpbmQoZG9jLCBpc1RlbXBsYXRhYmxlLCB0cnVlKTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZXZhbHVhdG9yUmVzb2x2ZShlbnRyeS50b2tlbnMsIHNjb3BlLCBlbnRyeS5maWVsZCk7XG4gICAgICBlbnRyeS5zZXQodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgZSA9IGVyciBhcyBFcnJvciAmIHsgY29kZT86IEVycm9yQ29kZTsgcGF0aD86IHN0cmluZyB9O1xuICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICBjb2RlOiBlLmNvZGUgPz8gRXJyb3JDb2RlLlRFTVBMQVRFX1BBUlNFX0VSUk9SLFxuICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgIGZpZWxkOiBlbnRyeS5maWVsZCxcbiAgICAgICAgcGF0aDogZS5wYXRoLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGVycm9ycyB9O1xufVxuXG4vKipcbiAqIFJlc29sdmUgYSBzZWxmLXJlZmVyZW5jaW5nIGRvY3VtZW50IChlLmcuIHBpcGVsaW5lLmpzb24gd2hlcmVcbiAqIG1ldGFkYXRhIGZpZWxkcyByZWZlcmVuY2UgZWFjaCBvdGhlcikuIFRvcG9sb2dpY2FsbHkgb3JkZXJzIHRoZVxuICogcmVzb2x1dGlvbiBzbyBkZXBlbmRlbmNpZXMgY29tZSBmaXJzdC4gTXV0YXRlcyBgZG9jYCBpbiBwbGFjZS5cbiAqXG4gKiBgZmllbGRUb1Njb3BlUGF0aGAgbWFwcyBlYWNoIGZpZWxkIChlLmcuIGBtZXRhZGF0YS5lbnZgKSB0byB0aGUgc2NvcGVcbiAqIHBhdGggaXQgcG9wdWxhdGVzICh0eXBpY2FsbHkgdGhlIHNhbWUsIHNhbnMgYW55IGFycmF5IGluZGljZXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNlbGZSZWZlcmVuY2luZzxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZG9jOiBULFxuICBzY29wZTogU2NvcGUsXG4gIGlzVGVtcGxhdGFibGU6IEZpZWxkUHJlZGljYXRlLFxuICBmaWVsZFRvU2NvcGVQYXRoOiAoZmllbGQ6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbCxcbik6IFJlc29sdmVSZXN1bHQge1xuICAvLyBpbmNsdWRlTGl0ZXJhbE9ubHk6IGEgc2VsZi1yZWZlcmVuY2luZyBmaWVsZCB0aGF0IGlzIG9ubHkgYSBge3t7e2AgZXNjYXBlXG4gIC8vIHN0aWxsIG5lZWRzIGl0cyB1bmVzY2FwZSB3cml0dGVuIGJhY2sgKHNhbWUgcmF0aW9uYWxlIGFzIHJlc29sdmVUZW1wbGF0ZXMpLlxuICBjb25zdCBlbnRyaWVzID0gd2Fsa0FuZEJpbmQoZG9jLCBpc1RlbXBsYXRhYmxlLCB0cnVlKTtcbiAgLy8gQnVpbGQgdG9wbyBub2RlcyBrZXllZCBieSB0YXJnZXQgc2NvcGUgcGF0aFxuICBjb25zdCBub2RlcyA9IGVudHJpZXNcbiAgICAubWFwKGUgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gZmllbGRUb1Njb3BlUGF0aChlLmZpZWxkKTtcbiAgICAgIGlmICgha2V5KSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IGRlcHM6IHN0cmluZ1tdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHQgb2YgZS50b2tlbnMpIGlmICh0LmtpbmQgPT09ICdleHByJykgZGVwcy5wdXNoKHQucGF0aC5qb2luKCcuJykpO1xuICAgICAgcmV0dXJuIHsga2V5LCBkZXBzLCBlbnRyeTogZSB9O1xuICAgIH0pXG4gICAgLmZpbHRlcigobik6IG4gaXMgTm9uTnVsbGFibGU8dHlwZW9mIG4+ID0+IG4gIT09IG51bGwpO1xuXG4gIGNvbnN0IHsgb3JkZXJlZCwgY3ljbGVzIH0gPSB0b3BvU29ydChub2Rlcy5tYXAobiA9PiAoeyBrZXk6IG4ua2V5LCBkZXBzOiBuLmRlcHMgfSkpKTtcbiAgY29uc3QgZXJyb3JzOiBSZXNvbHZlUmVzdWx0WydlcnJvcnMnXSA9IFtdO1xuICBpZiAoY3ljbGVzLmxlbmd0aCkge1xuICAgIGZvciAoY29uc3QgYyBvZiBjeWNsZXMpIHtcbiAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX0NZQ0xFLFxuICAgICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgY3ljbGUgZGV0ZWN0ZWQ6ICR7Yy5qb2luKCcgLT4gJyl9YCxcbiAgICAgICAgcGF0aDogYy5qb2luKCcgLT4gJyksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZXJyb3JzIH07XG4gIH1cblxuICAvLyBSZXNvbHZlIGluIHRvcG8gb3JkZXI7IG11bHRpcGxlIGVudHJpZXMgbWF5IHNoYXJlIGEgc2NvcGUga2V5IChlLmcuIG9uZVxuICAvLyBwaXBlbGluZSBmaWVsZCBjb3VsZCBtYXAgdG8gdGhlIHNhbWUgc2NvcGUgcGF0aCDigJQgdW5saWtlbHkgaGVyZSksIHNvXG4gIC8vIGl0ZXJhdGUgYWxsIGVudHJpZXMgd2hvc2Uga2V5ID09IG9yZGVyZWRbaV0uXG4gIGNvbnN0IGJ5S2V5ID0gbmV3IE1hcDxzdHJpbmcsIHR5cGVvZiBub2Rlcz4oKTtcbiAgZm9yIChjb25zdCBuIG9mIG5vZGVzKSB7XG4gICAgY29uc3QgbGlzdCA9IGJ5S2V5LmdldChuLmtleSkgPz8gW107XG4gICAgbGlzdC5wdXNoKG4pO1xuICAgIGJ5S2V5LnNldChuLmtleSwgbGlzdCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBvcmRlcmVkKSB7XG4gICAgZm9yIChjb25zdCBuIG9mIGJ5S2V5LmdldChrZXkpID8/IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2YWx1YXRvclJlc29sdmUobi5lbnRyeS50b2tlbnMsIHNjb3BlLCBuLmVudHJ5LmZpZWxkKTtcbiAgICAgICAgbi5lbnRyeS5zZXQodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnN0IGUgPSBlcnIgYXMgRXJyb3IgJiB7IGNvZGU/OiBFcnJvckNvZGU7IHBhdGg/OiBzdHJpbmcgfTtcbiAgICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICAgIGNvZGU6IGUuY29kZSA/PyBFcnJvckNvZGUuVEVNUExBVEVfUEFSU0VfRVJST1IsXG4gICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgIGZpZWxkOiBuLmVudHJ5LmZpZWxkLFxuICAgICAgICAgIHBhdGg6IGUucGF0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGVycm9ycyB9O1xufVxuXG4iXX0=
@@ -43,4 +43,4 @@ export function resolvePluginTemplates(plugin, pipelineScope) {
43
43
  }
44
44
  return clone;
45
45
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3BsdWdpbi1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLHVFQUF1RTtBQUN2RSw2RUFBNkU7QUFDN0Usa0VBQWtFO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxNQUFjLEVBQ2QsYUFBc0M7SUFFdEMsa0VBQWtFO0lBQ2xFLDJFQUEyRTtJQUMzRSxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFxQyxDQUFDO0lBRTFFLHNFQUFzRTtJQUN0RSw2RUFBNkU7SUFDN0UseUVBQXlFO0lBQ3pFLHdFQUF3RTtJQUN4RSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksRUFBRSxDQUEyQixDQUFDO0lBQ3hELE1BQU0sS0FBSyxHQUFHO1FBQ1osR0FBRyxhQUFhO1FBQ2hCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ3RELEdBQUc7S0FDSixDQUFDO0lBRUYsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSwrRUFBK0U7SUFDL0UsOERBQThEO0lBQzlELE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUNwQyxFQUFFLEdBQUcsRUFBRSxFQUNQLEtBQUssRUFDTCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUN0RCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUNqQixDQUFDO0lBRUYsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSw0RUFBNEU7SUFDNUUsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQzNCLEtBQUssRUFDTCxLQUFLLEVBQ0wsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDN0YsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QiwyRUFBMkU7UUFDM0UsMEVBQTBFO1FBQzFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyx5Q0FBeUMsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzSCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLy8gV2hpY2ggcGx1Z2luIGZpZWxkcyBhY2NlcHQgYHt7IC4uLiB9fWAgaXMgdGhlIHBsdWdpbiBzcGVjJ3MgVEVNUExBVEVcbi8vIENPTlRSQUNULCBvd25lZCBieSBhcGktY29yZSBzbyB0aGUgdXBsb2FkIGNoZWNrLCB0aGUgQ0xJIGFuZCB0aGlzIHJlc29sdmVyXG4vLyBjYW4ndCBkaXNhZ3JlZSBhYm91dCBpdC4gRG8gbm90IHJlLWRlY2xhcmUgdGhlIGZpZWxkIGxpc3QgaGVyZS5cbmltcG9ydCB7IGlzUGx1Z2luVGVtcGxhdGFibGVGaWVsZCB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YSc7XG5pbXBvcnQgeyByZXNvbHZlU2VsZlJlZmVyZW5jaW5nLCByZXNvbHZlVGVtcGxhdGVzIH0gZnJvbSAnLi9pbmRleC5qcyc7XG5cbi8qKlxuICogUmV0dXJuIGEgc2hhbGxvdyBjbG9uZSBvZiBgcGx1Z2luYCB3aXRoIGFsbCBge3sgLi4uIH19YCB0ZW1wbGF0ZXNcbiAqIHJlc29sdmVkIGFnYWluc3QgdGhlIGdpdmVuIHBpcGVsaW5lIHNjb3BlLiBDYWxsZXIgbXVzdCBwcmUtcG9wdWxhdGVcbiAqIGBwaXBlbGluZVNjb3BlYCB3aXRoIGB7IHBpcGVsaW5lLCBwbHVnaW4sIGVudiB9YCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsdWdpblRlbXBsYXRlcyhcbiAgcGx1Z2luOiBQbHVnaW4sXG4gIHBpcGVsaW5lU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogUGx1Z2luIHtcbiAgLy8gRGVlcCBjbG9uZSBzbyBtdXRhdGlvbnMgZG9uJ3QgbGVhayBiYWNrIHRvIHRoZSBjYWxsZXIncyBQbHVnaW4uXG4gIC8vIFN0cnVjdHVyYWwgZmllbGRzIHdlIGNhcmUgYWJvdXQgYXJlIHBsYWluIEpTT047IHN0cnVjdHVyZWRDbG9uZSBpcyBzYWZlLlxuICBjb25zdCBjbG9uZSA9IHN0cnVjdHVyZWRDbG9uZShwbHVnaW4pIGFzIFBsdWdpbiAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8vIFRoZSBgZW52YCBzY29wZSByb290IElTIHRoZSBjbG9uZSdzIGVudiBtYXAsIG5vdCB0aGUgb3JpZ2luYWw6IHdpdGhcbiAgLy8gYHBsdWdpbi5lbnZgIOKAlCB0aGUgVU5SRVNPTFZFRCB2YWx1ZXMg4oCUIGBCOiAne3sgZW52LkEgfX0nYCB3b3VsZCBzdWJzdGl0dXRlXG4gIC8vIEEncyByYXcgdGVtcGxhdGUgdGV4dCwgYmFraW5nIHRoZSBsaXRlcmFsIGB7eyDigKYgfX1gIGludG8gdGhlIENvZGVCdWlsZFxuICAvLyBlbnZpcm9ubWVudCBhbmQgc2hlbGwgY29tbWFuZHMgd2l0aCBubyBlcnJvci4gQSBjeWNsZSAoQeKGlEIpIGxpa2V3aXNlLlxuICBjb25zdCBlbnYgPSAoY2xvbmUuZW52ID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjb25zdCBzY29wZSA9IHtcbiAgICAuLi5waXBlbGluZVNjb3BlLFxuICAgIHBsdWdpbjogeyBuYW1lOiBwbHVnaW4ubmFtZSwgdmVyc2lvbjogcGx1Z2luLnZlcnNpb24gfSxcbiAgICBlbnYsXG4gIH07XG5cbiAgLy8gUGFzcyAxIOKAlCBgZW52YCBmaXJzdCwgYXMgYSBzZWxmLXJlZmVyZW5jaW5nIGRvY3VtZW50OiB0b3BvbG9naWNhbGx5IG9yZGVyZWRcbiAgLy8gc28gZWFjaCB2YWx1ZSByZXNvbHZlcyBhZnRlciB0aGUgb25lcyBpdCByZWFkcywgd2l0aCBjeWNsZXMgcmVwb3J0ZWQgcmF0aGVyXG4gIC8vIHRoYW4gc2lsZW50bHkgbGVmdCBhcyB0ZW1wbGF0ZSB0ZXh0LiBSZXNvbHZpbmcgd3JpdGVzIGJhY2sgaW50byBgZW52YCwgd2hpY2hcbiAgLy8gaXMgdGhlIHNjb3BlIHJvb3QsIHNvIGxhdGVyIHJlZmVyZW5jZXMgc2VlIHJlc29sdmVkIHZhbHVlcy5cbiAgY29uc3QgZW52UGFzcyA9IHJlc29sdmVTZWxmUmVmZXJlbmNpbmcoXG4gICAgeyBlbnYgfSxcbiAgICBzY29wZSxcbiAgICAoZmllbGQpID0+IGZpZWxkID09PSAnZW52JyB8fCBmaWVsZC5zdGFydHNXaXRoKCdlbnYuJyksXG4gICAgKGZpZWxkKSA9PiBmaWVsZCxcbiAgKTtcblxuICAvLyBQYXNzIDIg4oCUIGV2ZXJ5dGhpbmcgZWxzZSwgYWdhaW5zdCB0aGUgbm93LXJlc29sdmVkIGBlbnZgLiBgZW52YCBpdHNlbGYgaXNcbiAgLy8gZXhjbHVkZWQ6IGl0cyB2YWx1ZXMgYXJlIGZpbmFsLCBhbmQgb25lIHByb2R1Y2VkIGJ5IGFuIGVzY2FwZSAoYHt7e3t4fX1gIOKGklxuICAvLyBge3t4fX1gKSBtdXN0IG5vdCBiZSB0b2tlbml6ZWQgYSBzZWNvbmQgdGltZSBhcyBpZiBpdCB3ZXJlIGFuIGV4cHJlc3Npb24uXG4gIGNvbnN0IHJlc3QgPSByZXNvbHZlVGVtcGxhdGVzKFxuICAgIGNsb25lLFxuICAgIHNjb3BlLFxuICAgIChmaWVsZCkgPT4gaXNQbHVnaW5UZW1wbGF0YWJsZUZpZWxkKGZpZWxkKSAmJiAhKGZpZWxkID09PSAnZW52JyB8fCBmaWVsZC5zdGFydHNXaXRoKCdlbnYuJykpLFxuICApO1xuXG4gIGNvbnN0IGVycm9ycyA9IFsuLi5lbnZQYXNzLmVycm9ycywgLi4ucmVzdC5lcnJvcnNdO1xuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBGaXJzdCBlcnJvciB3aW5zIOKAlCByZXNvbHZlciBlcnJvcnMgc2hvdWxkIG5ldmVyIGJlIGJhdGNoZWQgYXQgc3ludGggdGltZVxuICAgIC8vIGJlY2F1c2UgYSBicm9rZW4gdGVtcGxhdGUgaXMgYSBwcm9ncmFtbWVyIGVycm9yLCBub3QgYSB2YWxpZGF0aW9uIHN0ZXAuXG4gICAgY29uc3QgZSA9IGVycm9yc1swXSE7XG4gICAgY29uc3QgbXNnID0gYFRlbXBsYXRlIHJlc29sdXRpb24gZmFpbGVkIGluIHBsdWdpbiBcIiR7cGx1Z2luLm5hbWV9XCIgYXQgZmllbGQgJyR7ZS5maWVsZCA/PyBlLnBhdGggPz8gJ2Vudid9JzogJHtlLm1lc3NhZ2V9YDtcbiAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgfVxuICByZXR1cm4gY2xvbmU7XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXJlc29sdmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvcGx1Z2luLXJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsdUVBQXVFO0FBQ3ZFLDZFQUE2RTtBQUM3RSxrRUFBa0U7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE1BQWMsRUFDZCxhQUFzQztJQUV0QyxrRUFBa0U7SUFDbEUsMkVBQTJFO0lBQzNFLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQXFDLENBQUM7SUFFMUUsc0VBQXNFO0lBQ3RFLDZFQUE2RTtJQUM3RSx5RUFBeUU7SUFDekUsd0VBQXdFO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQTJCLENBQUM7SUFDeEQsTUFBTSxLQUFLLEdBQUc7UUFDWixHQUFHLGFBQWE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDdEQsR0FBRztLQUNKLENBQUM7SUFFRiw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLCtFQUErRTtJQUMvRSw4REFBOEQ7SUFDOUQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQ3BDLEVBQUUsR0FBRyxFQUFFLEVBQ1AsS0FBSyxFQUNMLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ3RELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQ2pCLENBQUM7SUFFRiw0RUFBNEU7SUFDNUUsNkVBQTZFO0lBQzdFLDRFQUE0RTtJQUM1RSxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FDM0IsS0FBSyxFQUNMLEtBQUssRUFDTCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM3RixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLHlDQUF5QyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNILE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vLyBXaGljaCBwbHVnaW4gZmllbGRzIGFjY2VwdCBge3sgLi4uIH19YCBpcyB0aGUgcGx1Z2luIHNwZWMncyBURU1QTEFURVxuLy8gQ09OVFJBQ1QsIG93bmVkIGJ5IGFwaS1jb3JlIHNvIHRoZSB1cGxvYWQgY2hlY2ssIHRoZSBDTEkgYW5kIHRoaXMgcmVzb2x2ZXJcbi8vIGNhbid0IGRpc2FncmVlIGFib3V0IGl0LiBEbyBub3QgcmUtZGVjbGFyZSB0aGUgZmllbGQgbGlzdCBoZXJlLlxuaW1wb3J0IHsgaXNQbHVnaW5UZW1wbGF0YWJsZUZpZWxkIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhJztcbmltcG9ydCB7IHJlc29sdmVTZWxmUmVmZXJlbmNpbmcsIHJlc29sdmVUZW1wbGF0ZXMgfSBmcm9tICcuL2luZGV4LmpzJztcblxuLyoqXG4gKiBSZXR1cm4gYSBzaGFsbG93IGNsb25lIG9mIGBwbHVnaW5gIHdpdGggYWxsIGB7eyAuLi4gfX1gIHRlbXBsYXRlc1xuICogcmVzb2x2ZWQgYWdhaW5zdCB0aGUgZ2l2ZW4gcGlwZWxpbmUgc2NvcGUuIENhbGxlciBtdXN0IHByZS1wb3B1bGF0ZVxuICogYHBpcGVsaW5lU2NvcGVgIHdpdGggYHsgcGlwZWxpbmUsIHBsdWdpbiwgZW52IH1gIGtleXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGx1Z2luVGVtcGxhdGVzKFxuICBwbHVnaW46IFBsdWdpbixcbiAgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBQbHVnaW4ge1xuICAvLyBEZWVwIGNsb25lIHNvIG11dGF0aW9ucyBkb24ndCBsZWFrIGJhY2sgdG8gdGhlIGNhbGxlcidzIFBsdWdpbi5cbiAgLy8gU3RydWN0dXJhbCBmaWVsZHMgd2UgY2FyZSBhYm91dCBhcmUgcGxhaW4gSlNPTjsgc3RydWN0dXJlZENsb25lIGlzIHNhZmUuXG4gIGNvbnN0IGNsb25lID0gc3RydWN0dXJlZENsb25lKHBsdWdpbikgYXMgUGx1Z2luICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLy8gVGhlIGBlbnZgIHNjb3BlIHJvb3QgSVMgdGhlIGNsb25lJ3MgZW52IG1hcCwgbm90IHRoZSBvcmlnaW5hbDogd2l0aFxuICAvLyBgcGx1Z2luLmVudmAg4oCUIHRoZSBVTlJFU09MVkVEIHZhbHVlcyDigJQgYEI6ICd7eyBlbnYuQSB9fSdgIHdvdWxkIHN1YnN0aXR1dGVcbiAgLy8gQSdzIHJhdyB0ZW1wbGF0ZSB0ZXh0LCBiYWtpbmcgdGhlIGxpdGVyYWwgYHt7IOKApiB9fWAgaW50byB0aGUgQ29kZUJ1aWxkXG4gIC8vIGVudmlyb25tZW50IGFuZCBzaGVsbCBjb21tYW5kcyB3aXRoIG5vIGVycm9yLiBBIGN5Y2xlIChB4oaUQikgbGlrZXdpc2UuXG4gIGNvbnN0IGVudiA9IChjbG9uZS5lbnYgPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNvbnN0IHNjb3BlID0ge1xuICAgIC4uLnBpcGVsaW5lU2NvcGUsXG4gICAgcGx1Z2luOiB7IG5hbWU6IHBsdWdpbi5uYW1lLCB2ZXJzaW9uOiBwbHVnaW4udmVyc2lvbiB9LFxuICAgIGVudixcbiAgfTtcblxuICAvLyBQYXNzIDEg4oCUIGBlbnZgIGZpcnN0LCBhcyBhIHNlbGYtcmVmZXJlbmNpbmcgZG9jdW1lbnQ6IHRvcG9sb2dpY2FsbHkgb3JkZXJlZFxuICAvLyBzbyBlYWNoIHZhbHVlIHJlc29sdmVzIGFmdGVyIHRoZSBvbmVzIGl0IHJlYWRzLCB3aXRoIGN5Y2xlcyByZXBvcnRlZCByYXRoZXJcbiAgLy8gdGhhbiBzaWxlbnRseSBsZWZ0IGFzIHRlbXBsYXRlIHRleHQuIFJlc29sdmluZyB3cml0ZXMgYmFjayBpbnRvIGBlbnZgLCB3aGljaFxuICAvLyBpcyB0aGUgc2NvcGUgcm9vdCwgc28gbGF0ZXIgcmVmZXJlbmNlcyBzZWUgcmVzb2x2ZWQgdmFsdWVzLlxuICBjb25zdCBlbnZQYXNzID0gcmVzb2x2ZVNlbGZSZWZlcmVuY2luZyhcbiAgICB7IGVudiB9LFxuICAgIHNjb3BlLFxuICAgIChmaWVsZCkgPT4gZmllbGQgPT09ICdlbnYnIHx8IGZpZWxkLnN0YXJ0c1dpdGgoJ2Vudi4nKSxcbiAgICAoZmllbGQpID0+IGZpZWxkLFxuICApO1xuXG4gIC8vIFBhc3MgMiDigJQgZXZlcnl0aGluZyBlbHNlLCBhZ2FpbnN0IHRoZSBub3ctcmVzb2x2ZWQgYGVudmAuIGBlbnZgIGl0c2VsZiBpc1xuICAvLyBleGNsdWRlZDogaXRzIHZhbHVlcyBhcmUgZmluYWwsIGFuZCBvbmUgcHJvZHVjZWQgYnkgYW4gZXNjYXBlIChge3t7e3h9fWAg4oaSXG4gIC8vIGB7e3h9fWApIG11c3Qgbm90IGJlIHRva2VuaXplZCBhIHNlY29uZCB0aW1lIGFzIGlmIGl0IHdlcmUgYW4gZXhwcmVzc2lvbi5cbiAgY29uc3QgcmVzdCA9IHJlc29sdmVUZW1wbGF0ZXMoXG4gICAgY2xvbmUsXG4gICAgc2NvcGUsXG4gICAgKGZpZWxkKSA9PiBpc1BsdWdpblRlbXBsYXRhYmxlRmllbGQoZmllbGQpICYmICEoZmllbGQgPT09ICdlbnYnIHx8IGZpZWxkLnN0YXJ0c1dpdGgoJ2Vudi4nKSksXG4gICk7XG5cbiAgY29uc3QgZXJyb3JzID0gWy4uLmVudlBhc3MuZXJyb3JzLCAuLi5yZXN0LmVycm9yc107XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZpcnN0IGVycm9yIHdpbnMg4oCUIHJlc29sdmVyIGVycm9ycyBzaG91bGQgbmV2ZXIgYmUgYmF0Y2hlZCBhdCBzeW50aCB0aW1lXG4gICAgLy8gYmVjYXVzZSBhIGJyb2tlbiB0ZW1wbGF0ZSBpcyBhIHByb2dyYW1tZXIgZXJyb3IsIG5vdCBhIHZhbGlkYXRpb24gc3RlcC5cbiAgICBjb25zdCBlID0gZXJyb3JzWzBdITtcbiAgICBjb25zdCBtc2cgPSBgVGVtcGxhdGUgcmVzb2x1dGlvbiBmYWlsZWQgaW4gcGx1Z2luIFwiJHtwbHVnaW4ubmFtZX1cIiBhdCBmaWVsZCAnJHtlLmZpZWxkID8/IGUucGF0aCA/PyAnZW52J30nOiAke2UubWVzc2FnZX1gO1xuICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICB9XG4gIHJldHVybiBjbG9uZTtcbn1cbiJdfQ==
@@ -249,4 +249,4 @@ export function hasTemplate(source) {
249
249
  // tokenize() will produce a literal-only token list and round-trip correctly.
250
250
  return source.includes('{{');
251
251
  }
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3Rva2VuaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQTBCL0IsTUFBTSxPQUFPLGNBQWUsU0FBUSxLQUFLO0lBR3JCLEdBQUc7SUFGckIsWUFDRSxPQUFlLEVBQ0MsR0FBbUI7UUFFbkMsS0FBSyxDQUFDLEdBQUcsT0FBTyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7bUJBRnhDLEdBQUc7UUFHbkIsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWM7SUFDckMsNkVBQTZFO0lBQzdFLGdGQUFnRjtJQUNoRix1RUFBdUU7SUFDdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxjQUFjLENBQ3RCLDZCQUE2QixvQkFBb0IsUUFBUSxFQUN6RCxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7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RSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFDRCxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELENBQUMsSUFBSSxDQUFDLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWM7SUFDeEMsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRva2VuaXplciBmb3IgdGhlIHBpcGVsaW5lLWJ1aWxkZXIgdGVtcGxhdGUgZ3JhbW1hci5cbiAqXG4gKiBHcmFtbWFyOlxuICogICBUZW1wbGF0ZSAgIDo9IChMaXRlcmFsIHwgRXhwcikqXG4gKiAgIEV4cHIgICAgICAgOj0gXCJ7e1wiIHdzIFBhdGggKHdzIEZpbHRlcik/IHdzIFwifX1cIlxuICogICBQYXRoICAgICAgIDo9IElkZW50aWZpZXIgKFwiLlwiIElkZW50aWZpZXIpKlxuICogICBJZGVudGlmaWVyIDo9IFthLXpBLVpfXVthLXpBLVowLTlfXXswLDYzfVxuICogICBGaWx0ZXIgICAgIDo9IFwifFwiIHdzIFwiZGVmYXVsdFwiIHdzIFwiOlwiIHdzIFF1b3RlZFxuICogICBRdW90ZWQgICAgIDo9IFwiJ1wiIC4uLiBcIidcIiB8IFwiXFxcIlwiIC4uLiBcIlxcXCJcIlxuICpcbiAqIGB7e3t7YCBpcyB0aGUgZXNjYXBlIHNlcXVlbmNlIGZvciBhIGxpdGVyYWwgYHt7YDsgdGhlIGB9fWAgdGhhdCBjbG9zZXMgaXQgaXNcbiAqIHRoZW4gbGl0ZXJhbCB0b28sIHNvIGB7e3t7IC5YIH19YCByZW5kZXJzIGB7eyAuWCB9fWAuXG4gKlxuICogRGVwZW5kZW5jeS1mcmVlOiB0aGUgZnJvbnRlbmQgaW1wb3J0cyBpdCB0aHJvdWdoIHRoZVxuICogYEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUvdGVtcGxhdGVgIHN1YnBhdGggc28gaXRzIGlubGluZSB2YWxpZGF0aW9uXG4gKiBhY2NlcHRzIGFuZCByZWplY3RzIGV4YWN0bHkgd2hhdCBzeW50aCBkb2VzLlxuICovXG5cbmV4cG9ydCBjb25zdCBNQVhfRklFTERfU0laRV9CWVRFUyA9IDQgKiAxMDI0O1xuZXhwb3J0IGNvbnN0IE1BWF9QQVRIX0RFUFRIID0gNTtcbmV4cG9ydCBjb25zdCBNQVhfSURFTlRJRklFUl9MRU5HVEggPSA2NDtcblxuY29uc3QgdXRmOCA9IG5ldyBUZXh0RW5jb2RlcigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVBvc2l0aW9uIHtcbiAgbGluZTogbnVtYmVyO1xuICBjb2w6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsVG9rZW4ge1xuICBraW5kOiAnbGl0ZXJhbCc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHBvczogU291cmNlUG9zaXRpb247XG59XG5cbmV4cG9ydCB0eXBlIENvZXJjZUtpbmQgPSAnbnVtYmVyJyB8ICdib29sJyB8ICdqc29uJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHByVG9rZW4ge1xuICBraW5kOiAnZXhwcic7XG4gIHBhdGg6IHN0cmluZ1tdOyAvLyBlLmcuIFsncGlwZWxpbmUnLCAnbWV0YWRhdGEnLCAnZW52J11cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nOyAvLyB2YWx1ZSBmb3IgYHwgZGVmYXVsdDogJy4uLidgIGZpbHRlclxuICBjb2VyY2U/OiBDb2VyY2VLaW5kOyAvLyBgfCBudW1iZXJgLCBgfCBib29sYCwgYHwganNvbmBcbiAgc291cmNlOiBzdHJpbmc7IC8vIG9yaWdpbmFsIFwie3sgLi4uIH19XCIgdGV4dCAoZm9yIGVycm9yIG1lc3NhZ2VzKVxuICBwb3M6IFNvdXJjZVBvc2l0aW9uO1xufVxuXG5leHBvcnQgdHlwZSBUb2tlbiA9IExpdGVyYWxUb2tlbiB8IEV4cHJUb2tlbjtcblxuZXhwb3J0IGNsYXNzIFRva2VuaXplckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHBvczogU291cmNlUG9zaXRpb24sXG4gICkge1xuICAgIHN1cGVyKGAke21lc3NhZ2V9IGF0IGxpbmUgJHtwb3MubGluZX0sIGNvbCAke3Bvcy5jb2x9YCk7XG4gICAgdGhpcy5uYW1lID0gJ1Rva2VuaXplckVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFRva2VuaXplIGEgdGVtcGxhdGUgc291cmNlIHN0cmluZy4gTmV2ZXIgdGhyb3dzIG9uIHZhbGlkIGlucHV0O1xuICogdGhyb3dzIGBUb2tlbml6ZXJFcnJvcmAgd2l0aCBzb3VyY2UgcG9zaXRpb24gb24gbWFsZm9ybWVkIHRlbXBsYXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuaXplKHNvdXJjZTogc3RyaW5nKTogVG9rZW5bXSB7XG4gIC8vIEJ5dGUgY291bnQsIG5vdCBgLmxlbmd0aGAgKFVURi0xNiBjb2RlIHVuaXRzKTogdGhlIGNhcCBpcyBzdGF0ZWQgaW4gYnl0ZXMsXG4gIC8vIGFuZCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgKGVtb2ppLCBub24tQVNDSUkpIHdvdWxkIG90aGVyd2lzZSBiZSB1bmRlcmNvdW50ZWQuXG4gIC8vIFRleHRFbmNvZGVyIHJhdGhlciB0aGFuIEJ1ZmZlcjogdGhlIGJyb3dzZXIgaW1wb3J0cyB0aGlzIG1vZHVsZSB0b28uXG4gIGlmICh1dGY4LmVuY29kZShzb3VyY2UpLmJ5dGVMZW5ndGggPiBNQVhfRklFTERfU0laRV9CWVRFUykge1xuICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcihcbiAgICAgIGBGaWVsZCBleGNlZWRzIG1heCBzaXplIG9mICR7TUFYX0ZJRUxEX1NJWkVfQllURVN9IGJ5dGVzYCxcbiAgICAgIHsgbGluZTogMSwgY29sOiAxIH0sXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VuczogVG9rZW5bXSA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIGxldCBsaW5lID0gMTtcbiAgbGV0IGNvbCA9IDE7XG4gIGxldCBsaXRlcmFsU3RhcnQgPSAwO1xuICBsZXQgbGl0ZXJhbFN0YXJ0UG9zOiBTb3VyY2VQb3NpdGlvbiA9IHsgbGluZTogMSwgY29sOiAxIH07XG5cbiAgY29uc3QgYWR2YW5jZSA9IChuOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IG47IGsrKykge1xuICAgICAgaWYgKHNvdXJjZVtpICsga10gPT09ICdcXG4nKSB7XG4gICAgICAgIGxpbmUrKztcbiAgICAgICAgY29sID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbCsrO1xuICAgICAgfVxuICAgIH1cbiAgICBpICs9IG47XG4gIH07XG5cbiAgY29uc3QgZmx1c2hMaXRlcmFsID0gKGVuZElkeDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgaWYgKGVuZElkeCA+IGxpdGVyYWxTdGFydCkge1xuICAgICAgLy8gVW5lc2NhcGUgYHt7e3tgIOKGkiBge3tgXG4gICAgICBjb25zdCByYXcgPSBzb3VyY2Uuc2xpY2UobGl0ZXJhbFN0YXJ0LCBlbmRJZHgpO1xuICAgICAgY29uc3QgdmFsdWUgPSByYXcucmVwbGFjZSgvXFx7XFx7XFx7XFx7L2csICd7eycpO1xuICAgICAgdG9rZW5zLnB1c2goeyBraW5kOiAnbGl0ZXJhbCcsIHZhbHVlLCBwb3M6IGxpdGVyYWxTdGFydFBvcyB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc3RhcnRMaXRlcmFsID0gKCk6IHZvaWQgPT4ge1xuICAgIGxpdGVyYWxTdGFydCA9IGk7XG4gICAgbGl0ZXJhbFN0YXJ0UG9zID0geyBsaW5lLCBjb2wgfTtcbiAgfTtcblxuICBzdGFydExpdGVyYWwoKTtcblxuICAvLyBIb3cgbWFueSBlc2NhcGVkIGB7e3t7YCBhcmUgc3RpbGwgd2FpdGluZyBmb3IgdGhlaXIgY2xvc2luZyBgfX1gLiBUaGUgZXNjYXBlXG4gIC8vIGV4aXN0cyBzbyBwbHVnaW4gY29tbWFuZHMgY2FuIGNhcnJ5IEdvIC8gSGVsbSAvIEdpdEh1Yi1zdHlsZSB0ZW1wbGF0ZXNcbiAgLy8gKGBkb2NrZXIgaW5zcGVjdCAtZiAne3t7ey5TdGF0ZS5TdGF0dXN9fSdgIOKGkiBge3suU3RhdGUuU3RhdHVzfX1gKSwgc28gdGhlXG4gIC8vIGB9fWAgdGhhdCBjbG9zZXMgYW4gZXNjYXBlZCBvcGVuIGlzIGxpdGVyYWwgdGV4dC4gQW4gdW5tYXRjaGVkIGB9fWAgaXNcbiAgLy8gc3RpbGwgYW4gZXJyb3IsIHdoaWNoIGtlZXBzIGNhdGNoaW5nIGB7IHggfX1gIHR5cG9zLlxuICBsZXQgZXNjYXBlZE9wZW4gPSAwO1xuXG4gIHdoaWxlIChpIDwgc291cmNlLmxlbmd0aCkge1xuICAgIC8vIEVzY2FwZTogYHt7e3tgIOKGkiBsaXRlcmFsIGB7e2BcbiAgICBpZiAoc291cmNlLnN0YXJ0c1dpdGgoJ3t7e3snLCBpKSkge1xuICAgICAgYWR2YW5jZSg0KTtcbiAgICAgIGVzY2FwZWRPcGVuKys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgLy8gRXhwcmVzc2lvbiBzdGFydFxuICAgIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgne3snLCBpKSkge1xuICAgICAgZmx1c2hMaXRlcmFsKGkpO1xuICAgICAgY29uc3QgZXhwclBvczogU291cmNlUG9zaXRpb24gPSB7IGxpbmUsIGNvbCB9O1xuICAgICAgYWR2YW5jZSgyKTtcbiAgICAgIGNvbnN0IGV4cHIgPSByZWFkRXhwcmVzc2lvbihzb3VyY2UsIGksIGxpbmUsIGNvbCk7XG4gICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgIGtpbmQ6ICdleHByJyxcbiAgICAgICAgcGF0aDogZXhwci5wYXRoLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGV4cHIuZGVmYXVsdFZhbHVlLFxuICAgICAgICBjb2VyY2U6IGV4cHIuY29lcmNlLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZS5zbGljZShpIC0gMiwgZXhwci5lbmRJZHgpLFxuICAgICAgICBwb3M6IGV4cHJQb3MsXG4gICAgICB9KTtcbiAgICAgIGFkdmFuY2UoZXhwci5lbmRJZHggLSBpKTtcbiAgICAgIHN0YXJ0TGl0ZXJhbCgpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIC8vIGB9fWAgb3V0c2lkZSBhbiBleHByZXNzaW9uOiB0aGUgY2xvc2Ugb2YgYW4gZXNjYXBlZCBge3t7e2AsIG9yIGEgc3RyYXkuXG4gICAgaWYgKHNvdXJjZS5zdGFydHNXaXRoKCd9fScsIGkpKSB7XG4gICAgICBpZiAoZXNjYXBlZE9wZW4gPiAwKSB7XG4gICAgICAgIGVzY2FwZWRPcGVuLS07XG4gICAgICAgIGFkdmFuY2UoMik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFwiVW5leHBlY3RlZCAnfX0nIG91dHNpZGUgZXhwcmVzc2lvblwiLCB7IGxpbmUsIGNvbCB9KTtcbiAgICB9XG4gICAgYWR2YW5jZSgxKTtcbiAgfVxuXG4gIGZsdXNoTGl0ZXJhbChpKTtcbiAgcmV0dXJuIHRva2Vucztcbn1cblxuaW50ZXJmYWNlIFBhcnNlZEV4cHIge1xuICBwYXRoOiBzdHJpbmdbXTtcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICBjb2VyY2U/OiBDb2VyY2VLaW5kO1xuICBlbmRJZHg6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcmVhZEV4cHJlc3Npb24oXG4gIHNvdXJjZTogc3RyaW5nLFxuICBzdGFydElkeDogbnVtYmVyLFxuICBzdGFydExpbmU6IG51bWJlcixcbiAgc3RhcnRDb2w6IG51bWJlcixcbik6IFBhcnNlZEV4cHIge1xuICBsZXQgaSA9IHN0YXJ0SWR4O1xuICBsZXQgbGluZSA9IHN0YXJ0TGluZTtcbiAgbGV0IGNvbCA9IHN0YXJ0Q29sO1xuXG4gIGNvbnN0IHNraXBXcyA9ICgpOiB2b2lkID0+IHtcbiAgICB3aGlsZSAoaSA8IHNvdXJjZS5sZW5ndGggJiYgKHNvdXJjZVtpXSA9PT0gJyAnIHx8IHNvdXJjZVtpXSA9PT0gJ1xcdCcpKSB7XG4gICAgICBpKys7XG4gICAgICBjb2wrKztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVhZElkZW50aWZpZXIgPSAoKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBzdGFydEkgPSBpO1xuICAgIGlmIChpID49IHNvdXJjZS5sZW5ndGggfHwgIS9bYS16QS1aX10vLnRlc3Qoc291cmNlW2ldISkpIHtcbiAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcihcbiAgICAgICAgJ0V4cGVjdGVkIGlkZW50aWZpZXIgaW5zaWRlIHRlbXBsYXRlIGV4cHJlc3Npb24nLFxuICAgICAgICB7IGxpbmUsIGNvbCB9LFxuICAgICAgKTtcbiAgICB9XG4gICAgd2hpbGUgKGkgPCBzb3VyY2UubGVuZ3RoICYmIC9bYS16QS1aMC05X10vLnRlc3Qoc291cmNlW2ldISkpIHtcbiAgICAgIGkrKztcbiAgICAgIGNvbCsrO1xuICAgIH1cbiAgICBjb25zdCBpZGVudCA9IHNvdXJjZS5zbGljZShzdGFydEksIGkpO1xuICAgIGlmIChpZGVudC5sZW5ndGggPiBNQVhfSURFTlRJRklFUl9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcihcbiAgICAgICAgYElkZW50aWZpZXIgZXhjZWVkcyBtYXggbGVuZ3RoIG9mICR7TUFYX0lERU5USUZJRVJfTEVOR1RIfWAsXG4gICAgICAgIHsgbGluZSwgY29sOiBjb2wgLSBpZGVudC5sZW5ndGggfSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBpZGVudDtcbiAgfTtcblxuICBjb25zdCByZWFkUXVvdGVkID0gKCk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgcXVvdGUgPSBzb3VyY2VbaV07XG4gICAgaWYgKHF1b3RlICE9PSAnXCInICYmIHF1b3RlICE9PSBcIidcIikge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKCdFeHBlY3RlZCBxdW90ZWQgc3RyaW5nJywgeyBsaW5lLCBjb2wgfSk7XG4gICAgfVxuICAgIGkrKzsgY29sKys7XG4gICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgd2hpbGUgKGkgPCBzb3VyY2UubGVuZ3RoICYmIHNvdXJjZVtpXSAhPT0gcXVvdGUpIHtcbiAgICAgIGlmIChzb3VyY2VbaV0gPT09ICdcXFxcJykge1xuICAgICAgICBjb25zdCBuZXh0ID0gc291cmNlW2kgKyAxXTtcbiAgICAgICAgaWYgKG5leHQgPT09ICdcXFxcJyB8fCBuZXh0ID09PSBxdW90ZSkge1xuICAgICAgICAgIHBhcnRzLnB1c2gobmV4dCk7XG4gICAgICAgICAgaSArPSAyO1xuICAgICAgICAgIGNvbCArPSAyO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBlc2NhcGUgJ1xcXFwke25leHQgPz8gJyd9JyBpbiBxdW90ZWQgc3RyaW5nYCxcbiAgICAgICAgICB7IGxpbmUsIGNvbCB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHNvdXJjZVtpXSA9PT0gJ1xcbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKCdVbnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZycsIHsgbGluZSwgY29sIH0pO1xuICAgICAgfVxuICAgICAgcGFydHMucHVzaChzb3VyY2VbaV0hKTtcbiAgICAgIGkrKzsgY29sKys7XG4gICAgfVxuICAgIGlmIChpID49IHNvdXJjZS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcignVW50ZXJtaW5hdGVkIHF1b3RlZCBzdHJpbmcnLCB7IGxpbmUsIGNvbCB9KTtcbiAgICB9XG4gICAgaSsrOyBjb2wrKzsgLy8gY29uc3VtZSBjbG9zaW5nIHF1b3RlXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJycpO1xuICB9O1xuXG4gIHNraXBXcygpO1xuICBjb25zdCBwYXRoOiBzdHJpbmdbXSA9IFtyZWFkSWRlbnRpZmllcigpXTtcbiAgd2hpbGUgKGkgPCBzb3VyY2UubGVuZ3RoICYmIHNvdXJjZVtpXSA9PT0gJy4nKSB7XG4gICAgaSsrOyBjb2wrKztcbiAgICBwYXRoLnB1c2gocmVhZElkZW50aWZpZXIoKSk7XG4gICAgaWYgKHBhdGgubGVuZ3RoID4gTUFYX1BBVEhfREVQVEgpIHtcbiAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcihcbiAgICAgICAgYFBhdGggZGVwdGggZXhjZWVkcyBtYXggb2YgJHtNQVhfUEFUSF9ERVBUSH1gLFxuICAgICAgICB7IGxpbmUsIGNvbCB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgc2tpcFdzKCk7XG5cbiAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsZXQgY29lcmNlOiBDb2VyY2VLaW5kIHwgdW5kZWZpbmVkO1xuXG4gIC8vIEZpbHRlcnMgY2hhaW46IGB8IGRlZmF1bHQ6ICd4JyB8IG51bWJlcmAsIGB8IGJvb2xgLCBgfCBqc29uYCwgZXRjLlxuICAvLyAtIGBkZWZhdWx0YCB0YWtlcyBhIHF1b3RlZCBhcmd1bWVudCDigJQgYXBwbGllZCBmaXJzdCAoYmVmb3JlIGNvZXJjaW9uKVxuICAvLyAtIGBudW1iZXJgLCBgYm9vbGAsIGBqc29uYCBhcmUgYXJndW1lbnQtbGVzcyBjb2VyY2lvbiBmaWx0ZXJzIOKAlCBhcHBsaWVkIGxhc3RcbiAgd2hpbGUgKHNvdXJjZVtpXSA9PT0gJ3wnKSB7XG4gICAgaSsrOyBjb2wrKztcbiAgICBza2lwV3MoKTtcblxuICAgIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgnZGVmYXVsdCcsIGkpKSB7XG4gICAgICBpZiAoZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFwiJ2RlZmF1bHQnIGZpbHRlciBtYXkgb25seSBhcHBlYXIgb25jZVwiLCB7IGxpbmUsIGNvbCB9KTtcbiAgICAgIH1cbiAgICAgIGkgKz0gJ2RlZmF1bHQnLmxlbmd0aDtcbiAgICAgIGNvbCArPSAnZGVmYXVsdCcubGVuZ3RoO1xuICAgICAgc2tpcFdzKCk7XG4gICAgICBpZiAoc291cmNlW2ldICE9PSAnOicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFwiRXhwZWN0ZWQgJzonIGFmdGVyICdkZWZhdWx0J1wiLCB7IGxpbmUsIGNvbCB9KTtcbiAgICAgIH1cbiAgICAgIGkrKzsgY29sKys7XG4gICAgICBza2lwV3MoKTtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IHJlYWRRdW90ZWQoKTtcbiAgICAgIHNraXBXcygpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbGV0IG1hdGNoZWRDb2VyY2U6IENvZXJjZUtpbmQgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGtpbmQgb2YgWydudW1iZXInLCAnYm9vbCcsICdqc29uJ10gYXMgY29uc3QpIHtcbiAgICAgIGlmIChzb3VyY2Uuc3RhcnRzV2l0aChraW5kLCBpKSkge1xuICAgICAgICAvLyBFbnN1cmUgaWRlbnRpZmllciBib3VuZGFyeSDigJQgYG51bWJlcmlzaGAgbXVzdCBub3QgbWF0Y2ggYG51bWJlcmBcbiAgICAgICAgY29uc3QgbmV4dCA9IHNvdXJjZVtpICsga2luZC5sZW5ndGhdO1xuICAgICAgICBpZiAoIW5leHQgfHwgIS9bYS16QS1aMC05X10vLnRlc3QobmV4dCkpIHtcbiAgICAgICAgICBtYXRjaGVkQ29lcmNlID0ga2luZDtcbiAgICAgICAgICBpICs9IGtpbmQubGVuZ3RoO1xuICAgICAgICAgIGNvbCArPSBraW5kLmxlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWF0Y2hlZENvZXJjZSkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgICBcIlVua25vd24gZmlsdGVyIOKAlCBzdXBwb3J0ZWQ6ICdkZWZhdWx0JywgJ251bWJlcicsICdib29sJywgJ2pzb24nXCIsXG4gICAgICAgIHsgbGluZSwgY29sIH0sXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoY29lcmNlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoJ09ubHkgb25lIGNvZXJjaW9uIGZpbHRlciBpcyBhbGxvd2VkIHBlciBleHByZXNzaW9uJywgeyBsaW5lLCBjb2wgfSk7XG4gICAgfVxuICAgIGNvZXJjZSA9IG1hdGNoZWRDb2VyY2U7XG4gICAgc2tpcFdzKCk7XG4gIH1cblxuICBpZiAoIXNvdXJjZS5zdGFydHNXaXRoKCd9fScsIGkpKSB7XG4gICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFwiRXhwZWN0ZWQgJ319J1wiLCB7IGxpbmUsIGNvbCB9KTtcbiAgfVxuICBpICs9IDI7XG4gIHJldHVybiB7IHBhdGgsIGRlZmF1bHRWYWx1ZSwgY29lcmNlLCBlbmRJZHg6IGkgfTtcbn1cblxuLyoqXG4gKiBDb252ZW5pZW5jZTogcmV0dXJucyB0cnVlIGlmIHRoZSBzb3VyY2UgY29udGFpbnMgYW55IHRlbXBsYXRlcy5cbiAqIFVzZWQgYXMgYSBmYXN0LXBhdGggdG8gc2tpcCB0b2tlbml6YXRpb24gZm9yIHN0cmluZ3MgdGhhdCBhcmUgb2J2aW91c2x5IGxpdGVyYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNUZW1wbGF0ZShzb3VyY2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBOb3QgY29tcGxldGVseSBhY2N1cmF0ZSAoYSBsb25lIGB7e3t7YCB3b3VsZCByZXR1cm4gdHJ1ZSkgYnV0IHRoYXQncyBmaW5lIOKAlFxuICAvLyB0b2tlbml6ZSgpIHdpbGwgcHJvZHVjZSBhIGxpdGVyYWwtb25seSB0b2tlbiBsaXN0IGFuZCByb3VuZC10cmlwIGNvcnJlY3RseS5cbiAgcmV0dXJuIHNvdXJjZS5pbmNsdWRlcygne3snKTtcbn1cbiJdfQ==
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5pemVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdG9rZW5pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUV4QyxNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBMEIvQixNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUs7SUFHckIsR0FBRztJQUZyQixZQUNFLE9BQWUsRUFDQyxHQUFtQjtRQUVuQyxLQUFLLENBQUMsR0FBRyxPQUFPLFlBQVksR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzttQkFGeEMsR0FBRztRQUduQixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsTUFBYztJQUNyQyw2RUFBNkU7SUFDN0UsZ0ZBQWdGO0lBQ2hGLHVFQUF1RTtJQUN2RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsNkJBQTZCLG9CQUFvQixRQUFRLEVBQ3pELEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQVksRUFBRSxDQUFDO0lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksSUFBSSxH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LENBQUM7UUFDaEcsQ0FBQztRQUNELE1BQU0sR0FBRyxhQUFhLENBQUM7UUFDdkIsTUFBTSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYztJQUN4Qyw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVG9rZW5pemVyIGZvciB0aGUgcGlwZWxpbmUtYnVpbGRlciB0ZW1wbGF0ZSBncmFtbWFyLlxuICpcbiAqIEdyYW1tYXI6XG4gKiAgIFRlbXBsYXRlICAgOj0gKExpdGVyYWwgfCBFeHByKSpcbiAqICAgRXhwciAgICAgICA6PSBcInt7XCIgd3MgUGF0aCAod3MgRmlsdGVyKT8gd3MgXCJ9fVwiXG4gKiAgIFBhdGggICAgICAgOj0gSWRlbnRpZmllciAoXCIuXCIgSWRlbnRpZmllcikqXG4gKiAgIElkZW50aWZpZXIgOj0gW2EtekEtWl9dW2EtekEtWjAtOV9dezAsNjN9XG4gKiAgIEZpbHRlciAgICAgOj0gXCJ8XCIgd3MgXCJkZWZhdWx0XCIgd3MgXCI6XCIgd3MgUXVvdGVkXG4gKiAgIFF1b3RlZCAgICAgOj0gXCInXCIgLi4uIFwiJ1wiIHwgXCJcXFwiXCIgLi4uIFwiXFxcIlwiXG4gKlxuICogYHt7e3tgIGlzIHRoZSBlc2NhcGUgc2VxdWVuY2UgZm9yIGEgbGl0ZXJhbCBge3tgOyB0aGUgYH19YCB0aGF0IGNsb3NlcyBpdCBpc1xuICogdGhlbiBsaXRlcmFsIHRvbywgc28gYHt7e3sgLlggfX1gIHJlbmRlcnMgYHt7IC5YIH19YC5cbiAqXG4gKiBEZXBlbmRlbmN5LWZyZWU6IHRoZSBmcm9udGVuZCBpbXBvcnRzIGl0IHRocm91Z2ggdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZS90ZW1wbGF0ZWAgc3VicGF0aCBzbyBpdHMgaW5saW5lIHZhbGlkYXRpb25cbiAqIGFjY2VwdHMgYW5kIHJlamVjdHMgZXhhY3RseSB3aGF0IHN5bnRoIGRvZXMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BWF9GSUVMRF9TSVpFX0JZVEVTID0gNCAqIDEwMjQ7XG5leHBvcnQgY29uc3QgTUFYX1BBVEhfREVQVEggPSA1O1xuZXhwb3J0IGNvbnN0IE1BWF9JREVOVElGSUVSX0xFTkdUSCA9IDY0O1xuXG5jb25zdCB1dGY4ID0gbmV3IFRleHRFbmNvZGVyKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNvbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdGVyYWxUb2tlbiB7XG4gIGtpbmQ6ICdsaXRlcmFsJztcbiAgdmFsdWU6IHN0cmluZztcbiAgcG9zOiBTb3VyY2VQb3NpdGlvbjtcbn1cblxuZXhwb3J0IHR5cGUgQ29lcmNlS2luZCA9ICdudW1iZXInIHwgJ2Jvb2wnIHwgJ2pzb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJUb2tlbiB7XG4gIGtpbmQ6ICdleHByJztcbiAgcGF0aDogc3RyaW5nW107IC8vIGUuZy4gWydwaXBlbGluZScsICdtZXRhZGF0YScsICdlbnYnXVxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7IC8vIHZhbHVlIGZvciBgfCBkZWZhdWx0OiAnLi4uJ2AgZmlsdGVyXG4gIGNvZXJjZT86IENvZXJjZUtpbmQ7IC8vIGB8IG51bWJlcmAsIGB8IGJvb2xgLCBgfCBqc29uYFxuICBzb3VyY2U6IHN0cmluZzsgLy8gb3JpZ2luYWwgXCJ7eyAuLi4gfX1cIiB0ZXh0IChmb3IgZXJyb3IgbWVzc2FnZXMpXG4gIHBvczogU291cmNlUG9zaXRpb247XG59XG5cbmV4cG9ydCB0eXBlIFRva2VuID0gTGl0ZXJhbFRva2VuIHwgRXhwclRva2VuO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5pemVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcG9zOiBTb3VyY2VQb3NpdGlvbixcbiAgKSB7XG4gICAgc3VwZXIoYCR7bWVzc2FnZX0gYXQgbGluZSAke3Bvcy5saW5lfSwgY29sICR7cG9zLmNvbH1gKTtcbiAgICB0aGlzLm5hbWUgPSAnVG9rZW5pemVyRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogVG9rZW5pemUgYSB0ZW1wbGF0ZSBzb3VyY2Ugc3RyaW5nLiBOZXZlciB0aHJvd3Mgb24gdmFsaWQgaW5wdXQ7XG4gKiB0aHJvd3MgYFRva2VuaXplckVycm9yYCB3aXRoIHNvdXJjZSBwb3NpdGlvbiBvbiBtYWxmb3JtZWQgdGVtcGxhdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemUoc291cmNlOiBzdHJpbmcpOiBUb2tlbltdIHtcbiAgLy8gQnl0ZSBjb3VudCwgbm90IGAubGVuZ3RoYCAoVVRGLTE2IGNvZGUgdW5pdHMpOiB0aGUgY2FwIGlzIHN0YXRlZCBpbiBieXRlcyxcbiAgLy8gYW5kIG11bHRpLWJ5dGUgY2hhcmFjdGVycyAoZW1vamksIG5vbi1BU0NJSSkgd291bGQgb3RoZXJ3aXNlIGJlIHVuZGVyY291bnRlZC5cbiAgLy8gVGV4dEVuY29kZXIgcmF0aGVyIHRoYW4gQnVmZmVyOiB0aGUgYnJvd3NlciBpbXBvcnRzIHRoaXMgbW9kdWxlIHRvby5cbiAgaWYgKHV0ZjguZW5jb2RlKHNvdXJjZSkuYnl0ZUxlbmd0aCA+IE1BWF9GSUVMRF9TSVpFX0JZVEVTKSB7XG4gICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgYEZpZWxkIGV4Y2VlZHMgbWF4IHNpemUgb2YgJHtNQVhfRklFTERfU0laRV9CWVRFU30gYnl0ZXNgLFxuICAgICAgeyBsaW5lOiAxLCBjb2w6IDEgfSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zOiBUb2tlbltdID0gW107XG4gIGxldCBpID0gMDtcbiAgbGV0IGxpbmUgPSAxO1xuICBsZXQgY29sID0gMTtcbiAgbGV0IGxpdGVyYWxTdGFydCA9IDA7XG4gIGxldCBsaXRlcmFsU3RhcnRQb3M6IFNvdXJjZVBvc2l0aW9uID0geyBsaW5lOiAxLCBjb2w6IDEgfTtcblxuICBjb25zdCBhZHZhbmNlID0gKG46IG51bWJlcik6IHZvaWQgPT4ge1xuICAgIGZvciAobGV0IGsgPSAwOyBrIDwgbjsgaysrKSB7XG4gICAgICBpZiAoc291cmNlW2kgKyBrXSA9PT0gJ1xcbicpIHtcbiAgICAgICAgbGluZSsrO1xuICAgICAgICBjb2wgPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sKys7XG4gICAgICB9XG4gICAgfVxuICAgIGkgKz0gbjtcbiAgfTtcblxuICBjb25zdCBmbHVzaExpdGVyYWwgPSAoZW5kSWR4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICBpZiAoZW5kSWR4ID4gbGl0ZXJhbFN0YXJ0KSB7XG4gICAgICAvLyBVbmVzY2FwZSBge3t7e2Ag4oaSIGB7e2BcbiAgICAgIGNvbnN0IHJhdyA9IHNvdXJjZS5zbGljZShsaXRlcmFsU3RhcnQsIGVuZElkeCk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHJhdy5yZXBsYWNlKC9cXHtcXHtcXHtcXHsvZywgJ3t7Jyk7XG4gICAgICB0b2tlbnMucHVzaCh7IGtpbmQ6ICdsaXRlcmFsJywgdmFsdWUsIHBvczogbGl0ZXJhbFN0YXJ0UG9zIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzdGFydExpdGVyYWwgPSAoKTogdm9pZCA9PiB7XG4gICAgbGl0ZXJhbFN0YXJ0ID0gaTtcbiAgICBsaXRlcmFsU3RhcnRQb3MgPSB7IGxpbmUsIGNvbCB9O1xuICB9O1xuXG4gIHN0YXJ0TGl0ZXJhbCgpO1xuXG4gIC8vIEhvdyBtYW55IGVzY2FwZWQgYHt7e3tgIGFyZSBzdGlsbCB3YWl0aW5nIGZvciB0aGVpciBjbG9zaW5nIGB9fWAuIFRoZSBlc2NhcGVcbiAgLy8gZXhpc3RzIHNvIHBsdWdpbiBjb21tYW5kcyBjYW4gY2FycnkgR28gLyBIZWxtIC8gR2l0SHViLXN0eWxlIHRlbXBsYXRlc1xuICAvLyAoYGRvY2tlciBpbnNwZWN0IC1mICd7e3t7LlN0YXRlLlN0YXR1c319J2Ag4oaSIGB7ey5TdGF0ZS5TdGF0dXN9fWApLCBzbyB0aGVcbiAgLy8gYH19YCB0aGF0IGNsb3NlcyBhbiBlc2NhcGVkIG9wZW4gaXMgbGl0ZXJhbCB0ZXh0LiBBbiB1bm1hdGNoZWQgYH19YCBpc1xuICAvLyBzdGlsbCBhbiBlcnJvciwgd2hpY2gga2VlcHMgY2F0Y2hpbmcgYHsgeCB9fWAgdHlwb3MuXG4gIGxldCBlc2NhcGVkT3BlbiA9IDA7XG5cbiAgd2hpbGUgKGkgPCBzb3VyY2UubGVuZ3RoKSB7XG4gICAgLy8gRXNjYXBlOiBge3t7e2Ag4oaSIGxpdGVyYWwgYHt7YFxuICAgIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgne3t7eycsIGkpKSB7XG4gICAgICBhZHZhbmNlKDQpO1xuICAgICAgZXNjYXBlZE9wZW4rKztcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyBFeHByZXNzaW9uIHN0YXJ0XG4gICAgaWYgKHNvdXJjZS5zdGFydHNXaXRoKCd7eycsIGkpKSB7XG4gICAgICBmbHVzaExpdGVyYWwoaSk7XG4gICAgICBjb25zdCBleHByUG9zOiBTb3VyY2VQb3NpdGlvbiA9IHsgbGluZSwgY29sIH07XG4gICAgICBhZHZhbmNlKDIpO1xuICAgICAgY29uc3QgZXhwciA9IHJlYWRFeHByZXNzaW9uKHNvdXJjZSwgaSwgbGluZSwgY29sKTtcbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAga2luZDogJ2V4cHInLFxuICAgICAgICBwYXRoOiBleHByLnBhdGgsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZXhwci5kZWZhdWx0VmFsdWUsXG4gICAgICAgIGNvZXJjZTogZXhwci5jb2VyY2UsXG4gICAgICAgIHNvdXJjZTogc291cmNlLnNsaWNlKGkgLSAyLCBleHByLmVuZElkeCksXG4gICAgICAgIHBvczogZXhwclBvcyxcbiAgICAgIH0pO1xuICAgICAgYWR2YW5jZShleHByLmVuZElkeCAtIGkpO1xuICAgICAgc3RhcnRMaXRlcmFsKCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgLy8gYH19YCBvdXRzaWRlIGFuIGV4cHJlc3Npb246IHRoZSBjbG9zZSBvZiBhbiBlc2NhcGVkIGB7e3t7YCwgb3IgYSBzdHJheS5cbiAgICBpZiAoc291cmNlLnN0YXJ0c1dpdGgoJ319JywgaSkpIHtcbiAgICAgIGlmIChlc2NhcGVkT3BlbiA+IDApIHtcbiAgICAgICAgZXNjYXBlZE9wZW4tLTtcbiAgICAgICAgYWR2YW5jZSgyKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoXCJVbmV4cGVjdGVkICd9fScgb3V0c2lkZSBleHByZXNzaW9uXCIsIHsgbGluZSwgY29sIH0pO1xuICAgIH1cbiAgICBhZHZhbmNlKDEpO1xuICB9XG5cbiAgZmx1c2hMaXRlcmFsKGkpO1xuICByZXR1cm4gdG9rZW5zO1xufVxuXG5pbnRlcmZhY2UgUGFyc2VkRXhwciB7XG4gIHBhdGg6IHN0cmluZ1tdO1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIGNvZXJjZT86IENvZXJjZUtpbmQ7XG4gIGVuZElkeDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiByZWFkRXhwcmVzc2lvbihcbiAgc291cmNlOiBzdHJpbmcsXG4gIHN0YXJ0SWR4OiBudW1iZXIsXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuICBzdGFydENvbDogbnVtYmVyLFxuKTogUGFyc2VkRXhwciB7XG4gIGxldCBpID0gc3RhcnRJZHg7XG4gIGxldCBsaW5lID0gc3RhcnRMaW5lO1xuICBsZXQgY29sID0gc3RhcnRDb2w7XG5cbiAgY29uc3Qgc2tpcFdzID0gKCk6IHZvaWQgPT4ge1xuICAgIHdoaWxlIChpIDwgc291cmNlLmxlbmd0aCAmJiAoc291cmNlW2ldID09PSAnICcgfHwgc291cmNlW2ldID09PSAnXFx0JykpIHtcbiAgICAgIGkrKztcbiAgICAgIGNvbCsrO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZWFkSWRlbnRpZmllciA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHN0YXJ0SSA9IGk7XG4gICAgaWYgKGkgPj0gc291cmNlLmxlbmd0aCB8fCAhL1thLXpBLVpfXS8udGVzdChzb3VyY2VbaV0hKSkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgaWRlbnRpZmllciBpbnNpZGUgdGVtcGxhdGUgZXhwcmVzc2lvbicsXG4gICAgICAgIHsgbGluZSwgY29sIH0sXG4gICAgICApO1xuICAgIH1cbiAgICB3aGlsZSAoaSA8IHNvdXJjZS5sZW5ndGggJiYgL1thLXpBLVowLTlfXS8udGVzdChzb3VyY2VbaV0hKSkge1xuICAgICAgaSsrO1xuICAgICAgY29sKys7XG4gICAgfVxuICAgIGNvbnN0IGlkZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0SSwgaSk7XG4gICAgaWYgKGlkZW50Lmxlbmd0aCA+IE1BWF9JREVOVElGSUVSX0xFTkdUSCkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgICBgSWRlbnRpZmllciBleGNlZWRzIG1heCBsZW5ndGggb2YgJHtNQVhfSURFTlRJRklFUl9MRU5HVEh9YCxcbiAgICAgICAgeyBsaW5lLCBjb2w6IGNvbCAtIGlkZW50Lmxlbmd0aCB9LFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkZW50O1xuICB9O1xuXG4gIGNvbnN0IHJlYWRRdW90ZWQgPSAoKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBxdW90ZSA9IHNvdXJjZVtpXTtcbiAgICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoJ0V4cGVjdGVkIHF1b3RlZCBzdHJpbmcnLCB7IGxpbmUsIGNvbCB9KTtcbiAgICB9XG4gICAgaSsrOyBjb2wrKztcbiAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAoaSA8IHNvdXJjZS5sZW5ndGggJiYgc291cmNlW2ldICE9PSBxdW90ZSkge1xuICAgICAgaWYgKHNvdXJjZVtpXSA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBzb3VyY2VbaSArIDFdO1xuICAgICAgICBpZiAobmV4dCA9PT0gJ1xcXFwnIHx8IG5leHQgPT09IHF1b3RlKSB7XG4gICAgICAgICAgcGFydHMucHVzaChuZXh0KTtcbiAgICAgICAgICBpICs9IDI7XG4gICAgICAgICAgY29sICs9IDI7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGVzY2FwZSAnXFxcXCR7bmV4dCA/PyAnJ30nIGluIHF1b3RlZCBzdHJpbmdgLFxuICAgICAgICAgIHsgbGluZSwgY29sIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoc291cmNlW2ldID09PSAnXFxuJykge1xuICAgICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoJ1VudGVybWluYXRlZCBxdW90ZWQgc3RyaW5nJywgeyBsaW5lLCBjb2wgfSk7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHNvdXJjZVtpXSEpO1xuICAgICAgaSsrOyBjb2wrKztcbiAgICB9XG4gICAgaWYgKGkgPj0gc291cmNlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKCdVbnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZycsIHsgbGluZSwgY29sIH0pO1xuICAgIH1cbiAgICBpKys7IGNvbCsrOyAvLyBjb25zdW1lIGNsb3NpbmcgcXVvdGVcbiAgICByZXR1cm4gcGFydHMuam9pbignJyk7XG4gIH07XG5cbiAgc2tpcFdzKCk7XG4gIGNvbnN0IHBhdGg6IHN0cmluZ1tdID0gW3JlYWRJZGVudGlmaWVyKCldO1xuICB3aGlsZSAoaSA8IHNvdXJjZS5sZW5ndGggJiYgc291cmNlW2ldID09PSAnLicpIHtcbiAgICBpKys7IGNvbCsrO1xuICAgIHBhdGgucHVzaChyZWFkSWRlbnRpZmllcigpKTtcbiAgICBpZiAocGF0aC5sZW5ndGggPiBNQVhfUEFUSF9ERVBUSCkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuaXplckVycm9yKFxuICAgICAgICBgUGF0aCBkZXB0aCBleGNlZWRzIG1heCBvZiAke01BWF9QQVRIX0RFUFRIfWAsXG4gICAgICAgIHsgbGluZSwgY29sIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBza2lwV3MoKTtcblxuICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBjb2VyY2U6IENvZXJjZUtpbmQgfCB1bmRlZmluZWQ7XG5cbiAgLy8gRmlsdGVycyBjaGFpbjogYHwgZGVmYXVsdDogJ3gnIHwgbnVtYmVyYCwgYHwgYm9vbGAsIGB8IGpzb25gLCBldGMuXG4gIC8vIC0gYGRlZmF1bHRgIHRha2VzIGEgcXVvdGVkIGFyZ3VtZW50IOKAlCBhcHBsaWVkIGZpcnN0IChiZWZvcmUgY29lcmNpb24pXG4gIC8vIC0gYG51bWJlcmAsIGBib29sYCwgYGpzb25gIGFyZSBhcmd1bWVudC1sZXNzIGNvZXJjaW9uIGZpbHRlcnMg4oCUIGFwcGxpZWQgbGFzdFxuICB3aGlsZSAoc291cmNlW2ldID09PSAnfCcpIHtcbiAgICBpKys7IGNvbCsrO1xuICAgIHNraXBXcygpO1xuXG4gICAgaWYgKHNvdXJjZS5zdGFydHNXaXRoKCdkZWZhdWx0JywgaSkpIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoXCInZGVmYXVsdCcgZmlsdGVyIG1heSBvbmx5IGFwcGVhciBvbmNlXCIsIHsgbGluZSwgY29sIH0pO1xuICAgICAgfVxuICAgICAgaSArPSAnZGVmYXVsdCcubGVuZ3RoO1xuICAgICAgY29sICs9ICdkZWZhdWx0Jy5sZW5ndGg7XG4gICAgICBza2lwV3MoKTtcbiAgICAgIGlmIChzb3VyY2VbaV0gIT09ICc6Jykge1xuICAgICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoXCJFeHBlY3RlZCAnOicgYWZ0ZXIgJ2RlZmF1bHQnXCIsIHsgbGluZSwgY29sIH0pO1xuICAgICAgfVxuICAgICAgaSsrOyBjb2wrKztcbiAgICAgIHNraXBXcygpO1xuICAgICAgZGVmYXVsdFZhbHVlID0gcmVhZFF1b3RlZCgpO1xuICAgICAgc2tpcFdzKCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgbWF0Y2hlZENvZXJjZTogQ29lcmNlS2luZCB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3Qga2luZCBvZiBbJ251bWJlcicsICdib29sJywgJ2pzb24nXSBhcyBjb25zdCkge1xuICAgICAgaWYgKHNvdXJjZS5zdGFydHNXaXRoKGtpbmQsIGkpKSB7XG4gICAgICAgIC8vIEVuc3VyZSBpZGVudGlmaWVyIGJvdW5kYXJ5IOKAlCBgbnVtYmVyaXNoYCBtdXN0IG5vdCBtYXRjaCBgbnVtYmVyYFxuICAgICAgICBjb25zdCBuZXh0ID0gc291cmNlW2kgKyBraW5kLmxlbmd0aF07XG4gICAgICAgIGlmICghbmV4dCB8fCAhL1thLXpBLVowLTlfXS8udGVzdChuZXh0KSkge1xuICAgICAgICAgIG1hdGNoZWRDb2VyY2UgPSBraW5kO1xuICAgICAgICAgIGkgKz0ga2luZC5sZW5ndGg7XG4gICAgICAgICAgY29sICs9IGtpbmQubGVuZ3RoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFtYXRjaGVkQ29lcmNlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoXG4gICAgICAgIFwiVW5rbm93biBmaWx0ZXIg4oCUIHN1cHBvcnRlZDogJ2RlZmF1bHQnLCAnbnVtYmVyJywgJ2Jvb2wnLCAnanNvbidcIixcbiAgICAgICAgeyBsaW5lLCBjb2wgfSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChjb2VyY2UpIHtcbiAgICAgIHRocm93IG5ldyBUb2tlbml6ZXJFcnJvcignT25seSBvbmUgY29lcmNpb24gZmlsdGVyIGlzIGFsbG93ZWQgcGVyIGV4cHJlc3Npb24nLCB7IGxpbmUsIGNvbCB9KTtcbiAgICB9XG4gICAgY29lcmNlID0gbWF0Y2hlZENvZXJjZTtcbiAgICBza2lwV3MoKTtcbiAgfVxuXG4gIGlmICghc291cmNlLnN0YXJ0c1dpdGgoJ319JywgaSkpIHtcbiAgICB0aHJvdyBuZXcgVG9rZW5pemVyRXJyb3IoXCJFeHBlY3RlZCAnfX0nXCIsIHsgbGluZSwgY29sIH0pO1xuICB9XG4gIGkgKz0gMjtcbiAgcmV0dXJuIHsgcGF0aCwgZGVmYXVsdFZhbHVlLCBjb2VyY2UsIGVuZElkeDogaSB9O1xufVxuXG4vKipcbiAqIENvbnZlbmllbmNlOiByZXR1cm5zIHRydWUgaWYgdGhlIHNvdXJjZSBjb250YWlucyBhbnkgdGVtcGxhdGVzLlxuICogVXNlZCBhcyBhIGZhc3QtcGF0aCB0byBza2lwIHRva2VuaXphdGlvbiBmb3Igc3RyaW5ncyB0aGF0IGFyZSBvYnZpb3VzbHkgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RlbXBsYXRlKHNvdXJjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIE5vdCBjb21wbGV0ZWx5IGFjY3VyYXRlIChhIGxvbmUgYHt7e3tgIHdvdWxkIHJldHVybiB0cnVlKSBidXQgdGhhdCdzIGZpbmUg4oCUXG4gIC8vIHRva2VuaXplKCkgd2lsbCBwcm9kdWNlIGEgbGl0ZXJhbC1vbmx5IHRva2VuIGxpc3QgYW5kIHJvdW5kLXRyaXAgY29ycmVjdGx5LlxuICByZXR1cm4gc291cmNlLmluY2x1ZGVzKCd7eycpO1xufVxuIl19
@@ -85,4 +85,4 @@ function findCycle(start, graph, visited, path, remaining) {
85
85
  path.pop();
86
86
  return null;
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wby1zb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RvcG8tc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBY3RDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFpQjtJQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFDN0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFM0MsT0FBTztJQUNQLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELHNFQUFzRTtJQUN0RSxvRUFBb0U7SUFDcEUsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQ2pDLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RCLEtBQUssTUFBTSxHQUFHLElB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Q2IsS0FBK0IsRUFDL0IsT0FBb0IsRUFDcEIsSUFBYyxFQUNkLFNBQXNCO0lBRXRCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9Ob2RlIHtcbiAgLyoqIFVuaXF1ZSBrZXkgaWRlbnRpZnlpbmcgdGhpcyBub2RlIChlLmcuIHNvdXJjZSBmaWVsZCBwYXRoKSAqL1xuICBrZXk6IHN0cmluZztcbiAgLyoqIERlcGVuZGVuY3kga2V5cyB0aGF0IG11c3QgcmVzb2x2ZSBiZWZvcmUgdGhpcyBub2RlICovXG4gIGRlcHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9SZXN1bHQge1xuICBvcmRlcmVkOiBzdHJpbmdbXTtcbiAgY3ljbGVzOiBzdHJpbmdbXVtdO1xufVxuXG4vKipcbiAqIFRvcG9sb2dpY2FsbHkgc29ydCBhIHNldCBvZiBub2RlcyBieSB0aGVpciBkZWNsYXJlZCBkZXBlbmRlbmN5IGtleXMuXG4gKiBSZXR1cm5zIGBvcmRlcmVkYCBpbiByZXNvbHV0aW9uIG9yZGVyLCBwbHVzIGFueSBkZXRlY3RlZCBjeWNsZXMuXG4gKiBOb2RlcyB3aG9zZSBkZXBzIHJlZmVyZW5jZSBrZXlzIG5vdCBpbiB0aGUgbm9kZSBzZXQgYXJlIHRyZWF0ZWQgYXNcbiAqIGRlcGVuZGluZyBvbiBcImV4dGVybmFsXCIgdmFsdWVzIGFuZCBvcmRlcmVkIGZpcnN0IChubyBjeWNsZSByaXNrKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9Tb3J0KG5vZGVzOiBUb3BvTm9kZVtdKTogVG9wb1Jlc3VsdCB7XG4gIGNvbnN0IGtleXMgPSBuZXcgU2V0KG5vZGVzLm1hcChuID0+IG4ua2V5KSk7XG4gIGNvbnN0IGdyYXBoID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuICBjb25zdCBpbkRlZ3JlZSA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgLy8gSW5pdFxuICBmb3IgKGNvbnN0IG4gb2Ygbm9kZXMpIHtcbiAgICBncmFwaC5zZXQobi5rZXksIG5ldyBTZXQoKSk7XG4gICAgaW5EZWdyZWUuc2V0KG4ua2V5LCAwKTtcbiAgfVxuXG4gIC8vIFNlbGYtbG9vcHMgc2hvcnQtY2lyY3VpdCDigJQgZGV0ZWN0ZWQgYmVmb3JlIHRvcG8tc29ydCBzbyBzaW5nbGUtbm9kZVxuICAvLyBjeWNsZXMgYXJlIHJlcG9ydGVkIGV2ZW4gd2hlbiBLYWhuJ3Mgd291bGQgb3RoZXJ3aXNlIGFjY2VwdCB0aGVtLlxuICBjb25zdCBzZWxmTG9vcHM6IHN0cmluZ1tdW10gPSBbXTtcbiAgZm9yIChjb25zdCBuIG9mIG5vZGVzKSB7XG4gICAgaWYgKG4uZGVwcy5pbmNsdWRlcyhuLmtleSkpIHNlbGZMb29wcy5wdXNoKFtuLmtleSwgbi5rZXldKTtcbiAgfVxuXG4gIC8vIEVkZ2VzIG9ubHkgYmV0d2VlbiBpbnRlcm5hbCBub2RlcyAoZXh0ZXJuYWwgZGVwcyByZXNvbHZlIGJlZm9yZSBwYXNzIHN0YXJ0cylcbiAgZm9yIChjb25zdCBuIG9mIG5vZGVzKSB7XG4gICAgZm9yIChjb25zdCBkZXAgb2Ygbi5kZXBzKSB7XG4gICAgICBpZiAoIWtleXMuaGFzKGRlcCkpIGNvbnRpbnVlO1xuICAgICAgaWYgKGRlcCA9PT0gbi5rZXkpIGNvbnRpbnVlOyAvLyBzZWxmLWRlcCDihpIgYWxyZWFkeSBjYXB0dXJlZCBhYm92ZVxuICAgICAgLy8gRWRnZTogZGVwIC0+IG4ua2V5IChkZXAgbXVzdCBjb21lIGZpcnN0KVxuICAgICAgaWYgKCFncmFwaC5nZXQoZGVwKSEuaGFzKG4ua2V5KSkge1xuICAgICAgICBncmFwaC5nZXQoZGVwKSEuYWRkKG4ua2V5KTtcbiAgICAgICAgaW5EZWdyZWUuc2V0KG4ua2V5LCAoaW5EZWdyZWUuZ2V0KG4ua2V5KSA/PyAwKSArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEthaG4ncyBhbGdvcml0aG1cbiAgY29uc3Qgb3JkZXJlZDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgcXVldWU6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgW2ssIGRdIG9mIGluRGVncmVlKSBpZiAoZCA9PT0gMCkgcXVldWUucHVzaChrKTtcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCkge1xuICAgIGNvbnN0IGsgPSBxdWV1ZS5zaGlmdCgpITtcbiAgICBvcmRlcmVkLnB1c2goayk7XG4gICAgZm9yIChjb25zdCBuZXh0IG9mIGdyYXBoLmdldChrKSA/PyBbXSkge1xuICAgICAgY29uc3QgZCA9IChpbkRlZ3JlZS5nZXQobmV4dCkgPz8gMCkgLSAxO1xuICAgICAgaW5EZWdyZWUuc2V0KG5leHQsIGQpO1xuICAgICAgaWYgKGQgPT09IDApIHF1ZXVlLnB1c2gobmV4dCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGV0ZWN0IGN5Y2xlczogYW55IG5vZGUgbm90IGluIGBvcmRlcmVkYCBpcyBwYXJ0IG9mIGEgY3ljbGVcbiAgY29uc3QgY3ljbGVzOiBzdHJpbmdbXVtdID0gWy4uLnNlbGZMb29wc107XG4gIGlmIChvcmRlcmVkLmxlbmd0aCA8IG5vZGVzLmxlbmd0aCkge1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IG5ldyBTZXQobm9kZXMubWFwKG4gPT4gbi5rZXkpLmZpbHRlcihrID0+ICFvcmRlcmVkLmluY2x1ZGVzKGspKSk7XG4gICAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3Qgc3RhcnQgb2YgcmVtYWluaW5nKSB7XG4gICAgICBpZiAodmlzaXRlZC5oYXMoc3RhcnQpKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZ1tdID0gW107XG4gICAgICBjb25zdCBjeWNsZSA9IGZpbmRDeWNsZShzdGFydCwgZ3JhcGgsIHZpc2l0ZWQsIHBhdGgsIHJlbWFpbmluZyk7XG4gICAgICBpZiAoY3ljbGUpIGN5Y2xlcy5wdXNoKGN5Y2xlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcmRlcmVkLCBjeWNsZXMgfTtcbn1cblxuZnVuY3Rpb24gZmluZEN5Y2xlKFxuICBzdGFydDogc3RyaW5nLFxuICBncmFwaDogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+LFxuICB2aXNpdGVkOiBTZXQ8c3RyaW5nPixcbiAgcGF0aDogc3RyaW5nW10sXG4gIHJlbWFpbmluZzogU2V0PHN0cmluZz4sXG4pOiBzdHJpbmdbXSB8IG51bGwge1xuICBpZiAocGF0aC5pbmNsdWRlcyhzdGFydCkpIHtcbiAgICBjb25zdCBpZHggPSBwYXRoLmluZGV4T2Yoc3RhcnQpO1xuICAgIHJldHVybiBbLi4ucGF0aC5zbGljZShpZHgpLCBzdGFydF07XG4gIH1cbiAgaWYgKHZpc2l0ZWQuaGFzKHN0YXJ0KSB8fCAhcmVtYWluaW5nLmhhcyhzdGFydCkpIHJldHVybiBudWxsO1xuICB2aXNpdGVkLmFkZChzdGFydCk7XG4gIHBhdGgucHVzaChzdGFydCk7XG4gIGZvciAoY29uc3QgbmV4dCBvZiBncmFwaC5nZXQoc3RhcnQpID8/IFtdKSB7XG4gICAgY29uc3QgY3ljbGUgPSBmaW5kQ3ljbGUobmV4dCwgZ3JhcGgsIHZpc2l0ZWQsIHBhdGgsIHJlbWFpbmluZyk7XG4gICAgaWYgKGN5Y2xlKSByZXR1cm4gY3ljbGU7XG4gIH1cbiAgcGF0aC5wb3AoKTtcbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wby1zb3J0LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdG9wby1zb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFjdEM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWlCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUUzQyxPQUFPO0lBQ1AsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLG9FQUFvRTtJQUNwRSxNQUFNLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDakMsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFB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QUFvQixFQUNwQixJQUFjLEVBQ2QsU0FBc0I7SUFFdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzdELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRCxJQUFJLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9wb05vZGUge1xuICAvKiogVW5pcXVlIGtleSBpZGVudGlmeWluZyB0aGlzIG5vZGUgKGUuZy4gc291cmNlIGZpZWxkIHBhdGgpICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogRGVwZW5kZW5jeSBrZXlzIHRoYXQgbXVzdCByZXNvbHZlIGJlZm9yZSB0aGlzIG5vZGUgKi9cbiAgZGVwczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9wb1Jlc3VsdCB7XG4gIG9yZGVyZWQ6IHN0cmluZ1tdO1xuICBjeWNsZXM6IHN0cmluZ1tdW107XG59XG5cbi8qKlxuICogVG9wb2xvZ2ljYWxseSBzb3J0IGEgc2V0IG9mIG5vZGVzIGJ5IHRoZWlyIGRlY2xhcmVkIGRlcGVuZGVuY3kga2V5cy5cbiAqIFJldHVybnMgYG9yZGVyZWRgIGluIHJlc29sdXRpb24gb3JkZXIsIHBsdXMgYW55IGRldGVjdGVkIGN5Y2xlcy5cbiAqIE5vZGVzIHdob3NlIGRlcHMgcmVmZXJlbmNlIGtleXMgbm90IGluIHRoZSBub2RlIHNldCBhcmUgdHJlYXRlZCBhc1xuICogZGVwZW5kaW5nIG9uIFwiZXh0ZXJuYWxcIiB2YWx1ZXMgYW5kIG9yZGVyZWQgZmlyc3QgKG5vIGN5Y2xlIHJpc2spLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9wb1NvcnQobm9kZXM6IFRvcG9Ob2RlW10pOiBUb3BvUmVzdWx0IHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQobm9kZXMubWFwKG4gPT4gbi5rZXkpKTtcbiAgY29uc3QgZ3JhcGggPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG4gIGNvbnN0IGluRGVncmVlID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAvLyBJbml0XG4gIGZvciAoY29uc3QgbiBvZiBub2Rlcykge1xuICAgIGdyYXBoLnNldChuLmtleSwgbmV3IFNldCgpKTtcbiAgICBpbkRlZ3JlZS5zZXQobi5rZXksIDApO1xuICB9XG5cbiAgLy8gU2VsZi1sb29wcyBzaG9ydC1jaXJjdWl0IOKAlCBkZXRlY3RlZCBiZWZvcmUgdG9wby1zb3J0IHNvIHNpbmdsZS1ub2RlXG4gIC8vIGN5Y2xlcyBhcmUgcmVwb3J0ZWQgZXZlbiB3aGVuIEthaG4ncyB3b3VsZCBvdGhlcndpc2UgYWNjZXB0IHRoZW0uXG4gIGNvbnN0IHNlbGZMb29wczogc3RyaW5nW11bXSA9IFtdO1xuICBmb3IgKGNvbnN0IG4gb2Ygbm9kZXMpIHtcbiAgICBpZiAobi5kZXBzLmluY2x1ZGVzKG4ua2V5KSkgc2VsZkxvb3BzLnB1c2goW24ua2V5LCBuLmtleV0pO1xuICB9XG5cbiAgLy8gRWRnZXMgb25seSBiZXR3ZWVuIGludGVybmFsIG5vZGVzIChleHRlcm5hbCBkZXBzIHJlc29sdmUgYmVmb3JlIHBhc3Mgc3RhcnRzKVxuICBmb3IgKGNvbnN0IG4gb2Ygbm9kZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBuLmRlcHMpIHtcbiAgICAgIGlmICgha2V5cy5oYXMoZGVwKSkgY29udGludWU7XG4gICAgICBpZiAoZGVwID09PSBuLmtleSkgY29udGludWU7IC8vIHNlbGYtZGVwIOKGkiBhbHJlYWR5IGNhcHR1cmVkIGFib3ZlXG4gICAgICAvLyBFZGdlOiBkZXAgLT4gbi5rZXkgKGRlcCBtdXN0IGNvbWUgZmlyc3QpXG4gICAgICBpZiAoIWdyYXBoLmdldChkZXApIS5oYXMobi5rZXkpKSB7XG4gICAgICAgIGdyYXBoLmdldChkZXApIS5hZGQobi5rZXkpO1xuICAgICAgICBpbkRlZ3JlZS5zZXQobi5rZXksIChpbkRlZ3JlZS5nZXQobi5rZXkpID8/IDApICsgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gS2FobidzIGFsZ29yaXRobVxuICBjb25zdCBvcmRlcmVkOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBxdWV1ZTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBbaywgZF0gb2YgaW5EZWdyZWUpIGlmIChkID09PSAwKSBxdWV1ZS5wdXNoKGspO1xuICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgY29uc3QgayA9IHF1ZXVlLnNoaWZ0KCkhO1xuICAgIG9yZGVyZWQucHVzaChrKTtcbiAgICBmb3IgKGNvbnN0IG5leHQgb2YgZ3JhcGguZ2V0KGspID8/IFtdKSB7XG4gICAgICBjb25zdCBkID0gKGluRGVncmVlLmdldChuZXh0KSA/PyAwKSAtIDE7XG4gICAgICBpbkRlZ3JlZS5zZXQobmV4dCwgZCk7XG4gICAgICBpZiAoZCA9PT0gMCkgcXVldWUucHVzaChuZXh0KTtcbiAgICB9XG4gIH1cblxuICAvLyBEZXRlY3QgY3ljbGVzOiBhbnkgbm9kZSBub3QgaW4gYG9yZGVyZWRgIGlzIHBhcnQgb2YgYSBjeWNsZVxuICBjb25zdCBjeWNsZXM6IHN0cmluZ1tdW10gPSBbLi4uc2VsZkxvb3BzXTtcbiAgaWYgKG9yZGVyZWQubGVuZ3RoIDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gbmV3IFNldChub2Rlcy5tYXAobiA9PiBuLmtleSkuZmlsdGVyKGsgPT4gIW9yZGVyZWQuaW5jbHVkZXMoaykpKTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBzdGFydCBvZiByZW1haW5pbmcpIHtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhzdGFydCkpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nW10gPSBbXTtcbiAgICAgIGNvbnN0IGN5Y2xlID0gZmluZEN5Y2xlKHN0YXJ0LCBncmFwaCwgdmlzaXRlZCwgcGF0aCwgcmVtYWluaW5nKTtcbiAgICAgIGlmIChjeWNsZSkgY3ljbGVzLnB1c2goY3ljbGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG9yZGVyZWQsIGN5Y2xlcyB9O1xufVxuXG5mdW5jdGlvbiBmaW5kQ3ljbGUoXG4gIHN0YXJ0OiBzdHJpbmcsXG4gIGdyYXBoOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sXG4gIHZpc2l0ZWQ6IFNldDxzdHJpbmc+LFxuICBwYXRoOiBzdHJpbmdbXSxcbiAgcmVtYWluaW5nOiBTZXQ8c3RyaW5nPixcbik6IHN0cmluZ1tdIHwgbnVsbCB7XG4gIGlmIChwYXRoLmluY2x1ZGVzKHN0YXJ0KSkge1xuICAgIGNvbnN0IGlkeCA9IHBhdGguaW5kZXhPZihzdGFydCk7XG4gICAgcmV0dXJuIFsuLi5wYXRoLnNsaWNlKGlkeCksIHN0YXJ0XTtcbiAgfVxuICBpZiAodmlzaXRlZC5oYXMoc3RhcnQpIHx8ICFyZW1haW5pbmcuaGFzKHN0YXJ0KSkgcmV0dXJuIG51bGw7XG4gIHZpc2l0ZWQuYWRkKHN0YXJ0KTtcbiAgcGF0aC5wdXNoKHN0YXJ0KTtcbiAgZm9yIChjb25zdCBuZXh0IG9mIGdyYXBoLmdldChzdGFydCkgPz8gW10pIHtcbiAgICBjb25zdCBjeWNsZSA9IGZpbmRDeWNsZShuZXh0LCBncmFwaCwgdmlzaXRlZCwgcGF0aCwgcmVtYWluaW5nKTtcbiAgICBpZiAoY3ljbGUpIHJldHVybiBjeWNsZTtcbiAgfVxuICBwYXRoLnBvcCgpO1xuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==