@angular/core 13.0.0-rc.1 → 13.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/core.d.ts +224 -221
  2. package/esm2020/index.mjs +6 -5
  3. package/esm2020/src/application_module.mjs +2 -7
  4. package/esm2020/src/core_render3_private_export.mjs +2 -1
  5. package/esm2020/src/linker/component_factory_resolver.mjs +5 -5
  6. package/esm2020/src/linker/ng_module_factory.mjs +1 -1
  7. package/esm2020/src/render3/definition.mjs +2 -5
  8. package/esm2020/src/render3/di.mjs +3 -3
  9. package/esm2020/src/render3/error_code.mjs +2 -5
  10. package/esm2020/src/render3/error_details_base_url.mjs +16 -0
  11. package/esm2020/src/render3/fields.mjs +1 -2
  12. package/esm2020/src/render3/ng_module_ref.mjs +2 -5
  13. package/esm2020/src/version.mjs +1 -1
  14. package/esm2020/testing/src/logger.mjs +3 -3
  15. package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
  16. package/esm2020/testing/src/test_compiler.mjs +3 -3
  17. package/fesm2015/core.mjs +25 -23
  18. package/fesm2015/core.mjs.map +1 -1
  19. package/fesm2015/testing.mjs +4 -4
  20. package/fesm2020/core.mjs +25 -23
  21. package/fesm2020/core.mjs.map +1 -1
  22. package/fesm2020/testing.mjs +4 -4
  23. package/package.json +1 -1
  24. package/schematics/migrations/router-link-empty-expression/index.js +2 -2
  25. package/schematics/migrations.json +0 -100
  26. package/schematics/utils/ng_component_template.d.ts +4 -1
  27. package/schematics/utils/ng_component_template.js +28 -14
  28. package/testing/testing.d.ts +1 -1
  29. package/schematics/migrations/abstract-control-parent/index.d.ts +0 -11
  30. package/schematics/migrations/abstract-control-parent/index.js +0 -69
  31. package/schematics/migrations/abstract-control-parent/util.d.ts +0 -14
  32. package/schematics/migrations/abstract-control-parent/util.js +0 -67
  33. package/schematics/migrations/activated-route-snapshot-fragment/index.d.ts +0 -13
  34. package/schematics/migrations/activated-route-snapshot-fragment/index.js +0 -73
  35. package/schematics/migrations/activated-route-snapshot-fragment/util.d.ts +0 -16
  36. package/schematics/migrations/activated-route-snapshot-fragment/util.js +0 -51
  37. package/schematics/migrations/can-activate-with-redirect-to/index.d.ts +0 -11
  38. package/schematics/migrations/can-activate-with-redirect-to/index.js +0 -69
  39. package/schematics/migrations/can-activate-with-redirect-to/util.d.ts +0 -11
  40. package/schematics/migrations/can-activate-with-redirect-to/util.js +0 -73
  41. package/schematics/migrations/deep-shadow-piercing-selector/index.d.ts +0 -10
  42. package/schematics/migrations/deep-shadow-piercing-selector/index.js +0 -49
  43. package/schematics/migrations/dynamic-queries/index.d.ts +0 -13
  44. package/schematics/migrations/dynamic-queries/index.js +0 -76
  45. package/schematics/migrations/dynamic-queries/util.d.ts +0 -25
  46. package/schematics/migrations/dynamic-queries/util.js +0 -84
  47. package/schematics/migrations/initial-navigation/collector.d.ts +0 -22
  48. package/schematics/migrations/initial-navigation/collector.js +0 -122
  49. package/schematics/migrations/initial-navigation/index.d.ts +0 -11
  50. package/schematics/migrations/initial-navigation/index.js +0 -83
  51. package/schematics/migrations/initial-navigation/transform.d.ts +0 -20
  52. package/schematics/migrations/initial-navigation/transform.js +0 -71
  53. package/schematics/migrations/initial-navigation/update_recorder.d.ts +0 -18
  54. package/schematics/migrations/initial-navigation/update_recorder.js +0 -20
  55. package/schematics/migrations/initial-navigation/util.d.ts +0 -12
  56. package/schematics/migrations/initial-navigation/util.js +0 -46
  57. package/schematics/migrations/missing-injectable/definition_collector.d.ts +0 -37
  58. package/schematics/migrations/missing-injectable/definition_collector.js +0 -92
  59. package/schematics/migrations/missing-injectable/index.d.ts +0 -11
  60. package/schematics/migrations/missing-injectable/index.js +0 -136
  61. package/schematics/migrations/missing-injectable/providers_evaluator.d.ts +0 -26
  62. package/schematics/migrations/missing-injectable/providers_evaluator.js +0 -71
  63. package/schematics/migrations/missing-injectable/transform.d.ts +0 -70
  64. package/schematics/migrations/missing-injectable/transform.js +0 -203
  65. package/schematics/migrations/missing-injectable/update_recorder.d.ts +0 -21
  66. package/schematics/migrations/missing-injectable/update_recorder.js +0 -20
  67. package/schematics/migrations/module-with-providers/collector.d.ts +0 -34
  68. package/schematics/migrations/module-with-providers/collector.js +0 -76
  69. package/schematics/migrations/module-with-providers/index.d.ts +0 -13
  70. package/schematics/migrations/module-with-providers/index.js +0 -107
  71. package/schematics/migrations/module-with-providers/transform.d.ts +0 -50
  72. package/schematics/migrations/module-with-providers/transform.js +0 -149
  73. package/schematics/migrations/module-with-providers/util.d.ts +0 -13
  74. package/schematics/migrations/module-with-providers/util.js +0 -43
  75. package/schematics/migrations/move-document/document_import_visitor.d.ts +0 -27
  76. package/schematics/migrations/move-document/document_import_visitor.js +0 -77
  77. package/schematics/migrations/move-document/index.d.ts +0 -11
  78. package/schematics/migrations/move-document/index.js +0 -93
  79. package/schematics/migrations/move-document/move-import.d.ts +0 -12
  80. package/schematics/migrations/move-document/move-import.js +0 -64
  81. package/schematics/migrations/native-view-encapsulation/index.d.ts +0 -11
  82. package/schematics/migrations/native-view-encapsulation/index.js +0 -63
  83. package/schematics/migrations/native-view-encapsulation/util.d.ts +0 -11
  84. package/schematics/migrations/native-view-encapsulation/util.js +0 -51
  85. package/schematics/migrations/navigation-extras-omissions/index.d.ts +0 -11
  86. package/schematics/migrations/navigation-extras-omissions/index.js +0 -72
  87. package/schematics/migrations/navigation-extras-omissions/util.d.ts +0 -11
  88. package/schematics/migrations/navigation-extras-omissions/util.js +0 -129
  89. package/schematics/migrations/relative-link-resolution/collector.d.ts +0 -22
  90. package/schematics/migrations/relative-link-resolution/collector.js +0 -98
  91. package/schematics/migrations/relative-link-resolution/index.d.ts +0 -11
  92. package/schematics/migrations/relative-link-resolution/index.js +0 -84
  93. package/schematics/migrations/relative-link-resolution/transform.d.ts +0 -22
  94. package/schematics/migrations/relative-link-resolution/transform.js +0 -68
  95. package/schematics/migrations/relative-link-resolution/update_recorder.d.ts +0 -18
  96. package/schematics/migrations/relative-link-resolution/update_recorder.js +0 -20
  97. package/schematics/migrations/relative-link-resolution/util.d.ts +0 -12
  98. package/schematics/migrations/relative-link-resolution/util.js +0 -46
  99. package/schematics/migrations/renderer-to-renderer2/helpers.d.ts +0 -25
  100. package/schematics/migrations/renderer-to-renderer2/helpers.js +0 -241
  101. package/schematics/migrations/renderer-to-renderer2/index.d.ts +0 -14
  102. package/schematics/migrations/renderer-to-renderer2/index.js +0 -138
  103. package/schematics/migrations/renderer-to-renderer2/migration.d.ts +0 -18
  104. package/schematics/migrations/renderer-to-renderer2/migration.js +0 -228
  105. package/schematics/migrations/renderer-to-renderer2/util.d.ts +0 -18
  106. package/schematics/migrations/renderer-to-renderer2/util.js +0 -86
  107. package/schematics/migrations/router-preserve-query-params/index.d.ts +0 -14
  108. package/schematics/migrations/router-preserve-query-params/index.js +0 -75
  109. package/schematics/migrations/router-preserve-query-params/util.d.ts +0 -11
  110. package/schematics/migrations/router-preserve-query-params/util.js +0 -106
  111. package/schematics/migrations/static-queries/angular/directive_inputs.d.ts +0 -11
  112. package/schematics/migrations/static-queries/angular/directive_inputs.js +0 -87
  113. package/schematics/migrations/static-queries/angular/ng_query_visitor.d.ts +0 -45
  114. package/schematics/migrations/static-queries/angular/ng_query_visitor.js +0 -130
  115. package/schematics/migrations/static-queries/angular/query-definition.d.ts +0 -37
  116. package/schematics/migrations/static-queries/angular/query-definition.js +0 -33
  117. package/schematics/migrations/static-queries/angular/super_class.d.ts +0 -15
  118. package/schematics/migrations/static-queries/angular/super_class.js +0 -35
  119. package/schematics/migrations/static-queries/index.d.ts +0 -11
  120. package/schematics/migrations/static-queries/index.js +0 -244
  121. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.d.ts +0 -41
  122. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.js +0 -210
  123. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.d.ts +0 -24
  124. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.js +0 -38
  125. package/schematics/migrations/static-queries/strategies/timing-strategy.d.ts +0 -19
  126. package/schematics/migrations/static-queries/strategies/timing-strategy.js +0 -20
  127. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.d.ts +0 -82
  128. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.js +0 -372
  129. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.d.ts +0 -18
  130. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.js +0 -55
  131. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.d.ts +0 -27
  132. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +0 -93
  133. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.d.ts +0 -34
  134. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.js +0 -172
  135. package/schematics/migrations/static-queries/transform.d.ts +0 -21
  136. package/schematics/migrations/static-queries/transform.js +0 -105
  137. package/schematics/migrations/template-var-assignment/analyze_template.d.ts +0 -20
  138. package/schematics/migrations/template-var-assignment/analyze_template.js +0 -38
  139. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.d.ts +0 -28
  140. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +0 -80
  141. package/schematics/migrations/template-var-assignment/index.d.ts +0 -11
  142. package/schematics/migrations/template-var-assignment/index.js +0 -101
  143. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.d.ts +0 -14
  144. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.js +0 -128
  145. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.d.ts +0 -64
  146. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.js +0 -302
  147. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.d.ts +0 -19
  148. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.js +0 -20
  149. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.d.ts +0 -18
  150. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.js +0 -56
  151. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.d.ts +0 -18
  152. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.js +0 -99
  153. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.d.ts +0 -37
  154. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.js +0 -118
  155. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.d.ts +0 -37
  156. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.js +0 -129
  157. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.d.ts +0 -10
  158. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.js +0 -31
  159. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.d.ts +0 -16
  160. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.js +0 -68
  161. package/schematics/migrations/undecorated-classes-with-di/index.d.ts +0 -11
  162. package/schematics/migrations/undecorated-classes-with-di/index.js +0 -226
  163. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.d.ts +0 -38
  164. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.js +0 -135
  165. package/schematics/migrations/undecorated-classes-with-di/transform.d.ts +0 -97
  166. package/schematics/migrations/undecorated-classes-with-di/transform.js +0 -373
  167. package/schematics/migrations/undecorated-classes-with-di/update_recorder.d.ts +0 -20
  168. package/schematics/migrations/undecorated-classes-with-di/update_recorder.js +0 -20
  169. package/schematics/migrations/wait-for-async/index.d.ts +0 -11
  170. package/schematics/migrations/wait-for-async/index.js +0 -101
  171. package/schematics/migrations/wait-for-async/util.d.ts +0 -11
  172. package/schematics/migrations/wait-for-async/util.js +0 -40
  173. package/schematics/migrations/xhr-factory/index.d.ts +0 -10
  174. package/schematics/migrations/xhr-factory/index.js +0 -107
package/core.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-rc.1
2
+ * @license Angular v13.1.0-next.0
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1235,10 +1235,10 @@ export { ComponentFactory as ɵComponentFactory }
1235
1235
  * Use to obtain the factory for a given component type,
1236
1236
  * then use the factory's `create()` method to create a component of that type.
1237
1237
  *
1238
- * @see [Dynamic Components](guide/dynamic-component-loader)
1239
- * @see [Usage Example](guide/dynamic-component-loader#resolving-components)
1240
- * @see <live-example name="dynamic-component-loader" noDownload></live-example>
1241
- of the code in this cookbook
1238
+ * Note: since v13, dynamic component creation via
1239
+ * [`ViewContainerRef.createComponent`](api/core/ViewContainerRef#createComponent)
1240
+ * does **not** require resolving component factory: component class can be used directly.
1241
+ *
1242
1242
  * @publicApi
1243
1243
  */
1244
1244
  export declare abstract class ComponentFactoryResolver {
@@ -5174,8 +5174,11 @@ export declare abstract class NgModuleRef<T> {
5174
5174
  */
5175
5175
  abstract get injector(): Injector;
5176
5176
  /**
5177
- * The resolver that can retrieve the component factories
5178
- * declared in the `entryComponents` property of the module.
5177
+ * The resolver that can retrieve component factories in a context of this module.
5178
+ *
5179
+ * Note: since v13, dynamic component creation via
5180
+ * [`ViewContainerRef.createComponent`](api/core/ViewContainerRef#createComponent)
5181
+ * does **not** require resolving component factory: component class can be used directly.
5179
5182
  */
5180
5183
  abstract get componentFactoryResolver(): ComponentFactoryResolver;
5181
5184
  /**
@@ -9452,219 +9455,6 @@ export declare abstract class ViewRef extends ChangeDetectorRef {
9452
9455
  abstract onDestroy(callback: Function): any /** TODO #9100 */;
9453
9456
  }
9454
9457
 
9455
- declare class ViewRef_2<T> implements EmbeddedViewRef<T>, InternalViewRef, viewEngine_ChangeDetectorRef_interface {
9456
- /**
9457
- * This represents the `LView` associated with the point where `ChangeDetectorRef` was
9458
- * requested.
9459
- *
9460
- * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.
9461
- */
9462
- private _cdRefInjectingView?;
9463
- private _appRef;
9464
- private _attachedToViewContainer;
9465
- get rootNodes(): any[];
9466
- constructor(
9467
- /**
9468
- * This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.
9469
- *
9470
- * When ViewRef is created for a dynamic component, this also represents the `LView` for the
9471
- * component.
9472
- *
9473
- * For a "regular" ViewRef created for an embedded view, this is the `LView` for the embedded
9474
- * view.
9475
- *
9476
- * @internal
9477
- */
9478
- _lView: LView,
9479
- /**
9480
- * This represents the `LView` associated with the point where `ChangeDetectorRef` was
9481
- * requested.
9482
- *
9483
- * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.
9484
- */
9485
- _cdRefInjectingView?: LView | undefined);
9486
- get context(): T;
9487
- set context(value: T);
9488
- get destroyed(): boolean;
9489
- destroy(): void;
9490
- onDestroy(callback: Function): void;
9491
- /**
9492
- * Marks a view and all of its ancestors dirty.
9493
- *
9494
- * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is
9495
- * checked when it needs to be re-rendered but the two normal triggers haven't marked it
9496
- * dirty (i.e. inputs haven't changed and events haven't fired in the view).
9497
- *
9498
- * <!-- TODO: Add a link to a chapter on OnPush components -->
9499
- *
9500
- * @usageNotes
9501
- * ### Example
9502
- *
9503
- * ```typescript
9504
- * @Component({
9505
- * selector: 'app-root',
9506
- * template: `Number of ticks: {{numberOfTicks}}`
9507
- * changeDetection: ChangeDetectionStrategy.OnPush,
9508
- * })
9509
- * class AppComponent {
9510
- * numberOfTicks = 0;
9511
- *
9512
- * constructor(private ref: ChangeDetectorRef) {
9513
- * setInterval(() => {
9514
- * this.numberOfTicks++;
9515
- * // the following is required, otherwise the view will not be updated
9516
- * this.ref.markForCheck();
9517
- * }, 1000);
9518
- * }
9519
- * }
9520
- * ```
9521
- */
9522
- markForCheck(): void;
9523
- /**
9524
- * Detaches the view from the change detection tree.
9525
- *
9526
- * Detached views will not be checked during change detection runs until they are
9527
- * re-attached, even if they are dirty. `detach` can be used in combination with
9528
- * {@link ChangeDetectorRef#detectChanges detectChanges} to implement local change
9529
- * detection checks.
9530
- *
9531
- * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
9532
- * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
9533
- *
9534
- * @usageNotes
9535
- * ### Example
9536
- *
9537
- * The following example defines a component with a large list of readonly data.
9538
- * Imagine the data changes constantly, many times per second. For performance reasons,
9539
- * we want to check and update the list every five seconds. We can do that by detaching
9540
- * the component's change detector and doing a local check every five seconds.
9541
- *
9542
- * ```typescript
9543
- * class DataProvider {
9544
- * // in a real application the returned data will be different every time
9545
- * get data() {
9546
- * return [1,2,3,4,5];
9547
- * }
9548
- * }
9549
- *
9550
- * @Component({
9551
- * selector: 'giant-list',
9552
- * template: `
9553
- * <li *ngFor="let d of dataProvider.data">Data {{d}}</li>
9554
- * `,
9555
- * })
9556
- * class GiantList {
9557
- * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {
9558
- * ref.detach();
9559
- * setInterval(() => {
9560
- * this.ref.detectChanges();
9561
- * }, 5000);
9562
- * }
9563
- * }
9564
- *
9565
- * @Component({
9566
- * selector: 'app',
9567
- * providers: [DataProvider],
9568
- * template: `
9569
- * <giant-list><giant-list>
9570
- * `,
9571
- * })
9572
- * class App {
9573
- * }
9574
- * ```
9575
- */
9576
- detach(): void;
9577
- /**
9578
- * Re-attaches a view to the change detection tree.
9579
- *
9580
- * This can be used to re-attach views that were previously detached from the tree
9581
- * using {@link ChangeDetectorRef#detach detach}. Views are attached to the tree by default.
9582
- *
9583
- * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
9584
- *
9585
- * @usageNotes
9586
- * ### Example
9587
- *
9588
- * The following example creates a component displaying `live` data. The component will detach
9589
- * its change detector from the main change detector tree when the component's live property
9590
- * is set to false.
9591
- *
9592
- * ```typescript
9593
- * class DataProvider {
9594
- * data = 1;
9595
- *
9596
- * constructor() {
9597
- * setInterval(() => {
9598
- * this.data = this.data * 2;
9599
- * }, 500);
9600
- * }
9601
- * }
9602
- *
9603
- * @Component({
9604
- * selector: 'live-data',
9605
- * inputs: ['live'],
9606
- * template: 'Data: {{dataProvider.data}}'
9607
- * })
9608
- * class LiveData {
9609
- * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}
9610
- *
9611
- * set live(value) {
9612
- * if (value) {
9613
- * this.ref.reattach();
9614
- * } else {
9615
- * this.ref.detach();
9616
- * }
9617
- * }
9618
- * }
9619
- *
9620
- * @Component({
9621
- * selector: 'app-root',
9622
- * providers: [DataProvider],
9623
- * template: `
9624
- * Live Update: <input type="checkbox" [(ngModel)]="live">
9625
- * <live-data [live]="live"><live-data>
9626
- * `,
9627
- * })
9628
- * class AppComponent {
9629
- * live = true;
9630
- * }
9631
- * ```
9632
- */
9633
- reattach(): void;
9634
- /**
9635
- * Checks the view and its children.
9636
- *
9637
- * This can also be used in combination with {@link ChangeDetectorRef#detach detach} to implement
9638
- * local change detection checks.
9639
- *
9640
- * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
9641
- * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
9642
- *
9643
- * @usageNotes
9644
- * ### Example
9645
- *
9646
- * The following example defines a component with a large list of readonly data.
9647
- * Imagine, the data changes constantly, many times per second. For performance reasons,
9648
- * we want to check and update the list every five seconds.
9649
- *
9650
- * We can do that by detaching the component's change detector and doing a local change detection
9651
- * check every five seconds.
9652
- *
9653
- * See {@link ChangeDetectorRef#detach detach} for more information.
9654
- */
9655
- detectChanges(): void;
9656
- /**
9657
- * Checks the change detector and its children, and throws if any changes are detected.
9658
- *
9659
- * This is used in development mode to verify that running change detection doesn't
9660
- * introduce other changes.
9661
- */
9662
- checkNoChanges(): void;
9663
- attachToViewContainerRef(): void;
9664
- detachFromAppRef(): void;
9665
- attachToAppRef(appRef: ViewRefTracker): void;
9666
- }
9667
-
9668
9458
  /**
9669
9459
  * Interface for tracking root `ViewRef`s in `ApplicationRef`.
9670
9460
  *
@@ -11137,7 +10927,7 @@ export declare class ɵRender3ComponentRef<T> extends ComponentRef<T> {
11137
10927
  private _rootLView;
11138
10928
  private _tNode;
11139
10929
  instance: T;
11140
- hostView: ViewRef_2<T>;
10930
+ hostView: ɵViewRef<T>;
11141
10931
  changeDetectorRef: ChangeDetectorRef;
11142
10932
  componentType: Type<T>;
11143
10933
  constructor(componentType: Type<T>, instance: T, location: ElementRef, _rootLView: LView, _tNode: TElementNode | TContainerNode | TElementContainerNode);
@@ -11417,6 +11207,219 @@ export declare const enum ɵViewFlags {
11417
11207
  OnPush = 2
11418
11208
  }
11419
11209
 
11210
+ export declare class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, viewEngine_ChangeDetectorRef_interface {
11211
+ /**
11212
+ * This represents the `LView` associated with the point where `ChangeDetectorRef` was
11213
+ * requested.
11214
+ *
11215
+ * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.
11216
+ */
11217
+ private _cdRefInjectingView?;
11218
+ private _appRef;
11219
+ private _attachedToViewContainer;
11220
+ get rootNodes(): any[];
11221
+ constructor(
11222
+ /**
11223
+ * This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.
11224
+ *
11225
+ * When ViewRef is created for a dynamic component, this also represents the `LView` for the
11226
+ * component.
11227
+ *
11228
+ * For a "regular" ViewRef created for an embedded view, this is the `LView` for the embedded
11229
+ * view.
11230
+ *
11231
+ * @internal
11232
+ */
11233
+ _lView: LView,
11234
+ /**
11235
+ * This represents the `LView` associated with the point where `ChangeDetectorRef` was
11236
+ * requested.
11237
+ *
11238
+ * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.
11239
+ */
11240
+ _cdRefInjectingView?: LView | undefined);
11241
+ get context(): T;
11242
+ set context(value: T);
11243
+ get destroyed(): boolean;
11244
+ destroy(): void;
11245
+ onDestroy(callback: Function): void;
11246
+ /**
11247
+ * Marks a view and all of its ancestors dirty.
11248
+ *
11249
+ * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is
11250
+ * checked when it needs to be re-rendered but the two normal triggers haven't marked it
11251
+ * dirty (i.e. inputs haven't changed and events haven't fired in the view).
11252
+ *
11253
+ * <!-- TODO: Add a link to a chapter on OnPush components -->
11254
+ *
11255
+ * @usageNotes
11256
+ * ### Example
11257
+ *
11258
+ * ```typescript
11259
+ * @Component({
11260
+ * selector: 'app-root',
11261
+ * template: `Number of ticks: {{numberOfTicks}}`
11262
+ * changeDetection: ChangeDetectionStrategy.OnPush,
11263
+ * })
11264
+ * class AppComponent {
11265
+ * numberOfTicks = 0;
11266
+ *
11267
+ * constructor(private ref: ChangeDetectorRef) {
11268
+ * setInterval(() => {
11269
+ * this.numberOfTicks++;
11270
+ * // the following is required, otherwise the view will not be updated
11271
+ * this.ref.markForCheck();
11272
+ * }, 1000);
11273
+ * }
11274
+ * }
11275
+ * ```
11276
+ */
11277
+ markForCheck(): void;
11278
+ /**
11279
+ * Detaches the view from the change detection tree.
11280
+ *
11281
+ * Detached views will not be checked during change detection runs until they are
11282
+ * re-attached, even if they are dirty. `detach` can be used in combination with
11283
+ * {@link ChangeDetectorRef#detectChanges detectChanges} to implement local change
11284
+ * detection checks.
11285
+ *
11286
+ * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
11287
+ * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
11288
+ *
11289
+ * @usageNotes
11290
+ * ### Example
11291
+ *
11292
+ * The following example defines a component with a large list of readonly data.
11293
+ * Imagine the data changes constantly, many times per second. For performance reasons,
11294
+ * we want to check and update the list every five seconds. We can do that by detaching
11295
+ * the component's change detector and doing a local check every five seconds.
11296
+ *
11297
+ * ```typescript
11298
+ * class DataProvider {
11299
+ * // in a real application the returned data will be different every time
11300
+ * get data() {
11301
+ * return [1,2,3,4,5];
11302
+ * }
11303
+ * }
11304
+ *
11305
+ * @Component({
11306
+ * selector: 'giant-list',
11307
+ * template: `
11308
+ * <li *ngFor="let d of dataProvider.data">Data {{d}}</li>
11309
+ * `,
11310
+ * })
11311
+ * class GiantList {
11312
+ * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {
11313
+ * ref.detach();
11314
+ * setInterval(() => {
11315
+ * this.ref.detectChanges();
11316
+ * }, 5000);
11317
+ * }
11318
+ * }
11319
+ *
11320
+ * @Component({
11321
+ * selector: 'app',
11322
+ * providers: [DataProvider],
11323
+ * template: `
11324
+ * <giant-list><giant-list>
11325
+ * `,
11326
+ * })
11327
+ * class App {
11328
+ * }
11329
+ * ```
11330
+ */
11331
+ detach(): void;
11332
+ /**
11333
+ * Re-attaches a view to the change detection tree.
11334
+ *
11335
+ * This can be used to re-attach views that were previously detached from the tree
11336
+ * using {@link ChangeDetectorRef#detach detach}. Views are attached to the tree by default.
11337
+ *
11338
+ * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
11339
+ *
11340
+ * @usageNotes
11341
+ * ### Example
11342
+ *
11343
+ * The following example creates a component displaying `live` data. The component will detach
11344
+ * its change detector from the main change detector tree when the component's live property
11345
+ * is set to false.
11346
+ *
11347
+ * ```typescript
11348
+ * class DataProvider {
11349
+ * data = 1;
11350
+ *
11351
+ * constructor() {
11352
+ * setInterval(() => {
11353
+ * this.data = this.data * 2;
11354
+ * }, 500);
11355
+ * }
11356
+ * }
11357
+ *
11358
+ * @Component({
11359
+ * selector: 'live-data',
11360
+ * inputs: ['live'],
11361
+ * template: 'Data: {{dataProvider.data}}'
11362
+ * })
11363
+ * class LiveData {
11364
+ * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}
11365
+ *
11366
+ * set live(value) {
11367
+ * if (value) {
11368
+ * this.ref.reattach();
11369
+ * } else {
11370
+ * this.ref.detach();
11371
+ * }
11372
+ * }
11373
+ * }
11374
+ *
11375
+ * @Component({
11376
+ * selector: 'app-root',
11377
+ * providers: [DataProvider],
11378
+ * template: `
11379
+ * Live Update: <input type="checkbox" [(ngModel)]="live">
11380
+ * <live-data [live]="live"><live-data>
11381
+ * `,
11382
+ * })
11383
+ * class AppComponent {
11384
+ * live = true;
11385
+ * }
11386
+ * ```
11387
+ */
11388
+ reattach(): void;
11389
+ /**
11390
+ * Checks the view and its children.
11391
+ *
11392
+ * This can also be used in combination with {@link ChangeDetectorRef#detach detach} to implement
11393
+ * local change detection checks.
11394
+ *
11395
+ * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
11396
+ * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
11397
+ *
11398
+ * @usageNotes
11399
+ * ### Example
11400
+ *
11401
+ * The following example defines a component with a large list of readonly data.
11402
+ * Imagine, the data changes constantly, many times per second. For performance reasons,
11403
+ * we want to check and update the list every five seconds.
11404
+ *
11405
+ * We can do that by detaching the component's change detector and doing a local change detection
11406
+ * check every five seconds.
11407
+ *
11408
+ * See {@link ChangeDetectorRef#detach detach} for more information.
11409
+ */
11410
+ detectChanges(): void;
11411
+ /**
11412
+ * Checks the change detector and its children, and throws if any changes are detected.
11413
+ *
11414
+ * This is used in development mode to verify that running change detection doesn't
11415
+ * introduce other changes.
11416
+ */
11417
+ checkNoChanges(): void;
11418
+ attachToViewContainerRef(): void;
11419
+ detachFromAppRef(): void;
11420
+ attachToAppRef(appRef: ViewRefTracker): void;
11421
+ }
11422
+
11420
11423
  /**
11421
11424
  * Wait on component until it is rendered.
11422
11425
  *
package/esm2020/index.mjs CHANGED
@@ -5,9 +5,10 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- // This file is not used to build this module. It is only used during editing
9
- // by the TypeScript language service and during build for verification. `ngc`
10
- // replaces this file with production index.ts when it rewrites private symbol
11
- // names.
8
+ /* This file is not used to build this module. It is only used during editing
9
+ * by the TypeScript language service and during build for verification. `ngc`
10
+ * replaces this file with production index.ts when it rewrites private symbol
11
+ * names.
12
+ */
12
13
  export * from './public_api';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILDZFQUE2RTtBQUM3RSw4RUFBOEU7QUFDOUUsOEVBQThFO0FBQzlFLFNBQVM7QUFFVCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBUaGlzIGZpbGUgaXMgbm90IHVzZWQgdG8gYnVpbGQgdGhpcyBtb2R1bGUuIEl0IGlzIG9ubHkgdXNlZCBkdXJpbmcgZWRpdGluZ1xuLy8gYnkgdGhlIFR5cGVTY3JpcHQgbGFuZ3VhZ2Ugc2VydmljZSBhbmQgZHVyaW5nIGJ1aWxkIGZvciB2ZXJpZmljYXRpb24uIGBuZ2NgXG4vLyByZXBsYWNlcyB0aGlzIGZpbGUgd2l0aCBwcm9kdWN0aW9uIGluZGV4LnRzIHdoZW4gaXQgcmV3cml0ZXMgcHJpdmF0ZSBzeW1ib2xcbi8vIG5hbWVzLlxuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7O0dBSUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKiBUaGlzIGZpbGUgaXMgbm90IHVzZWQgdG8gYnVpbGQgdGhpcyBtb2R1bGUuIEl0IGlzIG9ubHkgdXNlZCBkdXJpbmcgZWRpdGluZ1xuICogYnkgdGhlIFR5cGVTY3JpcHQgbGFuZ3VhZ2Ugc2VydmljZSBhbmQgZHVyaW5nIGJ1aWxkIGZvciB2ZXJpZmljYXRpb24uIGBuZ2NgXG4gKiByZXBsYWNlcyB0aGlzIGZpbGUgd2l0aCBwcm9kdWN0aW9uIGluZGV4LnRzIHdoZW4gaXQgcmV3cml0ZXMgcHJpdmF0ZSBzeW1ib2xcbiAqIG5hbWVzLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -19,7 +19,6 @@ import { ComponentFactoryResolver } from './linker';
19
19
  import { Compiler } from './linker/compiler';
20
20
  import { NgModule } from './metadata';
21
21
  import { SCHEDULER } from './render3/component_ref';
22
- import { setLocaleId } from './render3/i18n/i18n_locale_id';
23
22
  import { NgZone } from './zone';
24
23
  import * as i0 from "./r3_symbols";
25
24
  import * as i1 from "./application_ref";
@@ -30,11 +29,7 @@ export function _keyValueDiffersFactory() {
30
29
  return defaultKeyValueDiffers;
31
30
  }
32
31
  export function _localeFactory(locale) {
33
- locale = locale || getGlobalLocale();
34
- if (ivyEnabled) {
35
- setLocaleId(locale);
36
- }
37
- return locale;
32
+ return locale || getGlobalLocale();
38
33
  }
39
34
  /**
40
35
  * Work out the locale from the potential global properties.
@@ -132,4 +127,4 @@ ApplicationModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: APPLI
132
127
  type: NgModule,
133
128
  args: [{ providers: APPLICATION_MODULE_PROVIDERS }]
134
129
  }], function () { return [{ type: i1.ApplicationRef }]; }, null); })();
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25fbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvYXBwbGljYXRpb25fbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNySSxPQUFPLEVBQUMsUUFBUSxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztB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O0lBQ0gsT0FBTyxVQUFTLEVBQWM7UUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qiw0Q0FBNEM7SUFDNUMsWUFBWSxNQUFzQixJQUFHLENBQUM7O2tGQUYzQixpQkFBaUI7bUVBQWpCLGlCQUFpQjt3RUFEUiw0QkFBNEI7c0ZBQ3JDLGlCQUFpQjtjQUQ3QixRQUFRO2VBQUMsRUFBQyxTQUFTLEVBQUUsNEJBQTRCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEFwcGxpY2F0aW9uSW5pdFN0YXR1c30gZnJvbSAnLi9hcHBsaWNhdGlvbl9pbml0JztcbmltcG9ydCB7QXBwbGljYXRpb25SZWZ9IGZyb20gJy4vYXBwbGljYXRpb25fcmVmJztcbmltcG9ydCB7QVBQX0lEX1JBTkRPTV9QUk9WSURFUn0gZnJvbSAnLi9hcHBsaWNhdGlvbl90b2tlbnMnO1xuaW1wb3J0IHtkZWZhdWx0SXRlcmFibGVEaWZmZXJzLCBkZWZhdWx0S2V5VmFsdWVEaWZmZXJzLCBJdGVyYWJsZURpZmZlcnMsIEtleVZhbHVlRGlmZmVyc30gZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rpb24nO1xuaW1wb3J0IHtJbmplY3RvciwgU3RhdGljUHJvdmlkZXJ9IGZyb20gJy4vZGknO1xuaW1wb3J0IHtJbmplY3QsIE9wdGlvbmFsLCBTa2lwU2VsZn0gZnJvbSAnLi9kaS9tZXRhZGF0YSc7XG5pbXBvcnQge0Vycm9ySGFuZGxlcn0gZnJvbSAnLi9lcnJvcl9oYW5kbGVyJztcbmltcG9ydCB7REVGQVVMVF9MT0NBTEVfSUQsIFVTRF9DVVJSRU5DWV9DT0RFfSBmcm9tICcuL2kxOG4vbG9jYWxpemF0aW9uJztcbmltcG9ydCB7REVGQVVMVF9DVVJSRU5DWV9DT0RFLCBMT0NBTEVfSUR9IGZyb20gJy4vaTE4bi90b2tlbnMnO1xuaW1wb3J0IHtpdnlFbmFibGVkfSBmcm9tICcuL2l2eV9zd2l0Y2gnO1xuaW1wb3J0IHtDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9IGZyb20gJy4vbGlua2VyJztcbmltcG9ydCB7Q29tcGlsZXJ9IGZyb20gJy4vbGlua2VyL2NvbXBpbGVyJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJy4vbWV0YWRhdGEnO1xuaW1wb3J0IHtTQ0hFRFVMRVJ9IGZyb20gJy4vcmVuZGVyMy9jb21wb25lbnRfcmVmJztcbmltcG9ydCB7c2V0TG9jYWxlSWR9IGZyb20gJy4vcmVuZGVyMy9pMThuL2kxOG5fbG9jYWxlX2lkJztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuL3pvbmUnO1xuXG5kZWNsYXJlIGNvbnN0ICRsb2NhbGl6ZToge2xvY2FsZT86IHN0cmluZ307XG5cbmV4cG9ydCBmdW5jdGlvbiBfaXRlcmFibGVEaWZmZXJzRmFjdG9yeSgpIHtcbiAgcmV0dXJuIGRlZmF1bHRJdGVyYWJsZURpZmZlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfa2V5VmFsdWVEaWZmZXJzRmFjdG9yeSgpIHtcbiAgcmV0dXJuIGRlZmF1bHRLZXlWYWx1ZURpZmZlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfbG9jYWxlRmFjdG9yeShsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBsb2NhbGUgPSBsb2NhbGUgfHwgZ2V0R2xvYmFsTG9jYWxlKCk7XG4gIGlmIChpdnlFbmFibGVkKSB7XG4gICAgc2V0TG9jYWxlSWQobG9jYWxlKTtcbiAgfVxuICByZXR1cm4gbG9jYWxlO1xufVxuXG4vKipcbiAqIFdvcmsgb3V0IHRoZSBsb2NhbGUgZnJvbSB0aGUgcG90ZW50aWFsIGdsb2JhbCBwcm9wZXJ0aWVzLlxuICpcbiAqICogQ2xvc3VyZSBDb21waWxlcjogdXNlIGBnb29nLmdldExvY2FsZSgpYC5cbiAqICogSXZ5IGVuYWJsZWQ6IHVzZSBgJGxvY2FsaXplLmxvY2FsZWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbExvY2FsZSgpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0kxOG5DbG9zdXJlTW9kZSAmJlxuICAgICAgdHlwZW9mIGdvb2cgIT09ICd1bmRlZmluZWQnICYmIGdvb2cuZ2V0TG9jYWxlKCkgIT09ICdlbicpIHtcbiAgICAvLyAqIFRoZSBkZWZhdWx0IGBnb29nLmdldExvY2FsZSgpYCB2YWx1ZSBpcyBgZW5gLCB3aGlsZSBBbmd1bGFyIHVzZWQgYGVuLVVTYC5cbiAgICAvLyAqIEluIG9yZGVyIHRvIHByZXNlcnZlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3ZSB1c2UgQW5ndWxhciBkZWZhdWx0IHZhbHVlIG92ZXJcbiAgICAvLyAgIENsb3N1cmUgQ29tcGlsZXIncyBvbmUuXG4gICAgcmV0dXJuIGdvb2cuZ2V0TG9jYWxlKCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gS0VFUCBgdHlwZW9mICRsb2NhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgJGxvY2FsaXplLmxvY2FsZWAgSU4gU1lOQyBXSVRIIFRIRSBMT0NBTElaRVxuICAgIC8vIENPTVBJTEUtVElNRSBJTkxJTkVSLlxuICAgIC8vXG4gICAgLy8gKiBEdXJpbmcgY29tcGlsZSB0aW1lIGlubGluaW5nIG9mIHRyYW5zbGF0aW9ucyB0aGUgZXhwcmVzc2lvbiB3aWxsIGJlIHJlcGxhY2VkXG4gICAgLy8gICB3aXRoIGEgc3RyaW5nIGxpdGVyYWwgdGhhdCBpcyB0aGUgY3VycmVudCBsb2NhbGUuIE90aGVyIGZvcm1zIG9mIHRoaXMgZXhwcmVzc2lvbiBhcmUgbm90XG4gICAgLy8gICBndWFyYW50ZWVkIHRvIGJlIHJlcGxhY2VkLlxuICAgIC8vXG4gICAgLy8gKiBEdXJpbmcgcnVudGltZSB0cmFuc2xhdGlvbiBldmFsdWF0aW9uLCB0aGUgZGV2ZWxvcGVyIGlzIHJlcXVpcmVkIHRvIHNldCBgJGxvY2FsaXplLmxvY2FsZWBcbiAgICAvLyAgIGlmIHJlcXVpcmVkLCBvciBqdXN0IHRvIHByb3ZpZGUgdGhlaXIgb3duIGBMT0NBTEVfSURgIHByb3ZpZGVyLlxuICAgIHJldHVybiAoaXZ5RW5hYmxlZCAmJiB0eXBlb2YgJGxvY2FsaXplICE9PSAndW5kZWZpbmVkJyAmJiAkbG9jYWxpemUubG9jYWxlKSB8fFxuICAgICAgICBERUZBVUxUX0xPQ0FMRV9JRDtcbiAgfVxufVxuXG4vKipcbiAqIEEgYnVpbHQtaW4gW2RlcGVuZGVuY3kgaW5qZWN0aW9uIHRva2VuXShndWlkZS9nbG9zc2FyeSNkaS10b2tlbilcbiAqIHRoYXQgaXMgdXNlZCB0byBjb25maWd1cmUgdGhlIHJvb3QgaW5qZWN0b3IgZm9yIGJvb3RzdHJhcHBpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBBUFBMSUNBVElPTl9NT0RVTEVfUFJPVklERVJTOiBTdGF0aWNQcm92aWRlcltdID0gW1xuICB7XG4gICAgcHJvdmlkZTogQXBwbGljYXRpb25SZWYsXG4gICAgdXNlQ2xhc3M6IEFwcGxpY2F0aW9uUmVmLFxuICAgIGRlcHM6IFtOZ1pvbmUsIEluamVjdG9yLCBFcnJvckhhbmRsZXIsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQXBwbGljYXRpb25Jbml0U3RhdHVzXVxuICB9LFxuICB7cHJvdmlkZTogU0NIRURVTEVSLCBkZXBzOiBbTmdab25lXSwgdXNlRmFjdG9yeTogem9uZVNjaGVkdWxlckZhY3Rvcnl9LFxuICB7XG4gICAgcHJvdmlkZTogQXBwbGljYXRpb25Jbml0U3RhdHVzLFxuICAgIHVzZUNsYXNzOiBBcHBsaWNhdGlvbkluaXRTdGF0dXMsXG4gICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgQVBQX0lOSVRJQUxJWkVSXV1cbiAgfSxcbiAge3Byb3ZpZGU6IENvbXBpbGVyLCB1c2VDbGFzczogQ29tcGlsZXIsIGRlcHM6IFtdfSxcbiAgQVBQX0lEX1JBTkRPTV9QUk9WSURFUixcbiAge3Byb3ZpZGU6IEl0ZXJhYmxlRGlmZmVycywgdXNlRmFjdG9yeTogX2l0ZXJhYmxlRGlmZmVyc0ZhY3RvcnksIGRlcHM6IFtdfSxcbiAge3Byb3ZpZGU6IEtleVZhbHVlRGlmZmVycywgdXNlRmFjdG9yeTogX2tleVZhbHVlRGlmZmVyc0ZhY3RvcnksIGRlcHM6IFtdfSxcbiAge1xuICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICB1c2VGYWN0b3J5OiBfbG9jYWxlRmFjdG9yeSxcbiAgICBkZXBzOiBbW25ldyBJbmplY3QoTE9DQUxFX0lEKSwgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV1cbiAgfSxcbiAge3Byb3ZpZGU6IERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSwgdXNlVmFsdWU6IFVTRF9DVVJSRU5DWV9DT0RFfSxcbl07XG5cbi8qKlxuICogU2NoZWR1bGUgd29yayBhdCBuZXh0IGF2YWlsYWJsZSBzbG90LlxuICpcbiAqIEluIEl2eSB0aGlzIGlzIGp1c3QgYHJlcXVlc3RBbmltYXRpb25GcmFtZWAuIEZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMgd2hlbiBib290c3RyYXBwZWRcbiAqIHVzaW5nIGBwbGF0Zm9ybVJlZi5ib290c3RyYXBgIHdlIG5lZWQgdG8gdXNlIGBOZ1pvbmUub25TdGFibGVgIGFzIHRoZSBzY2hlZHVsaW5nIG1lY2hhbmlzbS5cbiAqIFRoaXMgb3ZlcnJpZGVzIHRoZSBzY2hlZHVsaW5nIG1lY2hhbmlzbSBpbiBJdnkgdG8gYE5nWm9uZS5vblN0YWJsZWAuXG4gKlxuICogQHBhcmFtIG5nWm9uZSBOZ1pvbmUgdG8gdXNlIGZvciBzY2hlZHVsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gem9uZVNjaGVkdWxlckZhY3Rvcnkobmdab25lOiBOZ1pvbmUpOiAoZm46ICgpID0+IHZvaWQpID0+IHZvaWQge1xuICBsZXQgcXVldWU6ICgoKSA9PiB2b2lkKVtdID0gW107XG4gIG5nWm9uZS5vblN0YWJsZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgIHF1ZXVlLnBvcCgpISgpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBmdW5jdGlvbihmbjogKCkgPT4gdm9pZCkge1xuICAgIHF1ZXVlLnB1c2goZm4pO1xuICB9O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIHJvb3QgaW5qZWN0b3IgZm9yIGFuIGFwcCB3aXRoXG4gKiBwcm92aWRlcnMgb2YgYEBhbmd1bGFyL2NvcmVgIGRlcGVuZGVuY2llcyB0aGF0IGBBcHBsaWNhdGlvblJlZmAgbmVlZHNcbiAqIHRvIGJvb3RzdHJhcCBjb21wb25lbnRzLlxuICpcbiAqIFJlLWV4cG9ydGVkIGJ5IGBCcm93c2VyTW9kdWxlYCwgd2hpY2ggaXMgaW5jbHVkZWQgYXV0b21hdGljYWxseSBpbiB0aGUgcm9vdFxuICogYEFwcE1vZHVsZWAgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IGFwcCB3aXRoIHRoZSBDTEkgYG5ld2AgY29tbWFuZC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBOZ01vZHVsZSh7cHJvdmlkZXJzOiBBUFBMSUNBVElPTl9NT0RVTEVfUFJPVklERVJTfSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbk1vZHVsZSB7XG4gIC8vIEluamVjdCBBcHBsaWNhdGlvblJlZiB0byBtYWtlIGl0IGVhZ2VyLi4uXG4gIGNvbnN0cnVjdG9yKGFwcFJlZjogQXBwbGljYXRpb25SZWYpIHt9XG59XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25fbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvYXBwbGljYXRpb25fbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNySSxPQUFPLEVBQUMsUUFBUSxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxRQUFRLENBQUM7OztBQUk5QixNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sc0JBQXNCLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFlO0lBQzVDLE9BQU8sTUFBTSxJQUFJLGVBQWUsRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFDRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxlQUFlO0lBQzdCLElBQUksT0FBTyxpQkFBaUIsS0FBSyxXQUFXLElBQUksaUJBQWlCO1FBQzdELE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzVELDhFQUE4RTtRQUM5RSxvRkFBb0Y7UUFDcEYsNEJBQTRCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0tBQ3pCO1NBQU07UUFDTCx3RkFBd0Y7UUFDeEYsd0JBQXdCO1FBQ3hCLEVBQUU7UUFDRixpRkFBaUY7UUFDakYsNkZBQTZGO1FBQzdGLCtCQUErQjtRQUMvQixFQUFFO1FBQ0YsK0ZBQStGO1FBQy9GLG9FQUFvRTtRQUNwRSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLGlCQUFpQixDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFxQjtJQUM1RDtRQUNFLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixDQUFDO0tBQ3hGO0lBQ0QsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBQztJQUN0RTtRQUNFLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDMUM7SUFDRCxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDO0lBQ2pELHNCQUFzQjtJQUN0QixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7SUFDekUsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDO0lBQ3pFO1FBQ0UsT0FBTyxFQUFFLFNBQVM7UUFDbEIsVUFBVSxFQUFFLGNBQWM7UUFDMUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNoRTtJQUNELEVBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBQztDQUM5RCxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLEtBQUssR0FBbUIsRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkIsS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sVUFBUyxFQUFjO1FBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsNENBQTRDO0lBQzVDLFlBQVksTUFBc0IsSUFBRyxDQUFDOztrRkFGM0IsaUJBQWlCO21FQUFqQixpQkFBaUI7d0VBRFIsNEJBQTRCO3NGQUNyQyxpQkFBaUI7Y0FEN0IsUUFBUTtlQUFDLEVBQUMsU0FBUyxFQUFFLDRCQUE0QixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBBcHBsaWNhdGlvbkluaXRTdGF0dXN9IGZyb20gJy4vYXBwbGljYXRpb25faW5pdCc7XG5pbXBvcnQge0FwcGxpY2F0aW9uUmVmfSBmcm9tICcuL2FwcGxpY2F0aW9uX3JlZic7XG5pbXBvcnQge0FQUF9JRF9SQU5ET01fUFJPVklERVJ9IGZyb20gJy4vYXBwbGljYXRpb25fdG9rZW5zJztcbmltcG9ydCB7ZGVmYXVsdEl0ZXJhYmxlRGlmZmVycywgZGVmYXVsdEtleVZhbHVlRGlmZmVycywgSXRlcmFibGVEaWZmZXJzLCBLZXlWYWx1ZURpZmZlcnN9IGZyb20gJy4vY2hhbmdlX2RldGVjdGlvbi9jaGFuZ2VfZGV0ZWN0aW9uJztcbmltcG9ydCB7SW5qZWN0b3IsIFN0YXRpY1Byb3ZpZGVyfSBmcm9tICcuL2RpJztcbmltcG9ydCB7SW5qZWN0LCBPcHRpb25hbCwgU2tpcFNlbGZ9IGZyb20gJy4vZGkvbWV0YWRhdGEnO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJ9IGZyb20gJy4vZXJyb3JfaGFuZGxlcic7XG5pbXBvcnQge0RFRkFVTFRfTE9DQUxFX0lELCBVU0RfQ1VSUkVOQ1lfQ09ERX0gZnJvbSAnLi9pMThuL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0RFRkFVTFRfQ1VSUkVOQ1lfQ09ERSwgTE9DQUxFX0lEfSBmcm9tICcuL2kxOG4vdG9rZW5zJztcbmltcG9ydCB7aXZ5RW5hYmxlZH0gZnJvbSAnLi9pdnlfc3dpdGNoJztcbmltcG9ydCB7Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyfSBmcm9tICcuL2xpbmtlcic7XG5pbXBvcnQge0NvbXBpbGVyfSBmcm9tICcuL2xpbmtlci9jb21waWxlcic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICcuL21ldGFkYXRhJztcbmltcG9ydCB7U0NIRURVTEVSfSBmcm9tICcuL3JlbmRlcjMvY29tcG9uZW50X3JlZic7XG5pbXBvcnQge05nWm9uZX0gZnJvbSAnLi96b25lJztcblxuZGVjbGFyZSBjb25zdCAkbG9jYWxpemU6IHtsb2NhbGU/OiBzdHJpbmd9O1xuXG5leHBvcnQgZnVuY3Rpb24gX2l0ZXJhYmxlRGlmZmVyc0ZhY3RvcnkoKSB7XG4gIHJldHVybiBkZWZhdWx0SXRlcmFibGVEaWZmZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2tleVZhbHVlRGlmZmVyc0ZhY3RvcnkoKSB7XG4gIHJldHVybiBkZWZhdWx0S2V5VmFsdWVEaWZmZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2xvY2FsZUZhY3RvcnkobG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGxvY2FsZSB8fCBnZXRHbG9iYWxMb2NhbGUoKTtcbn1cbi8qKlxuICogV29yayBvdXQgdGhlIGxvY2FsZSBmcm9tIHRoZSBwb3RlbnRpYWwgZ2xvYmFsIHByb3BlcnRpZXMuXG4gKlxuICogKiBDbG9zdXJlIENvbXBpbGVyOiB1c2UgYGdvb2cuZ2V0TG9jYWxlKClgLlxuICogKiBJdnkgZW5hYmxlZDogdXNlIGAkbG9jYWxpemUubG9jYWxlYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsTG9jYWxlKCk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nSTE4bkNsb3N1cmVNb2RlICYmXG4gICAgICB0eXBlb2YgZ29vZyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ29vZy5nZXRMb2NhbGUoKSAhPT0gJ2VuJykge1xuICAgIC8vICogVGhlIGRlZmF1bHQgYGdvb2cuZ2V0TG9jYWxlKClgIHZhbHVlIGlzIGBlbmAsIHdoaWxlIEFuZ3VsYXIgdXNlZCBgZW4tVVNgLlxuICAgIC8vICogSW4gb3JkZXIgdG8gcHJlc2VydmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIHVzZSBBbmd1bGFyIGRlZmF1bHQgdmFsdWUgb3ZlclxuICAgIC8vICAgQ2xvc3VyZSBDb21waWxlcidzIG9uZS5cbiAgICByZXR1cm4gZ29vZy5nZXRMb2NhbGUoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBLRUVQIGB0eXBlb2YgJGxvY2FsaXplICE9PSAndW5kZWZpbmVkJyAmJiAkbG9jYWxpemUubG9jYWxlYCBJTiBTWU5DIFdJVEggVEhFIExPQ0FMSVpFXG4gICAgLy8gQ09NUElMRS1USU1FIElOTElORVIuXG4gICAgLy9cbiAgICAvLyAqIER1cmluZyBjb21waWxlIHRpbWUgaW5saW5pbmcgb2YgdHJhbnNsYXRpb25zIHRoZSBleHByZXNzaW9uIHdpbGwgYmUgcmVwbGFjZWRcbiAgICAvLyAgIHdpdGggYSBzdHJpbmcgbGl0ZXJhbCB0aGF0IGlzIHRoZSBjdXJyZW50IGxvY2FsZS4gT3RoZXIgZm9ybXMgb2YgdGhpcyBleHByZXNzaW9uIGFyZSBub3RcbiAgICAvLyAgIGd1YXJhbnRlZWQgdG8gYmUgcmVwbGFjZWQuXG4gICAgLy9cbiAgICAvLyAqIER1cmluZyBydW50aW1lIHRyYW5zbGF0aW9uIGV2YWx1YXRpb24sIHRoZSBkZXZlbG9wZXIgaXMgcmVxdWlyZWQgdG8gc2V0IGAkbG9jYWxpemUubG9jYWxlYFxuICAgIC8vICAgaWYgcmVxdWlyZWQsIG9yIGp1c3QgdG8gcHJvdmlkZSB0aGVpciBvd24gYExPQ0FMRV9JRGAgcHJvdmlkZXIuXG4gICAgcmV0dXJuIChpdnlFbmFibGVkICYmIHR5cGVvZiAkbG9jYWxpemUgIT09ICd1bmRlZmluZWQnICYmICRsb2NhbGl6ZS5sb2NhbGUpIHx8XG4gICAgICAgIERFRkFVTFRfTE9DQUxFX0lEO1xuICB9XG59XG5cbi8qKlxuICogQSBidWlsdC1pbiBbZGVwZW5kZW5jeSBpbmplY3Rpb24gdG9rZW5dKGd1aWRlL2dsb3NzYXJ5I2RpLXRva2VuKVxuICogdGhhdCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgcm9vdCBpbmplY3RvciBmb3IgYm9vdHN0cmFwcGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFQUExJQ0FUSU9OX01PRFVMRV9QUk9WSURFUlM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gIHtcbiAgICBwcm92aWRlOiBBcHBsaWNhdGlvblJlZixcbiAgICB1c2VDbGFzczogQXBwbGljYXRpb25SZWYsXG4gICAgZGVwczogW05nWm9uZSwgSW5qZWN0b3IsIEVycm9ySGFuZGxlciwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBBcHBsaWNhdGlvbkluaXRTdGF0dXNdXG4gIH0sXG4gIHtwcm92aWRlOiBTQ0hFRFVMRVIsIGRlcHM6IFtOZ1pvbmVdLCB1c2VGYWN0b3J5OiB6b25lU2NoZWR1bGVyRmFjdG9yeX0sXG4gIHtcbiAgICBwcm92aWRlOiBBcHBsaWNhdGlvbkluaXRTdGF0dXMsXG4gICAgdXNlQ2xhc3M6IEFwcGxpY2F0aW9uSW5pdFN0YXR1cyxcbiAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBBUFBfSU5JVElBTElaRVJdXVxuICB9LFxuICB7cHJvdmlkZTogQ29tcGlsZXIsIHVzZUNsYXNzOiBDb21waWxlciwgZGVwczogW119LFxuICBBUFBfSURfUkFORE9NX1BST1ZJREVSLFxuICB7cHJvdmlkZTogSXRlcmFibGVEaWZmZXJzLCB1c2VGYWN0b3J5OiBfaXRlcmFibGVEaWZmZXJzRmFjdG9yeSwgZGVwczogW119LFxuICB7cHJvdmlkZTogS2V5VmFsdWVEaWZmZXJzLCB1c2VGYWN0b3J5OiBfa2V5VmFsdWVEaWZmZXJzRmFjdG9yeSwgZGVwczogW119LFxuICB7XG4gICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgIHVzZUZhY3Rvcnk6IF9sb2NhbGVGYWN0b3J5LFxuICAgIGRlcHM6IFtbbmV3IEluamVjdChMT0NBTEVfSUQpLCBuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCldXVxuICB9LFxuICB7cHJvdmlkZTogREVGQVVMVF9DVVJSRU5DWV9DT0RFLCB1c2VWYWx1ZTogVVNEX0NVUlJFTkNZX0NPREV9LFxuXTtcblxuLyoqXG4gKiBTY2hlZHVsZSB3b3JrIGF0IG5leHQgYXZhaWxhYmxlIHNsb3QuXG4gKlxuICogSW4gSXZ5IHRoaXMgaXMganVzdCBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYC4gRm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucyB3aGVuIGJvb3RzdHJhcHBlZFxuICogdXNpbmcgYHBsYXRmb3JtUmVmLmJvb3RzdHJhcGAgd2UgbmVlZCB0byB1c2UgYE5nWm9uZS5vblN0YWJsZWAgYXMgdGhlIHNjaGVkdWxpbmcgbWVjaGFuaXNtLlxuICogVGhpcyBvdmVycmlkZXMgdGhlIHNjaGVkdWxpbmcgbWVjaGFuaXNtIGluIEl2eSB0byBgTmdab25lLm9uU3RhYmxlYC5cbiAqXG4gKiBAcGFyYW0gbmdab25lIE5nWm9uZSB0byB1c2UgZm9yIHNjaGVkdWxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lU2NoZWR1bGVyRmFjdG9yeShuZ1pvbmU6IE5nWm9uZSk6IChmbjogKCkgPT4gdm9pZCkgPT4gdm9pZCB7XG4gIGxldCBxdWV1ZTogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgbmdab25lLm9uU3RhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgcXVldWUucG9wKCkhKCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGZ1bmN0aW9uKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgcXVldWUucHVzaChmbik7XG4gIH07XG59XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgcm9vdCBpbmplY3RvciBmb3IgYW4gYXBwIHdpdGhcbiAqIHByb3ZpZGVycyBvZiBgQGFuZ3VsYXIvY29yZWAgZGVwZW5kZW5jaWVzIHRoYXQgYEFwcGxpY2F0aW9uUmVmYCBuZWVkc1xuICogdG8gYm9vdHN0cmFwIGNvbXBvbmVudHMuXG4gKlxuICogUmUtZXhwb3J0ZWQgYnkgYEJyb3dzZXJNb2R1bGVgLCB3aGljaCBpcyBpbmNsdWRlZCBhdXRvbWF0aWNhbGx5IGluIHRoZSByb290XG4gKiBgQXBwTW9kdWxlYCB3aGVuIHlvdSBjcmVhdGUgYSBuZXcgYXBwIHdpdGggdGhlIENMSSBgbmV3YCBjb21tYW5kLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuQE5nTW9kdWxlKHtwcm92aWRlcnM6IEFQUExJQ0FUSU9OX01PRFVMRV9QUk9WSURFUlN9KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uTW9kdWxlIHtcbiAgLy8gSW5qZWN0IEFwcGxpY2F0aW9uUmVmIHRvIG1ha2UgaXQgZWFnZXIuLi5cbiAgY29uc3RydWN0b3IoYXBwUmVmOiBBcHBsaWNhdGlvblJlZikge31cbn1cbiJdfQ==