@angular/core 8.0.0 → 8.1.0-beta.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 (191) hide show
  1. package/bundles/core-testing.umd.js +35 -9
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core-testing.umd.min.js +10 -10
  4. package/bundles/core-testing.umd.min.js.map +1 -1
  5. package/bundles/core.umd.js +11356 -9352
  6. package/bundles/core.umd.js.map +1 -1
  7. package/bundles/core.umd.min.js +201 -139
  8. package/bundles/core.umd.min.js.map +1 -1
  9. package/core.d.ts +1302 -404
  10. package/core.metadata.json +1 -1
  11. package/esm2015/core.js +2 -3
  12. package/esm2015/index.js +2 -2
  13. package/esm2015/public_api.js +2 -2
  14. package/esm2015/src/application_ref.js +7 -1
  15. package/esm2015/src/codegen_private_exports.js +2 -2
  16. package/esm2015/src/compiler/compiler_facade_interface.js +1 -1
  17. package/esm2015/src/core.js +4 -4
  18. package/esm2015/src/core_private_export.js +3 -1
  19. package/esm2015/src/core_render3_private_export.js +5 -3
  20. package/esm2015/src/debug/debug_node.js +4 -4
  21. package/esm2015/src/di/index.js +3 -3
  22. package/esm2015/src/di/injector.js +24 -96
  23. package/esm2015/src/di/injector_compatibility.js +103 -6
  24. package/esm2015/src/di/interface/defs.js +24 -3
  25. package/esm2015/src/di/r3_injector.js +82 -49
  26. package/esm2015/src/di/reflective_injector.js +3 -2
  27. package/esm2015/src/di.js +1 -1
  28. package/esm2015/src/i18n/locale_data.js +61 -0
  29. package/esm2015/src/i18n/locale_data_api.js +53 -0
  30. package/esm2015/src/i18n/locale_en.js +51 -0
  31. package/esm2015/src/i18n/localization.js +37 -0
  32. package/esm2015/src/linker/ng_module_factory_loader.js +4 -52
  33. package/esm2015/src/linker/ng_module_factory_registration.js +83 -0
  34. package/esm2015/src/metadata/ng_module.js +6 -1
  35. package/esm2015/src/metadata/resource_loading.js +2 -2
  36. package/esm2015/src/reflection/reflection_capabilities.js +14 -3
  37. package/esm2015/src/render3/assert.js +3 -2
  38. package/esm2015/src/render3/component.js +11 -5
  39. package/esm2015/src/render3/debug.js +23 -15
  40. package/esm2015/src/render3/definition.js +12 -2
  41. package/esm2015/src/render3/errors.js +29 -1
  42. package/esm2015/src/render3/features/inherit_definition_feature.js +51 -37
  43. package/esm2015/src/render3/fields.js +3 -1
  44. package/esm2015/src/render3/i18n.js +76 -465
  45. package/esm2015/src/render3/index.js +3 -3
  46. package/esm2015/src/render3/instructions/all.js +9 -4
  47. package/esm2015/src/render3/instructions/attribute.js +28 -0
  48. package/esm2015/src/render3/instructions/attribute_interpolation.js +376 -0
  49. package/esm2015/src/render3/instructions/container.js +17 -16
  50. package/esm2015/src/render3/instructions/element.js +57 -35
  51. package/esm2015/src/render3/instructions/element_container.js +9 -8
  52. package/esm2015/src/render3/instructions/embedded_view.js +9 -12
  53. package/esm2015/src/render3/instructions/interpolation.js +375 -0
  54. package/esm2015/src/render3/instructions/listener.js +3 -2
  55. package/esm2015/src/render3/instructions/projection.js +6 -6
  56. package/esm2015/src/render3/instructions/property.js +10 -4
  57. package/esm2015/src/render3/instructions/property_interpolation.js +49 -382
  58. package/esm2015/src/render3/instructions/shared.js +82 -118
  59. package/esm2015/src/render3/instructions/styling.js +189 -236
  60. package/esm2015/src/render3/instructions/text.js +8 -7
  61. package/esm2015/src/render3/instructions/text_interpolation.js +357 -0
  62. package/esm2015/src/render3/interfaces/container.js +9 -5
  63. package/esm2015/src/render3/interfaces/definition.js +12 -6
  64. package/esm2015/src/render3/interfaces/node.js +20 -8
  65. package/esm2015/src/render3/interfaces/styling.js +16 -15
  66. package/esm2015/src/render3/interfaces/view.js +2 -2
  67. package/esm2015/src/render3/jit/directive.js +14 -5
  68. package/esm2015/src/render3/jit/environment.js +30 -15
  69. package/esm2015/src/render3/jit/module.js +38 -19
  70. package/esm2015/src/render3/ng_module_ref.js +39 -3
  71. package/esm2015/src/render3/node_manipulation.js +45 -43
  72. package/esm2015/src/render3/node_selector_matcher.js +14 -13
  73. package/esm2015/src/render3/query.js +77 -61
  74. package/esm2015/src/render3/state.js +33 -6
  75. package/esm2015/src/render3/styling/class_and_style_bindings.js +91 -79
  76. package/esm2015/src/render3/styling/host_instructions_queue.js +8 -5
  77. package/esm2015/src/render3/styling/shared.js +2 -2
  78. package/esm2015/src/render3/styling/util.js +2 -2
  79. package/esm2015/src/render3/styling_next/bindings.js +602 -0
  80. package/esm2015/src/render3/styling_next/instructions.js +366 -0
  81. package/esm2015/src/render3/styling_next/interfaces.js +374 -0
  82. package/esm2015/src/render3/styling_next/map_based_bindings.js +408 -0
  83. package/esm2015/src/render3/styling_next/state.js +51 -0
  84. package/esm2015/src/render3/styling_next/styling_debug.js +291 -0
  85. package/esm2015/src/render3/styling_next/util.js +259 -0
  86. package/esm2015/src/render3/util/attrs_utils.js +4 -3
  87. package/esm2015/src/render3/util/debug_utils.js +18 -0
  88. package/esm2015/src/render3/util/view_traversal_utils.js +2 -2
  89. package/esm2015/src/render3/view_engine_compatibility.js +24 -10
  90. package/esm2015/src/sanitization/sanitization.js +17 -7
  91. package/esm2015/src/sanitization/style_sanitizer.js +11 -1
  92. package/esm2015/src/util/ng_dev_mode.js +7 -3
  93. package/esm2015/src/version.js +1 -1
  94. package/esm2015/src/view/ng_module.js +3 -3
  95. package/esm2015/src/view/util.js +2 -2
  96. package/esm2015/testing/src/r3_test_bed_compiler.js +44 -12
  97. package/esm5/core.js +2 -3
  98. package/esm5/src/application_ref.js +6 -1
  99. package/esm5/src/codegen_private_exports.js +2 -2
  100. package/esm5/src/compiler/compiler_facade_interface.js +1 -1
  101. package/esm5/src/core_private_export.js +3 -1
  102. package/esm5/src/core_render3_private_export.js +5 -3
  103. package/esm5/src/debug/debug_node.js +4 -4
  104. package/esm5/src/di/index.js +3 -3
  105. package/esm5/src/di/injector.js +14 -74
  106. package/esm5/src/di/injector_compatibility.js +77 -6
  107. package/esm5/src/di/interface/defs.js +24 -3
  108. package/esm5/src/di/r3_injector.js +60 -37
  109. package/esm5/src/di/reflective_injector.js +3 -2
  110. package/esm5/src/i18n/locale_data.js +38 -0
  111. package/esm5/src/i18n/locale_data_api.js +46 -0
  112. package/esm5/src/i18n/locale_en.js +39 -0
  113. package/esm5/src/i18n/localization.js +29 -0
  114. package/esm5/src/linker/ng_module_factory_loader.js +4 -32
  115. package/esm5/src/linker/ng_module_factory_registration.js +50 -0
  116. package/esm5/src/metadata/ng_module.js +1 -1
  117. package/esm5/src/metadata/resource_loading.js +2 -2
  118. package/esm5/src/reflection/reflection_capabilities.js +14 -3
  119. package/esm5/src/render3/assert.js +2 -1
  120. package/esm5/src/render3/component.js +10 -4
  121. package/esm5/src/render3/debug.js +17 -10
  122. package/esm5/src/render3/definition.js +8 -2
  123. package/esm5/src/render3/errors.js +14 -1
  124. package/esm5/src/render3/features/inherit_definition_feature.js +41 -36
  125. package/esm5/src/render3/fields.js +2 -1
  126. package/esm5/src/render3/i18n.js +67 -437
  127. package/esm5/src/render3/index.js +3 -3
  128. package/esm5/src/render3/instructions/all.js +6 -1
  129. package/esm5/src/render3/instructions/attribute.js +22 -0
  130. package/esm5/src/render3/instructions/attribute_interpolation.js +346 -0
  131. package/esm5/src/render3/instructions/container.js +16 -15
  132. package/esm5/src/render3/instructions/element.js +43 -32
  133. package/esm5/src/render3/instructions/element_container.js +9 -8
  134. package/esm5/src/render3/instructions/embedded_view.js +8 -11
  135. package/esm5/src/render3/instructions/interpolation.js +243 -0
  136. package/esm5/src/render3/instructions/listener.js +3 -2
  137. package/esm5/src/render3/instructions/projection.js +6 -6
  138. package/esm5/src/render3/instructions/property.js +10 -4
  139. package/esm5/src/render3/instructions/property_interpolation.js +40 -254
  140. package/esm5/src/render3/instructions/shared.js +70 -105
  141. package/esm5/src/render3/instructions/styling.js +167 -209
  142. package/esm5/src/render3/instructions/text.js +8 -7
  143. package/esm5/src/render3/instructions/text_interpolation.js +264 -0
  144. package/esm5/src/render3/interfaces/container.js +8 -2
  145. package/esm5/src/render3/interfaces/definition.js +1 -1
  146. package/esm5/src/render3/interfaces/node.js +1 -8
  147. package/esm5/src/render3/interfaces/styling.js +2 -2
  148. package/esm5/src/render3/interfaces/view.js +1 -1
  149. package/esm5/src/render3/jit/directive.js +12 -5
  150. package/esm5/src/render3/jit/environment.js +30 -15
  151. package/esm5/src/render3/jit/module.js +23 -18
  152. package/esm5/src/render3/ng_module_ref.js +37 -3
  153. package/esm5/src/render3/node_manipulation.js +39 -38
  154. package/esm5/src/render3/node_selector_matcher.js +14 -13
  155. package/esm5/src/render3/query.js +75 -53
  156. package/esm5/src/render3/state.js +29 -5
  157. package/esm5/src/render3/styling/class_and_style_bindings.js +79 -65
  158. package/esm5/src/render3/styling/host_instructions_queue.js +6 -3
  159. package/esm5/src/render3/styling/shared.js +2 -2
  160. package/esm5/src/render3/styling/util.js +2 -2
  161. package/esm5/src/render3/styling_next/bindings.js +446 -0
  162. package/esm5/src/render3/styling_next/instructions.js +277 -0
  163. package/esm5/src/render3/styling_next/interfaces.js +1 -0
  164. package/esm5/src/render3/styling_next/map_based_bindings.js +324 -0
  165. package/esm5/src/render3/styling_next/state.js +23 -0
  166. package/esm5/src/render3/styling_next/styling_debug.js +130 -0
  167. package/esm5/src/render3/styling_next/util.js +147 -0
  168. package/esm5/src/render3/util/attrs_utils.js +4 -3
  169. package/esm5/src/render3/util/debug_utils.js +11 -0
  170. package/esm5/src/render3/util/view_traversal_utils.js +2 -2
  171. package/esm5/src/render3/view_engine_compatibility.js +23 -10
  172. package/esm5/src/sanitization/sanitization.js +14 -6
  173. package/esm5/src/sanitization/style_sanitizer.js +1 -1
  174. package/esm5/src/util/ng_dev_mode.js +7 -3
  175. package/esm5/src/version.js +1 -1
  176. package/esm5/src/view/ng_module.js +3 -3
  177. package/esm5/src/view/util.js +2 -2
  178. package/esm5/testing/src/r3_test_bed_compiler.js +37 -11
  179. package/fesm2015/core.js +13481 -10733
  180. package/fesm2015/core.js.map +1 -1
  181. package/fesm2015/testing.js +43 -11
  182. package/fesm2015/testing.js.map +1 -1
  183. package/fesm5/core.js +11255 -9269
  184. package/fesm5/core.js.map +1 -1
  185. package/fesm5/testing.js +36 -10
  186. package/fesm5/testing.js.map +1 -1
  187. package/package.json +1 -1
  188. package/schematics/migrations/template-var-assignment/index.js +2 -2
  189. package/src/r3_symbols.d.ts +5 -1
  190. package/testing/testing.d.ts +1 -1
  191. package/testing.d.ts +1 -1
@@ -18,9 +18,9 @@ import { getComponent, getDirectives, getHostElement, getRenderedText } from './
18
18
  export { ComponentFactory, ComponentFactoryResolver, ComponentRef, injectComponentFactoryResolver } from './component_ref';
19
19
  export { ɵɵgetFactoryOf, ɵɵgetInheritedFactory } from './di';
20
20
  // clang-format off
21
- export { detectChanges, markDirty, store, tick, ɵɵallocHostVars, ɵɵbind, ɵɵcomponentHostSyntheticListener, ɵɵcomponentHostSyntheticProperty, ɵɵcontainer, ɵɵcontainerRefreshEnd, ɵɵcontainerRefreshStart, ɵɵdirectiveInject, ɵɵelement, ɵɵelementAttribute, ɵɵelementClassProp, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementHostAttrs, ɵɵelementHostClassProp, ɵɵelementHostStyleProp, ɵɵelementHostStyling, ɵɵelementHostStylingApply, ɵɵelementHostStylingMap, ɵɵelementProperty, ɵɵelementStart, ɵɵelementStyleProp, ɵɵelementStyling, ɵɵelementStylingApply, ɵɵelementStylingMap, ɵɵembeddedViewEnd, ɵɵembeddedViewStart, ɵɵgetCurrentView, ɵɵinjectAttribute, ɵɵinterpolation1, ɵɵinterpolation2, ɵɵinterpolation3, ɵɵinterpolation4, ɵɵinterpolation5, ɵɵinterpolation6, ɵɵinterpolation7, ɵɵinterpolation8, ɵɵinterpolationV, ɵɵlistener, ɵɵload, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵreference, ɵɵselect, ɵɵtemplate, ɵɵtext, ɵɵtextBinding } from './instructions/all';
21
+ export { detectChanges, markDirty, store, tick, ɵɵallocHostVars, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵbind, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentHostSyntheticListener, ɵɵcomponentHostSyntheticProperty, ɵɵcontainer, ɵɵcontainerRefreshEnd, ɵɵcontainerRefreshStart, ɵɵdirectiveInject, ɵɵelement, ɵɵelementAttribute, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementHostAttrs, ɵɵelementProperty, ɵɵelementStart, ɵɵembeddedViewEnd, ɵɵembeddedViewStart, ɵɵgetCurrentView, ɵɵinjectAttribute, ɵɵinterpolation1, ɵɵinterpolation2, ɵɵinterpolation3, ɵɵinterpolation4, ɵɵinterpolation5, ɵɵinterpolation6, ɵɵinterpolation7, ɵɵinterpolation8, ɵɵinterpolationV, ɵɵlistener, ɵɵload, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵreference, ɵɵselect, ɵɵstyleMap, ɵɵstyleProp, ɵɵstyleSanitizer, ɵɵstyling, ɵɵstylingApply, ɵɵtemplate, ɵɵtext, ɵɵtextBinding, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, } from './instructions/all';
22
22
  export { ɵɵrestoreView, ɵɵenableBindings, ɵɵdisableBindings, } from './state';
23
- export { ɵɵi18n, ɵɵi18nAttributes, ɵɵi18nExp, ɵɵi18nStart, ɵɵi18nEnd, ɵɵi18nApply, ɵɵi18nPostprocess, i18nConfigureLocalize, ɵɵi18nLocalize, } from './i18n';
23
+ export { DEFAULT_LOCALE_ID, ɵɵi18n, ɵɵi18nAttributes, ɵɵi18nExp, ɵɵi18nStart, ɵɵi18nEnd, ɵɵi18nApply, ɵɵi18nPostprocess, i18nConfigureLocalize, ɵɵi18nLocalize, getLocaleId, setLocaleId, } from './i18n';
24
24
  export { NgModuleFactory, NgModuleRef } from './ng_module_ref';
25
25
  export { setClassMetadata, } from './metadata';
26
26
  export { ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, } from './pipe';
@@ -31,4 +31,4 @@ export { ɵɵresolveWindow, ɵɵresolveDocument, ɵɵresolveBody } from './util/
31
31
  // clang-format on
32
32
  export { ɵɵNgOnChangesFeature, ɵɵInheritDefinitionFeature, ɵɵProvidersFeature, LifecycleHooksFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefineBase, ɵɵdefinePipe, getHostElement, getComponent, getDirectives, getRenderedText, renderComponent, ɵɵsetComponentScope, ɵɵsetNgModuleScope, whenRendered, };
33
33
  export { NO_CHANGE } from './tokens';
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBT0EsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDakYsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekosT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXBHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6SCxPQUFPLEVBQUMsY0FBYyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUUzRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsRUFDVCxLQUFLLEVBQ0wsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLEVBQ04sZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUVoQyxXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUV2QixpQkFBaUIsRUFFakIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBRXJCLHVCQUF1QixFQUN2QixZQUFZLEVBRVosa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUVuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBRWhCLFVBQVUsRUFDVixNQUFNLEVBRU4sZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBRWQsYUFBYSxFQUViLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUV0QixXQUFXLEVBRVgsUUFBUSxFQUNSLFVBQVUsRUFFVixNQUFNLEVBQ04sYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJM0MsT0FBTyxFQUNMLGFBQWEsRUFFYixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLE9BQU8sRUFDTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFdBQVcsRUFDWCxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLFFBQVEsQ0FBQztBQUVoQixPQUFPLEVBQUMsZUFBZSxFQUFFLFdBQVcsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBTTNFLE9BQU8sRUFDTCxnQkFBZ0IsR0FDakIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0sUUFBUSxDQUFDO0FBRWhCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDckIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1RSxPQUFPLEVBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUlwRixPQUFPLEVBVUwsb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFHbEIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLFlBQVksRUFDWixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLFlBQVksR0FDYixDQUFDO0FBRUYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TGlmZWN5Y2xlSG9va3NGZWF0dXJlLCByZW5kZXJDb21wb25lbnQsIHdoZW5SZW5kZXJlZH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHvJtcm1ZGVmaW5lQmFzZSwgybXJtWRlZmluZUNvbXBvbmVudCwgybXJtWRlZmluZURpcmVjdGl2ZSwgybXJtWRlZmluZU5nTW9kdWxlLCDJtcm1ZGVmaW5lUGlwZSwgybXJtXNldENvbXBvbmVudFNjb3BlLCDJtcm1c2V0TmdNb2R1bGVTY29wZX0gZnJvbSAnLi9kZWZpbml0aW9uJztcbmltcG9ydCB7ybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9pbmhlcml0X2RlZmluaXRpb25fZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVOZ09uQ2hhbmdlc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvbmdfb25jaGFuZ2VzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1UHJvdmlkZXJzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9wcm92aWRlcnNfZmVhdHVyZSc7XG5pbXBvcnQge0NvbXBvbmVudERlZiwgQ29tcG9uZW50VGVtcGxhdGUsIENvbXBvbmVudFR5cGUsIERpcmVjdGl2ZURlZiwgRGlyZWN0aXZlRGVmRmxhZ3MsIERpcmVjdGl2ZVR5cGUsIFBpcGVEZWYsIMm1ybVCYXNlRGVmLCDJtcm1Q29tcG9uZW50RGVmV2l0aE1ldGEsIMm1ybVEaXJlY3RpdmVEZWZXaXRoTWV0YSwgybXJtVBpcGVEZWZXaXRoTWV0YX0gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuaW1wb3J0IHtnZXRDb21wb25lbnQsIGdldERpcmVjdGl2ZXMsIGdldEhvc3RFbGVtZW50LCBnZXRSZW5kZXJlZFRleHR9IGZyb20gJy4vdXRpbC9kaXNjb3ZlcnlfdXRpbHMnO1xuXG5leHBvcnQge0NvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBpbmplY3RDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9IGZyb20gJy4vY29tcG9uZW50X3JlZic7XG5leHBvcnQge8m1ybVnZXRGYWN0b3J5T2YsIMm1ybVnZXRJbmhlcml0ZWRGYWN0b3J5fSBmcm9tICcuL2RpJztcbi8vIGNsYW5nLWZvcm1hdCBvZmZcbmV4cG9ydCB7XG4gIGRldGVjdENoYW5nZXMsXG4gIG1hcmtEaXJ0eSxcbiAgc3RvcmUsXG4gIHRpY2ssXG4gIMm1ybVhbGxvY0hvc3RWYXJzLFxuICDJtcm1YmluZCxcbiAgybXJtWNvbXBvbmVudEhvc3RTeW50aGV0aWNMaXN0ZW5lcixcbiAgybXJtWNvbXBvbmVudEhvc3RTeW50aGV0aWNQcm9wZXJ0eSxcblxuICDJtcm1Y29udGFpbmVyLFxuICDJtcm1Y29udGFpbmVyUmVmcmVzaEVuZCxcbiAgybXJtWNvbnRhaW5lclJlZnJlc2hTdGFydCxcblxuICDJtcm1ZGlyZWN0aXZlSW5qZWN0LFxuXG4gIMm1ybVlbGVtZW50LFxuICDJtcm1ZWxlbWVudEF0dHJpYnV0ZSxcbiAgybXJtWVsZW1lbnRDbGFzc1Byb3AsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyRW5kLFxuXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuXG4gIMm1ybVlbGVtZW50SG9zdEF0dHJzLFxuICDJtcm1ZWxlbWVudEhvc3RDbGFzc1Byb3AsXG4gIMm1ybVlbGVtZW50SG9zdFN0eWxlUHJvcCxcbiAgybXJtWVsZW1lbnRIb3N0U3R5bGluZyxcbiAgybXJtWVsZW1lbnRIb3N0U3R5bGluZ0FwcGx5LFxuICDJtcm1ZWxlbWVudEhvc3RTdHlsaW5nTWFwLFxuICDJtcm1ZWxlbWVudFByb3BlcnR5LFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuICDJtcm1ZWxlbWVudFN0eWxlUHJvcCxcbiAgybXJtWVsZW1lbnRTdHlsaW5nLFxuICDJtcm1ZWxlbWVudFN0eWxpbmdBcHBseSxcbiAgybXJtWVsZW1lbnRTdHlsaW5nTWFwLFxuICDJtcm1ZW1iZWRkZWRWaWV3RW5kLFxuXG4gIMm1ybVlbWJlZGRlZFZpZXdTdGFydCxcblxuICDJtcm1Z2V0Q3VycmVudFZpZXcsXG4gIMm1ybVpbmplY3RBdHRyaWJ1dGUsXG5cbiAgybXJtWludGVycG9sYXRpb24xLFxuICDJtcm1aW50ZXJwb2xhdGlvbjIsXG4gIMm1ybVpbnRlcnBvbGF0aW9uMyxcbiAgybXJtWludGVycG9sYXRpb240LFxuICDJtcm1aW50ZXJwb2xhdGlvbjUsXG4gIMm1ybVpbnRlcnBvbGF0aW9uNixcbiAgybXJtWludGVycG9sYXRpb243LFxuICDJtcm1aW50ZXJwb2xhdGlvbjgsXG4gIMm1ybVpbnRlcnBvbGF0aW9uVixcblxuICDJtcm1bGlzdGVuZXIsXG4gIMm1ybVsb2FkLFxuXG4gIMm1ybVuYW1lc3BhY2VIVE1MLFxuICDJtcm1bmFtZXNwYWNlTWF0aE1MLFxuICDJtcm1bmFtZXNwYWNlU1ZHLFxuXG4gIMm1ybVuZXh0Q29udGV4dCxcblxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXJlZmVyZW5jZSxcblxuICDJtcm1c2VsZWN0LFxuICDJtcm1dGVtcGxhdGUsXG5cbiAgybXJtXRleHQsXG4gIMm1ybV0ZXh0QmluZGluZ30gZnJvbSAnLi9pbnN0cnVjdGlvbnMvYWxsJztcbmV4cG9ydCB7UmVuZGVyRmxhZ3N9IGZyb20gJy4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmV4cG9ydCB7Q3NzU2VsZWN0b3JMaXN0fSBmcm9tICcuL2ludGVyZmFjZXMvcHJvamVjdGlvbic7XG5cbmV4cG9ydCB7XG4gIMm1ybVyZXN0b3JlVmlldyxcblxuICDJtcm1ZW5hYmxlQmluZGluZ3MsXG4gIMm1ybVkaXNhYmxlQmluZGluZ3MsXG59IGZyb20gJy4vc3RhdGUnO1xuXG5leHBvcnQge1xuICDJtcm1aTE4bixcbiAgybXJtWkxOG5BdHRyaWJ1dGVzLFxuICDJtcm1aTE4bkV4cCxcbiAgybXJtWkxOG5TdGFydCxcbiAgybXJtWkxOG5FbmQsXG4gIMm1ybVpMThuQXBwbHksXG4gIMm1ybVpMThuUG9zdHByb2Nlc3MsXG4gIGkxOG5Db25maWd1cmVMb2NhbGl6ZSxcbiAgybXJtWkxOG5Mb2NhbGl6ZSxcbn0gZnJvbSAnLi9pMThuJztcblxuZXhwb3J0IHtOZ01vZHVsZUZhY3RvcnksIE5nTW9kdWxlUmVmLCBOZ01vZHVsZVR5cGV9IGZyb20gJy4vbmdfbW9kdWxlX3JlZic7XG5cbmV4cG9ydCB7XG4gIEF0dHJpYnV0ZU1hcmtlclxufSBmcm9tICcuL2ludGVyZmFjZXMvbm9kZSc7XG5cbmV4cG9ydCB7XG4gIHNldENsYXNzTWV0YWRhdGEsXG59IGZyb20gJy4vbWV0YWRhdGEnO1xuXG5leHBvcnQge1xuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbn0gZnJvbSAnLi9waXBlJztcblxuZXhwb3J0IHtcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXZpZXdRdWVyeSxcbiAgybXJtXN0YXRpY1ZpZXdRdWVyeSxcbiAgybXJtWxvYWRWaWV3UXVlcnksXG4gIMm1ybVjb250ZW50UXVlcnksXG4gIMm1ybVsb2FkQ29udGVudFF1ZXJ5LFxuICDJtcm1c3RhdGljQ29udGVudFF1ZXJ5XG59IGZyb20gJy4vcXVlcnknO1xuXG5leHBvcnQge1xuICDJtcm1cHVyZUZ1bmN0aW9uMCxcbiAgybXJtXB1cmVGdW5jdGlvbjEsXG4gIMm1ybVwdXJlRnVuY3Rpb24yLFxuICDJtcm1cHVyZUZ1bmN0aW9uMyxcbiAgybXJtXB1cmVGdW5jdGlvbjQsXG4gIMm1ybVwdXJlRnVuY3Rpb241LFxuICDJtcm1cHVyZUZ1bmN0aW9uNixcbiAgybXJtXB1cmVGdW5jdGlvbjcsXG4gIMm1ybVwdXJlRnVuY3Rpb244LFxuICDJtcm1cHVyZUZ1bmN0aW9uVixcbn0gZnJvbSAnLi9wdXJlX2Z1bmN0aW9uJztcblxuZXhwb3J0IHvJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3J9IGZyb20gJy4vdmlld19lbmdpbmVfY29tcGF0aWJpbGl0eV9wcmVib3VuZCc7XG5cbmV4cG9ydCB7ybXJtXJlc29sdmVXaW5kb3csIMm1ybVyZXNvbHZlRG9jdW1lbnQsIMm1ybVyZXNvbHZlQm9keX0gZnJvbSAnLi91dGlsL21pc2NfdXRpbHMnO1xuXG4vLyBjbGFuZy1mb3JtYXQgb25cblxuZXhwb3J0IHtcbiAgybXJtUJhc2VEZWYsXG4gIENvbXBvbmVudERlZixcbiAgybXJtUNvbXBvbmVudERlZldpdGhNZXRhLFxuICBDb21wb25lbnRUZW1wbGF0ZSxcbiAgQ29tcG9uZW50VHlwZSxcbiAgRGlyZWN0aXZlRGVmLFxuICBEaXJlY3RpdmVEZWZGbGFncyxcbiAgybXJtURpcmVjdGl2ZURlZldpdGhNZXRhLFxuICBEaXJlY3RpdmVUeXBlLFxuICDJtcm1TmdPbkNoYW5nZXNGZWF0dXJlLFxuICDJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1UHJvdmlkZXJzRmVhdHVyZSxcbiAgUGlwZURlZixcbiAgybXJtVBpcGVEZWZXaXRoTWV0YSxcbiAgTGlmZWN5Y2xlSG9va3NGZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVCYXNlLFxuICDJtcm1ZGVmaW5lUGlwZSxcbiAgZ2V0SG9zdEVsZW1lbnQsXG4gIGdldENvbXBvbmVudCxcbiAgZ2V0RGlyZWN0aXZlcyxcbiAgZ2V0UmVuZGVyZWRUZXh0LFxuICByZW5kZXJDb21wb25lbnQsXG4gIMm1ybVzZXRDb21wb25lbnRTY29wZSxcbiAgybXJtXNldE5nTW9kdWxlU2NvcGUsXG4gIHdoZW5SZW5kZXJlZCxcbn07XG5cbmV4cG9ydCB7Tk9fQ0hBTkdFfSBmcm9tICcuL3Rva2Vucyc7XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBT0EsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDakYsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekosT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXBHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6SCxPQUFPLEVBQUMsY0FBYyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUUzRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsRUFDVCxLQUFLLEVBQ0wsSUFBSSxFQUVKLGVBQWUsRUFFZixXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFFdkIsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0NBQWdDLEVBQ2hD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LEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMaWZlY3ljbGVIb29rc0ZlYXR1cmUsIHJlbmRlckNvbXBvbmVudCwgd2hlblJlbmRlcmVkfSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQge8m1ybVkZWZpbmVCYXNlLCDJtcm1ZGVmaW5lQ29tcG9uZW50LCDJtcm1ZGVmaW5lRGlyZWN0aXZlLCDJtcm1ZGVmaW5lTmdNb2R1bGUsIMm1ybVkZWZpbmVQaXBlLCDJtcm1c2V0Q29tcG9uZW50U2NvcGUsIMm1ybVzZXROZ01vZHVsZVNjb3BlfSBmcm9tICcuL2RlZmluaXRpb24nO1xuaW1wb3J0IHvJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2luaGVyaXRfZGVmaW5pdGlvbl9mZWF0dXJlJztcbmltcG9ydCB7ybXJtU5nT25DaGFuZ2VzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9uZ19vbmNoYW5nZXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVQcm92aWRlcnNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL3Byb3ZpZGVyc19mZWF0dXJlJztcbmltcG9ydCB7Q29tcG9uZW50RGVmLCBDb21wb25lbnRUZW1wbGF0ZSwgQ29tcG9uZW50VHlwZSwgRGlyZWN0aXZlRGVmLCBEaXJlY3RpdmVEZWZGbGFncywgRGlyZWN0aXZlVHlwZSwgUGlwZURlZiwgybXJtUJhc2VEZWYsIMm1ybVDb21wb25lbnREZWZXaXRoTWV0YSwgybXJtURpcmVjdGl2ZURlZldpdGhNZXRhLCDJtcm1UGlwZURlZldpdGhNZXRhfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5pbXBvcnQge2dldENvbXBvbmVudCwgZ2V0RGlyZWN0aXZlcywgZ2V0SG9zdEVsZW1lbnQsIGdldFJlbmRlcmVkVGV4dH0gZnJvbSAnLi91dGlsL2Rpc2NvdmVyeV91dGlscyc7XG5cbmV4cG9ydCB7Q29tcG9uZW50RmFjdG9yeSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIGluamVjdENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcn0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmV4cG9ydCB7ybXJtWdldEZhY3RvcnlPZiwgybXJtWdldEluaGVyaXRlZEZhY3Rvcnl9IGZyb20gJy4vZGknO1xuLy8gY2xhbmctZm9ybWF0IG9mZlxuZXhwb3J0IHtcbiAgZGV0ZWN0Q2hhbmdlcyxcbiAgbWFya0RpcnR5LFxuICBzdG9yZSxcbiAgdGljayxcblxuICDJtcm1YWxsb2NIb3N0VmFycyxcblxuICDJtcm1YXR0cmlidXRlLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybViaW5kLFxuICDJtcm1Y2xhc3NNYXAsXG4gIMm1ybVjbGFzc1Byb3AsXG4gIMm1ybVjb21wb25lbnRIb3N0U3ludGhldGljTGlzdGVuZXIsXG4gIMm1ybVjb21wb25lbnRIb3N0U3ludGhldGljUHJvcGVydHksXG5cbiAgybXJtWNvbnRhaW5lcixcbiAgybXJtWNvbnRhaW5lclJlZnJlc2hFbmQsXG4gIMm1ybVjb250YWluZXJSZWZyZXNoU3RhcnQsXG5cbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcblxuICDJtcm1ZWxlbWVudCxcbiAgybXJtWVsZW1lbnRBdHRyaWJ1dGUsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyRW5kLFxuXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuXG4gIMm1ybVlbGVtZW50SG9zdEF0dHJzLFxuICDJtcm1ZWxlbWVudFByb3BlcnR5LFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuICDJtcm1ZW1iZWRkZWRWaWV3RW5kLFxuXG4gIMm1ybVlbWJlZGRlZFZpZXdTdGFydCxcblxuICDJtcm1Z2V0Q3VycmVudFZpZXcsXG4gIMm1ybVpbmplY3RBdHRyaWJ1dGUsXG5cbiAgybXJtWludGVycG9sYXRpb24xLFxuICDJtcm1aW50ZXJwb2xhdGlvbjIsXG4gIMm1ybVpbnRlcnBvbGF0aW9uMyxcbiAgybXJtWludGVycG9sYXRpb240LFxuICDJtcm1aW50ZXJwb2xhdGlvbjUsXG4gIMm1ybVpbnRlcnBvbGF0aW9uNixcbiAgybXJtWludGVycG9sYXRpb243LFxuICDJtcm1aW50ZXJwb2xhdGlvbjgsXG4gIMm1ybVpbnRlcnBvbGF0aW9uVixcblxuICDJtcm1bGlzdGVuZXIsXG4gIMm1ybVsb2FkLFxuXG4gIMm1ybVuYW1lc3BhY2VIVE1MLFxuICDJtcm1bmFtZXNwYWNlTWF0aE1MLFxuICDJtcm1bmFtZXNwYWNlU1ZHLFxuXG4gIMm1ybVuZXh0Q29udGV4dCxcblxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXJlZmVyZW5jZSxcblxuICDJtcm1c2VsZWN0LFxuICDJtcm1c3R5bGVNYXAsXG4gIMm1ybVzdHlsZVByb3AsXG4gIMm1ybVzdHlsZVNhbml0aXplcixcbiAgybXJtXN0eWxpbmcsXG4gIMm1ybVzdHlsaW5nQXBwbHksXG4gIMm1ybV0ZW1wbGF0ZSxcblxuICDJtcm1dGV4dCxcbiAgybXJtXRleHRCaW5kaW5nLFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxufSBmcm9tICcuL2luc3RydWN0aW9ucy9hbGwnO1xuZXhwb3J0IHtSZW5kZXJGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuZXhwb3J0IHtDc3NTZWxlY3Rvckxpc3R9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcblxuZXhwb3J0IHtcbiAgybXJtXJlc3RvcmVWaWV3LFxuXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtWRpc2FibGVCaW5kaW5ncyxcbn0gZnJvbSAnLi9zdGF0ZSc7XG5cbmV4cG9ydCB7XG4gIERFRkFVTFRfTE9DQUxFX0lELFxuICDJtcm1aTE4bixcbiAgybXJtWkxOG5BdHRyaWJ1dGVzLFxuICDJtcm1aTE4bkV4cCxcbiAgybXJtWkxOG5TdGFydCxcbiAgybXJtWkxOG5FbmQsXG4gIMm1ybVpMThuQXBwbHksXG4gIMm1ybVpMThuUG9zdHByb2Nlc3MsXG4gIGkxOG5Db25maWd1cmVMb2NhbGl6ZSxcbiAgybXJtWkxOG5Mb2NhbGl6ZSxcbiAgZ2V0TG9jYWxlSWQsXG4gIHNldExvY2FsZUlkLFxufSBmcm9tICcuL2kxOG4nO1xuXG5leHBvcnQge05nTW9kdWxlRmFjdG9yeSwgTmdNb2R1bGVSZWYsIE5nTW9kdWxlVHlwZX0gZnJvbSAnLi9uZ19tb2R1bGVfcmVmJztcblxuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyXG59IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcblxuZXhwb3J0IHtcbiAgc2V0Q2xhc3NNZXRhZGF0YSxcbn0gZnJvbSAnLi9tZXRhZGF0YSc7XG5cbmV4cG9ydCB7XG4gIMm1ybVwaXBlLFxuICDJtcm1cGlwZUJpbmQxLFxuICDJtcm1cGlwZUJpbmQyLFxuICDJtcm1cGlwZUJpbmQzLFxuICDJtcm1cGlwZUJpbmQ0LFxuICDJtcm1cGlwZUJpbmRWLFxufSBmcm9tICcuL3BpcGUnO1xuXG5leHBvcnQge1xuICDJtcm1cXVlcnlSZWZyZXNoLFxuICDJtcm1dmlld1F1ZXJ5LFxuICDJtcm1c3RhdGljVmlld1F1ZXJ5LFxuICDJtcm1bG9hZFZpZXdRdWVyeSxcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWxvYWRDb250ZW50UXVlcnksXG4gIMm1ybVzdGF0aWNDb250ZW50UXVlcnlcbn0gZnJvbSAnLi9xdWVyeSc7XG5cbmV4cG9ydCB7XG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxufSBmcm9tICcuL3B1cmVfZnVuY3Rpb24nO1xuXG5leHBvcnQge8m1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcn0gZnJvbSAnLi92aWV3X2VuZ2luZV9jb21wYXRpYmlsaXR5X3ByZWJvdW5kJztcblxuZXhwb3J0IHvJtcm1cmVzb2x2ZVdpbmRvdywgybXJtXJlc29sdmVEb2N1bWVudCwgybXJtXJlc29sdmVCb2R5fSBmcm9tICcuL3V0aWwvbWlzY191dGlscyc7XG5cbi8vIGNsYW5nLWZvcm1hdCBvblxuXG5leHBvcnQge1xuICDJtcm1QmFzZURlZixcbiAgQ29tcG9uZW50RGVmLFxuICDJtcm1Q29tcG9uZW50RGVmV2l0aE1ldGEsXG4gIENvbXBvbmVudFRlbXBsYXRlLFxuICBDb21wb25lbnRUeXBlLFxuICBEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZURlZkZsYWdzLFxuICDJtcm1RGlyZWN0aXZlRGVmV2l0aE1ldGEsXG4gIERpcmVjdGl2ZVR5cGUsXG4gIMm1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUsXG4gIMm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICBQaXBlRGVmLFxuICDJtcm1UGlwZURlZldpdGhNZXRhLFxuICBMaWZlY3ljbGVIb29rc0ZlYXR1cmUsXG4gIMm1ybVkZWZpbmVDb21wb25lbnQsXG4gIMm1ybVkZWZpbmVEaXJlY3RpdmUsXG4gIMm1ybVkZWZpbmVOZ01vZHVsZSxcbiAgybXJtWRlZmluZUJhc2UsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICBnZXRIb3N0RWxlbWVudCxcbiAgZ2V0Q29tcG9uZW50LFxuICBnZXREaXJlY3RpdmVzLFxuICBnZXRSZW5kZXJlZFRleHQsXG4gIHJlbmRlckNvbXBvbmVudCxcbiAgybXJtXNldENvbXBvbmVudFNjb3BlLFxuICDJtcm1c2V0TmdNb2R1bGVTY29wZSxcbiAgd2hlblJlbmRlcmVkLFxufTtcblxuZXhwb3J0IHtOT19DSEFOR0V9IGZyb20gJy4vdG9rZW5zJztcbiJdfQ==
@@ -29,21 +29,26 @@
29
29
  * Jira Issue = FW-1184
30
30
  */
31
31
  export { ɵɵallocHostVars } from './alloc_host_vars';
32
+ export { ɵɵattribute } from './attribute';
33
+ export { ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV } from './attribute_interpolation';
32
34
  export { detectChanges, markDirty, tick } from './change_detection';
33
35
  export { ɵɵcontainer, ɵɵtemplate, ɵɵcontainerRefreshStart, ɵɵcontainerRefreshEnd } from './container';
34
36
  export { store, ɵɵreference, ɵɵload } from './storage';
35
37
  export { ɵɵdirectiveInject, ɵɵinjectAttribute } from './di';
36
- export { ɵɵelementStart, ɵɵelementEnd, ɵɵelement, ɵɵelementAttribute, ɵɵelementHostAttrs } from './element';
38
+ export { ɵɵelementStart, ɵɵelementEnd, ɵɵelement, ɵɵelementAttribute, elementAttributeInternal, ɵɵelementHostAttrs } from './element';
37
39
  export { ɵɵelementContainerStart, ɵɵelementContainerEnd } from './element_container';
38
40
  export { ɵɵembeddedViewStart, ɵɵembeddedViewEnd } from './embedded_view';
39
41
  export { ɵɵgetCurrentView } from './get_current_view';
42
+ export { ɵɵinterpolationV, ɵɵinterpolation1, ɵɵinterpolation2, ɵɵinterpolation3, ɵɵinterpolation4, ɵɵinterpolation5, ɵɵinterpolation6, ɵɵinterpolation7, ɵɵinterpolation8 } from './interpolation';
40
43
  export { ɵɵlistener, ɵɵcomponentHostSyntheticListener } from './listener';
41
44
  export { ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG } from './namespace';
42
45
  export { ɵɵnextContext } from './next_context';
43
46
  export { ɵɵprojectionDef, ɵɵprojection } from './projection';
44
47
  export { ɵɵproperty, ɵɵbind, ɵɵelementProperty, ɵɵcomponentHostSyntheticProperty } from './property';
45
- export { ɵɵinterpolationV, ɵɵinterpolation1, ɵɵinterpolation2, ɵɵinterpolation3, ɵɵinterpolation4, ɵɵinterpolation5, ɵɵinterpolation6, ɵɵinterpolation7, ɵɵinterpolation8, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV } from './property_interpolation';
48
+ export { ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV } from './property_interpolation';
46
49
  export { ɵɵselect } from './select';
47
- export { ɵɵelementStyling, ɵɵelementHostStyling, ɵɵelementStyleProp, ɵɵelementHostStyleProp, ɵɵelementClassProp, ɵɵelementHostClassProp, ɵɵelementStylingMap, ɵɵelementHostStylingMap, ɵɵelementStylingApply, ɵɵelementHostStylingApply, elementStylingApplyInternal, getActiveDirectiveStylingIndex } from './styling';
50
+ export { ɵɵstyling, ɵɵstyleProp, ɵɵclassProp, ɵɵstyleMap, ɵɵclassMap, ɵɵstylingApply, getActiveDirectiveStylingIndex } from './styling';
51
+ export { styleSanitizer as ɵɵstyleSanitizer } from '../styling_next/instructions';
48
52
  export { ɵɵtext, ɵɵtextBinding } from './text';
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9pbnN0cnVjdGlvbnMvYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxnQ0FBYyxtQkFBbUIsQ0FBQztBQUNsQywrQ0FBYyxvQkFBb0IsQ0FBQztBQUNuQyx3RkFBYyxhQUFhLENBQUM7QUFDNUIsMkNBQWMsV0FBVyxDQUFDO0FBQzFCLHFEQUFjLE1BQU0sQ0FBQztBQUNyQixnR0FBYyxXQUFXLENBQUM7QUFDMUIsK0RBQWMscUJBQXFCLENBQUM7QUFDcEMsdURBQWMsaUJBQWlCLENBQUM7QUFDaEMsaUNBQWMsb0JBQW9CLENBQUM7QUFDbkMsNkRBQWMsWUFBWSxDQUFDO0FBQzNCLG1FQUFjLGFBQWEsQ0FBQztBQUM1Qiw4QkFBYyxnQkFBZ0IsQ0FBQztBQUMvQiw4Q0FBYyxjQUFjLENBQUM7QUFDN0Isd0ZBQWMsWUFBWSxDQUFDO0FBQzNCLGdhQUFjLDBCQUEwQixDQUFDO0FBQ3pDLHlCQUFjLFVBQVUsQ0FBQztBQUN6Qiw0U0FBYyxXQUFXLENBQUM7QUFDMUIsc0NBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKlxuICogVGhpcyBmaWxlIHJlLWV4cG9ydHMgYWxsIHN5bWJvbHMgY29udGFpbmVkIGluIHRoaXMgZGlyZWN0b3J5LlxuICpcbiAqIFdoeSBpcyB0aGlzIGZpbGUgbm90IGBpbmRleC50c2A/XG4gKlxuICogVGhlcmUgc2VlbXMgdG8gYmUgYW4gaW5jb25zaXN0ZW50IHBhdGggcmVzb2x1dGlvbiBvZiBhbiBgaW5kZXgudHNgIGZpbGVcbiAqIHdoZW4gb25seSB0aGUgcGFyZW50IGRpcmVjdG9yeSBpcyByZWZlcmVuY2VkLiBUaGlzIGNvdWxkIGJlIGR1ZSB0byB0aGVcbiAqIG5vZGUgbW9kdWxlIHJlc29sdXRpb24gY29uZmlndXJhdGlvbiBkaWZmZXJpbmcgZnJvbSByb2xsdXAgYW5kL29yIHR5cGVzY3JpcHQuXG4gKlxuICogV2l0aCBjb21taXRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvY29tbWl0L2Q1ZTNmMmM2NGJkMTNjZTgzZTdjNzA3ODhiN2ZjNTE0Y2E0YTk5MThcbiAqIHRoZSBgaW5zdHJ1Y3Rpb25zLnRzYCBmaWxlIHdhcyBtb3ZlZCB0byBgaW5zdHJ1Y3Rpb25zL2luc3RydWN0aW9ucy50c2AgYW5kIGFuXG4gKiBgaW5kZXgudHNgIGZpbGUgd2FzIHVzZWQgdG8gcmUtZXhwb3J0IGV2ZXJ5dGhpbmcuIEhhdmluZyBoYWQgZmlsZSBuYW1lcyB0aGF0IHdlcmVcbiAqIGltcG9ydGluZyBmcm9tIGBpbnN0cnVjdGlvbnMnIGRpcmVjdGx5IChub3QgdGhlIGZyb20gdGhlIHN1YiBmaWxlIG9yIHRoZSBgaW5kZXgudHNgXG4gKiBmaWxlKSBjYXVzZWQgc3RyYW5nZSBDSSBpc3N1ZXMuIGBpbmRleC50c2AgaGFkIHRvIGJlIHJlbmFtZWQgdG8gYGFsbC50c2AgZm9yIHRoaXNcbiAqIHRvIHdvcmsuXG4gKlxuICogSmlyYSBJc3N1ZSA9IEZXLTExODRcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9hbGxvY19ob3N0X3ZhcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnRfY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZW1iZWRkZWRfdmlldyc7XG5leHBvcnQgKiBmcm9tICcuL2dldF9jdXJyZW50X3ZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0ZW5lcic7XG5leHBvcnQgKiBmcm9tICcuL25hbWVzcGFjZSc7XG5leHBvcnQgKiBmcm9tICcuL25leHRfY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5X2ludGVycG9sYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHlsaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG4iXX0=
53
+ export { ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV } from './text_interpolation';
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9pbnN0cnVjdGlvbnMvYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxnQ0FBYyxtQkFBbUIsQ0FBQztBQUNsQyw0QkFBYyxhQUFhLENBQUM7QUFDNUIsZ1BBQWMsMkJBQTJCLENBQUM7QUFDMUMsK0NBQWMsb0JBQW9CLENBQUM7QUFDbkMsd0ZBQWMsYUFBYSxDQUFDO0FBQzVCLDJDQUFjLFdBQVcsQ0FBQztBQUMxQixxREFBYyxNQUFNLENBQUM7QUFDckIsMEhBQWMsV0FBVyxDQUFDO0FBQzFCLCtEQUFjLHFCQUFxQixDQUFDO0FBQ3BDLHVEQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGlDQUFjLG9CQUFvQixDQUFDO0FBQ25DLGlMQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDZEQUFjLFlBQVksQ0FBQztBQUMzQixtRUFBYyxhQUFhLENBQUM7QUFDNUIsOEJBQWMsZ0JBQWdCLENBQUM7QUFDL0IsOENBQWMsY0FBYyxDQUFDO0FBQzdCLHdGQUFjLFlBQVksQ0FBQztBQUMzQiw4UEFBYywwQkFBMEIsQ0FBQztBQUN6Qyx5QkFBYyxVQUFVLENBQUM7QUFDekIsNEhBQWMsV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxjQUFjLElBQUksZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixzQ0FBYyxRQUFRLENBQUM7QUFDdkIsc05BQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qXG4gKiBUaGlzIGZpbGUgcmUtZXhwb3J0cyBhbGwgc3ltYm9scyBjb250YWluZWQgaW4gdGhpcyBkaXJlY3RvcnkuXG4gKlxuICogV2h5IGlzIHRoaXMgZmlsZSBub3QgYGluZGV4LnRzYD9cbiAqXG4gKiBUaGVyZSBzZWVtcyB0byBiZSBhbiBpbmNvbnNpc3RlbnQgcGF0aCByZXNvbHV0aW9uIG9mIGFuIGBpbmRleC50c2AgZmlsZVxuICogd2hlbiBvbmx5IHRoZSBwYXJlbnQgZGlyZWN0b3J5IGlzIHJlZmVyZW5jZWQuIFRoaXMgY291bGQgYmUgZHVlIHRvIHRoZVxuICogbm9kZSBtb2R1bGUgcmVzb2x1dGlvbiBjb25maWd1cmF0aW9uIGRpZmZlcmluZyBmcm9tIHJvbGx1cCBhbmQvb3IgdHlwZXNjcmlwdC5cbiAqXG4gKiBXaXRoIGNvbW1pdFxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9jb21taXQvZDVlM2YyYzY0YmQxM2NlODNlN2M3MDc4OGI3ZmM1MTRjYTRhOTkxOFxuICogdGhlIGBpbnN0cnVjdGlvbnMudHNgIGZpbGUgd2FzIG1vdmVkIHRvIGBpbnN0cnVjdGlvbnMvaW5zdHJ1Y3Rpb25zLnRzYCBhbmQgYW5cbiAqIGBpbmRleC50c2AgZmlsZSB3YXMgdXNlZCB0byByZS1leHBvcnQgZXZlcnl0aGluZy4gSGF2aW5nIGhhZCBmaWxlIG5hbWVzIHRoYXQgd2VyZVxuICogaW1wb3J0aW5nIGZyb20gYGluc3RydWN0aW9ucycgZGlyZWN0bHkgKG5vdCB0aGUgZnJvbSB0aGUgc3ViIGZpbGUgb3IgdGhlIGBpbmRleC50c2BcbiAqIGZpbGUpIGNhdXNlZCBzdHJhbmdlIENJIGlzc3Vlcy4gYGluZGV4LnRzYCBoYWQgdG8gYmUgcmVuYW1lZCB0byBgYWxsLnRzYCBmb3IgdGhpc1xuICogdG8gd29yay5cbiAqXG4gKiBKaXJhIElzc3VlID0gRlctMTE4NFxuICovXG5leHBvcnQgKiBmcm9tICcuL2FsbG9jX2hvc3RfdmFycyc7XG5leHBvcnQgKiBmcm9tICcuL2F0dHJpYnV0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2F0dHJpYnV0ZV9pbnRlcnBvbGF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhbmdlX2RldGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaSc7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50X2NvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2VtYmVkZGVkX3ZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXRfY3VycmVudF92aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJwb2xhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpc3RlbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbmFtZXNwYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbmV4dF9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHlfaW50ZXJwb2xhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3N0eWxpbmcnO1xuZXhwb3J0IHtzdHlsZVNhbml0aXplciBhcyDJtcm1c3R5bGVTYW5pdGl6ZXJ9IGZyb20gJy4uL3N0eWxpbmdfbmV4dC9pbnN0cnVjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dF9pbnRlcnBvbGF0aW9uJztcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { getSelectedIndex } from '../state';
6
+ import { ɵɵelementAttribute } from './element';
7
+ import { ɵɵbind } from './property';
8
+ /**
9
+ * Updates the value of or removes a bound attribute on an Element.
10
+ *
11
+ * Used in the case of `[attr.title]="value"`
12
+ *
13
+ * \@codeGenApi
14
+ * @param {?} name name The name of the attribute.
15
+ * @param {?} value value The attribute is removed when value is `null` or `undefined`.
16
+ * Otherwise the attribute value is set to the stringified value.
17
+ * @param {?=} sanitizer An optional function used to sanitize the value.
18
+ * @param {?=} namespace Optional namespace to use when setting the attribute.
19
+ *
20
+ * @return {?}
21
+ */
22
+ export function ɵɵattribute(name, value, sanitizer, namespace) {
23
+ /** @type {?} */
24
+ const index = getSelectedIndex();
25
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
26
+ return ɵɵelementAttribute(index, name, ɵɵbind(value), sanitizer, namespace);
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9pbnN0cnVjdGlvbnMvYXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFRQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWVsQyxNQUFNLFVBQVUsV0FBVyxDQUN2QixJQUFZLEVBQUUsS0FBVSxFQUFFLFNBQThCLEVBQUUsU0FBa0I7O1VBQ3hFLEtBQUssR0FBRyxnQkFBZ0IsRUFBRTtJQUNoQyx3RUFBd0U7SUFDeEUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2FuaXRpemVyRm59IGZyb20gJy4uL2ludGVyZmFjZXMvc2FuaXRpemF0aW9uJztcbmltcG9ydCB7Z2V0U2VsZWN0ZWRJbmRleH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5pbXBvcnQge8m1ybVlbGVtZW50QXR0cmlidXRlfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHvJtcm1YmluZH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmFsdWUgb2Ygb3IgcmVtb3ZlcyBhIGJvdW5kIGF0dHJpYnV0ZSBvbiBhbiBFbGVtZW50LlxuICpcbiAqIFVzZWQgaW4gdGhlIGNhc2Ugb2YgYFthdHRyLnRpdGxlXT1cInZhbHVlXCJgXG4gKlxuICogQHBhcmFtIG5hbWUgbmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogQHBhcmFtIHZhbHVlIHZhbHVlIFRoZSBhdHRyaWJ1dGUgaXMgcmVtb3ZlZCB3aGVuIHZhbHVlIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAqICAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXMgc2V0IHRvIHRoZSBzdHJpbmdpZmllZCB2YWx1ZS5cbiAqIEBwYXJhbSBzYW5pdGl6ZXIgQW4gb3B0aW9uYWwgZnVuY3Rpb24gdXNlZCB0byBzYW5pdGl6ZSB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gbmFtZXNwYWNlIE9wdGlvbmFsIG5hbWVzcGFjZSB0byB1c2Ugd2hlbiBzZXR0aW5nIHRoZSBhdHRyaWJ1dGUuXG4gKlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVhdHRyaWJ1dGUoXG4gICAgbmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBzYW5pdGl6ZXI/OiBTYW5pdGl6ZXJGbiB8IG51bGwsIG5hbWVzcGFjZT86IHN0cmluZykge1xuICBjb25zdCBpbmRleCA9IGdldFNlbGVjdGVkSW5kZXgoKTtcbiAgLy8gVE9ETyhGVy0xMzQwKTogUmVmYWN0b3IgdG8gcmVtb3ZlIHRoZSB1c2Ugb2Ygb3RoZXIgaW5zdHJ1Y3Rpb25zIGhlcmUuXG4gIHJldHVybiDJtcm1ZWxlbWVudEF0dHJpYnV0ZShpbmRleCwgbmFtZSwgybXJtWJpbmQodmFsdWUpLCBzYW5pdGl6ZXIsIG5hbWVzcGFjZSk7XG59XG4iXX0=
@@ -0,0 +1,376 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { getSelectedIndex } from '../state';
6
+ import { ɵɵelementAttribute } from './element';
7
+ import { ɵɵinterpolation1, ɵɵinterpolation2, ɵɵinterpolation3, ɵɵinterpolation4, ɵɵinterpolation5, ɵɵinterpolation6, ɵɵinterpolation7, ɵɵinterpolation8, ɵɵinterpolationV } from './interpolation';
8
+ /**
9
+ *
10
+ * Update an interpolated attribute on an element with single bound value surrounded by text.
11
+ *
12
+ * Used when the value passed to a property has 1 interpolated value in it:
13
+ *
14
+ * ```html
15
+ * <div attr.title="prefix{{v0}}suffix"></div>
16
+ * ```
17
+ *
18
+ * Its compiled representation is::
19
+ *
20
+ * ```ts
21
+ * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');
22
+ * ```
23
+ *
24
+ * \@codeGenApi
25
+ * @param {?} attrName The name of the attribute to update
26
+ * @param {?} prefix Static value used for concatenation only.
27
+ * @param {?} v0 Value checked for change.
28
+ * @param {?} suffix Static value used for concatenation only.
29
+ * @param {?=} sanitizer An optional sanitizer function
30
+ * @param {?=} namespace
31
+ * @return {?} itself, so that it may be chained.
32
+ */
33
+ export function ɵɵattributeInterpolate1(attrName, prefix, v0, suffix, sanitizer, namespace) {
34
+ /** @type {?} */
35
+ const index = getSelectedIndex();
36
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
37
+ /** @type {?} */
38
+ const interpolatedValue = ɵɵinterpolation1(prefix, v0, suffix);
39
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
40
+ return ɵɵattributeInterpolate1;
41
+ }
42
+ /**
43
+ *
44
+ * Update an interpolated attribute on an element with 2 bound values surrounded by text.
45
+ *
46
+ * Used when the value passed to a property has 2 interpolated values in it:
47
+ *
48
+ * ```html
49
+ * <div attr.title="prefix{{v0}}-{{v1}}suffix"></div>
50
+ * ```
51
+ *
52
+ * Its compiled representation is::
53
+ *
54
+ * ```ts
55
+ * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');
56
+ * ```
57
+ *
58
+ * \@codeGenApi
59
+ * @param {?} attrName The name of the attribute to update
60
+ * @param {?} prefix Static value used for concatenation only.
61
+ * @param {?} v0 Value checked for change.
62
+ * @param {?} i0 Static value used for concatenation only.
63
+ * @param {?} v1 Value checked for change.
64
+ * @param {?} suffix Static value used for concatenation only.
65
+ * @param {?=} sanitizer An optional sanitizer function
66
+ * @param {?=} namespace
67
+ * @return {?} itself, so that it may be chained.
68
+ */
69
+ export function ɵɵattributeInterpolate2(attrName, prefix, v0, i0, v1, suffix, sanitizer, namespace) {
70
+ /** @type {?} */
71
+ const index = getSelectedIndex();
72
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
73
+ /** @type {?} */
74
+ const interpolatedValue = ɵɵinterpolation2(prefix, v0, i0, v1, suffix);
75
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
76
+ return ɵɵattributeInterpolate2;
77
+ }
78
+ /**
79
+ *
80
+ * Update an interpolated attribute on an element with 3 bound values surrounded by text.
81
+ *
82
+ * Used when the value passed to a property has 3 interpolated values in it:
83
+ *
84
+ * ```html
85
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}suffix"></div>
86
+ * ```
87
+ *
88
+ * Its compiled representation is::
89
+ *
90
+ * ```ts
91
+ * ɵɵattributeInterpolate3(
92
+ * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');
93
+ * ```
94
+ *
95
+ * \@codeGenApi
96
+ * @param {?} attrName The name of the attribute to update
97
+ * @param {?} prefix Static value used for concatenation only.
98
+ * @param {?} v0 Value checked for change.
99
+ * @param {?} i0 Static value used for concatenation only.
100
+ * @param {?} v1 Value checked for change.
101
+ * @param {?} i1 Static value used for concatenation only.
102
+ * @param {?} v2 Value checked for change.
103
+ * @param {?} suffix Static value used for concatenation only.
104
+ * @param {?=} sanitizer An optional sanitizer function
105
+ * @param {?=} namespace
106
+ * @return {?} itself, so that it may be chained.
107
+ */
108
+ export function ɵɵattributeInterpolate3(attrName, prefix, v0, i0, v1, i1, v2, suffix, sanitizer, namespace) {
109
+ /** @type {?} */
110
+ const index = getSelectedIndex();
111
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
112
+ /** @type {?} */
113
+ const interpolatedValue = ɵɵinterpolation3(prefix, v0, i0, v1, i1, v2, suffix);
114
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
115
+ return ɵɵattributeInterpolate3;
116
+ }
117
+ /**
118
+ *
119
+ * Update an interpolated attribute on an element with 4 bound values surrounded by text.
120
+ *
121
+ * Used when the value passed to a property has 4 interpolated values in it:
122
+ *
123
+ * ```html
124
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix"></div>
125
+ * ```
126
+ *
127
+ * Its compiled representation is::
128
+ *
129
+ * ```ts
130
+ * ɵɵattributeInterpolate4(
131
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');
132
+ * ```
133
+ *
134
+ * \@codeGenApi
135
+ * @param {?} attrName The name of the attribute to update
136
+ * @param {?} prefix Static value used for concatenation only.
137
+ * @param {?} v0 Value checked for change.
138
+ * @param {?} i0 Static value used for concatenation only.
139
+ * @param {?} v1 Value checked for change.
140
+ * @param {?} i1 Static value used for concatenation only.
141
+ * @param {?} v2 Value checked for change.
142
+ * @param {?} i2 Static value used for concatenation only.
143
+ * @param {?} v3 Value checked for change.
144
+ * @param {?} suffix Static value used for concatenation only.
145
+ * @param {?=} sanitizer An optional sanitizer function
146
+ * @param {?=} namespace
147
+ * @return {?} itself, so that it may be chained.
148
+ */
149
+ export function ɵɵattributeInterpolate4(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, sanitizer, namespace) {
150
+ /** @type {?} */
151
+ const index = getSelectedIndex();
152
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
153
+ /** @type {?} */
154
+ const interpolatedValue = ɵɵinterpolation4(prefix, v0, i0, v1, i1, v2, i2, v3, suffix);
155
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
156
+ return ɵɵattributeInterpolate4;
157
+ }
158
+ /**
159
+ *
160
+ * Update an interpolated attribute on an element with 5 bound values surrounded by text.
161
+ *
162
+ * Used when the value passed to a property has 5 interpolated values in it:
163
+ *
164
+ * ```html
165
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix"></div>
166
+ * ```
167
+ *
168
+ * Its compiled representation is::
169
+ *
170
+ * ```ts
171
+ * ɵɵattributeInterpolate5(
172
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');
173
+ * ```
174
+ *
175
+ * \@codeGenApi
176
+ * @param {?} attrName The name of the attribute to update
177
+ * @param {?} prefix Static value used for concatenation only.
178
+ * @param {?} v0 Value checked for change.
179
+ * @param {?} i0 Static value used for concatenation only.
180
+ * @param {?} v1 Value checked for change.
181
+ * @param {?} i1 Static value used for concatenation only.
182
+ * @param {?} v2 Value checked for change.
183
+ * @param {?} i2 Static value used for concatenation only.
184
+ * @param {?} v3 Value checked for change.
185
+ * @param {?} i3 Static value used for concatenation only.
186
+ * @param {?} v4 Value checked for change.
187
+ * @param {?} suffix Static value used for concatenation only.
188
+ * @param {?=} sanitizer An optional sanitizer function
189
+ * @param {?=} namespace
190
+ * @return {?} itself, so that it may be chained.
191
+ */
192
+ export function ɵɵattributeInterpolate5(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, sanitizer, namespace) {
193
+ /** @type {?} */
194
+ const index = getSelectedIndex();
195
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
196
+ /** @type {?} */
197
+ const interpolatedValue = ɵɵinterpolation5(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);
198
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
199
+ return ɵɵattributeInterpolate5;
200
+ }
201
+ /**
202
+ *
203
+ * Update an interpolated attribute on an element with 6 bound values surrounded by text.
204
+ *
205
+ * Used when the value passed to a property has 6 interpolated values in it:
206
+ *
207
+ * ```html
208
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix"></div>
209
+ * ```
210
+ *
211
+ * Its compiled representation is::
212
+ *
213
+ * ```ts
214
+ * ɵɵattributeInterpolate6(
215
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');
216
+ * ```
217
+ *
218
+ * \@codeGenApi
219
+ * @param {?} attrName The name of the attribute to update
220
+ * @param {?} prefix Static value used for concatenation only.
221
+ * @param {?} v0 Value checked for change.
222
+ * @param {?} i0 Static value used for concatenation only.
223
+ * @param {?} v1 Value checked for change.
224
+ * @param {?} i1 Static value used for concatenation only.
225
+ * @param {?} v2 Value checked for change.
226
+ * @param {?} i2 Static value used for concatenation only.
227
+ * @param {?} v3 Value checked for change.
228
+ * @param {?} i3 Static value used for concatenation only.
229
+ * @param {?} v4 Value checked for change.
230
+ * @param {?} i4 Static value used for concatenation only.
231
+ * @param {?} v5 Value checked for change.
232
+ * @param {?} suffix Static value used for concatenation only.
233
+ * @param {?=} sanitizer An optional sanitizer function
234
+ * @param {?=} namespace
235
+ * @return {?} itself, so that it may be chained.
236
+ */
237
+ export function ɵɵattributeInterpolate6(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix, sanitizer, namespace) {
238
+ /** @type {?} */
239
+ const index = getSelectedIndex();
240
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
241
+ /** @type {?} */
242
+ const interpolatedValue = ɵɵinterpolation6(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);
243
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
244
+ return ɵɵattributeInterpolate6;
245
+ }
246
+ /**
247
+ *
248
+ * Update an interpolated attribute on an element with 7 bound values surrounded by text.
249
+ *
250
+ * Used when the value passed to a property has 7 interpolated values in it:
251
+ *
252
+ * ```html
253
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix"></div>
254
+ * ```
255
+ *
256
+ * Its compiled representation is::
257
+ *
258
+ * ```ts
259
+ * ɵɵattributeInterpolate7(
260
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');
261
+ * ```
262
+ *
263
+ * \@codeGenApi
264
+ * @param {?} attrName The name of the attribute to update
265
+ * @param {?} prefix Static value used for concatenation only.
266
+ * @param {?} v0 Value checked for change.
267
+ * @param {?} i0 Static value used for concatenation only.
268
+ * @param {?} v1 Value checked for change.
269
+ * @param {?} i1 Static value used for concatenation only.
270
+ * @param {?} v2 Value checked for change.
271
+ * @param {?} i2 Static value used for concatenation only.
272
+ * @param {?} v3 Value checked for change.
273
+ * @param {?} i3 Static value used for concatenation only.
274
+ * @param {?} v4 Value checked for change.
275
+ * @param {?} i4 Static value used for concatenation only.
276
+ * @param {?} v5 Value checked for change.
277
+ * @param {?} i5 Static value used for concatenation only.
278
+ * @param {?} v6 Value checked for change.
279
+ * @param {?} suffix Static value used for concatenation only.
280
+ * @param {?=} sanitizer An optional sanitizer function
281
+ * @param {?=} namespace
282
+ * @return {?} itself, so that it may be chained.
283
+ */
284
+ export function ɵɵattributeInterpolate7(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix, sanitizer, namespace) {
285
+ /** @type {?} */
286
+ const index = getSelectedIndex();
287
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
288
+ /** @type {?} */
289
+ const interpolatedValue = ɵɵinterpolation7(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);
290
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
291
+ return ɵɵattributeInterpolate7;
292
+ }
293
+ /**
294
+ *
295
+ * Update an interpolated attribute on an element with 8 bound values surrounded by text.
296
+ *
297
+ * Used when the value passed to a property has 8 interpolated values in it:
298
+ *
299
+ * ```html
300
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix"></div>
301
+ * ```
302
+ *
303
+ * Its compiled representation is::
304
+ *
305
+ * ```ts
306
+ * ɵɵattributeInterpolate8(
307
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');
308
+ * ```
309
+ *
310
+ * \@codeGenApi
311
+ * @param {?} attrName The name of the attribute to update
312
+ * @param {?} prefix Static value used for concatenation only.
313
+ * @param {?} v0 Value checked for change.
314
+ * @param {?} i0 Static value used for concatenation only.
315
+ * @param {?} v1 Value checked for change.
316
+ * @param {?} i1 Static value used for concatenation only.
317
+ * @param {?} v2 Value checked for change.
318
+ * @param {?} i2 Static value used for concatenation only.
319
+ * @param {?} v3 Value checked for change.
320
+ * @param {?} i3 Static value used for concatenation only.
321
+ * @param {?} v4 Value checked for change.
322
+ * @param {?} i4 Static value used for concatenation only.
323
+ * @param {?} v5 Value checked for change.
324
+ * @param {?} i5 Static value used for concatenation only.
325
+ * @param {?} v6 Value checked for change.
326
+ * @param {?} i6 Static value used for concatenation only.
327
+ * @param {?} v7 Value checked for change.
328
+ * @param {?} suffix Static value used for concatenation only.
329
+ * @param {?=} sanitizer An optional sanitizer function
330
+ * @param {?=} namespace
331
+ * @return {?} itself, so that it may be chained.
332
+ */
333
+ export function ɵɵattributeInterpolate8(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix, sanitizer, namespace) {
334
+ /** @type {?} */
335
+ const index = getSelectedIndex();
336
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
337
+ /** @type {?} */
338
+ const interpolatedValue = ɵɵinterpolation8(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);
339
+ ɵɵelementAttribute(index, attrName, interpolatedValue, sanitizer, namespace);
340
+ return ɵɵattributeInterpolate8;
341
+ }
342
+ /**
343
+ * Update an interpolated attribute on an element with 8 or more bound values surrounded by text.
344
+ *
345
+ * Used when the number of interpolated values exceeds 7.
346
+ *
347
+ * ```html
348
+ * <div
349
+ * title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix"></div>
350
+ * ```
351
+ *
352
+ * Its compiled representation is::
353
+ *
354
+ * ```ts
355
+ * ɵɵattributeInterpolateV(
356
+ * 'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,
357
+ * 'suffix']);
358
+ * ```
359
+ *
360
+ * \@codeGenApi
361
+ * @param {?} attrName The name of the attribute to update.
362
+ * @param {?} values The a collection of values and the strings in-between those values, beginning with
363
+ * a string prefix and ending with a string suffix.
364
+ * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)
365
+ * @param {?=} sanitizer An optional sanitizer function
366
+ * @param {?=} namespace
367
+ * @return {?} itself, so that it may be chained.
368
+ */
369
+ export function ɵɵattributeInterpolateV(attrName, values, sanitizer, namespace) {
370
+ /** @type {?} */
371
+ const index = getSelectedIndex();
372
+ // TODO(FW-1340): Refactor to remove the use of other instructions here.
373
+ ɵɵelementAttribute(index, attrName, ɵɵinterpolationV(values), sanitizer, namespace);
374
+ return ɵɵattributeInterpolateV;
375
+ }
376
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlX2ludGVycG9sYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luc3RydWN0aW9ucy9hdHRyaWJ1dGVfaW50ZXJwb2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBUUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QmpNLE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBTyxFQUFFLE1BQWMsRUFBRSxTQUF1QixFQUNsRixTQUFrQjs7VUFDZCxLQUFLLEdBQUcsZ0JBQWdCLEVBQUU7OztVQUcxQixpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUU5RCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU3RSxPQUFPLHVCQUF1QixDQUFDO0FBQ2pDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkQsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxFQUFPLEVBQUUsRUFBVSxFQUFFLEVBQU8sRUFBRSxNQUFjLEVBQzlFLFNBQXVCLEVBQUUsU0FBa0I7O1VBQ3ZDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRTs7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QUUsRUFBVSxFQUFFLEVBQU8sRUFBRSxFQUFVLEVBQUUsRUFBTyxFQUFFLEVBQVUsRUFDL0YsRUFBTyxFQUFFLEVBQVUsRUFBRSxFQUFPLEVBQUUsRUFBVSxFQUFFLEVBQU8sRUFBRSxFQUFVLEVBQUUsRUFBTyxFQUFFLEVBQVUsRUFBRSxFQUFPLEVBQzNGLE1BQWMsRUFBRSxTQUF1QixFQUFFLFNBQWtCOztVQUN2RCxLQUFLLEdBQUcsZ0JBQWdCLEVBQUU7OztVQUUxQixpQkFBaUIsR0FDbkIsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNoRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RSxPQUFPLHVCQUF1QixDQUFDO0FBQ2pDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkQsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxRQUFnQixFQUFFLE1BQWEsRUFBRSxTQUF1QixFQUN4RCxTQUFrQjs7VUFDZCxLQUFLLEdBQUcsZ0JBQWdCLEVBQUU7SUFDaEMsd0VBQXdFO0lBQ3hFLGtCQUFrQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLE9BQU8sdUJBQXVCLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2FuaXRpemVyRm59IGZyb20gJy4uL2ludGVyZmFjZXMvc2FuaXRpemF0aW9uJztcbmltcG9ydCB7Z2V0U2VsZWN0ZWRJbmRleH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHvJtcm1ZWxlbWVudEF0dHJpYnV0ZX0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7ybXJtWludGVycG9sYXRpb24xLCDJtcm1aW50ZXJwb2xhdGlvbjIsIMm1ybVpbnRlcnBvbGF0aW9uMywgybXJtWludGVycG9sYXRpb240LCDJtcm1aW50ZXJwb2xhdGlvbjUsIMm1ybVpbnRlcnBvbGF0aW9uNiwgybXJtWludGVycG9sYXRpb243LCDJtcm1aW50ZXJwb2xhdGlvbjgsIMm1ybVpbnRlcnBvbGF0aW9uVn0gZnJvbSAnLi9pbnRlcnBvbGF0aW9uJztcbmltcG9ydCB7VHNpY2tsZUlzc3VlMTAwOX0gZnJvbSAnLi9zaGFyZWQnO1xuXG5cblxuLyoqXG4gKlxuICogVXBkYXRlIGFuIGludGVycG9sYXRlZCBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCB3aXRoIHNpbmdsZSBib3VuZCB2YWx1ZSBzdXJyb3VuZGVkIGJ5IHRleHQuXG4gKlxuICogVXNlZCB3aGVuIHRoZSB2YWx1ZSBwYXNzZWQgdG8gYSBwcm9wZXJ0eSBoYXMgMSBpbnRlcnBvbGF0ZWQgdmFsdWUgaW4gaXQ6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBhdHRyLnRpdGxlPVwicHJlZml4e3t2MH19c3VmZml4XCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBJdHMgY29tcGlsZWQgcmVwcmVzZW50YXRpb24gaXM6OlxuICpcbiAqIGBgYHRzXG4gKiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxKCd0aXRsZScsICdwcmVmaXgnLCB2MCwgJ3N1ZmZpeCcpO1xuICogYGBgXG4gKlxuICogQHBhcmFtIGF0dHJOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gdXBkYXRlXG4gKiBAcGFyYW0gcHJlZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjAgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIHN1ZmZpeCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHNhbml0aXplciBBbiBvcHRpb25hbCBzYW5pdGl6ZXIgZnVuY3Rpb25cbiAqIEByZXR1cm5zIGl0c2VsZiwgc28gdGhhdCBpdCBtYXkgYmUgY2hhaW5lZC5cbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxKFxuICAgIGF0dHJOYW1lOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nLCB2MDogYW55LCBzdWZmaXg6IHN0cmluZywgc2FuaXRpemVyPzogU2FuaXRpemVyRm4sXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nKTogVHNpY2tsZUlzc3VlMTAwOSB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0U2VsZWN0ZWRJbmRleCgpO1xuXG4gIC8vIFRPRE8oRlctMTM0MCk6IFJlZmFjdG9yIHRvIHJlbW92ZSB0aGUgdXNlIG9mIG90aGVyIGluc3RydWN0aW9ucyBoZXJlLlxuICBjb25zdCBpbnRlcnBvbGF0ZWRWYWx1ZSA9IMm1ybVpbnRlcnBvbGF0aW9uMShwcmVmaXgsIHYwLCBzdWZmaXgpO1xuXG4gIMm1ybVlbGVtZW50QXR0cmlidXRlKGluZGV4LCBhdHRyTmFtZSwgaW50ZXJwb2xhdGVkVmFsdWUsIHNhbml0aXplciwgbmFtZXNwYWNlKTtcblxuICByZXR1cm4gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMTtcbn1cblxuLyoqXG4gKlxuICogVXBkYXRlIGFuIGludGVycG9sYXRlZCBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCB3aXRoIDIgYm91bmQgdmFsdWVzIHN1cnJvdW5kZWQgYnkgdGV4dC5cbiAqXG4gKiBVc2VkIHdoZW4gdGhlIHZhbHVlIHBhc3NlZCB0byBhIHByb3BlcnR5IGhhcyAyIGludGVycG9sYXRlZCB2YWx1ZXMgaW4gaXQ6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBhdHRyLnRpdGxlPVwicHJlZml4e3t2MH19LXt7djF9fXN1ZmZpeFwiPjwvZGl2PlxuICogYGBgXG4gKlxuICogSXRzIGNvbXBpbGVkIHJlcHJlc2VudGF0aW9uIGlzOjpcbiAqXG4gKiBgYGB0c1xuICogybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMigndGl0bGUnLCAncHJlZml4JywgdjAsICctJywgdjEsICdzdWZmaXgnKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBhdHRyTmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIHVwZGF0ZVxuICogQHBhcmFtIHByZWZpeCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYwIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBpMCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYxIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBzdWZmaXggU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSBzYW5pdGl6ZXIgQW4gb3B0aW9uYWwgc2FuaXRpemVyIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyBpdHNlbGYsIHNvIHRoYXQgaXQgbWF5IGJlIGNoYWluZWQuXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMihcbiAgICBhdHRyTmFtZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdjA6IGFueSwgaTA6IHN0cmluZywgdjE6IGFueSwgc3VmZml4OiBzdHJpbmcsXG4gICAgc2FuaXRpemVyPzogU2FuaXRpemVyRm4sIG5hbWVzcGFjZT86IHN0cmluZyk6IFRzaWNrbGVJc3N1ZTEwMDkge1xuICBjb25zdCBpbmRleCA9IGdldFNlbGVjdGVkSW5kZXgoKTtcblxuICAvLyBUT0RPKEZXLTEzNDApOiBSZWZhY3RvciB0byByZW1vdmUgdGhlIHVzZSBvZiBvdGhlciBpbnN0cnVjdGlvbnMgaGVyZS5cbiAgY29uc3QgaW50ZXJwb2xhdGVkVmFsdWUgPSDJtcm1aW50ZXJwb2xhdGlvbjIocHJlZml4LCB2MCwgaTAsIHYxLCBzdWZmaXgpO1xuICDJtcm1ZWxlbWVudEF0dHJpYnV0ZShpbmRleCwgYXR0ck5hbWUsIGludGVycG9sYXRlZFZhbHVlLCBzYW5pdGl6ZXIsIG5hbWVzcGFjZSk7XG4gIHJldHVybiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyO1xufVxuXG4vKipcbiAqXG4gKiBVcGRhdGUgYW4gaW50ZXJwb2xhdGVkIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50IHdpdGggMyBib3VuZCB2YWx1ZXMgc3Vycm91bmRlZCBieSB0ZXh0LlxuICpcbiAqIFVzZWQgd2hlbiB0aGUgdmFsdWUgcGFzc2VkIHRvIGEgcHJvcGVydHkgaGFzIDMgaW50ZXJwb2xhdGVkIHZhbHVlcyBpbiBpdDpcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IGF0dHIudGl0bGU9XCJwcmVmaXh7e3YwfX0te3t2MX19LXt7djJ9fXN1ZmZpeFwiPjwvZGl2PlxuICogYGBgXG4gKlxuICogSXRzIGNvbXBpbGVkIHJlcHJlc2VudGF0aW9uIGlzOjpcbiAqXG4gKiBgYGB0c1xuICogybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyhcbiAqICd0aXRsZScsICdwcmVmaXgnLCB2MCwgJy0nLCB2MSwgJy0nLCB2MiwgJ3N1ZmZpeCcpO1xuICogYGBgXG4gKlxuICogQHBhcmFtIGF0dHJOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gdXBkYXRlXG4gKiBAcGFyYW0gcHJlZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjAgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkwIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjEgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkxIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjIgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIHN1ZmZpeCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHNhbml0aXplciBBbiBvcHRpb25hbCBzYW5pdGl6ZXIgZnVuY3Rpb25cbiAqIEByZXR1cm5zIGl0c2VsZiwgc28gdGhhdCBpdCBtYXkgYmUgY2hhaW5lZC5cbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzKFxuICAgIGF0dHJOYW1lOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nLCB2MDogYW55LCBpMDogc3RyaW5nLCB2MTogYW55LCBpMTogc3RyaW5nLCB2MjogYW55LFxuICAgIHN1ZmZpeDogc3RyaW5nLCBzYW5pdGl6ZXI/OiBTYW5pdGl6ZXJGbiwgbmFtZXNwYWNlPzogc3RyaW5nKTogVHNpY2tsZUlzc3VlMTAwOSB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0U2VsZWN0ZWRJbmRleCgpO1xuXG4gIC8vIFRPRE8oRlctMTM0MCk6IFJlZmFjdG9yIHRvIHJlbW92ZSB0aGUgdXNlIG9mIG90aGVyIGluc3RydWN0aW9ucyBoZXJlLlxuICBjb25zdCBpbnRlcnBvbGF0ZWRWYWx1ZSA9IMm1ybVpbnRlcnBvbGF0aW9uMyhwcmVmaXgsIHYwLCBpMCwgdjEsIGkxLCB2Miwgc3VmZml4KTtcbiAgybXJtWVsZW1lbnRBdHRyaWJ1dGUoaW5kZXgsIGF0dHJOYW1lLCBpbnRlcnBvbGF0ZWRWYWx1ZSwgc2FuaXRpemVyLCBuYW1lc3BhY2UpO1xuICByZXR1cm4gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMztcbn1cblxuLyoqXG4gKlxuICogVXBkYXRlIGFuIGludGVycG9sYXRlZCBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCB3aXRoIDQgYm91bmQgdmFsdWVzIHN1cnJvdW5kZWQgYnkgdGV4dC5cbiAqXG4gKiBVc2VkIHdoZW4gdGhlIHZhbHVlIHBhc3NlZCB0byBhIHByb3BlcnR5IGhhcyA0IGludGVycG9sYXRlZCB2YWx1ZXMgaW4gaXQ6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBhdHRyLnRpdGxlPVwicHJlZml4e3t2MH19LXt7djF9fS17e3YyfX0te3t2M319c3VmZml4XCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBJdHMgY29tcGlsZWQgcmVwcmVzZW50YXRpb24gaXM6OlxuICpcbiAqIGBgYHRzXG4gKiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0KFxuICogJ3RpdGxlJywgJ3ByZWZpeCcsIHYwLCAnLScsIHYxLCAnLScsIHYyLCAnLScsIHYzLCAnc3VmZml4Jyk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYXR0ck5hbWUgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byB1cGRhdGVcbiAqIEBwYXJhbSBwcmVmaXggU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MCBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTAgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MSBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTEgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MiBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTIgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MyBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gc3VmZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gc2FuaXRpemVyIEFuIG9wdGlvbmFsIHNhbml0aXplciBmdW5jdGlvblxuICogQHJldHVybnMgaXRzZWxmLCBzbyB0aGF0IGl0IG1heSBiZSBjaGFpbmVkLlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQoXG4gICAgYXR0ck5hbWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHYwOiBhbnksIGkwOiBzdHJpbmcsIHYxOiBhbnksIGkxOiBzdHJpbmcsIHYyOiBhbnksIGkyOiBzdHJpbmcsXG4gICAgdjM6IGFueSwgc3VmZml4OiBzdHJpbmcsIHNhbml0aXplcj86IFNhbml0aXplckZuLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiBUc2lja2xlSXNzdWUxMDA5IHtcbiAgY29uc3QgaW5kZXggPSBnZXRTZWxlY3RlZEluZGV4KCk7XG5cbiAgLy8gVE9ETyhGVy0xMzQwKTogUmVmYWN0b3IgdG8gcmVtb3ZlIHRoZSB1c2Ugb2Ygb3RoZXIgaW5zdHJ1Y3Rpb25zIGhlcmUuXG4gIGNvbnN0IGludGVycG9sYXRlZFZhbHVlID0gybXJtWludGVycG9sYXRpb240KHByZWZpeCwgdjAsIGkwLCB2MSwgaTEsIHYyLCBpMiwgdjMsIHN1ZmZpeCk7XG4gIMm1ybVlbGVtZW50QXR0cmlidXRlKGluZGV4LCBhdHRyTmFtZSwgaW50ZXJwb2xhdGVkVmFsdWUsIHNhbml0aXplciwgbmFtZXNwYWNlKTtcbiAgcmV0dXJuIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQ7XG59XG5cbi8qKlxuICpcbiAqIFVwZGF0ZSBhbiBpbnRlcnBvbGF0ZWQgYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQgd2l0aCA1IGJvdW5kIHZhbHVlcyBzdXJyb3VuZGVkIGJ5IHRleHQuXG4gKlxuICogVXNlZCB3aGVuIHRoZSB2YWx1ZSBwYXNzZWQgdG8gYSBwcm9wZXJ0eSBoYXMgNSBpbnRlcnBvbGF0ZWQgdmFsdWVzIGluIGl0OlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgYXR0ci50aXRsZT1cInByZWZpeHt7djB9fS17e3YxfX0te3t2Mn19LXt7djN9fS17e3Y0fX1zdWZmaXhcIj48L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEl0cyBjb21waWxlZCByZXByZXNlbnRhdGlvbiBpczo6XG4gKlxuICogYGBgdHNcbiAqIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUoXG4gKiAndGl0bGUnLCAncHJlZml4JywgdjAsICctJywgdjEsICctJywgdjIsICctJywgdjMsICctJywgdjQsICdzdWZmaXgnKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBhdHRyTmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIHVwZGF0ZVxuICogQHBhcmFtIHByZWZpeCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYwIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBpMCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYxIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBpMSBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYyIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBpMiBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHYzIFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBpMyBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHY0IFZhbHVlIGNoZWNrZWQgZm9yIGNoYW5nZS5cbiAqIEBwYXJhbSBzdWZmaXggU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSBzYW5pdGl6ZXIgQW4gb3B0aW9uYWwgc2FuaXRpemVyIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyBpdHNlbGYsIHNvIHRoYXQgaXQgbWF5IGJlIGNoYWluZWQuXG4gKiBAY29kZUdlbkFwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNShcbiAgICBhdHRyTmFtZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdjA6IGFueSwgaTA6IHN0cmluZywgdjE6IGFueSwgaTE6IHN0cmluZywgdjI6IGFueSwgaTI6IHN0cmluZyxcbiAgICB2MzogYW55LCBpMzogc3RyaW5nLCB2NDogYW55LCBzdWZmaXg6IHN0cmluZywgc2FuaXRpemVyPzogU2FuaXRpemVyRm4sXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nKTogVHNpY2tsZUlzc3VlMTAwOSB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0U2VsZWN0ZWRJbmRleCgpO1xuXG4gIC8vIFRPRE8oRlctMTM0MCk6IFJlZmFjdG9yIHRvIHJlbW92ZSB0aGUgdXNlIG9mIG90aGVyIGluc3RydWN0aW9ucyBoZXJlLlxuICBjb25zdCBpbnRlcnBvbGF0ZWRWYWx1ZSA9IMm1ybVpbnRlcnBvbGF0aW9uNShwcmVmaXgsIHYwLCBpMCwgdjEsIGkxLCB2MiwgaTIsIHYzLCBpMywgdjQsIHN1ZmZpeCk7XG4gIMm1ybVlbGVtZW50QXR0cmlidXRlKGluZGV4LCBhdHRyTmFtZSwgaW50ZXJwb2xhdGVkVmFsdWUsIHNhbml0aXplciwgbmFtZXNwYWNlKTtcbiAgcmV0dXJuIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTU7XG59XG5cbi8qKlxuICpcbiAqIFVwZGF0ZSBhbiBpbnRlcnBvbGF0ZWQgYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQgd2l0aCA2IGJvdW5kIHZhbHVlcyBzdXJyb3VuZGVkIGJ5IHRleHQuXG4gKlxuICogVXNlZCB3aGVuIHRoZSB2YWx1ZSBwYXNzZWQgdG8gYSBwcm9wZXJ0eSBoYXMgNiBpbnRlcnBvbGF0ZWQgdmFsdWVzIGluIGl0OlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgYXR0ci50aXRsZT1cInByZWZpeHt7djB9fS17e3YxfX0te3t2Mn19LXt7djN9fS17e3Y0fX0te3t2NX19c3VmZml4XCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBJdHMgY29tcGlsZWQgcmVwcmVzZW50YXRpb24gaXM6OlxuICpcbiAqIGBgYHRzXG4gKiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2KFxuICogICAgJ3RpdGxlJywgJ3ByZWZpeCcsIHYwLCAnLScsIHYxLCAnLScsIHYyLCAnLScsIHYzLCAnLScsIHY0LCAnLScsIHY1LCAnc3VmZml4Jyk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYXR0ck5hbWUgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byB1cGRhdGVcbiAqIEBwYXJhbSBwcmVmaXggU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MCBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTAgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MSBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTEgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MiBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTIgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MyBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTMgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2NCBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTQgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2NSBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gc3VmZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gc2FuaXRpemVyIEFuIG9wdGlvbmFsIHNhbml0aXplciBmdW5jdGlvblxuICogQHJldHVybnMgaXRzZWxmLCBzbyB0aGF0IGl0IG1heSBiZSBjaGFpbmVkLlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTYoXG4gICAgYXR0ck5hbWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHYwOiBhbnksIGkwOiBzdHJpbmcsIHYxOiBhbnksIGkxOiBzdHJpbmcsIHYyOiBhbnksIGkyOiBzdHJpbmcsXG4gICAgdjM6IGFueSwgaTM6IHN0cmluZywgdjQ6IGFueSwgaTQ6IHN0cmluZywgdjU6IGFueSwgc3VmZml4OiBzdHJpbmcsIHNhbml0aXplcj86IFNhbml0aXplckZuLFxuICAgIG5hbWVzcGFjZT86IHN0cmluZyk6IFRzaWNrbGVJc3N1ZTEwMDkge1xuICBjb25zdCBpbmRleCA9IGdldFNlbGVjdGVkSW5kZXgoKTtcbiAgLy8gVE9ETyhGVy0xMzQwKTogUmVmYWN0b3IgdG8gcmVtb3ZlIHRoZSB1c2Ugb2Ygb3RoZXIgaW5zdHJ1Y3Rpb25zIGhlcmUuXG4gIGNvbnN0IGludGVycG9sYXRlZFZhbHVlID1cbiAgICAgIMm1ybVpbnRlcnBvbGF0aW9uNihwcmVmaXgsIHYwLCBpMCwgdjEsIGkxLCB2MiwgaTIsIHYzLCBpMywgdjQsIGk0LCB2NSwgc3VmZml4KTtcbiAgybXJtWVsZW1lbnRBdHRyaWJ1dGUoaW5kZXgsIGF0dHJOYW1lLCBpbnRlcnBvbGF0ZWRWYWx1ZSwgc2FuaXRpemVyLCBuYW1lc3BhY2UpO1xuICByZXR1cm4gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNjtcbn1cblxuLyoqXG4gKlxuICogVXBkYXRlIGFuIGludGVycG9sYXRlZCBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCB3aXRoIDcgYm91bmQgdmFsdWVzIHN1cnJvdW5kZWQgYnkgdGV4dC5cbiAqXG4gKiBVc2VkIHdoZW4gdGhlIHZhbHVlIHBhc3NlZCB0byBhIHByb3BlcnR5IGhhcyA3IGludGVycG9sYXRlZCB2YWx1ZXMgaW4gaXQ6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBhdHRyLnRpdGxlPVwicHJlZml4e3t2MH19LXt7djF9fS17e3YyfX0te3t2M319LXt7djR9fS17e3Y1fX0te3t2Nn19c3VmZml4XCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBJdHMgY29tcGlsZWQgcmVwcmVzZW50YXRpb24gaXM6OlxuICpcbiAqIGBgYHRzXG4gKiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3KFxuICogICAgJ3RpdGxlJywgJ3ByZWZpeCcsIHYwLCAnLScsIHYxLCAnLScsIHYyLCAnLScsIHYzLCAnLScsIHY0LCAnLScsIHY1LCAnLScsIHY2LCAnc3VmZml4Jyk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYXR0ck5hbWUgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byB1cGRhdGVcbiAqIEBwYXJhbSBwcmVmaXggU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MCBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTAgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MSBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTEgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MiBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTIgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2MyBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTMgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2NCBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTQgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2NSBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gaTUgU3RhdGljIHZhbHVlIHVzZWQgZm9yIGNvbmNhdGVuYXRpb24gb25seS5cbiAqIEBwYXJhbSB2NiBWYWx1ZSBjaGVja2VkIGZvciBjaGFuZ2UuXG4gKiBAcGFyYW0gc3VmZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gc2FuaXRpemVyIEFuIG9wdGlvbmFsIHNhbml0aXplciBmdW5jdGlvblxuICogQHJldHVybnMgaXRzZWxmLCBzbyB0aGF0IGl0IG1heSBiZSBjaGFpbmVkLlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTcoXG4gICAgYXR0ck5hbWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHYwOiBhbnksIGkwOiBzdHJpbmcsIHYxOiBhbnksIGkxOiBzdHJpbmcsIHYyOiBhbnksIGkyOiBzdHJpbmcsXG4gICAgdjM6IGFueSwgaTM6IHN0cmluZywgdjQ6IGFueSwgaTQ6IHN0cmluZywgdjU6IGFueSwgaTU6IHN0cmluZywgdjY6IGFueSwgc3VmZml4OiBzdHJpbmcsXG4gICAgc2FuaXRpemVyPzogU2FuaXRpemVyRm4sIG5hbWVzcGFjZT86IHN0cmluZyk6IFRzaWNrbGVJc3N1ZTEwMDkge1xuICBjb25zdCBpbmRleCA9IGdldFNlbGVjdGVkSW5kZXgoKTtcbiAgLy8gVE9ETyhGVy0xMzQwKTogUmVmYWN0b3IgdG8gcmVtb3ZlIHRoZSB1c2Ugb2Ygb3RoZXIgaW5zdHJ1Y3Rpb25zIGhlcmUuXG4gIGNvbnN0IGludGVycG9sYXRlZFZhbHVlID1cbiAgICAgIMm1ybVpbnRlcnBvbGF0aW9uNyhwcmVmaXgsIHYwLCBpMCwgdjEsIGkxLCB2MiwgaTIsIHYzLCBpMywgdjQsIGk0LCB2NSwgaTUsIHY2LCBzdWZmaXgpO1xuICDJtcm1ZWxlbWVudEF0dHJpYnV0ZShpbmRleCwgYXR0ck5hbWUsIGludGVycG9sYXRlZFZhbHVlLCBzYW5pdGl6ZXIsIG5hbWVzcGFjZSk7XG4gIHJldHVybiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3O1xufVxuXG4vKipcbiAqXG4gKiBVcGRhdGUgYW4gaW50ZXJwb2xhdGVkIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50IHdpdGggOCBib3VuZCB2YWx1ZXMgc3Vycm91bmRlZCBieSB0ZXh0LlxuICpcbiAqIFVzZWQgd2hlbiB0aGUgdmFsdWUgcGFzc2VkIHRvIGEgcHJvcGVydHkgaGFzIDggaW50ZXJwb2xhdGVkIHZhbHVlcyBpbiBpdDpcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IGF0dHIudGl0bGU9XCJwcmVmaXh7e3YwfX0te3t2MX19LXt7djJ9fS17e3YzfX0te3t2NH19LXt7djV9fS17e3Y2fX0te3t2N319c3VmZml4XCI+PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBJdHMgY29tcGlsZWQgcmVwcmVzZW50YXRpb24gaXM6OlxuICpcbiAqIGBgYHRzXG4gKiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4KFxuICogICd0aXRsZScsICdwcmVmaXgnLCB2MCwgJy0nLCB2MSwgJy0nLCB2MiwgJy0nLCB2MywgJy0nLCB2NCwgJy0nLCB2NSwgJy0nLCB2NiwgJy0nLCB2NywgJ3N1ZmZpeCcpO1xuICogYGBgXG4gKlxuICogQHBhcmFtIGF0dHJOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gdXBkYXRlXG4gKiBAcGFyYW0gcHJlZml4IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjAgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkwIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjEgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkxIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjIgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkyIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjMgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGkzIFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjQgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGk0IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjUgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGk1IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjYgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIGk2IFN0YXRpYyB2YWx1ZSB1c2VkIGZvciBjb25jYXRlbmF0aW9uIG9ubHkuXG4gKiBAcGFyYW0gdjcgVmFsdWUgY2hlY2tlZCBmb3IgY2hhbmdlLlxuICogQHBhcmFtIHN1ZmZpeCBTdGF0aWMgdmFsdWUgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBvbmx5LlxuICogQHBhcmFtIHNhbml0aXplciBBbiBvcHRpb25hbCBzYW5pdGl6ZXIgZnVuY3Rpb25cbiAqIEByZXR1cm5zIGl0c2VsZiwgc28gdGhhdCBpdCBtYXkgYmUgY2hhaW5lZC5cbiAqIEBjb2RlR2VuQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4KFxuICAgIGF0dHJOYW1lOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nLCB2MDogYW55LCBpMDogc3RyaW5nLCB2MTogYW55LCBpMTogc3RyaW5nLCB2MjogYW55LCBpMjogc3RyaW5nLFxuICAgIHYzOiBhbnksIGkzOiBzdHJpbmcsIHY0OiBhbnksIGk0OiBzdHJpbmcsIHY1OiBhbnksIGk1OiBzdHJpbmcsIHY2OiBhbnksIGk2OiBzdHJpbmcsIHY3OiBhbnksXG4gICAgc3VmZml4OiBzdHJpbmcsIHNhbml0aXplcj86IFNhbml0aXplckZuLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiBUc2lja2xlSXNzdWUxMDA5IHtcbiAgY29uc3QgaW5kZXggPSBnZXRTZWxlY3RlZEluZGV4KCk7XG4gIC8vIFRPRE8oRlctMTM0MCk6IFJlZmFjdG9yIHRvIHJlbW92ZSB0aGUgdXNlIG9mIG90aGVyIGluc3RydWN0aW9ucyBoZXJlLlxuICBjb25zdCBpbnRlcnBvbGF0ZWRWYWx1ZSA9XG4gICAgICDJtcm1aW50ZXJwb2xhdGlvbjgocHJlZml4LCB2MCwgaTAsIHYxLCBpMSwgdjIsIGkyLCB2MywgaTMsIHY0LCBpNCwgdjUsIGk1LCB2NiwgaTYsIHY3LCBzdWZmaXgpO1xuICDJtcm1ZWxlbWVudEF0dHJpYnV0ZShpbmRleCwgYXR0ck5hbWUsIGludGVycG9sYXRlZFZhbHVlLCBzYW5pdGl6ZXIsIG5hbWVzcGFjZSk7XG4gIHJldHVybiDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4O1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhbiBpbnRlcnBvbGF0ZWQgYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQgd2l0aCA4IG9yIG1vcmUgYm91bmQgdmFsdWVzIHN1cnJvdW5kZWQgYnkgdGV4dC5cbiAqXG4gKiBVc2VkIHdoZW4gdGhlIG51bWJlciBvZiBpbnRlcnBvbGF0ZWQgdmFsdWVzIGV4Y2VlZHMgNy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2XG4gKiAgdGl0bGU9XCJwcmVmaXh7e3YwfX0te3t2MX19LXt7djJ9fS17e3YzfX0te3t2NH19LXt7djV9fS17e3Y2fX0te3t2N319LXt7djh9fS17e3Y5fX1zdWZmaXhcIj48L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEl0cyBjb21waWxlZCByZXByZXNlbnRhdGlvbiBpczo6XG4gKlxuICogYGBgdHNcbiAqIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYoXG4gKiAgJ3RpdGxlJywgWydwcmVmaXgnLCB2MCwgJy0nLCB2MSwgJy0nLCB2MiwgJy0nLCB2MywgJy0nLCB2NCwgJy0nLCB2NSwgJy0nLCB2NiwgJy0nLCB2NywgJy0nLCB2OSxcbiAqICAnc3VmZml4J10pO1xuICogYGBgXG4gKlxuICogQHBhcmFtIGF0dHJOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gdXBkYXRlLlxuICogQHBhcmFtIHZhbHVlcyBUaGUgYSBjb2xsZWN0aW9uIG9mIHZhbHVlcyBhbmQgdGhlIHN0cmluZ3MgaW4tYmV0d2VlbiB0aG9zZSB2YWx1ZXMsIGJlZ2lubmluZyB3aXRoXG4gKiBhIHN0cmluZyBwcmVmaXggYW5kIGVuZGluZyB3aXRoIGEgc3RyaW5nIHN1ZmZpeC5cbiAqIChlLmcuIGBbJ3ByZWZpeCcsIHZhbHVlMCwgJy0nLCB2YWx1ZTEsICctJywgdmFsdWUyLCAuLi4sIHZhbHVlOTksICdzdWZmaXgnXWApXG4gKiBAcGFyYW0gc2FuaXRpemVyIEFuIG9wdGlvbmFsIHNhbml0aXplciBmdW5jdGlvblxuICogQHJldHVybnMgaXRzZWxmLCBzbyB0aGF0IGl0IG1heSBiZSBjaGFpbmVkLlxuICogQGNvZGVHZW5BcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYoXG4gICAgYXR0ck5hbWU6IHN0cmluZywgdmFsdWVzOiBhbnlbXSwgc2FuaXRpemVyPzogU2FuaXRpemVyRm4sXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nKTogVHNpY2tsZUlzc3VlMTAwOSB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0U2VsZWN0ZWRJbmRleCgpO1xuICAvLyBUT0RPKEZXLTEzNDApOiBSZWZhY3RvciB0byByZW1vdmUgdGhlIHVzZSBvZiBvdGhlciBpbnN0cnVjdGlvbnMgaGVyZS5cbiAgybXJtWVsZW1lbnRBdHRyaWJ1dGUoaW5kZXgsIGF0dHJOYW1lLCDJtcm1aW50ZXJwb2xhdGlvblYodmFsdWVzKSwgc2FuaXRpemVyLCBuYW1lc3BhY2UpO1xuICByZXR1cm4gybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVjtcbn1cbiJdfQ==