@techextensor/tab-core-utility 2.2.176 → 2.2.177
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.
|
@@ -115,7 +115,7 @@ export class TemplateHelper {
|
|
|
115
115
|
}
|
|
116
116
|
obj = Object.getPrototypeOf(obj);
|
|
117
117
|
}
|
|
118
|
-
if (service?.
|
|
118
|
+
if (service?._isProxy) {
|
|
119
119
|
// Probe the context directly
|
|
120
120
|
const ctx = service._context;
|
|
121
121
|
if (ctx) {
|
|
@@ -252,4 +252,4 @@ export class TemplateHelper {
|
|
|
252
252
|
type: Injectable,
|
|
253
253
|
args: [{ providedIn: 'root' }]
|
|
254
254
|
}], () => [], null); })();
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyxjQUFjO0lBS3pCO1FBSmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLGlCQUF5QjtRQUM5RCxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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bkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytFQWhRVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTGlxdWlkIH0gZnJvbSAnbGlxdWlkanMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tICcuLi8uLi91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSwgVGVtcGxhdGVQYXJzZVBheWxvYWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlSGVscGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlQ2FjaGUgPSBuZXcgV2Vha01hcDxhbnksIGFueT4oKTtcclxuICBwcml2YXRlIGVuZ2luZSA9IG5ldyBMaXF1aWQoKTtcclxuICBcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsRmlsdGVyKCk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyUHJvcEZpbHRlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyBsb2NhbCByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdGVtcGxhdGUgLSBUaGUgdGVtcGxhdGUgdG8gYmUgcGFyc2VkLlxyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZVZhcmlhYmxlcyAtIFRoZSB2YXJpYWJsZXMgdG8gYmUgdXNlZCBmb3IgdGVtcGxhdGUgcmVuZGVyaW5nLlxyXG4gICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgdGVtcGxhdGVQYXJzZUxvY2FsbHkodGVtcGxhdGU6IHN0cmluZywgdGVtcGxhdGVWYXJpYWJsZXM6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAuLi4odGVtcGxhdGVWYXJpYWJsZXM/Lmxlbmd0aCA/IEpTT04ucGFyc2UodGVtcGxhdGVWYXJpYWJsZXMpIDoge30pLFxyXG4gICAgICBUYWJTZGs6IHRoaXMuY3JlYXRlU2RrUHJveHkoKSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmUucGFyc2VBbmRSZW5kZXIodGVtcGxhdGUgPz8gJycsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1bml2ZXJzYWxseSwgZWl0aGVyIHVzaW5nIGxvY2FsIHJlbmRlcmluZyBvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHBhcnNpbmcuXHJcbiAgICogQHBhcmFtIHNob3VsZEZhaWxPblNlcnZlclBhcnNlIC0gSW5kaWNhdGVzIHdoZXRoZXIgdG8gZmFpbCBvbiBzZXJ2ZXItc2lkZSBwYXJzZSBpZiBsb2NhbCBwYXJzaW5nIGZhaWxzLlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcGFyc2VkIHRlbXBsYXRlIHJlc3VsdC5cclxuICAgKi9cclxuICB0ZW1wbGF0ZVBhcnNlVW5pdmVyc2FsKGRhdGE6IFRlbXBsYXRlUGFyc2VQYXlsb2FkLCBvbkZhaWxlZFBhcnNlT25TZXJ2ZXIgPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMudGVtcGxhdGVQYXJzZUxvY2FsbHkoZGF0YS5WYWx1ZSwgZGF0YS5UZW1wbGF0ZXZhcmlhYmxlcykpLnBpcGUoXHJcbiAgICAgIG1hcCgoaHRtbCkgPT4gKHsgUmVzdWx0OiBodG1sIH0pKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdMb2NhbCBwYXJzZSBmYWlsZWQnLCBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIG9uRmFpbGVkUGFyc2VPblNlcnZlciA/IHRoaXMudGVtcGxhdGVQYXJzZShkYXRhKSA6IG9mKHsgUmVzdWx0OiAnJyB9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZXMgdGhlIHRlbXBsYXRlIHVzaW5nIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gYmUgdXNlZCBmb3IgdGVtcGxhdGUgcGFyc2luZy5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBhcnNlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVBhcnNlKGRhdGE6IFRlbXBsYXRlUGFyc2VQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuXHJcbiAgICAvLyBNYWtlcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIHBhcnNlIHRoZSB0ZW1wbGF0ZS5cclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkudGVtcGxhdGVQYXJzZSwgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcHJveHkgZm9yIHRoZSBUYWJTZGsgb2JqZWN0IHRvIGV4cG9zZSBpdHMgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gYWNjZXNzIFNESyBzZXJ2aWNlcyBhbmQgdGhlaXIgcHJvcGVydGllcy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSByZXNvbHZlZCBTREsgc2VydmljZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVTZGtQcm94eSgpOiBhbnkge1xyXG4gICAgY29uc3Qgc2RrUm9vdCA9ICh3aW5kb3cgYXMgYW55KT8uVGFiU2RrO1xyXG4gICAgaWYgKCFzZGtSb290KSByZXR1cm4ge307XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZWRTZGs6IGFueSA9IHt9O1xyXG4gICAgLy8gR2V0IHN0YXRpYyBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIHRoZWlyIHZhbHVlc1xyXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc2RrUm9vdCkuZm9yRWFjaChzZXJ2aWNlTmFtZSA9PiB7XHJcbiAgICAgIGlmIChzZXJ2aWNlTmFtZSA9PT0gJ2xlbmd0aCcgfHwgc2VydmljZU5hbWUgPT09ICduYW1lJyB8fCBzZXJ2aWNlTmFtZSA9PT0gJ3Byb3RvdHlwZScpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBzZGtSb290W3NlcnZpY2VOYW1lXTtcclxuICAgICAgaWYgKCFzZXJ2aWNlKSByZXR1cm47XHJcblxyXG4gICAgICAvLyBDcmVhdGUgcmVzb2x2ZWQgc2VydmljZSBvYmplY3RcclxuICAgICAgcmVzb2x2ZWRTZGtbc2VydmljZU5hbWVdID0gdGhpcy5yZXNvbHZlU2VydmljZVZhbHVlcyhzZXJ2aWNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXNvbHZlZFNkaztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIGEgc2VydmljZSBvYmplY3QuXHJcbiAgICogVGhpcyBpbmNsdWRlcyBib3RoIHN0YXRpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCBhcyB3ZWxsIGFzIHByb3RvdHlwZSBwcm9wZXJ0aWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlcnZpY2UgLSBUaGUgc2VydmljZSBvYmplY3QgdG8gcmVzb2x2ZS5cclxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzb2x2ZWQgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cclxuICAgKi9cclxuICBwcml2YXRlIHJlc29sdmVTZXJ2aWNlVmFsdWVzKHNlcnZpY2U6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlQ2FjaGUuaGFzKHNlcnZpY2UpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VDYWNoZS5nZXQoc2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZWQ6IGFueSA9IHt9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZGVueSA9IG5ldyBTZXQoWydfX3Byb3RvX18nLCAncHJvdG90eXBlJywgJ2NvbnN0cnVjdG9yJ10pO1xyXG4gICAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gICAgICAvLyB3YWxrIHRoZSB3aG9sZSBwcm90b3R5cGUgY2hhaW4gKGluc3RhbmNlIOKGkiBiYXNlIHByb3RvdHlwZXMpLCBzdG9wIGF0IE9iamVjdC5wcm90b3R5cGVcclxuICAgICAgbGV0IG9iajogYW55ID0gc2VydmljZTtcclxuICAgICAgd2hpbGUgKG9iaiAmJiBvYmogIT09IE9iamVjdC5wcm90b3R5cGUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKSkge1xyXG4gICAgICAgICAgaWYgKGRlbnkuaGFzKHByb3ApIHx8IHNlZW4uaGFzKHByb3ApKSBjb250aW51ZTtcclxuICAgICAgICAgIHNlZW4uYWRkKHByb3ApO1xyXG5cclxuICAgICAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gYWx3YXlzIHJlYWQgb2ZmIHRoZSBvcmlnaW5hbCBpbnN0YW5jZSBzbyBnZXR0ZXJzIHNlZSBjb3JyZWN0IGB0aGlzYFxyXG4gICAgICAgICAgICB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHNlcnZpY2UsIHByb3ApO1xyXG4gICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgLy8gZXhwb3NlIGEgaGFuZGxlIHNvIExpcXVpZCBwYXNzZXMgaXQgdGhyb3VnaCB0byB0aGUgYGNhbGxgIGZpbHRlclxyXG4gICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHRoaXMubWFrZU1ldGhvZEhhbmRsZShzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNlcnZpY2U/LmNvbnN0cnVjdG9yPy5uYW1lID09PSAnVXRpbFNlcnZpY2UnKSB7XHJcbiAgICAgICAgLy8gUHJvYmUgdGhlIGNvbnRleHQgZGlyZWN0bHlcclxuICAgICAgICBjb25zdCBjdHggPSAoc2VydmljZSBhcyBhbnkpLl9jb250ZXh0O1xyXG4gICAgICAgIGlmIChjdHgpIHtcclxuICAgICAgICAgIGZvciAoY29uc3Qgc3ZjTmFtZSBvZiBPYmplY3Qua2V5cyhjdHgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN2YyA9IGN0eFtzdmNOYW1lXTtcclxuICAgICAgICAgICAgaWYgKCFzdmMpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHN2Yy5fX3Byb3RvX18gfHwgc3ZjKSkge1xyXG4gICAgICAgICAgICAgIGlmIChkZW55Lmhhcyhwcm9wKSB8fCBzZWVuLmhhcyhwcm9wKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgc2Vlbi5hZGQocHJvcCk7XHJcblxyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHNlcnZpY2UsIHByb3ApOyAvLyBmb3JjZXMgcHJveHkgdG8gcmVzb2x2ZVxyXG4gICAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHRoaXMubWFrZU1ldGhvZEhhbmRsZShzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmVkW3Byb3BdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignVGVtcGxhdGVIZWxwZXI6IHJlc29sdmVTZXJ2aWNlVmFsdWVzIGZhaWxlZCcsIGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZUNhY2hlLnNldChzZXJ2aWNlLCByZXNvbHZlZCk7XHJcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgc3BlY2lhbCBoYW5kbGUgb2JqZWN0IHRoYXQgd3JhcHMgYSBmdW5jdGlvbiBvciBtZXRob2QgcmVmZXJlbmNlLlxyXG4gICAqIFRoZSBoYW5kbGUgaXMgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciB0aGUgZnVuY3Rpb24gb3IgbWV0aG9kIGluIHRoZVxyXG4gICAqIHRlbXBsYXRlIGNvbnRleHQsIGFuZCBpcyB1c2VkIGJ5IHRoZSBgY2FsbGAgZmlsdGVyIHRvIGludm9rZSB0aGVcclxuICAgKiBmdW5jdGlvbiBvciBtZXRob2Qgd2l0aCBwcm92aWRlZCBhcmd1bWVudHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyZW50IC0gVGhlIG9iamVjdCB0aGF0IHRoZSBtZXRob2QgYmVsb25ncyB0by5cclxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QuXHJcbiAgICogQHJldHVybnMgQSBoYW5kbGUgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZC5cclxuICAgKi9cclxuICBwcml2YXRlIG1ha2VNZXRob2RIYW5kbGUocGFyZW50OiBhbnksIG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICBjb25zdCBoYW5kbGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaGFuZGxlLCB7XHJcbiAgICAgIF9fc2RrSGFuZGxlOiB7IHZhbHVlOiAnbWV0aG9kJywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9LFxyXG4gICAgICBfX3BhcmVudDogeyB2YWx1ZTogcGFyZW50LCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlIH0sXHJcbiAgICAgIF9fbmFtZTogeyB2YWx1ZTogbmFtZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBoYW5kbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBmaWx0ZXIgdG8gY2FsbCBhIGZ1bmN0aW9uIG9yIG1ldGhvZCB3aXRoIHByb3ZpZGVkIGFyZ3VtZW50cy5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gaW52b2tlIGZ1bmN0aW9ucyBvciBtZXRob2RzIGR5bmFtaWNhbGx5LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbmdpbmUucmVnaXN0ZXJGaWx0ZXIoJ2NhbGwnLCBhc3luYyAoaW5wdXQ6IGFueSwgLi4uYXJnczogYW55W10pID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICAvLyBjYXNlIEE6IGlucHV0IGlzIG91ciBtZXRob2QgaGFuZGxlIChmcm9tIHJlc29sdmVTZXJ2aWNlVmFsdWVzKVxyXG4gICAgICAgIGlmIChpbnB1dCAmJiBpbnB1dC5fX3Nka0hhbmRsZSA9PT0gJ21ldGhvZCcgJiYgaW5wdXQuX19wYXJlbnQgJiYgaW5wdXQuX19uYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBmbiA9IFJlZmxlY3QuZ2V0KGlucHV0Ll9fcGFyZW50LCBpbnB1dC5fX25hbWUpO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXMgPSBmbi5hcHBseShpbnB1dC5fX3BhcmVudCwgYXJncyk7XHJcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzOyAvLyBzeW5jIG9yIGFzeW5jXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBjYXNlIEI6IGlucHV0IGlzIGFuIG9iamVjdCBhbmQgZmlyc3QgYXJnIGlzIHRoZSBtZXRob2QgbmFtZVxyXG4gICAgICAgIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IGFyZ3NbMF07XHJcbiAgICAgICAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ19fcHJvdG9fXycgfHwgbWV0aG9kTmFtZSA9PT0gJ3Byb3RvdHlwZScgfHwgbWV0aG9kTmFtZSA9PT0gJ2NvbnN0cnVjdG9yJykgcmV0dXJuICcnO1xyXG4gICAgICAgICAgY29uc3QgbWV0aG9kID0gUmVmbGVjdC5nZXQoaW5wdXQsIG1ldGhvZE5hbWUpO1xyXG4gICAgICAgICAgY29uc3QgcmVzdCA9IGFyZ3Muc2xpY2UoMSk7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBtZXRob2QuYXBwbHkoaW5wdXQsIHJlc3QpO1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gbm90IGEgZnVuY3Rpb24g4oaSIHRyZWF0IGFzIHByb3BlcnR5IGZhbGxiYWNrXHJcbiAgICAgICAgICByZXR1cm4gbWV0aG9kID8/ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gKGZhbGxiYWNrKSBmdW5jdGlvbnMgc2hvdWxkIG5vdCByZWFjaCBMaXF1aWQsIGJ1dCBrZWVwIGZvciBzYWZldHlcclxuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSBpbnB1dCguLi5hcmdzKTtcclxuICAgICAgICAgIHJldHVybiBhd2FpdCByZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBmaWx0ZXIgdG8gYWNjZXNzIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0IHVzaW5nIGRvdCBvciBicmFja2V0IG5vdGF0aW9uLlxyXG4gICAqIFRoaXMgYWxsb3dzIHRlbXBsYXRlcyB0byBhY2Nlc3MgbmVzdGVkIHByb3BlcnRpZXMgc2FmZWx5LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJQcm9wRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbmdpbmUucmVnaXN0ZXJGaWx0ZXIoJ3Byb3AnLCAoaW5wdXQ6IGFueSwgcGF0aDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpbnB1dCA9PSBudWxsKSByZXR1cm4gJyc7XHJcbiAgICAgIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycgfHwgIXBhdGgudHJpbSgpKSByZXR1cm4gJyc7XHJcblxyXG4gICAgICAvLyBzdXBwb3J0IGRvdCAmIHNpbXBsZSBicmFja2V0IG5vdGF0aW9uOiBhLmIsIGFbMF0sIGFba2V5XVxyXG4gICAgICBjb25zdCBzZWdtZW50cyA9IHBhdGhcclxuICAgICAgICAucmVwbGFjZSgvXFxbKFxcZCspXFxdL2csICcuJDEnKSAgICAgLy8gWzBdIC0+IC4wXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJykgICAgIC8vIFtrZXldIC0+IC5rZXlcclxuICAgICAgICAuc3BsaXQoJy4nKVxyXG4gICAgICAgIC5tYXAocyA9PiBzLnRyaW0oKSlcclxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xyXG5cclxuICAgICAgbGV0IGN1cjogYW55ID0gaW5wdXQ7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHNlZyBvZiBzZWdtZW50cykge1xyXG4gICAgICAgIGlmIChjdXIgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICBjb25zdCBpZHggPSBOdW1iZXIoc2VnKTtcclxuICAgICAgICBjb25zdCBrZXk6IGFueSA9IE51bWJlci5pc05hTihpZHgpID8gc2VnIDogaWR4O1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY3VyID0gUmVmbGVjdC5nZXQoY3VyLCBrZXkpO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGN1ciA/PyAnJztcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyxjQUFjO0lBS3pCO1FBSmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLGlCQUF5QjtRQUM5RCxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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Q0wsQ0FBQzsrRUFoUVUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXBpLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IExpcXVpZCB9IGZyb20gJ2xpcXVpZGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZnJvbSwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBnZXRIZWFkZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxLXJlcy51dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIFRlbXBsYXRlUGFyc2VQYXlsb2FkIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUhlbHBlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZUNhY2hlID0gbmV3IFdlYWtNYXA8YW55LCBhbnk+KCk7XHJcbiAgcHJpdmF0ZSBlbmdpbmUgPSBuZXcgTGlxdWlkKCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyQ2FsbEZpbHRlcigpO1xyXG4gICAgdGhpcy5yZWdpc3RlclByb3BGaWx0ZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgdGVtcGxhdGUgdXNpbmcgbG9jYWwgcmVuZGVyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlIC0gVGhlIHRlbXBsYXRlIHRvIGJlIHBhcnNlZC5cclxuICAgKiBAcGFyYW0gdGVtcGxhdGVWYXJpYWJsZXMgLSBUaGUgdmFyaWFibGVzIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHJlbmRlcmluZy5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHRlbXBsYXRlUGFyc2VMb2NhbGx5KHRlbXBsYXRlOiBzdHJpbmcsIHRlbXBsYXRlVmFyaWFibGVzOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgLi4uKHRlbXBsYXRlVmFyaWFibGVzPy5sZW5ndGggPyBKU09OLnBhcnNlKHRlbXBsYXRlVmFyaWFibGVzKSA6IHt9KSxcclxuICAgICAgVGFiU2RrOiB0aGlzLmNyZWF0ZVNka1Byb3h5KCksXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lLnBhcnNlQW5kUmVuZGVyKHRlbXBsYXRlID8/ICcnLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgdGVtcGxhdGUgdW5pdmVyc2FsbHksIGVpdGhlciB1c2luZyBsb2NhbCByZW5kZXJpbmcgb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBiZSB1c2VkIGZvciB0ZW1wbGF0ZSBwYXJzaW5nLlxyXG4gICAqIEBwYXJhbSBzaG91bGRGYWlsT25TZXJ2ZXJQYXJzZSAtIEluZGljYXRlcyB3aGV0aGVyIHRvIGZhaWwgb24gc2VydmVyLXNpZGUgcGFyc2UgaWYgbG9jYWwgcGFyc2luZyBmYWlscy5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBhcnNlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgdGVtcGxhdGVQYXJzZVVuaXZlcnNhbChkYXRhOiBUZW1wbGF0ZVBhcnNlUGF5bG9hZCwgb25GYWlsZWRQYXJzZU9uU2VydmVyID0gdHJ1ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnRlbXBsYXRlUGFyc2VMb2NhbGx5KGRhdGEuVmFsdWUsIGRhdGEuVGVtcGxhdGV2YXJpYWJsZXMpKS5waXBlKFxyXG4gICAgICBtYXAoKGh0bWwpID0+ICh7IFJlc3VsdDogaHRtbCB9KSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignTG9jYWwgcGFyc2UgZmFpbGVkJywgZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBvbkZhaWxlZFBhcnNlT25TZXJ2ZXIgPyB0aGlzLnRlbXBsYXRlUGFyc2UoZGF0YSkgOiBvZih7IFJlc3VsdDogJycgfSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHBhcnNpbmcuXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBwYXJzZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdGVtcGxhdGVQYXJzZShkYXRhOiBUZW1wbGF0ZVBhcnNlUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcblxyXG4gICAgLy8gTWFrZXMgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byBwYXJzZSB0aGUgdGVtcGxhdGUuXHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLnRlbXBsYXRlUGFyc2UsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHByb3h5IGZvciB0aGUgVGFiU2RrIG9iamVjdCB0byBleHBvc2UgaXRzIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMuXHJcbiAgICogVGhpcyBhbGxvd3MgdGVtcGxhdGVzIHRvIGFjY2VzcyBTREsgc2VydmljZXMgYW5kIHRoZWlyIHByb3BlcnRpZXMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzb2x2ZWQgU0RLIHNlcnZpY2VzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU2RrUHJveHkoKTogYW55IHtcclxuICAgIGNvbnN0IHNka1Jvb3QgPSAod2luZG93IGFzIGFueSk/LlRhYlNkaztcclxuICAgIGlmICghc2RrUm9vdCkgcmV0dXJuIHt9O1xyXG5cclxuICAgIGNvbnN0IHJlc29sdmVkU2RrOiBhbnkgPSB7fTtcclxuICAgIC8vIEdldCBzdGF0aWMgcHJvcGVydGllcyBhbmQgcmVzb2x2ZSB0aGVpciB2YWx1ZXNcclxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNka1Jvb3QpLmZvckVhY2goc2VydmljZU5hbWUgPT4ge1xyXG4gICAgICBpZiAoc2VydmljZU5hbWUgPT09ICdsZW5ndGgnIHx8IHNlcnZpY2VOYW1lID09PSAnbmFtZScgfHwgc2VydmljZU5hbWUgPT09ICdwcm90b3R5cGUnKSByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCBzZXJ2aWNlID0gc2RrUm9vdFtzZXJ2aWNlTmFtZV07XHJcbiAgICAgIGlmICghc2VydmljZSkgcmV0dXJuO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHJlc29sdmVkIHNlcnZpY2Ugb2JqZWN0XHJcbiAgICAgIHJlc29sdmVkU2RrW3NlcnZpY2VOYW1lXSA9IHRoaXMucmVzb2x2ZVNlcnZpY2VWYWx1ZXMoc2VydmljZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzb2x2ZWRTZGs7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyB0aGUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiBhIHNlcnZpY2Ugb2JqZWN0LlxyXG4gICAqIFRoaXMgaW5jbHVkZXMgYm90aCBzdGF0aWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgYXMgd2VsbCBhcyBwcm90b3R5cGUgcHJvcGVydGllcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlIC0gVGhlIHNlcnZpY2Ugb2JqZWN0IHRvIHJlc29sdmUuXHJcbiAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlc29sdmVkIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlU2VydmljZVZhbHVlcyhzZXJ2aWNlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuc2VydmljZUNhY2hlLmhhcyhzZXJ2aWNlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlQ2FjaGUuZ2V0KHNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc29sdmVkOiBhbnkgPSB7fTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGRlbnkgPSBuZXcgU2V0KFsnX19wcm90b19fJywgJ3Byb3RvdHlwZScsICdjb25zdHJ1Y3RvciddKTtcclxuICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAgICAgLy8gd2FsayB0aGUgd2hvbGUgcHJvdG90eXBlIGNoYWluIChpbnN0YW5jZSDihpIgYmFzZSBwcm90b3R5cGVzKSwgc3RvcCBhdCBPYmplY3QucHJvdG90eXBlXHJcbiAgICAgIGxldCBvYmo6IGFueSA9IHNlcnZpY2U7XHJcbiAgICAgIHdoaWxlIChvYmogJiYgb2JqICE9PSBPYmplY3QucHJvdG90eXBlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikpIHtcclxuICAgICAgICAgIGlmIChkZW55Lmhhcyhwcm9wKSB8fCBzZWVuLmhhcyhwcm9wKSkgY29udGludWU7XHJcbiAgICAgICAgICBzZWVuLmFkZChwcm9wKTtcclxuXHJcbiAgICAgICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGFsd2F5cyByZWFkIG9mZiB0aGUgb3JpZ2luYWwgaW5zdGFuY2Ugc28gZ2V0dGVycyBzZWUgY29ycmVjdCBgdGhpc2BcclxuICAgICAgICAgICAgdmFsdWUgPSBSZWZsZWN0LmdldChzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIC8vIGV4cG9zZSBhIGhhbmRsZSBzbyBMaXF1aWQgcGFzc2VzIGl0IHRocm91Z2ggdG8gdGhlIGBjYWxsYCBmaWx0ZXJcclxuICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB0aGlzLm1ha2VNZXRob2RIYW5kbGUoc2VydmljZSwgcHJvcCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB2YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzZXJ2aWNlPy5faXNQcm94eSkge1xyXG4gICAgICAgIC8vIFByb2JlIHRoZSBjb250ZXh0IGRpcmVjdGx5XHJcbiAgICAgICAgY29uc3QgY3R4ID0gKHNlcnZpY2UgYXMgYW55KS5fY29udGV4dDtcclxuICAgICAgICBpZiAoY3R4KSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHN2Y05hbWUgb2YgT2JqZWN0LmtleXMoY3R4KSkge1xyXG4gICAgICAgICAgICBjb25zdCBzdmMgPSBjdHhbc3ZjTmFtZV07XHJcbiAgICAgICAgICAgIGlmICghc3ZjKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzdmMuX19wcm90b19fIHx8IHN2YykpIHtcclxuICAgICAgICAgICAgICBpZiAoZGVueS5oYXMocHJvcCkgfHwgc2Vlbi5oYXMocHJvcCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgIHNlZW4uYWRkKHByb3ApO1xyXG5cclxuICAgICAgICAgICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBSZWZsZWN0LmdldChzZXJ2aWNlLCBwcm9wKTsgLy8gZm9yY2VzIHByb3h5IHRvIHJlc29sdmVcclxuICAgICAgICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB0aGlzLm1ha2VNZXRob2RIYW5kbGUoc2VydmljZSwgcHJvcCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1RlbXBsYXRlSGVscGVyOiByZXNvbHZlU2VydmljZVZhbHVlcyBmYWlsZWQnLCBlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlcnZpY2VDYWNoZS5zZXQoc2VydmljZSwgcmVzb2x2ZWQpO1xyXG4gICAgcmV0dXJuIHJlc29sdmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHNwZWNpYWwgaGFuZGxlIG9iamVjdCB0aGF0IHdyYXBzIGEgZnVuY3Rpb24gb3IgbWV0aG9kIHJlZmVyZW5jZS5cclxuICAgKiBUaGUgaGFuZGxlIGlzIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCBpbiB0aGVcclxuICAgKiB0ZW1wbGF0ZSBjb250ZXh0LCBhbmQgaXMgdXNlZCBieSB0aGUgYGNhbGxgIGZpbHRlciB0byBpbnZva2UgdGhlXHJcbiAgICogZnVuY3Rpb24gb3IgbWV0aG9kIHdpdGggcHJvdmlkZWQgYXJndW1lbnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudCAtIFRoZSBvYmplY3QgdGhhdCB0aGUgbWV0aG9kIGJlbG9uZ3MgdG8uXHJcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kLlxyXG4gICAqIEByZXR1cm5zIEEgaGFuZGxlIG9iamVjdCB0aGF0IHdyYXBzIHRoZSBmdW5jdGlvbiBvciBtZXRob2QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYWtlTWV0aG9kSGFuZGxlKHBhcmVudDogYW55LCBuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaGFuZGxlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGhhbmRsZSwge1xyXG4gICAgICBfX3Nka0hhbmRsZTogeyB2YWx1ZTogJ21ldGhvZCcsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfSxcclxuICAgICAgX19wYXJlbnQ6IHsgdmFsdWU6IHBhcmVudCwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9LFxyXG4gICAgICBfX25hbWU6IHsgdmFsdWU6IG5hbWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaGFuZGxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZmlsdGVyIHRvIGNhbGwgYSBmdW5jdGlvbiBvciBtZXRob2Qgd2l0aCBwcm92aWRlZCBhcmd1bWVudHMuXHJcbiAgICogVGhpcyBhbGxvd3MgdGVtcGxhdGVzIHRvIGludm9rZSBmdW5jdGlvbnMgb3IgbWV0aG9kcyBkeW5hbWljYWxseS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlZ2lzdGVyQ2FsbEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lLnJlZ2lzdGVyRmlsdGVyKCdjYWxsJywgYXN5bmMgKGlucHV0OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gY2FzZSBBOiBpbnB1dCBpcyBvdXIgbWV0aG9kIGhhbmRsZSAoZnJvbSByZXNvbHZlU2VydmljZVZhbHVlcylcclxuICAgICAgICBpZiAoaW5wdXQgJiYgaW5wdXQuX19zZGtIYW5kbGUgPT09ICdtZXRob2QnICYmIGlucHV0Ll9fcGFyZW50ICYmIGlucHV0Ll9fbmFtZSkge1xyXG4gICAgICAgICAgY29uc3QgZm4gPSBSZWZsZWN0LmdldChpbnB1dC5fX3BhcmVudCwgaW5wdXQuX19uYW1lKTtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgcmVzID0gZm4uYXBwbHkoaW5wdXQuX19wYXJlbnQsIGFyZ3MpO1xyXG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJlczsgLy8gc3luYyBvciBhc3luY1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2FzZSBCOiBpbnB1dCBpcyBhbiBvYmplY3QgYW5kIGZpcnN0IGFyZyBpcyB0aGUgbWV0aG9kIG5hbWVcclxuICAgICAgICBpZiAoaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBhcmdzWzBdO1xyXG4gICAgICAgICAgaWYgKG1ldGhvZE5hbWUgPT09ICdfX3Byb3RvX18nIHx8IG1ldGhvZE5hbWUgPT09ICdwcm90b3R5cGUnIHx8IG1ldGhvZE5hbWUgPT09ICdjb25zdHJ1Y3RvcicpIHJldHVybiAnJztcclxuICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IFJlZmxlY3QuZ2V0KGlucHV0LCBtZXRob2ROYW1lKTtcclxuICAgICAgICAgIGNvbnN0IHJlc3QgPSBhcmdzLnNsaWNlKDEpO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBtZXRob2QgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzID0gbWV0aG9kLmFwcGx5KGlucHV0LCByZXN0KTtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIG5vdCBhIGZ1bmN0aW9uIOKGkiB0cmVhdCBhcyBwcm9wZXJ0eSBmYWxsYmFja1xyXG4gICAgICAgICAgcmV0dXJuIG1ldGhvZCA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIChmYWxsYmFjaykgZnVuY3Rpb25zIHNob3VsZCBub3QgcmVhY2ggTGlxdWlkLCBidXQga2VlcCBmb3Igc2FmZXR5XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gaW5wdXQoLi4uYXJncyk7XHJcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZmlsdGVyIHRvIGFjY2VzcyBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCB1c2luZyBkb3Qgb3IgYnJhY2tldCBub3RhdGlvbi5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gYWNjZXNzIG5lc3RlZCBwcm9wZXJ0aWVzIHNhZmVseS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlZ2lzdGVyUHJvcEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lLnJlZ2lzdGVyRmlsdGVyKCdwcm9wJywgKGlucHV0OiBhbnksIHBhdGg6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaW5wdXQgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnIHx8ICFwYXRoLnRyaW0oKSkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgLy8gc3VwcG9ydCBkb3QgJiBzaW1wbGUgYnJhY2tldCBub3RhdGlvbjogYS5iLCBhWzBdLCBhW2tleV1cclxuICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhcXGQrKVxcXS9nLCAnLiQxJykgICAgIC8vIFswXSAtPiAuMFxyXG4gICAgICAgIC5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpICAgICAvLyBba2V5XSAtPiAua2V5XHJcbiAgICAgICAgLnNwbGl0KCcuJylcclxuICAgICAgICAubWFwKHMgPT4gcy50cmltKCkpXHJcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICAgIGxldCBjdXI6IGFueSA9IGlucHV0O1xyXG5cclxuICAgICAgZm9yIChjb25zdCBzZWcgb2Ygc2VnbWVudHMpIHtcclxuICAgICAgICBpZiAoY3VyID09IG51bGwpIHJldHVybiAnJztcclxuXHJcbiAgICAgICAgY29uc3QgaWR4ID0gTnVtYmVyKHNlZyk7XHJcbiAgICAgICAgY29uc3Qga2V5OiBhbnkgPSBOdW1iZXIuaXNOYU4oaWR4KSA/IHNlZyA6IGlkeDtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGN1ciA9IFJlZmxlY3QuZ2V0KGN1ciwga2V5KTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBjdXIgPz8gJyc7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|