@sumaris-net/ngx-components 18.8.14 → 18.8.15

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/doc/changelog.md CHANGED
@@ -1327,5 +1327,5 @@ enh: Environment: add useHash property to configure Angular router to use hash U
1327
1327
  # 18.8.11
1328
1328
  - enh(types) Add type `OmitFunctions` to get only properties of a class, without functions (e.g. from an Entity class)
1329
1329
 
1330
- # 18.8.12
1330
+ # 18.8.15
1331
1331
  - Use more précise parametrized types in function `EntityUtils.cleanIdAndUpdateDate`
@@ -257,4 +257,4 @@ export class EntityUtils {
257
257
  return (items || []).find((g) => g.id === id);
258
258
  }
259
259
  }
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHL0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTTVFLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMxRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDekYsQ0FBQztBQXVCRCxVQUFVO0FBQ1YsTUFBTSxPQUFnQixNQUFNO0lBRzFCLG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFTO0lBRXhCLEVBQUUsR0FBTyxJQUFJLENBQUM7SUFDZCxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLFVBQVUsQ0FBUztJQUVuQixZQUFZLFVBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSyxJQUFJLENBQUMsV0FBbUIsRUFBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxD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QUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQThELEtBQVUsRUFBRSxFQUFNO1FBQzdGLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGpvaW5Qcm9wZXJ0aWVzUGF0aCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRmlsdGVyRm4sIEtleVZhbHVlVHlwZSwgT2JqZWN0TWFwLCBPYmplY3RNYXBFbnRyeSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBUcmVlSXRlbUVudGl0eVV0aWxzIH0gZnJvbSAnLi90cmVlLWl0ZW0tZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEFwcFByb3BlcnRpZXNVdGlscyB9IGZyb20gJy4uLy4uL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENsb25lYWJsZTxUPiB7XG4gIGNsb25lKCk6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb1N0cmluZyhvYmo6IEVudGl0eTxhbnk+IHwgYW55LCBwcm9wZXJ0aWVzPzogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKG9iaiAmJiBvYmouaWQgJiYgam9pblByb3BlcnRpZXNQYXRoKG9iaiwgcHJvcGVydGllcyB8fCBbJ25hbWUnXSkpIHx8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlBc09iamVjdE9wdGlvbnMge1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBrZWVwVHlwZW5hbWU/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbiAga2VlcExvY2FsSWQ/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5PFQsIElEID0gbnVtYmVyLCBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRk8gPSBhbnk+IGV4dGVuZHMgQ2xvbmVhYmxlPFQ+IHtcbiAgaWQ6IElEO1xuICB1cGRhdGVEYXRlOiBNb21lbnQ7XG4gIF9fdHlwZW5hbWU6IHN0cmluZztcbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbjtcbiAgY2xvbmUob3B0cz86IEFPICYgRk8pOiBUO1xuICBjb3B5KHRhcmdldDogVCwgb3B0cz86IEFPICYgRk8pOiB2b2lkO1xuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnk7XG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgT21pdEZ1bmN0aW9uczxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PiA9IHtcbiAgW0sgaW4ga2V5b2YgVCBhcyBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEtdOiBUW0tdO1xufTtcblxuLy9AZHluYW1pY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eTxUIGV4dGVuZHMgRW50aXR5PFQsIElELCBBTywgRk8+LCBJRCA9IG51bWJlciwgQU8gZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMgPSBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEZPID0gYW55PlxuICBpbXBsZW1lbnRzIElFbnRpdHk8VCwgSUQsIEFPLCBGTz5cbntcbiAgLy8gVGhlIEdyYXBoUUwgdHlwZW5hbWUgKGluamVjdGVkIGJ5IEBFbnRpdHlDbGFzcygpKVxuICBzdGF0aWMgVFlQRU5BTUU6IHN0cmluZztcblxuICBpZDogSUQgPSBudWxsO1xuICB1cGRhdGVEYXRlOiBNb21lbnQgPSBudWxsO1xuICBfX3R5cGVuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX190eXBlbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMuX190eXBlbmFtZSA9IF9fdHlwZW5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGNsb25lKG9wdHM/OiBBTyAmIEZPKTogVCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkoKSBhcyBUO1xuICAgIHRoaXMuY29weSh0YXJnZXQsIG9wdHMpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBjb3B5KHRhcmdldDogVCwgb3B0cz86IEFPICYgRk8pIHtcbiAgICB0YXJnZXQuZnJvbU9iamVjdCh0aGlzLmFzT2JqZWN0KG9wdHMpLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBBTyk6IFN0b3JlT2JqZWN0IHtcbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpOyAvLz0gey4uLnRoaXN9O1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmtlZXBUeXBlbmFtZSAhPT0gdHJ1ZSkgZGVsZXRlIHRhcmdldC5fX3R5cGVuYW1lO1xuICAgIHRhcmdldC51cGRhdGVEYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMudXBkYXRlRGF0ZSk7XG4gICAgaWYgKHRhcmdldC5pZCA9PSBudWxsIHx8IChvcHRzICYmIG9wdHMua2VlcExvY2FsSWQgPT09IGZhbHNlICYmIHRhcmdldC5pZCA8IDApKSB7XG4gICAgICBkZWxldGUgdGFyZ2V0LmlkO1xuICAgICAgZGVsZXRlIHRhcmdldC51cGRhdGVEYXRlOyAvLyBNYWtlIHRvIHNlbnMgdG8ga2VlcCB1cGRhdGVEYXRlIG9mIGEgbG9jYWwgZW50aXR5IHRvIHNhdmVcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHRoaXMuaWQgPSBzb3VyY2UuaWQgfHwgc291cmNlLmlkID09PSAwID8gc291cmNlLmlkIDogdW5kZWZpbmVkO1xuICAgIHRoaXMudXBkYXRlRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS51cGRhdGVEYXRlKTtcbiAgICB0aGlzLl9fdHlwZW5hbWUgPSBzb3VyY2UuX190eXBlbmFtZSB8fCB0aGlzLl9fdHlwZW5hbWU7IC8vIEtlZXAgb3JpZ2luYWwgdHlwZSAoY2FuIGJlIHNldCBpbiBjb25zdHJ1Y3RvcilcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlciAmJiB0aGlzLmlkID09PSBvdGhlci5pZDtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBzdGFuZGFyZCBpbnN0YW5jZW9mIGluc3RlYWRcbiAqIEBwYXJhbSBvYmpcbiAqIEBwYXJhbSBjb25zdHJ1Y3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbnN0YW5jZU9mPFQ+KG9iajogYW55LCBjb25zdHJ1Y3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG9iaiBpcyBUIHtcbiAgaWYgKCFvYmopIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgY29uc3RydWN0b3I7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50aXR5VXRpbHMge1xuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaXMgYW4gZW50aXR5XG4gIHN0YXRpYyBpc0VudGl0eTxUIGV4dGVuZHMgSUVudGl0eTxhbnk+PihvYmo6IFQgfCBhbnkpOiBvYmogaXMgVCB7XG4gICAgcmV0dXJuIGlzTm90TmlsKG9iaj8uX190eXBlbmFtZSkgJiYgdHlwZW9mIG9iai5mcm9tT2JqZWN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouYXNPYmplY3QgPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFzIGEgTk9UIG5pbCBhdHRyaWJ1dGUgKElEIGJ5IGRlZmF1bHQpXG4gIHN0YXRpYyBpc05vdEVtcHR5PFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG9iajogVCwgY2hlY2tlZEF0dHJpYnV0ZToga2V5b2YgVCA9IDxrZXlvZiBUPidpZCcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFvYmogJiYgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdICE9PSBudWxsICYmIG9ialtjaGVja2VkQXR0cmlidXRlXSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhIG5pbCBhdHRyaWJ1dGUgKElEIGJ5IGRlZmF1bHQpXG4gIHN0YXRpYyBpc0VtcHR5PFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG9iajogVCwgY2hlY2tlZEF0dHJpYnV0ZToga2V5b2YgVCA9IDxrZXlvZiBUPidpZCcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIW9iaiB8fCBvYmpbY2hlY2tlZEF0dHJpYnV0ZV0gPT09IG51bGwgfHwgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZXF1YWxzPFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG8xOiBULCBvMjogVCwgY2hlY2tBdHRyaWJ1dGU/OiBrZXlvZiBUKTogYm9vbGVhbiB7XG4gICAgY2hlY2tBdHRyaWJ1dGUgPSBjaGVja0F0dHJpYnV0ZSB8fCAoJ2lkJyBhcyBrZXlvZiBUKTtcbiAgICByZXR1cm4gbzEgPT09IG8yIHx8IChpc05pbChvMSkgJiYgaXNOaWwobzIpKSB8fCAobzEgJiYgbzIgJiYgbzFbY2hlY2tBdHRyaWJ1dGVdID09PSBvMltjaGVja0F0dHJpYnV0ZV0pO1xuICB9XG5cbiAgc3RhdGljIGdldFByb3BlcnR5QnlQYXRoID0gZ2V0UHJvcGVydHlCeVBhdGg7XG5cbiAgc3RhdGljIGdldEFycmF5QXNNYXA8VCA9IGFueT4oc291cmNlPzogT2JqZWN0TWFwRW50cnk8VD5bXSk6IE9iamVjdE1hcDxUPiB7XG4gICAgcmV0dXJuIChzb3VyY2UgfHwgW10pLnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XG4gICAgICByZXNbaXRlbS5rZXldID0gaXRlbS52YWx1ZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSwge30pO1xuICB9XG5cbiAgc3RhdGljIGdldE1hcEFzQXJyYXk8VCA9IGFueT4oc291cmNlPzogT2JqZWN0TWFwPFQ+KTogT2JqZWN0TWFwRW50cnk8VD5bXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkgcmV0dXJuIHNvdXJjZTtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlIHx8IHt9KS5tYXAoKGtleSkgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiBzb3VyY2Vba2V5XSxcbiAgICB9KSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0UHJvcGVydHlBcnJheUFzT2JqZWN0ID0gQXBwUHJvcGVydGllc1V0aWxzLmFycmF5QXNPYmplY3Q7XG5cbiAgc3RhdGljIGNvcHlJZEFuZFVwZGF0ZURhdGU8VCBleHRlbmRzIEVudGl0eTxhbnksIGFueSwgYW55Pj4oc291cmNlOiBULCB0YXJnZXQ6IFQpIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuXG4gICAgLy8gVXBkYXRlIChpZCBhbmQgdXBkYXRlRGF0ZSlcbiAgICB0YXJnZXQuaWQgPSBpc05vdE5pbChzb3VyY2UuaWQpID8gc291cmNlLmlkIDogdGFyZ2V0LmlkO1xuICAgIHRhcmdldC51cGRhdGVEYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLnVwZGF0ZURhdGUpIHx8IHRhcmdldC51cGRhdGVEYXRlO1xuXG4gICAgLy8gVXBkYXRlIGNyZWF0aW9uIERhdGUsIGlmIGV4aXN0c1xuICAgIGlmIChzb3VyY2VbJ2NyZWF0aW9uRGF0ZSddKSB7XG4gICAgICB0YXJnZXRbJ2NyZWF0aW9uRGF0ZSddID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlWydjcmVhdGlvbkRhdGUnXSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGZpbGxMb2NhbElkczxUIGV4dGVuZHMgSUVudGl0eTxUPj4oaXRlbXM6IFRbXSwgc2VxdWVuY2VGYWN0b3J5OiAoZmlyc3RFbnRpdHk6IFQsIGluY3JlbWVudFNpemU6IG51bWJlcikgPT4gUHJvbWlzZTxudW1iZXI+KSB7XG4gICAgY29uc3QgbmV3SXRlbXMgPSAoaXRlbXMgfHwgW10pLmZpbHRlcigoaXRlbSkgPT4gaXNOaWwoaXRlbS5pZCkgfHwgaXRlbS5pZCA9PT0gMCk7XG4gICAgaWYgKGlzRW1wdHlBcnJheShuZXdJdGVtcykpIHJldHVybjtcbiAgICAvLyBHZXQgdGhlIHNlcXVlbmNlXG4gICAgbGV0IGN1cnJlbnRJZCA9IChhd2FpdCBzZXF1ZW5jZUZhY3RvcnkobmV3SXRlbXNbMF0sIG5ld0l0ZW1zLmxlbmd0aCkpICsgMTtcbiAgICAvLyBUYWtlIHRoZSBtaW4gKHNlcXVlbmNlLCBpZCksIGluIGNhc2UgdGhlIHNlcXVlbmNlIGlzIGNvcnJ1cHRlZFxuICAgIGN1cnJlbnRJZCA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXNOb3ROaWwoaXRlbS5pZCkgJiYgaXRlbS5pZCA8IDApLnJlZHVjZSgocmVzLCBpdGVtKSA9PiBNYXRoLm1pbihyZXMsIGl0ZW0uaWQpLCBjdXJyZW50SWQpO1xuICAgIG5ld0l0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLmlkID0gLS1jdXJyZW50SWQpKTtcbiAgfVxuXG4gIHN0YXRpYyBjbGVhbklkQW5kVXBkYXRlRGF0ZTxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55Pihzb3VyY2U6IFQpIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuOyAvLyBTa2lwXG4gICAgc291cmNlLmlkID0gbnVsbDtcbiAgICBzb3VyY2UudXBkYXRlRGF0ZSA9IG51bGw7XG4gIH1cblxuICBzdGF0aWMgY2xlYW5JZHNBbmRVcGRhdGVEYXRlczxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PihpdGVtczogVFtdKSB7XG4gICAgKGl0ZW1zIHx8IFtdKS5mb3JFYWNoKEVudGl0eVV0aWxzLmNsZWFuSWRBbmRVcGRhdGVEYXRlPFQsIElEPik7XG4gIH1cblxuICBzdGF0aWMgc29ydDxUIGV4dGVuZHMgSUVudGl0eTxUPiB8IGFueT4oZGF0YTogVFtdLCBzb3J0Qnk/OiBrZXlvZiBUIHwgc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFRbXSB7XG4gICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoIDw9IDEgfHwgIXNvcnRCeSkgcmV0dXJuIGRhdGE7XG4gICAgcmV0dXJuIGRhdGEuc29ydCh0aGlzLnNvcnRDb21wYXJhdG9yKHNvcnRCeSwgc29ydERpcmVjdGlvbikpO1xuICB9XG5cbiAgc3RhdGljIHNvcnRDb21wYXJhdG9yPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55Pihzb3J0Qnk/OiBrZXlvZiBUIHwgc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IChhOiBULCBiOiBUKSA9PiBudW1iZXIge1xuICAgIGNvbnN0IGFmdGVyID0gIXNvcnREaXJlY3Rpb24gfHwgc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgY29uc3QgcHJvcGVydHkgPSAoc29ydEJ5IHx8ICdpZCcpIGFzIHN0cmluZztcbiAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZhbHVlQiA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGIsIHByb3BlcnR5KTtcbiAgICAgIHJldHVybiBFbnRpdHlVdGlscy5jb21wYXJlKHZhbHVlQSwgdmFsdWVCLCBhZnRlcik7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlPFQgZXh0ZW5kcyBJRW50aXR5PGFueT4+KHZhbHVlMTogVCwgdmFsdWUyOiBULCBkaXJlY3Rpb246IDEgfCAtMSwgY2hlY2tBdHRyaWJ1dGU/OiBrZXlvZiBUKTogbnVtYmVyIHtcbiAgICBjaGVja0F0dHJpYnV0ZSA9IGNoZWNrQXR0cmlidXRlIHx8ICdpZCc7XG4gICAgaWYgKEVudGl0eVV0aWxzLmlzTm90RW1wdHkodmFsdWUxLCBjaGVja0F0dHJpYnV0ZSkgJiYgRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZTIsIGNoZWNrQXR0cmlidXRlKSkge1xuICAgICAgcmV0dXJuIEVudGl0eVV0aWxzLmVxdWFscyh2YWx1ZTEsIHZhbHVlMiwgY2hlY2tBdHRyaWJ1dGUpID8gMCA6IHZhbHVlMVtjaGVja0F0dHJpYnV0ZV0gPiB2YWx1ZTJbY2hlY2tBdHRyaWJ1dGVdID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTEgPT09IHZhbHVlMiA/IDAgOiB2YWx1ZTEgPiB2YWx1ZTIgPyBkaXJlY3Rpb24gOiAtMSAqIGRpcmVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlVmFsdWU8VD4odmFsdWUxOiBULCB2YWx1ZTI6IFQsIGRpcmVjdGlvbjogMSB8IC0xKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTIgPyAwIDogdmFsdWUxID4gdmFsdWUyID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55PihkYXRhOiBUW10sIHNlYXJjaEF0dHJpYnV0ZTogc3RyaW5nLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBUW10ge1xuICAgIGNvbnN0IGZpbHRlckZuID0gdGhpcy5zZWFyY2hUZXh0RmlsdGVyKHNlYXJjaEF0dHJpYnV0ZSwgc2VhcmNoVGV4dCk7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKGZpbHRlckZuKTtcbiAgfVxuXG4gIHN0YXRpYyBzZWFyY2hUZXh0RmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55PihzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZyB8IHN0cmluZ1tdLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBGaWx0ZXJGbjxUPiB7XG4gICAgaWYgKGlzTmlsT3JCbGFuayhzZWFyY2hBdHRyaWJ1dGUpIHx8IGlzTmlsT3JCbGFuayhzZWFyY2hUZXh0KSkgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZmlsdGVyIG5vdCBuZWVkXG5cbiAgICBjb25zdCBzZWFyY2hSZWdleHAgPSBzZWFyY2hUZXh0XG4gICAgICAvLyBFc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICAgIC5yZXBsYWNlKC9bLVxcL1xcXFxeJCsuKCl8W1xcXXt9XS9nLCAnXFxcXCQmJylcbiAgICAgIC8vIEludGVycHJldCAqIGFzIGFueSB0ZXh0XG4gICAgICAucmVwbGFjZSgvWypdKy9nLCAnLionKVxuICAgICAgLy8gSW50ZXJwcmV0ID8gYXMgb25lIGNoYXJhY3RlclxuICAgICAgLnJlcGxhY2UoL1s/XS9nLCAnLicpO1xuICAgIGlmIChzZWFyY2hSZWdleHAgPT09ICcuKicpIHJldHVybiB1bmRlZmluZWQ7IC8vIGZpbHRlciBub3QgbmVlZFxuXG4gICAgY29uc3QgZmxhZ3MgPSAnaSc7IC8vIGRvbid0IHVzZSBnbG9iYWwgcmVnZXggc2VhcmNoXG4gICAgY29uc3QgYXNQcmVmaXhQYXR0ZXJuID0gJ14nICsgc2VhcmNoUmVnZXhwO1xuICAgIGNvbnN0IGFueU1hdGNoUGF0dGVybiA9ICdeLionICsgc2VhcmNoUmVnZXhwO1xuXG4gICAgLy8gT25seSBvbmUgc2VhcmNoIGF0dHJpYnV0ZXNcbiAgICBpZiAodHlwZW9mIHNlYXJjaEF0dHJpYnV0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGlzU2ltcGxlUGF0aCA9ICFzZWFyY2hBdHRyaWJ1dGUgfHwgc2VhcmNoQXR0cmlidXRlLmluZGV4T2YoJy4nKSA9PT0gLTE7XG4gICAgICBjb25zdCBzZWFyY2hBc1ByZWZpeCA9IHNlYXJjaEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdsYWJlbCcpIHx8IHNlYXJjaEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdjb2RlJyk7XG4gICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKChzZWFyY2hBc1ByZWZpeCAmJiBhc1ByZWZpeFBhdHRlcm4pIHx8IGFueU1hdGNoUGF0dGVybiwgZmxhZ3MpO1xuICAgICAgaWYgKGlzU2ltcGxlUGF0aCkge1xuICAgICAgICByZXR1cm4gKGEpID0+IHJlZ2V4cC50ZXN0KGFbc2VhcmNoQXR0cmlidXRlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKGEpID0+IHJlZ2V4cC50ZXN0KEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGEsIHNlYXJjaEF0dHJpYnV0ZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1hbnkgc2VhcmNoIGF0dHJpYnV0ZXNcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZ2V4cHMgPSBzZWFyY2hBdHRyaWJ1dGUubWFwKChwYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEFzUHJlZml4ID0gcGF0aC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdsYWJlbCcpIHx8IHBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29kZScpO1xuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCgoc2VhcmNoQXNQcmVmaXggJiYgYXNQcmVmaXhQYXR0ZXJuKSB8fCBhbnlNYXRjaFBhdHRlcm4sIGZsYWdzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChhKSA9PiBzZWFyY2hBdHRyaWJ1dGUuZmluZEluZGV4KChwYXRoLCBpbmRleCkgPT4gcmVnZXhwc1tpbmRleF0udGVzdChFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChhLCBwYXRoKSkpICE9PSAtMTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgYmF0Y2ggZW50aXR5IHRyZWUgaW50byBhIGFycmF5IGxpc3QuIFRoaXMgbWV0aG9kIGtlZXAgbGlua3MgcGFyZW50L2NoaWxkcmVuLlxuICAgKlxuICAgKiBNZXRob2QgdXNlZCB0byBmaW5kIGJhdGNoIHdpdGhvdXQgaWQgKGUuZy4gYmVmb3JlIGxvY2FsIHN0b3JhZ2UpXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlVG9BcnJheSA9IFRyZWVJdGVtRW50aXR5VXRpbHMudHJlZVRvQXJyYXk7XG5cbiAgc3RhdGljIGxpc3RPZlRyZWVUb0FycmF5ID0gVHJlZUl0ZW1FbnRpdHlVdGlscy5saXN0T2ZUcmVlVG9BcnJheTtcblxuICAvKipcbiAgICogRmlsbCBwYXJlbnQgYXR0cmlidXRlLCBvZiBhbGwgY2hpbGRyZW4gZm91bmQgaW4gdGhlIHRyZWVcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVxuICAgKi9cbiAgc3RhdGljIHRyZWVGaWxsUGFyZW50ID0gVHJlZUl0ZW1FbnRpdHlVdGlscy50cmVlRmlsbFBhcmVudDtcblxuICBzdGF0aWMgaXNMb2NhbChlbnRpdHk6IElFbnRpdHk8YW55LCBhbnk+IHwgRW50aXR5PGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbnRpdHkgJiYgaXNOb3ROaWwoZW50aXR5LmlkKSAmJiArZW50aXR5LmlkIDwgMDtcbiAgfVxuXG4gIHN0YXRpYyBpc1JlbW90ZShlbnRpdHk6IElFbnRpdHk8YW55LCBhbnk+IHwgRW50aXR5PGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbnRpdHkgJiYgIUVudGl0eVV0aWxzLmlzTG9jYWwoZW50aXR5KTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2FsSWQoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05vdE5pbChpZCkgJiYgK2lkIDwgMDtcbiAgfVxuXG4gIHN0YXRpYyBpc1JlbW90ZUlkKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOb3ROaWwoaWQpICYmICtpZCA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGdldElkPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LCBJRCA9IGFueT4oZW50aXR5OiBUKTogSUQge1xuICAgIHJldHVybiBlbnRpdHkuaWQ7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFzIGFuIElEXG4gIHN0YXRpYyBoYXNJZDxUIGV4dGVuZHMgSUVudGl0eTxhbnksIGFueT4gPSBJRW50aXR5PGFueSwgYW55Pj4oZW50aXR5OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsKGVudGl0eT8uaWQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhbiBuaWwgSURcbiAgc3RhdGljIGhhc05pbElkPFQgZXh0ZW5kcyBJRW50aXR5PGFueSwgYW55PiA9IElFbnRpdHk8YW55LCBhbnk+PihlbnRpdHk6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOaWwoZW50aXR5Py5pZCk7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGFuIGFycmF5IG9mIGVudGl0aWVzIGludG8gYSBrZXktdmFsdWUgbWFwIHVzaW5nIGFuIGVudGl0eSBJRCBhcyB0aGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PFQ+fSBlbnRpdGllcyAtIFRoZSBhcnJheSBvZiBlbnRpdGllcyB0byBiZSBzcGxpdCBieSB0aGVpciBJRC5cbiAgICogQHJldHVybiB7S2V5VmFsdWVUeXBlPFQ+fSBBIGtleS12YWx1ZSBtYXAgd2l0aCBlbnRpdHkgSURzIGFzIGtleXMgYW5kIGVudGl0aWVzIGFzIHZhbHVlcy5cbiAgICovXG4gIHN0YXRpYyBzcGxpdEJ5SWQ8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IEtleVZhbHVlVHlwZTxUPiB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkucmVkdWNlKFxuICAgICAgKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBpdGVtPy5pZDtcbiAgICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzW2tleV0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9LFxuICAgICAgPEtleVZhbHVlVHlwZTxUPj57fVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgdGhlIElEcyBmcm9tIGFuIGFycmF5IG9mIGVudGl0aWVzIGFuZCByZXR1cm5zIHRoZW0gYXMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSB7VFtdfSBlbnRpdGllcyAtIEFuIGFycmF5IG9mIGVudGl0aWVzIGZyb20gd2hpY2ggdG8gY29sbGVjdCBJRHMuXG4gICAqIEByZXR1cm4ge0lEW119IEFuIGFycmF5IG9mIElEcyBjb2xsZWN0ZWQgZnJvbSB0aGUgZW50aXRpZXMuXG4gICAqL1xuICBzdGF0aWMgY29sbGVjdElkczxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PihlbnRpdGllczogVFtdKTogSURbXSB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkubWFwKChlKSA9PiBlLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgY29sbGVjdElkcygpIGluc3RlYWQgLSB3aWxsIGJlIHJlbW92ZSBpbiBuZXh0IG1ham9yIHJlbGVhc2VcbiAgICovXG4gIHN0YXRpYyBjb2xsZWN0QnlJZDxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PihlbnRpdGllczogVFtdKTogSURbXSB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkubWFwKChlKSA9PiBlLmlkKTtcbiAgfVxuXG4gIHN0YXRpYyBhcnJheURpc3RpbmN0RmlsdGVyRm48RSBleHRlbmRzIElFbnRpdHk8YW55LCBhbnk+PihpdGVtOiBFLCBpbmRleDogbnVtYmVyLCB2YWx1ZXM6IEVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZXMuZmluZEluZGV4KChlKSA9PiBlLmlkID09PSBpdGVtLmlkKSA9PT0gaW5kZXg7XG4gIH1cblxuICBzdGF0aWMgZmluZEJ5SWQ8RSBleHRlbmRzIElFbnRpdHk8YW55LCBJRD4gPSBJRW50aXR5PGFueSwgYW55PiwgSUQgPSBudW1iZXI+KGl0ZW1zOiBFW10sIGlkOiBJRCk6IEUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoaXRlbXMgfHwgW10pLmZpbmQoKGcpID0+IGcuaWQgPT09IGlkKTtcbiAgfVxufVxuIl19
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHL0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTTVFLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMxRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDekYsQ0FBQztBQXVCRCxVQUFVO0FBQ1YsTUFBTSxPQUFnQixNQUFNO0lBRzFCLG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFTO0lBRXhCLEVBQUUsR0FBTyxJQUFJLENBQUM7SUFDZCxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLFVBQVUsQ0FBUztJQUVuQixZQUFZLFVBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSyxJQUFJLENBQUMsV0FBbUIsRUFBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBUyxFQUFFLElBQWM7UUFDNUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNoQixNQUFNLE1BQU0sR0FBUSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDM0QsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDbEUsTUFBTSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9FLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyw0REFBNEQ7UUFDeEYsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBVyxFQUFFLElBQVM7UUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxpREFBaUQ7SUFDM0csQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFRO1FBQ2IsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFJLEdBQVEsRUFBRSxXQUFzQztJQUM5RSxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXZCLE9BQU8sR0FBRyxZQUFZLFdBQVcsQ0FBQztBQUNwQyxDQUFDO0FBRUQsV0FBVztBQUNYLE1BQU0sT0FBZ0IsV0FBVztJQUMvQixxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBeUIsR0FBWTtRQUNsRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsVUFBVSxLQUFLLFVBQVUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDO0lBQ2pILENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsTUFBTSxDQUFDLFVBQVUsQ0FBK0IsR0FBTSxFQUFFLG1CQUFxQyxJQUFJO1FBQy9GLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssU0FBUyxDQUFDO0lBQ3hGLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsTUFBTSxDQUFDLE9BQU8sQ0FBK0IsR0FBTSxFQUFFLG1CQUFxQyxJQUFJO1FBQzVGLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN2RixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBK0IsRUFBSyxFQUFFLEVBQUssRUFBRSxjQUF3QjtRQUNoRixjQUFjLEdBQUcsY0FBYyxJQUFLLElBQWdCLENBQUM7UUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUU3QyxNQUFNLENBQUMsYUFBYSxDQUFVLE1BQTRCO1FBQ3hELE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMzQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFVLE1BQXFCO1FBQ2pELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVELEdBQUc7WUFDSCxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNuQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsd0JBQXdCLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDO0lBRW5FLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBa0MsTUFBUyxFQUFFLE1BQVM7UUFDOUUsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLDZCQUE2QjtRQUM3QixNQUFNLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDeEQsTUFBTSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUU5RSxrQ0FBa0M7UUFDbEMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBNEIsS0FBVSxFQUFFLGVBQTJFO1FBQzFJLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU87UUFDbkMsbUJBQW1CO1FBQ25CLElBQUksU0FBUyxHQUFHLENBQUMsTUFBTSxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxpRUFBaUU7UUFDakUsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFxQyxNQUFTO1FBQ3ZFLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLE9BQU87UUFDNUIsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakIsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBcUMsS0FBVTtRQUMxRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQSxXQUFXLENBQUMsb0JBQTJCLENBQUEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFrQyxJQUFTLEVBQUUsTUFBeUIsRUFBRSxhQUE2QjtRQUM5RyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFrQyxNQUF5QixFQUFFLGFBQTZCO1FBQzdHLE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxJQUFJLGFBQWEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFXLENBQUM7UUFDNUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNkLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDMUQsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBNEIsTUFBUyxFQUFFLE1BQVMsRUFBRSxTQUFpQixFQUFFLGNBQXdCO1FBQ3pHLGNBQWMsR0FBRyxjQUFjLElBQUksSUFBSSxDQUFDO1FBQ3hDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUMvSSxDQUFDO1FBQ0QsT0FBTyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFJLE1BQVMsRUFBRSxNQUFTLEVBQUUsU0FBaUI7UUFDNUQsT0FBTyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlFLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFrQyxJQUFTLEVBQUUsZUFBdUIsRUFBRSxVQUFrQjtRQUNuRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFrQyxlQUFrQyxFQUFFLFVBQWtCO1FBQzdHLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQjtRQUVuRyxNQUFNLFlBQVksR0FBRyxVQUFVO1lBQzdCLDRCQUE0QjtZQUM1Qiw2Q0FBNkM7YUFDNUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztZQUN4QywwQkFBMEI7YUFDekIsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7WUFDdkIsK0JBQStCO2FBQzlCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUFFLE9BQU8sU0FBUyxDQUFDLENBQUMsa0JBQWtCO1FBRS9ELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGdDQUFnQztRQUNuRCxNQUFNLGVBQWUsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQzNDLE1BQU0sZUFBZSxHQUFHLEtBQUssR0FBRyxZQUFZLENBQUM7UUFFN0MsNkJBQTZCO1FBQzdCLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekgsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxjQUFjLElBQUksZUFBZSxDQUFDLElBQUksZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pGLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDO1FBRUQseUJBQXlCO2FBQ3BCLENBQUM7WUFDSixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkcsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLGNBQWMsSUFBSSxlQUFlLENBQUMsSUFBSSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkYsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxDQUFDO0lBRXJELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQztJQUVqRTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFFM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUE0QztRQUN6RCxPQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBNEM7UUFDMUQsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQVU7UUFDekIsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQVU7UUFDMUIsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUF5RCxNQUFTO1FBQzVFLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLE1BQU0sQ0FBQyxLQUFLLENBQWtELE1BQVM7UUFDckUsT0FBTyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBa0QsTUFBUztRQUN4RSxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBcUMsUUFBYTtRQUNoRSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN2RCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFDZ0IsRUFBRSxDQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBcUMsUUFBYTtRQUNqRSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQXFDLFFBQWE7UUFDbEUsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUE4QixJQUFPLEVBQUUsS0FBYSxFQUFFLE1BQVc7UUFDM0YsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQThELEtBQVUsRUFBRSxFQUFNO1FBQzdGLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGpvaW5Qcm9wZXJ0aWVzUGF0aCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRmlsdGVyRm4sIEtleVZhbHVlVHlwZSwgT2JqZWN0TWFwLCBPYmplY3RNYXBFbnRyeSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBUcmVlSXRlbUVudGl0eVV0aWxzIH0gZnJvbSAnLi90cmVlLWl0ZW0tZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEFwcFByb3BlcnRpZXNVdGlscyB9IGZyb20gJy4uLy4uL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENsb25lYWJsZTxUPiB7XG4gIGNsb25lKCk6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb1N0cmluZyhvYmo6IEVudGl0eTxhbnk+IHwgYW55LCBwcm9wZXJ0aWVzPzogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKG9iaiAmJiBvYmouaWQgJiYgam9pblByb3BlcnRpZXNQYXRoKG9iaiwgcHJvcGVydGllcyB8fCBbJ25hbWUnXSkpIHx8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlBc09iamVjdE9wdGlvbnMge1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBrZWVwVHlwZW5hbWU/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbiAga2VlcExvY2FsSWQ/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5PFQsIElEID0gbnVtYmVyLCBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRk8gPSBhbnk+IGV4dGVuZHMgQ2xvbmVhYmxlPFQ+IHtcbiAgaWQ6IElEO1xuICB1cGRhdGVEYXRlOiBNb21lbnQ7XG4gIF9fdHlwZW5hbWU6IHN0cmluZztcbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbjtcbiAgY2xvbmUob3B0cz86IEFPICYgRk8pOiBUO1xuICBjb3B5KHRhcmdldDogVCwgb3B0cz86IEFPICYgRk8pOiB2b2lkO1xuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnk7XG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgT21pdEZ1bmN0aW9uczxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PiA9IHtcbiAgW0sgaW4ga2V5b2YgVCBhcyBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEtdOiBUW0tdO1xufTtcblxuLy9AZHluYW1pY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eTxUIGV4dGVuZHMgRW50aXR5PFQsIElELCBBTywgRk8+LCBJRCA9IG51bWJlciwgQU8gZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMgPSBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEZPID0gYW55PlxuICBpbXBsZW1lbnRzIElFbnRpdHk8VCwgSUQsIEFPLCBGTz5cbntcbiAgLy8gVGhlIEdyYXBoUUwgdHlwZW5hbWUgKGluamVjdGVkIGJ5IEBFbnRpdHlDbGFzcygpKVxuICBzdGF0aWMgVFlQRU5BTUU6IHN0cmluZztcblxuICBpZDogSUQgPSBudWxsO1xuICB1cGRhdGVEYXRlOiBNb21lbnQgPSBudWxsO1xuICBfX3R5cGVuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX190eXBlbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMuX190eXBlbmFtZSA9IF9fdHlwZW5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGNsb25lKG9wdHM/OiBBTyAmIEZPKTogVCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkoKSBhcyBUO1xuICAgIHRoaXMuY29weSh0YXJnZXQsIG9wdHMpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBjb3B5KHRhcmdldDogVCwgb3B0cz86IEFPICYgRk8pIHtcbiAgICB0YXJnZXQuZnJvbU9iamVjdCh0aGlzLmFzT2JqZWN0KG9wdHMpLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBBTyk6IFN0b3JlT2JqZWN0IHtcbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpOyAvLz0gey4uLnRoaXN9O1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmtlZXBUeXBlbmFtZSAhPT0gdHJ1ZSkgZGVsZXRlIHRhcmdldC5fX3R5cGVuYW1lO1xuICAgIHRhcmdldC51cGRhdGVEYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMudXBkYXRlRGF0ZSk7XG4gICAgaWYgKHRhcmdldC5pZCA9PSBudWxsIHx8IChvcHRzICYmIG9wdHMua2VlcExvY2FsSWQgPT09IGZhbHNlICYmIHRhcmdldC5pZCA8IDApKSB7XG4gICAgICBkZWxldGUgdGFyZ2V0LmlkO1xuICAgICAgZGVsZXRlIHRhcmdldC51cGRhdGVEYXRlOyAvLyBNYWtlIHRvIHNlbnMgdG8ga2VlcCB1cGRhdGVEYXRlIG9mIGEgbG9jYWwgZW50aXR5IHRvIHNhdmVcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHRoaXMuaWQgPSBzb3VyY2UuaWQgfHwgc291cmNlLmlkID09PSAwID8gc291cmNlLmlkIDogdW5kZWZpbmVkO1xuICAgIHRoaXMudXBkYXRlRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS51cGRhdGVEYXRlKTtcbiAgICB0aGlzLl9fdHlwZW5hbWUgPSBzb3VyY2UuX190eXBlbmFtZSB8fCB0aGlzLl9fdHlwZW5hbWU7IC8vIEtlZXAgb3JpZ2luYWwgdHlwZSAoY2FuIGJlIHNldCBpbiBjb25zdHJ1Y3RvcilcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlciAmJiB0aGlzLmlkID09PSBvdGhlci5pZDtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBzdGFuZGFyZCBpbnN0YW5jZW9mIGluc3RlYWRcbiAqIEBwYXJhbSBvYmpcbiAqIEBwYXJhbSBjb25zdHJ1Y3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbnN0YW5jZU9mPFQ+KG9iajogYW55LCBjb25zdHJ1Y3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG9iaiBpcyBUIHtcbiAgaWYgKCFvYmopIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgY29uc3RydWN0b3I7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50aXR5VXRpbHMge1xuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaXMgYW4gZW50aXR5XG4gIHN0YXRpYyBpc0VudGl0eTxUIGV4dGVuZHMgSUVudGl0eTxhbnk+PihvYmo6IFQgfCBhbnkpOiBvYmogaXMgVCB7XG4gICAgcmV0dXJuIGlzTm90TmlsKG9iaj8uX190eXBlbmFtZSkgJiYgdHlwZW9mIG9iai5mcm9tT2JqZWN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouYXNPYmplY3QgPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFzIGEgTk9UIG5pbCBhdHRyaWJ1dGUgKElEIGJ5IGRlZmF1bHQpXG4gIHN0YXRpYyBpc05vdEVtcHR5PFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG9iajogVCwgY2hlY2tlZEF0dHJpYnV0ZToga2V5b2YgVCA9IDxrZXlvZiBUPidpZCcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFvYmogJiYgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdICE9PSBudWxsICYmIG9ialtjaGVja2VkQXR0cmlidXRlXSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhIG5pbCBhdHRyaWJ1dGUgKElEIGJ5IGRlZmF1bHQpXG4gIHN0YXRpYyBpc0VtcHR5PFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG9iajogVCwgY2hlY2tlZEF0dHJpYnV0ZToga2V5b2YgVCA9IDxrZXlvZiBUPidpZCcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIW9iaiB8fCBvYmpbY2hlY2tlZEF0dHJpYnV0ZV0gPT09IG51bGwgfHwgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZXF1YWxzPFQgZXh0ZW5kcyBJRW50aXR5PGFueT4gfCBhbnk+KG8xOiBULCBvMjogVCwgY2hlY2tBdHRyaWJ1dGU/OiBrZXlvZiBUKTogYm9vbGVhbiB7XG4gICAgY2hlY2tBdHRyaWJ1dGUgPSBjaGVja0F0dHJpYnV0ZSB8fCAoJ2lkJyBhcyBrZXlvZiBUKTtcbiAgICByZXR1cm4gbzEgPT09IG8yIHx8IChpc05pbChvMSkgJiYgaXNOaWwobzIpKSB8fCAobzEgJiYgbzIgJiYgbzFbY2hlY2tBdHRyaWJ1dGVdID09PSBvMltjaGVja0F0dHJpYnV0ZV0pO1xuICB9XG5cbiAgc3RhdGljIGdldFByb3BlcnR5QnlQYXRoID0gZ2V0UHJvcGVydHlCeVBhdGg7XG5cbiAgc3RhdGljIGdldEFycmF5QXNNYXA8VCA9IGFueT4oc291cmNlPzogT2JqZWN0TWFwRW50cnk8VD5bXSk6IE9iamVjdE1hcDxUPiB7XG4gICAgcmV0dXJuIChzb3VyY2UgfHwgW10pLnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XG4gICAgICByZXNbaXRlbS5rZXldID0gaXRlbS52YWx1ZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSwge30pO1xuICB9XG5cbiAgc3RhdGljIGdldE1hcEFzQXJyYXk8VCA9IGFueT4oc291cmNlPzogT2JqZWN0TWFwPFQ+KTogT2JqZWN0TWFwRW50cnk8VD5bXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkgcmV0dXJuIHNvdXJjZTtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlIHx8IHt9KS5tYXAoKGtleSkgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiBzb3VyY2Vba2V5XSxcbiAgICB9KSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0UHJvcGVydHlBcnJheUFzT2JqZWN0ID0gQXBwUHJvcGVydGllc1V0aWxzLmFycmF5QXNPYmplY3Q7XG5cbiAgc3RhdGljIGNvcHlJZEFuZFVwZGF0ZURhdGU8VCBleHRlbmRzIEVudGl0eTxhbnksIGFueSwgYW55Pj4oc291cmNlOiBULCB0YXJnZXQ6IFQpIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuXG4gICAgLy8gVXBkYXRlIChpZCBhbmQgdXBkYXRlRGF0ZSlcbiAgICB0YXJnZXQuaWQgPSBpc05vdE5pbChzb3VyY2UuaWQpID8gc291cmNlLmlkIDogdGFyZ2V0LmlkO1xuICAgIHRhcmdldC51cGRhdGVEYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLnVwZGF0ZURhdGUpIHx8IHRhcmdldC51cGRhdGVEYXRlO1xuXG4gICAgLy8gVXBkYXRlIGNyZWF0aW9uIERhdGUsIGlmIGV4aXN0c1xuICAgIGlmIChzb3VyY2VbJ2NyZWF0aW9uRGF0ZSddKSB7XG4gICAgICB0YXJnZXRbJ2NyZWF0aW9uRGF0ZSddID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlWydjcmVhdGlvbkRhdGUnXSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGZpbGxMb2NhbElkczxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PihpdGVtczogVFtdLCBzZXF1ZW5jZUZhY3Rvcnk6IChmaXJzdEVudGl0eTogVCwgaW5jcmVtZW50U2l6ZTogbnVtYmVyKSA9PiBQcm9taXNlPG51bWJlcj4pIHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IChpdGVtcyB8fCBbXSkuZmlsdGVyKChpdGVtKSA9PiBpc05pbChpdGVtLmlkKSB8fCBpdGVtLmlkID09PSAwKTtcbiAgICBpZiAoaXNFbXB0eUFycmF5KG5ld0l0ZW1zKSkgcmV0dXJuO1xuICAgIC8vIEdldCB0aGUgc2VxdWVuY2VcbiAgICBsZXQgY3VycmVudElkID0gKGF3YWl0IHNlcXVlbmNlRmFjdG9yeShuZXdJdGVtc1swXSwgbmV3SXRlbXMubGVuZ3RoKSkgKyAxO1xuICAgIC8vIFRha2UgdGhlIG1pbiAoc2VxdWVuY2UsIGlkKSwgaW4gY2FzZSB0aGUgc2VxdWVuY2UgaXMgY29ycnVwdGVkXG4gICAgY3VycmVudElkID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpc05vdE5pbChpdGVtLmlkKSAmJiBpdGVtLmlkIDwgMCkucmVkdWNlKChyZXMsIGl0ZW0pID0+IE1hdGgubWluKHJlcywgaXRlbS5pZCksIGN1cnJlbnRJZCk7XG4gICAgbmV3SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaWQgPSAtLWN1cnJlbnRJZCkpO1xuICB9XG5cbiAgc3RhdGljIGNsZWFuSWRBbmRVcGRhdGVEYXRlPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiwgSUQgPSBhbnk+KHNvdXJjZTogVCkge1xuICAgIGlmICghc291cmNlKSByZXR1cm47IC8vIFNraXBcbiAgICBzb3VyY2UuaWQgPSBudWxsO1xuICAgIHNvdXJjZS51cGRhdGVEYXRlID0gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBjbGVhbklkc0FuZFVwZGF0ZURhdGVzPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiwgSUQgPSBhbnk+KGl0ZW1zOiBUW10pIHtcbiAgICAoaXRlbXMgfHwgW10pLmZvckVhY2goRW50aXR5VXRpbHMuY2xlYW5JZEFuZFVwZGF0ZURhdGU8VCwgSUQ+KTtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0PFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4gfCBhbnk+KGRhdGE6IFRbXSwgc29ydEJ5Pzoga2V5b2YgVCB8IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA8PSAxIHx8ICFzb3J0QnkpIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBkYXRhLnNvcnQodGhpcy5zb3J0Q29tcGFyYXRvcihzb3J0QnksIHNvcnREaXJlY3Rpb24pKTtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0Q29tcGFyYXRvcjxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+IHwgYW55Pihzb3J0Qnk/OiBrZXlvZiBUIHwgc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IChhOiBULCBiOiBUKSA9PiBudW1iZXIge1xuICAgIGNvbnN0IGFmdGVyID0gIXNvcnREaXJlY3Rpb24gfHwgc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgY29uc3QgcHJvcGVydHkgPSAoc29ydEJ5IHx8ICdpZCcpIGFzIHN0cmluZztcbiAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZhbHVlQiA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGIsIHByb3BlcnR5KTtcbiAgICAgIHJldHVybiBFbnRpdHlVdGlscy5jb21wYXJlKHZhbHVlQSwgdmFsdWVCLCBhZnRlcik7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KHZhbHVlMTogVCwgdmFsdWUyOiBULCBkaXJlY3Rpb246IDEgfCAtMSwgY2hlY2tBdHRyaWJ1dGU/OiBrZXlvZiBUKTogbnVtYmVyIHtcbiAgICBjaGVja0F0dHJpYnV0ZSA9IGNoZWNrQXR0cmlidXRlIHx8ICdpZCc7XG4gICAgaWYgKEVudGl0eVV0aWxzLmlzTm90RW1wdHkodmFsdWUxLCBjaGVja0F0dHJpYnV0ZSkgJiYgRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZTIsIGNoZWNrQXR0cmlidXRlKSkge1xuICAgICAgcmV0dXJuIEVudGl0eVV0aWxzLmVxdWFscyh2YWx1ZTEsIHZhbHVlMiwgY2hlY2tBdHRyaWJ1dGUpID8gMCA6IHZhbHVlMVtjaGVja0F0dHJpYnV0ZV0gPiB2YWx1ZTJbY2hlY2tBdHRyaWJ1dGVdID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTEgPT09IHZhbHVlMiA/IDAgOiB2YWx1ZTEgPiB2YWx1ZTIgPyBkaXJlY3Rpb24gOiAtMSAqIGRpcmVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlVmFsdWU8VD4odmFsdWUxOiBULCB2YWx1ZTI6IFQsIGRpcmVjdGlvbjogMSB8IC0xKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTIgPyAwIDogdmFsdWUxID4gdmFsdWUyID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4gfCBhbnk+KGRhdGE6IFRbXSwgc2VhcmNoQXR0cmlidXRlOiBzdHJpbmcsIHNlYXJjaFRleHQ6IHN0cmluZyk6IFRbXSB7XG4gICAgY29uc3QgZmlsdGVyRm4gPSB0aGlzLnNlYXJjaFRleHRGaWx0ZXIoc2VhcmNoQXR0cmlidXRlLCBzZWFyY2hUZXh0KTtcbiAgICByZXR1cm4gZGF0YS5maWx0ZXIoZmlsdGVyRm4pO1xuICB9XG5cbiAgc3RhdGljIHNlYXJjaFRleHRGaWx0ZXI8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55PiB8IGFueT4oc2VhcmNoQXR0cmlidXRlOiBzdHJpbmcgfCBzdHJpbmdbXSwgc2VhcmNoVGV4dDogc3RyaW5nKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc05pbE9yQmxhbmsoc2VhcmNoQXR0cmlidXRlKSB8fCBpc05pbE9yQmxhbmsoc2VhcmNoVGV4dCkpIHJldHVybiB1bmRlZmluZWQ7IC8vIGZpbHRlciBub3QgbmVlZFxuXG4gICAgY29uc3Qgc2VhcmNoUmVnZXhwID0gc2VhcmNoVGV4dFxuICAgICAgLy8gRXNjYXBlIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgICAucmVwbGFjZSgvWy1cXC9cXFxcXiQrLigpfFtcXF17fV0vZywgJ1xcXFwkJicpXG4gICAgICAvLyBJbnRlcnByZXQgKiBhcyBhbnkgdGV4dFxuICAgICAgLnJlcGxhY2UoL1sqXSsvZywgJy4qJylcbiAgICAgIC8vIEludGVycHJldCA/IGFzIG9uZSBjaGFyYWN0ZXJcbiAgICAgIC5yZXBsYWNlKC9bP10vZywgJy4nKTtcbiAgICBpZiAoc2VhcmNoUmVnZXhwID09PSAnLionKSByZXR1cm4gdW5kZWZpbmVkOyAvLyBmaWx0ZXIgbm90IG5lZWRcblxuICAgIGNvbnN0IGZsYWdzID0gJ2knOyAvLyBkb24ndCB1c2UgZ2xvYmFsIHJlZ2V4IHNlYXJjaFxuICAgIGNvbnN0IGFzUHJlZml4UGF0dGVybiA9ICdeJyArIHNlYXJjaFJlZ2V4cDtcbiAgICBjb25zdCBhbnlNYXRjaFBhdHRlcm4gPSAnXi4qJyArIHNlYXJjaFJlZ2V4cDtcblxuICAgIC8vIE9ubHkgb25lIHNlYXJjaCBhdHRyaWJ1dGVzXG4gICAgaWYgKHR5cGVvZiBzZWFyY2hBdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpc1NpbXBsZVBhdGggPSAhc2VhcmNoQXR0cmlidXRlIHx8IHNlYXJjaEF0dHJpYnV0ZS5pbmRleE9mKCcuJykgPT09IC0xO1xuICAgICAgY29uc3Qgc2VhcmNoQXNQcmVmaXggPSBzZWFyY2hBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnbGFiZWwnKSB8fCBzZWFyY2hBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29kZScpO1xuICAgICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cCgoc2VhcmNoQXNQcmVmaXggJiYgYXNQcmVmaXhQYXR0ZXJuKSB8fCBhbnlNYXRjaFBhdHRlcm4sIGZsYWdzKTtcbiAgICAgIGlmIChpc1NpbXBsZVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIChhKSA9PiByZWdleHAudGVzdChhW3NlYXJjaEF0dHJpYnV0ZV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChhKSA9PiByZWdleHAudGVzdChFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChhLCBzZWFyY2hBdHRyaWJ1dGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBtYW55IHNlYXJjaCBhdHRyaWJ1dGVzXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCByZWdleHBzID0gc2VhcmNoQXR0cmlidXRlLm1hcCgocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBzZWFyY2hBc1ByZWZpeCA9IHBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnbGFiZWwnKSB8fCBwYXRoLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ2NvZGUnKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoKHNlYXJjaEFzUHJlZml4ICYmIGFzUHJlZml4UGF0dGVybikgfHwgYW55TWF0Y2hQYXR0ZXJuLCBmbGFncyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoYSkgPT4gc2VhcmNoQXR0cmlidXRlLmZpbmRJbmRleCgocGF0aCwgaW5kZXgpID0+IHJlZ2V4cHNbaW5kZXhdLnRlc3QoRW50aXR5VXRpbHMuZ2V0UHJvcGVydHlCeVBhdGgoYSwgcGF0aCkpKSAhPT0gLTE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIGJhdGNoIGVudGl0eSB0cmVlIGludG8gYSBhcnJheSBsaXN0LiBUaGlzIG1ldGhvZCBrZWVwIGxpbmtzIHBhcmVudC9jaGlsZHJlbi5cbiAgICpcbiAgICogTWV0aG9kIHVzZWQgdG8gZmluZCBiYXRjaCB3aXRob3V0IGlkIChlLmcuIGJlZm9yZSBsb2NhbCBzdG9yYWdlKVxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlXG4gICAqL1xuICBzdGF0aWMgdHJlZVRvQXJyYXkgPSBUcmVlSXRlbUVudGl0eVV0aWxzLnRyZWVUb0FycmF5O1xuXG4gIHN0YXRpYyBsaXN0T2ZUcmVlVG9BcnJheSA9IFRyZWVJdGVtRW50aXR5VXRpbHMubGlzdE9mVHJlZVRvQXJyYXk7XG5cbiAgLyoqXG4gICAqIEZpbGwgcGFyZW50IGF0dHJpYnV0ZSwgb2YgYWxsIGNoaWxkcmVuIGZvdW5kIGluIHRoZSB0cmVlXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlRmlsbFBhcmVudCA9IFRyZWVJdGVtRW50aXR5VXRpbHMudHJlZUZpbGxQYXJlbnQ7XG5cbiAgc3RhdGljIGlzTG9jYWwoZW50aXR5OiBJRW50aXR5PGFueSwgYW55PiB8IEVudGl0eTxhbnksIGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZW50aXR5ICYmIGlzTm90TmlsKGVudGl0eS5pZCkgJiYgK2VudGl0eS5pZCA8IDA7XG4gIH1cblxuICBzdGF0aWMgaXNSZW1vdGUoZW50aXR5OiBJRW50aXR5PGFueSwgYW55PiB8IEVudGl0eTxhbnksIGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZW50aXR5ICYmICFFbnRpdHlVdGlscy5pc0xvY2FsKGVudGl0eSk7XG4gIH1cblxuICBzdGF0aWMgaXNMb2NhbElkKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOb3ROaWwoaWQpICYmICtpZCA8IDA7XG4gIH1cblxuICBzdGF0aWMgaXNSZW1vdGVJZChpZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsKGlkKSAmJiAraWQgPj0gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRJZDxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4gPSBJRW50aXR5PGFueSwgYW55PiwgSUQgPSBhbnk+KGVudGl0eTogVCk6IElEIHtcbiAgICByZXR1cm4gZW50aXR5LmlkO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhbiBJRFxuICBzdGF0aWMgaGFzSWQ8VCBleHRlbmRzIElFbnRpdHk8YW55LCBhbnk+ID0gSUVudGl0eTxhbnksIGFueT4+KGVudGl0eTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05vdE5pbChlbnRpdHk/LmlkKTtcbiAgfVxuXG4gIC8vIENoZWNrIHRoYXQgdGhlIG9iamVjdCBoYXMgYW4gbmlsIElEXG4gIHN0YXRpYyBoYXNOaWxJZDxUIGV4dGVuZHMgSUVudGl0eTxhbnksIGFueT4gPSBJRW50aXR5PGFueSwgYW55Pj4oZW50aXR5OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmlsKGVudGl0eT8uaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0cyBhbiBhcnJheSBvZiBlbnRpdGllcyBpbnRvIGEga2V5LXZhbHVlIG1hcCB1c2luZyBhbiBlbnRpdHkgSUQgYXMgdGhlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxUPn0gZW50aXRpZXMgLSBUaGUgYXJyYXkgb2YgZW50aXRpZXMgdG8gYmUgc3BsaXQgYnkgdGhlaXIgSUQuXG4gICAqIEByZXR1cm4ge0tleVZhbHVlVHlwZTxUPn0gQSBrZXktdmFsdWUgbWFwIHdpdGggZW50aXR5IElEcyBhcyBrZXlzIGFuZCBlbnRpdGllcyBhcyB2YWx1ZXMuXG4gICAqL1xuICBzdGF0aWMgc3BsaXRCeUlkPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiwgSUQgPSBhbnk+KGVudGl0aWVzOiBUW10pOiBLZXlWYWx1ZVR5cGU8VD4ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLnJlZHVjZShcbiAgICAgIChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gaXRlbT8uaWQ7XG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyB8fCB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc1trZXldID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSxcbiAgICAgIDxLZXlWYWx1ZVR5cGU8VD4+e31cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3RzIHRoZSBJRHMgZnJvbSBhbiBhcnJheSBvZiBlbnRpdGllcyBhbmQgcmV0dXJucyB0aGVtIGFzIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge1RbXX0gZW50aXRpZXMgLSBBbiBhcnJheSBvZiBlbnRpdGllcyBmcm9tIHdoaWNoIHRvIGNvbGxlY3QgSURzLlxuICAgKiBAcmV0dXJuIHtJRFtdfSBBbiBhcnJheSBvZiBJRHMgY29sbGVjdGVkIGZyb20gdGhlIGVudGl0aWVzLlxuICAgKi9cbiAgc3RhdGljIGNvbGxlY3RJZHM8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IElEW10ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLm1hcCgoZSkgPT4gZS5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGNvbGxlY3RJZHMoKSBpbnN0ZWFkIC0gd2lsbCBiZSByZW1vdmUgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqL1xuICBzdGF0aWMgY29sbGVjdEJ5SWQ8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IElEW10ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLm1hcCgoZSkgPT4gZS5pZCk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXlEaXN0aW5jdEZpbHRlckZuPEUgZXh0ZW5kcyBJRW50aXR5PGFueSwgYW55Pj4oaXRlbTogRSwgaW5kZXg6IG51bWJlciwgdmFsdWVzOiBFW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWVzLmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PT0gaXRlbS5pZCkgPT09IGluZGV4O1xuICB9XG5cbiAgc3RhdGljIGZpbmRCeUlkPEUgZXh0ZW5kcyBJRW50aXR5PGFueSwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sIElEID0gbnVtYmVyPihpdGVtczogRVtdLCBpZDogSUQpOiBFIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKGl0ZW1zIHx8IFtdKS5maW5kKChnKSA9PiBnLmlkID09PSBpZCk7XG4gIH1cbn1cbiJdfQ==
@@ -90,4 +90,4 @@ export class EntityFilterUtils {
90
90
  return target;
91
91
  }
92
92
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBa0MsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFvQnRGLE1BQU0sT0FBZ0IsWUFPcEIsU0FBUSxNQUFxQjtJQUc3Qjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBNEIsU0FBd0I7UUFDdkUsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBcUQsT0FBWTtRQUM3RSxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMs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TixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eUFycmF5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBNSU5JRllfRU5USVRZX0ZPUl9QT0QsIFJlZmVyZW50aWFsVXRpbHMgfSBmcm9tICcuL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zLCBJRW50aXR5LCBpc0luc3RhbmNlT2YgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5cbmltcG9ydCB7IEZpbHRlckZuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5RmlsdGVyPFxuICBGIGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgYW55PixcbiAgSUQgPSBudW1iZXIsXG4gIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueSxcbj4gZXh0ZW5kcyBJRW50aXR5PEYsIElELCBBTywgRk8+IHtcbiAgYXNQb2RPYmplY3QoKTogYW55O1xuXG4gIGFzRmlsdGVyRm4oKTogRmlsdGVyRm48VD47XG5cbiAgaXNFbXB0eSgpOiBib29sZWFuO1xuXG4gIGNvdW50Tm90RW1wdHlDcml0ZXJpYSgpOiBudW1iZXI7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXI8XG4gICAgRiBleHRlbmRzIEVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICAgIEZPID0gYW55LFxuICA+XG4gIGV4dGVuZHMgRW50aXR5PEYsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPlxue1xuICAvKipcbiAgICogQ29tcG9zZSBzb21lIGZpbHRlciBmdW5jdGlvbnM6IGFsbCBzaG91bGQgcmV0dXJuIHRydWVcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlckZuc1xuICAgKi9cbiAgc3RhdGljIGNvbXBvc2VGaWx0ZXJzPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlckZuczogRmlsdGVyRm48VD5bXSk6IEZpbHRlckZuPFQ+IHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KGZpbHRlckZucykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChlbnRpdHkpID0+IChmaWx0ZXJGbnMgfHwgW10pLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBzdGF0aWMgY29tcG9zZTxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIFQ+LCBUIGV4dGVuZHMgSUVudGl0eTxUPj4oZmlsdGVyczogRltdKTogRmlsdGVyRm48VD4ge1xuICAgIGNvbnN0IGZpbHRlckZucyA9IChmaWx0ZXJzIHx8IFtdKS5yZWR1Y2UoKHJlcywgZikgPT4ge1xuICAgICAgY29uc3QgZm5zID0gZi5idWlsZEZpbHRlcigpO1xuICAgICAgaWYgKCFmbnMpIHJldHVybiByZXM7XG4gICAgICByZXR1cm4gcmVzLmNvbmNhdChmbnMpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gdGhpcy5jb21wb3NlRmlsdGVycyhmaWx0ZXJGbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBvc2Ugc29tZSBmaWx0ZXIgZnVuY3Rpb25zOiBhbGwgc2hvdWxkIHJldHVybiB0cnVlXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXJGbnNcbiAgICovXG4gIHN0YXRpYyBjb21wb3NlRm5zPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlckZuczogRmlsdGVyRm48VD5bXSk6IEZpbHRlckZuPFQ+IHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KGZpbHRlckZucykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChlbnRpdHkpID0+IChmaWx0ZXJGbnMgfHwgW10pLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYSBmaWx0ZXIsIGJlZm9yZSBzZW5kaW5nIHRvIHRoZSBwb2QgKGUuZyBjb252ZXJ0IGRhdGVzLCByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllcywgZXRjLilcbiAgICovXG4gIGFzUG9kT2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuYXNPYmplY3QoTUlOSUZZX0VOVElUWV9GT1JfUE9EIGFzIEFPKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY291bnROb3RFbXB0eUNyaXRlcmlhKCkgPT09IDA7XG4gIH1cblxuICBjb3VudE5vdEVtcHR5Q3JpdGVyaWEoKTogbnVtYmVyIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5hc1BvZE9iamVjdCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoKGtleSkgPT4gdGhpcy5pc0NyaXRlcmlhTm90RW1wdHkoa2V5LCBqc29uW2tleV0pKS5sZW5ndGg7XG4gIH1cblxuICBhc0ZpbHRlckZuKCk6IEZpbHRlckZuPFQ+IHtcbiAgICBjb25zdCBmaWx0ZXJGbnMgPSB0aGlzLmJ1aWxkRmlsdGVyKCk7XG4gICAgcmV0dXJuIEVudGl0eUZpbHRlci5jb21wb3NlRm5zKGZpbHRlckZucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48VD5bXSB7XG4gICAgLy8gQ2FuIGJlIGNvbXBsZXRlZCBieSBzdWJjbGFzc2VzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ3JpdGVyaWFOb3RFbXB0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAvLyB2YWxpZCBudW1iZXJcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkgfHxcbiAgICAgICAgLy8gdmFsaWQgYm9vbGVhblxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8XG4gICAgICAgIC8vIGVudGl0eSB3aXRoIGFuIGlkXG4gICAgICAgIFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50aXR5RmlsdGVyVXRpbHMge1xuICBzdGF0aWMgaXNFbnRpdHlGaWx0ZXI8RiBleHRlbmRzIEVudGl0eUZpbHRlcjxGLCBhbnk+PihvYmo6IFBhcnRpYWw8Rj4pOiBvYmogaXMgRiB7XG4gICAgcmV0dXJuIChvYmogJiYgb2JqLmFzUG9kT2JqZWN0ICYmIG9iai5hc0ZpbHRlckZuICYmIHRydWUpIHx8IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Q8Rj4oc291cmNlOiBhbnksIGZpbHRlclR5cGU6IG5ldyAoKSA9PiBGKTogRiB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiBzb3VyY2U7XG4gICAgaWYgKGlzSW5zdGFuY2VPZihzb3VyY2UsIGZpbHRlclR5cGUpKSByZXR1cm4gc291cmNlIGFzIEY7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IGZpbHRlclR5cGUoKTtcbiAgICBpZiAoRW50aXR5RmlsdGVyVXRpbHMuaXNFbnRpdHlGaWx0ZXIodGFyZ2V0KSkge1xuICAgICAgdGFyZ2V0LmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBa0MsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFvQnRGLE1BQU0sT0FBZ0IsWUFPcEIsU0FBUSxNQUFxQjtJQUc3Qjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBNEIsU0FBd0I7UUFDdkUsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBMEQsT0FBWTtRQUNsRixNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMs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TixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eUFycmF5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBNSU5JRllfRU5USVRZX0ZPUl9QT0QsIFJlZmVyZW50aWFsVXRpbHMgfSBmcm9tICcuL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zLCBJRW50aXR5LCBpc0luc3RhbmNlT2YgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5cbmltcG9ydCB7IEZpbHRlckZuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5RmlsdGVyPFxuICBGIGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgYW55PixcbiAgSUQgPSBudW1iZXIsXG4gIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueSxcbj4gZXh0ZW5kcyBJRW50aXR5PEYsIElELCBBTywgRk8+IHtcbiAgYXNQb2RPYmplY3QoKTogYW55O1xuXG4gIGFzRmlsdGVyRm4oKTogRmlsdGVyRm48VD47XG5cbiAgaXNFbXB0eSgpOiBib29sZWFuO1xuXG4gIGNvdW50Tm90RW1wdHlDcml0ZXJpYSgpOiBudW1iZXI7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXI8XG4gICAgRiBleHRlbmRzIEVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICAgIEZPID0gYW55LFxuICA+XG4gIGV4dGVuZHMgRW50aXR5PEYsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPlxue1xuICAvKipcbiAgICogQ29tcG9zZSBzb21lIGZpbHRlciBmdW5jdGlvbnM6IGFsbCBzaG91bGQgcmV0dXJuIHRydWVcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlckZuc1xuICAgKi9cbiAgc3RhdGljIGNvbXBvc2VGaWx0ZXJzPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlckZuczogRmlsdGVyRm48VD5bXSk6IEZpbHRlckZuPFQ+IHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KGZpbHRlckZucykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChlbnRpdHkpID0+IChmaWx0ZXJGbnMgfHwgW10pLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBzdGF0aWMgY29tcG9zZTxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIFQ+LCBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PihmaWx0ZXJzOiBGW10pOiBGaWx0ZXJGbjxUPiB7XG4gICAgY29uc3QgZmlsdGVyRm5zID0gKGZpbHRlcnMgfHwgW10pLnJlZHVjZSgocmVzLCBmKSA9PiB7XG4gICAgICBjb25zdCBmbnMgPSBmLmJ1aWxkRmlsdGVyKCk7XG4gICAgICBpZiAoIWZucykgcmV0dXJuIHJlcztcbiAgICAgIHJldHVybiByZXMuY29uY2F0KGZucyk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2VGaWx0ZXJzKGZpbHRlckZucyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcG9zZSBzb21lIGZpbHRlciBmdW5jdGlvbnM6IGFsbCBzaG91bGQgcmV0dXJuIHRydWVcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlckZuc1xuICAgKi9cbiAgc3RhdGljIGNvbXBvc2VGbnM8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oZmlsdGVyRm5zOiBGaWx0ZXJGbjxUPltdKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc0VtcHR5QXJyYXkoZmlsdGVyRm5zKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKGVudGl0eSkgPT4gKGZpbHRlckZucyB8fCBbXSkuZXZlcnkoKGZuKSA9PiBmbihlbnRpdHkpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihfX3R5cGVuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiBhIGZpbHRlciwgYmVmb3JlIHNlbmRpbmcgdG8gdGhlIHBvZCAoZS5nIGNvbnZlcnQgZGF0ZXMsIHJlbW92ZSBpbnRlcm5hbCBwcm9wZXJ0aWVzLCBldGMuKVxuICAgKi9cbiAgYXNQb2RPYmplY3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5hc09iamVjdChNSU5JRllfRU5USVRZX0ZPUl9QT0QgYXMgQU8pO1xuICB9XG5cbiAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb3VudE5vdEVtcHR5Q3JpdGVyaWEoKSA9PT0gMDtcbiAgfVxuXG4gIGNvdW50Tm90RW1wdHlDcml0ZXJpYSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGpzb24gPSB0aGlzLmFzUG9kT2JqZWN0KCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGpzb24pLmZpbHRlcigoa2V5KSA9PiB0aGlzLmlzQ3JpdGVyaWFOb3RFbXB0eShrZXksIGpzb25ba2V5XSkpLmxlbmd0aDtcbiAgfVxuXG4gIGFzRmlsdGVyRm4oKTogRmlsdGVyRm48VD4ge1xuICAgIGNvbnN0IGZpbHRlckZucyA9IHRoaXMuYnVpbGRGaWx0ZXIoKTtcbiAgICByZXR1cm4gRW50aXR5RmlsdGVyLmNvbXBvc2VGbnMoZmlsdGVyRm5zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxUPltdIHtcbiAgICAvLyBDYW4gYmUgY29tcGxldGVkIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDcml0ZXJpYU5vdEVtcHR5KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlc1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgLy8gbm90IGVtcHR5IHN0cmluZ1xuICAgICAgKCh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSAhPT0gJycpIHx8XG4gICAgICAgIC8vIHZhbGlkIG51bWJlclxuICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhaXNOYU4odmFsdWUpKSB8fFxuICAgICAgICAvLyB2YWxpZCBib29sZWFuXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgIC8vIG5vdCBlbXB0eSBhcnJheVxuICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkgfHxcbiAgICAgICAgLy8gZW50aXR5IHdpdGggYW4gaWRcbiAgICAgICAgUmVmZXJlbnRpYWxVdGlscy5pc05vdEVtcHR5KHZhbHVlKSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXJVdGlscyB7XG4gIHN0YXRpYyBpc0VudGl0eUZpbHRlcjxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIGFueT4+KG9iajogUGFydGlhbDxGPik6IG9iaiBpcyBGIHtcbiAgICByZXR1cm4gKG9iaiAmJiBvYmouYXNQb2RPYmplY3QgJiYgb2JqLmFzRmlsdGVyRm4gJiYgdHJ1ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdDxGPihzb3VyY2U6IGFueSwgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYpOiBGIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHNvdXJjZTtcbiAgICBpZiAoaXNJbnN0YW5jZU9mKHNvdXJjZSwgZmlsdGVyVHlwZSkpIHJldHVybiBzb3VyY2UgYXMgRjtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgZmlsdGVyVHlwZSgpO1xuICAgIGlmIChFbnRpdHlGaWx0ZXJVdGlscy5pc0VudGl0eUZpbHRlcih0YXJnZXQpKSB7XG4gICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuIl19