@yibozhang/pro-table 0.0.12 → 0.0.13
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/bundles/yibozhang-pro-table.umd.js +1 -0
- package/bundles/yibozhang-pro-table.umd.js.map +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js.map +1 -1
- package/esm2015/lib/page-public/array-form.js +2 -1
- package/fesm2015/yibozhang-pro-table.js +1 -0
- package/fesm2015/yibozhang-pro-table.js.map +1 -1
- package/lib/page-public/array-form.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -130,6 +130,7 @@ export class ArrayFormService {
|
|
|
130
130
|
delete item.isEdit;
|
|
131
131
|
delete item.isAdd;
|
|
132
132
|
delete item.uid;
|
|
133
|
+
delete item.disabled;
|
|
133
134
|
return item;
|
|
134
135
|
});
|
|
135
136
|
}
|
|
@@ -365,4 +366,4 @@ ArrayFormService.decorators = [
|
|
|
365
366
|
},] }
|
|
366
367
|
];
|
|
367
368
|
ArrayFormService.ctorParameters = () => [];
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJEOi9wcm9qZWN0cy92cHMtZnJvbnQvRnJvbnQvRGFzUE1TV2ViL2xpYi9wcm8tdGFibGUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2UtcHVibGljL2FycmF5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUF3RHBDLGtCQUFrQjtBQUlsQixNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRlEsY0FBUyxHQUFtQixFQUFFLENBQUM7SUFFeEIsQ0FBQztJQUVoQixZQUFZO0lBQ0osVUFBVSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7WUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixPQUFPLENBQUMs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QUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUVELFlBQVk7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVmLFlBQVk7UUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUUxQixZQUFZO1FBQ1osSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUU1QixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFckIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7O1lBcGRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xyXG5cclxuLyoqIOWtl+auteagoemqjOe7k+aenOexu+WeiyAqL1xyXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVzdWx0ID0gc3RyaW5nO1xyXG5cclxuLyoqIOWtl+auteagoemqjOaWueazleexu+WeiyAqL1xyXG5leHBvcnQgdHlwZSBGaWVsZFZhbGlkYXRvciA9IChcclxuICB2YWx1ZTogYW55LFxyXG4gIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gIGZpZWxkTmFtZTogc3RyaW5nXHJcbikgPT4gVmFsaWRhdGlvblJlc3VsdDtcclxuXHJcbi8qKiDlrZfmrrXphY3nva7mjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZENvbmZpZyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcj86IEZpZWxkVmFsaWRhdG9yO1xyXG59XHJcblxyXG4vKiog5pWw57uE6KGo5Y2V6KGM5pWw5o2u5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtUm93IHtcclxuICB1aWQ/OiBzdHJpbmc7XHJcbiAgaXNFZGl0PzogYm9vbGVhbjtcclxuICBpc0FkZD86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqIOaVsOe7hOihqOWNlemFjee9ruaOpeWPoyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybUNvbmZpZyB7XHJcbiAgZmllbGRzOiBGaWVsZENvbmZpZ1tdO1xyXG4gIGRlZmF1bHRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIC8vIOiHquWKqOabtOaWsOebruagh+WvueixoeWSjOWxnuaAp+WQje+8jOeUqOS6juinpuWPkSBBbmd1bGFyIOWPmOWMluajgOa1i1xyXG4gIHRhcmdldE9iamVjdD86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgYXJyYXlQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiDooajljZXlrZjlgqjpobnmjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1TdG9yZUl0ZW0ge1xyXG4gIGRhdGE6IEFycmF5Rm9ybVJvd1tdO1xyXG4gIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnO1xyXG4gIHZhbGlkYXRpb25SZXN1bHRzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4+O1xyXG4gIC8qKiDliJ3lp4vlgLzlv6vnhafvvIznlKjkuo7oh6rliqjmo4DmtYvlrZfmrrXmmK/lkKbooqvkv67mlLkgKi9cclxuICBpbml0aWFsU25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xyXG4gIC8qKiDnvJbovpHml7blv6vnhafvvIznlKjkuo7lj5bmtojnvJbovpHml7bmgaLlpI3mlbDmja4gKi9cclxuICBlZGl0aW5nU25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xyXG4gIC8qKiDmmK/lkKbmoIforrDmiYDmnInlrZfmrrXkuLrlt7Lop6bnorDvvIjmlbTkuKrooajljZXmj5DkuqTml7borr7kuLogdHJ1Ze+8iSAqL1xyXG4gIGFsbFRvdWNoZWQ6IGJvb2xlYW47XHJcbiAgLyoqIOavj+ihjOeahCB0b3VjaGVkIOeKtuaAge+8iOWNleihjOS/neWtmOaXtuiuvuS4uiB0cnVl77yJICovXHJcbiAgcm93VG91Y2hlZDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XHJcbn1cclxuXHJcbi8qKiDooajljZXlrZjlgqjmjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1TdG9yZSB7XHJcbiAgW2Zvcm1OYW1lOiBzdHJpbmddOiBBcnJheUZvcm1TdG9yZUl0ZW07XHJcbn1cclxuXHJcbi8qKiDmlbDnu4TlnovmlbDmja7mlLbpm4bln7rnoYDmnI3liqEgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBmb3JtU3RvcmU6IEFycmF5Rm9ybVN0b3JlID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgLyoqIOa3seW6puWFi+mahuWAvCAqL1xyXG4gIHByaXZhdGUgY2xvbmVWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLmNsb25lVmFsdWUoaXRlbSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBjb25zdCBjbG9uZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XHJcbiAgICAgICAgY2xvbmVkW2tleV0gPSB0aGlzLmNsb25lVmFsdWUodmFsdWVba2V5XSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNsb25lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDmr5TovoPkuKTkuKrlgLzmmK/lkKbnm7jnrYkgKi9cclxuICBwcml2YXRlIGlzRXF1YWwoYTogYW55LCBiOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmIChhID09PSBiKSByZXR1cm4gdHJ1ZTtcclxuICAgIGlmIChhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHJldHVybiBhID09PSBiO1xyXG4gICAgaWYgKGEgPT09IHVuZGVmaW5lZCB8fCBiID09PSB1bmRlZmluZWQpIHJldHVybiBhID09PSBiO1xyXG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICByZXR1cm4gYS5ldmVyeSgoaXRlbSwgaW5kZXgpID0+IHRoaXMuaXNFcXVhbChpdGVtLCBiW2luZGV4XSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgYiA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xyXG4gICAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xyXG4gICAgICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIGtleXNBLmV2ZXJ5KChrZXkpID0+IHRoaXMuaXNFcXVhbChhW2tleV0sIGJba2V5XSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiDliJvlu7rooYznmoTliJ3lp4vlgLzlv6vnhacgKi9cclxuICBwcml2YXRlIGNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZHM6IEZpZWxkQ29uZmlnW11cclxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgIGNvbnN0IHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgc25hcHNob3RbZmllbGQubmFtZV0gPSB0aGlzLmNsb25lVmFsdWUocm93W2ZpZWxkLm5hbWVdKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNuYXBzaG90O1xyXG4gIH1cclxuXHJcbiAgLyoqIOWIneWni+WMluaVsOe7hOaVsOaNru+8jOa3u+WKoCB1aWQg5ZKMIGlzRWRpdCDlrZfmrrUgKi9cclxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKGRhdGE6IGFueVtdKTogQXJyYXlGb3JtUm93W10ge1xyXG4gICAgcmV0dXJuIGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLmVucmljaFJvdyhpdGVtKSk7XHJcbiAgfVxyXG5cclxuICAvKiog5Li65Y2V6KGM5pWw5o2u5re75YqgIHVpZCDlkowgaXNFZGl0IOWtl+autSAqL1xyXG4gIHByaXZhdGUgZW5yaWNoUm93KHJvdzogYW55KTogQXJyYXlGb3JtUm93IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnJvdyxcclxuICAgICAgdWlkOiByb3cudWlkIHx8IHV1aWR2NCgpLFxyXG4gICAgICBpc0VkaXQ6IHJvdy5pc0VkaXQgIT09IHVuZGVmaW5lZCA/IHJvdy5pc0VkaXQgOiBmYWxzZSxcclxuICAgICAgZGlzYWJsZWQ6IHJvdy5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkID8gcm93LmRpc2FibGVkIDogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIOaWsOWinuS4gOihjOaVsOaNriAqL1xyXG4gIHByaXZhdGUgYWRkUm93KFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IEFycmF5Rm9ybVJvdyB7XHJcbiAgICBjb25zdCBuZXdSb3c6IEFycmF5Rm9ybVJvdyA9IHtcclxuICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcclxuICAgICAgdWlkOiB1dWlkdjQoKSxcclxuICAgICAgaXNFZGl0OiB0cnVlLFxyXG4gICAgICBpc0FkZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIGRhdGEucHVzaChuZXdSb3cpO1xyXG4gICAgcmV0dXJuIG5ld1JvdztcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozljZXkuKrlrZfmrrUgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlRmllbGQoXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgY29uZmlnOiBBcnJheUZvcm1Db25maWdcclxuICApOiBWYWxpZGF0aW9uUmVzdWx0IHtcclxuICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gY29uZmlnLmZpZWxkcy5maW5kKChmKSA9PiBmLm5hbWUgPT09IGZpZWxkTmFtZSk7XHJcblxyXG4gICAgaWYgKCFmaWVsZENvbmZpZykge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmllbGRDb25maWcudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZENvbmZpZy52YWxpZGF0b3Iocm93W2ZpZWxkTmFtZV0sIHJvdywgZmllbGROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozmlbTooYzmlbDmja4gKi9cclxuICBwcml2YXRlIHZhbGlkYXRlUm93KFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+ID0ge307XHJcblxyXG4gICAgY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICByZXN1bHRzW2ZpZWxkQ29uZmlnLm5hbWVdID0gdGhpcy52YWxpZGF0ZUZpZWxkKFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmaWVsZENvbmZpZy5uYW1lLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5pW05Liq5pWw57uEICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZURhdGEoXHJcbiAgICBkYXRhOiBBcnJheUZvcm1Sb3dbXSxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4+IHtcclxuICAgIGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiA9IHt9O1xyXG5cclxuICAgIGRhdGEuZm9yRWFjaCgocm93KSA9PiB7XHJcbiAgICAgIHJlc3VsdHNbcm93LnVpZF0gPSB0aGlzLnZhbGlkYXRlUm93KHJvdywgY29uZmlnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgLyoqIOazqOWGjOihqOWNleWIsOWtmOWCqCAqL1xyXG4gIHJlZ2lzdGVyRm9ybShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBBcnJheUZvcm1Sb3dbXSxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbml0aWFsaXplZERhdGEgPSB0aGlzLmluaXRpYWxpemVEYXRhKGRhdGEpO1xyXG5cclxuICAgIC8vIOiusOW9leWIneWni+WAvOW/q+eFp1xyXG4gICAgY29uc3QgaW5pdGlhbFNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xyXG4gICAgaW5pdGlhbGl6ZWREYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICBpbml0aWFsU25hcHNob3Rbcm93LnVpZCFdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChyb3csIGNvbmZpZy5maWVsZHMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdID0ge1xyXG4gICAgICBkYXRhOiBpbml0aWFsaXplZERhdGEsXHJcbiAgICAgIGNvbmZpZyxcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdHM6IHt9LFxyXG4gICAgICBpbml0aWFsU25hcHNob3QsXHJcbiAgICAgIGVkaXRpbmdTbmFwc2hvdDoge30sXHJcbiAgICAgIGFsbFRvdWNoZWQ6IGZhbHNlLFxyXG4gICAgICByb3dUb3VjaGVkOiB7fSxcclxuICAgIH07XHJcbiAgICAvLyDlpoLmnpzphY3nva7kuoboh6rliqjmm7TmlrDvvIznq4vljbPmm7TmlrDkuIDmrKFcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKiDku47lrZjlgqjkuK3ojrflj5booajljZUgKi9cclxuICBnZXRGb3JtKGZvcm1OYW1lOiBzdHJpbmcpOiBBcnJheUZvcm1TdG9yZUl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKiDku47lrZjlgqjkuK3ojrflj5booajljZXmlbDmja4gKi9cclxuICBnZXRGb3JtRGF0YShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmdcclxuICApOlxyXG4gICAgfCBBcnJheTxQaWNrPEFycmF5Rm9ybVJvdywgXCJ1aWRcIiB8IFwiaXNFZGl0XCIgfCBcImlzQWRkXCIgfCBrZXlvZiBBcnJheUZvcm1Sb3c+PlxyXG4gICAgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm0uZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgZGVsZXRlIGl0ZW0uaXNFZGl0O1xyXG4gICAgICBkZWxldGUgaXRlbS5pc0FkZDtcclxuICAgICAgZGVsZXRlIGl0ZW0udWlkO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOWQkeihqOWNlea3u+WKoOihjCAqL1xyXG4gIGFkZFJvd1RvRm9ybShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IEFycmF5Rm9ybVJvdyB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdSb3cgPSB0aGlzLmFkZFJvdyhmb3JtLmRhdGEsIGRlZmF1bHRWYWx1ZXMpO1xyXG4gICAgLy8g5Li65paw6KGM6K6w5b2V5Yid5aeL5YC85b+r54WnXHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtuZXdSb3cudWlkIV0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICBuZXdSb3csXHJcbiAgICAgIGZvcm0uY29uZmlnLmZpZWxkc1xyXG4gICAgKTtcclxuICAgIC8vIOiHquWKqOabtOaWsOWklumDqOaVsOe7hOW8leeUqFxyXG4gICAgdGhpcy5hdXRvVXBkYXRlQXJyYXlSZWZlcmVuY2UoZm9ybU5hbWUpO1xyXG4gICAgcmV0dXJuIG5ld1JvdztcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozooajljZXvvIzoh6rliqjmoIforrDmiYDmnInlrZfmrrXkuLrlt7Lop6bnorAgKi9cclxuICB2YWxpZGF0ZUZvcm0oZm9ybU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIOagh+iusOaJgOacieWtl+auteS4uuW3suinpueisFxyXG4gICAgZm9ybS5hbGxUb3VjaGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSB0aGlzLnZhbGlkYXRlRGF0YShmb3JtLmRhdGEsIGZvcm0uY29uZmlnKTtcclxuICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSByZXN1bHRzO1xyXG5cclxuICAgIC8vIOajgOafpeaYr+WQpuacieS7u+S9lemUmeivr1xyXG4gICAgZm9yIChjb25zdCB1aWQgb2YgT2JqZWN0LmtleXMocmVzdWx0cykpIHtcclxuICAgICAgZm9yIChjb25zdCBmaWVsZE5hbWUgb2YgT2JqZWN0LmtleXMocmVzdWx0c1t1aWRdKSkge1xyXG4gICAgICAgIGlmIChyZXN1bHRzW3VpZF1bZmllbGROYW1lXSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiog5byA5ZCv57yW6L6R5qih5byP77yM5L+d5a2Y5b+r54Wn55So5LqO5Y+W5raI5oGi5aSNICovXHJcbiAgZW5hYmxlRWRpdChmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmIChmb3JtICYmIHJvdy51aWQpIHtcclxuICAgICAgLy8g5L+d5a2Y57yW6L6R5YmN55qE5b+r54WnXHJcbiAgICAgIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChcclxuICAgICAgICByb3csXHJcbiAgICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByb3cuaXNFZGl0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDlj5bmtojnvJbovpHvvIzmgaLlpI3liLDnvJbovpHliY3nmoTmlbDmja4gKi9cclxuICBkaXNhYmxlRWRpdChmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmIChmb3JtICYmIHJvdy51aWQgJiYgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF0pIHtcclxuICAgICAgLy8g5oGi5aSN57yW6L6R5YmN55qE5pWw5o2uXHJcbiAgICAgIGNvbnN0IHNuYXBzaG90ID0gZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICAgIGZvcm0uY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIHJvd1tmaWVsZC5uYW1lXSA9IHRoaXMuY2xvbmVWYWx1ZShzbmFwc2hvdFtmaWVsZC5uYW1lXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyDmm7TmlrDliJ3lp4vlv6vnhafkuLrmgaLlpI3lkI7nmoTlgLzvvIzmtojpmaQgdG91Y2hlZCDnirbmgIFcclxuICAgICAgZm9ybS5pbml0aWFsU25hcHNob3Rbcm93LnVpZF0gPSB0aGlzLmNsb25lVmFsdWUoc25hcHNob3QpO1xyXG4gICAgICAvLyDmuIXnkIbnvJbovpHlv6vnhaflkowgdG91Y2hlZCDnirbmgIFcclxuICAgICAgZGVsZXRlIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgICBkZWxldGUgZm9ybS5yb3dUb3VjaGVkW3Jvdy51aWRdO1xyXG4gICAgICAvLyDmuIXnkIbor6XooYznmoTmoKHpqoznu5PmnpxcclxuICAgICAgaWYgKGZvcm0udmFsaWRhdGlvblJlc3VsdHMpIHtcclxuICAgICAgICBkZWxldGUgZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcm93LmlzRWRpdCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOehruiupOe8lui+ke+8jOS/neeVmeS/ruaUueWQjueahOaVsOaNriAqL1xyXG4gIGNvbmZpcm1FZGl0KGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKGZvcm0gJiYgcm93LnVpZCkge1xyXG4gICAgICAvLyDmuIXnkIbnvJbovpHlv6vnhafvvIjkv53nlZnlvZPliY3mlbDmja7vvIlcclxuICAgICAgaWYgKGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdKSB7XHJcbiAgICAgICAgZGVsZXRlIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOabtOaWsOWIneWni+W/q+eFp+S4uuW9k+WJjeWAvO+8iOeUqOS6juWQjue7rSB0b3VjaGVkIOajgOa1i++8iVxyXG4gICAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgICAgcm93LFxyXG4gICAgICAgIGZvcm0uY29uZmlnLmZpZWxkc1xyXG4gICAgICApO1xyXG4gICAgICAvLyDmuIXpmaQgdG91Y2hlZCDnirbmgIHvvIzln7rkuo7mlrDnmoQgaW5pdGlhbFNuYXBzaG90IOmHjeaWsOWIpOaWrVxyXG4gICAgICBkZWxldGUgZm9ybS5yb3dUb3VjaGVkW3Jvdy51aWRdO1xyXG4gICAgfVxyXG4gICAgcm93LmlzRWRpdCA9IGZhbHNlO1xyXG4gICAgcm93LmlzQWRkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiog5LuO6KGo5Y2V5Lit5Yig6Zmk5oyH5a6a6KGMICovXHJcbiAgZGVsZXRlUm93RnJvbUZvcm0oZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIXJvdy51aWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5kZXggPSBmb3JtLmRhdGEuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnVpZCA9PT0gcm93LnVpZCk7XHJcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvcm0uZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgLy8g5riF55CG6K+l6KGM55qE5omA5pyJ5b+r54Wn44CBdG91Y2hlZCDnirbmgIHlkozmoKHpqoznu5PmnpxcclxuICAgIGRlbGV0ZSBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgIGRlbGV0ZSBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgIGRlbGV0ZSBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF07XHJcbiAgICBpZiAoZm9ybS52YWxpZGF0aW9uUmVzdWx0cykge1xyXG4gICAgICBkZWxldGUgZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkXTtcclxuICAgIH1cclxuICAgIC8vIOiHquWKqOabtOaWsOWklumDqOaVsOe7hOW8leeUqFxyXG4gICAgdGhpcy5hdXRvVXBkYXRlQXJyYXlSZWZlcmVuY2UoZm9ybU5hbWUpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiog5qOA5rWL5a2X5q615piv5ZCm5bey6KKr6Kem56KwICovXHJcbiAgcHJpdmF0ZSBpc0ZpZWxkVG91Y2hlZChcclxuICAgIGZvcm06IEFycmF5Rm9ybVN0b3JlSXRlbSxcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmdcclxuICApOiBib29sZWFuIHtcclxuICAgIC8vIOaVtOS4quihqOWNleW3siB0b3VjaGVk77yI5pW05Liq6KGo5Y2V5o+Q5Lqk5pe277yJXHJcbiAgICBpZiAoZm9ybS5hbGxUb3VjaGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8g5b2T5YmN6KGM5beyIHRvdWNoZWTvvIjljZXooYzkv53lrZjml7bvvIlcclxuICAgIGlmIChmb3JtLnJvd1RvdWNoZWRbcm93LnVpZCFdKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8g5qOA5rWL5b2T5YmN5YC85LiO5Yid5aeL5YC85piv5ZCm5LiN5ZCMXHJcbiAgICBjb25zdCBpbml0aWFsVmFsdWUgPSBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkIV0/LltmaWVsZE5hbWVdO1xyXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gcm93W2ZpZWxkTmFtZV07XHJcbiAgICByZXR1cm4gIXRoaXMuaXNFcXVhbChpbml0aWFsVmFsdWUsIGN1cnJlbnRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5oyH5a6a6KGM55qE5oyH5a6a5a2X5q6177yM5pyq5L+u5pS55pe25LiN5pi+56S65qCh6aqM54q25oCBICovXHJcbiAgdmFsaWRhdGVGaWVsZEluUm93KFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmdcclxuICApOiBcInN1Y2Nlc3NcIiB8IFwiZXJyb3JcIiB8IFwiXCIge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IGZvcm0uY29uZmlnLmZpZWxkcy5maW5kKChmKSA9PiBmLm5hbWUgPT09IGZpZWxkTmFtZSk7XHJcbiAgICBpZiAoIWZpZWxkQ29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOaJp+ihjOagoemqjFxyXG4gICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IFwiXCI7XHJcbiAgICBpZiAoZmllbGRDb25maWcudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJlc3VsdCA9IGZpZWxkQ29uZmlnLnZhbGlkYXRvcihyb3dbZmllbGROYW1lXSwgcm93LCBmaWVsZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOabtOaWsOagoemqjOe7k+aenOWtmOWCqFxyXG4gICAgaWYgKCFmb3JtLnZhbGlkYXRpb25SZXN1bHRzKSB7XHJcbiAgICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSB7fTtcclxuICAgIH1cclxuICAgIGlmICghZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkIV0pIHtcclxuICAgICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkIV0gPSB7fTtcclxuICAgIH1cclxuICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZCFdW2ZpZWxkTmFtZV0gPSByZXN1bHQ7XHJcblxyXG4gICAgLy8g5aaC5p6c5a2X5q615pyq6KKr6Kem56Kw77yM5LiN5pi+56S65qCh6aqM54q25oCBXHJcbiAgICBpZiAoIXRoaXMuaXNGaWVsZFRvdWNoZWQoZm9ybSwgcm93LCBmaWVsZE5hbWUpKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQgPyBcImVycm9yXCIgOiBcInN1Y2Nlc3NcIjtcclxuICB9XHJcblxyXG4gIC8qKiDojrflj5bmjIflrprooYzmjIflrprlrZfmrrXnmoTmoKHpqozplJnor6/kv6Hmga8gKi9cclxuICBnZXRGaWVsZEVycm9yTWVzc2FnZShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIXJvdy51aWQpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICAvLyDlpoLmnpzlrZfmrrXmnKrooqvop6bnorDvvIzkuI3mmL7npLrplJnor6/kv6Hmga9cclxuICAgIGlmICghdGhpcy5pc0ZpZWxkVG91Y2hlZChmb3JtLCByb3csIGZpZWxkTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybS52YWxpZGF0aW9uUmVzdWx0cz8uW3Jvdy51aWRdPy5bZmllbGROYW1lXSB8fCBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOaMh+WumuihjOeahOaJgOacieWtl+autSAqL1xyXG4gIHZhbGlkYXRlUm93QWxsRmllbGRzKGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtIHx8ICFyb3cudWlkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOabtOaWsOWIneWni+W/q+eFp+S4uuW9k+WJjeWAvFxyXG4gICAgZm9ybS5pbml0aWFsU25hcHNob3Rbcm93LnVpZF0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICByb3csXHJcbiAgICAgIGZvcm0uY29uZmlnLmZpZWxkc1xyXG4gICAgKTtcclxuICAgIC8vIOagh+iusOW9k+WJjeihjOS4uiB0b3VjaGVk77yI5Y+q5b2x5ZON5b2T5YmN6KGM77yM5LiN5b2x5ZON5YW25LuW6KGM77yJXHJcbiAgICBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF0gPSB0cnVlO1xyXG5cclxuICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xyXG5cclxuICAgIGZvcm0uY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnZhbGlkYXRlRmllbGRJblJvdyhmb3JtTmFtZSwgcm93LCBmaWVsZENvbmZpZy5uYW1lKTtcclxuICAgICAgaWYgKHJlc3VsdCA9PT0gXCJlcnJvclwiKSB7XHJcbiAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gIWhhc0Vycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqIOiHquWKqOabtOaWsOWklumDqOaVsOe7hOW8leeUqCAqL1xyXG4gIHByaXZhdGUgYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIWZvcm0uY29uZmlnLnRhcmdldE9iamVjdCB8fCAhZm9ybS5jb25maWcuYXJyYXlQcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBmb3JtLmRhdGEgPyBbLi4uZm9ybS5kYXRhXSA6IFtdO1xyXG4gICAgLy8g5pu05paw55uu5qCH5a+56LGh55qE5pWw57uE5bGe5oCn5Li65paw5pWw57uE5byV55SoXHJcbiAgICAoZm9ybS5jb25maWcudGFyZ2V0T2JqZWN0IGFzIGFueSlbZm9ybS5jb25maWcuYXJyYXlQcm9wZXJ0eU5hbWVdID0gbmV3QXJyYXk7XHJcbiAgfVxyXG5cclxuICAvKiog5piv5ZCm5pyJ5q2j5Zyo57yW6L6R55qE6KGMICovXHJcbiAgaGFzRWRpdGluZ1Jvdyhmb3JtTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtLmRhdGEuc29tZSgoaXRlbSkgPT4gaXRlbS5pc0VkaXQpO1xyXG4gIH1cclxuXHJcbiAgLy8g6ZSA5q+B5a+55bqU55qE6KGo5Y2VXHJcbiAgZGVzdG9yeShuYW1lczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIG5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9ybVN0b3JlW25hbWVdKSB7XHJcbiAgICAgICAgLy8g5riF55CG6KGo5Y2V5pWw5o2uXHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybVN0b3JlW25hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIOmHjee9ruihqOWNleaVsOe7hFxyXG4gIHJlc2V0Rm9ybUFycmF5KG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW25hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAxLiDmuIXnqbrmlbDmja7mlbDnu4RcclxuICAgIGZvcm0uZGF0YSA9IFtdO1xyXG5cclxuICAgIC8vIDIuIOa4heeQhuaJgOacieW/q+eFp1xyXG4gICAgZm9ybS5pbml0aWFsU25hcHNob3QgPSB7fTtcclxuICAgIGZvcm0uZWRpdGluZ1NuYXBzaG90ID0ge307XHJcblxyXG4gICAgLy8gMy4g5riF55CG5qCh6aqM57uT5p6cXHJcbiAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzID0ge307XHJcblxyXG4gICAgLy8gNC4g6YeN572uIHRvdWNoZWQg54q25oCBXHJcbiAgICBmb3JtLmFsbFRvdWNoZWQgPSBmYWxzZTtcclxuICAgIGZvcm0ucm93VG91Y2hlZCA9IHt9O1xyXG5cclxuICAgIC8vIDUuIOWmguaenOmFjee9ruS6huiHquWKqOabtOaWsO+8jOabtOaWsOWklumDqOaVsOe7hOW8leeUqFxyXG4gICAgdGhpcy5hdXRvVXBkYXRlQXJyYXlSZWZlcmVuY2UobmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJEOi9wcm9qZWN0cy92cHMtZnJvbnQvRnJvbnQvRGFzUE1TV2ViL2xpYi9wcm8tdGFibGUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2UtcHVibGljL2FycmF5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUF3RHBDLGtCQUFrQjtBQUlsQixNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRlEsY0FBUyxHQUFtQixFQUFFLENBQUM7SUFFeEIsQ0FBQztJQUVoQixZQUFZO0lBQ0osVUFBVSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7WUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixPQUFPLENBQUMs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R0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCxZQUFZO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZixZQUFZO1FBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFMUIsWUFBWTtRQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFNUIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXJCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7OztZQXJkRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcclxuXHJcbi8qKiDlrZfmrrXmoKHpqoznu5PmnpznsbvlnosgKi9cclxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IHN0cmluZztcclxuXHJcbi8qKiDlrZfmrrXmoKHpqozmlrnms5XnsbvlnosgKi9cclxuZXhwb3J0IHR5cGUgRmllbGRWYWxpZGF0b3IgPSAoXHJcbiAgdmFsdWU6IGFueSxcclxuICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4pID0+IFZhbGlkYXRpb25SZXN1bHQ7XHJcblxyXG4vKiog5a2X5q616YWN572u5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRDb25maWcge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWxpZGF0b3I/OiBGaWVsZFZhbGlkYXRvcjtcclxufVxyXG5cclxuLyoqIOaVsOe7hOihqOWNleihjOaVsOaNruaOpeWPoyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybVJvdyB7XHJcbiAgdWlkPzogc3RyaW5nO1xyXG4gIGlzRWRpdD86IGJvb2xlYW47XHJcbiAgaXNBZGQ/OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKiDmlbDnu4TooajljZXphY3nva7mjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1Db25maWcge1xyXG4gIGZpZWxkczogRmllbGRDb25maWdbXTtcclxuICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAvLyDoh6rliqjmm7TmlrDnm67moIflr7nosaHlkozlsZ7mgKflkI3vvIznlKjkuo7op6blj5EgQW5ndWxhciDlj5jljJbmo4DmtYtcclxuICB0YXJnZXRPYmplY3Q/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIGFycmF5UHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKiog6KGo5Y2V5a2Y5YKo6aG55o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtU3RvcmVJdGVtIHtcclxuICBkYXRhOiBBcnJheUZvcm1Sb3dbXTtcclxuICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZztcclxuICB2YWxpZGF0aW9uUmVzdWx0cz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PjtcclxuICAvKiog5Yid5aeL5YC85b+r54Wn77yM55So5LqO6Ieq5Yqo5qOA5rWL5a2X5q615piv5ZCm6KKr5L+u5pS5ICovXHJcbiAgaW5pdGlhbFNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuICAvKiog57yW6L6R5pe25b+r54Wn77yM55So5LqO5Y+W5raI57yW6L6R5pe25oGi5aSN5pWw5o2uICovXHJcbiAgZWRpdGluZ1NuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuICAvKiog5piv5ZCm5qCH6K6w5omA5pyJ5a2X5q615Li65bey6Kem56Kw77yI5pW05Liq6KGo5Y2V5o+Q5Lqk5pe26K6+5Li6IHRydWXvvIkgKi9cclxuICBhbGxUb3VjaGVkOiBib29sZWFuO1xyXG4gIC8qKiDmr4/ooYznmoQgdG91Y2hlZCDnirbmgIHvvIjljZXooYzkv53lrZjml7borr7kuLogdHJ1Ze+8iSAqL1xyXG4gIHJvd1RvdWNoZWQ6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xyXG59XHJcblxyXG4vKiog6KGo5Y2V5a2Y5YKo5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtU3RvcmUge1xyXG4gIFtmb3JtTmFtZTogc3RyaW5nXTogQXJyYXlGb3JtU3RvcmVJdGVtO1xyXG59XHJcblxyXG4vKiog5pWw57uE5Z6L5pWw5o2u5pS26ZuG5Z+656GA5pyN5YqhICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgZm9ybVN0b3JlOiBBcnJheUZvcm1TdG9yZSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIC8qKiDmt7HluqblhYvpmoblgLwgKi9cclxuICBwcml2YXRlIGNsb25lVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5jbG9uZVZhbHVlKGl0ZW0pKTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgY29uc3QgY2xvbmVkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xyXG4gICAgICAgIGNsb25lZFtrZXldID0gdGhpcy5jbG9uZVZhbHVlKHZhbHVlW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiog5q+U6L6D5Lik5Liq5YC85piv5ZCm55u4562JICovXHJcbiAgcHJpdmF0ZSBpc0VxdWFsKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoYSA9PT0gbnVsbCB8fCBiID09PSBudWxsKSByZXR1cm4gYSA9PT0gYjtcclxuICAgIGlmIChhID09PSB1bmRlZmluZWQgfHwgYiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gYSA9PT0gYjtcclxuICAgIGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpKSB7XHJcbiAgICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIGEuZXZlcnkoKGl0ZW0sIGluZGV4KSA9PiB0aGlzLmlzRXF1YWwoaXRlbSwgYltpbmRleF0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGEgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGIgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhhKTtcclxuICAgICAgY29uc3Qga2V5c0IgPSBPYmplY3Qua2V5cyhiKTtcclxuICAgICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIHJldHVybiBrZXlzQS5ldmVyeSgoa2V5KSA9PiB0aGlzLmlzRXF1YWwoYVtrZXldLCBiW2tleV0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiog5Yib5bu66KGM55qE5Yid5aeL5YC85b+r54WnICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVSb3dTbmFwc2hvdChcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGRzOiBGaWVsZENvbmZpZ1tdXHJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBjb25zdCBzbmFwc2hvdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgIHNuYXBzaG90W2ZpZWxkLm5hbWVdID0gdGhpcy5jbG9uZVZhbHVlKHJvd1tmaWVsZC5uYW1lXSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzbmFwc2hvdDtcclxuICB9XHJcblxyXG4gIC8qKiDliJ3lp4vljJbmlbDnu4TmlbDmja7vvIzmt7vliqAgdWlkIOWSjCBpc0VkaXQg5a2X5q61ICovXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YShkYXRhOiBhbnlbXSk6IEFycmF5Rm9ybVJvd1tdIHtcclxuICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSkgPT4gdGhpcy5lbnJpY2hSb3coaXRlbSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOS4uuWNleihjOaVsOaNrua3u+WKoCB1aWQg5ZKMIGlzRWRpdCDlrZfmrrUgKi9cclxuICBwcml2YXRlIGVucmljaFJvdyhyb3c6IGFueSk6IEFycmF5Rm9ybVJvdyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5yb3csXHJcbiAgICAgIHVpZDogcm93LnVpZCB8fCB1dWlkdjQoKSxcclxuICAgICAgaXNFZGl0OiByb3cuaXNFZGl0ICE9PSB1bmRlZmluZWQgPyByb3cuaXNFZGl0IDogZmFsc2UsXHJcbiAgICAgIGRpc2FibGVkOiByb3cuZGlzYWJsZWQgIT09IHVuZGVmaW5lZCA/IHJvdy5kaXNhYmxlZCA6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiDmlrDlop7kuIDooYzmlbDmja4gKi9cclxuICBwcml2YXRlIGFkZFJvdyhcclxuICAgIGRhdGE6IEFycmF5Rm9ybVJvd1tdLFxyXG4gICAgZGVmYXVsdFZhbHVlcz86IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApOiBBcnJheUZvcm1Sb3cge1xyXG4gICAgY29uc3QgbmV3Um93OiBBcnJheUZvcm1Sb3cgPSB7XHJcbiAgICAgIC4uLmRlZmF1bHRWYWx1ZXMsXHJcbiAgICAgIHVpZDogdXVpZHY0KCksXHJcbiAgICAgIGlzRWRpdDogdHJ1ZSxcclxuICAgICAgaXNBZGQ6IHRydWUsXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICBkYXRhLnB1c2gobmV3Um93KTtcclxuICAgIHJldHVybiBuZXdSb3c7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5Y2V5Liq5a2X5q61ICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogVmFsaWRhdGlvblJlc3VsdCB7XHJcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IGNvbmZpZy5maWVsZHMuZmluZCgoZikgPT4gZi5uYW1lID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIGlmICghZmllbGRDb25maWcpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkQ29uZmlnLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmllbGRDb25maWcudmFsaWRhdG9yKHJvd1tmaWVsZE5hbWVdLCByb3csIGZpZWxkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5pW06KGM5pWw5o2uICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVJvdyhcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgY29uZmlnOiBBcnJheUZvcm1Db25maWdcclxuICApOiBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0PiA9IHt9O1xyXG5cclxuICAgIGNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWcpID0+IHtcclxuICAgICAgcmVzdWx0c1tmaWVsZENvbmZpZy5uYW1lXSA9IHRoaXMudmFsaWRhdGVGaWVsZChcclxuICAgICAgICByb3csXHJcbiAgICAgICAgZmllbGRDb25maWcubmFtZSxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOaVtOS4quaVsOe7hCAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRhKFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiB7XHJcbiAgICBjb25zdCByZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0Pj4gPSB7fTtcclxuXHJcbiAgICBkYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICByZXN1bHRzW3Jvdy51aWRdID0gdGhpcy52YWxpZGF0ZVJvdyhyb3csIGNvbmZpZyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIC8qKiDms6jlhozooajljZXliLDlrZjlgqggKi9cclxuICByZWdpc3RlckZvcm0oXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5pdGlhbGl6ZWREYXRhID0gdGhpcy5pbml0aWFsaXplRGF0YShkYXRhKTtcclxuXHJcbiAgICAvLyDorrDlvZXliJ3lp4vlgLzlv6vnhadcclxuICAgIGNvbnN0IGluaXRpYWxTbmFwc2hvdDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7fTtcclxuICAgIGluaXRpYWxpemVkRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcclxuICAgICAgaW5pdGlhbFNuYXBzaG90W3Jvdy51aWQhXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3Qocm93LCBjb25maWcuZmllbGRzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXSA9IHtcclxuICAgICAgZGF0YTogaW5pdGlhbGl6ZWREYXRhLFxyXG4gICAgICBjb25maWcsXHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHRzOiB7fSxcclxuICAgICAgaW5pdGlhbFNuYXBzaG90LFxyXG4gICAgICBlZGl0aW5nU25hcHNob3Q6IHt9LFxyXG4gICAgICBhbGxUb3VjaGVkOiBmYWxzZSxcclxuICAgICAgcm93VG91Y2hlZDoge30sXHJcbiAgICB9O1xyXG4gICAgLy8g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM56uL5Y2z5pu05paw5LiA5qyhXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKiog5LuO5a2Y5YKo5Lit6I635Y+W6KGo5Y2VICovXHJcbiAgZ2V0Rm9ybShmb3JtTmFtZTogc3RyaW5nKTogQXJyYXlGb3JtU3RvcmVJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgfVxyXG5cclxuICAvKiog5LuO5a2Y5YKo5Lit6I635Y+W6KGo5Y2V5pWw5o2uICovXHJcbiAgZ2V0Rm9ybURhdGEoXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nXHJcbiAgKTpcclxuICAgIHwgQXJyYXk8UGljazxBcnJheUZvcm1Sb3csIFwidWlkXCIgfCBcImlzRWRpdFwiIHwgXCJpc0FkZFwiIHwga2V5b2YgQXJyYXlGb3JtUm93Pj5cclxuICAgIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtLmRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBpdGVtLmlzRWRpdDtcclxuICAgICAgZGVsZXRlIGl0ZW0uaXNBZGQ7XHJcbiAgICAgIGRlbGV0ZSBpdGVtLnVpZDtcclxuICAgICAgZGVsZXRlIGl0ZW0uZGlzYWJsZWQ7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiog5ZCR6KGo5Y2V5re75Yqg6KGMICovXHJcbiAgYWRkUm93VG9Gb3JtKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIGRlZmF1bHRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogQXJyYXlGb3JtUm93IHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld1JvdyA9IHRoaXMuYWRkUm93KGZvcm0uZGF0YSwgZGVmYXVsdFZhbHVlcyk7XHJcbiAgICAvLyDkuLrmlrDooYzorrDlvZXliJ3lp4vlgLzlv6vnhadcclxuICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W25ld1Jvdy51aWQhXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgIG5ld1JvdyxcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICApO1xyXG4gICAgLy8g6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgICByZXR1cm4gbmV3Um93O1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOihqOWNle+8jOiHquWKqOagh+iusOaJgOacieWtl+auteS4uuW3suinpueisCAqL1xyXG4gIHZhbGlkYXRlRm9ybShmb3JtTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8g5qCH6K6w5omA5pyJ5a2X5q615Li65bey6Kem56KwXHJcbiAgICBmb3JtLmFsbFRvdWNoZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IHRoaXMudmFsaWRhdGVEYXRhKGZvcm0uZGF0YSwgZm9ybS5jb25maWcpO1xyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHJlc3VsdHM7XHJcblxyXG4gICAgLy8g5qOA5p+l5piv5ZCm5pyJ5Lu75L2V6ZSZ6K+vXHJcbiAgICBmb3IgKGNvbnN0IHVpZCBvZiBPYmplY3Qua2V5cyhyZXN1bHRzKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkTmFtZSBvZiBPYmplY3Qua2V5cyhyZXN1bHRzW3VpZF0pKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdHNbdWlkXVtmaWVsZE5hbWVdKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDlvIDlkK/nvJbovpHmqKHlvI/vvIzkv53lrZjlv6vnhafnlKjkuo7lj5bmtojmgaLlpI0gKi9cclxuICBlbmFibGVFZGl0KGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKGZvcm0gJiYgcm93LnVpZCkge1xyXG4gICAgICAvLyDkv53lrZjnvJbovpHliY3nmoTlv6vnhadcclxuICAgICAgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJvdy5pc0VkaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOWPlua2iOe8lui+ke+8jOaBouWkjeWIsOe8lui+keWJjeeahOaVsOaNriAqL1xyXG4gIGRpc2FibGVFZGl0KGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKGZvcm0gJiYgcm93LnVpZCAmJiBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXSkge1xyXG4gICAgICAvLyDmgaLlpI3nvJbovpHliY3nmoTmlbDmja5cclxuICAgICAgY29uc3Qgc25hcHNob3QgPSBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgcm93W2ZpZWxkLm5hbWVdID0gdGhpcy5jbG9uZVZhbHVlKHNuYXBzaG90W2ZpZWxkLm5hbWVdKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIOabtOaWsOWIneWni+W/q+eFp+S4uuaBouWkjeWQjueahOWAvO+8jOa2iOmZpCB0b3VjaGVkIOeKtuaAgVxyXG4gICAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY2xvbmVWYWx1ZShzbmFwc2hvdCk7XHJcbiAgICAgIC8vIOa4heeQhue8lui+keW/q+eFp+WSjCB0b3VjaGVkIOeKtuaAgVxyXG4gICAgICBkZWxldGUgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICAgIGRlbGV0ZSBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF07XHJcbiAgICAgIC8vIOa4heeQhuivpeihjOeahOagoemqjOe7k+aenFxyXG4gICAgICBpZiAoZm9ybS52YWxpZGF0aW9uUmVzdWx0cykge1xyXG4gICAgICAgIGRlbGV0ZSBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByb3cuaXNFZGl0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiog56Gu6K6k57yW6L6R77yM5L+d55WZ5L+u5pS55ZCO55qE5pWw5o2uICovXHJcbiAgY29uZmlybUVkaXQoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoZm9ybSAmJiByb3cudWlkKSB7XHJcbiAgICAgIC8vIOa4heeQhue8lui+keW/q+eFp++8iOS/neeVmeW9k+WJjeaVsOaNru+8iVxyXG4gICAgICBpZiAoZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF0pIHtcclxuICAgICAgICBkZWxldGUgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICAgIH1cclxuICAgICAgLy8g5pu05paw5Yid5aeL5b+r54Wn5Li65b2T5YmN5YC877yI55So5LqO5ZCO57utIHRvdWNoZWQg5qOA5rWL77yJXHJcbiAgICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChcclxuICAgICAgICByb3csXHJcbiAgICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIOa4hemZpCB0b3VjaGVkIOeKtuaAge+8jOWfuuS6juaWsOeahCBpbml0aWFsU25hcHNob3Qg6YeN5paw5Yik5patXHJcbiAgICAgIGRlbGV0ZSBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF07XHJcbiAgICB9XHJcbiAgICByb3cuaXNFZGl0ID0gZmFsc2U7XHJcbiAgICByb3cuaXNBZGQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiDku47ooajljZXkuK3liKDpmaTmjIflrprooYwgKi9cclxuICBkZWxldGVSb3dGcm9tRm9ybShmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhcm93LnVpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbmRleCA9IGZvcm0uZGF0YS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udWlkID09PSByb3cudWlkKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9ybS5kYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyDmuIXnkIbor6XooYznmoTmiYDmnInlv6vnhafjgIF0b3VjaGVkIOeKtuaAgeWSjOagoemqjOe7k+aenFxyXG4gICAgZGVsZXRlIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgZGVsZXRlIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgZGVsZXRlIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXTtcclxuICAgIGlmIChmb3JtLnZhbGlkYXRpb25SZXN1bHRzKSB7XHJcbiAgICAgIGRlbGV0ZSBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdO1xyXG4gICAgfVxyXG4gICAgLy8g6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDmo4DmtYvlrZfmrrXmmK/lkKblt7Looqvop6bnorAgKi9cclxuICBwcml2YXRlIGlzRmllbGRUb3VjaGVkKFxyXG4gICAgZm9ybTogQXJyYXlGb3JtU3RvcmVJdGVtLFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgLy8g5pW05Liq6KGo5Y2V5beyIHRvdWNoZWTvvIjmlbTkuKrooajljZXmj5DkuqTml7bvvIlcclxuICAgIGlmIChmb3JtLmFsbFRvdWNoZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyDlvZPliY3ooYzlt7IgdG91Y2hlZO+8iOWNleihjOS/neWtmOaXtu+8iVxyXG4gICAgaWYgKGZvcm0ucm93VG91Y2hlZFtyb3cudWlkIV0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyDmo4DmtYvlvZPliY3lgLzkuI7liJ3lp4vlgLzmmK/lkKbkuI3lkIxcclxuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWQhXT8uW2ZpZWxkTmFtZV07XHJcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSByb3dbZmllbGROYW1lXTtcclxuICAgIHJldHVybiAhdGhpcy5pc0VxdWFsKGluaXRpYWxWYWx1ZSwgY3VycmVudFZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozmjIflrprooYznmoTmjIflrprlrZfmrrXvvIzmnKrkv67mlLnml7bkuI3mmL7npLrmoKHpqoznirbmgIEgKi9cclxuICB2YWxpZGF0ZUZpZWxkSW5Sb3coXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4gICk6IFwic3VjY2Vzc1wiIHwgXCJlcnJvclwiIHwgXCJcIiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gZm9ybS5jb25maWcuZmllbGRzLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gZmllbGROYW1lKTtcclxuICAgIGlmICghZmllbGRDb25maWcpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5omn6KGM5qCh6aqMXHJcbiAgICBsZXQgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gXCJcIjtcclxuICAgIGlmIChmaWVsZENvbmZpZy52YWxpZGF0b3IpIHtcclxuICAgICAgcmVzdWx0ID0gZmllbGRDb25maWcudmFsaWRhdG9yKHJvd1tmaWVsZE5hbWVdLCByb3csIGZpZWxkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pu05paw5qCh6aqM57uT5p6c5a2Y5YKoXHJcbiAgICBpZiAoIWZvcm0udmFsaWRhdGlvblJlc3VsdHMpIHtcclxuICAgICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHt9O1xyXG4gICAgfVxyXG4gICAgaWYgKCFmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWQhXSkge1xyXG4gICAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWQhXSA9IHt9O1xyXG4gICAgfVxyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkIV1bZmllbGROYW1lXSA9IHJlc3VsdDtcclxuXHJcbiAgICAvLyDlpoLmnpzlrZfmrrXmnKrooqvop6bnorDvvIzkuI3mmL7npLrmoKHpqoznirbmgIFcclxuICAgIGlmICghdGhpcy5pc0ZpZWxkVG91Y2hlZChmb3JtLCByb3csIGZpZWxkTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdCA/IFwiZXJyb3JcIiA6IFwic3VjY2Vzc1wiO1xyXG4gIH1cclxuXHJcbiAgLyoqIOiOt+WPluaMh+WumuihjOaMh+WumuWtl+auteeahOagoemqjOmUmeivr+S/oeaBryAqL1xyXG4gIGdldEZpZWxkRXJyb3JNZXNzYWdlKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmdcclxuICApOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhcm93LnVpZCkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIC8vIOWmguaenOWtl+auteacquiiq+inpueisO+8jOS4jeaYvuekuumUmeivr+S/oeaBr1xyXG4gICAgaWYgKCF0aGlzLmlzRmllbGRUb3VjaGVkKGZvcm0sIHJvdywgZmllbGROYW1lKSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtLnZhbGlkYXRpb25SZXN1bHRzPy5bcm93LnVpZF0/LltmaWVsZE5hbWVdIHx8IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5oyH5a6a6KGM55qE5omA5pyJ5a2X5q61ICovXHJcbiAgdmFsaWRhdGVSb3dBbGxGaWVsZHMoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIXJvdy51aWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pu05paw5Yid5aeL5b+r54Wn5Li65b2T5YmN5YC8XHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgIHJvdyxcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICApO1xyXG4gICAgLy8g5qCH6K6w5b2T5YmN6KGM5Li6IHRvdWNoZWTvvIjlj6rlvbHlk43lvZPliY3ooYzvvIzkuI3lvbHlk43lhbbku5booYzvvIlcclxuICAgIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXSA9IHRydWU7XHJcblxyXG4gICAgbGV0IGhhc0Vycm9yID0gZmFsc2U7XHJcblxyXG4gICAgZm9ybS5jb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudmFsaWRhdGVGaWVsZEluUm93KGZvcm1OYW1lLCByb3csIGZpZWxkQ29uZmlnLm5hbWUpO1xyXG4gICAgICBpZiAocmVzdWx0ID09PSBcImVycm9yXCIpIHtcclxuICAgICAgICBoYXNFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAhaGFzRXJyb3I7XHJcbiAgfVxyXG5cclxuICAvKiog6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoICovXHJcbiAgcHJpdmF0ZSBhdXRvVXBkYXRlQXJyYXlSZWZlcmVuY2UoZm9ybU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhZm9ybS5jb25maWcudGFyZ2V0T2JqZWN0IHx8ICFmb3JtLmNvbmZpZy5hcnJheVByb3BlcnR5TmFtZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdBcnJheSA9IGZvcm0uZGF0YSA/IFsuLi5mb3JtLmRhdGFdIDogW107XHJcbiAgICAvLyDmm7TmlrDnm67moIflr7nosaHnmoTmlbDnu4TlsZ7mgKfkuLrmlrDmlbDnu4TlvJXnlKhcclxuICAgIChmb3JtLmNvbmZpZy50YXJnZXRPYmplY3QgYXMgYW55KVtmb3JtLmNvbmZpZy5hcnJheVByb3BlcnR5TmFtZV0gPSBuZXdBcnJheTtcclxuICB9XHJcblxyXG4gIC8qKiDmmK/lkKbmnInmraPlnKjnvJbovpHnmoTooYwgKi9cclxuICBoYXNFZGl0aW5nUm93KGZvcm1OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm0uZGF0YS5zb21lKChpdGVtKSA9PiBpdGVtLmlzRWRpdCk7XHJcbiAgfVxyXG5cclxuICAvLyDplIDmr4Hlr7nlupTnmoTooajljZVcclxuICBkZXN0b3J5KG5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb3JtU3RvcmVbbmFtZV0pIHtcclxuICAgICAgICAvLyDmuIXnkIbooajljZXmlbDmja5cclxuICAgICAgICBkZWxldGUgdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g6YeN572u6KGo5Y2V5pWw57uEXHJcbiAgcmVzZXRGb3JtQXJyYXkobmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDEuIOa4heepuuaVsOaNruaVsOe7hFxyXG4gICAgZm9ybS5kYXRhID0gW107XHJcblxyXG4gICAgLy8gMi4g5riF55CG5omA5pyJ5b+r54WnXHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdCA9IHt9O1xyXG4gICAgZm9ybS5lZGl0aW5nU25hcHNob3QgPSB7fTtcclxuXHJcbiAgICAvLyAzLiDmuIXnkIbmoKHpqoznu5PmnpxcclxuICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSB7fTtcclxuXHJcbiAgICAvLyA0LiDph43nva4gdG91Y2hlZCDnirbmgIFcclxuICAgIGZvcm0uYWxsVG91Y2hlZCA9IGZhbHNlO1xyXG4gICAgZm9ybS5yb3dUb3VjaGVkID0ge307XHJcblxyXG4gICAgLy8gNS4g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShuYW1lKTtcclxuICB9XHJcbn1cclxuIl19
|