New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@codebakery/origami

Package Overview
Dependencies
Maintainers
2
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codebakery/origami - npm Package Compare versions

Comparing version 3.0.0-beta.6 to 3.0.0-beta.7

17

bundles/origami-templates.umd.js

@@ -314,3 +314,3 @@ (function (global, factory) {

hostProps = (_a.sent()).hostProps;
if (Object.keys(hostProps).length) {
if (hostProps) {
_loop_1 = function (prop) {

@@ -378,14 +378,3 @@ /** @type {?} */

return [2 /*return*/, template._templateInfo];
case 1: return [4 /*yield*/, new Promise(function (resolve) {
util.wrapAndDefineDescriptor(template, '_templateInfo', {
afterSet: /**
* @return {?}
*/ function () {
// Resolve at micro timing after _templateInfo is first set, since
// TemplateStamp will first set it to an empty object before
// initializing it
setTimeout(function () { return resolve(template._templateInfo); });
}
});
})];
case 1: return [4 /*yield*/, util.whenSet(template, '_templateInfo')];
case 2: return [2 /*return*/, _a.sent()];

@@ -502,2 +491,2 @@ }

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvcG9seW1lckhvc3QudHMiLG51bGwsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2VcclxudGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGVcclxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuXHJcblRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcclxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxyXG5XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxyXG5NRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxyXG5cclxuU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXHJcbmFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgcmVzdWx0W2tdID0gbW9kW2tdO1xyXG4gICAgcmVzdWx0LmRlZmF1bHQgPSBtb2Q7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG4iLCJpbXBvcnQgeyB3aGVuU2V0IH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBIVE1MVGVtcGxhdGVFbGVtZW50OiB0eXBlb2YgSFRNTFRlbXBsYXRlRWxlbWVudDtcbiAgfVxufVxuXG5sZXQgc2hpbVByb21pc2U6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWQ7XG4vKipcbiAqIEFuZ3VsYXIgaW5jb3JyZWN0bHkgYWRkcyBgPHRlbXBsYXRlPmAgY2hpbGRyZW4gdG8gdGhlIGVsZW1lbnQncyBjaGlsZCBub2RlXG4gKiBsaXN0IGluc3RlYWQgb2YgaXRzIGNvbnRlbnQuIFRoaXMgc2hpbSBmb3JjZXMgY2hpbGRyZW4gYXBwZW5kZWQgdG8gYVxuICogYDx0ZW1wbGF0ZT5gIHRvIGJlIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU1NTdcbiAqXG4gKiBAcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBIVE1MVGVtcGxhdGVFbGVtZW50IGlzIHNoaW1tZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghc2hpbVByb21pc2UpIHtcbiAgICBjb25zdCBzaGltID0gKCkgPT4ge1xuICAgICAgLy8gQW5ndWxhcidzIHJlbmRlcmVyIHdpbGwgYWRkIGNoaWxkcmVuIHRvIGEgPHRlbXBsYXRlPiBpbnN0ZWFkIG9mIHRvIGl0c1xuICAgICAgLy8gY29udGVudC4gVGhpcyBzaGltIHdpbGwgZm9yY2UgYW55IGNoaWxkcmVuIGFkZGVkIHRvIGEgPHRlbXBsYXRlPiB0byBiZVxuICAgICAgLy8gYWRkZWQgdG8gaXRzIGNvbnRlbnQgaW5zdGVhZC5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gICAgICBjb25zdCBuYXRpdmVBcHBlbmQgPSBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZDtcbiAgICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkID0gZnVuY3Rpb248VCBleHRlbmRzIE5vZGU+KFxuICAgICAgICBjaGlsZE5vZGU6IFRcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudC5hcHBlbmRDaGlsZChjaGlsZE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBuYXRpdmVBcHBlbmQuYXBwbHkodGhpcywgW2NoaWxkTm9kZV0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBzaGltUHJvbWlzZSA9IG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgYXdhaXQgd2hlblNldCh3aW5kb3csICdIVE1MVGVtcGxhdGVFbGVtZW50Jyk7XG4gICAgICBzaGltKCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc2hpbVByb21pc2U7XG59XG5cbi8qKlxuICogUmVzZXRzIGBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKClgIHNvIHRoYXQgaXQgd2lsbCByZS1zaGltIHRoZSBjbGFzcyBuZXh0XG4gKiB0aW1lIGl0IGlzIGNhbGxlZC4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZCBmb3IgdGVzdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0U2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpIHtcbiAgc2hpbVByb21pc2UgPSB1bmRlZmluZWQ7XG59XG4iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd3JhcEFuZERlZmluZURlc2NyaXB0b3IgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3V0aWwnO1xuaW1wb3J0IHsgY2FtZWxUb0Rhc2hDYXNlIH0gZnJvbSAnQHBvbHltZXIvcG9seW1lci9saWIvdXRpbHMvY2FzZS1tYXAnO1xuaW1wb3J0IHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnQHBvbHltZXIvcG9seW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBPTFlNRVJfSE9TVCB9IGZyb20gJy4vcG9seW1lckhvc3QnO1xuaW1wb3J0IHsgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCB9IGZyb20gJy4vc2hpbS10ZW1wbGF0ZS1hcHBlbmQnO1xuXG4vKipcbiAqIEFuIEhUTUxUZW1wbGF0ZUVsZW1lbnQgdGhhdCBpcyBwcm9jZXNzZWQgYnkgUG9seW1lcidzIHRlbXBsYXRpemVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbHltZXJUZW1wbGF0ZSBleHRlbmRzIEhUTUxUZW1wbGF0ZUVsZW1lbnQge1xuICAvKipcbiAgICogQWRkZWQgYnkgdGhlIGBQcm9wZXJ0eUVmZmVjdHNgIG1peGluIHRvIGluc3RydWN0IHRlbXBsYXRpemUgb2YgdGhlIGhvc3RcbiAgICogZm9yIHRoZSB0ZW1wbGF0ZS4gRWZmZWN0cyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgdGVtcGxhdGUgaW5zdGFuY2Ugd2lsbFxuICAgKiBwcm9wYWdhdGUgdG8gdGhpcyBob3N0LlxuICAgKi9cbiAgX19kYXRhSG9zdD86IGFueTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIG1ldGFkYXRhIGdlbmVyYXRlZCBmcm9tIGBUZW1wbGF0ZVN0YW1wYC5cbiAgICovXG4gIF90ZW1wbGF0ZUluZm8/OiBUZW1wbGF0ZUluZm87XG4gIC8qKlxuICAgKiBIb3N0IHByb3BlcnRpZXMgYXJlIGRlZmluZWQgYXMgYF9ob3N0X3Byb3BOYW1lYCBieSB0ZW1wbGF0aXplci5cbiAgICovXG4gIFtob3N0UHJvcDogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGVhY2ggYDx0ZW1wbGF0ZT5gIGVsZW1lbnQuIElmIGEgUG9seW1lciBob3N0XG4gKiBjb21wb25lbnQgaXMgcHJvdmlkZWQsIHRoaXMgZGlyZWN0aXZlIHdpbGwgZW5hYmxlIFBvbHltZXIncyBldmVudCBhbmRcbiAqIHR3by13YXkgYmluZGluZyBzeW50YXggc3R5bGVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVEaXJlY3RpdmUge1xuICByZWFkeTogUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KFBPTFlNRVJfSE9TVClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBwb2x5bWVySG9zdDogYW55LFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMucmVhZHkgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucG9seW1lckhvc3QpIHtcbiAgICAgICAgdGhpcy5lbmFibGVFdmVudEJpbmRpbmdzKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlUHJvcGVydHlCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFBvbHltZXIgZXZlbnQgYmluZGluZ3MuIEFuIGV2ZW50IGJpbmRpbmcgaXMgZGVjbGFyZWRcbiAgICogd2l0aCB0aGUgc3ludGF4IGBvbi1ldmVudC1uYW1lPVwiaGFuZGxlclwiYCwgd2hlcmUgYGV2ZW50LW5hbWVgIGlzIHRoZVxuICAgKiBuYW1lIG9mIHRoZSBldmVudCB0byBsaXN0ZW4gdG8gYW5kIGBoYW5kbGVyYCBpcyB0aGUgbmFtZSBvZiB0aGUgaG9zdCdzXG4gICAqIG1ldGhvZCB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZXZlbnQgYmluZGluZyBzeW50YXggZm9yXG4gICAqL1xuICBlbmFibGVFdmVudEJpbmRpbmdzKHRlbXBsYXRlOiBQb2x5bWVyVGVtcGxhdGUpIHtcbiAgICAvLyBXaGVuIHRlbXBsYXRpemUgbG9va3MgZm9yIGEgUHJvcGVydHlFZmZlY3RzIGhvc3QsIGl0IHdpbGwgdXNlIHRoZVxuICAgIC8vIHRlbXBsYXRlJ3MgX19kYXRhSG9zdCBwcm9wZXJ0eS4gVGhpcyBpcyB0aGUgX21ldGhvZEhvc3QgZm9yIGEgdGVtcGxhdGVcbiAgICAvLyBpbnN0YW5jZSBhbmQgaXMgdXNlZCB0byBhZGQgZXZlbnQgbGlzdGVuZXIgYmluZGluZ3MuXG4gICAgdGVtcGxhdGUuX19kYXRhSG9zdCA9IHRoaXMucG9seW1lckhvc3Q7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFBvbHltZXIgcHJvcGVydHkgYmluZGluZ3MuIEEgcHJvcGVydHkgYmluZGluZyBpc1xuICAgKiBkZWNsYXJlZCBlaXRoZXIgYXMgYSBvbmUtd2F5IGJpbmRpbmcgYHZhbHVlPVwiW1twcm9wTmFtZV1dXCJgIG9yIGEgdHdvLXdheVxuICAgKiBiaW5kaW5nIGB2YWx1ZT1cInt7cHJvcE5hbWV9fVwiYC5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBQb2x5bWVyIHRlbXBsYXRlIHRvIGVuYWJsZSBkYXRhIGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgYXN5bmMgZW5hYmxlUHJvcGVydHlCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBob3N0UHJvcHMgfSA9IGF3YWl0IHRoaXMuZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKTtcbiAgICBpZiAoT2JqZWN0LmtleXMoaG9zdFByb3BzKS5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IHByb3AgaW4gaG9zdFByb3BzKSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgLT4gUG9seW1lciAob25lLXdheSBiaW5kaW5ncylcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gdGhpcy5wb2x5bWVySG9zdFtwcm9wXTtcbiAgICAgICAgd3JhcEFuZERlZmluZURlc2NyaXB0b3IodGhpcy5wb2x5bWVySG9zdCwgcHJvcCwge1xuICAgICAgICAgIGFmdGVyU2V0KGNoYW5nZWQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICAgIHRlbXBsYXRlW2BfaG9zdF8ke3Byb3B9YF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucG9seW1lckhvc3RbcHJvcF0gPSBpbml0aWFsVmFsdWU7XG5cbiAgICAgICAgLy8gUG9seW1lciAtPiBBbmd1bGFyICh0d28td2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBldmVudE5hbWUgPSBgX2hvc3RfJHtjYW1lbFRvRGFzaENhc2UocHJvcCl9LWNoYW5nZWRgO1xuICAgICAgICB0ZW1wbGF0ZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnQgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmlzU3BsaWNlc0NoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpICYmXG4gICAgICAgICAgICAhdGhpcy5pc1BhdGhDaGFuZ2UoPEN1c3RvbUV2ZW50PmV2ZW50KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucG9seW1lckhvc3RbcHJvcF0gPSAoPEN1c3RvbUV2ZW50PmV2ZW50KS5kZXRhaWwudmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHRlbXBsYXRlIGluZm8gbWV0YWRhdGEgZm9yIGEgUG9seW1lciB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBQb2x5bWVyIHRlbXBsYXRlIHRvIHJldHJpZXZlIHRlbXBsYXRlIGluZm8gZm9yXG4gICAqIEByZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHRlbXBsYXRlJ3MgaW5mb1xuICAgKi9cbiAgYXN5bmMgZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlOiBQb2x5bWVyVGVtcGxhdGUpOiBQcm9taXNlPFRlbXBsYXRlSW5mbz4ge1xuICAgIGlmICh0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvKSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUuX3RlbXBsYXRlSW5mbztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPFRlbXBsYXRlSW5mbz4ocmVzb2x2ZSA9PiB7XG4gICAgICAgIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yKHRlbXBsYXRlLCAnX3RlbXBsYXRlSW5mbycsIHtcbiAgICAgICAgICBhZnRlclNldCgpIHtcbiAgICAgICAgICAgIC8vIFJlc29sdmUgYXQgbWljcm8gdGltaW5nIGFmdGVyIF90ZW1wbGF0ZUluZm8gaXMgZmlyc3Qgc2V0LCBzaW5jZVxuICAgICAgICAgICAgLy8gVGVtcGxhdGVTdGFtcCB3aWxsIGZpcnN0IHNldCBpdCB0byBhbiBlbXB0eSBvYmplY3QgYmVmb3JlXG4gICAgICAgICAgICAvLyBpbml0aWFsaXppbmcgaXRcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSh0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBcInNwbGljZXNcIiBQb2x5bWVyIGNoYW5nZSBldmVudCxcbiAgICogd2hpY2ggaGFzIGEgZGV0YWlsIHZhbHVlIG9iamVjdCB0aGF0IGRpY3RhdGVzIHdoYXQgZWxlbWVudHMgd2VyZSBjaGFuZ2VkIGlmXG4gICAqIHRoZSBhcnJheSByZWZlcmVuY2UgcmVtYWlucyB0aGUgc2FtZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBjaGVja1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBhIHNwbGljZXMgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGlzU3BsaWNlc0NoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcbiAgICByZXR1cm4gdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZS5pbmRleFNwbGljZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBldmVudCBpcyBhIHBhdGggUG9seW1lciBjaGFuZ2UgZXZlbnQsIHdoaWNoXG4gICAqIGhhcyBhIGRldGFpbCBwYXRoIHByb3BlcnR5IGluZGljYXRpbmcgdGhlIHBhdGggb2YgdGhlIHZhbHVlIGNoYW5nZWQsIGFuZCBhXG4gICAqIHZhbHVlIG9mIHRoZSBwYXRoJ3MgdmFsdWUuIFRoaXMgaXMgdXNlZCB3aGVuIGFuIGFycmF5IG9yIG9iamVjdCByZWZlcmVuY2VcbiAgICogcmVtYWlucyB0aGUgc2FtZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBjaGVja1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBhIHBhdGggY2hhbmdlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGlzUGF0aENoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGV2ZW50LmRldGFpbC5wYXRoID09PSAnc3RyaW5nJztcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUsIFByb3ZpZGVyLCBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdlYkNvbXBvbmVudHNSZWFkeU1vZHVsZSB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvcG9seWZpbGxzJztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG5zaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk7XG5cbmV4cG9ydCBjb25zdCBURU1QTEFURVNfUkVBRFlfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VWYWx1ZTogc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZFxufTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1dlYkNvbXBvbmVudHNSZWFkeU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RlbXBsYXRlRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbVEVNUExBVEVTX1JFQURZX1BST1ZJREVSXSxcbiAgZXhwb3J0czogW1RlbXBsYXRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZU1vZHVsZSB7fVxuIl0sIm5hbWVzIjpbIkluamVjdGlvblRva2VuIiwid2hlblNldCIsInBvbHltZXJIb3N0Iiwid3JhcEFuZERlZmluZURlc2NyaXB0b3IiLCJjYW1lbFRvRGFzaENhc2UiLCJEaXJlY3RpdmUiLCJFbGVtZW50UmVmIiwiSW5qZWN0IiwiT3B0aW9uYWwiLCJOZ1pvbmUiLCJBUFBfSU5JVElBTElaRVIiLCJOZ01vZHVsZSIsIldlYkNvbXBvbmVudHNSZWFkeU1vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLE1BQWEsWUFBWSxHQUFHLElBQUlBLG1CQUFjLENBQU0sYUFBYSxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhbkUsdUJBQTRCLGFBQXdCO01BQ2xELE9BQU87VUFDTCxPQUFPLEVBQUUsWUFBWTtVQUNyQixVQUFVLEVBQUUsZ0JBQWdCO1VBQzVCLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztPQUN0QixDQUFDO0dBQ0g7Ozs7Ozs7Ozs7Ozs7QUFjRCw0QkFBaUMsUUFBYTs7TUFFNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtVQUNyQyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsVUFDakMsSUFBVSxFQUNWLFNBQWlCLEVBQ2pCLE9BQTJCO2NBRTNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7V0FDM0MsQ0FBQztPQUNIO01BRUQsT0FBTyxRQUFRLENBQUM7R0FDakI7O0VDckREOzs7Ozs7Ozs7Ozs7OztBQWNBLHFCQW1EMEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUztNQUN2RCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNO1VBQ3JELG1CQUFtQixLQUFLLElBQUksSUFBSTtjQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7V0FBRTtVQUFDLE9BQU8sQ0FBQyxFQUFFO2NBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1dBQUUsRUFBRTtVQUMzRixrQkFBa0IsS0FBSyxJQUFJLElBQUk7Y0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7V0FBRTtVQUFDLE9BQU8sQ0FBQyxFQUFFO2NBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1dBQUUsRUFBRTtVQUM5RixjQUFjLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7VUFDL0ksSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO09BQ3pFLENBQUMsQ0FBQztFQUNQLENBQUM7QUFFRCx1QkFBNEIsT0FBTyxFQUFFLElBQUk7TUFDckMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Y0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDakgsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxLQUFLLFVBQVUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWEsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQ3pKLGNBQWMsQ0FBQyxJQUFJLE9BQU8sVUFBVSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtNQUNsRSxjQUFjLEVBQUU7VUFDWixJQUFJLENBQUM7Y0FBRSxNQUFNLElBQUksU0FBUyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7VUFDOUQsT0FBTyxDQUFDO2NBQUUsSUFBSTtrQkFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7c0JBQUUsT0FBTyxDQUFDLENBQUM7a0JBQzdKLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3NCQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2tCQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7c0JBQ1QsS0FBSyxDQUFDLENBQUM7c0JBQUMsS0FBSyxDQUFDOzBCQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7MEJBQUMsTUFBTTtzQkFDOUIsS0FBSyxDQUFDOzBCQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzswQkFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7c0JBQ3hELEtBQUssQ0FBQzswQkFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7MEJBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzswQkFBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzswQkFBQyxTQUFTO3NCQUNqRCxLQUFLLENBQUM7MEJBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7MEJBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFBQyxTQUFTO3NCQUNqRDswQkFDSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7OEJBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzs4QkFBQyxTQUFTOzJCQUFFOzBCQUM1RyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs4QkFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUN0RixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7OEJBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7OEJBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs4QkFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs4QkFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7OEJBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFBQyxTQUFTO21CQUM5QjtrQkFDRCxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7ZUFDOUI7Y0FBQyxPQUFPLENBQUMsRUFBRTtrQkFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7a0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztlQUFFO3NCQUFTO2tCQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2VBQUU7VUFDMUQsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztjQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUNwRjtFQUNMLENBQUM7Ozs7Ozs7RUM1RkQsSUFBSSxXQUFXLENBQTRCOzs7Ozs7Ozs7O0FBVTNDO01BQUEsaUJBMkJDO01BMUJDLElBQUksQ0FBQyxXQUFXLEVBQUU7O1VBQ2hCLElBQU0sTUFBSSxHQUFHOztjQUtYLElBQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7Y0FDL0QsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxVQUMxQyxTQUFZO2tCQUVaLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtzQkFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzttQkFDNUM7dUJBQU07c0JBQ0wsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7bUJBQzlDO2VBQ0YsQ0FBQztXQUNILENBQUM7VUFFRixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBTSxPQUFPOzs7O2tDQUNyQyxxQkFBTUMsWUFBTyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxFQUFBOzs4QkFBNUMsU0FBNEMsQ0FBQzs4QkFDN0MsTUFBSSxFQUFFLENBQUM7OEJBQ1AsT0FBTyxFQUFFLENBQUM7Ozs7O1dBQ1gsQ0FBQyxDQUFDO09BQ0o7TUFFRCxPQUFPLFdBQVcsQ0FBQztHQUNwQjs7Ozs7O0FBTUQ7TUFDRSxXQUFXLEdBQUcsU0FBUyxDQUFDO0dBQ3pCOzs7Ozs7Ozs7Ozs7TUNmQywyQkFDUyxZQUdBQyxjQUFnQixFQUNmO1VBTFYsaUJBYUM7VUFaUSxlQUFVLEdBQVYsVUFBVTtVQUdWLGdCQUFXLEdBQVhBLGNBQVcsQ0FBSztVQUNmLFNBQUksR0FBSixJQUFJO1VBRVosSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDOzs7OzttQ0FDUixJQUFJLENBQUMsV0FBVztrQ0FBaEIsd0JBQWdCOzhCQUNsQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDOzhCQUNuRCxxQkFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFBOzs4QkFBM0QsU0FBMkQsQ0FBQzs7Ozs7O1dBRS9ELEdBQUcsQ0FBQztPQUNOOzs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFVRCwrQ0FBbUI7Ozs7Ozs7OztVQUFuQixVQUFvQixRQUF5Qjs7OztjQUkzQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7V0FDeEM7Ozs7Ozs7Ozs7Ozs7Ozs7TUFTSyxrREFBc0I7Ozs7Ozs7O1VBQTVCLFVBQTZCLFFBQXlCOzs7Ozs7a0NBQzlCLHFCQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUE7OzhCQUFsRCxTQUFTLEdBQUssQ0FBQSxTQUFvQyxXQUF6Qzs4QkFDakIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtzREFDeEIsSUFBSTs7c0NBRVgsSUFBTSxZQUFZLEdBQUcsT0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7c0NBQzVDQyw0QkFBdUIsQ0FBQyxPQUFLLFdBQVcsRUFBRSxJQUFJLEVBQUU7MENBQzlDLFFBQVE7Ozs7d0RBQUMsT0FBZ0IsRUFBRSxLQUFVOzhDQUNuQyxJQUFJLE9BQU8sRUFBRTtrREFDWCxRQUFRLENBQUMsV0FBUyxJQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7K0NBQ25DOzJDQUNGO3VDQUNGLENBQUMsQ0FBQztzQ0FFSCxPQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7O3NDQUd0QyxJQUFNLFNBQVMsR0FBRyxXQUFTQyx1QkFBZSxDQUFDLElBQUksQ0FBQyxhQUFVLENBQUM7c0NBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsVUFBQSxLQUFLOzBDQUN4QyxJQUNFLENBQUMsS0FBSSxDQUFDLGVBQWUsbUJBQWMsS0FBSyxFQUFDOzhDQUN6QyxDQUFDLEtBQUksQ0FBQyxZQUFZLG1CQUFjLEtBQUssRUFBQyxFQUN0Qzs4Q0FDQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztrREFDWixLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFjLEtBQUssR0FBRSxNQUFNLENBQUMsS0FBSyxDQUFDOytDQUM1RCxDQUFDLENBQUM7MkNBQ0o7dUNBQ0YsQ0FBQyxDQUFDOzs7a0NBeEJMLEtBQVMsSUFBSSxJQUFJLFNBQVM7OENBQWpCLElBQUk7bUNBeUJaOytCQUNGOzs7OztXQUNGOzs7Ozs7Ozs7Ozs7O01BUUssMkNBQWU7Ozs7OztVQUFyQixVQUFzQixRQUF5Qjs7Ozs7bUNBQ3pDLFFBQVEsQ0FBQyxhQUFhO2tDQUF0Qix3QkFBc0I7OEJBQ3hCLHNCQUFPLFFBQVEsQ0FBQyxhQUFhLEVBQUM7a0NBRXZCLHFCQUFNLElBQUksT0FBTyxDQUFlLFVBQUEsT0FBTztrQ0FDNUNELDRCQUF1QixDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUU7c0NBQ2pELFFBQVE7Ozs7OzswQ0FJTixVQUFVLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUEsQ0FBQyxDQUFDO3VDQUNuRDttQ0FDRixDQUFDLENBQUM7K0JBQ0osQ0FBQyxFQUFBO2tDQVRGLHNCQUFPLFNBU0wsRUFBQzs7OztXQUVOOzs7Ozs7Ozs7TUFVTywyQ0FBZTs7Ozs7Ozs7b0JBQUMsS0FBa0I7O2NBQ3hDLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2NBQ2pDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDOzs7Ozs7Ozs7OztNQVk1Qyx3Q0FBWTs7Ozs7Ozs7O29CQUFDLEtBQWtCO2NBQ3JDLE9BQU8sT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7OztrQkF6SGhERSxjQUFTLFNBQUM7c0JBQ1QsUUFBUSxFQUFFLFVBQVU7bUJBQ3JCOzs7OztzQkFsQ21CQyxlQUFVO3NEQXdDekJDLFdBQU0sU0FBQyxZQUFZLGNBQ25CQyxhQUFRO3NCQXpDcUNDLFdBQU07Ozs4QkFBeEQ7Ozs7Ozs7QUNBQSxFQUtBLHNCQUFzQixFQUFFLENBQUM7O0FBRXpCLE1BQWEsd0JBQXdCLEdBQWE7TUFDaEQsT0FBTyxFQUFFQyxvQkFBZTtNQUN4QixLQUFLLEVBQUUsSUFBSTtNQUNYLFFBQVEsRUFBRSxzQkFBc0I7R0FDakMsQ0FBQzs7Ozs7a0JBRURDLGFBQVEsU0FBQztzQkFDUixPQUFPLEVBQUUsQ0FBQ0Msa0NBQXdCLENBQUM7c0JBQ25DLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO3NCQUNqQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztzQkFDckMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7bUJBQzdCOzsyQkFsQkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvcG9seW1lckhvc3QudHMiLG51bGwsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2VcclxudGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGVcclxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuXHJcblRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcclxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxyXG5XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxyXG5NRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxyXG5cclxuU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXHJcbmFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgcmVzdWx0W2tdID0gbW9kW2tdO1xyXG4gICAgcmVzdWx0LmRlZmF1bHQgPSBtb2Q7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG4iLCJpbXBvcnQgeyB3aGVuU2V0IH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBIVE1MVGVtcGxhdGVFbGVtZW50OiB0eXBlb2YgSFRNTFRlbXBsYXRlRWxlbWVudDtcbiAgfVxufVxuXG5sZXQgc2hpbVByb21pc2U6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWQ7XG4vKipcbiAqIEFuZ3VsYXIgaW5jb3JyZWN0bHkgYWRkcyBgPHRlbXBsYXRlPmAgY2hpbGRyZW4gdG8gdGhlIGVsZW1lbnQncyBjaGlsZCBub2RlXG4gKiBsaXN0IGluc3RlYWQgb2YgaXRzIGNvbnRlbnQuIFRoaXMgc2hpbSBmb3JjZXMgY2hpbGRyZW4gYXBwZW5kZWQgdG8gYVxuICogYDx0ZW1wbGF0ZT5gIHRvIGJlIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU1NTdcbiAqXG4gKiBAcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBIVE1MVGVtcGxhdGVFbGVtZW50IGlzIHNoaW1tZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghc2hpbVByb21pc2UpIHtcbiAgICBjb25zdCBzaGltID0gKCkgPT4ge1xuICAgICAgLy8gQW5ndWxhcidzIHJlbmRlcmVyIHdpbGwgYWRkIGNoaWxkcmVuIHRvIGEgPHRlbXBsYXRlPiBpbnN0ZWFkIG9mIHRvIGl0c1xuICAgICAgLy8gY29udGVudC4gVGhpcyBzaGltIHdpbGwgZm9yY2UgYW55IGNoaWxkcmVuIGFkZGVkIHRvIGEgPHRlbXBsYXRlPiB0byBiZVxuICAgICAgLy8gYWRkZWQgdG8gaXRzIGNvbnRlbnQgaW5zdGVhZC5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gICAgICBjb25zdCBuYXRpdmVBcHBlbmQgPSBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZDtcbiAgICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkID0gZnVuY3Rpb248VCBleHRlbmRzIE5vZGU+KFxuICAgICAgICBjaGlsZE5vZGU6IFRcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudC5hcHBlbmRDaGlsZChjaGlsZE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBuYXRpdmVBcHBlbmQuYXBwbHkodGhpcywgW2NoaWxkTm9kZV0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBzaGltUHJvbWlzZSA9IG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgYXdhaXQgd2hlblNldCh3aW5kb3csICdIVE1MVGVtcGxhdGVFbGVtZW50Jyk7XG4gICAgICBzaGltKCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc2hpbVByb21pc2U7XG59XG5cbi8qKlxuICogUmVzZXRzIGBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKClgIHNvIHRoYXQgaXQgd2lsbCByZS1zaGltIHRoZSBjbGFzcyBuZXh0XG4gKiB0aW1lIGl0IGlzIGNhbGxlZC4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZCBmb3IgdGVzdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0U2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpIHtcbiAgc2hpbVByb21pc2UgPSB1bmRlZmluZWQ7XG59XG4iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2hlblNldCwgd3JhcEFuZERlZmluZURlc2NyaXB0b3IgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3V0aWwnO1xuaW1wb3J0IHsgY2FtZWxUb0Rhc2hDYXNlIH0gZnJvbSAnQHBvbHltZXIvcG9seW1lci9saWIvdXRpbHMvY2FzZS1tYXAnO1xuaW1wb3J0IHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnQHBvbHltZXIvcG9seW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBPTFlNRVJfSE9TVCB9IGZyb20gJy4vcG9seW1lckhvc3QnO1xuaW1wb3J0IHsgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCB9IGZyb20gJy4vc2hpbS10ZW1wbGF0ZS1hcHBlbmQnO1xuXG4vKipcbiAqIEFuIEhUTUxUZW1wbGF0ZUVsZW1lbnQgdGhhdCBpcyBwcm9jZXNzZWQgYnkgUG9seW1lcidzIHRlbXBsYXRpemVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbHltZXJUZW1wbGF0ZSBleHRlbmRzIEhUTUxUZW1wbGF0ZUVsZW1lbnQge1xuICAvKipcbiAgICogQWRkZWQgYnkgdGhlIGBQcm9wZXJ0eUVmZmVjdHNgIG1peGluIHRvIGluc3RydWN0IHRlbXBsYXRpemUgb2YgdGhlIGhvc3RcbiAgICogZm9yIHRoZSB0ZW1wbGF0ZS4gRWZmZWN0cyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgdGVtcGxhdGUgaW5zdGFuY2Ugd2lsbFxuICAgKiBwcm9wYWdhdGUgdG8gdGhpcyBob3N0LlxuICAgKi9cbiAgX19kYXRhSG9zdD86IGFueTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIG1ldGFkYXRhIGdlbmVyYXRlZCBmcm9tIGBUZW1wbGF0ZVN0YW1wYC5cbiAgICovXG4gIF90ZW1wbGF0ZUluZm8/OiBUZW1wbGF0ZUluZm87XG4gIC8qKlxuICAgKiBIb3N0IHByb3BlcnRpZXMgYXJlIGRlZmluZWQgYXMgYF9ob3N0X3Byb3BOYW1lYCBieSB0ZW1wbGF0aXplci5cbiAgICovXG4gIFtob3N0UHJvcDogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGVhY2ggYDx0ZW1wbGF0ZT5gIGVsZW1lbnQuIElmIGEgUG9seW1lciBob3N0XG4gKiBjb21wb25lbnQgaXMgcHJvdmlkZWQsIHRoaXMgZGlyZWN0aXZlIHdpbGwgZW5hYmxlIFBvbHltZXIncyBldmVudCBhbmRcbiAqIHR3by13YXkgYmluZGluZyBzeW50YXggc3R5bGVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVEaXJlY3RpdmUge1xuICByZWFkeTogUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KFBPTFlNRVJfSE9TVClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBwb2x5bWVySG9zdDogYW55LFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMucmVhZHkgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucG9seW1lckhvc3QpIHtcbiAgICAgICAgdGhpcy5lbmFibGVFdmVudEJpbmRpbmdzKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlUHJvcGVydHlCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFBvbHltZXIgZXZlbnQgYmluZGluZ3MuIEFuIGV2ZW50IGJpbmRpbmcgaXMgZGVjbGFyZWRcbiAgICogd2l0aCB0aGUgc3ludGF4IGBvbi1ldmVudC1uYW1lPVwiaGFuZGxlclwiYCwgd2hlcmUgYGV2ZW50LW5hbWVgIGlzIHRoZVxuICAgKiBuYW1lIG9mIHRoZSBldmVudCB0byBsaXN0ZW4gdG8gYW5kIGBoYW5kbGVyYCBpcyB0aGUgbmFtZSBvZiB0aGUgaG9zdCdzXG4gICAqIG1ldGhvZCB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZXZlbnQgYmluZGluZyBzeW50YXggZm9yXG4gICAqL1xuICBlbmFibGVFdmVudEJpbmRpbmdzKHRlbXBsYXRlOiBQb2x5bWVyVGVtcGxhdGUpIHtcbiAgICAvLyBXaGVuIHRlbXBsYXRpemUgbG9va3MgZm9yIGEgUHJvcGVydHlFZmZlY3RzIGhvc3QsIGl0IHdpbGwgdXNlIHRoZVxuICAgIC8vIHRlbXBsYXRlJ3MgX19kYXRhSG9zdCBwcm9wZXJ0eS4gVGhpcyBpcyB0aGUgX21ldGhvZEhvc3QgZm9yIGEgdGVtcGxhdGVcbiAgICAvLyBpbnN0YW5jZSBhbmQgaXMgdXNlZCB0byBhZGQgZXZlbnQgbGlzdGVuZXIgYmluZGluZ3MuXG4gICAgdGVtcGxhdGUuX19kYXRhSG9zdCA9IHRoaXMucG9seW1lckhvc3Q7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFBvbHltZXIgcHJvcGVydHkgYmluZGluZ3MuIEEgcHJvcGVydHkgYmluZGluZyBpc1xuICAgKiBkZWNsYXJlZCBlaXRoZXIgYXMgYSBvbmUtd2F5IGJpbmRpbmcgYHZhbHVlPVwiW1twcm9wTmFtZV1dXCJgIG9yIGEgdHdvLXdheVxuICAgKiBiaW5kaW5nIGB2YWx1ZT1cInt7cHJvcE5hbWV9fVwiYC5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBQb2x5bWVyIHRlbXBsYXRlIHRvIGVuYWJsZSBkYXRhIGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgYXN5bmMgZW5hYmxlUHJvcGVydHlCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBob3N0UHJvcHMgfSA9IGF3YWl0IHRoaXMuZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKTtcbiAgICBpZiAoaG9zdFByb3BzKSB7XG4gICAgICBmb3IgKGxldCBwcm9wIGluIGhvc3RQcm9wcykge1xuICAgICAgICAvLyBBbmd1bGFyIC0+IFBvbHltZXIgKG9uZS13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMucG9seW1lckhvc3RbcHJvcF07XG4gICAgICAgIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yKHRoaXMucG9seW1lckhvc3QsIHByb3AsIHtcbiAgICAgICAgICBhZnRlclNldChjaGFuZ2VkOiBib29sZWFuLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZVtgX2hvc3RfJHtwcm9wfWBdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gaW5pdGlhbFZhbHVlO1xuXG4gICAgICAgIC8vIFBvbHltZXIgLT4gQW5ndWxhciAodHdvLXdheSBiaW5kaW5ncylcbiAgICAgICAgY29uc3QgZXZlbnROYW1lID0gYF9ob3N0XyR7Y2FtZWxUb0Rhc2hDYXNlKHByb3ApfS1jaGFuZ2VkYDtcbiAgICAgICAgdGVtcGxhdGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc1NwbGljZXNDaGFuZ2UoPEN1c3RvbUV2ZW50PmV2ZW50KSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNQYXRoQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gKDxDdXN0b21FdmVudD5ldmVudCkuZGV0YWlsLnZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0ZW1wbGF0ZSBpbmZvIG1ldGFkYXRhIGZvciBhIFBvbHltZXIgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byByZXRyaWV2ZSB0ZW1wbGF0ZSBpbmZvIGZvclxuICAgKiBAcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0ZW1wbGF0ZSdzIGluZm9cbiAgICovXG4gIGFzeW5jIGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKTogUHJvbWlzZTxUZW1wbGF0ZUluZm8+IHtcbiAgICBpZiAodGVtcGxhdGUuX3RlbXBsYXRlSW5mbykge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlLl90ZW1wbGF0ZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB3aGVuU2V0KHRlbXBsYXRlLCAnX3RlbXBsYXRlSW5mbycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBcInNwbGljZXNcIiBQb2x5bWVyIGNoYW5nZSBldmVudCxcbiAgICogd2hpY2ggaGFzIGEgZGV0YWlsIHZhbHVlIG9iamVjdCB0aGF0IGRpY3RhdGVzIHdoYXQgZWxlbWVudHMgd2VyZSBjaGFuZ2VkIGlmXG4gICAqIHRoZSBhcnJheSByZWZlcmVuY2UgcmVtYWlucyB0aGUgc2FtZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBjaGVja1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBhIHNwbGljZXMgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGlzU3BsaWNlc0NoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcbiAgICByZXR1cm4gdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZS5pbmRleFNwbGljZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBldmVudCBpcyBhIHBhdGggUG9seW1lciBjaGFuZ2UgZXZlbnQsIHdoaWNoXG4gICAqIGhhcyBhIGRldGFpbCBwYXRoIHByb3BlcnR5IGluZGljYXRpbmcgdGhlIHBhdGggb2YgdGhlIHZhbHVlIGNoYW5nZWQsIGFuZCBhXG4gICAqIHZhbHVlIG9mIHRoZSBwYXRoJ3MgdmFsdWUuIFRoaXMgaXMgdXNlZCB3aGVuIGFuIGFycmF5IG9yIG9iamVjdCByZWZlcmVuY2VcbiAgICogcmVtYWlucyB0aGUgc2FtZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBjaGVja1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBhIHBhdGggY2hhbmdlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGlzUGF0aENoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGV2ZW50LmRldGFpbC5wYXRoID09PSAnc3RyaW5nJztcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUsIFByb3ZpZGVyLCBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdlYkNvbXBvbmVudHNSZWFkeU1vZHVsZSB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvcG9seWZpbGxzJztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG5zaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk7XG5cbmV4cG9ydCBjb25zdCBURU1QTEFURVNfUkVBRFlfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VWYWx1ZTogc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZFxufTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1dlYkNvbXBvbmVudHNSZWFkeU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RlbXBsYXRlRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbVEVNUExBVEVTX1JFQURZX1BST1ZJREVSXSxcbiAgZXhwb3J0czogW1RlbXBsYXRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZU1vZHVsZSB7fVxuIl0sIm5hbWVzIjpbIkluamVjdGlvblRva2VuIiwid2hlblNldCIsInBvbHltZXJIb3N0Iiwid3JhcEFuZERlZmluZURlc2NyaXB0b3IiLCJjYW1lbFRvRGFzaENhc2UiLCJEaXJlY3RpdmUiLCJFbGVtZW50UmVmIiwiSW5qZWN0IiwiT3B0aW9uYWwiLCJOZ1pvbmUiLCJBUFBfSU5JVElBTElaRVIiLCJOZ01vZHVsZSIsIldlYkNvbXBvbmVudHNSZWFkeU1vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLE1BQWEsWUFBWSxHQUFHLElBQUlBLG1CQUFjLENBQU0sYUFBYSxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhbkUsdUJBQTRCLGFBQXdCO01BQ2xELE9BQU87VUFDTCxPQUFPLEVBQUUsWUFBWTtVQUNyQixVQUFVLEVBQUUsZ0JBQWdCO1VBQzVCLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztPQUN0QixDQUFDO0dBQ0g7Ozs7Ozs7Ozs7Ozs7QUFjRCw0QkFBaUMsUUFBYTs7TUFFNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtVQUNyQyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsVUFDakMsSUFBVSxFQUNWLFNBQWlCLEVBQ2pCLE9BQTJCO2NBRTNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUs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Q0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7c0JBQUUsT0FBTyxDQUFDLENBQUM7a0JBQzdKLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3NCQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2tCQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7c0JBQ1QsS0FBSyxDQUFDLENBQUM7c0JBQUMsS0FBSyxDQUFDOzBCQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7MEJBQUMsTUFBTTtzQkFDOUIsS0FBSyxDQUFDOzBCQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzswQkFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7c0JBQ3hELEtBQUssQ0FBQzswQkFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7MEJBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzswQkFBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzswQkFBQyxTQUFTO3NCQUNqRCxLQUFLLENBQUM7MEJBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7MEJBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFBQyxTQUFTO3NCQUNqRDswQkFDSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7OEJBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzs4QkFBQyxTQUFTOzJCQUFFOzBCQUM1RyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs4QkFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUN0RixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7OEJBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7OEJBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs4QkFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs4QkFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzs4QkFBQyxNQUFNOzJCQUFFOzBCQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7OEJBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzswQkFBQyxTQUFTO21CQUM5QjtrQkFDRCxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FB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

2

bundles/origami-templates.umd.min.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@codebakery/origami/util"),require("@polymer/polymer/lib/utils/case-map"),require("@codebakery/origami/polyfills")):"function"==typeof define&&define.amd?define("@codebakery/origami/templates",["exports","@angular/core","@codebakery/origami/util","@polymer/polymer/lib/utils/case-map","@codebakery/origami/polyfills"],t):t((e.codebakery=e.codebakery||{},e.codebakery.origami=e.codebakery.origami||{},e.codebakery.origami.templates={}),e.ng.core,e.codebakery.origami.util,null,e.codebakery.origami.polyfills)}(this,function(e,t,s,l,n){"use strict";var r,o=new t.InjectionToken("polymerHost");function i(e){return e._addEventListenerToNode||(e._addEventListenerToNode=function(e,t,n){e.addEventListener(t,n)}),e}function u(t,a,s,l){return new(s||(s=Promise))(function(e,n){function r(e){try{i(l.next(e))}catch(t){n(t)}}function o(e){try{i(l["throw"](e))}catch(t){n(t)}}function i(t){t.done?e(t.value):new s(function(e){e(t.value)}).then(r,o)}i((l=l.apply(t,a||[])).next())})}function c(r,o){var i,a,s,e,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(n){return function(e){return function t(e){if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,a&&(s=2&e[0]?a["return"]:e[0]?a["throw"]||((s=a["return"])&&s.call(a),0):a.next)&&!(s=s.call(a,e[1])).done)return s;switch(a=0,s&&(e=[2&e[0],s.value]),e[0]){case 0:case 1:s=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,a=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){l.label=e[1];break}if(6===e[0]&&l.label<s[1]){l.label=s[1],s=e;break}if(s&&l.label<s[2]){l.label=s[2],l.ops.push(e);break}s[2]&&l.ops.pop(),l.trys.pop();continue}e=o.call(r,l)}catch(t){e=[6,t],a=0}finally{i=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([n,e])}}}function a(){var e=this;if(!r){r=new Promise(function(n){return u(e,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return[4,s.whenSet(window,"HTMLTemplateElement")];case 1:return e.sent(),t=HTMLTemplateElement.prototype.appendChild,HTMLTemplateElement.prototype.appendChild=function(e){return this.content?this.content.appendChild(e):t.apply(this,[e])},n(),[2]}var t})})})}return r}var p=function(){function e(t,e,n){var r=this;this.elementRef=t,this.polymerHost=e,this.zone=n,this.ready=u(r,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return this.polymerHost?(this.enableEventBindings(t.nativeElement),[4,this.enablePropertyBindings(t.nativeElement)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}return e.prototype.enableEventBindings=function(e){e.__dataHost=this.polymerHost},e.prototype.enablePropertyBindings=function(a){return u(this,void 0,void 0,function(){var t,n,r,o,i=this;return c(this,function(e){switch(e.label){case 0:return[4,this.getTemplateInfo(a)];case 1:if(t=e.sent().hostProps,Object.keys(t).length)for(o in n=function(n){var e=r.polymerHost[n];s.wrapAndDefineDescriptor(r.polymerHost,n,{afterSet:function(e,t){e&&(a["_host_"+n]=t)}}),r.polymerHost[n]=e;var t="_host_"+l.camelToDashCase(n)+"-changed";a.addEventListener(t,function(e){i.isSplicesChange(e)||i.isPathChange(e)||i.zone.run(function(){i.polymerHost[n]=e.detail.value})})},r=this,t)n(o);return[2]}})})},e.prototype.getTemplateInfo=function(t){return u(this,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return t._templateInfo?[2,t._templateInfo]:[3,1];case 1:return[4,new Promise(function(e){s.wrapAndDefineDescriptor(t,"_templateInfo",{afterSet:function(){setTimeout(function(){return e(t._templateInfo)})}})})];case 2:return[2,e.sent()]}})})},e.prototype.isSplicesChange=function(e){var t=e.detail.value;return t&&Array.isArray(t.indexSplices)},e.prototype.isPathChange=function(e){return"string"==typeof e.detail.path},e.decorators=[{type:t.Directive,args:[{selector:"template"}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:undefined,decorators:[{type:t.Inject,args:[o]},{type:t.Optional}]},{type:t.NgZone}]},e}();a();var f={provide:t.APP_INITIALIZER,multi:!0,useValue:a},d=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[n.WebComponentsReadyModule],declarations:[p],providers:[f],exports:[p]}]}],e}();e.POLYMER_HOST=o,e.polymerHost=function y(e){return{provide:o,useFactory:i,deps:[e]}},e.patchPolymerHost=i,e.shimHTMLTemplateAppend=a,e.resetShimHTMLTemplateAppend=function m(){r=undefined},e.TemplateDirective=p,e.TEMPLATES_READY_PROVIDER=f,e.TemplateModule=d,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@codebakery/origami/util"),require("@polymer/polymer/lib/utils/case-map"),require("@codebakery/origami/polyfills")):"function"==typeof define&&define.amd?define("@codebakery/origami/templates",["exports","@angular/core","@codebakery/origami/util","@polymer/polymer/lib/utils/case-map","@codebakery/origami/polyfills"],t):t((e.codebakery=e.codebakery||{},e.codebakery.origami=e.codebakery.origami||{},e.codebakery.origami.templates={}),e.ng.core,e.codebakery.origami.util,null,e.codebakery.origami.polyfills)}(this,function(e,t,l,s,n){"use strict";var r,o=new t.InjectionToken("polymerHost");function i(e){return e._addEventListenerToNode||(e._addEventListenerToNode=function(e,t,n){e.addEventListener(t,n)}),e}function u(t,a,l,s){return new(l||(l=Promise))(function(e,n){function r(e){try{i(s.next(e))}catch(t){n(t)}}function o(e){try{i(s["throw"](e))}catch(t){n(t)}}function i(t){t.done?e(t.value):new l(function(e){e(t.value)}).then(r,o)}i((s=s.apply(t,a||[])).next())})}function c(r,o){var i,a,l,e,s={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(n){return function(e){return function t(e){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,a&&(l=2&e[0]?a["return"]:e[0]?a["throw"]||((l=a["return"])&&l.call(a),0):a.next)&&!(l=l.call(a,e[1])).done)return l;switch(a=0,l&&(e=[2&e[0],l.value]),e[0]){case 0:case 1:l=e;break;case 4:return s.label++,{value:e[1],done:!1};case 5:s.label++,a=e[1],e=[0];continue;case 7:e=s.ops.pop(),s.trys.pop();continue;default:if(!(l=0<(l=s.trys).length&&l[l.length-1])&&(6===e[0]||2===e[0])){s=0;continue}if(3===e[0]&&(!l||e[1]>l[0]&&e[1]<l[3])){s.label=e[1];break}if(6===e[0]&&s.label<l[1]){s.label=l[1],l=e;break}if(l&&s.label<l[2]){s.label=l[2],s.ops.push(e);break}l[2]&&s.ops.pop(),s.trys.pop();continue}e=o.call(r,s)}catch(t){e=[6,t],a=0}finally{i=l=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([n,e])}}}function a(){var e=this;if(!r){r=new Promise(function(n){return u(e,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return[4,l.whenSet(window,"HTMLTemplateElement")];case 1:return e.sent(),t=HTMLTemplateElement.prototype.appendChild,HTMLTemplateElement.prototype.appendChild=function(e){return this.content?this.content.appendChild(e):t.apply(this,[e])},n(),[2]}var t})})})}return r}var p=function(){function e(t,e,n){var r=this;this.elementRef=t,this.polymerHost=e,this.zone=n,this.ready=u(r,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return this.polymerHost?(this.enableEventBindings(t.nativeElement),[4,this.enablePropertyBindings(t.nativeElement)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}return e.prototype.enableEventBindings=function(e){e.__dataHost=this.polymerHost},e.prototype.enablePropertyBindings=function(a){return u(this,void 0,void 0,function(){var t,n,r,o,i=this;return c(this,function(e){switch(e.label){case 0:return[4,this.getTemplateInfo(a)];case 1:if(t=e.sent().hostProps)for(o in n=function(n){var e=r.polymerHost[n];l.wrapAndDefineDescriptor(r.polymerHost,n,{afterSet:function(e,t){e&&(a["_host_"+n]=t)}}),r.polymerHost[n]=e;var t="_host_"+s.camelToDashCase(n)+"-changed";a.addEventListener(t,function(e){i.isSplicesChange(e)||i.isPathChange(e)||i.zone.run(function(){i.polymerHost[n]=e.detail.value})})},r=this,t)n(o);return[2]}})})},e.prototype.getTemplateInfo=function(t){return u(this,void 0,void 0,function(){return c(this,function(e){switch(e.label){case 0:return t._templateInfo?[2,t._templateInfo]:[3,1];case 1:return[4,l.whenSet(t,"_templateInfo")];case 2:return[2,e.sent()]}})})},e.prototype.isSplicesChange=function(e){var t=e.detail.value;return t&&Array.isArray(t.indexSplices)},e.prototype.isPathChange=function(e){return"string"==typeof e.detail.path},e.decorators=[{type:t.Directive,args:[{selector:"template"}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:undefined,decorators:[{type:t.Inject,args:[o]},{type:t.Optional}]},{type:t.NgZone}]},e}();a();var d={provide:t.APP_INITIALIZER,multi:!0,useValue:a},f=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[n.WebComponentsReadyModule],declarations:[p],providers:[d],exports:[p]}]}],e}();e.POLYMER_HOST=o,e.polymerHost=function y(e){return{provide:o,useFactory:i,deps:[e]}},e.patchPolymerHost=i,e.shimHTMLTemplateAppend=a,e.resetShimHTMLTemplateAppend=function h(){r=undefined},e.TemplateDirective=p,e.TEMPLATES_READY_PROVIDER=d,e.TemplateModule=f,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=origami-templates.umd.min.js.map

@@ -7,3 +7,3 @@ /**

import { Directive, ElementRef, Inject, Optional, NgZone } from '@angular/core';
import { wrapAndDefineDescriptor } from '@codebakery/origami/util';
import { whenSet, wrapAndDefineDescriptor } from '@codebakery/origami/util';
import { camelToDashCase } from '@polymer/polymer/lib/utils/case-map';

@@ -76,3 +76,3 @@ import { POLYMER_HOST } from './polymerHost';

const { hostProps } = yield this.getTemplateInfo(template);
if (Object.keys(hostProps).length) {
if (hostProps) {
for (let prop in hostProps) {

@@ -120,15 +120,3 @@ /** @type {?} */

else {
return yield new Promise(resolve => {
wrapAndDefineDescriptor(template, '_templateInfo', {
/**
* @return {?}
*/
afterSet() {
// Resolve at micro timing after _templateInfo is first set, since
// TemplateStamp will first set it to an empty object before
// initializing it
setTimeout(() => resolve(template._templateInfo));
}
});
});
return yield whenSet(template, '_templateInfo');
}

@@ -185,2 +173,2 @@ });

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvIiwic291cmNlcyI6WyJzcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0I3QyxNQUFNOzs7Ozs7SUFHSixZQUNTLFlBR0EsV0FBZ0IsRUFDZjtRQUpELGVBQVUsR0FBVixVQUFVO1FBR1YsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDZixTQUFJLEdBQUosSUFBSTtRQUVaLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFTLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDN0Q7VUFDRixDQUFDLEVBQUUsQ0FBQztLQUNOOzs7Ozs7Ozs7O0lBVUQsbUJBQW1CLENBQUMsUUFBeUI7Ozs7UUFJM0MsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0tBQ3hDOzs7Ozs7Ozs7SUFTSyxzQkFBc0IsQ0FBQyxRQUF5Qjs7WUFDcEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNqQyxLQUFLLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTs7b0JBRTFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzVDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFOzs7Ozs7d0JBQzlDLFFBQVEsQ0FBQyxPQUFnQixFQUFFLEtBQVU7NEJBQ25DLElBQUksT0FBTyxFQUFFO2dDQUNYLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDOzZCQUNuQzt5QkFDRjtxQkFDRixDQUFDLENBQUM7b0JBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7O29CQUd0QyxNQUFNLFNBQVMsR0FBRyxTQUFTLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUMzRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUMzQyxJQUNFLENBQUMsSUFBSSxDQUFDLGVBQWUsbUJBQWMsS0FBSyxFQUFDOzRCQUN6QyxDQUFDLElBQUksQ0FBQyxZQUFZLG1CQUFjLEtBQUssRUFBQyxFQUN0Qzs0QkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0NBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsbUJBQWMsS0FBSyxFQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzs2QkFDNUQsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGLENBQUMsQ0FBQztpQkFDSjthQUNGOztLQUNGOzs7Ozs7O0lBUUssZUFBZSxDQUFDLFFBQXlCOztZQUM3QyxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQzFCLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQWUsT0FBTyxDQUFDLEVBQUU7b0JBQy9DLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUU7Ozs7d0JBQ2pELFFBQVE7Ozs7NEJBSU4sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt5QkFDbkQ7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKLENBQUMsQ0FBQzthQUNKOztLQUNGOzs7Ozs7Ozs7SUFVTyxlQUFlLENBQUMsS0FBa0I7O1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDOzs7Ozs7Ozs7OztJQVk1QyxZQUFZLENBQUMsS0FBa0I7UUFDckMsT0FBTyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQzs7OztZQXpIaEQsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2FBQ3JCOzs7O1lBbENtQixVQUFVOzRDQXdDekIsTUFBTSxTQUFDLFlBQVksY0FDbkIsUUFBUTtZQXpDcUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBPcHRpb25hbCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvciB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5pbXBvcnQgeyBjYW1lbFRvRGFzaENhc2UgfSBmcm9tICdAcG9seW1lci9wb2x5bWVyL2xpYi91dGlscy9jYXNlLW1hcCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUluZm8gfSBmcm9tICdAcG9seW1lci9wb2x5bWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUE9MWU1FUl9IT1NUIH0gZnJvbSAnLi9wb2x5bWVySG9zdCc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5cbi8qKlxuICogQW4gSFRNTFRlbXBsYXRlRWxlbWVudCB0aGF0IGlzIHByb2Nlc3NlZCBieSBQb2x5bWVyJ3MgdGVtcGxhdGl6ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9seW1lclRlbXBsYXRlIGV4dGVuZHMgSFRNTFRlbXBsYXRlRWxlbWVudCB7XG4gIC8qKlxuICAgKiBBZGRlZCBieSB0aGUgYFByb3BlcnR5RWZmZWN0c2AgbWl4aW4gdG8gaW5zdHJ1Y3QgdGVtcGxhdGl6ZSBvZiB0aGUgaG9zdFxuICAgKiBmb3IgdGhlIHRlbXBsYXRlLiBFZmZlY3RzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBpbnN0YW5jZSB3aWxsXG4gICAqIHByb3BhZ2F0ZSB0byB0aGlzIGhvc3QuXG4gICAqL1xuICBfX2RhdGFIb3N0PzogYW55O1xuICAvKipcbiAgICogVGVtcGxhdGUgbWV0YWRhdGEgZ2VuZXJhdGVkIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICAgKi9cbiAgX3RlbXBsYXRlSW5mbz86IFRlbXBsYXRlSW5mbztcbiAgLyoqXG4gICAqIEhvc3QgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBhcyBgX2hvc3RfcHJvcE5hbWVgIGJ5IHRlbXBsYXRpemVyLlxuICAgKi9cbiAgW2hvc3RQcm9wOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgaXMgYXR0YWNoZWQgdG8gZWFjaCBgPHRlbXBsYXRlPmAgZWxlbWVudC4gSWYgYSBQb2x5bWVyIGhvc3RcbiAqIGNvbXBvbmVudCBpcyBwcm92aWRlZCwgdGhpcyBkaXJlY3RpdmUgd2lsbCBlbmFibGUgUG9seW1lcidzIGV2ZW50IGFuZFxuICogdHdvLXdheSBiaW5kaW5nIHN5bnRheCBzdHlsZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RlbXBsYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWR5OiBQcm9taXNlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoUE9MWU1FUl9IT1NUKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBvbHltZXJIb3N0OiBhbnksXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5yZWFkeSA9IChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wb2x5bWVySG9zdCkge1xuICAgICAgICB0aGlzLmVuYWJsZUV2ZW50QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgYXdhaXQgdGhpcy5lbmFibGVQcm9wZXJ0eUJpbmRpbmdzKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgUG9seW1lciBldmVudCBiaW5kaW5ncy4gQW4gZXZlbnQgYmluZGluZyBpcyBkZWNsYXJlZFxuICAgKiB3aXRoIHRoZSBzeW50YXggYG9uLWV2ZW50LW5hbWU9XCJoYW5kbGVyXCJgLCB3aGVyZSBgZXZlbnQtbmFtZWAgaXMgdGhlXG4gICAqIG5hbWUgb2YgdGhlIGV2ZW50IHRvIGxpc3RlbiB0byBhbmQgYGhhbmRsZXJgIGlzIHRoZSBuYW1lIG9mIHRoZSBob3N0J3NcbiAgICogbWV0aG9kIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZC5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBQb2x5bWVyIHRlbXBsYXRlIHRvIGVuYWJsZSBldmVudCBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGVuYWJsZUV2ZW50QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIC8vIFdoZW4gdGVtcGxhdGl6ZSBsb29rcyBmb3IgYSBQcm9wZXJ0eUVmZmVjdHMgaG9zdCwgaXQgd2lsbCB1c2UgdGhlXG4gICAgLy8gdGVtcGxhdGUncyBfX2RhdGFIb3N0IHByb3BlcnR5LiBUaGlzIGlzIHRoZSBfbWV0aG9kSG9zdCBmb3IgYSB0ZW1wbGF0ZVxuICAgIC8vIGluc3RhbmNlIGFuZCBpcyB1c2VkIHRvIGFkZCBldmVudCBsaXN0ZW5lciBiaW5kaW5ncy5cbiAgICB0ZW1wbGF0ZS5fX2RhdGFIb3N0ID0gdGhpcy5wb2x5bWVySG9zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgUG9seW1lciBwcm9wZXJ0eSBiaW5kaW5ncy4gQSBwcm9wZXJ0eSBiaW5kaW5nIGlzXG4gICAqIGRlY2xhcmVkIGVpdGhlciBhcyBhIG9uZS13YXkgYmluZGluZyBgdmFsdWU9XCJbW3Byb3BOYW1lXV1cImAgb3IgYSB0d28td2F5XG4gICAqIGJpbmRpbmcgYHZhbHVlPVwie3twcm9wTmFtZX19XCJgLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGRhdGEgYmluZGluZyBzeW50YXggZm9yXG4gICAqL1xuICBhc3luYyBlbmFibGVQcm9wZXJ0eUJpbmRpbmdzKHRlbXBsYXRlOiBQb2x5bWVyVGVtcGxhdGUpIHtcbiAgICBjb25zdCB7IGhvc3RQcm9wcyB9ID0gYXdhaXQgdGhpcy5nZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGlmIChPYmplY3Qua2V5cyhob3N0UHJvcHMpLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8VGVtcGxhdGVJbmZvPihyZXNvbHZlID0+IHtcbiAgICAgICAgd3JhcEFuZERlZmluZURlc2NyaXB0b3IodGVtcGxhdGUsICdfdGVtcGxhdGVJbmZvJywge1xuICAgICAgICAgIGFmdGVyU2V0KCkge1xuICAgICAgICAgICAgLy8gUmVzb2x2ZSBhdCBtaWNybyB0aW1pbmcgYWZ0ZXIgX3RlbXBsYXRlSW5mbyBpcyBmaXJzdCBzZXQsIHNpbmNlXG4gICAgICAgICAgICAvLyBUZW1wbGF0ZVN0YW1wIHdpbGwgZmlyc3Qgc2V0IGl0IHRvIGFuIGVtcHR5IG9iamVjdCBiZWZvcmVcbiAgICAgICAgICAgIC8vIGluaXRpYWxpemluZyBpdFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBldmVudCBpcyBhIFwic3BsaWNlc1wiIFBvbHltZXIgY2hhbmdlIGV2ZW50LFxuICAgKiB3aGljaCBoYXMgYSBkZXRhaWwgdmFsdWUgb2JqZWN0IHRoYXQgZGljdGF0ZXMgd2hhdCBlbGVtZW50cyB3ZXJlIGNoYW5nZWQgaWZcbiAgICogdGhlIGFycmF5IHJlZmVyZW5jZSByZW1haW5zIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGEgc3BsaWNlcyBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgaXNTcGxpY2VzQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIHJldHVybiB2YWx1ZSAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmluZGV4U3BsaWNlcyk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgcGF0aCBQb2x5bWVyIGNoYW5nZSBldmVudCwgd2hpY2hcbiAgICogaGFzIGEgZGV0YWlsIHBhdGggcHJvcGVydHkgaW5kaWNhdGluZyB0aGUgcGF0aCBvZiB0aGUgdmFsdWUgY2hhbmdlZCwgYW5kIGFcbiAgICogdmFsdWUgb2YgdGhlIHBhdGgncyB2YWx1ZS4gVGhpcyBpcyB1c2VkIHdoZW4gYW4gYXJyYXkgb3Igb2JqZWN0IHJlZmVyZW5jZVxuICAgKiByZW1haW5zIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGEgcGF0aCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgaXNQYXRoQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgZXZlbnQuZGV0YWlsLnBhdGggPT09ICdzdHJpbmcnO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvIiwic291cmNlcyI6WyJzcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCN0MsTUFBTTs7Ozs7O0lBR0osWUFDUyxZQUdBLFdBQWdCLEVBQ2Y7UUFKRCxlQUFVLEdBQVYsVUFBVTtRQUdWLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2YsU0FBSSxHQUFKLElBQUk7UUFFWixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBUyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzdEO1VBQ0YsQ0FBQyxFQUFFLENBQUM7S0FDTjs7Ozs7Ozs7OztJQVVELG1CQUFtQixDQUFDLFFBQXlCOzs7O1FBSTNDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztLQUN4Qzs7Ozs7Ozs7O0lBU0ssc0JBQXNCLENBQUMsUUFBeUI7O1lBQ3BELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0QsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsS0FBSyxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7O29CQUUxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1Qyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRTs7Ozs7O3dCQUM5QyxRQUFRLENBQUMsT0FBZ0IsRUFBRSxLQUFVOzRCQUNuQyxJQUFJLE9BQU8sRUFBRTtnQ0FDWCxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQzs2QkFDbkM7eUJBQ0Y7cUJBQ0YsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDOztvQkFHdEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQkFDM0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTt3QkFDM0MsSUFDRSxDQUFDLElBQUksQ0FBQyxlQUFlLG1CQUFjLEtBQUssRUFBQzs0QkFDekMsQ0FBQyxJQUFJLENBQUMsWUFBWSxtQkFBYyxLQUFLLEVBQUMsRUFDdEM7NEJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dDQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFjLEtBQUssRUFBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7NkJBQzVELENBQUMsQ0FBQzt5QkFDSjtxQkFDRixDQUFDLENBQUM7aUJBQ0o7YUFDRjs7S0FDRjs7Ozs7OztJQVFLLGVBQWUsQ0FBQyxRQUF5Qjs7WUFDN0MsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUMxQixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7YUFDakQ7O0tBQ0Y7Ozs7Ozs7OztJQVVPLGVBQWUsQ0FBQyxLQUFrQjs7UUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Ozs7Ozs7Ozs7O0lBWTVDLFlBQVksQ0FBQyxLQUFrQjtRQUNyQyxPQUFPLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDOzs7O1lBaEhoRCxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7YUFDckI7Ozs7WUFsQ21CLFVBQVU7NENBd0N6QixNQUFNLFNBQUMsWUFBWSxjQUNuQixRQUFRO1lBekNxQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdoZW5TZXQsIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKGhvc3RQcm9wcykge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2hlblNldCh0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiJdfQ==

@@ -7,3 +7,3 @@ /**

import { Directive, ElementRef, Inject, Optional, NgZone } from '@angular/core';
import { wrapAndDefineDescriptor } from '@codebakery/origami/util';
import { whenSet, wrapAndDefineDescriptor } from '@codebakery/origami/util';
import { camelToDashCase } from '@polymer/polymer/lib/utils/case-map';

@@ -118,3 +118,3 @@ import { POLYMER_HOST } from './polymerHost';

hostProps = (_a.sent()).hostProps;
if (Object.keys(hostProps).length) {
if (hostProps) {
_loop_1 = function (prop) {

@@ -182,15 +182,3 @@ /** @type {?} */

return [2 /*return*/, template._templateInfo];
case 1: return [4 /*yield*/, new Promise(function (resolve) {
wrapAndDefineDescriptor(template, '_templateInfo', {
afterSet: /**
* @return {?}
*/
function () {
// Resolve at micro timing after _templateInfo is first set, since
// TemplateStamp will first set it to an empty object before
// initializing it
setTimeout(function () { return resolve(template._templateInfo); });
}
});
})];
case 1: return [4 /*yield*/, whenSet(template, '_templateInfo')];
case 2: return [2 /*return*/, _a.sent()];

@@ -268,2 +256,2 @@ }

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvIiwic291cmNlcyI6WyJzcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWtDM0MsMkJBQ1MsWUFHQSxXQUFnQixFQUNmO1FBTFYsaUJBYUM7UUFaUSxlQUFVLEdBQVYsVUFBVTtRQUdWLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2YsU0FBSSxHQUFKLElBQUk7UUFFWixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7Ozs7NkJBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBaEIsd0JBQWdCO3dCQUNsQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUNuRCxxQkFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFBOzt3QkFBM0QsU0FBMkQsQ0FBQzs7Ozs7YUFFL0QsQ0FBQyxFQUFFLENBQUM7S0FDTjtJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7Ozs7SUFDSCwrQ0FBbUI7Ozs7Ozs7OztJQUFuQixVQUFvQixRQUF5Qjs7OztRQUkzQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7S0FDeEM7SUFFRDs7Ozs7O09BTUc7Ozs7Ozs7OztJQUNHLGtEQUFzQjs7Ozs7Ozs7SUFBNUIsVUFBNkIsUUFBeUI7Ozs7Ozs0QkFDOUIscUJBQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBQTs7d0JBQWxELFNBQVMsR0FBSyxDQUFBLFNBQW9DLENBQUEsVUFBekM7d0JBQ2pCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0RBQ3hCLElBQUk7O2dDQUVYLElBQU0sWUFBWSxHQUFHLE9BQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dDQUM1Qyx1QkFBdUIsQ0FBQyxPQUFLLFdBQVcsRUFBRSxJQUFJLEVBQUU7b0NBQzlDLFFBQVE7Ozs7OzhDQUFDLE9BQWdCLEVBQUUsS0FBVTt3Q0FDbkMsSUFBSSxPQUFPLEVBQUU7NENBQ1gsUUFBUSxDQUFDLFdBQVMsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO3lDQUNuQztxQ0FDRjtpQ0FDRixDQUFDLENBQUM7Z0NBRUgsT0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDOztnQ0FHdEMsSUFBTSxTQUFTLEdBQUcsV0FBUyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQVUsQ0FBQztnQ0FDM0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxVQUFBLEtBQUs7b0NBQ3hDLElBQ0UsQ0FBQyxLQUFJLENBQUMsZUFBZSxtQkFBYyxLQUFLLEVBQUM7d0NBQ3pDLENBQUMsS0FBSSxDQUFDLFlBQVksbUJBQWMsS0FBSyxFQUFDLEVBQ3RDO3dDQUNBLEtBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDOzRDQUNaLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsbUJBQWMsS0FBSyxFQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzt5Q0FDNUQsQ0FBQyxDQUFDO3FDQUNKO2lDQUNGLENBQUMsQ0FBQzs7OzRCQXhCTCxLQUFTLElBQUksSUFBSSxTQUFTO3dDQUFqQixJQUFJOzZCQXlCWjt5QkFDRjs7Ozs7S0FDRjtJQUVEOzs7OztPQUtHOzs7Ozs7O0lBQ0csMkNBQWU7Ozs7OztJQUFyQixVQUFzQixRQUF5Qjs7Ozs7NkJBQ3pDLFFBQVEsQ0FBQyxhQUFhLEVBQXRCLHdCQUFzQjt3QkFDeEIsc0JBQU8sUUFBUSxDQUFDLGFBQWEsRUFBQzs0QkFFdkIscUJBQU0sSUFBSSxPQUFPLENBQWUsVUFBQSxPQUFPOzRCQUM1Qyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFO2dDQUNqRCxRQUFROzs7Ozs7O29DQUlOLFVBQVUsQ0FBQyxjQUFNLE9BQUEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBL0IsQ0FBK0IsQ0FBQyxDQUFDO2lDQUNuRDs2QkFDRixDQUFDLENBQUM7eUJBQ0osQ0FBQyxFQUFBOzRCQVRGLHNCQUFPLFNBU0wsRUFBQzs7OztLQUVOOzs7Ozs7Ozs7SUFVTywyQ0FBZTs7Ozs7Ozs7Y0FBQyxLQUFrQjs7UUFDeEMsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Ozs7Ozs7Ozs7O0lBWTVDLHdDQUFZOzs7Ozs7Ozs7Y0FBQyxLQUFrQjtRQUNyQyxPQUFPLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDOzs7Z0JBekhoRCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOzs7O2dCQWxDbUIsVUFBVTtnREF3Q3pCLE1BQU0sU0FBQyxZQUFZLGNBQ25CLFFBQVE7Z0JBekNxQyxNQUFNOzs0QkFBeEQ7O1NBbUNhLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBPcHRpb25hbCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvciB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5pbXBvcnQgeyBjYW1lbFRvRGFzaENhc2UgfSBmcm9tICdAcG9seW1lci9wb2x5bWVyL2xpYi91dGlscy9jYXNlLW1hcCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUluZm8gfSBmcm9tICdAcG9seW1lci9wb2x5bWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUE9MWU1FUl9IT1NUIH0gZnJvbSAnLi9wb2x5bWVySG9zdCc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5cbi8qKlxuICogQW4gSFRNTFRlbXBsYXRlRWxlbWVudCB0aGF0IGlzIHByb2Nlc3NlZCBieSBQb2x5bWVyJ3MgdGVtcGxhdGl6ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9seW1lclRlbXBsYXRlIGV4dGVuZHMgSFRNTFRlbXBsYXRlRWxlbWVudCB7XG4gIC8qKlxuICAgKiBBZGRlZCBieSB0aGUgYFByb3BlcnR5RWZmZWN0c2AgbWl4aW4gdG8gaW5zdHJ1Y3QgdGVtcGxhdGl6ZSBvZiB0aGUgaG9zdFxuICAgKiBmb3IgdGhlIHRlbXBsYXRlLiBFZmZlY3RzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBpbnN0YW5jZSB3aWxsXG4gICAqIHByb3BhZ2F0ZSB0byB0aGlzIGhvc3QuXG4gICAqL1xuICBfX2RhdGFIb3N0PzogYW55O1xuICAvKipcbiAgICogVGVtcGxhdGUgbWV0YWRhdGEgZ2VuZXJhdGVkIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICAgKi9cbiAgX3RlbXBsYXRlSW5mbz86IFRlbXBsYXRlSW5mbztcbiAgLyoqXG4gICAqIEhvc3QgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBhcyBgX2hvc3RfcHJvcE5hbWVgIGJ5IHRlbXBsYXRpemVyLlxuICAgKi9cbiAgW2hvc3RQcm9wOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgaXMgYXR0YWNoZWQgdG8gZWFjaCBgPHRlbXBsYXRlPmAgZWxlbWVudC4gSWYgYSBQb2x5bWVyIGhvc3RcbiAqIGNvbXBvbmVudCBpcyBwcm92aWRlZCwgdGhpcyBkaXJlY3RpdmUgd2lsbCBlbmFibGUgUG9seW1lcidzIGV2ZW50IGFuZFxuICogdHdvLXdheSBiaW5kaW5nIHN5bnRheCBzdHlsZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RlbXBsYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWR5OiBQcm9taXNlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoUE9MWU1FUl9IT1NUKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBvbHltZXJIb3N0OiBhbnksXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5yZWFkeSA9IChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wb2x5bWVySG9zdCkge1xuICAgICAgICB0aGlzLmVuYWJsZUV2ZW50QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgYXdhaXQgdGhpcy5lbmFibGVQcm9wZXJ0eUJpbmRpbmdzKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgUG9seW1lciBldmVudCBiaW5kaW5ncy4gQW4gZXZlbnQgYmluZGluZyBpcyBkZWNsYXJlZFxuICAgKiB3aXRoIHRoZSBzeW50YXggYG9uLWV2ZW50LW5hbWU9XCJoYW5kbGVyXCJgLCB3aGVyZSBgZXZlbnQtbmFtZWAgaXMgdGhlXG4gICAqIG5hbWUgb2YgdGhlIGV2ZW50IHRvIGxpc3RlbiB0byBhbmQgYGhhbmRsZXJgIGlzIHRoZSBuYW1lIG9mIHRoZSBob3N0J3NcbiAgICogbWV0aG9kIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgZGlzcGF0Y2hlZC5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBQb2x5bWVyIHRlbXBsYXRlIHRvIGVuYWJsZSBldmVudCBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGVuYWJsZUV2ZW50QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIC8vIFdoZW4gdGVtcGxhdGl6ZSBsb29rcyBmb3IgYSBQcm9wZXJ0eUVmZmVjdHMgaG9zdCwgaXQgd2lsbCB1c2UgdGhlXG4gICAgLy8gdGVtcGxhdGUncyBfX2RhdGFIb3N0IHByb3BlcnR5LiBUaGlzIGlzIHRoZSBfbWV0aG9kSG9zdCBmb3IgYSB0ZW1wbGF0ZVxuICAgIC8vIGluc3RhbmNlIGFuZCBpcyB1c2VkIHRvIGFkZCBldmVudCBsaXN0ZW5lciBiaW5kaW5ncy5cbiAgICB0ZW1wbGF0ZS5fX2RhdGFIb3N0ID0gdGhpcy5wb2x5bWVySG9zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgUG9seW1lciBwcm9wZXJ0eSBiaW5kaW5ncy4gQSBwcm9wZXJ0eSBiaW5kaW5nIGlzXG4gICAqIGRlY2xhcmVkIGVpdGhlciBhcyBhIG9uZS13YXkgYmluZGluZyBgdmFsdWU9XCJbW3Byb3BOYW1lXV1cImAgb3IgYSB0d28td2F5XG4gICAqIGJpbmRpbmcgYHZhbHVlPVwie3twcm9wTmFtZX19XCJgLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGRhdGEgYmluZGluZyBzeW50YXggZm9yXG4gICAqL1xuICBhc3luYyBlbmFibGVQcm9wZXJ0eUJpbmRpbmdzKHRlbXBsYXRlOiBQb2x5bWVyVGVtcGxhdGUpIHtcbiAgICBjb25zdCB7IGhvc3RQcm9wcyB9ID0gYXdhaXQgdGhpcy5nZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGlmIChPYmplY3Qua2V5cyhob3N0UHJvcHMpLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8VGVtcGxhdGVJbmZvPihyZXNvbHZlID0+IHtcbiAgICAgICAgd3JhcEFuZERlZmluZURlc2NyaXB0b3IodGVtcGxhdGUsICdfdGVtcGxhdGVJbmZvJywge1xuICAgICAgICAgIGFmdGVyU2V0KCkge1xuICAgICAgICAgICAgLy8gUmVzb2x2ZSBhdCBtaWNybyB0aW1pbmcgYWZ0ZXIgX3RlbXBsYXRlSW5mbyBpcyBmaXJzdCBzZXQsIHNpbmNlXG4gICAgICAgICAgICAvLyBUZW1wbGF0ZVN0YW1wIHdpbGwgZmlyc3Qgc2V0IGl0IHRvIGFuIGVtcHR5IG9iamVjdCBiZWZvcmVcbiAgICAgICAgICAgIC8vIGluaXRpYWxpemluZyBpdFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBldmVudCBpcyBhIFwic3BsaWNlc1wiIFBvbHltZXIgY2hhbmdlIGV2ZW50LFxuICAgKiB3aGljaCBoYXMgYSBkZXRhaWwgdmFsdWUgb2JqZWN0IHRoYXQgZGljdGF0ZXMgd2hhdCBlbGVtZW50cyB3ZXJlIGNoYW5nZWQgaWZcbiAgICogdGhlIGFycmF5IHJlZmVyZW5jZSByZW1haW5zIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGEgc3BsaWNlcyBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgaXNTcGxpY2VzQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIHJldHVybiB2YWx1ZSAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmluZGV4U3BsaWNlcyk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgcGF0aCBQb2x5bWVyIGNoYW5nZSBldmVudCwgd2hpY2hcbiAgICogaGFzIGEgZGV0YWlsIHBhdGggcHJvcGVydHkgaW5kaWNhdGluZyB0aGUgcGF0aCBvZiB0aGUgdmFsdWUgY2hhbmdlZCwgYW5kIGFcbiAgICogdmFsdWUgb2YgdGhlIHBhdGgncyB2YWx1ZS4gVGhpcyBpcyB1c2VkIHdoZW4gYW4gYXJyYXkgb3Igb2JqZWN0IHJlZmVyZW5jZVxuICAgKiByZW1haW5zIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGEgcGF0aCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgaXNQYXRoQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgZXZlbnQuZGV0YWlsLnBhdGggPT09ICdzdHJpbmcnO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvIiwic291cmNlcyI6WyJzcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFrQzNDLDJCQUNTLFlBR0EsV0FBZ0IsRUFDZjtRQUxWLGlCQWFDO1FBWlEsZUFBVSxHQUFWLFVBQVU7UUFHVixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUNmLFNBQUksR0FBSixJQUFJO1FBRVosSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDOzs7OzZCQUNSLElBQUksQ0FBQyxXQUFXLEVBQWhCLHdCQUFnQjt3QkFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFDbkQscUJBQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBQTs7d0JBQTNELFNBQTJELENBQUM7Ozs7O2FBRS9ELENBQUMsRUFBRSxDQUFDO0tBQ047SUFFRDs7Ozs7OztPQU9HOzs7Ozs7Ozs7O0lBQ0gsK0NBQW1COzs7Ozs7Ozs7SUFBbkIsVUFBb0IsUUFBeUI7Ozs7UUFJM0MsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0tBQ3hDO0lBRUQ7Ozs7OztPQU1HOzs7Ozs7Ozs7SUFDRyxrREFBc0I7Ozs7Ozs7O0lBQTVCLFVBQTZCLFFBQXlCOzs7Ozs7NEJBQzlCLHFCQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUE7O3dCQUFsRCxTQUFTLEdBQUssQ0FBQSxTQUFvQyxDQUFBLFVBQXpDO3dCQUNqQixJQUFJLFNBQVMsRUFBRTtnREFDSixJQUFJOztnQ0FFWCxJQUFNLFlBQVksR0FBRyxPQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDNUMsdUJBQXVCLENBQUMsT0FBSyxXQUFXLEVBQUUsSUFBSSxFQUFFO29DQUM5QyxRQUFROzs7Ozs4Q0FBQyxPQUFnQixFQUFFLEtBQVU7d0NBQ25DLElBQUksT0FBTyxFQUFFOzRDQUNYLFFBQVEsQ0FBQyxXQUFTLElBQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQzt5Q0FDbkM7cUNBQ0Y7aUNBQ0YsQ0FBQyxDQUFDO2dDQUVILE9BQUssV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQzs7Z0NBR3RDLElBQU0sU0FBUyxHQUFHLFdBQVMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFVLENBQUM7Z0NBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsVUFBQSxLQUFLO29DQUN4QyxJQUNFLENBQUMsS0FBSSxDQUFDLGVBQWUsbUJBQWMsS0FBSyxFQUFDO3dDQUN6QyxDQUFDLEtBQUksQ0FBQyxZQUFZLG1CQUFjLEtBQUssRUFBQyxFQUN0Qzt3Q0FDQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzs0Q0FDWixLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFjLEtBQUssRUFBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7eUNBQzVELENBQUMsQ0FBQztxQ0FDSjtpQ0FDRixDQUFDLENBQUM7Ozs0QkF4QkwsS0FBUyxJQUFJLElBQUksU0FBUzt3Q0FBakIsSUFBSTs2QkF5Qlo7eUJBQ0Y7Ozs7O0tBQ0Y7SUFFRDs7Ozs7T0FLRzs7Ozs7OztJQUNHLDJDQUFlOzs7Ozs7SUFBckIsVUFBc0IsUUFBeUI7Ozs7OzZCQUN6QyxRQUFRLENBQUMsYUFBYSxFQUF0Qix3QkFBc0I7d0JBQ3hCLHNCQUFPLFFBQVEsQ0FBQyxhQUFhLEVBQUM7NEJBRXZCLHFCQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLEVBQUE7NEJBQS9DLHNCQUFPLFNBQXdDLEVBQUM7Ozs7S0FFbkQ7Ozs7Ozs7OztJQVVPLDJDQUFlOzs7Ozs7OztjQUFDLEtBQWtCOztRQUN4QyxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7SUFZNUMsd0NBQVk7Ozs7Ozs7OztjQUFDLEtBQWtCO1FBQ3JDLE9BQU8sT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7OztnQkFoSGhELFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckI7Ozs7Z0JBbENtQixVQUFVO2dEQXdDekIsTUFBTSxTQUFDLFlBQVksY0FDbkIsUUFBUTtnQkF6Q3FDLE1BQU07OzRCQUF4RDs7U0FtQ2EsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdoZW5TZXQsIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKGhvc3RQcm9wcykge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2hlblNldCh0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiJdfQ==

@@ -157,3 +157,3 @@ import { InjectionToken, Directive, ElementRef, Inject, Optional, NgZone, NgModule, APP_INITIALIZER } from '@angular/core';

const { hostProps } = yield this.getTemplateInfo(template);
if (Object.keys(hostProps).length) {
if (hostProps) {
for (let prop in hostProps) {

@@ -201,15 +201,3 @@ /** @type {?} */

else {
return yield new Promise(resolve => {
wrapAndDefineDescriptor(template, '_templateInfo', {
/**
* @return {?}
*/
afterSet() {
// Resolve at micro timing after _templateInfo is first set, since
// TemplateStamp will first set it to an empty object before
// initializing it
setTimeout(() => resolve(template._templateInfo));
}
});
});
return yield whenSet(template, '_templateInfo');
}

@@ -290,2 +278,2 @@ });

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMuanMubWFwIiwic291cmNlcyI6WyJuZzovL0Bjb2RlYmFrZXJ5L29yaWdhbWkvdGVtcGxhdGVzL3NyYy9wb2x5bWVySG9zdC50cyIsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiaW1wb3J0IHsgd2hlblNldCB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgSFRNTFRlbXBsYXRlRWxlbWVudDogdHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7XG4gIH1cbn1cblxubGV0IHNoaW1Qcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBBbmd1bGFyIGluY29ycmVjdGx5IGFkZHMgYDx0ZW1wbGF0ZT5gIGNoaWxkcmVuIHRvIHRoZSBlbGVtZW50J3MgY2hpbGQgbm9kZVxuICogbGlzdCBpbnN0ZWFkIG9mIGl0cyBjb250ZW50LiBUaGlzIHNoaW0gZm9yY2VzIGNoaWxkcmVuIGFwcGVuZGVkIHRvIGFcbiAqIGA8dGVtcGxhdGU+YCB0byBiZSBhZGRlZCB0byBpdHMgY29udGVudCBpbnN0ZWFkLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gKlxuICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgSFRNTFRlbXBsYXRlRWxlbWVudCBpcyBzaGltbWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXNoaW1Qcm9taXNlKSB7XG4gICAgY29uc3Qgc2hpbSA9ICgpID0+IHtcbiAgICAgIC8vIEFuZ3VsYXIncyByZW5kZXJlciB3aWxsIGFkZCBjaGlsZHJlbiB0byBhIDx0ZW1wbGF0ZT4gaW5zdGVhZCBvZiB0byBpdHNcbiAgICAgIC8vIGNvbnRlbnQuIFRoaXMgc2hpbSB3aWxsIGZvcmNlIGFueSBjaGlsZHJlbiBhZGRlZCB0byBhIDx0ZW1wbGF0ZT4gdG8gYmVcbiAgICAgIC8vIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNTU1N1xuICAgICAgY29uc3QgbmF0aXZlQXBwZW5kID0gSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7XG4gICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBOb2RlPihcbiAgICAgICAgY2hpbGROb2RlOiBUXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbmF0aXZlQXBwZW5kLmFwcGx5KHRoaXMsIFtjaGlsZE5vZGVdKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgc2hpbVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcbiAgICAgIGF3YWl0IHdoZW5TZXQod2luZG93LCAnSFRNTFRlbXBsYXRlRWxlbWVudCcpO1xuICAgICAgc2hpbSgpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHNoaW1Qcm9taXNlO1xufVxuXG4vKipcbiAqIFJlc2V0cyBgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpYCBzbyB0aGF0IGl0IHdpbGwgcmUtc2hpbSB0aGUgY2xhc3MgbmV4dFxuICogdGltZSBpdCBpcyBjYWxsZWQuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldFNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKSB7XG4gIHNoaW1Qcm9taXNlID0gdW5kZWZpbmVkO1xufVxuIiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKGhvc3RQcm9wcykubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBwcm9wIGluIGhvc3RQcm9wcykge1xuICAgICAgICAvLyBBbmd1bGFyIC0+IFBvbHltZXIgKG9uZS13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMucG9seW1lckhvc3RbcHJvcF07XG4gICAgICAgIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yKHRoaXMucG9seW1lckhvc3QsIHByb3AsIHtcbiAgICAgICAgICBhZnRlclNldChjaGFuZ2VkOiBib29sZWFuLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZVtgX2hvc3RfJHtwcm9wfWBdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gaW5pdGlhbFZhbHVlO1xuXG4gICAgICAgIC8vIFBvbHltZXIgLT4gQW5ndWxhciAodHdvLXdheSBiaW5kaW5ncylcbiAgICAgICAgY29uc3QgZXZlbnROYW1lID0gYF9ob3N0XyR7Y2FtZWxUb0Rhc2hDYXNlKHByb3ApfS1jaGFuZ2VkYDtcbiAgICAgICAgdGVtcGxhdGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc1NwbGljZXNDaGFuZ2UoPEN1c3RvbUV2ZW50PmV2ZW50KSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNQYXRoQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gKDxDdXN0b21FdmVudD5ldmVudCkuZGV0YWlsLnZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0ZW1wbGF0ZSBpbmZvIG1ldGFkYXRhIGZvciBhIFBvbHltZXIgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byByZXRyaWV2ZSB0ZW1wbGF0ZSBpbmZvIGZvclxuICAgKiBAcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0ZW1wbGF0ZSdzIGluZm9cbiAgICovXG4gIGFzeW5jIGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKTogUHJvbWlzZTxUZW1wbGF0ZUluZm8+IHtcbiAgICBpZiAodGVtcGxhdGUuX3RlbXBsYXRlSW5mbykge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlLl90ZW1wbGF0ZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxUZW1wbGF0ZUluZm8+KHJlc29sdmUgPT4ge1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoKSB7XG4gICAgICAgICAgICAvLyBSZXNvbHZlIGF0IG1pY3JvIHRpbWluZyBhZnRlciBfdGVtcGxhdGVJbmZvIGlzIGZpcnN0IHNldCwgc2luY2VcbiAgICAgICAgICAgIC8vIFRlbXBsYXRlU3RhbXAgd2lsbCBmaXJzdCBzZXQgaXQgdG8gYW4gZW1wdHkgb2JqZWN0IGJlZm9yZVxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6aW5nIGl0XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUodGVtcGxhdGUuX3RlbXBsYXRlSW5mbykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRzUmVhZHlNb2R1bGUgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3BvbHlmaWxscyc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVTX1JFQURZX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlVmFsdWU6IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmRcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtXZWJDb21wb25lbnRzUmVhZHlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1RFTVBMQVRFU19SRUFEWV9QUk9WSURFUl0sXG4gIGV4cG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNb2R1bGUge31cbiJdLCJuYW1lcyI6WyJwb2x5bWVySG9zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLE1BQWEsWUFBWSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYW5FLHFCQUE0QixhQUF3QjtJQUNsRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDdEIsQ0FBQztDQUNIOzs7Ozs7Ozs7Ozs7O0FBY0QsMEJBQWlDLFFBQWE7O0lBRTVDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUU7UUFDckMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLENBQ2pDLElBQVUsRUFDVixTQUFpQixFQUNqQixPQUEyQjtZQUUzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzNDLENBQUM7S0FDSDtJQUVELE9BQU8sUUFBUSxDQUFDO0NBQ2pCOzs7Ozs7O0FDN0NELElBQUksV0FBVyxDQUE0Qjs7Ozs7Ozs7OztBQVUzQztJQUNFLElBQUksQ0FBQyxXQUFXLEVBQUU7O1FBQ2hCLE1BQU0sSUFBSSxHQUFHOztZQUtYLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDL0QsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxVQUMxQyxTQUFZO2dCQUVaLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsT0FBTyxJ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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMuanMubWFwIiwic291cmNlcyI6WyJuZzovL0Bjb2RlYmFrZXJ5L29yaWdhbWkvdGVtcGxhdGVzL3NyYy9wb2x5bWVySG9zdC50cyIsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiaW1wb3J0IHsgd2hlblNldCB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgSFRNTFRlbXBsYXRlRWxlbWVudDogdHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7XG4gIH1cbn1cblxubGV0IHNoaW1Qcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBBbmd1bGFyIGluY29ycmVjdGx5IGFkZHMgYDx0ZW1wbGF0ZT5gIGNoaWxkcmVuIHRvIHRoZSBlbGVtZW50J3MgY2hpbGQgbm9kZVxuICogbGlzdCBpbnN0ZWFkIG9mIGl0cyBjb250ZW50LiBUaGlzIHNoaW0gZm9yY2VzIGNoaWxkcmVuIGFwcGVuZGVkIHRvIGFcbiAqIGA8dGVtcGxhdGU+YCB0byBiZSBhZGRlZCB0byBpdHMgY29udGVudCBpbnN0ZWFkLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gKlxuICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgSFRNTFRlbXBsYXRlRWxlbWVudCBpcyBzaGltbWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXNoaW1Qcm9taXNlKSB7XG4gICAgY29uc3Qgc2hpbSA9ICgpID0+IHtcbiAgICAgIC8vIEFuZ3VsYXIncyByZW5kZXJlciB3aWxsIGFkZCBjaGlsZHJlbiB0byBhIDx0ZW1wbGF0ZT4gaW5zdGVhZCBvZiB0byBpdHNcbiAgICAgIC8vIGNvbnRlbnQuIFRoaXMgc2hpbSB3aWxsIGZvcmNlIGFueSBjaGlsZHJlbiBhZGRlZCB0byBhIDx0ZW1wbGF0ZT4gdG8gYmVcbiAgICAgIC8vIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNTU1N1xuICAgICAgY29uc3QgbmF0aXZlQXBwZW5kID0gSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7XG4gICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBOb2RlPihcbiAgICAgICAgY2hpbGROb2RlOiBUXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbmF0aXZlQXBwZW5kLmFwcGx5KHRoaXMsIFtjaGlsZE5vZGVdKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgc2hpbVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcbiAgICAgIGF3YWl0IHdoZW5TZXQod2luZG93LCAnSFRNTFRlbXBsYXRlRWxlbWVudCcpO1xuICAgICAgc2hpbSgpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHNoaW1Qcm9taXNlO1xufVxuXG4vKipcbiAqIFJlc2V0cyBgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpYCBzbyB0aGF0IGl0IHdpbGwgcmUtc2hpbSB0aGUgY2xhc3MgbmV4dFxuICogdGltZSBpdCBpcyBjYWxsZWQuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldFNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKSB7XG4gIHNoaW1Qcm9taXNlID0gdW5kZWZpbmVkO1xufVxuIiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdoZW5TZXQsIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKGhvc3RQcm9wcykge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2hlblNldCh0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRzUmVhZHlNb2R1bGUgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3BvbHlmaWxscyc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVTX1JFQURZX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlVmFsdWU6IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmRcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtXZWJDb21wb25lbnRzUmVhZHlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1RFTVBMQVRFU19SRUFEWV9QUk9WSURFUl0sXG4gIGV4cG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNb2R1bGUge31cbiJdLCJuYW1lcyI6WyJwb2x5bWVySG9zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLE1BQWEsWUFBWSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYW5FLHFCQUE0QixhQUF3QjtJQUNsRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsVUFBVSxFQUFFLGdC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

@@ -207,3 +207,3 @@ import { InjectionToken, Directive, ElementRef, Inject, Optional, NgZone, NgModule, APP_INITIALIZER } from '@angular/core';

hostProps = (_a.sent()).hostProps;
if (Object.keys(hostProps).length) {
if (hostProps) {
_loop_1 = function (prop) {

@@ -271,15 +271,3 @@ /** @type {?} */

return [2 /*return*/, template._templateInfo];
case 1: return [4 /*yield*/, new Promise(function (resolve) {
wrapAndDefineDescriptor(template, '_templateInfo', {
afterSet: /**
* @return {?}
*/
function () {
// Resolve at micro timing after _templateInfo is first set, since
// TemplateStamp will first set it to an empty object before
// initializing it
setTimeout(function () { return resolve(template._templateInfo); });
}
});
})];
case 1: return [4 /*yield*/, whenSet(template, '_templateInfo')];
case 2: return [2 /*return*/, _a.sent()];

@@ -383,2 +371,2 @@ }

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMuanMubWFwIiwic291cmNlcyI6WyJuZzovL0Bjb2RlYmFrZXJ5L29yaWdhbWkvdGVtcGxhdGVzL3NyYy9wb2x5bWVySG9zdC50cyIsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiaW1wb3J0IHsgd2hlblNldCB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgSFRNTFRlbXBsYXRlRWxlbWVudDogdHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7XG4gIH1cbn1cblxubGV0IHNoaW1Qcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBBbmd1bGFyIGluY29ycmVjdGx5IGFkZHMgYDx0ZW1wbGF0ZT5gIGNoaWxkcmVuIHRvIHRoZSBlbGVtZW50J3MgY2hpbGQgbm9kZVxuICogbGlzdCBpbnN0ZWFkIG9mIGl0cyBjb250ZW50LiBUaGlzIHNoaW0gZm9yY2VzIGNoaWxkcmVuIGFwcGVuZGVkIHRvIGFcbiAqIGA8dGVtcGxhdGU+YCB0byBiZSBhZGRlZCB0byBpdHMgY29udGVudCBpbnN0ZWFkLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gKlxuICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgSFRNTFRlbXBsYXRlRWxlbWVudCBpcyBzaGltbWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXNoaW1Qcm9taXNlKSB7XG4gICAgY29uc3Qgc2hpbSA9ICgpID0+IHtcbiAgICAgIC8vIEFuZ3VsYXIncyByZW5kZXJlciB3aWxsIGFkZCBjaGlsZHJlbiB0byBhIDx0ZW1wbGF0ZT4gaW5zdGVhZCBvZiB0byBpdHNcbiAgICAgIC8vIGNvbnRlbnQuIFRoaXMgc2hpbSB3aWxsIGZvcmNlIGFueSBjaGlsZHJlbiBhZGRlZCB0byBhIDx0ZW1wbGF0ZT4gdG8gYmVcbiAgICAgIC8vIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNTU1N1xuICAgICAgY29uc3QgbmF0aXZlQXBwZW5kID0gSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7XG4gICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBOb2RlPihcbiAgICAgICAgY2hpbGROb2RlOiBUXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbmF0aXZlQXBwZW5kLmFwcGx5KHRoaXMsIFtjaGlsZE5vZGVdKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgc2hpbVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcbiAgICAgIGF3YWl0IHdoZW5TZXQod2luZG93LCAnSFRNTFRlbXBsYXRlRWxlbWVudCcpO1xuICAgICAgc2hpbSgpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHNoaW1Qcm9taXNlO1xufVxuXG4vKipcbiAqIFJlc2V0cyBgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpYCBzbyB0aGF0IGl0IHdpbGwgcmUtc2hpbSB0aGUgY2xhc3MgbmV4dFxuICogdGltZSBpdCBpcyBjYWxsZWQuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldFNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKSB7XG4gIHNoaW1Qcm9taXNlID0gdW5kZWZpbmVkO1xufVxuIiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKGhvc3RQcm9wcykubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBwcm9wIGluIGhvc3RQcm9wcykge1xuICAgICAgICAvLyBBbmd1bGFyIC0+IFBvbHltZXIgKG9uZS13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMucG9seW1lckhvc3RbcHJvcF07XG4gICAgICAgIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yKHRoaXMucG9seW1lckhvc3QsIHByb3AsIHtcbiAgICAgICAgICBhZnRlclNldChjaGFuZ2VkOiBib29sZWFuLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZVtgX2hvc3RfJHtwcm9wfWBdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gaW5pdGlhbFZhbHVlO1xuXG4gICAgICAgIC8vIFBvbHltZXIgLT4gQW5ndWxhciAodHdvLXdheSBiaW5kaW5ncylcbiAgICAgICAgY29uc3QgZXZlbnROYW1lID0gYF9ob3N0XyR7Y2FtZWxUb0Rhc2hDYXNlKHByb3ApfS1jaGFuZ2VkYDtcbiAgICAgICAgdGVtcGxhdGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc1NwbGljZXNDaGFuZ2UoPEN1c3RvbUV2ZW50PmV2ZW50KSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNQYXRoQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBvbHltZXJIb3N0W3Byb3BdID0gKDxDdXN0b21FdmVudD5ldmVudCkuZGV0YWlsLnZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0ZW1wbGF0ZSBpbmZvIG1ldGFkYXRhIGZvciBhIFBvbHltZXIgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byByZXRyaWV2ZSB0ZW1wbGF0ZSBpbmZvIGZvclxuICAgKiBAcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0ZW1wbGF0ZSdzIGluZm9cbiAgICovXG4gIGFzeW5jIGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKTogUHJvbWlzZTxUZW1wbGF0ZUluZm8+IHtcbiAgICBpZiAodGVtcGxhdGUuX3RlbXBsYXRlSW5mbykge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlLl90ZW1wbGF0ZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxUZW1wbGF0ZUluZm8+KHJlc29sdmUgPT4ge1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoKSB7XG4gICAgICAgICAgICAvLyBSZXNvbHZlIGF0IG1pY3JvIHRpbWluZyBhZnRlciBfdGVtcGxhdGVJbmZvIGlzIGZpcnN0IHNldCwgc2luY2VcbiAgICAgICAgICAgIC8vIFRlbXBsYXRlU3RhbXAgd2lsbCBmaXJzdCBzZXQgaXQgdG8gYW4gZW1wdHkgb2JqZWN0IGJlZm9yZVxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6aW5nIGl0XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUodGVtcGxhdGUuX3RlbXBsYXRlSW5mbykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRzUmVhZHlNb2R1bGUgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3BvbHlmaWxscyc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVTX1JFQURZX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlVmFsdWU6IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmRcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtXZWJDb21wb25lbnRzUmVhZHlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1RFTVBMQVRFU19SRUFEWV9QUk9WSURFUl0sXG4gIGV4cG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNb2R1bGUge31cbiJdLCJuYW1lcyI6WyJwb2x5bWVySG9zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLElBQWEsWUFBWSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYW5FLHFCQUE0QixhQUF3QjtJQUNsRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDdEIsQ0FBQztDQUNIOzs7Ozs7Ozs7Ozs7O0FBY0QsMEJBQWlDLFFBQWE7O0lBRTVDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUU7UUFDckMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLFVBQ2pDLElBQVUsRUFDVixTQUFpQixFQUNqQixPQUEyQjtZQUUzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzNDLENBQUM7S0FDSDtJQUVELE9BQU8sUUFBUSxDQUFDO0NBQ2pCOzs7Ozs7O0FDN0NELElBQUksV0FBVyxDQUE0Qjs7Ozs7Ozs7OztBQVUzQztJQUFBLGlCQTJCQztJQTFCQyxJQUFJLENBQUMsV0FBVyxFQUFFOztRQUNoQixJQUFNLE1BQUksR0FBRzs7WUFLWCxJQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQy9ELG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsVUFDMUMsU0FBWTtnQkFFWixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2FtaS10ZW1wbGF0ZXMuanMubWFwIiwic291cmNlcyI6WyJuZzovL0Bjb2RlYmFrZXJ5L29yaWdhbWkvdGVtcGxhdGVzL3NyYy9wb2x5bWVySG9zdC50cyIsIm5nOi8vQGNvZGViYWtlcnkvb3JpZ2FtaS90ZW1wbGF0ZXMvc3JjL3NoaW0tdGVtcGxhdGUtYXBwZW5kLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUuZGlyZWN0aXZlLnRzIiwibmc6Ly9AY29kZWJha2VyeS9vcmlnYW1pL3RlbXBsYXRlcy9zcmMvdGVtcGxhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHRoYXQgcmVwcmVzZW50cyB0aGUgUG9seW1lciBob3N0IHRoYXQgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzIHNob3VsZFxuICogcmVmZXIgdG8gZm9yIFBvbHltZXIgZGF0YSBiaW5kaW5nLiBUaGUgdG9rZW4gd2lsbCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nXG4gKiBgcG9seW1lckhvc3QoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xZTUVSX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PigncG9seW1lckhvc3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYFByb3ZpZGVyYCB0aGF0IGNvbm5lY3RzIGEgY29tcG9uZW50cycgUG9seW1lciBgPHRlbXBsYXRlPmBcbiAqIGVsZW1lbnRzJyBkYXRhIGJpbmRpbmcgc3lzdGVtIHRvIHRoZSBob3N0IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBldmVudCwgb25lLXdheSwgYW5kIHR3by13YXkgUG9seW1lciBkYXRhIGJpbmRpbmdcbiAqIHdpdGhpbiBhIGA8dGVtcGxhdGU+YCB0aGF0IHJlZmVycyB0byB0aGUgaG9zdCBBbmd1bGFyIGNvbXBvbmVudCdzIG1ldGhvZHMgYW5kXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRUeXBlIHRoZSBjb21wb25lbnQgdHlwZSB3aG9zZSBpbnN0YW5jZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gKiAgIGFzIHRoZSBQb2x5bWVyIGhvc3QgdG8gdGhlIGluc3RhbmNlJ3MgYDx0ZW1wbGF0ZT5gIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9seW1lckhvc3QoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFBPTFlNRVJfSE9TVCxcbiAgICB1c2VGYWN0b3J5OiBwYXRjaFBvbHltZXJIb3N0LFxuICAgIGRlcHM6IFtjb21wb25lbnRUeXBlXVxuICB9O1xufVxuXG4vKipcbiAqIFBhdGNoIGEgZGF0YSBob3N0IGluc3RhbmNlIHdpdGggbWV0aG9kcyB0aGF0IGFyZSBleHBlY3RlZCBieSBQb2x5bWVyJ3NcbiAqIGBUZW1wbGF0ZVN0YW1wYCBtaXhpbi4gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBzZXQgdXAgZGF0YSBiaW5kaW5ncywgYW5kXG4gKiBhcmUgbm9ybWFsbHkgcHJvdmlkZWQgd2hlbiBhIFBvbHltZXIgZWxlbWVudCBleHRlbmRzIGZyb20gYFRlbXBsYXRlU3RhbXBgLlxuICpcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBkbyBub3QgZXh0ZW5kIHRoaXMgbWl4aW4sIHdoaWNoIGlzIHdoeSB3ZSBuZWVkIHRvIHBhdGNoXG4gKiB0aGUgcmVxdWlyZWQgbWV0aG9kcy4gSW5zdGFuY2VzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwYXRjaGVkIHdoZW4gdXNpbmdcbiAqIGBwb2x5bWVySG9zdCgpYC5cbiAqXG4gKiBAcGFyYW0gZGF0YUhvc3QgdGhlIGhvc3QgdG8gcGF0Y2hcbiAqIEByZXR1cm5zIHRoZSBwYXRjaGVkIGRhdGFIb3N0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFBvbHltZXJIb3N0KGRhdGFIb3N0OiBhbnkpOiBhbnkge1xuICAvLyBBZGQgbWV0aG9kcyBmcm9tIFRlbXBsYXRlU3RhbXAgdGhhdCB0ZW1wbGF0aXplIGluc3RhbmNlcyBleHBlY3RcbiAgaWYgKCFkYXRhSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSkge1xuICAgIGRhdGFIb3N0Ll9hZGRFdmVudExpc3RlbmVyVG9Ob2RlID0gKFxuICAgICAgbm9kZTogTm9kZSxcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB2b2lkXG4gICAgKSA9PiB7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGFIb3N0O1xufVxuIiwiaW1wb3J0IHsgd2hlblNldCB9IGZyb20gJ0Bjb2RlYmFrZXJ5L29yaWdhbWkvdXRpbCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgSFRNTFRlbXBsYXRlRWxlbWVudDogdHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7XG4gIH1cbn1cblxubGV0IHNoaW1Qcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBBbmd1bGFyIGluY29ycmVjdGx5IGFkZHMgYDx0ZW1wbGF0ZT5gIGNoaWxkcmVuIHRvIHRoZSBlbGVtZW50J3MgY2hpbGQgbm9kZVxuICogbGlzdCBpbnN0ZWFkIG9mIGl0cyBjb250ZW50LiBUaGlzIHNoaW0gZm9yY2VzIGNoaWxkcmVuIGFwcGVuZGVkIHRvIGFcbiAqIGA8dGVtcGxhdGU+YCB0byBiZSBhZGRlZCB0byBpdHMgY29udGVudCBpbnN0ZWFkLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NTU3XG4gKlxuICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgSFRNTFRlbXBsYXRlRWxlbWVudCBpcyBzaGltbWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGltSFRNTFRlbXBsYXRlQXBwZW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXNoaW1Qcm9taXNlKSB7XG4gICAgY29uc3Qgc2hpbSA9ICgpID0+IHtcbiAgICAgIC8vIEFuZ3VsYXIncyByZW5kZXJlciB3aWxsIGFkZCBjaGlsZHJlbiB0byBhIDx0ZW1wbGF0ZT4gaW5zdGVhZCBvZiB0byBpdHNcbiAgICAgIC8vIGNvbnRlbnQuIFRoaXMgc2hpbSB3aWxsIGZvcmNlIGFueSBjaGlsZHJlbiBhZGRlZCB0byBhIDx0ZW1wbGF0ZT4gdG8gYmVcbiAgICAgIC8vIGFkZGVkIHRvIGl0cyBjb250ZW50IGluc3RlYWQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNTU1N1xuICAgICAgY29uc3QgbmF0aXZlQXBwZW5kID0gSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7XG4gICAgICBIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBOb2RlPihcbiAgICAgICAgY2hpbGROb2RlOiBUXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbmF0aXZlQXBwZW5kLmFwcGx5KHRoaXMsIFtjaGlsZE5vZGVdKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgc2hpbVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcbiAgICAgIGF3YWl0IHdoZW5TZXQod2luZG93LCAnSFRNTFRlbXBsYXRlRWxlbWVudCcpO1xuICAgICAgc2hpbSgpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHNoaW1Qcm9taXNlO1xufVxuXG4vKipcbiAqIFJlc2V0cyBgc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpYCBzbyB0aGF0IGl0IHdpbGwgcmUtc2hpbSB0aGUgY2xhc3MgbmV4dFxuICogdGltZSBpdCBpcyBjYWxsZWQuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldFNoaW1IVE1MVGVtcGxhdGVBcHBlbmQoKSB7XG4gIHNoaW1Qcm9taXNlID0gdW5kZWZpbmVkO1xufVxuIiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHdoZW5TZXQsIHdyYXBBbmREZWZpbmVEZXNjcmlwdG9yIH0gZnJvbSAnQGNvZGViYWtlcnkvb3JpZ2FtaS91dGlsJztcbmltcG9ydCB7IGNhbWVsVG9EYXNoQ2FzZSB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvbGliL3V0aWxzL2Nhc2UtbWFwJztcbmltcG9ydCB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJ0Bwb2x5bWVyL3BvbHltZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQT0xZTUVSX0hPU1QgfSBmcm9tICcuL3BvbHltZXJIb3N0JztcbmltcG9ydCB7IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmQgfSBmcm9tICcuL3NoaW0tdGVtcGxhdGUtYXBwZW5kJztcblxuLyoqXG4gKiBBbiBIVE1MVGVtcGxhdGVFbGVtZW50IHRoYXQgaXMgcHJvY2Vzc2VkIGJ5IFBvbHltZXIncyB0ZW1wbGF0aXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5bWVyVGVtcGxhdGUgZXh0ZW5kcyBIVE1MVGVtcGxhdGVFbGVtZW50IHtcbiAgLyoqXG4gICAqIEFkZGVkIGJ5IHRoZSBgUHJvcGVydHlFZmZlY3RzYCBtaXhpbiB0byBpbnN0cnVjdCB0ZW1wbGF0aXplIG9mIHRoZSBob3N0XG4gICAqIGZvciB0aGUgdGVtcGxhdGUuIEVmZmVjdHMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGluc3RhbmNlIHdpbGxcbiAgICogcHJvcGFnYXRlIHRvIHRoaXMgaG9zdC5cbiAgICovXG4gIF9fZGF0YUhvc3Q/OiBhbnk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBtZXRhZGF0YSBnZW5lcmF0ZWQgZnJvbSBgVGVtcGxhdGVTdGFtcGAuXG4gICAqL1xuICBfdGVtcGxhdGVJbmZvPzogVGVtcGxhdGVJbmZvO1xuICAvKipcbiAgICogSG9zdCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGFzIGBfaG9zdF9wcm9wTmFtZWAgYnkgdGVtcGxhdGl6ZXIuXG4gICAqL1xuICBbaG9zdFByb3A6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBlYWNoIGA8dGVtcGxhdGU+YCBlbGVtZW50LiBJZiBhIFBvbHltZXIgaG9zdFxuICogY29tcG9uZW50IGlzIHByb3ZpZGVkLCB0aGlzIGRpcmVjdGl2ZSB3aWxsIGVuYWJsZSBQb2x5bWVyJ3MgZXZlbnQgYW5kXG4gKiB0d28td2F5IGJpbmRpbmcgc3ludGF4IHN0eWxlcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQT0xZTUVSX0hPU1QpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgcG9seW1lckhvc3Q6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBvbHltZXJIb3N0KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRXZlbnRCaW5kaW5ncyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVuYWJsZVByb3BlcnR5QmluZGluZ3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIGV2ZW50IGJpbmRpbmdzLiBBbiBldmVudCBiaW5kaW5nIGlzIGRlY2xhcmVkXG4gICAqIHdpdGggdGhlIHN5bnRheCBgb24tZXZlbnQtbmFtZT1cImhhbmRsZXJcImAsIHdoZXJlIGBldmVudC1uYW1lYCBpcyB0aGVcbiAgICogbmFtZSBvZiB0aGUgZXZlbnQgdG8gbGlzdGVuIHRvIGFuZCBgaGFuZGxlcmAgaXMgdGhlIG5hbWUgb2YgdGhlIGhvc3Qnc1xuICAgKiBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gZW5hYmxlIGV2ZW50IGJpbmRpbmcgc3ludGF4IGZvclxuICAgKi9cbiAgZW5hYmxlRXZlbnRCaW5kaW5ncyh0ZW1wbGF0ZTogUG9seW1lclRlbXBsYXRlKSB7XG4gICAgLy8gV2hlbiB0ZW1wbGF0aXplIGxvb2tzIGZvciBhIFByb3BlcnR5RWZmZWN0cyBob3N0LCBpdCB3aWxsIHVzZSB0aGVcbiAgICAvLyB0ZW1wbGF0ZSdzIF9fZGF0YUhvc3QgcHJvcGVydHkuIFRoaXMgaXMgdGhlIF9tZXRob2RIb3N0IGZvciBhIHRlbXBsYXRlXG4gICAgLy8gaW5zdGFuY2UgYW5kIGlzIHVzZWQgdG8gYWRkIGV2ZW50IGxpc3RlbmVyIGJpbmRpbmdzLlxuICAgIHRlbXBsYXRlLl9fZGF0YUhvc3QgPSB0aGlzLnBvbHltZXJIb3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBQb2x5bWVyIHByb3BlcnR5IGJpbmRpbmdzLiBBIHByb3BlcnR5IGJpbmRpbmcgaXNcbiAgICogZGVjbGFyZWQgZWl0aGVyIGFzIGEgb25lLXdheSBiaW5kaW5nIGB2YWx1ZT1cIltbcHJvcE5hbWVdXVwiYCBvciBhIHR3by13YXlcbiAgICogYmluZGluZyBgdmFsdWU9XCJ7e3Byb3BOYW1lfX1cImAuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgUG9seW1lciB0ZW1wbGF0ZSB0byBlbmFibGUgZGF0YSBiaW5kaW5nIHN5bnRheCBmb3JcbiAgICovXG4gIGFzeW5jIGVuYWJsZVByb3BlcnR5QmluZGluZ3ModGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgaG9zdFByb3BzIH0gPSBhd2FpdCB0aGlzLmdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgaWYgKGhvc3RQcm9wcykge1xuICAgICAgZm9yIChsZXQgcHJvcCBpbiBob3N0UHJvcHMpIHtcbiAgICAgICAgLy8gQW5ndWxhciAtPiBQb2x5bWVyIChvbmUtd2F5IGJpbmRpbmdzKVxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnBvbHltZXJIb3N0W3Byb3BdO1xuICAgICAgICB3cmFwQW5kRGVmaW5lRGVzY3JpcHRvcih0aGlzLnBvbHltZXJIb3N0LCBwcm9wLCB7XG4gICAgICAgICAgYWZ0ZXJTZXQoY2hhbmdlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgdGVtcGxhdGVbYF9ob3N0XyR7cHJvcH1gXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9IGluaXRpYWxWYWx1ZTtcblxuICAgICAgICAvLyBQb2x5bWVyIC0+IEFuZ3VsYXIgKHR3by13YXkgYmluZGluZ3MpXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGBfaG9zdF8ke2NhbWVsVG9EYXNoQ2FzZShwcm9wKX0tY2hhbmdlZGA7XG4gICAgICAgIHRlbXBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTcGxpY2VzQ2hhbmdlKDxDdXN0b21FdmVudD5ldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUGF0aENoYW5nZSg8Q3VzdG9tRXZlbnQ+ZXZlbnQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wb2x5bWVySG9zdFtwcm9wXSA9ICg8Q3VzdG9tRXZlbnQ+ZXZlbnQpLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGVtcGxhdGUgaW5mbyBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgdGhlIFBvbHltZXIgdGVtcGxhdGUgdG8gcmV0cmlldmUgdGVtcGxhdGUgaW5mbyBmb3JcbiAgICogQHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdGVtcGxhdGUncyBpbmZvXG4gICAqL1xuICBhc3luYyBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGU6IFBvbHltZXJUZW1wbGF0ZSk6IFByb21pc2U8VGVtcGxhdGVJbmZvPiB7XG4gICAgaWYgKHRlbXBsYXRlLl90ZW1wbGF0ZUluZm8pIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZS5fdGVtcGxhdGVJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2hlblNldCh0ZW1wbGF0ZSwgJ190ZW1wbGF0ZUluZm8nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIGV2ZW50IGlzIGEgXCJzcGxpY2VzXCIgUG9seW1lciBjaGFuZ2UgZXZlbnQsXG4gICAqIHdoaWNoIGhhcyBhIGRldGFpbCB2YWx1ZSBvYmplY3QgdGhhdCBkaWN0YXRlcyB3aGF0IGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBpZlxuICAgKiB0aGUgYXJyYXkgcmVmZXJlbmNlIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBzcGxpY2VzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1NwbGljZXNDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuaW5kZXhTcGxpY2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gZXZlbnQgaXMgYSBwYXRoIFBvbHltZXIgY2hhbmdlIGV2ZW50LCB3aGljaFxuICAgKiBoYXMgYSBkZXRhaWwgcGF0aCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoZSBwYXRoIG9mIHRoZSB2YWx1ZSBjaGFuZ2VkLCBhbmQgYVxuICAgKiB2YWx1ZSBvZiB0aGUgcGF0aCdzIHZhbHVlLiBUaGlzIGlzIHVzZWQgd2hlbiBhbiBhcnJheSBvciBvYmplY3QgcmVmZXJlbmNlXG4gICAqIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gY2hlY2tcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBwYXRoIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBpc1BhdGhDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBldmVudC5kZXRhaWwucGF0aCA9PT0gJ3N0cmluZyc7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRzUmVhZHlNb2R1bGUgfSBmcm9tICdAY29kZWJha2VyeS9vcmlnYW1pL3BvbHlmaWxscyc7XG5pbXBvcnQgeyBzaGltSFRNTFRlbXBsYXRlQXBwZW5kIH0gZnJvbSAnLi9zaGltLXRlbXBsYXRlLWFwcGVuZCc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuc2hpbUhUTUxUZW1wbGF0ZUFwcGVuZCgpO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVTX1JFQURZX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlVmFsdWU6IHNoaW1IVE1MVGVtcGxhdGVBcHBlbmRcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtXZWJDb21wb25lbnRzUmVhZHlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1RFTVBMQVRFU19SRUFEWV9QUk9WSURFUl0sXG4gIGV4cG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNb2R1bGUge31cbiJdLCJuYW1lcyI6WyJwb2x5bWVySG9zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztBQU9BLElBQWEsWUFBWSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYW5FLHFCQUE0QixhQUF3QjtJQUNsRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsVUFBVSxFQUFFLGdC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
{
"$schema": "./node_modules/ng-packagr/package.schema.json",
"name": "@codebakery/origami",
"version": "3.0.0-beta.6",
"version": "3.0.0-beta.7",
"description": "Angular + Polymer",

@@ -6,0 +6,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc