Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

regexp-parser-event

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

regexp-parser-event - npm Package Compare versions

Comparing version 1.1.4 to 1.1.5

36

index.d.ts
/// <reference types="node" />
import { AST } from "regexpp2";
import regexpp = require('regexpp2');
import EventEmitter = require('events');
import * as regexpp from 'regexpp2';
import EventEmitter from 'events';
import { ITSPartialRecord, ITSOverwrite } from 'ts-type';
import { INodePlus, IAstToStringOptions } from 'regexp-parser-literal';

@@ -19,3 +20,3 @@ import { AppendableNode } from 'regexpp2/src/parser';

export declare const ParserEventEmitterEventList: ParserEventEmitterEvent[];
export declare type INodeInput = AST.Element | AST.CharacterClassElement | AppendableNode;
export declare type INodeInput = AST.Element | AST.CharacterClassElement | AppendableNode | AST.CharacterSet;
export declare class ParserEventEmitter extends EventEmitter {

@@ -36,2 +37,3 @@ astRegExpLiteral: AST.RegExpLiteral & INodePlus;

on<E extends ParserEventEmitterEvent.other>(eventName: E, listener: IParserEventEmitterListener<AST.CharacterClassElement, E>): this;
on<E extends ParserEventEmitterEvent.uniset>(eventName: E, listener: IParserEventEmitterListener<AST.CharacterSet, E>): this;
on<E extends ParserEventEmitterEvent>(eventName: ParserEventEmitterEvent, listener: IParserEventEmitterListener<AST.Element, E>): this;

@@ -56,2 +58,30 @@ protected _change<T extends AST.Node>(ast: T & INodePlus, isFirst?: boolean): void;

}
export interface IParserEventEmitterListenerMap<T extends INodeInput = INodeInput> extends ITSOverwrite<ITSPartialRecord<ParserEventEmitterEvent, IParserEventEmitterListener<any, ParserEventEmitterEvent>>, {
/**
* 一般性 文字 節點
*/
[ParserEventEmitterEvent.default]?: IParserEventEmitterListener<AST.Character, ParserEventEmitterEvent.default>;
/**
* /[xxx]/ 這類
*/
[ParserEventEmitterEvent.class]?: IParserEventEmitterListener<AST.CharacterClass, ParserEventEmitterEvent.class>;
/**
* /[xxx]/ 之中的 xxx
*/
[ParserEventEmitterEvent.class_default]?: IParserEventEmitterListener<AST.Character, ParserEventEmitterEvent.class_default>;
/**
* /[0-9]/ 之中的 0-9
*/
[ParserEventEmitterEvent.class_range]?: IParserEventEmitterListener<AST.CharacterClassRange, ParserEventEmitterEvent.class_range>;
/**
* /[\p{xxxx}]/ 之中的 \p{xxxx}
*/
[ParserEventEmitterEvent.class_uniset]?: IParserEventEmitterListener<AST.CharacterSet, ParserEventEmitterEvent.class_uniset>;
[ParserEventEmitterEvent.other]?: IParserEventEmitterListener<AST.CharacterClassElement, ParserEventEmitterEvent.other>;
/**
* \p{xxxx}
*/
[ParserEventEmitterEvent.uniset]?: IParserEventEmitterListener<AST.CharacterSet, ParserEventEmitterEvent.uniset>;
}> {
}
export interface IParserEventEmitterListener<T extends INodeInput, E extends keyof typeof ParserEventEmitterEvent> {

@@ -58,0 +88,0 @@ (inputAst: T & INodePlus, eventName: E, emitter: ParserEventEmitter, ...argv: unknown[]): any;

9

index.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const EventEmitter = require("events");
const events_1 = __importDefault(require("events"));
const array_hyper_unique_1 = require("array-hyper-unique");

@@ -20,3 +23,3 @@ const regexp_parser_literal_1 = require("regexp-parser-literal");

exports.ParserEventEmitterEventList = Object.freeze(array_hyper_unique_1.array_unique(Object.values(ParserEventEmitterEvent)));
class ParserEventEmitter extends EventEmitter {
class ParserEventEmitter extends events_1.default {
constructor(inputAst, flags = '') {

@@ -233,2 +236,2 @@ super();

exports.default = ParserEventEmitter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHVDQUF3QztBQUN4QywyREFBa0Q7QUFFbEQsaUVBTytCO0FBSS9CLElBQWtCLHVCQWdCakI7QUFoQkQsV0FBa0IsdUJBQXVCO0lBRXhDLDhDQUFtQixDQUFBO0lBQ25CLDBDQUFlLENBQUE7SUFFZiwwQ0FBZSxDQUFBO0lBRWYsNENBQWlCLENBQUE7SUFFakIsMERBQStCLENBQUE7SUFDL0Isc0RBQTJCLENBQUE7SUFDM0Isc0RBQTJCLENBQUE7SUFFM0Isd0RBQTZCLENBQUE7SUFFN0IsNENBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQWhCaUIsdUJBQXVCLEdBQXZCLCtCQUF1QixLQUF2QiwrQkFBdUIsUUFnQnhDO0FBRUQsYUFBYTtBQUNBLFFBQUEsMkJBQTJCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQ0FBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUE4QixDQUFDO0FBSTVJLE1BQWEsa0JBQW1CLFNBQVEsWUFBWTtJQUluRCxZQUFZLFFBQWtFLEVBQUUsUUFBNEIsRUFBRTtRQUU3RyxLQUFLLEVBQUUsQ0FBQztRQUpULHFCQUFnQixHQUFrQyxJQUFJLENBQUM7UUFNdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksT0FBTyxRQUFRLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksU0FBUyxFQUM3RDtZQUNDLFFBQVEsR0FBRyxrREFBMEIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBNkIsQ0FBQztRQUV0RCxJQUFJLENBQUMsRUFBRSx3QkFBaUMsVUFBVSxHQUFHO1lBRXBELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUwseURBQXlEO1FBQ3pELGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsT0FBTztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWtFLEVBQUUsUUFBNEIsRUFBRTtRQUUvRyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTTtRQUVMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQjs7Ozs7VUFLRTtRQUVGLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFFNUMsYUFBYTtRQUNiLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUVyRCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtZQUUzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUF1QixRQUF1QixFQUFFLEdBQUcsSUFBSTtRQUVoRSxPQUFPLElBQUksQ0FBQyxJQUFJLHdCQUFpQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsSUFBSSxDQUF1QixTQUFrQyxFQUM1RCxRQUF1QixFQUN2QixHQUFHLElBQUk7UUFHUCxPQUFRLEtBQUssQ0FBQyxJQUFxRSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BJLENBQUM7SUFvQkQsRUFBRSxDQUFDLFNBQWtDLEVBQUUsUUFBbUU7UUFFekcsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRVMsT0FBTyxDQUFxQixHQUFrQixFQUFFLE9BQWlCO1FBRTFFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVuQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQ2Q7WUFDQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUN4QjtJQUNGLENBQUM7SUFFUyxXQUFXLENBQXVCLFFBQXVCLEVBQ2xFLFNBQTZCLEVBQzdCLE1BQU8sRUFDUCxjQUFzQixFQUFFO1FBR3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLFdBQW9CLENBQUM7UUFDekIsSUFBSSxZQUFtQixDQUFDO1FBQ3hCLElBQUksVUFBVSxHQUFXLEVBQUUsQ0FBQztRQUM1QixJQUFJLEtBQThFLENBQUM7UUFFbkYsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUNyQjtZQUNDLEtBQUssV0FBVztnQkFDZixLQUFLLEdBQUcsV0FBVywwQkFBa0MsQ0FBQztnQkFFdEQsTUFBTTtZQUNQLEtBQUssZ0JBQWdCO2dCQUNwQixLQUFLLHNCQUFnQyxDQUFDO2dCQUV0QyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixVQUFVLEdBQUcsUUFBUSxDQUFDO2dCQUV0QixNQUFNO1lBQ1AsS0FBSyxxQkFBcUI7Z0JBQ3pCLEtBQUssa0NBQXNDLENBQUM7Z0JBRTVDLE1BQU07WUFFUCxLQUFLLGNBQWM7Z0JBQ2xCLEtBQUssR0FBRyxXQUFXLHdCQUFpQyxDQUFDO2dCQUVyRCxNQUFNO1lBRVAsS0FBSyxZQUFZO2dCQUVoQixXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixhQUFhO2dCQUNiLFlBQVksR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFbEMsTUFBTTtZQUVQLEtBQUssZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFdBQVc7Z0JBQ2YsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDbkIsTUFBTTtZQUVQLGFBQWE7WUFDYixLQUFLLGFBQWE7Z0JBRWpCLGFBQWE7Z0JBQ1osUUFBNEIsQ0FBQyxRQUFRO3FCQUNwQyxPQUFPLENBQUMsVUFBVSxLQUFLO29CQUV2QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLENBQUMsQ0FBQztnQkFDSixDQUFDO2dCQUVELE1BQU07WUFFUCxhQUFhO1lBQ2IsS0FBSyxhQUFhO2dCQUVqQixhQUFhO2dCQUNaLFFBQTRCLENBQUMsWUFBWTtxQkFDeEMsT0FBTyxDQUFDLFVBQVUsS0FBSztvQkFFdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7d0JBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3pELENBQUMsQ0FBQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNGO2dCQUVELE1BQU07WUFFUDtnQkFFQyxJQUFJLFdBQVcsS0FBSyxRQUFRLEVBQzVCO29CQUNDLEtBQUssa0NBQXNDLENBQUM7aUJBQzVDO3FCQUVEO29CQUNDLEtBQUssR0FBRyxXQUFXLHNCQUFnQyxDQUFDO2lCQUNwRDtnQkFFRCxNQUFNO1NBQ1A7UUFFRCxJQUFJLEtBQUssRUFDVDtZQUNDLGFBQWE7WUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsSUFBSSxXQUFXLElBQUksT0FBTyxZQUFZLElBQUksV0FBVyxFQUNyRDtZQUNDLGFBQWE7WUFDYixZQUFZLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUVqQyxJQUFJLE9BQU8sWUFBWSxJQUFJLFdBQVcsRUFDdEM7Z0JBQ0MsYUFBYTtnQkFDYixZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQzthQUNyQztTQUNEO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCO1lBQ0MsNEVBQTRFO1NBQzVFO2FBRUQ7WUFDQyxrRUFBa0U7U0FDbEU7UUFFRCxhQUFhO1FBQ2IsSUFBSSxXQUFXLElBQUksWUFBWSxFQUMvQjtZQUNDLGFBQWE7WUFDYixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtnQkFFbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFtQixFQUFFLE9BQTZCO1FBRTNELE9BQU8sbUNBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBRWpELEdBQUcsT0FBTztZQUVWLGFBQWE7WUFDYixZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTztTQUNwRSxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQW1CLEVBQUUsT0FBNkI7UUFFMUQsT0FBTyxtQ0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFFL0MsR0FBRyxPQUFPO1lBRVYsYUFBYTtZQUNiLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPO1NBQ2xFLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO0lBQ2IsSUFBSSxNQUFNO1FBRVQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7SUFDYixJQUFJLE1BQU0sQ0FBQyxPQUFxQztRQUUvQyxPQUFPLEdBQUcsT0FBTyxPQUFPLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxvQ0FBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFNUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELGFBQWE7SUFDYixJQUFJLEtBQUs7UUFFUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtJQUNiLElBQUksS0FBSyxDQUFDLEtBQXlCO1FBRWxDLEtBQUssR0FBRyxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUU3RCxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVwQyxhQUFhO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksT0FBTztRQUVWLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU87WUFDcEMsYUFBYTtlQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTztlQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0YsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQWE7UUFFeEIsYUFBYTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlFLENBQUM7SUFFRCxRQUFRLENBQUMsU0FBbUIsRUFBRSxPQUE2QjtRQUUxRCxPQUFPLG1DQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBRXpDLEdBQUcsT0FBTztZQUVWLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87U0FDM0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBbUIsY0FBNkIsTUFBTTtRQUU3RCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksU0FBUztRQUVaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFFWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztDQUVEO0FBeFZELGdEQXdWQztBQVlELGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVNUIH0gZnJvbSBcInJlZ2V4cHAyXCI7XG5pbXBvcnQgcmVnZXhwcCA9IHJlcXVpcmUoJ3JlZ2V4cHAyJyk7XG5pbXBvcnQgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRzJyk7XG5pbXBvcnQgeyBhcnJheV91bmlxdWUgfSBmcm9tICdhcnJheS1oeXBlci11bmlxdWUnO1xuXG5pbXBvcnQgUGFyc2VyLCB7XG5cdGFzdFRvU3RyaW5nLFxuXHRmYWtlUGF0dGVyblRvUmVnRXhwTGl0ZXJhbCxcblx0cGFyc2VGbGFncyxcblx0cGFyc2VQYXR0ZXJuLFxuXHRJTm9kZVBsdXMsXG5cdElBc3RUb1N0cmluZ09wdGlvbnMsXG59IGZyb20gJ3JlZ2V4cC1wYXJzZXItbGl0ZXJhbCc7XG5cbmltcG9ydCB7IEFwcGVuZGFibGVOb2RlIH0gZnJvbSAncmVnZXhwcDIvc3JjL3BhcnNlcic7XG5cbmV4cG9ydCBjb25zdCBlbnVtIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50XG57XG5cdGRlZmF1bHQgPSAnZGVmYXVsdCcsXG5cdGNsYXNzID0gJ2NsYXNzJyxcblxuXHRvdGhlciA9ICdvdGhlcicsXG5cblx0dW5pc2V0ID0gJ3VuaXNldCcsXG5cblx0Y2xhc3NfZGVmYXVsdCA9ICdjbGFzc19kZWZhdWx0Jyxcblx0Y2xhc3NfcmFuZ2UgPSAnY2xhc3NfcmFuZ2UnLFxuXHRjbGFzc19vdGhlciA9ICdjbGFzc19vdGhlcicsXG5cblx0Y2xhc3NfdW5pc2V0ID0gJ2NsYXNzX3VuaXNldCcsXG5cblx0Y2hhbmdlID0gJ2NoYW5nZScsXG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudExpc3QgPSBPYmplY3QuZnJlZXplKGFycmF5X3VuaXF1ZShPYmplY3QudmFsdWVzKFBhcnNlckV2ZW50RW1pdHRlckV2ZW50KSkpIGFzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50W107XG5cbmV4cG9ydCB0eXBlIElOb2RlSW5wdXQgPSBBU1QuRWxlbWVudCB8IEFTVC5DaGFyYWN0ZXJDbGFzc0VsZW1lbnQgfCBBcHBlbmRhYmxlTm9kZTtcblxuZXhwb3J0IGNsYXNzIFBhcnNlckV2ZW50RW1pdHRlciBleHRlbmRzIEV2ZW50RW1pdHRlclxue1xuXHRhc3RSZWdFeHBMaXRlcmFsOiBBU1QuUmVnRXhwTGl0ZXJhbCAmIElOb2RlUGx1cyA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IoaW5wdXRBc3Q6IHJlZ2V4cHAuQVNULlBhdHRlcm4gfCByZWdleHBwLkFTVC5SZWdFeHBMaXRlcmFsIHwgc3RyaW5nLCBmbGFnczogc3RyaW5nIHwgQVNULkZsYWdzID0gJycpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0XHRpZiAodHlwZW9mIGlucHV0QXN0ID09ICdzdHJpbmcnIHx8IGlucHV0QXN0LnR5cGUgPT0gJ1BhdHRlcm4nKVxuXHRcdHtcblx0XHRcdGlucHV0QXN0ID0gZmFrZVBhdHRlcm5Ub1JlZ0V4cExpdGVyYWwoaW5wdXRBc3QsIGZsYWdzKTtcblx0XHR9XG5cblx0XHR0aGlzLmFzdFJlZ0V4cExpdGVyYWwgPSBpbnB1dEFzdCBhcyBBU1QuUmVnRXhwTGl0ZXJhbDtcblxuXHRcdHRoaXMub24oUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2hhbmdlLCBmdW5jdGlvbiAoYXN0KVxuXHRcdHtcblx0XHRcdHNlbGYuX2NoYW5nZShhc3QsIHRydWUpO1xuXHRcdFx0c2VsZi5jaGFuZ2VkID0gdHJ1ZTtcblx0XHR9KTtcblxuLy9cdFx0Y29uc29sZS5kaXIodGhpcy5hc3RSZWdFeHBMaXRlcmFsLnBhdHRlcm4uZWxlbWVudHMsIHtcbi8vXHRcdFx0Y29sb3JzOiB0cnVlLFxuLy9cdFx0XHRkZXB0aDogMyxcbi8vXHRcdH0pO1xuXHR9XG5cblx0c3RhdGljIGNyZWF0ZShpbnB1dEFzdDogcmVnZXhwcC5BU1QuUGF0dGVybiB8IHJlZ2V4cHAuQVNULlJlZ0V4cExpdGVyYWwgfCBzdHJpbmcsIGZsYWdzOiBzdHJpbmcgfCBBU1QuRmxhZ3MgPSAnJylcblx0e1xuXHRcdHJldHVybiBuZXcgdGhpcyhpbnB1dEFzdCwgZmxhZ3MpO1xuXHR9XG5cblx0cmVzdW1lKClcblx0e1xuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdFx0Lypcblx0XHQwICYmIGNvbnNvbGUuZGlyKHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLCB7XG5cdFx0XHRkZXB0aDogbnVsbCxcblx0XHRcdGNvbG9yczogdHJ1ZSxcblx0XHR9KTtcblx0XHQqL1xuXG5cdFx0bGV0IHBhdHRlcm4gPSB0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybjtcblxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRsZXQgZWxlbXMgPSBwYXR0ZXJuLmFsdGVybmF0aXZlcyB8fCBwYXR0ZXJuLmVsZW1lbnRzO1xuXG5cdFx0ZWxlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSlcblx0XHR7XG5cdFx0XHRzZWxmLl9sb29rdXBfc3ViKGl0ZW0sIHNlbGYpO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogc2FtZSBhcyB0aGlzLmVtaXQoUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2hhbmdlLCBhc3QpXG5cdCAqL1xuXHRlbWl0Q2hhbmdlPFQgZXh0ZW5kcyBJTm9kZUlucHV0PihpbnB1dEFzdDogVCAmIElOb2RlUGx1cywgLi4uYXJncylcblx0e1xuXHRcdHJldHVybiB0aGlzLmVtaXQoUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2hhbmdlLCBpbnB1dEFzdCwgLi4uYXJncylcblx0fVxuXG5cdGVtaXQ8VCBleHRlbmRzIElOb2RlSW5wdXQ+KGV2ZW50TmFtZTogUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQsXG5cdFx0aW5wdXRBc3Q6IFQgJiBJTm9kZVBsdXMsXG5cdFx0Li4uYXJnc1xuXHQpOiBib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gKHN1cGVyLmVtaXQgYXMgSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyU3VwZXI8VCwgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQ+KShldmVudE5hbWUsIGlucHV0QXN0LCBldmVudE5hbWUsIHRoaXMsIC4uLmFyZ3MpO1xuXHR9XG5cblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmRlZmF1bHQ+KGV2ZW50TmFtZTogRSxcblx0XHRsaXN0ZW5lcjogSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPEFTVC5DaGFyYWN0ZXIsIEU+LFxuXHQpOiB0aGlzXG5cdG9uPEUgZXh0ZW5kcyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzcz4oZXZlbnROYW1lOiBFLFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzLCBFPixcblx0KTogdGhpc1xuXHRvbjxFIGV4dGVuZHMgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3NfZGVmYXVsdD4oZXZlbnROYW1lOiBFLFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlciwgRT4sXG5cdCk6IHRoaXNcblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX3JhbmdlPihldmVudE5hbWU6IEUsXG5cdFx0bGlzdGVuZXI6IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuQ2hhcmFjdGVyQ2xhc3NSYW5nZSwgRT4sXG5cdCk6IHRoaXNcblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50Lm90aGVyPihldmVudE5hbWU6IEUsXG5cdFx0bGlzdGVuZXI6IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuQ2hhcmFjdGVyQ2xhc3NFbGVtZW50LCBFPixcblx0KTogdGhpc1xuXHRvbjxFIGV4dGVuZHMgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQ+KGV2ZW50TmFtZTogUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQsXG5cdFx0bGlzdGVuZXI6IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuRWxlbWVudCwgRT4sXG5cdCk6IHRoaXNcblx0b24oZXZlbnROYW1lOiBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudCwgbGlzdGVuZXI6IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxhbnksIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50Pik6IHRoaXNcblx0e1xuXHRcdHJldHVybiBzdXBlci5vbihldmVudE5hbWUsIGxpc3RlbmVyKTtcblx0fVxuXG5cdHByb3RlY3RlZCBfY2hhbmdlPFQgZXh0ZW5kcyBBU1QuTm9kZT4oYXN0OiBUICYgSU5vZGVQbHVzLCBpc0ZpcnN0PzogYm9vbGVhbilcblx0e1xuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdFx0YXN0LmNoYW5nZWQgPSB0cnVlO1xuXG5cdFx0aWYgKGFzdC5wYXJlbnQpXG5cdFx0e1xuXHRcdFx0dGhpcy5fY2hhbmdlKGFzdC5wYXJlbnQpXG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9sb29rdXBfc3ViPFQgZXh0ZW5kcyBJTm9kZUlucHV0PihpbnB1dEFzdDogVCAmIElOb2RlUGx1cyxcblx0XHRteUVtaXR0ZXI6IFBhcnNlckV2ZW50RW1pdHRlcixcblx0XHRwYXJlbnQ/LFxuXHRcdGV2ZW50UHJlZml4OiBzdHJpbmcgPSAnJyxcblx0KVxuXHR7XG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0XHRsZXQgZG9fZWxlbWVudHM6IGJvb2xlYW47XG5cdFx0bGV0IHN1Yl9lbGVtZW50czogYW55W107XG5cdFx0bGV0IHN1Yl9wcmVmaXg6IHN0cmluZyA9ICcnO1xuXHRcdGxldCBldmVudDogc3RyaW5nIHwga2V5b2YgdHlwZW9mIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50IHwgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQ7XG5cblx0XHRzd2l0Y2ggKGlucHV0QXN0LnR5cGUpXG5cdFx0e1xuXHRcdFx0Y2FzZSAnQ2hhcmFjdGVyJzpcblx0XHRcdFx0ZXZlbnQgPSBldmVudFByZWZpeCArIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmRlZmF1bHQ7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdDaGFyYWN0ZXJDbGFzcyc6XG5cdFx0XHRcdGV2ZW50ID0gUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3M7XG5cblx0XHRcdFx0ZG9fZWxlbWVudHMgPSB0cnVlO1xuXHRcdFx0XHRzdWJfcHJlZml4ID0gJ2NsYXNzXyc7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdDaGFyYWN0ZXJDbGFzc1JhbmdlJzpcblx0XHRcdFx0ZXZlbnQgPSBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzc19yYW5nZTtcblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSAnQ2hhcmFjdGVyU2V0Jzpcblx0XHRcdFx0ZXZlbnQgPSBldmVudFByZWZpeCArIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LnVuaXNldDtcblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSAnUXVhbnRpZmllcic6XG5cblx0XHRcdFx0ZG9fZWxlbWVudHMgPSB0cnVlO1xuXHRcdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRcdHN1Yl9lbGVtZW50cyA9IFtpbnB1dEFzdC5lbGVtZW50XTtcblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSAnQ2FwdHVyaW5nR3JvdXAnOlxuXHRcdFx0Y2FzZSAnR3JvdXAnOlxuXHRcdFx0Y2FzZSAnQXNzZXJ0aW9uJzpcblx0XHRcdFx0ZG9fZWxlbWVudHMgPSB0cnVlO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0Y2FzZSAnQWx0ZXJuYXRpdmUnOlxuXG5cdFx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdFx0KGlucHV0QXN0IGFzIEFTVC5BbHRlcm5hdGl2ZSkuZWxlbWVudHNcblx0XHRcdFx0XHQuZm9yRWFjaChmdW5jdGlvbiAoaXRlbXMpXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0c2VsZi5fbG9va3VwX3N1YihpdGVtcywgbXlFbWl0dGVyLCBpbnB1dEFzdCwgc3ViX3ByZWZpeCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdDtcblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0Y2FzZSAnRGlzanVuY3Rpb24nOlxuXG5cdFx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdFx0KGlucHV0QXN0IGFzIEFTVC5EaXNqdW5jdGlvbikuYWx0ZXJuYXRpdmVzXG5cdFx0XHRcdFx0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW1zKVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHNlbGYuX2xvb2t1cF9zdWIoaXRlbSwgbXlFbWl0dGVyLCBpbnB1dEFzdCwgc3ViX3ByZWZpeCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQ7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGRlZmF1bHQ6XG5cblx0XHRcdFx0aWYgKGV2ZW50UHJlZml4ID09PSAnY2xhc3NfJylcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGV2ZW50ID0gUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3Nfb3RoZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZXZlbnQgPSBldmVudFByZWZpeCArIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50Lm90aGVyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0aWYgKGV2ZW50KVxuXHRcdHtcblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdG15RW1pdHRlci5lbWl0KFBhcnNlckV2ZW50RW1pdHRlckV2ZW50W2V2ZW50XSwgaW5wdXRBc3QpO1xuXHRcdH1cblxuXHRcdGlmIChkb19lbGVtZW50cyAmJiB0eXBlb2Ygc3ViX2VsZW1lbnRzID09ICd1bmRlZmluZWQnKVxuXHRcdHtcblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdHN1Yl9lbGVtZW50cyA9IGlucHV0QXN0LmVsZW1lbnRzO1xuXG5cdFx0XHRpZiAodHlwZW9mIHN1Yl9lbGVtZW50cyA9PSAndW5kZWZpbmVkJylcblx0XHRcdHtcblx0XHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0XHRzdWJfZWxlbWVudHMgPSBpbnB1dEFzdC5hbHRlcm5hdGl2ZXM7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCFpbnB1dEFzdC50eXBlKVxuXHRcdHtcblx0XHRcdC8vY29uc29sZS5sb2coaW5wdXRBc3QudHlwZSwgc3ViX2VsZW1lbnRzICYmIHN1Yl9lbGVtZW50cy5sZW5ndGgsIGlucHV0QXN0KTtcblx0XHR9XG5cdFx0ZWxzZVxuXHRcdHtcblx0XHRcdC8vY29uc29sZS5sb2coaW5wdXRBc3QudHlwZSwgc3ViX2VsZW1lbnRzICYmIHN1Yl9lbGVtZW50cy5sZW5ndGgpO1xuXHRcdH1cblxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRpZiAoZG9fZWxlbWVudHMgJiYgc3ViX2VsZW1lbnRzKVxuXHRcdHtcblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdHN1Yl9lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKVxuXHRcdFx0e1xuXHRcdFx0XHRzZWxmLl9sb29rdXBfc3ViKGl0ZW0sIG15RW1pdHRlciwgaW5wdXRBc3QsIHN1Yl9wcmVmaXgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0U291cmNlKG92ZXJ3cml0ZT86IGJvb2xlYW4sIG9wdGlvbnM/OiBJQXN0VG9TdHJpbmdPcHRpb25zKTogc3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gYXN0VG9TdHJpbmcodGhpcy5hc3RSZWdFeHBMaXRlcmFsLnBhdHRlcm4sIHtcblxuXHRcdFx0Li4ub3B0aW9ucyxcblxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0ZGVidWdDaGFuZ2VkOiBvdmVyd3JpdGUgPyA5OSA6IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLmNoYW5nZWQsXG5cdFx0fSk7XG5cdH1cblxuXHRnZXRGbGFncyhvdmVyd3JpdGU/OiBib29sZWFuLCBvcHRpb25zPzogSUFzdFRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIGFzdFRvU3RyaW5nKHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5mbGFncywge1xuXG5cdFx0XHQuLi5vcHRpb25zLFxuXG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRkZWJ1Z0NoYW5nZWQ6IG92ZXJ3cml0ZSA/IDk5IDogdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmZsYWdzLmNoYW5nZWQsXG5cdFx0fSk7XG5cdH1cblxuXHQvLyBAdHMtaWdub3JlXG5cdGdldCBzb3VyY2UoKTogc3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5nZXRTb3VyY2UoKTtcblx0fVxuXG5cdC8vIEB0cy1pZ25vcmVcblx0c2V0IHNvdXJjZShwYXR0ZXJuOiByZWdleHBwLkFTVC5QYXR0ZXJuIHwgc3RyaW5nKVxuXHR7XG5cdFx0cGF0dGVybiA9IHR5cGVvZiBwYXR0ZXJuID09ICdzdHJpbmcnID8gcGFyc2VQYXR0ZXJuKHBhdHRlcm4sIHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5mbGFncy51bmljb2RlKSA6IHBhdHRlcm47XG5cblx0XHRwYXR0ZXJuLnBhcmVudCA9IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbDtcblxuXHRcdHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuID0gcGF0dGVybjtcblxuXHRcdHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuXHR9XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRnZXQgZmxhZ3MoKTogc3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5nZXRGbGFncygpO1xuXHR9XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRzZXQgZmxhZ3MoZmxhZ3M6IHN0cmluZyB8IEFTVC5GbGFncylcblx0e1xuXHRcdGZsYWdzID0gdHlwZW9mIGZsYWdzID09ICdzdHJpbmcnID8gcGFyc2VGbGFncyhmbGFncykgOiBmbGFncztcblxuXHRcdGZsYWdzLnBhcmVudCA9IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbDtcblxuXHRcdHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5mbGFncyA9IGZsYWdzO1xuXG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHRoaXMuY2hhbmdlZCA9IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLmNoYW5nZWQgfHwgZmFsc2U7XG5cdH1cblxuXHRnZXQgY2hhbmdlZCgpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmNoYW5nZWRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0fHwgdGhpcy5hc3RSZWdFeHBMaXRlcmFsLnBhdHRlcm4uY2hhbmdlZFxuXHRcdHx8IHR5cGVvZiB0aGlzLmFzdFJlZ0V4cExpdGVyYWwuY2hhbmdlZCA9PSAnYm9vbGVhbicgPyB0aGlzLmFzdFJlZ0V4cExpdGVyYWwuY2hhbmdlZCA6IG51bGw7XG5cdH1cblxuXHRzZXQgY2hhbmdlZChib29sOiBib29sZWFuKVxuXHR7XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLmNoYW5nZWQgPSB0aGlzLmFzdFJlZ0V4cExpdGVyYWwuY2hhbmdlZCA9IGJvb2w7XG5cdH1cblxuXHR0b1N0cmluZyhvdmVyd3JpdGU/OiBib29sZWFuLCBvcHRpb25zPzogSUFzdFRvU3RyaW5nT3B0aW9ucylcblx0e1xuXHRcdHJldHVybiBhc3RUb1N0cmluZyh0aGlzLmFzdFJlZ0V4cExpdGVyYWwsIHtcblxuXHRcdFx0Li4ub3B0aW9ucyxcblxuXHRcdFx0ZGVidWdDaGFuZ2VkOiBvdmVyd3JpdGUgPyA5OSA6IHRoaXMuY2hhbmdlZCxcblx0XHR9KTtcblx0fVxuXG5cdHRvUmVnRXhwPFQgZXh0ZW5kcyBSZWdFeHA+KFJlZ0V4cENsYXNzOiB0eXBlb2YgUmVnRXhwID0gUmVnRXhwKVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBSZWdFeHBDbGFzcyh0aGlzLnNvdXJjZSwgdGhpcy5mbGFncyk7XG5cdH1cblxuXHQvKipcblx0ICogdGhpcyB3aWxsIG5vdCB1cGRhdGUgY2hhbmdlc1xuXHQgKi9cblx0Z2V0IGFzdFNvdXJjZSgpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLnBhdHRlcm47XG5cdH1cblxuXHQvKipcblx0ICogdGhpcyB3aWxsIG5vdCB1cGRhdGUgY2hhbmdlc1xuXHQgKi9cblx0Z2V0IGFzdEZsYWdzKClcblx0e1xuXHRcdHJldHVybiB0aGlzLmFzdFJlZ0V4cExpdGVyYWwuZmxhZ3M7XG5cdH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxUIGV4dGVuZHMgSU5vZGVJbnB1dCwgRSBleHRlbmRzIGtleW9mIHR5cGVvZiBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudD5cbntcblx0KGlucHV0QXN0OiBUICYgSU5vZGVQbHVzLCBldmVudE5hbWU6IEUsIGVtaXR0ZXI6IFBhcnNlckV2ZW50RW1pdHRlciwgLi4uYXJndjogdW5rbm93bltdKVxufVxuXG5pbnRlcmZhY2UgSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyU3VwZXI8VCBleHRlbmRzIElOb2RlSW5wdXQsIEUgZXh0ZW5kcyBrZXlvZiB0eXBlb2YgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQ+XG57XG5cdChldmVudDogRSwgaW5wdXRBc3Q6IFQgJiBJTm9kZVBsdXMsIGV2ZW50TmFtZTogRSwgZW1pdHRlcjogUGFyc2VyRXZlbnRFbWl0dGVyLCAuLi5hcmd2OiB1bmtub3duW10pOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlckV2ZW50RW1pdHRlcjtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLG9EQUFrQztBQUNsQywyREFBa0Q7QUFHbEQsaUVBTytCO0FBSS9CLElBQWtCLHVCQWdCakI7QUFoQkQsV0FBa0IsdUJBQXVCO0lBRXhDLDhDQUFtQixDQUFBO0lBQ25CLDBDQUFlLENBQUE7SUFFZiwwQ0FBZSxDQUFBO0lBRWYsNENBQWlCLENBQUE7SUFFakIsMERBQStCLENBQUE7SUFDL0Isc0RBQTJCLENBQUE7SUFDM0Isc0RBQTJCLENBQUE7SUFFM0Isd0RBQTZCLENBQUE7SUFFN0IsNENBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQWhCaUIsdUJBQXVCLEdBQXZCLCtCQUF1QixLQUF2QiwrQkFBdUIsUUFnQnhDO0FBRUQsYUFBYTtBQUNBLFFBQUEsMkJBQTJCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQ0FBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUE4QixDQUFDO0FBSTVJLE1BQWEsa0JBQW1CLFNBQVEsZ0JBQVk7SUFJbkQsWUFBWSxRQUFrRSxFQUFFLFFBQTRCLEVBQUU7UUFFN0csS0FBSyxFQUFFLENBQUM7UUFKVCxxQkFBZ0IsR0FBa0MsSUFBSSxDQUFDO1FBTXRELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLE9BQU8sUUFBUSxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFDN0Q7WUFDQyxRQUFRLEdBQUcsa0RBQTBCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQTZCLENBQUM7UUFFdEQsSUFBSSxDQUFDLEVBQUUsd0JBQWlDLFVBQVUsR0FBRztZQUVwRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4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TyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUM5RSxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQW1CLEVBQUUsT0FBNkI7UUFFMUQsT0FBTyxtQ0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUV6QyxHQUFHLE9BQU87WUFFVixZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO1NBQzNDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQW1CLGNBQTZCLE1BQU07UUFFN0QsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFFWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBRVgsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7Q0FFRDtBQTNWRCxnREEyVkM7QUFrREQsa0JBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBU1QgfSBmcm9tIFwicmVnZXhwcDJcIjtcbmltcG9ydCAqIGFzIHJlZ2V4cHAgZnJvbSAncmVnZXhwcDInO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgYXJyYXlfdW5pcXVlIH0gZnJvbSAnYXJyYXktaHlwZXItdW5pcXVlJztcbmltcG9ydCB7IElUU1BhcnRpYWxSZWNvcmQsIElUU092ZXJ3cml0ZSB9IGZyb20gJ3RzLXR5cGUnO1xuXG5pbXBvcnQgUGFyc2VyLCB7XG5cdGFzdFRvU3RyaW5nLFxuXHRmYWtlUGF0dGVyblRvUmVnRXhwTGl0ZXJhbCxcblx0cGFyc2VGbGFncyxcblx0cGFyc2VQYXR0ZXJuLFxuXHRJTm9kZVBsdXMsXG5cdElBc3RUb1N0cmluZ09wdGlvbnMsXG59IGZyb20gJ3JlZ2V4cC1wYXJzZXItbGl0ZXJhbCc7XG5cbmltcG9ydCB7IEFwcGVuZGFibGVOb2RlIH0gZnJvbSAncmVnZXhwcDIvc3JjL3BhcnNlcic7XG5cbmV4cG9ydCBjb25zdCBlbnVtIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50XG57XG5cdGRlZmF1bHQgPSAnZGVmYXVsdCcsXG5cdGNsYXNzID0gJ2NsYXNzJyxcblxuXHRvdGhlciA9ICdvdGhlcicsXG5cblx0dW5pc2V0ID0gJ3VuaXNldCcsXG5cblx0Y2xhc3NfZGVmYXVsdCA9ICdjbGFzc19kZWZhdWx0Jyxcblx0Y2xhc3NfcmFuZ2UgPSAnY2xhc3NfcmFuZ2UnLFxuXHRjbGFzc19vdGhlciA9ICdjbGFzc19vdGhlcicsXG5cblx0Y2xhc3NfdW5pc2V0ID0gJ2NsYXNzX3VuaXNldCcsXG5cblx0Y2hhbmdlID0gJ2NoYW5nZScsXG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudExpc3QgPSBPYmplY3QuZnJlZXplKGFycmF5X3VuaXF1ZShPYmplY3QudmFsdWVzKFBhcnNlckV2ZW50RW1pdHRlckV2ZW50KSkpIGFzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50W107XG5cbmV4cG9ydCB0eXBlIElOb2RlSW5wdXQgPSBBU1QuRWxlbWVudCB8IEFTVC5DaGFyYWN0ZXJDbGFzc0VsZW1lbnQgfCBBcHBlbmRhYmxlTm9kZSB8IEFTVC5DaGFyYWN0ZXJTZXQ7XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXJFdmVudEVtaXR0ZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXJcbntcblx0YXN0UmVnRXhwTGl0ZXJhbDogQVNULlJlZ0V4cExpdGVyYWwgJiBJTm9kZVBsdXMgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKGlucHV0QXN0OiByZWdleHBwLkFTVC5QYXR0ZXJuIHwgcmVnZXhwcC5BU1QuUmVnRXhwTGl0ZXJhbCB8IHN0cmluZywgZmxhZ3M6IHN0cmluZyB8IEFTVC5GbGFncyA9ICcnKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdFx0aWYgKHR5cGVvZiBpbnB1dEFzdCA9PSAnc3RyaW5nJyB8fCBpbnB1dEFzdC50eXBlID09ICdQYXR0ZXJuJylcblx0XHR7XG5cdFx0XHRpbnB1dEFzdCA9IGZha2VQYXR0ZXJuVG9SZWdFeHBMaXRlcmFsKGlucHV0QXN0LCBmbGFncyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5hc3RSZWdFeHBMaXRlcmFsID0gaW5wdXRBc3QgYXMgQVNULlJlZ0V4cExpdGVyYWw7XG5cblx0XHR0aGlzLm9uKFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNoYW5nZSwgZnVuY3Rpb24gKGFzdClcblx0XHR7XG5cdFx0XHRzZWxmLl9jaGFuZ2UoYXN0LCB0cnVlKTtcblx0XHRcdHNlbGYuY2hhbmdlZCA9IHRydWU7XG5cdFx0fSk7XG5cbi8vXHRcdGNvbnNvbGUuZGlyKHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLmVsZW1lbnRzLCB7XG4vL1x0XHRcdGNvbG9yczogdHJ1ZSxcbi8vXHRcdFx0ZGVwdGg6IDMsXG4vL1x0XHR9KTtcblx0fVxuXG5cdHN0YXRpYyBjcmVhdGUoaW5wdXRBc3Q6IHJlZ2V4cHAuQVNULlBhdHRlcm4gfCByZWdleHBwLkFTVC5SZWdFeHBMaXRlcmFsIHwgc3RyaW5nLCBmbGFnczogc3RyaW5nIHwgQVNULkZsYWdzID0gJycpXG5cdHtcblx0XHRyZXR1cm4gbmV3IHRoaXMoaW5wdXRBc3QsIGZsYWdzKTtcblx0fVxuXG5cdHJlc3VtZSgpXG5cdHtcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRcdC8qXG5cdFx0MCAmJiBjb25zb2xlLmRpcih0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybiwge1xuXHRcdFx0ZGVwdGg6IG51bGwsXG5cdFx0XHRjb2xvcnM6IHRydWUsXG5cdFx0fSk7XG5cdFx0Ki9cblxuXHRcdGxldCBwYXR0ZXJuID0gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLnBhdHRlcm47XG5cblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0bGV0IGVsZW1zID0gcGF0dGVybi5hbHRlcm5hdGl2ZXMgfHwgcGF0dGVybi5lbGVtZW50cztcblxuXHRcdGVsZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pXG5cdFx0e1xuXHRcdFx0c2VsZi5fbG9va3VwX3N1YihpdGVtLCBzZWxmKTtcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIHNhbWUgYXMgdGhpcy5lbWl0KFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNoYW5nZSwgYXN0KVxuXHQgKi9cblx0ZW1pdENoYW5nZTxUIGV4dGVuZHMgSU5vZGVJbnB1dD4oaW5wdXRBc3Q6IFQgJiBJTm9kZVBsdXMsIC4uLmFyZ3MpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5lbWl0KFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNoYW5nZSwgaW5wdXRBc3QsIC4uLmFyZ3MpXG5cdH1cblxuXHRlbWl0PFQgZXh0ZW5kcyBJTm9kZUlucHV0PihldmVudE5hbWU6IFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LFxuXHRcdGlucHV0QXN0OiBUICYgSU5vZGVQbHVzLFxuXHRcdC4uLmFyZ3Ncblx0KTogYm9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIChzdXBlci5lbWl0IGFzIElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lclN1cGVyPFQsIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50PikoZXZlbnROYW1lLCBpbnB1dEFzdCwgZXZlbnROYW1lLCB0aGlzLCAuLi5hcmdzKTtcblx0fVxuXG5cdG9uPEUgZXh0ZW5kcyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5kZWZhdWx0PihldmVudE5hbWU6IEUsXG5cdFx0bGlzdGVuZXI6IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuQ2hhcmFjdGVyLCBFPixcblx0KTogdGhpc1xuXHRvbjxFIGV4dGVuZHMgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3M+KGV2ZW50TmFtZTogRSxcblx0XHRsaXN0ZW5lcjogSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPEFTVC5DaGFyYWN0ZXJDbGFzcywgRT4sXG5cdCk6IHRoaXNcblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX2RlZmF1bHQ+KGV2ZW50TmFtZTogRSxcblx0XHRsaXN0ZW5lcjogSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPEFTVC5DaGFyYWN0ZXIsIEU+LFxuXHQpOiB0aGlzXG5cdG9uPEUgZXh0ZW5kcyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzc19yYW5nZT4oZXZlbnROYW1lOiBFLFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzUmFuZ2UsIEU+LFxuXHQpOiB0aGlzXG5cdG9uPEUgZXh0ZW5kcyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5vdGhlcj4oZXZlbnROYW1lOiBFLFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzRWxlbWVudCwgRT4sXG5cdCk6IHRoaXNcblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LnVuaXNldD4oZXZlbnROYW1lOiBFLFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlclNldCwgRT4sXG5cdCk6IHRoaXNcblx0b248RSBleHRlbmRzIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50PihldmVudE5hbWU6IFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LFxuXHRcdGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkVsZW1lbnQsIEU+LFxuXHQpOiB0aGlzXG5cdG9uKGV2ZW50TmFtZTogUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQsIGxpc3RlbmVyOiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8YW55LCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudD4pOiB0aGlzXG5cdHtcblx0XHRyZXR1cm4gc3VwZXIub24oZXZlbnROYW1lLCBsaXN0ZW5lcik7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2NoYW5nZTxUIGV4dGVuZHMgQVNULk5vZGU+KGFzdDogVCAmIElOb2RlUGx1cywgaXNGaXJzdD86IGJvb2xlYW4pXG5cdHtcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRcdGFzdC5jaGFuZ2VkID0gdHJ1ZTtcblxuXHRcdGlmIChhc3QucGFyZW50KVxuXHRcdHtcblx0XHRcdHRoaXMuX2NoYW5nZShhc3QucGFyZW50KVxuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBfbG9va3VwX3N1YjxUIGV4dGVuZHMgSU5vZGVJbnB1dD4oaW5wdXRBc3Q6IFQgJiBJTm9kZVBsdXMsXG5cdFx0bXlFbWl0dGVyOiBQYXJzZXJFdmVudEVtaXR0ZXIsXG5cdFx0cGFyZW50Pyxcblx0XHRldmVudFByZWZpeDogc3RyaW5nID0gJycsXG5cdClcblx0e1xuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdFx0bGV0IGRvX2VsZW1lbnRzOiBib29sZWFuO1xuXHRcdGxldCBzdWJfZWxlbWVudHM6IGFueVtdO1xuXHRcdGxldCBzdWJfcHJlZml4OiBzdHJpbmcgPSAnJztcblx0XHRsZXQgZXZlbnQ6IHN0cmluZyB8IGtleW9mIHR5cGVvZiBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudCB8IFBhcnNlckV2ZW50RW1pdHRlckV2ZW50O1xuXG5cdFx0c3dpdGNoIChpbnB1dEFzdC50eXBlKVxuXHRcdHtcblx0XHRcdGNhc2UgJ0NoYXJhY3Rlcic6XG5cdFx0XHRcdGV2ZW50ID0gZXZlbnRQcmVmaXggKyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5kZWZhdWx0O1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQ2hhcmFjdGVyQ2xhc3MnOlxuXHRcdFx0XHRldmVudCA9IFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzO1xuXG5cdFx0XHRcdGRvX2VsZW1lbnRzID0gdHJ1ZTtcblx0XHRcdFx0c3ViX3ByZWZpeCA9ICdjbGFzc18nO1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQ2hhcmFjdGVyQ2xhc3NSYW5nZSc6XG5cdFx0XHRcdGV2ZW50ID0gUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3NfcmFuZ2U7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgJ0NoYXJhY3RlclNldCc6XG5cdFx0XHRcdGV2ZW50ID0gZXZlbnRQcmVmaXggKyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC51bmlzZXQ7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgJ1F1YW50aWZpZXInOlxuXG5cdFx0XHRcdGRvX2VsZW1lbnRzID0gdHJ1ZTtcblx0XHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0XHRzdWJfZWxlbWVudHMgPSBbaW5wdXRBc3QuZWxlbWVudF07XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgJ0NhcHR1cmluZ0dyb3VwJzpcblx0XHRcdGNhc2UgJ0dyb3VwJzpcblx0XHRcdGNhc2UgJ0Fzc2VydGlvbic6XG5cdFx0XHRcdGRvX2VsZW1lbnRzID0gdHJ1ZTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdGNhc2UgJ0FsdGVybmF0aXZlJzpcblxuXHRcdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRcdChpbnB1dEFzdCBhcyBBU1QuQWx0ZXJuYXRpdmUpLmVsZW1lbnRzXG5cdFx0XHRcdFx0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW1zKVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHNlbGYuX2xvb2t1cF9zdWIoaXRlbXMsIG15RW1pdHRlciwgaW5wdXRBc3QsIHN1Yl9wcmVmaXgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHQ7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdGNhc2UgJ0Rpc2p1bmN0aW9uJzpcblxuXHRcdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRcdChpbnB1dEFzdCBhcyBBU1QuRGlzanVuY3Rpb24pLmFsdGVybmF0aXZlc1xuXHRcdFx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtcylcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKVxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRzZWxmLl9sb29rdXBfc3ViKGl0ZW0sIG15RW1pdHRlciwgaW5wdXRBc3QsIHN1Yl9wcmVmaXgpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0O1xuXG5cdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRkZWZhdWx0OlxuXG5cdFx0XHRcdGlmIChldmVudFByZWZpeCA9PT0gJ2NsYXNzXycpXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRldmVudCA9IFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX290aGVyO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGV2ZW50ID0gZXZlbnRQcmVmaXggKyBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5vdGhlcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGlmIChldmVudClcblx0XHR7XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRteUVtaXR0ZXIuZW1pdChQYXJzZXJFdmVudEVtaXR0ZXJFdmVudFtldmVudF0sIGlucHV0QXN0KTtcblx0XHR9XG5cblx0XHRpZiAoZG9fZWxlbWVudHMgJiYgdHlwZW9mIHN1Yl9lbGVtZW50cyA9PSAndW5kZWZpbmVkJylcblx0XHR7XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRzdWJfZWxlbWVudHMgPSBpbnB1dEFzdC5lbGVtZW50cztcblxuXHRcdFx0aWYgKHR5cGVvZiBzdWJfZWxlbWVudHMgPT0gJ3VuZGVmaW5lZCcpXG5cdFx0XHR7XG5cdFx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdFx0c3ViX2VsZW1lbnRzID0gaW5wdXRBc3QuYWx0ZXJuYXRpdmVzO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICghaW5wdXRBc3QudHlwZSlcblx0XHR7XG5cdFx0XHQvL2NvbnNvbGUubG9nKGlucHV0QXN0LnR5cGUsIHN1Yl9lbGVtZW50cyAmJiBzdWJfZWxlbWVudHMubGVuZ3RoLCBpbnB1dEFzdCk7XG5cdFx0fVxuXHRcdGVsc2Vcblx0XHR7XG5cdFx0XHQvL2NvbnNvbGUubG9nKGlucHV0QXN0LnR5cGUsIHN1Yl9lbGVtZW50cyAmJiBzdWJfZWxlbWVudHMubGVuZ3RoKTtcblx0XHR9XG5cblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0aWYgKGRvX2VsZW1lbnRzICYmIHN1Yl9lbGVtZW50cylcblx0XHR7XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRzdWJfZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSlcblx0XHRcdHtcblx0XHRcdFx0c2VsZi5fbG9va3VwX3N1YihpdGVtLCBteUVtaXR0ZXIsIGlucHV0QXN0LCBzdWJfcHJlZml4KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGdldFNvdXJjZShvdmVyd3JpdGU/OiBib29sZWFuLCBvcHRpb25zPzogSUFzdFRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIGFzdFRvU3RyaW5nKHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLCB7XG5cblx0XHRcdC4uLm9wdGlvbnMsXG5cblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdGRlYnVnQ2hhbmdlZDogb3ZlcndyaXRlID8gOTkgOiB0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybi5jaGFuZ2VkLFxuXHRcdH0pO1xuXHR9XG5cblx0Z2V0RmxhZ3Mob3ZlcndyaXRlPzogYm9vbGVhbiwgb3B0aW9ucz86IElBc3RUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmdcblx0e1xuXHRcdHJldHVybiBhc3RUb1N0cmluZyh0aGlzLmFzdFJlZ0V4cExpdGVyYWwuZmxhZ3MsIHtcblxuXHRcdFx0Li4ub3B0aW9ucyxcblxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0ZGVidWdDaGFuZ2VkOiBvdmVyd3JpdGUgPyA5OSA6IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5mbGFncy5jaGFuZ2VkLFxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRnZXQgc291cmNlKCk6IHN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0U291cmNlKCk7XG5cdH1cblxuXHQvLyBAdHMtaWdub3JlXG5cdHNldCBzb3VyY2UocGF0dGVybjogcmVnZXhwcC5BU1QuUGF0dGVybiB8IHN0cmluZylcblx0e1xuXHRcdHBhdHRlcm4gPSB0eXBlb2YgcGF0dGVybiA9PSAnc3RyaW5nJyA/IHBhcnNlUGF0dGVybihwYXR0ZXJuLCB0aGlzLmFzdFJlZ0V4cExpdGVyYWwuZmxhZ3MudW5pY29kZSkgOiBwYXR0ZXJuO1xuXG5cdFx0cGF0dGVybi5wYXJlbnQgPSB0aGlzLmFzdFJlZ0V4cExpdGVyYWw7XG5cblx0XHR0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybiA9IHBhdHRlcm47XG5cblx0XHR0aGlzLmNoYW5nZWQgPSBmYWxzZTtcblx0fVxuXG5cdC8vIEB0cy1pZ25vcmVcblx0Z2V0IGZsYWdzKCk6IHN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0RmxhZ3MoKTtcblx0fVxuXG5cdC8vIEB0cy1pZ25vcmVcblx0c2V0IGZsYWdzKGZsYWdzOiBzdHJpbmcgfCBBU1QuRmxhZ3MpXG5cdHtcblx0XHRmbGFncyA9IHR5cGVvZiBmbGFncyA9PSAnc3RyaW5nJyA/IHBhcnNlRmxhZ3MoZmxhZ3MpIDogZmxhZ3M7XG5cblx0XHRmbGFncy5wYXJlbnQgPSB0aGlzLmFzdFJlZ0V4cExpdGVyYWw7XG5cblx0XHR0aGlzLmFzdFJlZ0V4cExpdGVyYWwuZmxhZ3MgPSBmbGFncztcblxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHR0aGlzLmNoYW5nZWQgPSB0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybi5jaGFuZ2VkIHx8IGZhbHNlO1xuXHR9XG5cblx0Z2V0IGNoYW5nZWQoKVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5jaGFuZ2VkXG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHx8IHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuLmNoYW5nZWRcblx0XHR8fCB0eXBlb2YgdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmNoYW5nZWQgPT0gJ2Jvb2xlYW4nID8gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmNoYW5nZWQgOiBudWxsO1xuXHR9XG5cblx0c2V0IGNoYW5nZWQoYm9vbDogYm9vbGVhbilcblx0e1xuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHR0aGlzLmFzdFJlZ0V4cExpdGVyYWwucGF0dGVybi5jaGFuZ2VkID0gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmNoYW5nZWQgPSBib29sO1xuXHR9XG5cblx0dG9TdHJpbmcob3ZlcndyaXRlPzogYm9vbGVhbiwgb3B0aW9ucz86IElBc3RUb1N0cmluZ09wdGlvbnMpXG5cdHtcblx0XHRyZXR1cm4gYXN0VG9TdHJpbmcodGhpcy5hc3RSZWdFeHBMaXRlcmFsLCB7XG5cblx0XHRcdC4uLm9wdGlvbnMsXG5cblx0XHRcdGRlYnVnQ2hhbmdlZDogb3ZlcndyaXRlID8gOTkgOiB0aGlzLmNoYW5nZWQsXG5cdFx0fSk7XG5cdH1cblxuXHR0b1JlZ0V4cDxUIGV4dGVuZHMgUmVnRXhwPihSZWdFeHBDbGFzczogdHlwZW9mIFJlZ0V4cCA9IFJlZ0V4cClcblx0e1xuXHRcdHJldHVybiBuZXcgUmVnRXhwQ2xhc3ModGhpcy5zb3VyY2UsIHRoaXMuZmxhZ3MpO1xuXHR9XG5cblx0LyoqXG5cdCAqIHRoaXMgd2lsbCBub3QgdXBkYXRlIGNoYW5nZXNcblx0ICovXG5cdGdldCBhc3RTb3VyY2UoKVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuYXN0UmVnRXhwTGl0ZXJhbC5wYXR0ZXJuO1xuXHR9XG5cblx0LyoqXG5cdCAqIHRoaXMgd2lsbCBub3QgdXBkYXRlIGNoYW5nZXNcblx0ICovXG5cdGdldCBhc3RGbGFncygpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5hc3RSZWdFeHBMaXRlcmFsLmZsYWdzO1xuXHR9XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXJNYXA8VCBleHRlbmRzIElOb2RlSW5wdXQgPSBJTm9kZUlucHV0PiBleHRlbmRzIElUU092ZXJ3cml0ZTxJVFNQYXJ0aWFsUmVjb3JkPFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LCBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8YW55LCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudD4+LFxue1xuXHQvKipcblx0ICog5LiA6Iis5oCnIOaWh+WtlyDnr4Dpu55cblx0ICovXG5cdFtQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5kZWZhdWx0XT86IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuQ2hhcmFjdGVyLCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5kZWZhdWx0PjtcblxuXHQvKipcblx0ICogL1t4eHhdLyDpgJnpoZ5cblx0ICovXG5cdFtQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzc10/OiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzLCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzcz47XG5cblx0LyoqXG5cdCAqIC9beHh4XS8g5LmL5Lit55qEIHh4eFxuXHQgKi9cblx0W1BhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX2RlZmF1bHRdPzogSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPEFTVC5DaGFyYWN0ZXIsIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX2RlZmF1bHQ+O1xuXG5cdC8qKlxuXHQgKiAvWzAtOV0vIOS5i+S4reeahCAwLTlcblx0ICovXG5cdFtQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzc19yYW5nZV0/OiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzUmFuZ2UsIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LmNsYXNzX3JhbmdlPjtcblxuXHQvKipcblx0ICogL1tcXHB7eHh4eH1dLyDkuYvkuK3nmoQgXFxwe3h4eHh9XG5cdCAqL1xuXHRbUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQuY2xhc3NfdW5pc2V0XT86IElQYXJzZXJFdmVudEVtaXR0ZXJMaXN0ZW5lcjxBU1QuQ2hhcmFjdGVyU2V0LCBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5jbGFzc191bmlzZXQ+O1xuXG5cdFtQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC5vdGhlcl0/OiBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXI8QVNULkNoYXJhY3RlckNsYXNzRWxlbWVudCwgUGFyc2VyRXZlbnRFbWl0dGVyRXZlbnQub3RoZXI+O1xuXG5cdC8qKlxuXHQgKiBcXHB7eHh4eH1cblx0ICovXG5cdFtQYXJzZXJFdmVudEVtaXR0ZXJFdmVudC51bmlzZXRdPzogSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPEFTVC5DaGFyYWN0ZXJTZXQsIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50LnVuaXNldD47XG59Plxue1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhcnNlckV2ZW50RW1pdHRlckxpc3RlbmVyPFQgZXh0ZW5kcyBJTm9kZUlucHV0LCBFIGV4dGVuZHMga2V5b2YgdHlwZW9mIFBhcnNlckV2ZW50RW1pdHRlckV2ZW50Plxue1xuXHQoaW5wdXRBc3Q6IFQgJiBJTm9kZVBsdXMsIGV2ZW50TmFtZTogRSwgZW1pdHRlcjogUGFyc2VyRXZlbnRFbWl0dGVyLCAuLi5hcmd2OiB1bmtub3duW10pXG59XG5cbmludGVyZmFjZSBJUGFyc2VyRXZlbnRFbWl0dGVyTGlzdGVuZXJTdXBlcjxUIGV4dGVuZHMgSU5vZGVJbnB1dCwgRSBleHRlbmRzIGtleW9mIHR5cGVvZiBQYXJzZXJFdmVudEVtaXR0ZXJFdmVudD5cbntcblx0KGV2ZW50OiBFLCBpbnB1dEFzdDogVCAmIElOb2RlUGx1cywgZXZlbnROYW1lOiBFLCBlbWl0dGVyOiBQYXJzZXJFdmVudEVtaXR0ZXIsIC4uLmFyZ3Y6IHVua25vd25bXSk6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFyc2VyRXZlbnRFbWl0dGVyO1xuIl19
{
"name": "regexp-parser-event",
"version": "1.1.4",
"version": "1.1.5",
"description": "",

@@ -39,3 +39,4 @@ "keywords": [

"regexp-parser-literal": "^1.1.0",
"regexpp2": "^1.3.0"
"regexpp2": "^1.3.0",
"ts-type": "^1.2.9"
},

@@ -42,0 +43,0 @@ "devDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc