@angular/compiler 18.0.0-next.5 → 18.0.0-rc.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.
- package/esm2022/src/assertions.mjs +2 -2
- package/esm2022/src/chars.mjs +4 -4
- package/esm2022/src/compiler.mjs +12 -12
- package/esm2022/src/compiler_facade_interface.mjs +1 -1
- package/esm2022/src/config.mjs +2 -2
- package/esm2022/src/constant_pool.mjs +22 -16
- package/esm2022/src/core.mjs +19 -16
- package/esm2022/src/expression_parser/ast.mjs +1 -1
- package/esm2022/src/expression_parser/lexer.mjs +13 -10
- package/esm2022/src/expression_parser/parser.mjs +32 -30
- package/esm2022/src/i18n/digest.mjs +19 -14
- package/esm2022/src/i18n/extractor_merger.mjs +22 -22
- package/esm2022/src/i18n/i18n_ast.mjs +18 -16
- package/esm2022/src/i18n/i18n_html_parser.mjs +3 -5
- package/esm2022/src/i18n/i18n_parser.mjs +10 -10
- package/esm2022/src/i18n/message_bundle.mjs +11 -8
- package/esm2022/src/i18n/serializers/placeholder.mjs +5 -2
- package/esm2022/src/i18n/serializers/serializer.mjs +8 -7
- package/esm2022/src/i18n/serializers/xliff.mjs +45 -16
- package/esm2022/src/i18n/serializers/xliff2.mjs +33 -17
- package/esm2022/src/i18n/serializers/xmb.mjs +30 -11
- package/esm2022/src/i18n/serializers/xml_helper.mjs +5 -3
- package/esm2022/src/i18n/serializers/xtb.mjs +7 -7
- package/esm2022/src/i18n/translation_bundle.mjs +11 -9
- package/esm2022/src/injectable_compiler_2.mjs +10 -7
- package/esm2022/src/jit_compiler_facade.mjs +52 -53
- package/esm2022/src/ml_parser/ast.mjs +8 -8
- package/esm2022/src/ml_parser/defaults.mjs +1 -1
- package/esm2022/src/ml_parser/entities.mjs +2 -2
- package/esm2022/src/ml_parser/html_tags.mjs +55 -16
- package/esm2022/src/ml_parser/html_whitespaces.mjs +3 -4
- package/esm2022/src/ml_parser/icu_ast_expander.mjs +15 -8
- package/esm2022/src/ml_parser/lexer.mjs +49 -25
- package/esm2022/src/ml_parser/parser.mjs +16 -11
- package/esm2022/src/ml_parser/tags.mjs +1 -1
- package/esm2022/src/ml_parser/tokens.mjs +1 -1
- package/esm2022/src/ml_parser/xml_tags.mjs +1 -1
- package/esm2022/src/output/abstract_emitter.mjs +7 -6
- package/esm2022/src/output/abstract_js_emitter.mjs +8 -8
- package/esm2022/src/output/map_util.mjs +2 -2
- package/esm2022/src/output/output_ast.mjs +68 -50
- package/esm2022/src/output/output_jit.mjs +3 -6
- package/esm2022/src/output/output_jit_trusted_types.mjs +1 -1
- package/esm2022/src/output/source_map.mjs +8 -8
- package/esm2022/src/parse_util.mjs +7 -4
- package/esm2022/src/render3/partial/api.mjs +1 -1
- package/esm2022/src/render3/partial/class_metadata.mjs +5 -5
- package/esm2022/src/render3/partial/component.mjs +8 -7
- package/esm2022/src/render3/partial/directive.mjs +29 -22
- package/esm2022/src/render3/partial/factory.mjs +1 -1
- package/esm2022/src/render3/partial/injectable.mjs +2 -2
- package/esm2022/src/render3/partial/injector.mjs +2 -2
- package/esm2022/src/render3/partial/ng_module.mjs +4 -4
- package/esm2022/src/render3/partial/pipe.mjs +2 -2
- package/esm2022/src/render3/partial/util.mjs +3 -3
- package/esm2022/src/render3/r3_ast.mjs +4 -4
- package/esm2022/src/render3/r3_class_debug_info_compiler.mjs +4 -5
- package/esm2022/src/render3/r3_class_metadata_compiler.mjs +9 -7
- package/esm2022/src/render3/r3_control_flow.mjs +24 -19
- package/esm2022/src/render3/r3_deferred_blocks.mjs +2 -2
- package/esm2022/src/render3/r3_deferred_triggers.mjs +1 -1
- package/esm2022/src/render3/r3_factory.mjs +21 -17
- package/esm2022/src/render3/r3_identifiers.mjs +301 -76
- package/esm2022/src/render3/r3_injector_compiler.mjs +4 -2
- package/esm2022/src/render3/r3_jit.mjs +1 -1
- package/esm2022/src/render3/r3_module_compiler.mjs +13 -14
- package/esm2022/src/render3/r3_pipe_compiler.mjs +4 -2
- package/esm2022/src/render3/r3_template_transform.mjs +48 -34
- package/esm2022/src/render3/util.mjs +5 -4
- package/esm2022/src/render3/view/api.mjs +1 -1
- package/esm2022/src/render3/view/compiler.mjs +42 -31
- package/esm2022/src/render3/view/i18n/get_msg_utils.mjs +15 -16
- package/esm2022/src/render3/view/i18n/icu_serializer.mjs +6 -6
- package/esm2022/src/render3/view/i18n/localize_utils.mjs +6 -6
- package/esm2022/src/render3/view/i18n/meta.mjs +19 -14
- package/esm2022/src/render3/view/i18n/util.mjs +3 -3
- package/esm2022/src/render3/view/query_generation.mjs +14 -11
- package/esm2022/src/render3/view/t2_api.mjs +1 -1
- package/esm2022/src/render3/view/t2_binder.mjs +55 -51
- package/esm2022/src/render3/view/template.mjs +11 -8
- package/esm2022/src/render3/view/util.mjs +8 -8
- package/esm2022/src/resource_loader.mjs +1 -1
- package/esm2022/src/schema/dom_element_schema_registry.mjs +5 -5
- package/esm2022/src/schema/dom_security_schema.mjs +10 -7
- package/esm2022/src/schema/element_schema_registry.mjs +1 -1
- package/esm2022/src/schema/trusted_types_sinks.mjs +2 -3
- package/esm2022/src/selector.mjs +15 -11
- package/esm2022/src/shadow_css.mjs +63 -28
- package/esm2022/src/style_url_resolver.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/enums.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/expression.mjs +16 -17
- package/esm2022/src/template/pipeline/ir/src/handle.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/operations.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +9 -5
- package/esm2022/src/template/pipeline/ir/src/ops/host.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/ops/shared.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +3 -3
- package/esm2022/src/template/pipeline/ir/src/traits.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/variable.mjs +1 -1
- package/esm2022/src/template/pipeline/src/compilation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/conversion.mjs +9 -3
- package/esm2022/src/template/pipeline/src/emit.mjs +8 -18
- package/esm2022/src/template/pipeline/src/ingest.mjs +41 -36
- package/esm2022/src/template/pipeline/src/instruction.mjs +31 -46
- package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +3 -2
- package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +3 -3
- package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +3 -2
- package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +11 -6
- package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/chaining.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +3 -2
- package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +3 -5
- package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +10 -7
- package/esm2022/src/template/pipeline/src/phases/convert_i18n_bindings.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/create_i18n_contexts.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +2 -3
- package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +22 -17
- package/esm2022/src/template/pipeline/src/phases/extract_i18n_messages.mjs +17 -16
- package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +12 -10
- package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +4 -3
- package/esm2022/src/template/pipeline/src/phases/naming.mjs +4 -3
- package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +3 -2
- package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/ordering.mjs +19 -11
- package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +6 -4
- package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +2 -3
- package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +3 -3
- package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/reify.mjs +8 -5
- package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +5 -5
- package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +5 -3
- package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +2 -3
- package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +7 -6
- package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +2 -2
- package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +3 -3
- package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +9 -8
- package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +1 -1
- package/esm2022/src/template/pipeline/src/util/elements.mjs +1 -1
- package/esm2022/src/template_parser/binding_parser.mjs +22 -17
- package/esm2022/src/template_parser/template_preparser.mjs +2 -2
- package/esm2022/src/util.mjs +3 -3
- package/esm2022/src/version.mjs +1 -1
- package/fesm2022/compiler.mjs +1550 -1033
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +5 -15
- package/package.json +2 -2
|
@@ -16,12 +16,12 @@ function kindWithInterpolationTest(kind, interpolation) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function basicListenerKindTest(op) {
|
|
19
|
-
return (op.kind === ir.OpKind.Listener && !(op.hostListener && op.isAnimationListener)) ||
|
|
20
|
-
op.kind === ir.OpKind.TwoWayListener;
|
|
19
|
+
return ((op.kind === ir.OpKind.Listener && !(op.hostListener && op.isAnimationListener)) ||
|
|
20
|
+
op.kind === ir.OpKind.TwoWayListener);
|
|
21
21
|
}
|
|
22
22
|
function nonInterpolationPropertyKindTest(op) {
|
|
23
|
-
return (op.kind === ir.OpKind.Property || op.kind === ir.OpKind.TwoWayProperty) &&
|
|
24
|
-
!(op.expression instanceof ir.Interpolation);
|
|
23
|
+
return ((op.kind === ir.OpKind.Property || op.kind === ir.OpKind.TwoWayProperty) &&
|
|
24
|
+
!(op.expression instanceof ir.Interpolation));
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Defines the groups based on `OpKind` that ops will be divided into, for the various create
|
|
@@ -29,7 +29,7 @@ function nonInterpolationPropertyKindTest(op) {
|
|
|
29
29
|
* the groups in the order defined here.
|
|
30
30
|
*/
|
|
31
31
|
const CREATE_ORDERING = [
|
|
32
|
-
{ test: op => op.kind === ir.OpKind.Listener && op.hostListener && op.isAnimationListener },
|
|
32
|
+
{ test: (op) => op.kind === ir.OpKind.Listener && op.hostListener && op.isAnimationListener },
|
|
33
33
|
{ test: basicListenerKindTest },
|
|
34
34
|
];
|
|
35
35
|
/**
|
|
@@ -62,9 +62,16 @@ const UPDATE_HOST_ORDERING = [
|
|
|
62
62
|
* The set of all op kinds we handle in the reordering phase.
|
|
63
63
|
*/
|
|
64
64
|
const handledOpKinds = new Set([
|
|
65
|
-
ir.OpKind.Listener,
|
|
66
|
-
ir.OpKind.
|
|
67
|
-
ir.OpKind.
|
|
65
|
+
ir.OpKind.Listener,
|
|
66
|
+
ir.OpKind.TwoWayListener,
|
|
67
|
+
ir.OpKind.StyleMap,
|
|
68
|
+
ir.OpKind.ClassMap,
|
|
69
|
+
ir.OpKind.StyleProp,
|
|
70
|
+
ir.OpKind.ClassProp,
|
|
71
|
+
ir.OpKind.Property,
|
|
72
|
+
ir.OpKind.TwoWayProperty,
|
|
73
|
+
ir.OpKind.HostProperty,
|
|
74
|
+
ir.OpKind.Attribute,
|
|
68
75
|
]);
|
|
69
76
|
/**
|
|
70
77
|
* Many type of operations have ordering constraints that must be respected. For example, a
|
|
@@ -94,7 +101,8 @@ function orderWithin(opList, ordering) {
|
|
|
94
101
|
const currentTarget = ir.hasDependsOnSlotContextTrait(op) ? op.target : null;
|
|
95
102
|
if (!handledOpKinds.has(op.kind) ||
|
|
96
103
|
(currentTarget !== firstTargetInGroup &&
|
|
97
|
-
|
|
104
|
+
firstTargetInGroup !== null &&
|
|
105
|
+
currentTarget !== null)) {
|
|
98
106
|
ir.OpList.insertBefore(reorder(opsToOrder, ordering), op);
|
|
99
107
|
opsToOrder = [];
|
|
100
108
|
firstTargetInGroup = null;
|
|
@@ -114,7 +122,7 @@ function reorder(ops, ordering) {
|
|
|
114
122
|
// Break the ops list into groups based on OpKind.
|
|
115
123
|
const groups = Array.from(ordering, () => new Array());
|
|
116
124
|
for (const op of ops) {
|
|
117
|
-
const groupIndex = ordering.findIndex(o => o.test(op));
|
|
125
|
+
const groupIndex = ordering.findIndex((o) => o.test(op));
|
|
118
126
|
groups[groupIndex].push(op);
|
|
119
127
|
}
|
|
120
128
|
// Reassemble the groups into a single list, in the correct order.
|
|
@@ -129,4 +137,4 @@ function reorder(ops, ordering) {
|
|
|
129
137
|
function keepLast(ops) {
|
|
130
138
|
return ops.slice(ops.length - 1);
|
|
131
139
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3BoYXNlcy9vcmRlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUMsa0JBQWtCLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsU0FBUyxRQUFRLENBQUMsSUFBZTtJQUMvQixPQUFPLENBQUMsRUFBZSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FDOUIsSUFBbUUsRUFDbkUsYUFBc0I7SUFDeEIsT0FBTyxDQUFDLEVBQWUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksYUFBYSxLQUFLLEVBQUUsQ0FBQyxVQUFVLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6RixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxFQUFlO0lBQzVDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25GLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMsZ0NBQWdDLENBQUMsRUFBZTtJQUN2RCxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLEVB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Q0FBQyxTQUFTLENBQUM7UUFDeEMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQUksR0FBYTtJQUNoQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uLy4uL2lyJztcbmltcG9ydCB7Q29tcGlsYXRpb25Kb2JLaW5kLCB0eXBlIENvbXBpbGF0aW9uSm9ifSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbmZ1bmN0aW9uIGtpbmRUZXN0KGtpbmQ6IGlyLk9wS2luZCk6IChvcDogaXIuVXBkYXRlT3ApID0+IGJvb2xlYW4ge1xuICByZXR1cm4gKG9wOiBpci5VcGRhdGVPcCkgPT4gb3Aua2luZCA9PT0ga2luZDtcbn1cblxuZnVuY3Rpb24ga2luZFdpdGhJbnRlcnBvbGF0aW9uVGVzdChcbiAgICBraW5kOiBpci5PcEtpbmQuQXR0cmlidXRlfGlyLk9wS2luZC5Qcm9wZXJ0eXxpci5PcEtpbmQuSG9zdFByb3BlcnR5LFxuICAgIGludGVycG9sYXRpb246IGJvb2xlYW4pOiAob3A6IGlyLlVwZGF0ZU9wKSA9PiBib29sZWFuIHtcbiAgcmV0dXJuIChvcDogaXIuVXBkYXRlT3ApID0+IHtcbiAgICByZXR1cm4gb3Aua2luZCA9PT0ga2luZCAmJiBpbnRlcnBvbGF0aW9uID09PSBvcC5leHByZXNzaW9uIGluc3RhbmNlb2YgaXIuSW50ZXJwb2xhdGlvbjtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYmFzaWNMaXN0ZW5lcktpbmRUZXN0KG9wOiBpci5DcmVhdGVPcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gKG9wLmtpbmQgPT09IGlyLk9wS2luZC5MaXN0ZW5lciAmJiAhKG9wLmhvc3RMaXN0ZW5lciAmJiBvcC5pc0FuaW1hdGlvbkxpc3RlbmVyKSkgfHxcbiAgICAgIG9wLmtpbmQgPT09IGlyLk9wS2luZC5Ud29XYXlMaXN0ZW5lcjtcbn1cblxuZnVuY3Rpb24gbm9uSW50ZXJwb2xhdGlvblByb3BlcnR5S2luZFRlc3Qob3A6IGlyLlVwZGF0ZU9wKTogYm9vbGVhbiB7XG4gIHJldHVybiAob3Aua2luZCA9PT0gaXIuT3BLaW5kLlByb3BlcnR5IHx8IG9wLmtpbmQgPT09IGlyLk9wS2luZC5Ud29XYXlQcm9wZXJ0eSkgJiZcbiAgICAgICEob3AuZXhwcmVzc2lvbiBpbnN0YW5jZW9mIGlyLkludGVycG9sYXRpb24pO1xufVxuXG5pbnRlcmZhY2UgUnVsZTxUIGV4dGVuZHMgaXIuQ3JlYXRlT3B8aXIuVXBkYXRlT3A+IHtcbiAgdGVzdDogKG9wOiBUKSA9PiBib29sZWFuO1xuICB0cmFuc2Zvcm0/OiAob3BzOiBBcnJheTxUPikgPT4gQXJyYXk8VD47XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZ3JvdXBzIGJhc2VkIG9uIGBPcEtpbmRgIHRoYXQgb3BzIHdpbGwgYmUgZGl2aWRlZCBpbnRvLCBmb3IgdGhlIHZhcmlvdXMgY3JlYXRlXG4gKiBvcCBraW5kcy4gT3BzIHdpbGwgYmUgY29sbGVjdGVkIGludG8gZ3JvdXBzLCB0aGVuIG9wdGlvbmFsbHkgdHJhbnNmb3JtZWQsIGJlZm9yZSByZWNvbWJpbmluZ1xuICogdGhlIGdyb3VwcyBpbiB0aGUgb3JkZXIgZGVmaW5lZCBoZXJlLlxuICovXG5jb25zdCBDUkVBVEVfT1JERVJJTkc6IEFycmF5PFJ1bGU8aXIuQ3JlYXRlT3A+PiA9IFtcbiAge3Rlc3Q6IG9wID0+IG9wLmtpbmQgPT09IGlyLk9wS2luZC5MaXN0ZW5lciAmJiBvcC5ob3N0TGlzdGVuZXIgJiYgb3AuaXNBbmltYXRpb25MaXN0ZW5lcn0sXG4gIHt0ZXN0OiBiYXNpY0xpc3RlbmVyS2luZFRlc3R9LFxuXTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBncm91cHMgYmFzZWQgb24gYE9wS2luZGAgdGhhdCBvcHMgd2lsbCBiZSBkaXZpZGVkIGludG8sIGZvciB0aGUgdmFyaW91cyB1cGRhdGVcbiAqIG9wIGtpbmRzLlxuICovXG5jb25zdCBVUERBVEVfT1JERVJJTkc6IEFycmF5PFJ1bGU8aXIuVXBkYXRlT3A+PiA9IFtcbiAge3Rlc3Q6IGtpbmRUZXN0KGlyLk9wS2luZC5TdHlsZU1hcCksIHRyYW5zZm9ybToga2VlcExhc3R9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLkNsYXNzTWFwKSwgdHJhbnNmb3JtOiBrZWVwTGFzdH0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuU3R5bGVQcm9wKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuQ2xhc3NQcm9wKX0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5BdHRyaWJ1dGUsIHRydWUpfSxcbiAge3Rlc3Q6IGtpbmRXaXRoSW50ZXJwb2xhdGlvblRlc3QoaXIuT3BLaW5kLlByb3BlcnR5LCB0cnVlKX0sXG4gIHt0ZXN0OiBub25JbnRlcnBvbGF0aW9uUHJvcGVydHlLaW5kVGVzdH0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5BdHRyaWJ1dGUsIGZhbHNlKX0sXG5dO1xuXG4vKipcbiAqIEhvc3QgYmluZGluZ3MgaGF2ZSB0aGVpciBvd24gdXBkYXRlIG9yZGVyaW5nLlxuICovXG5jb25zdCBVUERBVEVfSE9TVF9PUkRFUklORzogQXJyYXk8UnVsZTxpci5VcGRhdGVPcD4+ID0gW1xuICB7dGVzdDoga2luZFdpdGhJbnRlcnBvbGF0aW9uVGVzdChpci5PcEtpbmQuSG9zdFByb3BlcnR5LCB0cnVlKX0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5Ib3N0UHJvcGVydHksIGZhbHNlKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuQXR0cmlidXRlKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuU3R5bGVNYXApLCB0cmFuc2Zvcm06IGtlZXBMYXN0fSxcbiAge3Rlc3Q6IGtpbmRUZXN0KGlyLk9wS2luZC5DbGFzc01hcCksIHRyYW5zZm9ybToga2VlcExhc3R9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLlN0eWxlUHJvcCl9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLkNsYXNzUHJvcCl9LFxuXTtcblxuLyoqXG4gKiBUaGUgc2V0IG9mIGFsbCBvcCBraW5kcyB3ZSBoYW5kbGUgaW4gdGhlIHJlb3JkZXJpbmcgcGhhc2UuXG4gKi9cbmNvbnN0IGhhbmRsZWRPcEtpbmRzID0gbmV3IFNldChbXG4gIGlyLk9wS2luZC5MaXN0ZW5lciwgaXIuT3BLaW5kLlR3b1dheUxpc3RlbmVyLCBpci5PcEtpbmQuU3R5bGVNYXAsIGlyLk9wS2luZC5DbGFzc01hcCxcbiAgaXIuT3BLaW5kLlN0eWxlUHJvcCwgaXIuT3BLaW5kLkNsYXNzUHJvcCwgaXIuT3BLaW5kLlByb3BlcnR5LCBpci5PcEtpbmQuVHdvV2F5UHJvcGVydHksXG4gIGlyLk9wS2luZC5Ib3N0UHJvcGVydHksIGlyLk9wS2luZC5BdHRyaWJ1dGVcbl0pO1xuXG4vKipcbiAqIE1hbnkgdHlwZSBvZiBvcGVyYXRpb25zIGhhdmUgb3JkZXJpbmcgY29uc3RyYWludHMgdGhhdCBtdXN0IGJlIHJlc3BlY3RlZC4gRm9yIGV4YW1wbGUsIGFcbiAqIGBDbGFzc01hcGAgaW5zdHJ1Y3Rpb24gbXVzdCBiZSBvcmRlcmVkIGFmdGVyIGEgYFN0eWxlTWFwYCBpbnN0cnVjdGlvbiwgaW4gb3JkZXIgdG8gaGF2ZVxuICogcHJlZGljdGFibGUgc2VtYW50aWNzIHRoYXQgbWF0Y2ggVGVtcGxhdGVEZWZpbml0aW9uQnVpbGRlciBhbmQgZG9uJ3QgYnJlYWsgYXBwbGljYXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3JkZXJPcHMoam9iOiBDb21waWxhdGlvbkpvYikge1xuICBmb3IgKGNvbnN0IHVuaXQgb2Ygam9iLnVuaXRzKSB7XG4gICAgLy8gRmlyc3QsIHdlIHB1bGwgb3V0IG9wcyB0aGF0IG5lZWQgdG8gYmUgb3JkZXJlZC4gVGhlbiwgd2hlbiB3ZSBlbmNvdW50ZXIgYW4gb3AgdGhhdCBzaG91bGRuJ3RcbiAgICAvLyBiZSByZW9yZGVyZWQsIHB1dCB0aGUgb25lcyB3ZSd2ZSBwdWxsZWQgc28gZmFyIGJhY2sgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIEZpbmFsbHksIGlmIHdlXG4gICAgLy8gc3RpbGwgaGF2ZSBvcHMgcHVsbGVkIGF0IHRoZSBlbmQsIHB1dCB0aGVtIGJhY2sgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG5cbiAgICAvLyBDcmVhdGUgbW9kZTpcbiAgICBvcmRlcldpdGhpbih1bml0LmNyZWF0ZSwgQ1JFQVRFX09SREVSSU5HIGFzIEFycmF5PFJ1bGU8aXIuQ3JlYXRlT3B8aXIuVXBkYXRlT3A+Pik7XG5cblxuICAgIC8vIFVwZGF0ZSBtb2RlOlxuICAgIGNvbnN0IG9yZGVyaW5nID1cbiAgICAgICAgdW5pdC5qb2Iua2luZCA9PT0gQ29tcGlsYXRpb25Kb2JLaW5kLkhvc3QgPyBVUERBVEVfSE9TVF9PUkRFUklORyA6IFVQREFURV9PUkRFUklORztcbiAgICBvcmRlcldpdGhpbih1bml0LnVwZGF0ZSwgb3JkZXJpbmcgYXMgQXJyYXk8UnVsZTxpci5DcmVhdGVPcHxpci5VcGRhdGVPcD4+KTtcbiAgfVxufVxuXG4vKipcbiAqIE9yZGVyIGFsbCB0aGUgb3BzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICovXG5mdW5jdGlvbiBvcmRlcldpdGhpbihcbiAgICBvcExpc3Q6IGlyLk9wTGlzdDxpci5DcmVhdGVPcHxpci5VcGRhdGVPcD4sIG9yZGVyaW5nOiBBcnJheTxSdWxlPGlyLkNyZWF0ZU9wfGlyLlVwZGF0ZU9wPj4pIHtcbiAgbGV0IG9wc1RvT3JkZXI6IEFycmF5PGlyLkNyZWF0ZU9wfGlyLlVwZGF0ZU9wPiA9IFtdO1xuICAvLyBPbmx5IHJlb3JkZXIgb3BzIHRoYXQgdGFyZ2V0IHRoZSBzYW1lIHhyZWY7IGRvIG5vdCBtaXggb3BzIHRoYXQgdGFyZ2V0IGRpZmZlcmVudCB4cmVmcy5cbiAgbGV0IGZpcnN0VGFyZ2V0SW5Hcm91cDogaXIuWHJlZklkfG51bGwgPSBudWxsO1xuICBmb3IgKGNvbnN0IG9wIG9mIG9wTGlzdCkge1xuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBpci5oYXNEZXBlbmRzT25TbG90Q29udGV4dFRyYWl0KG9wKSA/IG9wLnRhcmdldCA6IG51bGw7XG4gICAgaWYgKCFoYW5kbGVkT3BLaW5kcy5oYXMob3Aua2luZCkgfHxcbiAgICAgICAgKGN1cnJlbnRUYXJnZXQgIT09IGZpcnN0VGFyZ2V0SW5Hcm91cCAmJlxuICAgICAgICAgKGZpcnN0VGFyZ2V0SW5Hcm91cCAhPT0gbnVsbCAmJiBjdXJyZW50VGFyZ2V0ICE9PSBudWxsKSkpIHtcbiAgICAgIGlyLk9wTGlzdC5pbnNlcnRCZWZvcmUocmVvcmRlcihvcHNUb09yZGVyLCBvcmRlcmluZyksIG9wKTtcbiAgICAgIG9wc1RvT3JkZXIgPSBbXTtcbiAgICAgIGZpcnN0VGFyZ2V0SW5Hcm91cCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChoYW5kbGVkT3BLaW5kcy5oYXMob3Aua2luZCkpIHtcbiAgICAgIG9wc1RvT3JkZXIucHVzaChvcCk7XG4gICAgICBpci5PcExpc3QucmVtb3ZlKG9wKTtcbiAgICAgIGZpcnN0VGFyZ2V0SW5Hcm91cCA9IGN1cnJlbnRUYXJnZXQgPz8gZmlyc3RUYXJnZXRJbkdyb3VwO1xuICAgIH1cbiAgfVxuICBvcExpc3QucHVzaChyZW9yZGVyKG9wc1RvT3JkZXIsIG9yZGVyaW5nKSk7XG59XG5cbi8qKlxuICogUmVvcmRlcnMgdGhlIGdpdmVuIGxpc3Qgb2Ygb3BzIGFjY29yZGluZyB0byB0aGUgb3JkZXJpbmcgZGVmaW5lZCBieSBgT1JERVJJTkdgLlxuICovXG5mdW5jdGlvbiByZW9yZGVyPFQgZXh0ZW5kcyBpci5DcmVhdGVPcHxpci5VcGRhdGVPcD4oXG4gICAgb3BzOiBBcnJheTxUPiwgb3JkZXJpbmc6IEFycmF5PFJ1bGU8VD4+KTogQXJyYXk8VD4ge1xuICAvLyBCcmVhayB0aGUgb3BzIGxpc3QgaW50byBncm91cHMgYmFzZWQgb24gT3BLaW5kLlxuICBjb25zdCBncm91cHMgPSBBcnJheS5mcm9tKG9yZGVyaW5nLCAoKSA9PiBuZXcgQXJyYXk8VD4oKSk7XG4gIGZvciAoY29uc3Qgb3Agb2Ygb3BzKSB7XG4gICAgY29uc3QgZ3JvdXBJbmRleCA9IG9yZGVyaW5nLmZpbmRJbmRleChvID0+IG8udGVzdChvcCkpO1xuICAgIGdyb3Vwc1tncm91cEluZGV4XS5wdXNoKG9wKTtcbiAgfVxuICAvLyBSZWFzc2VtYmxlIHRoZSBncm91cHMgaW50byBhIHNpbmdsZSBsaXN0LCBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgcmV0dXJuIGdyb3Vwcy5mbGF0TWFwKChncm91cCwgaSkgPT4ge1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IG9yZGVyaW5nW2ldLnRyYW5zZm9ybTtcbiAgICByZXR1cm4gdHJhbnNmb3JtID8gdHJhbnNmb3JtKGdyb3VwKSA6IGdyb3VwO1xuICB9KTtcbn1cblxuLyoqXG4gKiBLZWVwcyBvbmx5IHRoZSBsYXN0IG9wIGluIGEgbGlzdCBvZiBvcHMuXG4gKi9cbmZ1bmN0aW9uIGtlZXBMYXN0PFQ+KG9wczogQXJyYXk8VD4pIHtcbiAgcmV0dXJuIG9wcy5zbGljZShvcHMubGVuZ3RoIC0gMSk7XG59XG4iXX0=
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3BoYXNlcy9vcmRlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUMsa0JBQWtCLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsU0FBUyxRQUFRLENBQUMsSUFBZTtJQUMvQixPQUFPLENBQUMsRUFBZSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FDaEMsSUFBdUUsRUFDdkUsYUFBc0I7SUFFdEIsT0FBTyxDQUFDLEVBQWUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksYUFBYSxLQUFLLEVBQUUsQ0FBQyxVQUFVLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6RixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxFQUFlO0lBQzVDLE9BQU8sQ0FDTCxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDaEYsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUFDLEVBQWU7SUFDdkQsT0FBTyxDQUNMLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENB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U0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDeEMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQUksR0FBYTtJQUNoQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uLy4uL2lyJztcbmltcG9ydCB7Q29tcGlsYXRpb25Kb2JLaW5kLCB0eXBlIENvbXBpbGF0aW9uSm9ifSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbmZ1bmN0aW9uIGtpbmRUZXN0KGtpbmQ6IGlyLk9wS2luZCk6IChvcDogaXIuVXBkYXRlT3ApID0+IGJvb2xlYW4ge1xuICByZXR1cm4gKG9wOiBpci5VcGRhdGVPcCkgPT4gb3Aua2luZCA9PT0ga2luZDtcbn1cblxuZnVuY3Rpb24ga2luZFdpdGhJbnRlcnBvbGF0aW9uVGVzdChcbiAga2luZDogaXIuT3BLaW5kLkF0dHJpYnV0ZSB8IGlyLk9wS2luZC5Qcm9wZXJ0eSB8IGlyLk9wS2luZC5Ib3N0UHJvcGVydHksXG4gIGludGVycG9sYXRpb246IGJvb2xlYW4sXG4pOiAob3A6IGlyLlVwZGF0ZU9wKSA9PiBib29sZWFuIHtcbiAgcmV0dXJuIChvcDogaXIuVXBkYXRlT3ApID0+IHtcbiAgICByZXR1cm4gb3Aua2luZCA9PT0ga2luZCAmJiBpbnRlcnBvbGF0aW9uID09PSBvcC5leHByZXNzaW9uIGluc3RhbmNlb2YgaXIuSW50ZXJwb2xhdGlvbjtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYmFzaWNMaXN0ZW5lcktpbmRUZXN0KG9wOiBpci5DcmVhdGVPcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChvcC5raW5kID09PSBpci5PcEtpbmQuTGlzdGVuZXIgJiYgIShvcC5ob3N0TGlzdGVuZXIgJiYgb3AuaXNBbmltYXRpb25MaXN0ZW5lcikpIHx8XG4gICAgb3Aua2luZCA9PT0gaXIuT3BLaW5kLlR3b1dheUxpc3RlbmVyXG4gICk7XG59XG5cbmZ1bmN0aW9uIG5vbkludGVycG9sYXRpb25Qcm9wZXJ0eUtpbmRUZXN0KG9wOiBpci5VcGRhdGVPcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChvcC5raW5kID09PSBpci5PcEtpbmQuUHJvcGVydHkgfHwgb3Aua2luZCA9PT0gaXIuT3BLaW5kLlR3b1dheVByb3BlcnR5KSAmJlxuICAgICEob3AuZXhwcmVzc2lvbiBpbnN0YW5jZW9mIGlyLkludGVycG9sYXRpb24pXG4gICk7XG59XG5cbmludGVyZmFjZSBSdWxlPFQgZXh0ZW5kcyBpci5DcmVhdGVPcCB8IGlyLlVwZGF0ZU9wPiB7XG4gIHRlc3Q6IChvcDogVCkgPT4gYm9vbGVhbjtcbiAgdHJhbnNmb3JtPzogKG9wczogQXJyYXk8VD4pID0+IEFycmF5PFQ+O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhlIGdyb3VwcyBiYXNlZCBvbiBgT3BLaW5kYCB0aGF0IG9wcyB3aWxsIGJlIGRpdmlkZWQgaW50bywgZm9yIHRoZSB2YXJpb3VzIGNyZWF0ZVxuICogb3Aga2luZHMuIE9wcyB3aWxsIGJlIGNvbGxlY3RlZCBpbnRvIGdyb3VwcywgdGhlbiBvcHRpb25hbGx5IHRyYW5zZm9ybWVkLCBiZWZvcmUgcmVjb21iaW5pbmdcbiAqIHRoZSBncm91cHMgaW4gdGhlIG9yZGVyIGRlZmluZWQgaGVyZS5cbiAqL1xuY29uc3QgQ1JFQVRFX09SREVSSU5HOiBBcnJheTxSdWxlPGlyLkNyZWF0ZU9wPj4gPSBbXG4gIHt0ZXN0OiAob3ApID0+IG9wLmtpbmQgPT09IGlyLk9wS2luZC5MaXN0ZW5lciAmJiBvcC5ob3N0TGlzdGVuZXIgJiYgb3AuaXNBbmltYXRpb25MaXN0ZW5lcn0sXG4gIHt0ZXN0OiBiYXNpY0xpc3RlbmVyS2luZFRlc3R9LFxuXTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBncm91cHMgYmFzZWQgb24gYE9wS2luZGAgdGhhdCBvcHMgd2lsbCBiZSBkaXZpZGVkIGludG8sIGZvciB0aGUgdmFyaW91cyB1cGRhdGVcbiAqIG9wIGtpbmRzLlxuICovXG5jb25zdCBVUERBVEVfT1JERVJJTkc6IEFycmF5PFJ1bGU8aXIuVXBkYXRlT3A+PiA9IFtcbiAge3Rlc3Q6IGtpbmRUZXN0KGlyLk9wS2luZC5TdHlsZU1hcCksIHRyYW5zZm9ybToga2VlcExhc3R9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLkNsYXNzTWFwKSwgdHJhbnNmb3JtOiBrZWVwTGFzdH0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuU3R5bGVQcm9wKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuQ2xhc3NQcm9wKX0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5BdHRyaWJ1dGUsIHRydWUpfSxcbiAge3Rlc3Q6IGtpbmRXaXRoSW50ZXJwb2xhdGlvblRlc3QoaXIuT3BLaW5kLlByb3BlcnR5LCB0cnVlKX0sXG4gIHt0ZXN0OiBub25JbnRlcnBvbGF0aW9uUHJvcGVydHlLaW5kVGVzdH0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5BdHRyaWJ1dGUsIGZhbHNlKX0sXG5dO1xuXG4vKipcbiAqIEhvc3QgYmluZGluZ3MgaGF2ZSB0aGVpciBvd24gdXBkYXRlIG9yZGVyaW5nLlxuICovXG5jb25zdCBVUERBVEVfSE9TVF9PUkRFUklORzogQXJyYXk8UnVsZTxpci5VcGRhdGVPcD4+ID0gW1xuICB7dGVzdDoga2luZFdpdGhJbnRlcnBvbGF0aW9uVGVzdChpci5PcEtpbmQuSG9zdFByb3BlcnR5LCB0cnVlKX0sXG4gIHt0ZXN0OiBraW5kV2l0aEludGVycG9sYXRpb25UZXN0KGlyLk9wS2luZC5Ib3N0UHJvcGVydHksIGZhbHNlKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuQXR0cmlidXRlKX0sXG4gIHt0ZXN0OiBraW5kVGVzdChpci5PcEtpbmQuU3R5bGVNYXApLCB0cmFuc2Zvcm06IGtlZXBMYXN0fSxcbiAge3Rlc3Q6IGtpbmRUZXN0KGlyLk9wS2luZC5DbGFzc01hcCksIHRyYW5zZm9ybToga2VlcExhc3R9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLlN0eWxlUHJvcCl9LFxuICB7dGVzdDoga2luZFRlc3QoaXIuT3BLaW5kLkNsYXNzUHJvcCl9LFxuXTtcblxuLyoqXG4gKiBUaGUgc2V0IG9mIGFsbCBvcCBraW5kcyB3ZSBoYW5kbGUgaW4gdGhlIHJlb3JkZXJpbmcgcGhhc2UuXG4gKi9cbmNvbnN0IGhhbmRsZWRPcEtpbmRzID0gbmV3IFNldChbXG4gIGlyLk9wS2luZC5MaXN0ZW5lcixcbiAgaXIuT3BLaW5kLlR3b1dheUxpc3RlbmVyLFxuICBpci5PcEtpbmQuU3R5bGVNYXAsXG4gIGlyLk9wS2luZC5DbGFzc01hcCxcbiAgaXIuT3BLaW5kLlN0eWxlUHJvcCxcbiAgaXIuT3BLaW5kLkNsYXNzUHJvcCxcbiAgaXIuT3BLaW5kLlByb3BlcnR5LFxuICBpci5PcEtpbmQuVHdvV2F5UHJvcGVydHksXG4gIGlyLk9wS2luZC5Ib3N0UHJvcGVydHksXG4gIGlyLk9wS2luZC5BdHRyaWJ1dGUsXG5dKTtcblxuLyoqXG4gKiBNYW55IHR5cGUgb2Ygb3BlcmF0aW9ucyBoYXZlIG9yZGVyaW5nIGNvbnN0cmFpbnRzIHRoYXQgbXVzdCBiZSByZXNwZWN0ZWQuIEZvciBleGFtcGxlLCBhXG4gKiBgQ2xhc3NNYXBgIGluc3RydWN0aW9uIG11c3QgYmUgb3JkZXJlZCBhZnRlciBhIGBTdHlsZU1hcGAgaW5zdHJ1Y3Rpb24sIGluIG9yZGVyIHRvIGhhdmVcbiAqIHByZWRpY3RhYmxlIHNlbWFudGljcyB0aGF0IG1hdGNoIFRlbXBsYXRlRGVmaW5pdGlvbkJ1aWxkZXIgYW5kIGRvbid0IGJyZWFrIGFwcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9yZGVyT3BzKGpvYjogQ29tcGlsYXRpb25Kb2IpIHtcbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIC8vIEZpcnN0LCB3ZSBwdWxsIG91dCBvcHMgdGhhdCBuZWVkIHRvIGJlIG9yZGVyZWQuIFRoZW4sIHdoZW4gd2UgZW5jb3VudGVyIGFuIG9wIHRoYXQgc2hvdWxkbid0XG4gICAgLy8gYmUgcmVvcmRlcmVkLCBwdXQgdGhlIG9uZXMgd2UndmUgcHVsbGVkIHNvIGZhciBiYWNrIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBGaW5hbGx5LCBpZiB3ZVxuICAgIC8vIHN0aWxsIGhhdmUgb3BzIHB1bGxlZCBhdCB0aGUgZW5kLCBwdXQgdGhlbSBiYWNrIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuXG4gICAgLy8gQ3JlYXRlIG1vZGU6XG4gICAgb3JkZXJXaXRoaW4odW5pdC5jcmVhdGUsIENSRUFURV9PUkRFUklORyBhcyBBcnJheTxSdWxlPGlyLkNyZWF0ZU9wIHwgaXIuVXBkYXRlT3A+Pik7XG5cbiAgICAvLyBVcGRhdGUgbW9kZTpcbiAgICBjb25zdCBvcmRlcmluZyA9XG4gICAgICB1bml0LmpvYi5raW5kID09PSBDb21waWxhdGlvbkpvYktpbmQuSG9zdCA/IFVQREFURV9IT1NUX09SREVSSU5HIDogVVBEQVRFX09SREVSSU5HO1xuICAgIG9yZGVyV2l0aGluKHVuaXQudXBkYXRlLCBvcmRlcmluZyBhcyBBcnJheTxSdWxlPGlyLkNyZWF0ZU9wIHwgaXIuVXBkYXRlT3A+Pik7XG4gIH1cbn1cblxuLyoqXG4gKiBPcmRlciBhbGwgdGhlIG9wcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqL1xuZnVuY3Rpb24gb3JkZXJXaXRoaW4oXG4gIG9wTGlzdDogaXIuT3BMaXN0PGlyLkNyZWF0ZU9wIHwgaXIuVXBkYXRlT3A+LFxuICBvcmRlcmluZzogQXJyYXk8UnVsZTxpci5DcmVhdGVPcCB8IGlyLlVwZGF0ZU9wPj4sXG4pIHtcbiAgbGV0IG9wc1RvT3JkZXI6IEFycmF5PGlyLkNyZWF0ZU9wIHwgaXIuVXBkYXRlT3A+ID0gW107XG4gIC8vIE9ubHkgcmVvcmRlciBvcHMgdGhhdCB0YXJnZXQgdGhlIHNhbWUgeHJlZjsgZG8gbm90IG1peCBvcHMgdGhhdCB0YXJnZXQgZGlmZmVyZW50IHhyZWZzLlxuICBsZXQgZmlyc3RUYXJnZXRJbkdyb3VwOiBpci5YcmVmSWQgfCBudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCBvcCBvZiBvcExpc3QpIHtcbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gaXIuaGFzRGVwZW5kc09uU2xvdENvbnRleHRUcmFpdChvcCkgPyBvcC50YXJnZXQgOiBudWxsO1xuICAgIGlmIChcbiAgICAgICFoYW5kbGVkT3BLaW5kcy5oYXMob3Aua2luZCkgfHxcbiAgICAgIChjdXJyZW50VGFyZ2V0ICE9PSBmaXJzdFRhcmdldEluR3JvdXAgJiZcbiAgICAgICAgZmlyc3RUYXJnZXRJbkdyb3VwICE9PSBudWxsICYmXG4gICAgICAgIGN1cnJlbnRUYXJnZXQgIT09IG51bGwpXG4gICAgKSB7XG4gICAgICBpci5PcExpc3QuaW5zZXJ0QmVmb3JlKHJlb3JkZXIob3BzVG9PcmRlciwgb3JkZXJpbmcpLCBvcCk7XG4gICAgICBvcHNUb09yZGVyID0gW107XG4gICAgICBmaXJzdFRhcmdldEluR3JvdXAgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoaGFuZGxlZE9wS2luZHMuaGFzKG9wLmtpbmQpKSB7XG4gICAgICBvcHNUb09yZGVyLnB1c2gob3ApO1xuICAgICAgaXIuT3BMaXN0LnJlbW92ZShvcCk7XG4gICAgICBmaXJzdFRhcmdldEluR3JvdXAgPSBjdXJyZW50VGFyZ2V0ID8/IGZpcnN0VGFyZ2V0SW5Hcm91cDtcbiAgICB9XG4gIH1cbiAgb3BMaXN0LnB1c2gocmVvcmRlcihvcHNUb09yZGVyLCBvcmRlcmluZykpO1xufVxuXG4vKipcbiAqIFJlb3JkZXJzIHRoZSBnaXZlbiBsaXN0IG9mIG9wcyBhY2NvcmRpbmcgdG8gdGhlIG9yZGVyaW5nIGRlZmluZWQgYnkgYE9SREVSSU5HYC5cbiAqL1xuZnVuY3Rpb24gcmVvcmRlcjxUIGV4dGVuZHMgaXIuQ3JlYXRlT3AgfCBpci5VcGRhdGVPcD4oXG4gIG9wczogQXJyYXk8VD4sXG4gIG9yZGVyaW5nOiBBcnJheTxSdWxlPFQ+Pixcbik6IEFycmF5PFQ+IHtcbiAgLy8gQnJlYWsgdGhlIG9wcyBsaXN0IGludG8gZ3JvdXBzIGJhc2VkIG9uIE9wS2luZC5cbiAgY29uc3QgZ3JvdXBzID0gQXJyYXkuZnJvbShvcmRlcmluZywgKCkgPT4gbmV3IEFycmF5PFQ+KCkpO1xuICBmb3IgKGNvbnN0IG9wIG9mIG9wcykge1xuICAgIGNvbnN0IGdyb3VwSW5kZXggPSBvcmRlcmluZy5maW5kSW5kZXgoKG8pID0+IG8udGVzdChvcCkpO1xuICAgIGdyb3Vwc1tncm91cEluZGV4XS5wdXNoKG9wKTtcbiAgfVxuICAvLyBSZWFzc2VtYmxlIHRoZSBncm91cHMgaW50byBhIHNpbmdsZSBsaXN0LCBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgcmV0dXJuIGdyb3Vwcy5mbGF0TWFwKChncm91cCwgaSkgPT4ge1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IG9yZGVyaW5nW2ldLnRyYW5zZm9ybTtcbiAgICByZXR1cm4gdHJhbnNmb3JtID8gdHJhbnNmb3JtKGdyb3VwKSA6IGdyb3VwO1xuICB9KTtcbn1cblxuLyoqXG4gKiBLZWVwcyBvbmx5IHRoZSBsYXN0IG9wIGluIGEgbGlzdCBvZiBvcHMuXG4gKi9cbmZ1bmN0aW9uIGtlZXBMYXN0PFQ+KG9wczogQXJyYXk8VD4pIHtcbiAgcmV0dXJuIG9wcy5zbGljZShvcHMubGVuZ3RoIC0gMSk7XG59XG4iXX0=
|
|
@@ -82,7 +82,7 @@ export function parse(value) {
|
|
|
82
82
|
}
|
|
83
83
|
export function hyphenate(value) {
|
|
84
84
|
return value
|
|
85
|
-
.replace(/[a-z][A-Z]/g, v => {
|
|
85
|
+
.replace(/[a-z][A-Z]/g, (v) => {
|
|
86
86
|
return v.charAt(0) + '-' + v.charAt(1);
|
|
87
87
|
})
|
|
88
88
|
.toLowerCase();
|
|
@@ -102,10 +102,12 @@ export function parseExtractedStyles(job) {
|
|
|
102
102
|
}
|
|
103
103
|
for (const unit of job.units) {
|
|
104
104
|
for (const op of unit.create) {
|
|
105
|
-
if (op.kind === ir.OpKind.ExtractedAttribute &&
|
|
105
|
+
if (op.kind === ir.OpKind.ExtractedAttribute &&
|
|
106
|
+
op.bindingKind === ir.BindingKind.Attribute &&
|
|
106
107
|
ir.isStringLiteral(op.expression)) {
|
|
107
108
|
const target = elements.get(op.target);
|
|
108
|
-
if (target !== undefined &&
|
|
109
|
+
if (target !== undefined &&
|
|
110
|
+
target.kind === ir.OpKind.Template &&
|
|
109
111
|
target.templateKind === ir.TemplateKind.Structural) {
|
|
110
112
|
// TemplateDefinitionBuilder will not apply class and style bindings to structural
|
|
111
113
|
// directives; instead, it will leave them as attributes.
|
|
@@ -132,4 +134,4 @@ export function parseExtractedStyles(job) {
|
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfZXh0cmFjdGVkX3N0eWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvcGhhc2VzL3BhcnNlX2V4dHJhY3RlZF9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFtQi9COzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQWE7SUFDakMscURBQXFEO0lBQ3JELHVEQUF1RDtJQUN2RCxxREFBcUQ7SUFDckQsb0RBQW9EO0lBQ3BELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUU1QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxLQUFLLHlCQUF1QixDQUFDO0lBQ2pDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDbEIsSUFBSSxXQUFXLEdBQWdCLElBQUksQ0FBQztJQUNwQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBUyxDQUFDO1FBQzVDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZDtnQkFDRSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNO1lBQ1I7Z0JBQ0UsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsTUFBTTtZQUNSO2dCQUNFLHVEQUF1RDtnQkFDdkQscUJBQXFCO2dCQUNyQixJQUFJLEtBQUssMkJBQW1CLEVBQUUsQ0FBQztvQkFDN0IsS0FBSyw0QkFBbUIsQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxJQUFJLEtBQUssOEJBQXFCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLDRCQUFtQixFQUFFLENBQUM7b0JBQ3BGLEtBQUsseUJBQWlCLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLHNCQUFzQjtnQkFDdEIsSUFBSSxLQUFLLDJCQUFtQixFQUFFLENBQUM7b0JBQzdCLEtBQUssNEJBQW1CLENBQUM7Z0JBQzNCLENBQUM7cUJBQU0sSUFBSSxLQUFLLDhCQUFxQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyw0QkFBbUIsRUFBRSxDQUFDO29CQUNwRixLQUFLLHlCQUFpQixDQUFDO2dCQUN6QixDQUFDO2dCQUNELE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsV0FBVyxJQUFJLFVBQVUsS0FBSyxDQUFDLElBQUksS0FBSywyQkFBbUIsRUFBRSxDQUFDO29CQUNqRSxvRkFBb0Y7b0JBQ3BGLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLENBQUM7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLElBQUksV0FBVyxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxLQUFLLENBQUMsSUFBSSxLQUFLLDJCQUFtQixFQUFFLENBQUM7b0JBQ2xGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDM0QsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ25DLFNBQVMsR0FBRyxDQUFDLENBQUM7b0JBQ2QsVUFBVSxHQUFHLENBQUMsQ0FBQztvQkFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDckMsT0FBTyxLQUFLO1NBQ1AsT0FBTyxDQUNKLGFBQWEsRUFDYixDQUFDLENBQUMsRUFBRTtRQUNGLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUM7U0FDTCxXQUFXLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBR0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQW1CO0lBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO0lBRW5ELEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUztnQkFDdkYsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsVUFBVyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFFLENBQUM7Z0JBRXhDLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTtvQkFDMUQsTUFBTSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN2RCxrRkFBa0Y7b0JBQ2xGLHlEQUF5RDtvQkFDekQscUZBQXFGO29CQUNyRiw2Q0FBNkM7b0JBQzdDLDZFQUE2RTtvQkFDN0UsU0FBUztnQkFDWCxDQUFDO2dCQUVELElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3BELEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUNsQixFQUFFLENBQUMsMEJBQTBCLENBQ3pCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDOUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQ3RFLEVBQUUsQ0FBQyxDQUFDO29CQUNWLENBQUM7b0JBQ0QsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7cUJBQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUMvQixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQy9ELEtBQUssTUFBTSxXQUFXLElBQUksYUFBYSxFQUFFLENBQUM7d0JBQ3hDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUNsQixFQUFFLENBQUMsMEJBQTBCLENBQ3pCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDeEUsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUN6QixFQUFFLENBQUMsQ0FBQztvQkFDVixDQUFDO29CQUNELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NlY3VyaXR5Q29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uLy4uL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uLy4uL2lyJztcblxuaW1wb3J0IHR5cGUge0NvbXBpbGF0aW9uSm9ifSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cblxuLy8gQW55IGNoYW5nZXMgaGVyZSBzaG91bGQgYmUgcG9ydGVkIHRvIHRoZSBBbmd1bGFyIERvbWlubyBmb3JrLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvZG9taW5vL2Jsb2IvbWFpbi9saWIvc3R5bGVfcGFyc2VyLmpzXG5cbmNvbnN0IGVudW0gQ2hhciB7XG4gIE9wZW5QYXJlbiA9IDQwLFxuICBDbG9zZVBhcmVuID0gNDEsXG4gIENvbG9uID0gNTgsXG4gIFNlbWljb2xvbiA9IDU5LFxuICBCYWNrU2xhc2ggPSA5MixcbiAgUXVvdGVOb25lID0gMCwgIC8vIGluZGljYXRpbmcgd2UgYXJlIG5vdCBpbnNpZGUgYSBxdW90ZVxuICBRdW90ZURvdWJsZSA9IDM0LFxuICBRdW90ZVNpbmdsZSA9IDM5LFxufVxuXG4vKipcbiAqIFBhcnNlcyBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBzdHlsZSBhbmQgY29udmVydHMgaXQgaW50byBvYmplY3QgbGl0ZXJhbC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHN0eWxlIGFzIHVzZWQgaW4gdGhlIGBzdHlsZWAgYXR0cmlidXRlIGluIEhUTUwuXG4gKiAgIEV4YW1wbGU6IGBjb2xvcjogcmVkOyBoZWlnaHQ6IGF1dG9gLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc3R5bGUgcHJvcGVydHkgbmFtZSBhbmQgdmFsdWUgcGFpcnMsIGUuZy4gYFsnY29sb3InLCAncmVkJywgJ2hlaWdodCcsXG4gKiAnYXV0byddYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgLy8gd2UgdXNlIGEgc3RyaW5nIGFycmF5IGhlcmUgaW5zdGVhZCBvZiBhIHN0cmluZyBtYXBcbiAgLy8gYmVjYXVzZSBhIHN0cmluZy1tYXAgaXMgbm90IGd1YXJhbnRlZWQgdG8gcmV0YWluIHRoZVxuICAvLyBvcmRlciBvZiB0aGUgZW50cmllcyB3aGVyZWFzIGEgc3RyaW5nIGFycmF5IGNhbiBiZVxuICAvLyBjb25zdHJ1Y3RlZCBpbiBhIFtrZXksIHZhbHVlLCBrZXksIHZhbHVlXSBmb3JtYXQuXG4gIGNvbnN0IHN0eWxlczogc3RyaW5nW10gPSBbXTtcblxuICBsZXQgaSA9IDA7XG4gIGxldCBwYXJlbkRlcHRoID0gMDtcbiAgbGV0IHF1b3RlOiBDaGFyID0gQ2hhci5RdW90ZU5vbmU7XG4gIGxldCB2YWx1ZVN0YXJ0ID0gMDtcbiAgbGV0IHByb3BTdGFydCA9IDA7XG4gIGxldCBjdXJyZW50UHJvcDogc3RyaW5nfG51bGwgPSBudWxsO1xuICB3aGlsZSAoaSA8IHZhbHVlLmxlbmd0aCkge1xuICAgIGNvbnN0IHRva2VuID0gdmFsdWUuY2hhckNvZGVBdChpKyspIGFzIENoYXI7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBDaGFyLk9wZW5QYXJlbjpcbiAgICAgICAgcGFyZW5EZXB0aCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2hhci5DbG9zZVBhcmVuOlxuICAgICAgICBwYXJlbkRlcHRoLS07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDaGFyLlF1b3RlU2luZ2xlOlxuICAgICAgICAvLyB2YWx1ZVN0YXJ0IG5lZWRzIHRvIGJlIHRoZXJlIHNpbmNlIHByb3AgdmFsdWVzIGRvbid0XG4gICAgICAgIC8vIGhhdmUgcXVvdGVzIGluIENTU1xuICAgICAgICBpZiAocXVvdGUgPT09IENoYXIuUXVvdGVOb25lKSB7XG4gICAgICAgICAgcXVvdGUgPSBDaGFyLlF1b3RlU2luZ2xlO1xuICAgICAgICB9IGVsc2UgaWYgKHF1b3RlID09PSBDaGFyLlF1b3RlU2luZ2xlICYmIHZhbHVlLmNoYXJDb2RlQXQoaSAtIDEpICE9PSBDaGFyLkJhY2tTbGFzaCkge1xuICAgICAgICAgIHF1b3RlID0gQ2hhci5RdW90ZU5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENoYXIuUXVvdGVEb3VibGU6XG4gICAgICAgIC8vIHNhbWUgbG9naWMgYXMgYWJvdmVcbiAgICAgICAgaWYgKHF1b3RlID09PSBDaGFyLlF1b3RlTm9uZSkge1xuICAgICAgICAgIHF1b3RlID0gQ2hhci5RdW90ZURvdWJsZTtcbiAgICAgICAgfSBlbHNlIGlmIChxdW90ZSA9PT0gQ2hhci5RdW90ZURvdWJsZSAmJiB2YWx1ZS5jaGFyQ29kZUF0KGkgLSAxKSAhPT0gQ2hhci5CYWNrU2xhc2gpIHtcbiAgICAgICAgICBxdW90ZSA9IENoYXIuUXVvdGVOb25lO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDaGFyLkNvbG9uOlxuICAgICAgICBpZiAoIWN1cnJlbnRQcm9wICYmIHBhcmVuRGVwdGggPT09IDAgJiYgcXVvdGUgPT09IENoYXIuUXVvdGVOb25lKSB7XG4gICAgICAgICAgLy8gVE9ETzogRG8gbm90IGh5cGhlbmF0ZSBDU1MgY3VzdG9tIHByb3BlcnR5IG5hbWVzIGxpa2U6IGAtLWludGVudGlvbmFsbHlDYW1lbENhc2VgXG4gICAgICAgICAgY3VycmVudFByb3AgPSBoeXBoZW5hdGUodmFsdWUuc3Vic3RyaW5nKHByb3BTdGFydCwgaSAtIDEpLnRyaW0oKSk7XG4gICAgICAgICAgdmFsdWVTdGFydCA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENoYXIuU2VtaWNvbG9uOlxuICAgICAgICBpZiAoY3VycmVudFByb3AgJiYgdmFsdWVTdGFydCA+IDAgJiYgcGFyZW5EZXB0aCA9PT0gMCAmJiBxdW90ZSA9PT0gQ2hhci5RdW90ZU5vbmUpIHtcbiAgICAgICAgICBjb25zdCBzdHlsZVZhbCA9IHZhbHVlLnN1YnN0cmluZyh2YWx1ZVN0YXJ0LCBpIC0gMSkudHJpbSgpO1xuICAgICAgICAgIHN0eWxlcy5wdXNoKGN1cnJlbnRQcm9wLCBzdHlsZVZhbCk7XG4gICAgICAgICAgcHJvcFN0YXJ0ID0gaTtcbiAgICAgICAgICB2YWx1ZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJyZW50UHJvcCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnRQcm9wICYmIHZhbHVlU3RhcnQpIHtcbiAgICBjb25zdCBzdHlsZVZhbCA9IHZhbHVlLnNsaWNlKHZhbHVlU3RhcnQpLnRyaW0oKTtcbiAgICBzdHlsZXMucHVzaChjdXJyZW50UHJvcCwgc3R5bGVWYWwpO1xuICB9XG5cbiAgcmV0dXJuIHN0eWxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cGhlbmF0ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgICAvW2Etel1bQS1aXS9nLFxuICAgICAgICAgIHYgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHYuY2hhckF0KDApICsgJy0nICsgdi5jaGFyQXQoMSk7XG4gICAgICAgICAgfSlcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG5cbi8qKlxuICogUGFyc2VzIGV4dHJhY3RlZCBzdHlsZSBhbmQgY2xhc3MgYXR0cmlidXRlcyBpbnRvIHNlcGFyYXRlIEV4dHJhY3RlZEF0dHJpYnV0ZU9wcyBwZXIgc3R5bGUgb3JcbiAqIGNsYXNzIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFeHRyYWN0ZWRTdHlsZXMoam9iOiBDb21waWxhdGlvbkpvYikge1xuICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXA8aXIuWHJlZklkLCBpci5DcmVhdGVPcD4oKTtcblxuICBmb3IgKGNvbnN0IHVuaXQgb2Ygam9iLnVuaXRzKSB7XG4gICAgZm9yIChjb25zdCBvcCBvZiB1bml0LmNyZWF0ZSkge1xuICAgICAgaWYgKGlyLmlzRWxlbWVudE9yQ29udGFpbmVyT3Aob3ApKSB7XG4gICAgICAgIGVsZW1lbnRzLnNldChvcC54cmVmLCBvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC5jcmVhdGUpIHtcbiAgICAgIGlmIChvcC5raW5kID09PSBpci5PcEtpbmQuRXh0cmFjdGVkQXR0cmlidXRlICYmIG9wLmJpbmRpbmdLaW5kID09PSBpci5CaW5kaW5nS2luZC5BdHRyaWJ1dGUgJiZcbiAgICAgICAgICBpci5pc1N0cmluZ0xpdGVyYWwob3AuZXhwcmVzc2lvbiEpKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGVsZW1lbnRzLmdldChvcC50YXJnZXQpITtcblxuICAgICAgICBpZiAodGFyZ2V0ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0LmtpbmQgPT09IGlyLk9wS2luZC5UZW1wbGF0ZSAmJlxuICAgICAgICAgICAgdGFyZ2V0LnRlbXBsYXRlS2luZCA9PT0gaXIuVGVtcGxhdGVLaW5kLlN0cnVjdHVyYWwpIHtcbiAgICAgICAgICAvLyBUZW1wbGF0ZURlZmluaXRpb25CdWlsZGVyIHdpbGwgbm90IGFwcGx5IGNsYXNzIGFuZCBzdHlsZSBiaW5kaW5ncyB0byBzdHJ1Y3R1cmFsXG4gICAgICAgICAgLy8gZGlyZWN0aXZlczsgaW5zdGVhZCwgaXQgd2lsbCBsZWF2ZSB0aGVtIGFzIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgLy8gKEl0J3Mgbm90IGNsZWFyIHdoYXQgdGhhdCB3b3VsZCBtZWFuLCBhbnl3YXkgLS0gY2xhc3NlcyBhbmQgc3R5bGVzIG9uIGEgc3RydWN0dXJhbFxuICAgICAgICAgIC8vIGVsZW1lbnQgc2hvdWxkIHByb2JhYmx5IGJlIGEgcGFyc2UgZXJyb3IuKVxuICAgICAgICAgIC8vIFRPRE86IFdlIG1heSBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIG9uY2UgVGVtcGxhdGUgUGlwZWxpbmUgaXMgdGhlIGRlZmF1bHQuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3AubmFtZSA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFN0eWxlcyA9IHBhcnNlKG9wLmV4cHJlc3Npb24udmFsdWUpO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyc2VkU3R5bGVzLmxlbmd0aCAtIDE7IGkgKz0gMikge1xuICAgICAgICAgICAgaXIuT3BMaXN0Lmluc2VydEJlZm9yZTxpci5DcmVhdGVPcD4oXG4gICAgICAgICAgICAgICAgaXIuY3JlYXRlRXh0cmFjdGVkQXR0cmlidXRlT3AoXG4gICAgICAgICAgICAgICAgICAgIG9wLnRhcmdldCwgaXIuQmluZGluZ0tpbmQuU3R5bGVQcm9wZXJ0eSwgbnVsbCwgcGFyc2VkU3R5bGVzW2ldLFxuICAgICAgICAgICAgICAgICAgICBvLmxpdGVyYWwocGFyc2VkU3R5bGVzW2kgKyAxXSksIG51bGwsIG51bGwsIFNlY3VyaXR5Q29udGV4dC5TVFlMRSksXG4gICAgICAgICAgICAgICAgb3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpci5PcExpc3QucmVtb3ZlPGlyLkNyZWF0ZU9wPihvcCk7XG4gICAgICAgIH0gZWxzZSBpZiAob3AubmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZENsYXNzZXMgPSBvcC5leHByZXNzaW9uLnZhbHVlLnRyaW0oKS5zcGxpdCgvXFxzKy9nKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBhcnNlZENsYXNzIG9mIHBhcnNlZENsYXNzZXMpIHtcbiAgICAgICAgICAgIGlyLk9wTGlzdC5pbnNlcnRCZWZvcmU8aXIuQ3JlYXRlT3A+KFxuICAgICAgICAgICAgICAgIGlyLmNyZWF0ZUV4dHJhY3RlZEF0dHJpYnV0ZU9wKFxuICAgICAgICAgICAgICAgICAgICBvcC50YXJnZXQsIGlyLkJpbmRpbmdLaW5kLkNsYXNzTmFtZSwgbnVsbCwgcGFyc2VkQ2xhc3MsIG51bGwsIG51bGwsIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFNlY3VyaXR5Q29udGV4dC5OT05FKSxcbiAgICAgICAgICAgICAgICBvcCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlyLk9wTGlzdC5yZW1vdmU8aXIuQ3JlYXRlT3A+KG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfZXh0cmFjdGVkX3N0eWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvcGhhc2VzL3BhcnNlX2V4dHJhY3RlZF9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFrQi9COzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQWE7SUFDakMscURBQXFEO0lBQ3JELHVEQUF1RDtJQUN2RCxxREFBcUQ7SUFDckQsb0RBQW9EO0lBQ3BELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUU1QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxLQUFLLHlCQUF1QixDQUFDO0lBQ2pDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDbEIsSUFBSSxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUN0QyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBUyxDQUFDO1FBQzVDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZDtnQkFDRSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNO1lBQ1I7Z0JBQ0UsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsTUFBTTtZQUNSO2dCQUNFLHVEQUF1RDtnQkFDdkQscUJBQXFCO2dCQUNyQixJ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LENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUM5QixJQUFJLEVBQ0osSUFBSSxFQUNKLGVBQWUsQ0FBQyxLQUFLLENBQ3RCLEVBQ0QsRUFBRSxDQUNILENBQUM7b0JBQ0osQ0FBQztvQkFDRCxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztxQkFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0QsS0FBSyxNQUFNLFdBQVcsSUFBSSxhQUFhLEVBQUUsQ0FBQzt3QkFDeEMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQ3BCLEVBQUUsQ0FBQywwQkFBMEIsQ0FDM0IsRUFBRSxDQUFDLE1BQU0sRUFDVCxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFDeEIsSUFBSSxFQUNKLFdBQVcsRUFDWCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixlQUFlLENBQUMsSUFBSSxDQUNyQixFQUNELEVBQUUsQ0FDSCxDQUFDO29CQUNKLENBQUM7b0JBQ0QsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7U2VjdXJpdHlDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlJztcbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi4vLi4vaXInO1xuXG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Kb2J9IGZyb20gJy4uL2NvbXBpbGF0aW9uJztcblxuLy8gQW55IGNoYW5nZXMgaGVyZSBzaG91bGQgYmUgcG9ydGVkIHRvIHRoZSBBbmd1bGFyIERvbWlubyBmb3JrLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvZG9taW5vL2Jsb2IvbWFpbi9saWIvc3R5bGVfcGFyc2VyLmpzXG5cbmNvbnN0IGVudW0gQ2hhciB7XG4gIE9wZW5QYXJlbiA9IDQwLFxuICBDbG9zZVBhcmVuID0gNDEsXG4gIENvbG9uID0gNTgsXG4gIFNlbWljb2xvbiA9IDU5LFxuICBCYWNrU2xhc2ggPSA5MixcbiAgUXVvdGVOb25lID0gMCwgLy8gaW5kaWNhdGluZyB3ZSBhcmUgbm90IGluc2lkZSBhIHF1b3RlXG4gIFF1b3RlRG91YmxlID0gMzQsXG4gIFF1b3RlU2luZ2xlID0gMzksXG59XG5cbi8qKlxuICogUGFyc2VzIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHN0eWxlIGFuZCBjb252ZXJ0cyBpdCBpbnRvIG9iamVjdCBsaXRlcmFsLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc3R5bGUgYXMgdXNlZCBpbiB0aGUgYHN0eWxlYCBhdHRyaWJ1dGUgaW4gSFRNTC5cbiAqICAgRXhhbXBsZTogYGNvbG9yOiByZWQ7IGhlaWdodDogYXV0b2AuXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHlsZSBwcm9wZXJ0eSBuYW1lIGFuZCB2YWx1ZSBwYWlycywgZS5nLiBgWydjb2xvcicsICdyZWQnLCAnaGVpZ2h0JyxcbiAqICdhdXRvJ11gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAvLyB3ZSB1c2UgYSBzdHJpbmcgYXJyYXkgaGVyZSBpbnN0ZWFkIG9mIGEgc3RyaW5nIG1hcFxuICAvLyBiZWNhdXNlIGEgc3RyaW5nLW1hcCBpcyBub3QgZ3VhcmFudGVlZCB0byByZXRhaW4gdGhlXG4gIC8vIG9yZGVyIG9mIHRoZSBlbnRyaWVzIHdoZXJlYXMgYSBzdHJpbmcgYXJyYXkgY2FuIGJlXG4gIC8vIGNvbnN0cnVjdGVkIGluIGEgW2tleSwgdmFsdWUsIGtleSwgdmFsdWVdIGZvcm1hdC5cbiAgY29uc3Qgc3R5bGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBpID0gMDtcbiAgbGV0IHBhcmVuRGVwdGggPSAwO1xuICBsZXQgcXVvdGU6IENoYXIgPSBDaGFyLlF1b3RlTm9uZTtcbiAgbGV0IHZhbHVlU3RhcnQgPSAwO1xuICBsZXQgcHJvcFN0YXJ0ID0gMDtcbiAgbGV0IGN1cnJlbnRQcm9wOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgd2hpbGUgKGkgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHZhbHVlLmNoYXJDb2RlQXQoaSsrKSBhcyBDaGFyO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgQ2hhci5PcGVuUGFyZW46XG4gICAgICAgIHBhcmVuRGVwdGgrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENoYXIuQ2xvc2VQYXJlbjpcbiAgICAgICAgcGFyZW5EZXB0aC0tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2hhci5RdW90ZVNpbmdsZTpcbiAgICAgICAgLy8gdmFsdWVTdGFydCBuZWVkcyB0byBiZSB0aGVyZSBzaW5jZSBwcm9wIHZhbHVlcyBkb24ndFxuICAgICAgICAvLyBoYXZlIHF1b3RlcyBpbiBDU1NcbiAgICAgICAgaWYgKHF1b3RlID09PSBDaGFyLlF1b3RlTm9uZSkge1xuICAgICAgICAgIHF1b3RlID0gQ2hhci5RdW90ZVNpbmdsZTtcbiAgICAgICAgfSBlbHNlIGlmIChxdW90ZSA9PT0gQ2hhci5RdW90ZVNpbmdsZSAmJiB2YWx1ZS5jaGFyQ29kZUF0KGkgLSAxKSAhPT0gQ2hhci5CYWNrU2xhc2gpIHtcbiAgICAgICAgICBxdW90ZSA9IENoYXIuUXVvdGVOb25lO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDaGFyLlF1b3RlRG91YmxlOlxuICAgICAgICAvLyBzYW1lIGxvZ2ljIGFzIGFib3ZlXG4gICAgICAgIGlmIChxdW90ZSA9PT0gQ2hhci5RdW90ZU5vbmUpIHtcbiAgICAgICAgICBxdW90ZSA9IENoYXIuUXVvdGVEb3VibGU7XG4gICAgICAgIH0gZWxzZSBpZiAocXVvdGUgPT09IENoYXIuUXVvdGVEb3VibGUgJiYgdmFsdWUuY2hhckNvZGVBdChpIC0gMSkgIT09IENoYXIuQmFja1NsYXNoKSB7XG4gICAgICAgICAgcXVvdGUgPSBDaGFyLlF1b3RlTm9uZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2hhci5Db2xvbjpcbiAgICAgICAgaWYgKCFjdXJyZW50UHJvcCAmJiBwYXJlbkRlcHRoID09PSAwICYmIHF1b3RlID09PSBDaGFyLlF1b3RlTm9uZSkge1xuICAgICAgICAgIC8vIFRPRE86IERvIG5vdCBoeXBoZW5hdGUgQ1NTIGN1c3RvbSBwcm9wZXJ0eSBuYW1lcyBsaWtlOiBgLS1pbnRlbnRpb25hbGx5Q2FtZWxDYXNlYFxuICAgICAgICAgIGN1cnJlbnRQcm9wID0gaHlwaGVuYXRlKHZhbHVlLnN1YnN0cmluZyhwcm9wU3RhcnQsIGkgLSAxKS50cmltKCkpO1xuICAgICAgICAgIHZhbHVlU3RhcnQgPSBpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDaGFyLlNlbWljb2xvbjpcbiAgICAgICAgaWYgKGN1cnJlbnRQcm9wICYmIHZhbHVlU3RhcnQgPiAwICYmIHBhcmVuRGVwdGggPT09IDAgJiYgcXVvdGUgPT09IENoYXIuUXVvdGVOb25lKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVWYWwgPSB2YWx1ZS5zdWJzdHJpbmcodmFsdWVTdGFydCwgaSAtIDEpLnRyaW0oKTtcbiAgICAgICAgICBzdHlsZXMucHVzaChjdXJyZW50UHJvcCwgc3R5bGVWYWwpO1xuICAgICAgICAgIHByb3BTdGFydCA9IGk7XG4gICAgICAgICAgdmFsdWVTdGFydCA9IDA7XG4gICAgICAgICAgY3VycmVudFByb3AgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjdXJyZW50UHJvcCAmJiB2YWx1ZVN0YXJ0KSB7XG4gICAgY29uc3Qgc3R5bGVWYWwgPSB2YWx1ZS5zbGljZSh2YWx1ZVN0YXJ0KS50cmltKCk7XG4gICAgc3R5bGVzLnB1c2goY3VycmVudFByb3AsIHN0eWxlVmFsKTtcbiAgfVxuXG4gIHJldHVybiBzdHlsZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoeXBoZW5hdGUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZVxuICAgIC5yZXBsYWNlKC9bYS16XVtBLVpdL2csICh2KSA9PiB7XG4gICAgICByZXR1cm4gdi5jaGFyQXQoMCkgKyAnLScgKyB2LmNoYXJBdCgxKTtcbiAgICB9KVxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBleHRyYWN0ZWQgc3R5bGUgYW5kIGNsYXNzIGF0dHJpYnV0ZXMgaW50byBzZXBhcmF0ZSBFeHRyYWN0ZWRBdHRyaWJ1dGVPcHMgcGVyIHN0eWxlIG9yXG4gKiBjbGFzcyBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXh0cmFjdGVkU3R5bGVzKGpvYjogQ29tcGlsYXRpb25Kb2IpIHtcbiAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwPGlyLlhyZWZJZCwgaXIuQ3JlYXRlT3A+KCk7XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC5jcmVhdGUpIHtcbiAgICAgIGlmIChpci5pc0VsZW1lbnRPckNvbnRhaW5lck9wKG9wKSkge1xuICAgICAgICBlbGVtZW50cy5zZXQob3AueHJlZiwgb3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgdW5pdCBvZiBqb2IudW5pdHMpIHtcbiAgICBmb3IgKGNvbnN0IG9wIG9mIHVuaXQuY3JlYXRlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG9wLmtpbmQgPT09IGlyLk9wS2luZC5FeHRyYWN0ZWRBdHRyaWJ1dGUgJiZcbiAgICAgICAgb3AuYmluZGluZ0tpbmQgPT09IGlyLkJpbmRpbmdLaW5kLkF0dHJpYnV0ZSAmJlxuICAgICAgICBpci5pc1N0cmluZ0xpdGVyYWwob3AuZXhwcmVzc2lvbiEpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWxlbWVudHMuZ2V0KG9wLnRhcmdldCkhO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0YXJnZXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRhcmdldC5raW5kID09PSBpci5PcEtpbmQuVGVtcGxhdGUgJiZcbiAgICAgICAgICB0YXJnZXQudGVtcGxhdGVLaW5kID09PSBpci5UZW1wbGF0ZUtpbmQuU3RydWN0dXJhbFxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBUZW1wbGF0ZURlZmluaXRpb25CdWlsZGVyIHdpbGwgbm90IGFwcGx5IGNsYXNzIGFuZCBzdHlsZSBiaW5kaW5ncyB0byBzdHJ1Y3R1cmFsXG4gICAgICAgICAgLy8gZGlyZWN0aXZlczsgaW5zdGVhZCwgaXQgd2lsbCBsZWF2ZSB0aGVtIGFzIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgLy8gKEl0J3Mgbm90IGNsZWFyIHdoYXQgdGhhdCB3b3VsZCBtZWFuLCBhbnl3YXkgLS0gY2xhc3NlcyBhbmQgc3R5bGVzIG9uIGEgc3RydWN0dXJhbFxuICAgICAgICAgIC8vIGVsZW1lbnQgc2hvdWxkIHByb2JhYmx5IGJlIGEgcGFyc2UgZXJyb3IuKVxuICAgICAgICAgIC8vIFRPRE86IFdlIG1heSBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIG9uY2UgVGVtcGxhdGUgUGlwZWxpbmUgaXMgdGhlIGRlZmF1bHQuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3AubmFtZSA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFN0eWxlcyA9IHBhcnNlKG9wLmV4cHJlc3Npb24udmFsdWUpO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyc2VkU3R5bGVzLmxlbmd0aCAtIDE7IGkgKz0gMikge1xuICAgICAgICAgICAgaXIuT3BMaXN0Lmluc2VydEJlZm9yZTxpci5DcmVhdGVPcD4oXG4gICAgICAgICAgICAgIGlyLmNyZWF0ZUV4dHJhY3RlZEF0dHJpYnV0ZU9wKFxuICAgICAgICAgICAgICAgIG9wLnRhcmdldCxcbiAgICAgICAgICAgICAgICBpci5CaW5kaW5nS2luZC5TdHlsZVByb3BlcnR5LFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgcGFyc2VkU3R5bGVzW2ldLFxuICAgICAgICAgICAgICAgIG8ubGl0ZXJhbChwYXJzZWRTdHlsZXNbaSArIDFdKSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgU2VjdXJpdHlDb250ZXh0LlNUWUxFLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBvcCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlyLk9wTGlzdC5yZW1vdmU8aXIuQ3JlYXRlT3A+KG9wKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcC5uYW1lID09PSAnY2xhc3MnKSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkQ2xhc3NlcyA9IG9wLmV4cHJlc3Npb24udmFsdWUudHJpbSgpLnNwbGl0KC9cXHMrL2cpO1xuICAgICAgICAgIGZvciAoY29uc3QgcGFyc2VkQ2xhc3Mgb2YgcGFyc2VkQ2xhc3Nlcykge1xuICAgICAgICAgICAgaXIuT3BMaXN0Lmluc2VydEJlZm9yZTxpci5DcmVhdGVPcD4oXG4gICAgICAgICAgICAgIGlyLmNyZWF0ZUV4dHJhY3RlZEF0dHJpYnV0ZU9wKFxuICAgICAgICAgICAgICAgIG9wLnRhcmdldCxcbiAgICAgICAgICAgICAgICBpci5CaW5kaW5nS2luZC5DbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBwYXJzZWRDbGFzcyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBTZWN1cml0eUNvbnRleHQuTk9ORSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgb3AsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpci5PcExpc3QucmVtb3ZlPGlyLkNyZWF0ZU9wPihvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -39,4 +39,4 @@ function lookupInXrefMap(map, xref) {
|
|
|
39
39
|
}
|
|
40
40
|
return el;
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2VfcmVtb3ZlX2NvbnRlbnRfc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL3NyYy9waGFzZXMvcGhhc2VfcmVtb3ZlX2NvbnRlbnRfc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsR0FBbUI7SUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDNUIsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUNwQixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUN2RSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBYyxFQUFFLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztvQkFDRCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLENBQUM7QUFDekMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLEdBQXlELEVBQ3pELElBQWU7SUFFZixNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uLy4uL2lyJztcbmltcG9ydCB0eXBlIHtDb21waWxhdGlvbkpvYn0gZnJvbSAnLi4vY29tcGlsYXRpb24nO1xuaW1wb3J0IHtjcmVhdGVPcFhyZWZNYXB9IGZyb20gJy4uL3V0aWwvZWxlbWVudHMnO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXMgb2YgYG5nLWNvbnRlbnRgIG5hbWVkICdzZWxlY3QnIGFyZSBzcGVjaWZpY2FsbHkgcmVtb3ZlZCwgYmVjYXVzZSB0aGV5IGNvbnRyb2wgd2hpY2hcbiAqIGNvbnRlbnQgbWF0Y2hlcyBhcyBhIHByb3BlcnR5IG9mIHRoZSBgcHJvamVjdGlvbmAsIGFuZCBhcmUgbm90IGEgcGxhaW4gYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQ29udGVudFNlbGVjdG9ycyhqb2I6IENvbXBpbGF0aW9uSm9iKTogdm9pZCB7XG4gIGZvciAoY29uc3QgdW5pdCBvZiBqb2IudW5pdHMpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGNyZWF0ZU9wWHJlZk1hcCh1bml0KTtcbiAgICBmb3IgKGNvbnN0IG9wIG9mIHVuaXQub3BzKCkpIHtcbiAgICAgIHN3aXRjaCAob3Aua2luZCkge1xuICAgICAgICBjYXNlIGlyLk9wS2luZC5CaW5kaW5nOlxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGxvb2t1cEluWHJlZk1hcChlbGVtZW50cywgb3AudGFyZ2V0KTtcbiAgICAgICAgICBpZiAoaXNTZWxlY3RBdHRyaWJ1dGUob3AubmFtZSkgJiYgdGFyZ2V0LmtpbmQgPT09IGlyLk9wS2luZC5Qcm9qZWN0aW9uKSB7XG4gICAgICAgICAgICBpci5PcExpc3QucmVtb3ZlPGlyLlVwZGF0ZU9wPihvcCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1NlbGVjdEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NlbGVjdCc7XG59XG5cbi8qKlxuICogTG9va3MgdXAgYW4gZWxlbWVudCBpbiB0aGUgZ2l2ZW4gbWFwIGJ5IHhyZWYgSUQuXG4gKi9cbmZ1bmN0aW9uIGxvb2t1cEluWHJlZk1hcChcbiAgbWFwOiBNYXA8aXIuWHJlZklkLCBpci5Db25zdW1lc1Nsb3RPcFRyYWl0ICYgaXIuQ3JlYXRlT3A+LFxuICB4cmVmOiBpci5YcmVmSWQsXG4pOiBpci5Db25zdW1lc1Nsb3RPcFRyYWl0ICYgaXIuQ3JlYXRlT3Age1xuICBjb25zdCBlbCA9IG1hcC5nZXQoeHJlZik7XG4gIGlmIChlbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbGwgYXR0cmlidXRlcyBzaG91bGQgaGF2ZSBhbiBzbG90dGFibGUgdGFyZ2V0LicpO1xuICB9XG4gIHJldHVybiBlbDtcbn1cbiJdfQ==
|
|
@@ -71,4 +71,4 @@ function addPipeToCreationBlock(unit, afterTargetXref, binding) {
|
|
|
71
71
|
// At this point, we've failed to add the pipe to the creation block.
|
|
72
72
|
throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`);
|
|
73
73
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZV9jcmVhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvcGhhc2VzL3BpcGVfY3JlYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFtQjtJQUM3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsSUFBcUI7SUFDdEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM3QixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoRCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7WUFDMUYsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0IsOEVBQThFO2dCQUM5RSxNQUFNLFVBQVUsR0FBSSxRQUFnQixDQUFDLE1BQU0sQ0FBQztnQkFDNUMsSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztnQkFDRCxzQkFBc0IsQ0FBQyxJQUFJLEVBQUcsUUFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDRGQUE0RjtnQkFDNUYsbUZBQW1GO2dCQUNuRixnQkFBZ0I7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FDN0IsSUFBcUIsRUFDckIsZUFBMEIsRUFDMUIsT0FBMkI7SUFFM0Isb0VBQW9FO0lBQ3BFLCtGQUErRjtJQUMvRiw2QkFBNkI7SUFDN0IsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUssRUFBRSxDQUFDO1FBQ25GLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxTQUFTO1FBQ1gsQ0FBQztRQUVELElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUNoQyxTQUFTO1FBQ1gsQ0FBQztRQUVELCtGQUErRjtRQUMvRixzQkFBc0I7UUFDdEIsT0FBTyxFQUFFLENBQUMsSUFBSyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBQzlGLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSyxDQUFDLENBQUM7UUFFdkMsd0RBQXdEO1FBQ3hELE9BQU87SUFDVCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi4vLi4vaXInO1xuaW1wb3J0IHR5cGUge0NvbXBpbGF0aW9uSm9iLCBDb21waWxhdGlvblVuaXR9IGZyb20gJy4uL2NvbXBpbGF0aW9uJztcblxuLyoqXG4gKiBUaGlzIHBoYXNlIGdlbmVyYXRlcyBwaXBlIGNyZWF0aW9uIGluc3RydWN0aW9ucy4gV2UgZG8gdGhpcyBiYXNlZCBvbiB0aGUgcGlwZSBiaW5kaW5ncyBmb3VuZCBpblxuICogdGhlIHVwZGF0ZSBibG9jaywgaW4gdGhlIG9yZGVyIHdlIHNlZSB0aGVtLlxuICpcbiAqIFdoZW4gbm90IGluIGNvbXBhdGliaWxpdHkgbW9kZSwgd2UgY2FuIHNpbXBseSBncm91cCBhbGwgdGhlc2UgY3JlYXRpb24gaW5zdHJ1Y3Rpb25zIHRvZ2V0aGVyLCB0b1xuICogbWF4aW1pemUgY2hhaW5pbmcgb3Bwb3J0dW5pdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBpcGVzKGpvYjogQ29tcGlsYXRpb25Kb2IpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIHByb2Nlc3NQaXBlQmluZGluZ3NJblZpZXcodW5pdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc1BpcGVCaW5kaW5nc0luVmlldyh1bml0OiBDb21waWxhdGlvblVuaXQpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB1cGRhdGVPcCBvZiB1bml0LnVwZGF0ZSkge1xuICAgIGlyLnZpc2l0RXhwcmVzc2lvbnNJbk9wKHVwZGF0ZU9wLCAoZXhwciwgZmxhZ3MpID0+IHtcbiAgICAgIGlmICghaXIuaXNJckV4cHJlc3Npb24oZXhwcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXhwci5raW5kICE9PSBpci5FeHByZXNzaW9uS2luZC5QaXBlQmluZGluZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChmbGFncyAmIGlyLlZpc2l0b3JDb250ZXh0RmxhZy5JbkNoaWxkT3BlcmF0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IHBpcGUgYmluZGluZ3Mgc2hvdWxkIG5vdCBhcHBlYXIgaW4gY2hpbGQgZXhwcmVzc2lvbnNgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHVuaXQuam9iLmNvbXBhdGliaWxpdHkpIHtcbiAgICAgICAgLy8gVE9ETzogV2UgY2FuIGRlbGV0ZSB0aGlzIGNhc3QgYW5kIGNoZWNrIG9uY2UgY29tcGF0aWJpbGl0eSBtb2RlIGlzIHJlbW92ZWQuXG4gICAgICAgIGNvbnN0IHNsb3RIYW5kbGUgPSAodXBkYXRlT3AgYXMgYW55KS50YXJnZXQ7XG4gICAgICAgIGlmIChzbG90SGFuZGxlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IGV4cGVjdGVkIHNsb3QgaGFuZGxlIHRvIGJlIGFzc2lnbmVkIGZvciBwaXBlIGNyZWF0aW9uYCk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkUGlwZVRvQ3JlYXRpb25CbG9jayh1bml0LCAodXBkYXRlT3AgYXMgYW55KS50YXJnZXQsIGV4cHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2hlbiBub3QgaW4gY29tcGF0aWJpbGl0eSBtb2RlLCB3ZSBqdXN0IGFkZCB0aGUgcGlwZSB0byB0aGUgZW5kIG9mIHRoZSBjcmVhdGUgYmxvY2suIFRoaXNcbiAgICAgICAgLy8gaXMgbm90IG9ubHkgc2ltcGxlciBhbmQgZmFzdGVyLCBidXQgYWxsb3dzIG1vcmUgY2hhaW5pbmcgb3Bwb3J0dW5pdGllcyBmb3Igb3RoZXJcbiAgICAgICAgLy8gaW5zdHJ1Y3Rpb25zLlxuICAgICAgICB1bml0LmNyZWF0ZS5wdXNoKGlyLmNyZWF0ZVBpcGVPcChleHByLnRhcmdldCwgZXhwci50YXJnZXRTbG90LCBleHByLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRQaXBlVG9DcmVhdGlvbkJsb2NrKFxuICB1bml0OiBDb21waWxhdGlvblVuaXQsXG4gIGFmdGVyVGFyZ2V0WHJlZjogaXIuWHJlZklkLFxuICBiaW5kaW5nOiBpci5QaXBlQmluZGluZ0V4cHIsXG4pOiB2b2lkIHtcbiAgLy8gRmluZCB0aGUgYXBwcm9wcmlhdGUgcG9pbnQgdG8gaW5zZXJ0IHRoZSBQaXBlIGNyZWF0aW9uIG9wZXJhdGlvbi5cbiAgLy8gV2UncmUgbG9va2luZyBmb3IgYGFmdGVyVGFyZ2V0WHJlZmAgKGFuZCBhbHNvIHdhbnQgdG8gaW5zZXJ0IGFmdGVyIGFueSBvdGhlciBwaXBlIG9wZXJhdGlvbnNcbiAgLy8gd2hpY2ggbWlnaHQgYmUgYmV5b25kIGl0KS5cbiAgZm9yIChsZXQgb3AgPSB1bml0LmNyZWF0ZS5oZWFkLm5leHQhOyBvcC5raW5kICE9PSBpci5PcEtpbmQuTGlzdEVuZDsgb3AgPSBvcC5uZXh0ISkge1xuICAgIGlmICghaXIuaGFzQ29uc3VtZXNTbG90VHJhaXQ8aXIuQ3JlYXRlT3A+KG9wKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG9wLnhyZWYgIT09IGFmdGVyVGFyZ2V0WHJlZikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gV2UndmUgZm91bmQgYSB0ZW50YXRpdmUgaW5zZXJ0aW9uIHBvaW50OyBob3dldmVyLCB3ZSBhbHNvIHdhbnQgdG8gc2tpcCBwYXN0IGFueSBfb3RoZXJfIHBpcGVcbiAgICAvLyBvcGVyYXRpb25zIHByZXNlbnQuXG4gICAgd2hpbGUgKG9wLm5leHQhLmtpbmQgPT09IGlyLk9wS2luZC5QaXBlKSB7XG4gICAgICBvcCA9IG9wLm5leHQhO1xuICAgIH1cblxuICAgIGNvbnN0IHBpcGUgPSBpci5jcmVhdGVQaXBlT3AoYmluZGluZy50YXJnZXQsIGJpbmRpbmcudGFyZ2V0U2xvdCwgYmluZGluZy5uYW1lKSBhcyBpci5DcmVhdGVPcDtcbiAgICBpci5PcExpc3QuaW5zZXJ0QmVmb3JlKHBpcGUsIG9wLm5leHQhKTtcblxuICAgIC8vIFRoaXMgY29tcGxldGVzIGFkZGluZyB0aGUgcGlwZSB0byB0aGUgY3JlYXRpb24gYmxvY2suXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQXQgdGhpcyBwb2ludCwgd2UndmUgZmFpbGVkIHRvIGFkZCB0aGUgcGlwZSB0byB0aGUgY3JlYXRpb24gYmxvY2suXG4gIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IHVuYWJsZSB0byBmaW5kIGluc2VydGlvbiBwb2ludCBmb3IgcGlwZSAke2JpbmRpbmcubmFtZX1gKTtcbn1cbiJdfQ==
|
|
@@ -14,7 +14,7 @@ import * as ir from '../../ir';
|
|
|
14
14
|
export function createVariadicPipes(job) {
|
|
15
15
|
for (const unit of job.units) {
|
|
16
16
|
for (const op of unit.update) {
|
|
17
|
-
ir.transformExpressionsInOp(op, expr => {
|
|
17
|
+
ir.transformExpressionsInOp(op, (expr) => {
|
|
18
18
|
if (!(expr instanceof ir.PipeBindingExpr)) {
|
|
19
19
|
return expr;
|
|
20
20
|
}
|
|
@@ -27,4 +27,4 @@ export function createVariadicPipes(job) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZV92YXJpYWRpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvcGhhc2VzL3BpcGVfdmFyaWFkaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLENBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkvQjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBbUI7SUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsRUFBRSxDQUFDLHdCQUF3QixDQUN6QixFQUFFLEVBQ0YsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDUCxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBRUQseURBQXlEO2dCQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMxQixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELE9BQU8sSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQ25DLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsSUFBSSxFQUNULENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDakIsQ0FBQztZQUNKLENBQUMsRUFDRCxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi4vLi4vaXInO1xuXG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Kb2IsIENvbXBvbmVudENvbXBpbGF0aW9uSm9ifSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbi8qKlxuICogUGlwZXMgdGhhdCBhY2NlcHQgbW9yZSB0aGFuIDQgYXJndW1lbnRzIGFyZSB2YXJpYWRpYywgYW5kIGFyZSBoYW5kbGVkIHdpdGggYSBkaWZmZXJlbnQgcnVudGltZVxuICogaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWYXJpYWRpY1BpcGVzKGpvYjogQ29tcGlsYXRpb25Kb2IpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC51cGRhdGUpIHtcbiAgICAgIGlyLnRyYW5zZm9ybUV4cHJlc3Npb25zSW5PcChcbiAgICAgICAgb3AsXG4gICAgICAgIChleHByKSA9PiB7XG4gICAgICAgICAgaWYgKCEoZXhwciBpbnN0YW5jZW9mIGlyLlBpcGVCaW5kaW5nRXhwcikpIHtcbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFBpcGVzIGFyZSB2YXJpYWRpYyBpZiB0aGV5IGhhdmUgbW9yZSB0aGFuIDQgYXJndW1lbnRzLlxuICAgICAgICAgIGlmIChleHByLmFyZ3MubGVuZ3RoIDw9IDQpIHtcbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgaXIuUGlwZUJpbmRpbmdWYXJpYWRpY0V4cHIoXG4gICAgICAgICAgICBleHByLnRhcmdldCxcbiAgICAgICAgICAgIGV4cHIudGFyZ2V0U2xvdCxcbiAgICAgICAgICAgIGV4cHIubmFtZSxcbiAgICAgICAgICAgIG8ubGl0ZXJhbEFycihleHByLmFyZ3MpLFxuICAgICAgICAgICAgZXhwci5hcmdzLmxlbmd0aCxcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBpci5WaXNpdG9yQ29udGV4dEZsYWcuTm9uZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -39,8 +39,7 @@ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
|
|
|
39
39
|
case ir.OpKind.RepeaterCreate:
|
|
40
40
|
// Propagate i18n blocks to the @for template.
|
|
41
41
|
const forView = unit.job.views.get(op.xref);
|
|
42
|
-
subTemplateIndex =
|
|
43
|
-
propagateI18nBlocksForView(forView, i18nBlock, op.i18nPlaceholder, subTemplateIndex);
|
|
42
|
+
subTemplateIndex = propagateI18nBlocksForView(forView, i18nBlock, op.i18nPlaceholder, subTemplateIndex);
|
|
44
43
|
// Then if there's an @empty template, propagate the i18n blocks for it as well.
|
|
45
44
|
if (op.emptyView !== null) {
|
|
46
45
|
subTemplateIndex = propagateI18nBlocksForView(unit.job.views.get(op.emptyView), i18nBlock, op.emptyI18nPlaceholder, subTemplateIndex);
|
|
@@ -79,4 +78,4 @@ function wrapTemplateWithI18n(unit, parentI18n) {
|
|
|
79
78
|
ir.OpList.insertBefore(ir.createI18nEndOp(id, null), unit.create.tail);
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGFnYXRlX2kxOG5fYmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL3NyYy9waGFzZXMvcHJvcGFnYXRlX2kxOG5fYmxvY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9COzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQTRCO0lBQzlELDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FDckMsSUFBeUIsRUFDekIsZ0JBQXdCO0lBRXhCLElBQUksU0FBUyxHQUEwQixJQUFJLENBQUM7SUFDNUMsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVM7Z0JBQ3RCLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUNwQiw4RUFBOEU7Z0JBQzlFLElBQUksU0FBVSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRSxDQUFDO29CQUN6QyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUNyQixnQkFBZ0IsR0FBRywwQkFBMEIsQ0FDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUUsRUFDNUIsU0FBUyxFQUNULEVBQUUsQ0FBQyxlQUFlLEVBQ2xCLGdCQUFnQixDQUNqQixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYztnQkFDM0IsOENBQThDO2dCQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBRSxDQUFDO2dCQUM3QyxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FDM0MsT0FBTyxFQUNQLFNBQVMsRUFDVCxFQUFFLENBQUMsZUFBZSxFQUNsQixnQkFBZ0IsQ0FDakIsQ0FBQztnQkFDRixnRkFBZ0Y7Z0JBQ2hGLElBQUksRUFBRSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDMUIsZ0JBQWdCLEdBQUcsMEJBQTBCLENBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFFLEVBQ2pDLFNBQVMsRUFDVCxFQUFFLENBQUMsb0JBQW9CLEVBQ3ZCLGdCQUFnQixDQUNqQixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxJQUF5QixFQUN6QixTQUFnQyxFQUNoQyxlQUF3RSxFQUN4RSxnQkFBd0I7SUFFeEIseUZBQXlGO0lBQ3pGLGtEQUFrRDtJQUNsRCxJQUFJLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN2QixNQUFNLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLG9CQUFvQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELE9BQU8sOEJBQThCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FBQyxJQUF5QixFQUFFLFVBQTBCO0lBQ2pGLCtFQUErRTtJQUMvRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVztRQUNuQix5RUFBeUU7UUFDekUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNqQixDQUFDO1FBQ0YsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBpMThuIGZyb20gJy4uLy4uLy4uLy4uL2kxOG4vaTE4bl9hc3QnO1xuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi4vLi4vaXInO1xuaW1wb3J0IHtDb21wb25lbnRDb21waWxhdGlvbkpvYiwgVmlld0NvbXBpbGF0aW9uVW5pdH0gZnJvbSAnLi4vY29tcGlsYXRpb24nO1xuXG4vKipcbiAqIFByb3BhZ2F0ZSBpMThuIGJsb2NrcyBkb3duIHRocm91Z2ggY2hpbGQgdGVtcGxhdGVzIHRoYXQgYWN0IGFzIHBsYWNlaG9sZGVycyBpbiB0aGUgcm9vdCBpMThuXG4gKiBtZXNzYWdlLiBTcGVjaWZpY2FsbHksIHBlcmZvcm0gYW4gaW4tb3JkZXIgdHJhdmVyc2FsIG9mIGFsbCB0aGUgdmlld3MsIGFuZCBhZGQgaTE4blN0YXJ0L2kxOG5FbmRcbiAqIG9wIHBhaXJzIGludG8gZGVzY2VuZGluZyB2aWV3cy4gQWxzbywgYXNzaWduIGFuIGluY3JlYXNpbmcgc3ViLXRlbXBsYXRlIGluZGV4IHRvIGVhY2hcbiAqIGRlc2NlbmRpbmcgdmlldy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BhZ2F0ZUkxOG5CbG9ja3Moam9iOiBDb21wb25lbnRDb21waWxhdGlvbkpvYik6IHZvaWQge1xuICBwcm9wYWdhdGVJMThuQmxvY2tzVG9UZW1wbGF0ZXMoam9iLnJvb3QsIDApO1xufVxuXG4vKipcbiAqIFByb3BhZ2F0ZXMgaTE4biBvcHMgaW4gdGhlIGdpdmVuIHZpZXcgdGhyb3VnaCB0byBhbnkgY2hpbGQgdmlld3MgcmVjdXJzaXZlbHkuXG4gKi9cbmZ1bmN0aW9uIHByb3BhZ2F0ZUkxOG5CbG9ja3NUb1RlbXBsYXRlcyhcbiAgdW5pdDogVmlld0NvbXBpbGF0aW9uVW5pdCxcbiAgc3ViVGVtcGxhdGVJbmRleDogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgbGV0IGkxOG5CbG9jazogaXIuSTE4blN0YXJ0T3AgfCBudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCBvcCBvZiB1bml0LmNyZWF0ZSkge1xuICAgIHN3aXRjaCAob3Aua2luZCkge1xuICAgICAgY2FzZSBpci5PcEtpbmQuSTE4blN0YXJ0OlxuICAgICAgICBvcC5zdWJUZW1wbGF0ZUluZGV4ID0gc3ViVGVtcGxhdGVJbmRleCA9PT0gMCA/IG51bGwgOiBzdWJUZW1wbGF0ZUluZGV4O1xuICAgICAgICBpMThuQmxvY2sgPSBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGlyLk9wS2luZC5JMThuRW5kOlxuICAgICAgICAvLyBXaGVuIHdlIGV4aXQgYSByb290LWxldmVsIGkxOG4gYmxvY2ssIHJlc2V0IHRoZSBzdWItdGVtcGxhdGUgaW5kZXggY291bnRlci5cbiAgICAgICAgaWYgKGkxOG5CbG9jayEuc3ViVGVtcGxhdGVJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgIHN1YlRlbXBsYXRlSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGkxOG5CbG9jayA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBpci5PcEtpbmQuVGVtcGxhdGU6XG4gICAgICAgIHN1YlRlbXBsYXRlSW5kZXggPSBwcm9wYWdhdGVJMThuQmxvY2tzRm9yVmlldyhcbiAgICAgICAgICB1bml0LmpvYi52aWV3cy5nZXQob3AueHJlZikhLFxuICAgICAgICAgIGkxOG5CbG9jayxcbiAgICAgICAgICBvcC5pMThuUGxhY2Vob2xkZXIsXG4gICAgICAgICAgc3ViVGVtcGxhdGVJbmRleCxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGlyLk9wS2luZC5SZXBlYXRlckNyZWF0ZTpcbiAgICAgICAgLy8gUHJvcGFnYXRlIGkxOG4gYmxvY2tzIHRvIHRoZSBAZm9yIHRlbXBsYXRlLlxuICAgICAgICBjb25zdCBmb3JWaWV3ID0gdW5pdC5qb2Iudmlld3MuZ2V0KG9wLnhyZWYpITtcbiAgICAgICAgc3ViVGVtcGxhdGVJbmRleCA9IHByb3BhZ2F0ZUkxOG5CbG9ja3NGb3JWaWV3KFxuICAgICAgICAgIGZvclZpZXcsXG4gICAgICAgICAgaTE4bkJsb2NrLFxuICAgICAgICAgIG9wLmkxOG5QbGFjZWhvbGRlcixcbiAgICAgICAgICBzdWJUZW1wbGF0ZUluZGV4LFxuICAgICAgICApO1xuICAgICAgICAvLyBUaGVuIGlmIHRoZXJlJ3MgYW4gQGVtcHR5IHRlbXBsYXRlLCBwcm9wYWdhdGUgdGhlIGkxOG4gYmxvY2tzIGZvciBpdCBhcyB3ZWxsLlxuICAgICAgICBpZiAob3AuZW1wdHlWaWV3ICE9PSBudWxsKSB7XG4gICAgICAgICAgc3ViVGVtcGxhdGVJbmRleCA9IHByb3BhZ2F0ZUkxOG5CbG9ja3NGb3JWaWV3KFxuICAgICAgICAgICAgdW5pdC5qb2Iudmlld3MuZ2V0KG9wLmVtcHR5VmlldykhLFxuICAgICAgICAgICAgaTE4bkJsb2NrLFxuICAgICAgICAgICAgb3AuZW1wdHlJMThuUGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBzdWJUZW1wbGF0ZUluZGV4LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdWJUZW1wbGF0ZUluZGV4O1xufVxuXG4vKipcbiAqIFByb3BhZ2F0ZSBpMThuIGJsb2NrcyBmb3IgYSB2aWV3LlxuICovXG5mdW5jdGlvbiBwcm9wYWdhdGVJMThuQmxvY2tzRm9yVmlldyhcbiAgdmlldzogVmlld0NvbXBpbGF0aW9uVW5pdCxcbiAgaTE4bkJsb2NrOiBpci5JMThuU3RhcnRPcCB8IG51bGwsXG4gIGkxOG5QbGFjZWhvbGRlcjogaTE4bi5UYWdQbGFjZWhvbGRlciB8IGkxOG4uQmxvY2tQbGFjZWhvbGRlciB8IHVuZGVmaW5lZCxcbiAgc3ViVGVtcGxhdGVJbmRleDogbnVtYmVyLFxuKSB7XG4gIC8vIFdlIGZvdW5kIGFuIDxuZy10ZW1wbGF0ZT4gaW5zaWRlIGFuIGkxOG4gYmxvY2s7IGluY3JlbWVudCB0aGUgc3ViLXRlbXBsYXRlIGNvdW50ZXIgYW5kXG4gIC8vIHdyYXAgdGhlIHRlbXBsYXRlJ3MgdmlldyBpbiBhIGNoaWxkIGkxOG4gYmxvY2suXG4gIGlmIChpMThuUGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpMThuQmxvY2sgPT09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdFeHBlY3RlZCB0ZW1wbGF0ZSB3aXRoIGkxOG4gcGxhY2Vob2xkZXIgdG8gYmUgaW4gYW4gaTE4biBibG9jay4nKTtcbiAgICB9XG4gICAgc3ViVGVtcGxhdGVJbmRleCsrO1xuICAgIHdyYXBUZW1wbGF0ZVdpdGhJMThuKHZpZXcsIGkxOG5CbG9jayk7XG4gIH1cblxuICAvLyBDb250aW51ZSB0cmF2ZXJzaW5nIGluc2lkZSB0aGUgdGVtcGxhdGUncyB2aWV3LlxuICByZXR1cm4gcHJvcGFnYXRlSTE4bkJsb2Nrc1RvVGVtcGxhdGVzKHZpZXcsIHN1YlRlbXBsYXRlSW5kZXgpO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUgdmlldyB3aXRoIGkxOG4gc3RhcnQgYW5kIGVuZCBvcHMuXG4gKi9cbmZ1bmN0aW9uIHdyYXBUZW1wbGF0ZVdpdGhJMThuKHVuaXQ6IFZpZXdDb21waWxhdGlvblVuaXQsIHBhcmVudEkxOG46IGlyLkkxOG5TdGFydE9wKSB7XG4gIC8vIE9ubHkgYWRkIGkxOG4gb3BzIGlmIHRoZXkgaGF2ZSBub3QgYWxyZWFkeSBiZWVuIHByb3BhZ2F0ZWQgdG8gdGhpcyB0ZW1wbGF0ZS5cbiAgaWYgKHVuaXQuY3JlYXRlLmhlYWQubmV4dD8ua2luZCAhPT0gaXIuT3BLaW5kLkkxOG5TdGFydCkge1xuICAgIGNvbnN0IGlkID0gdW5pdC5qb2IuYWxsb2NhdGVYcmVmSWQoKTtcbiAgICBpci5PcExpc3QuaW5zZXJ0QWZ0ZXIoXG4gICAgICAvLyBOZXN0ZWQgbmctdGVtcGxhdGUgaTE4biBzdGFydC9lbmQgb3BzIHNob3VsZCBub3QgcmVjZWl2ZSBzb3VyY2Ugc3BhbnMuXG4gICAgICBpci5jcmVhdGVJMThuU3RhcnRPcChpZCwgcGFyZW50STE4bi5tZXNzYWdlLCBwYXJlbnRJMThuLnJvb3QsIG51bGwpLFxuICAgICAgdW5pdC5jcmVhdGUuaGVhZCxcbiAgICApO1xuICAgIGlyLk9wTGlzdC5pbnNlcnRCZWZvcmUoaXIuY3JlYXRlSTE4bkVuZE9wKGlkLCBudWxsKSwgdW5pdC5jcmVhdGUudGFpbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ import * as ir from '../../ir';
|
|
|
11
11
|
export function extractPureFunctions(job) {
|
|
12
12
|
for (const view of job.units) {
|
|
13
13
|
for (const op of view.ops()) {
|
|
14
|
-
ir.visitExpressionsInOp(op, expr => {
|
|
14
|
+
ir.visitExpressionsInOp(op, (expr) => {
|
|
15
15
|
if (!(expr instanceof ir.PureFunctionExpr) || expr.body === null) {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
@@ -43,7 +43,7 @@ class PureFunctionConstant extends GenericKeyFn {
|
|
|
43
43
|
}
|
|
44
44
|
// We will never visit `ir.PureFunctionParameterExpr`s that don't belong to us, because this
|
|
45
45
|
// transform runs inside another visitor which will visit nested pure functions before this one.
|
|
46
|
-
const returnExpr = ir.transformExpressionsInExpression(keyExpr, expr => {
|
|
46
|
+
const returnExpr = ir.transformExpressionsInExpression(keyExpr, (expr) => {
|
|
47
47
|
if (!(expr instanceof ir.PureFunctionParameterExpr)) {
|
|
48
48
|
return expr;
|
|
49
49
|
}
|
|
@@ -52,4 +52,4 @@ class PureFunctionConstant extends GenericKeyFn {
|
|
|
52
52
|
return new o.DeclareVarStmt(declName, new o.ArrowFunctionExpr(fnParams, returnExpr), undefined, o.StmtModifier.Final);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZV9mdW5jdGlvbl9leHRyYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL3NyYy9waGFzZXMvcHVyZV9mdW5jdGlvbl9leHRyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQTJCLE1BQU0sMkJBQTJCLENBQUM7QUFDakYsT0FBTyxLQUFLLENBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkvQixNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBbUI7SUFDdEQsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUM1QixFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNqRSxPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLG9CQUFxQixTQUFRLFlBQVk7SUFDN0MsWUFBb0IsT0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFFbkMsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFrQjtRQUMvQixJQUFJLElBQUksWUFBWSxFQUFFLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqRCxPQUFPLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELDJCQUEyQixDQUFDLFFBQWdCLEVBQUUsT0FBcUI7UUFDakUsTUFBTSxRQUFRLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCw0RkFBNEY7UUFDNUYsZ0dBQWdHO1FBQ2hHLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FDcEQsT0FBTyxFQUNQLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUNELEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzNCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FDekIsUUFBUSxFQUNSLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFDN0MsU0FBUyxFQUNULENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7R2VuZXJpY0tleUZuLCBTaGFyZWRDb25zdGFudERlZmluaXRpb259IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50X3Bvb2wnO1xuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi8uLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi8uLi9pcic7XG5cbmltcG9ydCB0eXBlIHtDb21waWxhdGlvbkpvYn0gZnJvbSAnLi4vY29tcGlsYXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFB1cmVGdW5jdGlvbnMoam9iOiBDb21waWxhdGlvbkpvYik6IHZvaWQge1xuICBmb3IgKGNvbnN0IHZpZXcgb2Ygam9iLnVuaXRzKSB7XG4gICAgZm9yIChjb25zdCBvcCBvZiB2aWV3Lm9wcygpKSB7XG4gICAgICBpci52aXNpdEV4cHJlc3Npb25zSW5PcChvcCwgKGV4cHIpID0+IHtcbiAgICAgICAgaWYgKCEoZXhwciBpbnN0YW5jZW9mIGlyLlB1cmVGdW5jdGlvbkV4cHIpIHx8IGV4cHIuYm9keSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnN0YW50RGVmID0gbmV3IFB1cmVGdW5jdGlvbkNvbnN0YW50KGV4cHIuYXJncy5sZW5ndGgpO1xuICAgICAgICBleHByLmZuID0gam9iLnBvb2wuZ2V0U2hhcmVkQ29uc3RhbnQoY29uc3RhbnREZWYsIGV4cHIuYm9keSk7XG4gICAgICAgIGV4cHIuYm9keSA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgUHVyZUZ1bmN0aW9uQ29uc3RhbnQgZXh0ZW5kcyBHZW5lcmljS2V5Rm4gaW1wbGVtZW50cyBTaGFyZWRDb25zdGFudERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG51bUFyZ3M6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBrZXlPZihleHByOiBvLkV4cHJlc3Npb24pOiBzdHJpbmcge1xuICAgIGlmIChleHByIGluc3RhbmNlb2YgaXIuUHVyZUZ1bmN0aW9uUGFyYW1ldGVyRXhwcikge1xuICAgICAgcmV0dXJuIGBwYXJhbSgke2V4cHIuaW5kZXh9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlPZihleHByKTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBVc2UgdGhlIG5ldyBwb29sIG1ldGhvZCBgZ2V0U2hhcmVkRnVuY3Rpb25SZWZlcmVuY2VgXG4gIHRvU2hhcmVkQ29uc3RhbnREZWNsYXJhdGlvbihkZWNsTmFtZTogc3RyaW5nLCBrZXlFeHByOiBvLkV4cHJlc3Npb24pOiBvLlN0YXRlbWVudCB7XG4gICAgY29uc3QgZm5QYXJhbXM6IG8uRm5QYXJhbVtdID0gW107XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5udW1BcmdzOyBpZHgrKykge1xuICAgICAgZm5QYXJhbXMucHVzaChuZXcgby5GblBhcmFtKCdhJyArIGlkeCkpO1xuICAgIH1cblxuICAgIC8vIFdlIHdpbGwgbmV2ZXIgdmlzaXQgYGlyLlB1cmVGdW5jdGlvblBhcmFtZXRlckV4cHJgcyB0aGF0IGRvbid0IGJlbG9uZyB0byB1cywgYmVjYXVzZSB0aGlzXG4gICAgLy8gdHJhbnNmb3JtIHJ1bnMgaW5zaWRlIGFub3RoZXIgdmlzaXRvciB3aGljaCB3aWxsIHZpc2l0IG5lc3RlZCBwdXJlIGZ1bmN0aW9ucyBiZWZvcmUgdGhpcyBvbmUuXG4gICAgY29uc3QgcmV0dXJuRXhwciA9IGlyLnRyYW5zZm9ybUV4cHJlc3Npb25zSW5FeHByZXNzaW9uKFxuICAgICAga2V5RXhwcixcbiAgICAgIChleHByKSA9PiB7XG4gICAgICAgIGlmICghKGV4cHIgaW5zdGFuY2VvZiBpci5QdXJlRnVuY3Rpb25QYXJhbWV0ZXJFeHByKSkge1xuICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG8udmFyaWFibGUoJ2EnICsgZXhwci5pbmRleCk7XG4gICAgICB9LFxuICAgICAgaXIuVmlzaXRvckNvbnRleHRGbGFnLk5vbmUsXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgby5EZWNsYXJlVmFyU3RtdChcbiAgICAgIGRlY2xOYW1lLFxuICAgICAgbmV3IG8uQXJyb3dGdW5jdGlvbkV4cHIoZm5QYXJhbXMsIHJldHVybkV4cHIpLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgby5TdG10TW9kaWZpZXIuRmluYWwsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -55,4 +55,4 @@ function transformLiteralMap(expr) {
|
|
|
55
55
|
}
|
|
56
56
|
return new ir.PureFunctionExpr(o.literalMap(derivedEntries), nonConstantArgs);
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZV9saXRlcmFsX3N0cnVjdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3BoYXNlcy9wdXJlX2xpdGVyYWxfc3RydWN0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEtBQUssQ0FBQyxNQUFNLCtCQUErQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9CLE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxHQUFtQjtJQUMvRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixFQUFFLENBQUMsd0JBQXdCLENBQ3pCLEVBQUUsRUFDRixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDbkQsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFFRCxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdkMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsQ0FBQztxQkFBTSxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzVDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLEVBQ0QsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDM0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsSUFBd0I7SUFDckQsTUFBTSxjQUFjLEdBQW1CLEVBQUUsQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBbUIsRUFBRSxDQUFDO0lBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdkIsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDbkMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBc0I7SUFDakQsSUFBSSxjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUM3QyxNQUFNLGVBQWUsR0FBbUIsRUFBRSxDQUFDO0lBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQzdCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FDdEYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi8uLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi8uLi9pcic7XG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Kb2J9IGZyb20gJy4uL2NvbXBpbGF0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUHVyZUxpdGVyYWxTdHJ1Y3R1cmVzKGpvYjogQ29tcGlsYXRpb25Kb2IpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC51cGRhdGUpIHtcbiAgICAgIGlyLnRyYW5zZm9ybUV4cHJlc3Npb25zSW5PcChcbiAgICAgICAgb3AsXG4gICAgICAgIChleHByLCBmbGFncykgPT4ge1xuICAgICAgICAgIGlmIChmbGFncyAmIGlyLlZpc2l0b3JDb250ZXh0RmxhZy5JbkNoaWxkT3BlcmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXhwciBpbnN0YW5jZW9mIG8uTGl0ZXJhbEFycmF5RXhwcikge1xuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybUxpdGVyYWxBcnJheShleHByKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV4cHIgaW5zdGFuY2VvZiBvLkxpdGVyYWxNYXBFeHByKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtTGl0ZXJhbE1hcChleHByKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZXhwcjtcbiAgICAgICAgfSxcbiAgICAgICAgaXIuVmlzaXRvckNvbnRleHRGbGFnLk5vbmUsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1MaXRlcmFsQXJyYXkoZXhwcjogby5MaXRlcmFsQXJyYXlFeHByKTogby5FeHByZXNzaW9uIHtcbiAgY29uc3QgZGVyaXZlZEVudHJpZXM6IG8uRXhwcmVzc2lvbltdID0gW107XG4gIGNvbnN0IG5vbkNvbnN0YW50QXJnczogby5FeHByZXNzaW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBleHByLmVudHJpZXMpIHtcbiAgICBpZiAoZW50cnkuaXNDb25zdGFudCgpKSB7XG4gICAgICBkZXJpdmVkRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaWR4ID0gbm9uQ29uc3RhbnRBcmdzLmxlbmd0aDtcbiAgICAgIG5vbkNvbnN0YW50QXJncy5wdXNoKGVudHJ5KTtcbiAgICAgIGRlcml2ZWRFbnRyaWVzLnB1c2gobmV3IGlyLlB1cmVGdW5jdGlvblBhcmFtZXRlckV4cHIoaWR4KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgaXIuUHVyZUZ1bmN0aW9uRXhwcihvLmxpdGVyYWxBcnIoZGVyaXZlZEVudHJpZXMpLCBub25Db25zdGFudEFyZ3MpO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1MaXRlcmFsTWFwKGV4cHI6IG8uTGl0ZXJhbE1hcEV4cHIpOiBvLkV4cHJlc3Npb24ge1xuICBsZXQgZGVyaXZlZEVudHJpZXM6IG8uTGl0ZXJhbE1hcEVudHJ5W10gPSBbXTtcbiAgY29uc3Qgbm9uQ29uc3RhbnRBcmdzOiBvLkV4cHJlc3Npb25bXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGV4cHIuZW50cmllcykge1xuICAgIGlmIChlbnRyeS52YWx1ZS5pc0NvbnN0YW50KCkpIHtcbiAgICAgIGRlcml2ZWRFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZHggPSBub25Db25zdGFudEFyZ3MubGVuZ3RoO1xuICAgICAgbm9uQ29uc3RhbnRBcmdzLnB1c2goZW50cnkudmFsdWUpO1xuICAgICAgZGVyaXZlZEVudHJpZXMucHVzaChcbiAgICAgICAgbmV3IG8uTGl0ZXJhbE1hcEVudHJ5KGVudHJ5LmtleSwgbmV3IGlyLlB1cmVGdW5jdGlvblBhcmFtZXRlckV4cHIoaWR4KSwgZW50cnkucXVvdGVkKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgaXIuUHVyZUZ1bmN0aW9uRXhwcihvLmxpdGVyYWxNYXAoZGVyaXZlZEVudHJpZXMpLCBub25Db25zdGFudEFyZ3MpO1xufVxuIl19
|