@angular/compiler-cli 10.0.6 → 10.0.10

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 (85) hide show
  1. package/ngcc/src/analysis/ngcc_trait_compiler.js +2 -1
  2. package/ngcc/src/host/esm2015_host.js +10 -4
  3. package/ngcc/src/host/esm5_host.d.ts +118 -0
  4. package/ngcc/src/host/esm5_host.js +210 -123
  5. package/ngcc/src/packages/build_marker.d.ts +1 -1
  6. package/ngcc/src/packages/build_marker.js +1 -1
  7. package/package.json +2 -2
  8. package/src/main.js +1 -2
  9. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  10. package/src/ngtsc/annotations/src/component.js +3 -3
  11. package/src/ngtsc/annotations/src/diagnostics.js +2 -2
  12. package/src/ngtsc/annotations/src/metadata.js +3 -3
  13. package/src/ngtsc/annotations/src/ng_module.js +6 -6
  14. package/src/ngtsc/annotations/src/util.d.ts +4 -8
  15. package/src/ngtsc/annotations/src/util.js +73 -22
  16. package/src/ngtsc/core/src/compiler.d.ts +2 -1
  17. package/src/ngtsc/core/src/compiler.js +8 -9
  18. package/src/ngtsc/diagnostics/index.d.ts +1 -1
  19. package/src/ngtsc/diagnostics/index.js +2 -1
  20. package/src/ngtsc/diagnostics/src/error.d.ts +5 -6
  21. package/src/ngtsc/diagnostics/src/error.js +20 -20
  22. package/src/ngtsc/diagnostics/src/error_code.d.ts +10 -0
  23. package/src/ngtsc/diagnostics/src/error_code.js +11 -1
  24. package/src/ngtsc/imports/src/core.js +2 -1
  25. package/src/ngtsc/incremental/api.d.ts +12 -7
  26. package/src/ngtsc/incremental/api.js +1 -1
  27. package/src/ngtsc/incremental/src/noop.js +2 -1
  28. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  29. package/src/ngtsc/incremental/src/state.js +1 -1
  30. package/src/ngtsc/program.d.ts +2 -1
  31. package/src/ngtsc/program.js +1 -1
  32. package/src/ngtsc/reflection/src/host.d.ts +110 -25
  33. package/src/ngtsc/reflection/src/host.js +1 -1
  34. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  35. package/src/ngtsc/reflection/src/type_to_value.js +62 -11
  36. package/src/ngtsc/reflection/src/typescript.js +1 -4
  37. package/src/ngtsc/scope/src/local.js +4 -4
  38. package/src/ngtsc/shims/api.d.ts +6 -2
  39. package/src/ngtsc/shims/api.js +1 -1
  40. package/src/ngtsc/shims/src/factory_generator.d.ts +2 -2
  41. package/src/ngtsc/shims/src/factory_generator.js +58 -9
  42. package/src/ngtsc/transform/src/api.d.ts +1 -1
  43. package/src/ngtsc/transform/src/api.js +1 -1
  44. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  45. package/src/ngtsc/transform/src/compilation.js +1 -1
  46. package/src/ngtsc/transform/src/transform.js +2 -2
  47. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  48. package/src/ngtsc/tsc_plugin.js +1 -1
  49. package/src/ngtsc/typecheck/{src → api}/api.d.ts +25 -2
  50. package/src/ngtsc/typecheck/{src → api}/api.js +2 -2
  51. package/src/ngtsc/typecheck/api/checker.d.ts +91 -0
  52. package/src/ngtsc/typecheck/api/checker.js +44 -0
  53. package/src/ngtsc/typecheck/api/context.d.ts +44 -0
  54. package/src/ngtsc/typecheck/api/context.js +20 -0
  55. package/src/ngtsc/typecheck/api/index.d.ts +11 -0
  56. package/src/ngtsc/typecheck/api/index.js +24 -0
  57. package/src/ngtsc/typecheck/index.d.ts +4 -5
  58. package/src/ngtsc/typecheck/index.js +6 -8
  59. package/src/ngtsc/typecheck/src/augmented_program.d.ts +3 -1
  60. package/src/ngtsc/typecheck/src/augmented_program.js +9 -3
  61. package/src/ngtsc/typecheck/src/checker.d.ts +63 -18
  62. package/src/ngtsc/typecheck/src/checker.js +394 -62
  63. package/src/ngtsc/typecheck/src/context.d.ts +76 -55
  64. package/src/ngtsc/typecheck/src/context.js +111 -67
  65. package/src/ngtsc/typecheck/src/diagnostics.d.ts +9 -3
  66. package/src/ngtsc/typecheck/src/diagnostics.js +28 -5
  67. package/src/ngtsc/typecheck/src/dom.d.ts +4 -5
  68. package/src/ngtsc/typecheck/src/dom.js +3 -3
  69. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  70. package/src/ngtsc/typecheck/src/environment.js +1 -1
  71. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  72. package/src/ngtsc/typecheck/src/expression.js +2 -2
  73. package/src/ngtsc/typecheck/src/oob.d.ts +9 -5
  74. package/src/ngtsc/typecheck/src/oob.js +25 -6
  75. package/src/ngtsc/typecheck/src/source.d.ts +4 -3
  76. package/src/ngtsc/typecheck/src/source.js +20 -4
  77. package/src/ngtsc/typecheck/src/template_semantics.d.ts +1 -1
  78. package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
  79. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  80. package/src/ngtsc/typecheck/src/type_check_block.js +1 -1
  81. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  82. package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
  83. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  84. package/src/ngtsc/typecheck/src/type_constructor.js +1 -1
  85. package/src/version.js +1 -1
@@ -10,7 +10,7 @@ import * as ts from 'typescript';
10
10
  import { AbsoluteFsPath } from '../../file_system';
11
11
  import { Reference, ReferenceEmitter } from '../../imports';
12
12
  import { ClassDeclaration, ReflectionHost } from '../../reflection';
13
- import { TypeCheckBlockMetadata, TypeCheckingConfig } from './api';
13
+ import { TypeCheckBlockMetadata, TypeCheckingConfig } from '../api';
14
14
  import { DomSchemaChecker } from './dom';
15
15
  import { Environment } from './environment';
16
16
  import { OutOfBandDiagnosticRecorder } from './oob';
@@ -125,4 +125,4 @@
125
125
  }
126
126
  exports.typeCheckFilePath = typeCheckFilePath;
127
127
  });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9jaGVja19maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svc3JjL3R5cGVfY2hlY2tfZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsK0JBQWlDO0lBRWpDLDJFQUF1RDtJQUN2RCxtRUFBOEU7SUFFOUUseUVBQStDO0lBSS9DLHlGQUEwQztJQUUxQyxtR0FBMEQ7SUFJMUQ7Ozs7Ozs7T0FPRztJQUNIO1FBQW1DLHlDQUFXO1FBSTVDLHVCQUNhLFFBQXdCLEVBQUUsTUFBMEIsRUFBRSxVQUE0QixFQUMzRixTQUF5QixFQUFFLFlBQTJEO1lBRjFGLFlBR0Usa0JBQ0ksTUFBTSxFQUFFLElBQUksMEJBQWEsQ0FBQyxJQUFJLDRCQUFrQixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFDL0UsRUFBRSxDQUFDLGdCQUFnQixDQUNmLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FDeEY7WUFOWSxjQUFRLEdBQVIsUUFBUSxDQUFnQjtZQUo3QixlQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsbUJBQWEsR0FBbUIsRUFBRSxDQUFDOztRQVMzQyxDQUFDO1FBRUQseUNBQWlCLEdBQWpCLFVBQ0ksR0FBcUQsRUFBRSxJQUE0QixFQUNuRixnQkFBa0MsRUFBRSxXQUF3QztZQUM5RSxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBTyxJQUFJLENBQUMsU0FBUyxFQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFNLEVBQUUsR0FBRyx5Q0FBc0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUks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cHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIGpvaW59IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Tm9vcEltcG9ydFJld3JpdGVyLCBSZWZlcmVuY2UsIFJlZmVyZW5jZUVtaXR0ZXJ9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge0ltcG9ydE1hbmFnZXJ9IGZyb20gJy4uLy4uL3RyYW5zbGF0b3InO1xuXG5pbXBvcnQge1R5cGVDaGVja0Jsb2NrTWV0YWRhdGEsIFR5cGVDaGVja2luZ0NvbmZpZ30gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtEb21TY2hlbWFDaGVja2VyfSBmcm9tICcuL2RvbSc7XG5pbXBvcnQge0Vudmlyb25tZW50fSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7T3V0T2ZCYW5kRGlhZ25vc3RpY1JlY29yZGVyfSBmcm9tICcuL29vYic7XG5pbXBvcnQge2dlbmVyYXRlVHlwZUNoZWNrQmxvY2t9IGZyb20gJy4vdHlwZV9jaGVja19ibG9jayc7XG5cblxuXG4vKipcbiAqIEFuIGBFbnZpcm9ubWVudGAgcmVwcmVzZW50aW5nIHRoZSBzaW5nbGUgdHlwZS1jaGVja2luZyBmaWxlIGludG8gd2hpY2ggbW9zdCAoaWYgbm90IGFsbCkgVHlwZVxuICogQ2hlY2sgQmxvY2tzIChUQ0JzKSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAqXG4gKiBUaGUgYFR5cGVDaGVja0ZpbGVgIGhvc3RzIG11bHRpcGxlIFRDQnMgYW5kIGFsbG93cyB0aGUgc2hhcmluZyBvZiBkZWNsYXJhdGlvbnMgKGUuZy4gdHlwZVxuICogY29uc3RydWN0b3JzKSBiZXR3ZWVuIHRoZW0uIFJhdGhlciB0aGFuIHJldHVybiBzdWNoIGRlY2xhcmF0aW9ucyB2aWEgYGdldFByZWx1ZGVTdGF0ZW1lbnRzKClgLCBpdFxuICogaG9pc3RzIHRoZW0gdG8gdGhlIHRvcCBvZiB0aGUgZ2VuZXJhdGVkIGB0cy5Tb3VyY2VGaWxlYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVDaGVja0ZpbGUgZXh0ZW5kcyBFbnZpcm9ubWVudCB7XG4gIHByaXZhdGUgbmV4dFRjYklkID0gMTtcbiAgcHJpdmF0ZSB0Y2JTdGF0ZW1lbnRzOiB0cy5TdGF0ZW1lbnRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcmVhZG9ubHkgZmlsZU5hbWU6IEFic29sdXRlRnNQYXRoLCBjb25maWc6IFR5cGVDaGVja2luZ0NvbmZpZywgcmVmRW1pdHRlcjogUmVmZXJlbmNlRW1pdHRlcixcbiAgICAgIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QsIGNvbXBpbGVySG9zdDogUGljazx0cy5Db21waWxlckhvc3QsICdnZXRDYW5vbmljYWxGaWxlTmFtZSc+KSB7XG4gICAgc3VwZXIoXG4gICAgICAgIGNvbmZpZywgbmV3IEltcG9ydE1hbmFnZXIobmV3IE5vb3BJbXBvcnRSZXdyaXRlcigpLCAnaScpLCByZWZFbWl0dGVyLCByZWZsZWN0b3IsXG4gICAgICAgIHRzLmNyZWF0ZVNvdXJjZUZpbGUoXG4gICAgICAgICAgICBjb21waWxlckhvc3QuZ2V0Q2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWUpLCAnJywgdHMuU2NyaXB0VGFyZ2V0LkxhdGVzdCwgdHJ1ZSkpO1xuICB9XG5cbiAgYWRkVHlwZUNoZWNrQmxvY2soXG4gICAgICByZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPHRzLkNsYXNzRGVjbGFyYXRpb24+PiwgbWV0YTogVHlwZUNoZWNrQmxvY2tNZXRhZGF0YSxcbiAgICAgIGRvbVNjaGVtYUNoZWNrZXI6IERvbVNjaGVtYUNoZWNrZXIsIG9vYlJlY29yZGVyOiBPdXRPZkJhbmREaWFnbm9zdGljUmVjb3JkZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmbklkID0gdHMuY3JlYXRlSWRlbnRpZmllcihgX3RjYiR7dGhpcy5uZXh0VGNiSWQrK31gKTtcbiAgICBjb25zdCBmbiA9IGdlbmVyYXRlVHlwZUNoZWNrQmxvY2sodGhpcywgcmVmLCBmbklkLCBtZXRhLCBkb21TY2hlbWFDaGVja2VyLCBvb2JSZWNvcmRlcik7XG4gICAgdGhpcy50Y2JTdGF0ZW1lbnRzLnB1c2goZm4pO1xuICB9XG5cbiAgcmVuZGVyKCk6IHN0cmluZyB7XG4gICAgbGV0IHNvdXJjZTogc3RyaW5nID0gdGhpcy5pbXBvcnRNYW5hZ2VyLmdldEFsbEltcG9ydHModGhpcy5jb250ZXh0RmlsZS5maWxlTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChpID0+IGBpbXBvcnQgKiBhcyAke2kucXVhbGlmaWVyfSBmcm9tICcke2kuc3BlY2lmaWVyfSc7YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpICtcbiAgICAgICAgJ1xcblxcbic7XG4gICAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcbiAgICBzb3VyY2UgKz0gJ1xcbic7XG4gICAgZm9yIChjb25zdCBzdG10IG9mIHRoaXMuaGVscGVyU3RhdGVtZW50cykge1xuICAgICAgc291cmNlICs9IHByaW50ZXIucHJpbnROb2RlKHRzLkVtaXRIaW50LlVuc3BlY2lmaWVkLCBzdG10LCB0aGlzLmNvbnRleHRGaWxlKSArICdcXG4nO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0bXQgb2YgdGhpcy5waXBlSW5zdFN0YXRlbWVudHMpIHtcbiAgICAgIHNvdXJjZSArPSBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgc3RtdCwgdGhpcy5jb250ZXh0RmlsZSkgKyAnXFxuJztcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdG10IG9mIHRoaXMudHlwZUN0b3JTdGF0ZW1lbnRzKSB7XG4gICAgICBzb3VyY2UgKz0gcHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIHN0bXQsIHRoaXMuY29udGV4dEZpbGUpICsgJ1xcbic7XG4gICAgfVxuICAgIHNvdXJjZSArPSAnXFxuJztcbiAgICBmb3IgKGNvbnN0IHN0bXQgb2YgdGhpcy50Y2JTdGF0ZW1lbnRzKSB7XG4gICAgICBzb3VyY2UgKz0gcHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIHN0bXQsIHRoaXMuY29udGV4dEZpbGUpICsgJ1xcbic7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoZSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIGZpbGUgaXMgYW4gRVMgbW9kdWxlLiBPdGhlcndpc2UsIGl0J3MgaW50ZXJwcmV0ZWQgYXMgc29tZVxuICAgIC8vIGtpbmQgb2YgZ2xvYmFsIG5hbWVzcGFjZSBpbiBUUywgd2hpY2ggZm9yY2VzIGEgZnVsbCByZS10eXBlY2hlY2sgb2YgdGhlIHVzZXIncyBwcm9ncmFtIHRoYXRcbiAgICAvLyBpcyBzb21laG93IG1vcmUgZXhwZW5zaXZlIHRoYW4gdGhlIGluaXRpYWwgcGFyc2UuXG4gICAgc291cmNlICs9ICdcXG5leHBvcnQgY29uc3QgSVNfQV9NT0RVTEUgPSB0cnVlO1xcbic7XG5cbiAgICByZXR1cm4gc291cmNlO1xuICB9XG5cbiAgZ2V0UHJlbHVkZVN0YXRlbWVudHMoKTogdHMuU3RhdGVtZW50W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZUNoZWNrRmlsZVBhdGgocm9vdERpcnM6IEFic29sdXRlRnNQYXRoW10pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gIGNvbnN0IHNob3J0ZXN0ID0gcm9vdERpcnMuY29uY2F0KFtdKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKVswXTtcbiAgcmV0dXJuIGpvaW4oc2hvcnRlc3QsICdfX25nX3R5cGVjaGVja19fLnRzJyk7XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9jaGVja19maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svc3JjL3R5cGVfY2hlY2tfZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsK0JBQWlDO0lBRWpDLDJFQUF1RDtJQUN2RCxtRUFBOEU7SUFFOUUseUVBQStDO0lBSS9DLHlGQUEwQztJQUUxQyxtR0FBMEQ7SUFJMUQ7Ozs7Ozs7T0FPRztJQUNIO1FBQW1DLHlDQUFXO1FBSTVDLHVCQUNhLFFBQXdCLEVBQUUsTUFBMEIsRUFBRSxVQUE0QixFQUMzRixTQUF5QixFQUFFLFlBQTJEO1lBRjFGLFlBR0Usa0JBQ0ksTUFBTSxFQUFFLElBQUksMEJBQWEsQ0FBQyxJQUFJLDRCQUFrQixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFDL0UsRUFBRSxDQUFDLGdCQUFnQixDQUNmLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FDeEY7WUFOWSxjQUFRLEdBQVIsUUFBUSxDQUFnQjtZQUo3QixlQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsbUJBQWEsR0FBbUIsRUFBRSxDQUFDOztRQVMzQyxDQUFDO1FBRUQseUNBQWlCLEdBQWpCLFVBQ0ksR0FBcUQsRUFBRSxJQUE0QixFQUNuRixnQkFBa0MsRUFBRSxXQUF3QztZQUM5RSxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBTyxJQUFJLENBQUMsU0FBUyxFQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFNLEVBQUUsR0FBRyx5Q0FBc0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUks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cHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIGpvaW59IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Tm9vcEltcG9ydFJld3JpdGVyLCBSZWZlcmVuY2UsIFJlZmVyZW5jZUVtaXR0ZXJ9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge0ltcG9ydE1hbmFnZXJ9IGZyb20gJy4uLy4uL3RyYW5zbGF0b3InO1xuaW1wb3J0IHtUeXBlQ2hlY2tCbG9ja01ldGFkYXRhLCBUeXBlQ2hlY2tpbmdDb25maWd9IGZyb20gJy4uL2FwaSc7XG5cbmltcG9ydCB7RG9tU2NoZW1hQ2hlY2tlcn0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHtFbnZpcm9ubWVudH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQge091dE9mQmFuZERpYWdub3N0aWNSZWNvcmRlcn0gZnJvbSAnLi9vb2InO1xuaW1wb3J0IHtnZW5lcmF0ZVR5cGVDaGVja0Jsb2NrfSBmcm9tICcuL3R5cGVfY2hlY2tfYmxvY2snO1xuXG5cblxuLyoqXG4gKiBBbiBgRW52aXJvbm1lbnRgIHJlcHJlc2VudGluZyB0aGUgc2luZ2xlIHR5cGUtY2hlY2tpbmcgZmlsZSBpbnRvIHdoaWNoIG1vc3QgKGlmIG5vdCBhbGwpIFR5cGVcbiAqIENoZWNrIEJsb2NrcyAoVENCcykgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gKlxuICogVGhlIGBUeXBlQ2hlY2tGaWxlYCBob3N0cyBtdWx0aXBsZSBUQ0JzIGFuZCBhbGxvd3MgdGhlIHNoYXJpbmcgb2YgZGVjbGFyYXRpb25zIChlLmcuIHR5cGVcbiAqIGNvbnN0cnVjdG9ycykgYmV0d2VlbiB0aGVtLiBSYXRoZXIgdGhhbiByZXR1cm4gc3VjaCBkZWNsYXJhdGlvbnMgdmlhIGBnZXRQcmVsdWRlU3RhdGVtZW50cygpYCwgaXRcbiAqIGhvaXN0cyB0aGVtIHRvIHRoZSB0b3Agb2YgdGhlIGdlbmVyYXRlZCBgdHMuU291cmNlRmlsZWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlQ2hlY2tGaWxlIGV4dGVuZHMgRW52aXJvbm1lbnQge1xuICBwcml2YXRlIG5leHRUY2JJZCA9IDE7XG4gIHByaXZhdGUgdGNiU3RhdGVtZW50czogdHMuU3RhdGVtZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBBYnNvbHV0ZUZzUGF0aCwgY29uZmlnOiBUeXBlQ2hlY2tpbmdDb25maWcsIHJlZkVtaXR0ZXI6IFJlZmVyZW5jZUVtaXR0ZXIsXG4gICAgICByZWZsZWN0b3I6IFJlZmxlY3Rpb25Ib3N0LCBjb21waWxlckhvc3Q6IFBpY2s8dHMuQ29tcGlsZXJIb3N0LCAnZ2V0Q2Fub25pY2FsRmlsZU5hbWUnPikge1xuICAgIHN1cGVyKFxuICAgICAgICBjb25maWcsIG5ldyBJbXBvcnRNYW5hZ2VyKG5ldyBOb29wSW1wb3J0UmV3cml0ZXIoKSwgJ2knKSwgcmVmRW1pdHRlciwgcmVmbGVjdG9yLFxuICAgICAgICB0cy5jcmVhdGVTb3VyY2VGaWxlKFxuICAgICAgICAgICAgY29tcGlsZXJIb3N0LmdldENhbm9uaWNhbEZpbGVOYW1lKGZpbGVOYW1lKSwgJycsIHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsIHRydWUpKTtcbiAgfVxuXG4gIGFkZFR5cGVDaGVja0Jsb2NrKFxuICAgICAgcmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPj4sIG1ldGE6IFR5cGVDaGVja0Jsb2NrTWV0YWRhdGEsXG4gICAgICBkb21TY2hlbWFDaGVja2VyOiBEb21TY2hlbWFDaGVja2VyLCBvb2JSZWNvcmRlcjogT3V0T2ZCYW5kRGlhZ25vc3RpY1JlY29yZGVyKTogdm9pZCB7XG4gICAgY29uc3QgZm5JZCA9IHRzLmNyZWF0ZUlkZW50aWZpZXIoYF90Y2Ike3RoaXMubmV4dFRjYklkKyt9YCk7XG4gICAgY29uc3QgZm4gPSBnZW5lcmF0ZVR5cGVDaGVja0Jsb2NrKHRoaXMsIHJlZiwgZm5JZCwgbWV0YSwgZG9tU2NoZW1hQ2hlY2tlciwgb29iUmVjb3JkZXIpO1xuICAgIHRoaXMudGNiU3RhdGVtZW50cy5wdXNoKGZuKTtcbiAgfVxuXG4gIHJlbmRlcigpOiBzdHJpbmcge1xuICAgIGxldCBzb3VyY2U6IHN0cmluZyA9IHRoaXMuaW1wb3J0TWFuYWdlci5nZXRBbGxJbXBvcnRzKHRoaXMuY29udGV4dEZpbGUuZmlsZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoaSA9PiBgaW1wb3J0ICogYXMgJHtpLnF1YWxpZmllcn0gZnJvbSAnJHtpLnNwZWNpZmllcn0nO2ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCdcXG4nKSArXG4gICAgICAgICdcXG5cXG4nO1xuICAgIGNvbnN0IHByaW50ZXIgPSB0cy5jcmVhdGVQcmludGVyKCk7XG4gICAgc291cmNlICs9ICdcXG4nO1xuICAgIGZvciAoY29uc3Qgc3RtdCBvZiB0aGlzLmhlbHBlclN0YXRlbWVudHMpIHtcbiAgICAgIHNvdXJjZSArPSBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgc3RtdCwgdGhpcy5jb250ZXh0RmlsZSkgKyAnXFxuJztcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdG10IG9mIHRoaXMucGlwZUluc3RTdGF0ZW1lbnRzKSB7XG4gICAgICBzb3VyY2UgKz0gcHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIHN0bXQsIHRoaXMuY29udGV4dEZpbGUpICsgJ1xcbic7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3RtdCBvZiB0aGlzLnR5cGVDdG9yU3RhdGVtZW50cykge1xuICAgICAgc291cmNlICs9IHByaW50ZXIucHJpbnROb2RlKHRzLkVtaXRIaW50LlVuc3BlY2lmaWVkLCBzdG10LCB0aGlzLmNvbnRleHRGaWxlKSArICdcXG4nO1xuICAgIH1cbiAgICBzb3VyY2UgKz0gJ1xcbic7XG4gICAgZm9yIChjb25zdCBzdG10IG9mIHRoaXMudGNiU3RhdGVtZW50cykge1xuICAgICAgc291cmNlICs9IHByaW50ZXIucHJpbnROb2RlKHRzLkVtaXRIaW50LlVuc3BlY2lmaWVkLCBzdG10LCB0aGlzLmNvbnRleHRGaWxlKSArICdcXG4nO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGUgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBmaWxlIGlzIGFuIEVTIG1vZHVsZS4gT3RoZXJ3aXNlLCBpdCdzIGludGVycHJldGVkIGFzIHNvbWVcbiAgICAvLyBraW5kIG9mIGdsb2JhbCBuYW1lc3BhY2UgaW4gVFMsIHdoaWNoIGZvcmNlcyBhIGZ1bGwgcmUtdHlwZWNoZWNrIG9mIHRoZSB1c2VyJ3MgcHJvZ3JhbSB0aGF0XG4gICAgLy8gaXMgc29tZWhvdyBtb3JlIGV4cGVuc2l2ZSB0aGFuIHRoZSBpbml0aWFsIHBhcnNlLlxuICAgIHNvdXJjZSArPSAnXFxuZXhwb3J0IGNvbnN0IElTX0FfTU9EVUxFID0gdHJ1ZTtcXG4nO1xuXG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGdldFByZWx1ZGVTdGF0ZW1lbnRzKCk6IHRzLlN0YXRlbWVudFtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVDaGVja0ZpbGVQYXRoKHJvb3REaXJzOiBBYnNvbHV0ZUZzUGF0aFtdKTogQWJzb2x1dGVGc1BhdGgge1xuICBjb25zdCBzaG9ydGVzdCA9IHJvb3REaXJzLmNvbmNhdChbXSkuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aClbMF07XG4gIHJldHVybiBqb2luKHNob3J0ZXN0LCAnX19uZ190eXBlY2hlY2tfXy50cycpO1xufVxuIl19
@@ -8,7 +8,7 @@
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/src/type_constructor" />
9
9
  import * as ts from 'typescript';
10
10
  import { ClassDeclaration, ReflectionHost } from '../../reflection';
11
- import { TypeCtorMetadata } from './api';
11
+ import { TypeCtorMetadata } from '../api';
12
12
  export declare function generateTypeCtorDeclarationFn(node: ClassDeclaration<ts.ClassDeclaration>, meta: TypeCtorMetadata, nodeTypeRef: ts.EntityName, typeParams: ts.TypeParameterDeclaration[] | undefined, reflector: ReflectionHost): ts.Statement;
13
13
  /**
14
14
  * Generate an inline type constructor for the given class and metadata.
@@ -256,4 +256,4 @@
256
256
  });
257
257
  }
258
258
  });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9jb25zdHJ1Y3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL3NyYy90eXBlX2NvbnN0cnVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFLakMsK0dBQThEO0lBRTlELFNBQWdCLDZCQUE2QixDQUN6QyxJQUEyQyxFQUFFLElBQXNCLEVBQUUsV0FBMEIsRUFDL0YsVUFBbUQsRUFBRSxTQUF5QjtRQUNoRixJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSx5Q0FBc0MsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsSUFBTSxXQUFXLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRixJQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXJFLElBQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEUsSUFBTSxjQUFjLEdBQUcsOEJBQThCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtZQUNwQyxvQkFBb0IsQ0FBQyxjQUFjO1lBQ25DLGdCQUFnQixDQUFBLENBQUMsU0FBUyxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLENBQUM7WUFFRixJQUFNLElBQUksR0FBRyxFQUFF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QUFJLDZDQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlDRztJQUNILFNBQVMsOEJBQThCLENBQUMsTUFDUztRQUMvQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLE9BQU8sRUFBRSxDQUFDLDhCQUE4QjtnQkFDcEMsVUFBVSxDQUFDLEtBQUs7Z0JBQ2hCLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDckIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQ2pDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDM0U7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cbmltcG9ydCB7VHlwZUN0b3JNZXRhZGF0YX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtUeXBlUGFyYW1ldGVyRW1pdHRlcn0gZnJvbSAnLi90eXBlX3BhcmFtZXRlcl9lbWl0dGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVHlwZUN0b3JEZWNsYXJhdGlvbkZuKFxuICAgIG5vZGU6IENsYXNzRGVjbGFyYXRpb248dHMuQ2xhc3NEZWNsYXJhdGlvbj4sIG1ldGE6IFR5cGVDdG9yTWV0YWRhdGEsIG5vZGVUeXBlUmVmOiB0cy5FbnRpdHlOYW1lLFxuICAgIHR5cGVQYXJhbXM6IHRzLlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbltdfHVuZGVmaW5lZCwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCk6IHRzLlN0YXRlbWVudCB7XG4gIGlmIChyZXF1aXJlc0lubGluZVR5cGVDdG9yKG5vZGUsIHJlZmxlY3RvcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bm9kZS5uYW1lLnRleHR9IHJlcXVpcmVzIGFuIGlubGluZSB0eXBlIGNvbnN0cnVjdG9yYCk7XG4gIH1cblxuICBjb25zdCByYXdUeXBlQXJncyA9IHR5cGVQYXJhbXMgIT09IHVuZGVmaW5lZCA/IGdlbmVyYXRlR2VuZXJpY0FyZ3ModHlwZVBhcmFtcykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHJhd1R5cGUgPSB0cy5jcmVhdGVUeXBlUmVmZXJlbmNlTm9kZShub2RlVHlwZVJlZiwgcmF3VHlwZUFyZ3MpO1xuXG4gIGNvbnN0IGluaXRQYXJhbSA9IGNvbnN0cnVjdFR5cGVDdG9yUGFyYW1ldGVyKG5vZGUsIG1ldGEsIHJhd1R5cGUpO1xuXG4gIGNvbnN0IHR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnNXaXRoRGVmYXVsdFR5cGVzKHR5cGVQYXJhbXMpO1xuXG4gIGlmIChtZXRhLmJvZHkpIHtcbiAgICBjb25zdCBmblR5cGUgPSB0cy5jcmVhdGVGdW5jdGlvblR5cGVOb2RlKFxuICAgICAgICAvKiB0eXBlUGFyYW1ldGVycyAqLyB0eXBlUGFyYW1ldGVycyxcbiAgICAgICAgLyogcGFyYW1ldGVycyAqL1tpbml0UGFyYW1dLFxuICAgICAgICAvKiB0eXBlICovIHJhd1R5cGUsXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY2wgPSB0cy5jcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uKFxuICAgICAgICAvKiBuYW1lICovIG1ldGEuZm5OYW1lLFxuICAgICAgICAvKiB0eXBlICovIGZuVHlwZSxcbiAgICAgICAgLyogYm9keSAqLyB0cy5jcmVhdGVOb25OdWxsRXhwcmVzc2lvbih0cy5jcmVhdGVOdWxsKCkpKTtcbiAgICBjb25zdCBkZWNsTGlzdCA9IHRzLmNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0KFtkZWNsXSwgdHMuTm9kZUZsYWdzLkNvbnN0KTtcbiAgICByZXR1cm4gdHMuY3JlYXRlVmFyaWFibGVTdGF0ZW1lbnQoXG4gICAgICAgIC8qIG1vZGlmaWVycyAqLyB1bmRlZmluZWQsXG4gICAgICAgIC8qIGRlY2xhcmF0aW9uTGlzdCAqLyBkZWNsTGlzdCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRzLmNyZWF0ZUZ1bmN0aW9uRGVjbGFyYXRpb24oXG4gICAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBtb2RpZmllcnMgKi9bdHMuY3JlYXRlTW9kaWZpZXIodHMuU3ludGF4S2luZC5EZWNsYXJlS2V5d29yZCldLFxuICAgICAgICAvKiBhc3Rlcmlza1Rva2VuICovIHVuZGVmaW5lZCxcbiAgICAgICAgLyogbmFtZSAqLyBtZXRhLmZuTmFtZSxcbiAgICAgICAgLyogdHlwZVBhcmFtZXRlcnMgKi8gdHlwZVBhcmFtZXRlcnMsXG4gICAgICAgIC8qIHBhcmFtZXRlcnMgKi9baW5pdFBhcmFtXSxcbiAgICAgICAgLyogdHlwZSAqLyByYXdUeXBlLFxuICAgICAgICAvKiBib2R5ICovIHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGdpdmVuIGNsYXNzIGFuZCBtZXRhZGF0YS5cbiAqXG4gKiBBbiBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvciBpcyBhIHNwZWNpYWxseSBzaGFwZWQgVHlwZVNjcmlwdCBzdGF0aWMgbWV0aG9kLCBpbnRlbmRlZCB0byBiZSBwbGFjZWRcbiAqIHdpdGhpbiBhIGRpcmVjdGl2ZSBjbGFzcyBpdHNlbGYsIHRoYXQgcGVybWl0cyB0eXBlIGluZmVyZW5jZSBvZiBhbnkgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcnMgb2ZcbiAqIHRoZSBjbGFzcyBmcm9tIHRoZSB0eXBlcyBvZiBleHByZXNzaW9ucyBib3VuZCB0byBpbnB1dHMgb3Igb3V0cHV0cywgYW5kIHRoZSB0eXBlcyBvZiBlbGVtZW50c1xuICogdGhhdCBtYXRjaCBxdWVyaWVzIHBlcmZvcm1lZCBieSB0aGUgZGlyZWN0aXZlLiBJdCBhbHNvIGNhdGNoZXMgYW55IGVycm9ycyBpbiB0aGUgdHlwZXMgb2YgdGhlc2VcbiAqIGV4cHJlc3Npb25zLiBUaGlzIG1ldGhvZCBpcyBuZXZlciBjYWxsZWQgYXQgcnVudGltZSwgYnV0IGlzIHVzZWQgaW4gdHlwZS1jaGVjayBibG9ja3MgdG9cbiAqIGNvbnN0cnVjdCBkaXJlY3RpdmUgdHlwZXMuXG4gKlxuICogQW4gaW5saW5lIHR5cGUgY29uc3RydWN0b3IgZm9yIE5nRm9yIGxvb2tzIGxpa2U6XG4gKlxuICogc3RhdGljIG5nVHlwZUN0b3I8VD4oaW5pdDogUGljazxOZ0Zvck9mPFQ+LCAnbmdGb3JPZid8J25nRm9yVHJhY2tCeSd8J25nRm9yVGVtcGxhdGUnPik6XG4gKiAgIE5nRm9yT2Y8VD47XG4gKlxuICogQSB0eXBpY2FsIGNvbnN0cnVjdG9yIHdvdWxkIGJlOlxuICpcbiAqIE5nRm9yT2YubmdUeXBlQ3Rvcihpbml0OiB7XG4gKiAgIG5nRm9yT2Y6IFsnZm9vJywgJ2JhciddLFxuICogICBuZ0ZvclRyYWNrQnk6IG51bGwgYXMgYW55LFxuICogICBuZ0ZvclRlbXBsYXRlOiBudWxsIGFzIGFueSxcbiAqIH0pOyAvLyBJbmZlcnMgYSB0eXBlIG9mIE5nRm9yT2Y8c3RyaW5nPi5cbiAqXG4gKiBBbnkgaW5wdXRzIGRlY2xhcmVkIG9uIHRoZSB0eXBlIGZvciB3aGljaCBubyBwcm9wZXJ0eSBiaW5kaW5nIGlzIHByZXNlbnQgYXJlIGFzc2lnbmVkIGEgdmFsdWUgb2ZcbiAqIHR5cGUgYGFueWAsIHRvIGF2b2lkIHByb2R1Y2luZyBhbnkgdHlwZSBlcnJvcnMgZm9yIHVuc2V0IGlucHV0cy5cbiAqXG4gKiBJbmxpbmUgdHlwZSBjb25zdHJ1Y3RvcnMgYXJlIHVzZWQgd2hlbiB0aGUgdHlwZSBiZWluZyBjcmVhdGVkIGhhcyBib3VuZGVkIGdlbmVyaWMgdHlwZXMgd2hpY2hcbiAqIG1ha2Ugd3JpdGluZyBhIGRlY2xhcmVkIHR5cGUgY29uc3RydWN0b3IgKHZpYSBgZ2VuZXJhdGVUeXBlQ3RvckRlY2xhcmF0aW9uRm5gKSBkaWZmaWN1bHQgb3JcbiAqIGltcG9zc2libGUuXG4gKlxuICogQHBhcmFtIG5vZGUgdGhlIGBDbGFzc0RlY2xhcmF0aW9uPHRzLkNsYXNzRGVjbGFyYXRpb24+YCBmb3Igd2hpY2ggYSB0eXBlIGNvbnN0cnVjdG9yIHdpbGwgYmVcbiAqIGdlbmVyYXRlZC5cbiAqIEBwYXJhbSBtZXRhIGFkZGl0aW9uYWwgbWV0YWRhdGEgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGUgY29uc3RydWN0b3IuXG4gKiBAcmV0dXJucyBhIGB0cy5NZXRob2REZWNsYXJhdGlvbmAgZm9yIHRoZSB0eXBlIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmxpbmVUeXBlQ3RvcihcbiAgICBub2RlOiBDbGFzc0RlY2xhcmF0aW9uPHRzLkNsYXNzRGVjbGFyYXRpb24+LCBtZXRhOiBUeXBlQ3Rvck1ldGFkYXRhKTogdHMuTWV0aG9kRGVjbGFyYXRpb24ge1xuICAvLyBCdWlsZCByYXdUeXBlLCBhIGB0cy5UeXBlTm9kZWAgb2YgdGhlIGNsYXNzIHdpdGggaXRzIGdlbmVyaWMgcGFyYW1ldGVycyBwYXNzZWQgdGhyb3VnaCBmcm9tXG4gIC8vIHRoZSBkZWZpbml0aW9uIHdpdGhvdXQgYW55IHR5cGUgYm91bmRzLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNsYXNzIGlzXG4gIC8vIGBGb29EaXJlY3RpdmU8VCBleHRlbmRzIEJhcj5gLCBpdHMgcmF3VHlwZSB3b3VsZCBiZSBgRm9vRGlyZWN0aXZlPFQ+YC5cbiAgY29uc3QgcmF3VHlwZUFyZ3MgPVxuICAgICAgbm9kZS50eXBlUGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkID8gZ2VuZXJhdGVHZW5lcmljQXJncyhub2RlLnR5cGVQYXJhbWV0ZXJzKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgcmF3VHlwZSA9IHRzLmNyZWF0ZVR5cGVSZWZlcmVuY2VOb2RlKG5vZGUubmFtZSwgcmF3VHlwZUFyZ3MpO1xuXG4gIGNvbnN0IGluaXRQYXJhbSA9IGNvbnN0cnVjdFR5cGVDdG9yUGFyYW1ldGVyKG5vZGUsIG1ldGEsIHJhd1R5cGUpO1xuXG4gIC8vIElmIHRoaXMgY29uc3RydWN0b3IgaXMgYmVpbmcgZ2VuZXJhdGVkIGludG8gYSAudHMgZmlsZSwgdGhlbiBpdCBuZWVkcyBhIGZha2UgYm9keS4gVGhlIGJvZHlcbiAgLy8gaXMgc2V0IHRvIGEgcmV0dXJuIG9mIGBudWxsIWAuIElmIHRoZSB0eXBlIGNvbnN0cnVjdG9yIGlzIGJlaW5nIGdlbmVyYXRlZCBpbnRvIGEgLmQudHMgZmlsZSxcbiAgLy8gaXQgbmVlZHMgbm8gYm9keS5cbiAgbGV0IGJvZHk6IHRzLkJsb2NrfHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgaWYgKG1ldGEuYm9keSkge1xuICAgIGJvZHkgPSB0cy5jcmVhdGVCbG9jayhbXG4gICAgICB0cy5jcmVhdGVSZXR1cm4odHMuY3JlYXRlTm9uTnVsbEV4cHJlc3Npb24odHMuY3JlYXRlTnVsbCgpKSksXG4gICAgXSk7XG4gIH1cblxuICAvLyBDcmVhdGUgdGhlIHR5cGUgY29uc3RydWN0b3IgbWV0aG9kIGRlY2xhcmF0aW9uLlxuICByZXR1cm4gdHMuY3JlYXRlTWV0aG9kKFxuICAgICAgLyogZGVjb3JhdG9ycyAqLyB1bmRlZmluZWQsXG4gICAgICAvKiBtb2RpZmllcnMgKi9bdHMuY3JlYXRlTW9kaWZpZXIodHMuU3ludGF4S2luZC5TdGF0aWNLZXl3b3JkKV0sXG4gICAgICAvKiBhc3Rlcmlza1Rva2VuICovIHVuZGVmaW5lZCxcbiAgICAgIC8qIG5hbWUgKi8gbWV0YS5mbk5hbWUsXG4gICAgICAvKiBxdWVzdGlvblRva2VuICovIHVuZGVmaW5lZCxcbiAgICAgIC8qIHR5cGVQYXJhbWV0ZXJzICovIHR5cGVQYXJhbWV0ZXJzV2l0aERlZmF1bHRUeXBlcyhub2RlLnR5cGVQYXJhbWV0ZXJzKSxcbiAgICAgIC8qIHBhcmFtZXRlcnMgKi9baW5pdFBhcmFtXSxcbiAgICAgIC8qIHR5cGUgKi8gcmF3VHlwZSxcbiAgICAgIC8qIGJvZHkgKi8gYm9keSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0VHlwZUN0b3JQYXJhbWV0ZXIoXG4gICAgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPiwgbWV0YTogVHlwZUN0b3JNZXRhZGF0YSxcbiAgICByYXdUeXBlOiB0cy5UeXBlUmVmZXJlbmNlTm9kZSk6IHRzLlBhcmFtZXRlckRlY2xhcmF0aW9uIHtcbiAgLy8gaW5pdFR5cGUgaXMgdGhlIHR5cGUgb2YgJ2luaXQnLCB0aGUgc2luZ2xlIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNvbnN0cnVjdG9yIG1ldGhvZC5cbiAgLy8gSWYgdGhlIERpcmVjdGl2ZSBoYXMgYW55IGlucHV0cywgaXRzIGluaXRUeXBlIHdpbGwgYmU6XG4gIC8vXG4gIC8vIFBpY2s8cmF3VHlwZSwgJ2lucHV0QSd8J2lucHV0Qic+XG4gIC8vXG4gIC8vIFBpY2sgaGVyZSBpcyB1c2VkIHRvIHNlbGVjdCBvbmx5IHRob3NlIGZpZWxkcyBmcm9tIHdoaWNoIHRoZSBnZW5lcmljIHR5cGUgcGFyYW1ldGVycyBvZiB0aGVcbiAgLy8gZGlyZWN0aXZlIHdpbGwgYmUgaW5mZXJyZWQuXG4gIC8vXG4gIC8vIEluIHRoZSBzcGVjaWFsIGNhc2UgdGhlcmUgYXJlIG5vIGlucHV0cywgaW5pdFR5cGUgaXMgc2V0IHRvIHt9LlxuICBsZXQgaW5pdFR5cGU6IHRzLlR5cGVOb2RlfG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gbWV0YS5maWVsZHMuaW5wdXRzO1xuICBjb25zdCBwbGFpbktleXM6IHRzLkxpdGVyYWxUeXBlTm9kZVtdID0gW107XG4gIGNvbnN0IGNvZXJjZWRLZXlzOiB0cy5Qcm9wZXJ0eVNpZ25hdHVyZVtdID0gW107XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBpZiAoIW1ldGEuY29lcmNlZElucHV0RmllbGRzLmhhcyhrZXkpKSB7XG4gICAgICBwbGFpbktleXMucHVzaCh0cy5jcmVhdGVMaXRlcmFsVHlwZU5vZGUodHMuY3JlYXRlU3RyaW5nTGl0ZXJhbChrZXkpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZXJjZWRLZXlzLnB1c2godHMuY3JlYXRlUHJvcGVydHlTaWduYXR1cmUoXG4gICAgICAgICAgLyogbW9kaWZpZXJzICovIHVuZGVmaW5lZCxcbiAgICAgICAgICAvKiBuYW1lICovIGtleSxcbiAgICAgICAgICAvKiBxdWVzdGlvblRva2VuICovIHVuZGVmaW5lZCxcbiAgICAgICAgICAvKiB0eXBlICovXG4gICAgICAgICAgdHMuY3JlYXRlVHlwZVF1ZXJ5Tm9kZShcbiAgICAgICAgICAgICAgdHMuY3JlYXRlUXVhbGlmaWVkTmFtZShyYXdUeXBlLnR5cGVOYW1lLCBgbmdBY2NlcHRJbnB1dFR5cGVfJHtrZXl9YCkpLFxuICAgICAgICAgIC8qIGluaXRpYWxpemVyICovIHVuZGVmaW5lZCkpO1xuICAgIH1cbiAgfVxuICBpZiAocGxhaW5LZXlzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBDb25zdHJ1Y3QgYSB1bmlvbiBvZiBhbGwgdGhlIGZpZWxkIG5hbWVzLlxuICAgIGNvbnN0IGtleVR5cGVVbmlvbiA9IHRzLmNyZWF0ZVVuaW9uVHlwZU5vZGUocGxhaW5LZXlzKTtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgUGljazxyYXdUeXBlLCBrZXlUeXBlVW5pb24+LlxuICAgIGluaXRUeXBlID0gdHMuY3JlYXRlVHlwZVJlZmVyZW5jZU5vZGUoJ1BpY2snLCBbcmF3VHlwZSwga2V5VHlwZVVuaW9uXSk7XG4gIH1cbiAgaWYgKGNvZXJjZWRLZXlzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBjb2VyY2VkTGl0ZXJhbCA9IHRzLmNyZWF0ZVR5cGVMaXRlcmFsTm9kZShjb2VyY2VkS2V5cyk7XG5cbiAgICBpbml0VHlwZSA9XG4gICAgICAgIGluaXRUeXBlICE9PSBudWxsID8gdHMuY3JlYXRlVW5pb25UeXBlTm9kZShbaW5pdFR5cGUsIGNvZXJjZWRMaXRlcmFsXSkgOiBjb2VyY2VkTGl0ZXJhbDtcbiAgfVxuXG4gIGlmIChpbml0VHlwZSA9PT0gbnVsbCkge1xuICAgIC8vIFNwZWNpYWwgY2FzZSAtIG5vIGlucHV0cywgb3V0cHV0cywgb3Igb3RoZXIgZmllbGRzIHdoaWNoIGNvdWxkIGluZmx1ZW5jZSB0aGUgcmVzdWx0IHR5cGUuXG4gICAgaW5pdFR5cGUgPSB0cy5jcmVhdGVUeXBlTGl0ZXJhbE5vZGUoW10pO1xuICB9XG5cbiAgLy8gQ3JlYXRlIHRoZSAnaW5pdCcgcGFyYW1ldGVyIGl0c2VsZi5cbiAgcmV0dXJuIHRzLmNyZWF0ZVBhcmFtZXRlcihcbiAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgLyogbW9kaWZpZXJzICovIHVuZGVmaW5lZCxcbiAgICAgIC8qIGRvdERvdERvdFRva2VuICovIHVuZGVmaW5lZCxcbiAgICAgIC8qIG5hbWUgKi8gJ2luaXQnLFxuICAgICAgLyogcXVlc3Rpb25Ub2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAvKiB0eXBlICovIGluaXRUeXBlLFxuICAgICAgLyogaW5pdGlhbGl6ZXIgKi8gdW5kZWZpbmVkKTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVHZW5lcmljQXJncyhwYXJhbXM6IFJlYWRvbmx5QXJyYXk8dHMuVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uPik6IHRzLlR5cGVOb2RlW10ge1xuICByZXR1cm4gcGFyYW1zLm1hcChwYXJhbSA9PiB0cy5jcmVhdGVUeXBlUmVmZXJlbmNlTm9kZShwYXJhbS5uYW1lLCB1bmRlZmluZWQpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVzSW5saW5lVHlwZUN0b3IoXG4gICAgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPiwgaG9zdDogUmVmbGVjdGlvbkhvc3QpOiBib29sZWFuIHtcbiAgLy8gVGhlIGNsYXNzIHJlcXVpcmVzIGFuIGlubGluZSB0eXBlIGNvbnN0cnVjdG9yIGlmIGl0IGhhcyBnZW5lcmljIHR5cGUgYm91bmRzIHRoYXQgY2FuIG5vdCBiZVxuICAvLyBlbWl0dGVkIGludG8gYSBkaWZmZXJlbnQgY29udGV4dC5cbiAgcmV0dXJuICFjaGVja0lmR2VuZXJpY1R5cGVCb3VuZHNBcmVDb250ZXh0RnJlZShub2RlLCBob3N0KTtcbn1cblxuZnVuY3Rpb24gY2hlY2tJZkdlbmVyaWNUeXBlQm91bmRzQXJlQ29udGV4dEZyZWUoXG4gICAgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPiwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCk6IGJvb2xlYW4ge1xuICAvLyBHZW5lcmljIHR5cGUgcGFyYW1ldGVycyBhcmUgY29uc2lkZXJlZCBjb250ZXh0IGZyZWUgaWYgdGhleSBjYW4gYmUgZW1pdHRlZCBpbnRvIGFueSBjb250ZXh0LlxuICByZXR1cm4gbmV3IFR5cGVQYXJhbWV0ZXJFbWl0dGVyKG5vZGUudHlwZVBhcmFtZXRlcnMsIHJlZmxlY3RvcikuY2FuRW1pdCgpO1xufVxuXG4vKipcbiAqIEFkZCBhIGRlZmF1bHQgYD0gYW55YCB0byB0eXBlIHBhcmFtZXRlcnMgdGhhdCBkb24ndCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBhbHJlYWR5LlxuICpcbiAqIFR5cGVTY3JpcHQgdXNlcyB0aGUgZGVmYXVsdCB0eXBlIG9mIGEgdHlwZSBwYXJhbWV0ZXIgd2hlbmV2ZXIgaW5mZXJlbmNlIG9mIHRoYXQgcGFyYW1ldGVyIGZhaWxzLlxuICogVGhpcyBjYW4gaGFwcGVuIHdoZW4gaW5mZXJyaW5nIGEgY29tcGxleCB0eXBlIGZyb20gJ2FueScuIEZvciBleGFtcGxlLCBpZiBgTmdGb3JgJ3MgaW5mZXJlbmNlIGlzXG4gKiBkb25lIHdpdGggdGhlIFRDQiBjb2RlOlxuICpcbiAqIGBgYFxuICogY2xhc3MgTmdGb3I8VD4ge1xuICogICBuZ0Zvck9mOiBUW107XG4gKiB9XG4gKlxuICogZGVjbGFyZSBmdW5jdGlvbiBjdG9yPFQ+KG86IFBpY2s8TmdGb3I8VD4sICduZ0Zvck9mJ3wnbmdGb3JUcmFja0J5J3wnbmdGb3JUZW1wbGF0ZSc+KTogTmdGb3I8VD47XG4gKiBgYGBcbiAqXG4gKiBBbiBpbnZvY2F0aW9uIGxvb2tzIGxpa2U6XG4gKlxuICogYGBgXG4gKiB2YXIgX3QxID0gY3Rvcih7bmdGb3JPZjogWzEsIDJdLCBuZ0ZvclRyYWNrQnk6IG51bGwgYXMgYW55LCBuZ0ZvclRlbXBsYXRlOiBudWxsIGFzIGFueX0pO1xuICogYGBgXG4gKlxuICogVGhpcyBjb3JyZWN0bHkgaW5mZXJzIHRoZSB0eXBlIGBOZ0ZvcjxudW1iZXI+YCBmb3IgYF90MWAsIHNpbmNlIGBUYCBpcyBpbmZlcnJlZCBmcm9tIHRoZVxuICogYXNzaWdubWVudCBvZiB0eXBlIGBudW1iZXJbXWAgdG8gYG5nRm9yT2ZgJ3MgdHlwZSBgVFtdYC4gSG93ZXZlciwgaWYgYGFueWAgaXMgcGFzc2VkIGluc3RlYWQ6XG4gKlxuICogYGBgXG4gKiB2YXIgX3QyID0gY3Rvcih7bmdGb3JPZjogWzEsIDJdIGFzIGFueSwgbmdGb3JUcmFja0J5OiBudWxsIGFzIGFueSwgbmdGb3JUZW1wbGF0ZTogbnVsbCBhcyBhbnl9KTtcbiAqIGBgYFxuICpcbiAqIHRoZW4gaW5mZXJlbmNlIGZvciBgVGAgZmFpbHMgKGl0IGNhbm5vdCBiZSBpbmZlcnJlZCBmcm9tIGBUW10gPSBhbnlgKS4gSW4gdGhpcyBjYXNlLCBgVGAgdGFrZXNcbiAqIHRoZSB0eXBlIGB7fWAsIGFuZCBzbyBgX3QyYCBpcyBpbmZlcnJlZCBhcyBgTmdGb3I8e30+YC4gVGhpcyBpcyBvYnZpb3VzbHkgd3JvbmcuXG4gKlxuICogQWRkaW5nIGEgZGVmYXVsdCB0eXBlIHRvIHRoZSBnZW5lcmljIGRlY2xhcmF0aW9uIGluIHRoZSBjb25zdHJ1Y3RvciBzb2x2ZXMgdGhpcyBwcm9ibGVtLCBhcyB0aGVcbiAqIGRlZmF1bHQgdHlwZSB3aWxsIGJlIHVzZWQgaW4gdGhlIGV2ZW50IHRoYXQgaW5mZXJlbmNlIGZhaWxzLlxuICpcbiAqIGBgYFxuICogZGVjbGFyZSBmdW5jdGlvbiBjdG9yPFQgPSBhbnk+KG86IFBpY2s8TmdGb3I8VD4sICduZ0Zvck9mJz4pOiBOZ0ZvcjxUPjtcbiAqXG4gKiB2YXIgX3QzID0gY3Rvcih7bmdGb3JPZjogWzEsIDJdIGFzIGFueX0pO1xuICogYGBgXG4gKlxuICogVGhpcyBjb3JyZWN0bHkgaW5mZXJzIGBUYCBhcyBgYW55YCwgYW5kIHRoZXJlZm9yZSBgX3QzYCBhcyBgTmdGb3I8YW55PmAuXG4gKi9cbmZ1bmN0aW9uIHR5cGVQYXJhbWV0ZXJzV2l0aERlZmF1bHRUeXBlcyhwYXJhbXM6IFJlYWRvbmx5QXJyYXk8dHMuVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uPnxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQpOiB0cy5UeXBlUGFyYW1ldGVyRGVjbGFyYXRpb25bXXx1bmRlZmluZWQge1xuICBpZiAocGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtcy5tYXAocGFyYW0gPT4ge1xuICAgIGlmIChwYXJhbS5kZWZhdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cy51cGRhdGVUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oXG4gICAgICAgICAgLyogbm9kZSAqLyBwYXJhbSxcbiAgICAgICAgICAvKiBuYW1lICovIHBhcmFtLm5hbWUsXG4gICAgICAgICAgLyogY29uc3RyYWludCAqLyBwYXJhbS5jb25zdHJhaW50LFxuICAgICAgICAgIC8qIGRlZmF1bHRUeXBlICovIHRzLmNyZWF0ZUtleXdvcmRUeXBlTm9kZSh0cy5TeW50YXhLaW5kLkFueUtleXdvcmQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcmFtO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9jb25zdHJ1Y3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL3NyYy90eXBlX2NvbnN0cnVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFLakMsK0dBQThEO0lBRTlELFNBQWdCLDZCQUE2QixDQUN6QyxJQUEyQyxFQUFFLElBQXNCLEVBQUUsV0FBMEIsRUFDL0YsVUFBbUQsRUFBRSxTQUF5QjtRQUNoRixJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSx5Q0FBc0MsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsSUFBTSxXQUFXLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRixJQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXJFLElBQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEUsSUFBTSxjQUFjLEdBQUcsOEJBQThCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtZQUNwQyxvQkFBb0IsQ0FBQyxjQUFjO1lBQ25DLGdCQUFnQixDQUFBLENBQUMsU0FBUyxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLENBQUM7WUFFRixJQUFNLElBQUksR0FBRyxFQUFF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QUFJLDZDQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlDRztJQUNILFNBQVMsOEJBQThCLENBQUMsTUFDUztRQUMvQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLE9BQU8sRUFBRSxDQUFDLDhCQUE4QjtnQkFDcEMsVUFBVSxDQUFDLEtBQUs7Z0JBQ2hCLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDckIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQ2pDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDM0U7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge1R5cGVDdG9yTWV0YWRhdGF9IGZyb20gJy4uL2FwaSc7XG5cbmltcG9ydCB7VHlwZVBhcmFtZXRlckVtaXR0ZXJ9IGZyb20gJy4vdHlwZV9wYXJhbWV0ZXJfZW1pdHRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVR5cGVDdG9yRGVjbGFyYXRpb25GbihcbiAgICBub2RlOiBDbGFzc0RlY2xhcmF0aW9uPHRzLkNsYXNzRGVjbGFyYXRpb24+LCBtZXRhOiBUeXBlQ3Rvck1ldGFkYXRhLCBub2RlVHlwZVJlZjogdHMuRW50aXR5TmFtZSxcbiAgICB0eXBlUGFyYW1zOiB0cy5UeXBlUGFyYW1ldGVyRGVjbGFyYXRpb25bXXx1bmRlZmluZWQsIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpOiB0cy5TdGF0ZW1lbnQge1xuICBpZiAocmVxdWlyZXNJbmxpbmVUeXBlQ3Rvcihub2RlLCByZWZsZWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25vZGUubmFtZS50ZXh0fSByZXF1aXJlcyBhbiBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvcmApO1xuICB9XG5cbiAgY29uc3QgcmF3VHlwZUFyZ3MgPSB0eXBlUGFyYW1zICE9PSB1bmRlZmluZWQgPyBnZW5lcmF0ZUdlbmVyaWNBcmdzKHR5cGVQYXJhbXMpIDogdW5kZWZpbmVkO1xuICBjb25zdCByYXdUeXBlID0gdHMuY3JlYXRlVHlwZVJlZmVyZW5jZU5vZGUobm9kZVR5cGVSZWYsIHJhd1R5cGVBcmdzKTtcblxuICBjb25zdCBpbml0UGFyYW0gPSBjb25zdHJ1Y3RUeXBlQ3RvclBhcmFtZXRlcihub2RlLCBtZXRhLCByYXdUeXBlKTtcblxuICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzV2l0aERlZmF1bHRUeXBlcyh0eXBlUGFyYW1zKTtcblxuICBpZiAobWV0YS5ib2R5KSB7XG4gICAgY29uc3QgZm5UeXBlID0gdHMuY3JlYXRlRnVuY3Rpb25UeXBlTm9kZShcbiAgICAgICAgLyogdHlwZVBhcmFtZXRlcnMgKi8gdHlwZVBhcmFtZXRlcnMsXG4gICAgICAgIC8qIHBhcmFtZXRlcnMgKi9baW5pdFBhcmFtXSxcbiAgICAgICAgLyogdHlwZSAqLyByYXdUeXBlLFxuICAgICk7XG5cbiAgICBjb25zdCBkZWNsID0gdHMuY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbihcbiAgICAgICAgLyogbmFtZSAqLyBtZXRhLmZuTmFtZSxcbiAgICAgICAgLyogdHlwZSAqLyBmblR5cGUsXG4gICAgICAgIC8qIGJvZHkgKi8gdHMuY3JlYXRlTm9uTnVsbEV4cHJlc3Npb24odHMuY3JlYXRlTnVsbCgpKSk7XG4gICAgY29uc3QgZGVjbExpc3QgPSB0cy5jcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uTGlzdChbZGVjbF0sIHRzLk5vZGVGbGFncy5Db25zdCk7XG4gICAgcmV0dXJuIHRzLmNyZWF0ZVZhcmlhYmxlU3RhdGVtZW50KFxuICAgICAgICAvKiBtb2RpZmllcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBkZWNsYXJhdGlvbkxpc3QgKi8gZGVjbExpc3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cy5jcmVhdGVGdW5jdGlvbkRlY2xhcmF0aW9uKFxuICAgICAgICAvKiBkZWNvcmF0b3JzICovIHVuZGVmaW5lZCxcbiAgICAgICAgLyogbW9kaWZpZXJzICovW3RzLmNyZWF0ZU1vZGlmaWVyKHRzLlN5bnRheEtpbmQuRGVjbGFyZUtleXdvcmQpXSxcbiAgICAgICAgLyogYXN0ZXJpc2tUb2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAgIC8qIG5hbWUgKi8gbWV0YS5mbk5hbWUsXG4gICAgICAgIC8qIHR5cGVQYXJhbWV0ZXJzICovIHR5cGVQYXJhbWV0ZXJzLFxuICAgICAgICAvKiBwYXJhbWV0ZXJzICovW2luaXRQYXJhbV0sXG4gICAgICAgIC8qIHR5cGUgKi8gcmF3VHlwZSxcbiAgICAgICAgLyogYm9keSAqLyB1bmRlZmluZWQpO1xuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYW4gaW5saW5lIHR5cGUgY29uc3RydWN0b3IgZm9yIHRoZSBnaXZlbiBjbGFzcyBhbmQgbWV0YWRhdGEuXG4gKlxuICogQW4gaW5saW5lIHR5cGUgY29uc3RydWN0b3IgaXMgYSBzcGVjaWFsbHkgc2hhcGVkIFR5cGVTY3JpcHQgc3RhdGljIG1ldGhvZCwgaW50ZW5kZWQgdG8gYmUgcGxhY2VkXG4gKiB3aXRoaW4gYSBkaXJlY3RpdmUgY2xhc3MgaXRzZWxmLCB0aGF0IHBlcm1pdHMgdHlwZSBpbmZlcmVuY2Ugb2YgYW55IGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIG9mXG4gKiB0aGUgY2xhc3MgZnJvbSB0aGUgdHlwZXMgb2YgZXhwcmVzc2lvbnMgYm91bmQgdG8gaW5wdXRzIG9yIG91dHB1dHMsIGFuZCB0aGUgdHlwZXMgb2YgZWxlbWVudHNcbiAqIHRoYXQgbWF0Y2ggcXVlcmllcyBwZXJmb3JtZWQgYnkgdGhlIGRpcmVjdGl2ZS4gSXQgYWxzbyBjYXRjaGVzIGFueSBlcnJvcnMgaW4gdGhlIHR5cGVzIG9mIHRoZXNlXG4gKiBleHByZXNzaW9ucy4gVGhpcyBtZXRob2QgaXMgbmV2ZXIgY2FsbGVkIGF0IHJ1bnRpbWUsIGJ1dCBpcyB1c2VkIGluIHR5cGUtY2hlY2sgYmxvY2tzIHRvXG4gKiBjb25zdHJ1Y3QgZGlyZWN0aXZlIHR5cGVzLlxuICpcbiAqIEFuIGlubGluZSB0eXBlIGNvbnN0cnVjdG9yIGZvciBOZ0ZvciBsb29rcyBsaWtlOlxuICpcbiAqIHN0YXRpYyBuZ1R5cGVDdG9yPFQ+KGluaXQ6IFBpY2s8TmdGb3JPZjxUPiwgJ25nRm9yT2YnfCduZ0ZvclRyYWNrQnknfCduZ0ZvclRlbXBsYXRlJz4pOlxuICogICBOZ0Zvck9mPFQ+O1xuICpcbiAqIEEgdHlwaWNhbCBjb25zdHJ1Y3RvciB3b3VsZCBiZTpcbiAqXG4gKiBOZ0Zvck9mLm5nVHlwZUN0b3IoaW5pdDoge1xuICogICBuZ0Zvck9mOiBbJ2ZvbycsICdiYXInXSxcbiAqICAgbmdGb3JUcmFja0J5OiBudWxsIGFzIGFueSxcbiAqICAgbmdGb3JUZW1wbGF0ZTogbnVsbCBhcyBhbnksXG4gKiB9KTsgLy8gSW5mZXJzIGEgdHlwZSBvZiBOZ0Zvck9mPHN0cmluZz4uXG4gKlxuICogQW55IGlucHV0cyBkZWNsYXJlZCBvbiB0aGUgdHlwZSBmb3Igd2hpY2ggbm8gcHJvcGVydHkgYmluZGluZyBpcyBwcmVzZW50IGFyZSBhc3NpZ25lZCBhIHZhbHVlIG9mXG4gKiB0eXBlIGBhbnlgLCB0byBhdm9pZCBwcm9kdWNpbmcgYW55IHR5cGUgZXJyb3JzIGZvciB1bnNldCBpbnB1dHMuXG4gKlxuICogSW5saW5lIHR5cGUgY29uc3RydWN0b3JzIGFyZSB1c2VkIHdoZW4gdGhlIHR5cGUgYmVpbmcgY3JlYXRlZCBoYXMgYm91bmRlZCBnZW5lcmljIHR5cGVzIHdoaWNoXG4gKiBtYWtlIHdyaXRpbmcgYSBkZWNsYXJlZCB0eXBlIGNvbnN0cnVjdG9yICh2aWEgYGdlbmVyYXRlVHlwZUN0b3JEZWNsYXJhdGlvbkZuYCkgZGlmZmljdWx0IG9yXG4gKiBpbXBvc3NpYmxlLlxuICpcbiAqIEBwYXJhbSBub2RlIHRoZSBgQ2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPmAgZm9yIHdoaWNoIGEgdHlwZSBjb25zdHJ1Y3RvciB3aWxsIGJlXG4gKiBnZW5lcmF0ZWQuXG4gKiBAcGFyYW0gbWV0YSBhZGRpdGlvbmFsIG1ldGFkYXRhIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlIGNvbnN0cnVjdG9yLlxuICogQHJldHVybnMgYSBgdHMuTWV0aG9kRGVjbGFyYXRpb25gIGZvciB0aGUgdHlwZSBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5saW5lVHlwZUN0b3IoXG4gICAgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPiwgbWV0YTogVHlwZUN0b3JNZXRhZGF0YSk6IHRzLk1ldGhvZERlY2xhcmF0aW9uIHtcbiAgLy8gQnVpbGQgcmF3VHlwZSwgYSBgdHMuVHlwZU5vZGVgIG9mIHRoZSBjbGFzcyB3aXRoIGl0cyBnZW5lcmljIHBhcmFtZXRlcnMgcGFzc2VkIHRocm91Z2ggZnJvbVxuICAvLyB0aGUgZGVmaW5pdGlvbiB3aXRob3V0IGFueSB0eXBlIGJvdW5kcy4gRm9yIGV4YW1wbGUsIGlmIHRoZSBjbGFzcyBpc1xuICAvLyBgRm9vRGlyZWN0aXZlPFQgZXh0ZW5kcyBCYXI+YCwgaXRzIHJhd1R5cGUgd291bGQgYmUgYEZvb0RpcmVjdGl2ZTxUPmAuXG4gIGNvbnN0IHJhd1R5cGVBcmdzID1cbiAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCA/IGdlbmVyYXRlR2VuZXJpY0FyZ3Mobm9kZS50eXBlUGFyYW1ldGVycykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHJhd1R5cGUgPSB0cy5jcmVhdGVUeXBlUmVmZXJlbmNlTm9kZShub2RlLm5hbWUsIHJhd1R5cGVBcmdzKTtcblxuICBjb25zdCBpbml0UGFyYW0gPSBjb25zdHJ1Y3RUeXBlQ3RvclBhcmFtZXRlcihub2RlLCBtZXRhLCByYXdUeXBlKTtcblxuICAvLyBJZiB0aGlzIGNvbnN0cnVjdG9yIGlzIGJlaW5nIGdlbmVyYXRlZCBpbnRvIGEgLnRzIGZpbGUsIHRoZW4gaXQgbmVlZHMgYSBmYWtlIGJvZHkuIFRoZSBib2R5XG4gIC8vIGlzIHNldCB0byBhIHJldHVybiBvZiBgbnVsbCFgLiBJZiB0aGUgdHlwZSBjb25zdHJ1Y3RvciBpcyBiZWluZyBnZW5lcmF0ZWQgaW50byBhIC5kLnRzIGZpbGUsXG4gIC8vIGl0IG5lZWRzIG5vIGJvZHkuXG4gIGxldCBib2R5OiB0cy5CbG9ja3x1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlmIChtZXRhLmJvZHkpIHtcbiAgICBib2R5ID0gdHMuY3JlYXRlQmxvY2soW1xuICAgICAgdHMuY3JlYXRlUmV0dXJuKHRzLmNyZWF0ZU5vbk51bGxFeHByZXNzaW9uKHRzLmNyZWF0ZU51bGwoKSkpLFxuICAgIF0pO1xuICB9XG5cbiAgLy8gQ3JlYXRlIHRoZSB0eXBlIGNvbnN0cnVjdG9yIG1ldGhvZCBkZWNsYXJhdGlvbi5cbiAgcmV0dXJuIHRzLmNyZWF0ZU1ldGhvZChcbiAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgLyogbW9kaWZpZXJzICovW3RzLmNyZWF0ZU1vZGlmaWVyKHRzLlN5bnRheEtpbmQuU3RhdGljS2V5d29yZCldLFxuICAgICAgLyogYXN0ZXJpc2tUb2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAvKiBuYW1lICovIG1ldGEuZm5OYW1lLFxuICAgICAgLyogcXVlc3Rpb25Ub2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAvKiB0eXBlUGFyYW1ldGVycyAqLyB0eXBlUGFyYW1ldGVyc1dpdGhEZWZhdWx0VHlwZXMobm9kZS50eXBlUGFyYW1ldGVycyksXG4gICAgICAvKiBwYXJhbWV0ZXJzICovW2luaXRQYXJhbV0sXG4gICAgICAvKiB0eXBlICovIHJhd1R5cGUsXG4gICAgICAvKiBib2R5ICovIGJvZHksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFR5cGVDdG9yUGFyYW1ldGVyKFxuICAgIG5vZGU6IENsYXNzRGVjbGFyYXRpb248dHMuQ2xhc3NEZWNsYXJhdGlvbj4sIG1ldGE6IFR5cGVDdG9yTWV0YWRhdGEsXG4gICAgcmF3VHlwZTogdHMuVHlwZVJlZmVyZW5jZU5vZGUpOiB0cy5QYXJhbWV0ZXJEZWNsYXJhdGlvbiB7XG4gIC8vIGluaXRUeXBlIGlzIHRoZSB0eXBlIG9mICdpbml0JywgdGhlIHNpbmdsZSBhcmd1bWVudCB0byB0aGUgdHlwZSBjb25zdHJ1Y3RvciBtZXRob2QuXG4gIC8vIElmIHRoZSBEaXJlY3RpdmUgaGFzIGFueSBpbnB1dHMsIGl0cyBpbml0VHlwZSB3aWxsIGJlOlxuICAvL1xuICAvLyBQaWNrPHJhd1R5cGUsICdpbnB1dEEnfCdpbnB1dEInPlxuICAvL1xuICAvLyBQaWNrIGhlcmUgaXMgdXNlZCB0byBzZWxlY3Qgb25seSB0aG9zZSBmaWVsZHMgZnJvbSB3aGljaCB0aGUgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcnMgb2YgdGhlXG4gIC8vIGRpcmVjdGl2ZSB3aWxsIGJlIGluZmVycmVkLlxuICAvL1xuICAvLyBJbiB0aGUgc3BlY2lhbCBjYXNlIHRoZXJlIGFyZSBubyBpbnB1dHMsIGluaXRUeXBlIGlzIHNldCB0byB7fS5cbiAgbGV0IGluaXRUeXBlOiB0cy5UeXBlTm9kZXxudWxsID0gbnVsbDtcblxuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IG1ldGEuZmllbGRzLmlucHV0cztcbiAgY29uc3QgcGxhaW5LZXlzOiB0cy5MaXRlcmFsVHlwZU5vZGVbXSA9IFtdO1xuICBjb25zdCBjb2VyY2VkS2V5czogdHMuUHJvcGVydHlTaWduYXR1cmVbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgaWYgKCFtZXRhLmNvZXJjZWRJbnB1dEZpZWxkcy5oYXMoa2V5KSkge1xuICAgICAgcGxhaW5LZXlzLnB1c2godHMuY3JlYXRlTGl0ZXJhbFR5cGVOb2RlKHRzLmNyZWF0ZVN0cmluZ0xpdGVyYWwoa2V5KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2VyY2VkS2V5cy5wdXNoKHRzLmNyZWF0ZVByb3BlcnR5U2lnbmF0dXJlKFxuICAgICAgICAgIC8qIG1vZGlmaWVycyAqLyB1bmRlZmluZWQsXG4gICAgICAgICAgLyogbmFtZSAqLyBrZXksXG4gICAgICAgICAgLyogcXVlc3Rpb25Ub2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAgICAgLyogdHlwZSAqL1xuICAgICAgICAgIHRzLmNyZWF0ZVR5cGVRdWVyeU5vZGUoXG4gICAgICAgICAgICAgIHRzLmNyZWF0ZVF1YWxpZmllZE5hbWUocmF3VHlwZS50eXBlTmFtZSwgYG5nQWNjZXB0SW5wdXRUeXBlXyR7a2V5fWApKSxcbiAgICAgICAgICAvKiBpbml0aWFsaXplciAqLyB1bmRlZmluZWQpKTtcbiAgICB9XG4gIH1cbiAgaWYgKHBsYWluS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgLy8gQ29uc3RydWN0IGEgdW5pb24gb2YgYWxsIHRoZSBmaWVsZCBuYW1lcy5cbiAgICBjb25zdCBrZXlUeXBlVW5pb24gPSB0cy5jcmVhdGVVbmlvblR5cGVOb2RlKHBsYWluS2V5cyk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgdGhlIFBpY2s8cmF3VHlwZSwga2V5VHlwZVVuaW9uPi5cbiAgICBpbml0VHlwZSA9IHRzLmNyZWF0ZVR5cGVSZWZlcmVuY2VOb2RlKCdQaWNrJywgW3Jhd1R5cGUsIGtleVR5cGVVbmlvbl0pO1xuICB9XG4gIGlmIChjb2VyY2VkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgY29lcmNlZExpdGVyYWwgPSB0cy5jcmVhdGVUeXBlTGl0ZXJhbE5vZGUoY29lcmNlZEtleXMpO1xuXG4gICAgaW5pdFR5cGUgPVxuICAgICAgICBpbml0VHlwZSAhPT0gbnVsbCA/IHRzLmNyZWF0ZVVuaW9uVHlwZU5vZGUoW2luaXRUeXBlLCBjb2VyY2VkTGl0ZXJhbF0pIDogY29lcmNlZExpdGVyYWw7XG4gIH1cblxuICBpZiAoaW5pdFR5cGUgPT09IG51bGwpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgLSBubyBpbnB1dHMsIG91dHB1dHMsIG9yIG90aGVyIGZpZWxkcyB3aGljaCBjb3VsZCBpbmZsdWVuY2UgdGhlIHJlc3VsdCB0eXBlLlxuICAgIGluaXRUeXBlID0gdHMuY3JlYXRlVHlwZUxpdGVyYWxOb2RlKFtdKTtcbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgJ2luaXQnIHBhcmFtZXRlciBpdHNlbGYuXG4gIHJldHVybiB0cy5jcmVhdGVQYXJhbWV0ZXIoXG4gICAgICAvKiBkZWNvcmF0b3JzICovIHVuZGVmaW5lZCxcbiAgICAgIC8qIG1vZGlmaWVycyAqLyB1bmRlZmluZWQsXG4gICAgICAvKiBkb3REb3REb3RUb2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAvKiBuYW1lICovICdpbml0JyxcbiAgICAgIC8qIHF1ZXN0aW9uVG9rZW4gKi8gdW5kZWZpbmVkLFxuICAgICAgLyogdHlwZSAqLyBpbml0VHlwZSxcbiAgICAgIC8qIGluaXRpYWxpemVyICovIHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlR2VuZXJpY0FyZ3MocGFyYW1zOiBSZWFkb25seUFycmF5PHRzLlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbj4pOiB0cy5UeXBlTm9kZVtdIHtcbiAgcmV0dXJuIHBhcmFtcy5tYXAocGFyYW0gPT4gdHMuY3JlYXRlVHlwZVJlZmVyZW5jZU5vZGUocGFyYW0ubmFtZSwgdW5kZWZpbmVkKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlc0lubGluZVR5cGVDdG9yKFxuICAgIG5vZGU6IENsYXNzRGVjbGFyYXRpb248dHMuQ2xhc3NEZWNsYXJhdGlvbj4sIGhvc3Q6IFJlZmxlY3Rpb25Ib3N0KTogYm9vbGVhbiB7XG4gIC8vIFRoZSBjbGFzcyByZXF1aXJlcyBhbiBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvciBpZiBpdCBoYXMgZ2VuZXJpYyB0eXBlIGJvdW5kcyB0aGF0IGNhbiBub3QgYmVcbiAgLy8gZW1pdHRlZCBpbnRvIGEgZGlmZmVyZW50IGNvbnRleHQuXG4gIHJldHVybiAhY2hlY2tJZkdlbmVyaWNUeXBlQm91bmRzQXJlQ29udGV4dEZyZWUobm9kZSwgaG9zdCk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrSWZHZW5lcmljVHlwZUJvdW5kc0FyZUNvbnRleHRGcmVlKFxuICAgIG5vZGU6IENsYXNzRGVjbGFyYXRpb248dHMuQ2xhc3NEZWNsYXJhdGlvbj4sIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpOiBib29sZWFuIHtcbiAgLy8gR2VuZXJpYyB0eXBlIHBhcmFtZXRlcnMgYXJlIGNvbnNpZGVyZWQgY29udGV4dCBmcmVlIGlmIHRoZXkgY2FuIGJlIGVtaXR0ZWQgaW50byBhbnkgY29udGV4dC5cbiAgcmV0dXJuIG5ldyBUeXBlUGFyYW1ldGVyRW1pdHRlcihub2RlLnR5cGVQYXJhbWV0ZXJzLCByZWZsZWN0b3IpLmNhbkVtaXQoKTtcbn1cblxuLyoqXG4gKiBBZGQgYSBkZWZhdWx0IGA9IGFueWAgdG8gdHlwZSBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgYWxyZWFkeS5cbiAqXG4gKiBUeXBlU2NyaXB0IHVzZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiBhIHR5cGUgcGFyYW1ldGVyIHdoZW5ldmVyIGluZmVyZW5jZSBvZiB0aGF0IHBhcmFtZXRlciBmYWlscy5cbiAqIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGluZmVycmluZyBhIGNvbXBsZXggdHlwZSBmcm9tICdhbnknLiBGb3IgZXhhbXBsZSwgaWYgYE5nRm9yYCdzIGluZmVyZW5jZSBpc1xuICogZG9uZSB3aXRoIHRoZSBUQ0IgY29kZTpcbiAqXG4gKiBgYGBcbiAqIGNsYXNzIE5nRm9yPFQ+IHtcbiAqICAgbmdGb3JPZjogVFtdO1xuICogfVxuICpcbiAqIGRlY2xhcmUgZnVuY3Rpb24gY3RvcjxUPihvOiBQaWNrPE5nRm9yPFQ+LCAnbmdGb3JPZid8J25nRm9yVHJhY2tCeSd8J25nRm9yVGVtcGxhdGUnPik6IE5nRm9yPFQ+O1xuICogYGBgXG4gKlxuICogQW4gaW52b2NhdGlvbiBsb29rcyBsaWtlOlxuICpcbiAqIGBgYFxuICogdmFyIF90MSA9IGN0b3Ioe25nRm9yT2Y6IFsxLCAyXSwgbmdGb3JUcmFja0J5OiBudWxsIGFzIGFueSwgbmdGb3JUZW1wbGF0ZTogbnVsbCBhcyBhbnl9KTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgY29ycmVjdGx5IGluZmVycyB0aGUgdHlwZSBgTmdGb3I8bnVtYmVyPmAgZm9yIGBfdDFgLCBzaW5jZSBgVGAgaXMgaW5mZXJyZWQgZnJvbSB0aGVcbiAqIGFzc2lnbm1lbnQgb2YgdHlwZSBgbnVtYmVyW11gIHRvIGBuZ0Zvck9mYCdzIHR5cGUgYFRbXWAuIEhvd2V2ZXIsIGlmIGBhbnlgIGlzIHBhc3NlZCBpbnN0ZWFkOlxuICpcbiAqIGBgYFxuICogdmFyIF90MiA9IGN0b3Ioe25nRm9yT2Y6IFsxLCAyXSBhcyBhbnksIG5nRm9yVHJhY2tCeTogbnVsbCBhcyBhbnksIG5nRm9yVGVtcGxhdGU6IG51bGwgYXMgYW55fSk7XG4gKiBgYGBcbiAqXG4gKiB0aGVuIGluZmVyZW5jZSBmb3IgYFRgIGZhaWxzIChpdCBjYW5ub3QgYmUgaW5mZXJyZWQgZnJvbSBgVFtdID0gYW55YCkuIEluIHRoaXMgY2FzZSwgYFRgIHRha2VzXG4gKiB0aGUgdHlwZSBge31gLCBhbmQgc28gYF90MmAgaXMgaW5mZXJyZWQgYXMgYE5nRm9yPHt9PmAuIFRoaXMgaXMgb2J2aW91c2x5IHdyb25nLlxuICpcbiAqIEFkZGluZyBhIGRlZmF1bHQgdHlwZSB0byB0aGUgZ2VuZXJpYyBkZWNsYXJhdGlvbiBpbiB0aGUgY29uc3RydWN0b3Igc29sdmVzIHRoaXMgcHJvYmxlbSwgYXMgdGhlXG4gKiBkZWZhdWx0IHR5cGUgd2lsbCBiZSB1c2VkIGluIHRoZSBldmVudCB0aGF0IGluZmVyZW5jZSBmYWlscy5cbiAqXG4gKiBgYGBcbiAqIGRlY2xhcmUgZnVuY3Rpb24gY3RvcjxUID0gYW55PihvOiBQaWNrPE5nRm9yPFQ+LCAnbmdGb3JPZic+KTogTmdGb3I8VD47XG4gKlxuICogdmFyIF90MyA9IGN0b3Ioe25nRm9yT2Y6IFsxLCAyXSBhcyBhbnl9KTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgY29ycmVjdGx5IGluZmVycyBgVGAgYXMgYGFueWAsIGFuZCB0aGVyZWZvcmUgYF90M2AgYXMgYE5nRm9yPGFueT5gLlxuICovXG5mdW5jdGlvbiB0eXBlUGFyYW1ldGVyc1dpdGhEZWZhdWx0VHlwZXMocGFyYW1zOiBSZWFkb25seUFycmF5PHRzLlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbj58XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTogdHMuVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uW118dW5kZWZpbmVkIHtcbiAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBwYXJhbXMubWFwKHBhcmFtID0+IHtcbiAgICBpZiAocGFyYW0uZGVmYXVsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHMudXBkYXRlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKFxuICAgICAgICAgIC8qIG5vZGUgKi8gcGFyYW0sXG4gICAgICAgICAgLyogbmFtZSAqLyBwYXJhbS5uYW1lLFxuICAgICAgICAgIC8qIGNvbnN0cmFpbnQgKi8gcGFyYW0uY29uc3RyYWludCxcbiAgICAgICAgICAvKiBkZWZhdWx0VHlwZSAqLyB0cy5jcmVhdGVLZXl3b3JkVHlwZU5vZGUodHMuU3ludGF4S2luZC5BbnlLZXl3b3JkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJhbTtcbiAgICB9XG4gIH0pO1xufVxuIl19
package/src/version.js CHANGED
@@ -23,6 +23,6 @@
23
23
  * Entry point for all public APIs of the common package.
24
24
  */
25
25
  var compiler_1 = require("@angular/compiler");
26
- exports.VERSION = new compiler_1.Version('10.0.6');
26
+ exports.VERSION = new compiler_1.Version('10.0.10');
27
27
  });
28
28
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSDs7OztPQUlHO0lBRUgsOENBQTBDO0lBRTdCLFFBQUEsT0FBTyxHQUFHLElBQUksa0JBQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBjb21tb24gcGFja2FnZS5cbiAqL1xuXG5pbXBvcnQge1ZlcnNpb259IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==