@libs-ui/utils 0.2.300 → 0.2.303

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm2022/cache.mjs CHANGED
@@ -190,7 +190,6 @@ export class UtilsCache {
190
190
  return data.value;
191
191
  }
192
192
  catch (error) {
193
- console.trace(error);
194
193
  console.trace(`Get key ${key} Error, return default value: ${default_value}`, error);
195
194
  return this.GetDefaultValueBySpecificKey(key, default_value);
196
195
  }
@@ -382,4 +381,4 @@ export class UtilsCache {
382
381
  });
383
382
  }
384
383
  }
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsdURBQXVEO0FBR3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sT0FBTyxVQUFVO0lBQ2QsTUFBTSxDQUFVLHlCQUF5QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsTUFBTSxDQUFVLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBVSxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbkMsTUFBTSxDQUFDLHdCQUF3QixHQUFHLG1DQUFtQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztJQUNuRCxNQUFNLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsT0FBTyxDQUE2QjtJQUMzQyxNQUFNLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQztJQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixNQUFNLENBQUMsU0FBUyxHQUFH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LEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBUyxDQUFDLENBQUM7WUFDN0csQ0FBQyxDQUFDO1lBRUYsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEVBQUUsWUFBWSxFQUFFLDJCQUEyQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQVMsQ0FBQyxDQUFDO1lBQ3RGLENBQUMsQ0FBQTtRQUVILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWFzeW5jLXByb21pc2UtZXhlY3V0b3IgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgVFlQRV9MQU5HVUFHRV9TVVBQT1JUIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBVdGlsc0NvbW11bmljYXRlTWljcm8gfSBmcm9tICcuL2NvbW11bmljYXRlLW1pY3JvJztcbmltcG9ydCB7IGRlY3J5cHQsIGVuY3J5cHQsIG1kNSB9IGZyb20gJy4vY3J5cHRvJztcbmltcG9ydCB7IGdldFBsYXRGcm9tQnJvd3NlciB9IGZyb20gJy4vZG9tJztcbmltcG9ydCB7IGlzRW1iZWRGcmFtZSB9IGZyb20gJy4vZnVuY3Rpb24tY2hlY2stZW1iZWQtZnJhbWUnO1xuaW1wb3J0IHsgZ2V0LCBpc05pbCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzIH0gZnJvbSAnLi9sYW5ndWFnZSc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi91dWlkJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzQ2FjaGUge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hFX0VYUElSRV9USU1FX0RFRkFVTFQgPSA1ICogNjA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0FDSEVfRVhQSVJFX05PTkUgPSAtMTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBpZFNlcnZpY2UgPSB1dWlkKCk7XG4gIHB1YmxpYyBzdGF0aWMgdHlwZUtleUNsZWFyTG9jYWxTdG9yYWdlID0gJ0xJQlNfVUlfQ0xFQVJfTE9DQUxfU1RPUkFHRV9FVkVOVCc7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbGFuZ3VhZ2VLZXlDYWNoZSA9ICdTUjN4UUt4SGdmZmlDZXZQUVJyYWxnJztcbiAgcHJpdmF0ZSBzdGF0aWMgbGlzdEtleUtlZXBXaGVuQ2xlYXJBTGxsID0gQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIHN0YXRpYyBpbml0ZEV2ZW50PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdGF0aWMgc3RvcmFnZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG4gIHByaXZhdGUgc3RhdGljIGRiTmFtZSA9ICdsaWJzLXVpLWNhY2hlJztcbiAgcHJpdmF0ZSBzdGF0aWMgaXRlbUluZGV4QnlLZXkgPSAna2V5JztcbiAgcHJpdmF0ZSBzdGF0aWMgZGJWZXJzaW9uID0gMTtcbiAgcHJpdmF0ZSBzdGF0aWMgZGI6IElEQkRhdGFiYXNlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHN0YXRpYyBpbml0KGNvbmZpZzogeyBpbmRleGVkREJOYW1lPzogc3RyaW5nLCBsYW5ndWFnZUtleUNhY2hlPzogc3RyaW5nLCB0eXBlS2V5Q2xlYXJMb2NhbFN0b3JhZ2U/OiBzdHJpbmcsIGxpc3RLZXlLZWVwV2hlbkNsZWFyQWxsPzogQXJyYXk8c3RyaW5nPiB9KSB7XG4gICAgaWYgKHRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluaXRkRXZlbnQgPSB0cnVlO1xuICAgIGlmIChjb25maWcuaW5kZXhlZERCTmFtZSkge1xuICAgICAgdGhpcy5kYk5hbWUgPSBjb25maWcuaW5kZXhlZERCTmFtZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50eXBlS2V5Q2xlYXJMb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHRoaXMudHlwZUtleUNsZWFyTG9jYWxTdG9yYWdlID0gY29uZmlnLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5saXN0S2V5S2VlcFdoZW5DbGVhckFsbCkge1xuICAgICAgdGhpcy5saXN0S2V5S2VlcFdoZW5DbGVhckFMbGwgPSBjb25maWcubGlzdEtleUtlZXBXaGVuQ2xlYXJBbGw7XG4gICAgfVxuICAgIGlmIChjb25maWcubGFuZ3VhZ2VLZXlDYWNoZSkge1xuICAgICAgdGhpcy5sYW5ndWFnZUtleUNhY2hlID0gY29uZmlnLmxhbmd1YWdlS2V5Q2FjaGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXRMYW5nKGxhbmc6IFRZUEVfTEFOR1VBR0VfU1VQUE9SVCkge1xuICAgIGlmICghVXRpbHNMYW5ndWFnZUNvbnN0YW50cy5pc1N1cHBvcnRlZChsYW5nKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYExhbmd1YWdlIG5vdCBzdXBwb3J0ICR7bGFuZ31gKTtcbiAgICB9XG4gICAgdGhpcy5TZXQodGhpcy5sYW5ndWFnZUtleUNhY2hlLCBsYW5nLCB0aGlzLkNBQ0hFX0VYUElSRV9OT05FKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TGFuZygpOiBUWVBFX0xBTkdVQUdFX1NVUFBPUlQge1xuICAgIHJldHVybiB0aGlzLkdldCh0aGlzLmxhbmd1YWdlS2V5Q2FjaGUsIFV0aWxzTGFuZ3VhZ2VDb25zdGFudHMuZGVmYXVsdExhbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb3BlbkRCKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBpbmRleGVkREIub3Blbih0aGlzLmRiTmFtZSwgdGhpcy5kYlZlcnNpb24pO1xuXG4gICAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IChldmVudDogSURCVmVyc2lvbkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRiID0gKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XG5cbiAgICAgICAgaWYgKCFkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKHRoaXMuZGJOYW1lKSkge1xuICAgICAgICAgIGNvbnN0IG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy5kYk5hbWUsIHsga2V5UGF0aDogdGhpcy5pdGVtSW5kZXhCeUtleSB9KTtcblxuICAgICAgICAgIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KHRoaXMuaXRlbUluZGV4QnlLZXksIHRoaXMuaXRlbUluZGV4QnlLZXksIHsgdW5pcXVlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kYiA9IHJlcXVlc3QucmVzdWx0O1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfTtcblxuICAgICAgcmVxdWVzdC5vbmVycm9yID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UoJ0Vycm9yIG9wZW5pbmcgSW5kZXhlZERCOicsIGV2ZW50KTtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgZ2V0T2JqZWN0U3RvcmUoKSB7XG4gICAgaWYgKCF0aGlzLmRiKSB7XG4gICAgICBhd2FpdCB0aGlzLm9wZW5EQigpO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGI/LnRyYW5zYWN0aW9uKFt0aGlzLmRiTmFtZV0sICdyZWFkd3JpdGUnKTtcbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5kYk5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0IExvY2FsU3RvcmFnZSgpOiBhbnkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnN0IE9TID0gZ2V0UGxhdEZyb21Ccm93c2VyKCk7XG5cbiAgICAgICAgaWYgKE9TLmluY2x1ZGVzKCdTYWZhcmknKSAmJiBwYXJzZUZsb2F0KE9TLnNwbGl0KCcgJykucG9wKCkgfHwgJzAnKSA+PSAxNikge1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxTdG9yYWdlRmFrZU9uU2FmYXJpKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5nZXRMb2NhbFN0b3JhZ2VGYWtlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUudHJhY2UoYExvY2FsU3RvcmFnZSBgLCBlcnJvcik7XG4gICAgICByZXR1cm4gdGhpcy5nZXRMb2NhbFN0b3JhZ2VGYWtlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TG9jYWxTdG9yYWdlRmFrZU9uU2FmYXJpKCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIXRoaXMuc3RvcmFnZSAmJiBPYmplY3Qua2V5cyhsb2NhbFN0b3JhZ2UpLmxlbmd0aCkge1xuICAgICAgdGhpcy5zdG9yYWdlID0geyAuLi5sb2NhbFN0b3JhZ2UgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2V0SXRlbTogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICB0aGlzLnN0b3JhZ2Vba2V5XSA9IHZhbHVlO1xuICAgICAgfSxcbiAgICAgIGdldEl0ZW06IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UgfHwgaXNOaWwodGhpcy5zdG9yYWdlW2tleV0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRoaXMuc3RvcmFnZVtrZXldIGFzIHN0cmluZyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZT8uW2tleV07XG4gICAgICB9LFxuICAgICAgcmVtb3ZlSXRlbTogKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnN0b3JhZ2U/LltrZXldO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgfSxcbiAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmFnZSA9IHt9O1xuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TG9jYWxTdG9yYWdlRmFrZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RvcmFnZSkge1xuICAgICAgdGhpcy5zdG9yYWdlID0ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEl0ZW06IChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgdGhpcy5zdG9yYWdlW2tleV0gPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBnZXRJdGVtOiAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZT8uW2tleV07XG4gICAgICB9LFxuICAgICAgcmVtb3ZlSXRlbTogKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnN0b3JhZ2U/LltrZXldO1xuICAgICAgfSxcbiAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmFnZSA9IHt9O1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEdldEFzeW5jPFQgPSBhbnk+KGtleTogc3RyaW5nLCBkZWZhdWx0X3ZhbHVlPzogYW55LCBpc0tleU1ENSA9IGZhbHNlKTogUHJvbWlzZTxUPiB7XG4gICAga2V5ID0gaXNLZXlNRDUgPyBrZXkgOiBtZDUoa2V5KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUPihhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3Qgb2JqZWN0U3RvcmUgPSBhd2FpdCB0aGlzLmdldE9iamVjdFN0b3JlKCk7XG5cbiAgICAgIGlmICghb2JqZWN0U3RvcmUpIHtcblxuICAgICAgICByZXR1cm4gcmVzb2x2ZShkZWZhdWx0X3ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5nZXQoa2V5KTtcblxuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWVzdC5yZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShkZWZhdWx0X3ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNyeXB0KHJlcXVlc3QucmVzdWx0LnZhbHVlKSk7XG5cbiAgICAgICAgaWYgKGRhdGEuZXhwaXJlID09PSB0aGlzLkNBQ0hFX0VYUElSRV9OT05FKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5qc29uKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50TWlsbGlzZWNvbmQgPSAobmV3IERhdGUoKS52YWx1ZU9mKCkgLyAxMDAwKTtcblxuICAgICAgICBpZiAoZGF0YS5leHBpcmUgPCBjdXJyZW50TWlsbGlzZWNvbmQpIHtcblxuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRlZmF1bHRfdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5qc29uKTtcbiAgICAgIH07XG5cbiAgICAgIHJlcXVlc3Qub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgY29uc29sZS50cmFjZShgR2V0IGtleSAke2tleX0gRXJyb3IsIHJldHVybiBkZWZhdWx0IHZhbHVlOiAke2RlZmF1bHRfdmFsdWV9YCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKGRlZmF1bHRfdmFsdWUpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgR2V0PFQgPSBhbnk+KGtleTogc3RyaW5nLCBkZWZhdWx0X3ZhbHVlPzogYW55KTogVCB7IC8vIHN1cHBvcnQgY2hvIG5o4buvbmcgZmlsZSBraMO0bmcgdGjhu4MgaW5qZWN0IFV0aWxzQ2FjaGVcbiAgICBpZiAoIWtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0RGVmYXVsdFZhbHVlQnlTcGVjaWZpY0tleShrZXksIGRlZmF1bHRfdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBjYWNoZWREYXRhID0gdGhpcy5Mb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgaWYgKCFjYWNoZWREYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5HZXREZWZhdWx0VmFsdWVCeVNwZWNpZmljS2V5KGtleSwgZGVmYXVsdF92YWx1ZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNyeXB0KGNhY2hlZERhdGEpKTtcblxuICAgICAgaWYgKGRhdGEuZXhwaXJlID09PSB0aGlzLkNBQ0hFX0VYUElSRV9OT05FKSB7XG4gICAgICAgIHJldHVybiBkYXRhLnZhbHVlID8/IGRlZmF1bHRfdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50TWlsbGlzZWNvbmQgPSAobmV3IERhdGUoKS52YWx1ZU9mKCkgLyAxMDAwKTtcblxuICAgICAgaWYgKGRhdGEuZXhwaXJlIDwgY3VycmVudE1pbGxpc2Vjb25kKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkdldERlZmF1bHRWYWx1ZUJ5U3BlY2lmaWNLZXkoa2V5LCBkZWZhdWx0X3ZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGEudmFsdWU7XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS50cmFjZShlcnJvcik7XG4gICAgICBjb25zb2xlLnRyYWNlKGBHZXQga2V5ICR7a2V5fSBFcnJvciwgcmV0dXJuIGRlZmF1bHQgdmFsdWU6ICR7ZGVmYXVsdF92YWx1ZX1gLCBlcnJvcik7XG5cbiAgICAgIHJldHVybiB0aGlzLkdldERlZmF1bHRWYWx1ZUJ5U3BlY2lmaWNLZXkoa2V5LCBkZWZhdWx0X3ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEdldERlZmF1bHRWYWx1ZUJ5U3BlY2lmaWNLZXkoa2V5OiBzdHJpbmcsIGRlZmF1bHRfdmFsdWU6IGFueSkge1xuICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlO1xuXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIFNldEFzeW5jPFQgPSBhbnk+KGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVUaW1lQnlTZWNvbmQgPSB0aGlzLkNBQ0hFX0VYUElSRV9USU1FX0RFRkFVTFQsIGlzS2V5TUQ1ID0gZmFsc2UpOiBQcm9taXNlPFQ+IHsgLy8gc3VwcG9ydCBpbmplY3QgVXRpbHNDYWNoZVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUPihhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3Qgb2JqZWN0U3RvcmUgPSBhd2FpdCB0aGlzLmdldE9iamVjdFN0b3JlKCk7XG5cbiAgICAgIGtleSA9IGlzS2V5TUQ1ID8ga2V5IDogbWQ1KGtleSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjdXJyZW50TWlsbGlzZWNvbmQgPSBleHBpcmVUaW1lQnlTZWNvbmQgPT09IHRoaXMuQ0FDSEVfRVhQSVJFX05PTkUgPyB0aGlzLkNBQ0hFX0VYUElSRV9OT05FIDogKG5ldyBEYXRlKCkudmFsdWVPZigpIC8gMTAwMCkgKyBleHBpcmVUaW1lQnlTZWNvbmQ7XG4gICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgICAgICB2YWx1ZTogZW5jcnlwdChKU09OLnN0cmluZ2lmeSh7IGpzb246IHZhbHVlLCBleHBpcmU6IGN1cnJlbnRNaWxsaXNlY29uZCB9KSksXG4gICAgICAgIH07XG4gICAgICAgIGRhdGFbdGhpcy5pdGVtSW5kZXhCeUtleV0gPSBrZXk7XG5cbiAgICAgICAgaWYgKCFvYmplY3RTdG9yZSkge1xuICAgICAgICAgIGNvbnNvbGUudHJhY2UoYENhbiBub3Qgb3BlbiBvYmplY3Qgc3RvcmVgKTtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh7IGtleSwgbWVzc2FnZUVycm9yOiAnQ2FuIG5vdCBvcGVuIG9iamVjdCBzdG9yZScgfSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBvYmplY3RTdG9yZT8ucHV0KGRhdGEpO1xuICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgU2V0IGtleSAke2tleX0gU3VjY2Vzc2ApO1xuICAgICAgICAgIHJlc29sdmUocmVxdWVzdC5yZXN1bHQgYXMgYW55KTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLnRyYWNlKGBTZXQga2V5ICR7a2V5fSBFcnJvcmApO1xuICAgICAgICAgIHJlc29sdmUoeyBrZXksIG1lc3NhZ2VFcnJvcjogZ2V0KGVycm9yLCAnbWVzc2FnZScpIH0gYXMgYW55KTtcbiAgICAgICAgfTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS50cmFjZShgU2V0IGtleSAke2tleX0gRXJyb3JgKTtcbiAgICAgICAgcmVzb2x2ZSh7IGtleSwgbWVzc2FnZUVycm9yOiBnZXQoZXJyb3IsICdtZXNzYWdlJykgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBzdGF0aWMgU2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVUaW1lQnlTZWNvbmQgPSB0aGlzLkNBQ0hFX0VYUElSRV9USU1FX0RFRkFVTFQpOiBib29sZWFuIHsgLy8gc3VwcG9ydCBjaG8gbmjhu69uZyBmaWxlIGtow7RuZyBpbmplY3QgVXRpbHNDYWNoZVxuICAgIGNvbnN0IGN1cnJlbnRNaWxsaXNlY29uZCA9IGV4cGlyZVRpbWVCeVNlY29uZCA9PT0gdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSA/IHRoaXMuQ0FDSEVfRVhQSVJFX05PTkUgOiAobmV3IERhdGUoKS52YWx1ZU9mKCkgLyAxMDAwKSArIGV4cGlyZVRpbWVCeVNlY29uZDtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZXhwaXJlOiBjdXJyZW50TWlsbGlzZWNvbmRcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuTG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KGRhdGEpKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS50cmFjZShgU2V0IGtleSAke2tleX0gRXJyb3JgLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBDbGVhckFzeW5jKGtleTogc3RyaW5nLCBpc01ENSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBvYmplY3RTdG9yZSA9IGF3YWl0IHRoaXMuZ2V0T2JqZWN0U3RvcmUoKTtcblxuICAgICAgaWYgKCFvYmplY3RTdG9yZSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmRlbGV0ZShpc01ENSA/IGtleSA6IG1kNShrZXkpKTtcblxuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoeyBjbGVhclN1Y2Nlc3M6IHRydWUgfSBhcyBhbnkpO1xuICAgICAgfTtcbiAgICAgIHJlcXVlc3Qub25lcnJvciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgY29uc29sZS50cmFjZSgnRXJyb3IgZGVsZXRpbmcgS2V5OicsIGdldCgoZXZlbnQudGFyZ2V0IGFzIElEQlJlcXVlc3QpLmVycm9yLCAnbWVzc2FnZScpKTtcbiAgICAgICAgcmVzb2x2ZSh7IG1lc3NhZ2VFcnJvcjogZ2V0KChldmVudC50YXJnZXQgYXMgSURCUmVxdWVzdCkuZXJyb3IsICdtZXNzYWdlJyksIGNsZWFyU3VjY2VzczogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBDbGVhcihrZXk6IHN0cmluZykge1xuICAgIGlmIChrZXkuaW5jbHVkZXMoJ2tjLWNhbGxiYWNrLScpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuTG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgQ2xlYXJBbGxBc3luYygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdFN0b3JlID0gYXdhaXQgdGhpcy5nZXRPYmplY3RTdG9yZSgpO1xuXG4gICAgICBpZiAoIW9iamVjdFN0b3JlKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5jbGVhcigpO1xuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjbGVhciBhbGwgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIHJlc29sdmUoeyBjbGVhclN1Y2Nlc3M6IHRydWUgfSBhcyBhbnkpO1xuICAgICAgfTtcblxuICAgICAgcmVxdWVzdC5vbmVycm9yID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLnRyYWNlKCdFcnJvciBkZWxldGluZyBrZXk6JywgZ2V0KChldmVudC50YXJnZXQgYXMgSURCUmVxdWVzdCkuZXJyb3IsICdtZXNzYWdlJykpO1xuICAgICAgICByZXNvbHZlKHsgbWVzc2FnZUVycm9yOiBnZXQoKGV2ZW50LnRhcmdldCBhcyBJREJSZXF1ZXN0KS5lcnJvciwgJ21lc3NhZ2UnKSwgY2xlYXJTdWNjZXNzOiBmYWxzZSB9IGFzIGFueSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIENsZWFyQWxsKCkge1xuICAgIGlmIChpc0VtYmVkRnJhbWUoKSkge1xuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgdHlwZTogdGhpcy50eXBlS2V5Q2xlYXJMb2NhbFN0b3JhZ2UsXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgaWRFdmVudDogdGhpcy5pZFNlcnZpY2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5Qb3N0TWVzc2FnZVRvUGFyZW50KGRhdGEpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gWy4uLnRoaXMubGlzdEtleUtlZXBXaGVuQ2xlYXJBTGxsXTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLkxvY2FsU3RvcmFnZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGtleS5pbmNsdWRlcygna2MtY2FsbGJhY2stJykpIHtcbiAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9yZXMgPSB0aGlzLkdldERhdGFCeUtleXMoQXJyYXkuZnJvbShrZXlzKSk7XG5cbiAgICB0aGlzLkxvY2FsU3RvcmFnZS5jbGVhcigpO1xuXG4gICAgdGhpcy5TZXREYXRhQnlLZXkoc3RvcmVzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIEdldERhdGFCeUtleXMoa2V5czogQXJyYXk8c3RyaW5nPikge1xuICAgIGNvbnN0IHN0b3JlcyA9IG5ldyBNYXAoKTtcblxuICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2tjLWNhbGxiYWNrLScpKSB7XG4gICAgICAgIHN0b3Jlcy5zZXQoa2V5LCB0aGlzLkxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHN0b3Jlcy5zZXQoa2V5LCB0aGlzLkdldChrZXkpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzdG9yZXM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBTZXREYXRhQnlLZXkoc3RvcmVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XG4gICAgc3RvcmVzLmZvckVhY2goKHZhbHVlOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKCdrYy1jYWxsYmFjay0nKSkge1xuICAgICAgICB0aGlzLkxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChrZXkgPT09IHRoaXMubGFuZ3VhZ2VLZXlDYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMYW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuU2V0KGtleSwgdmFsdWUsIHRoaXMuQ0FDSEVfRVhQSVJFX05PTkUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWxldGVLZXlTdGFydFdpdGhBc3luYyhrZXlDYWNoZVN0YXJ0V2l0aDogc3RyaW5nLCBpc0tleU1ENSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBvYmplY3RTdG9yZSA9IGF3YWl0IHRoaXMuZ2V0T2JqZWN0U3RvcmUoKTtcblxuICAgICAgaWYgKCFvYmplY3RTdG9yZSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh7fSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEzhuqV5IHThuqV0IGPhuqMgY8OhYyBrZXlzIHThu6sgaW5kZXhcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5nZXRBbGwoKTtcblxuICAgICAga2V5Q2FjaGVTdGFydFdpdGggPSBpc0tleU1ENSA/IGtleUNhY2hlU3RhcnRXaXRoIDogbWQ1KGtleUNhY2hlU3RhcnRXaXRoKTtcblxuXG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGUudGFyZ2V0LnJlc3VsdCBhcyBBcnJheTxhbnk+O1xuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGEuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgIGlmIChvYmpbdGhpcy5pdGVtSW5kZXhCeUtleV0uc3RhcnRzV2l0aChrZXlDYWNoZVN0YXJ0V2l0aCkpIHtcbiAgICAgICAgICAgIHRoaXMuQ2xlYXJBc3luYyhvYmpbdGhpcy5pdGVtSW5kZXhCeUtleV0sIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmUoe30pO1xuICAgICAgfTtcblxuICAgICAgcmVxdWVzdC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh7fSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWxldGVLZXlTdGFydFdpdGgoa2V5Q2FjaGU6IHN0cmluZywgaXNNRDUgPSBmYWxzZSkge1xuICAgIGtleUNhY2hlID0gaXNNRDUgPyBtZDUoa2V5Q2FjaGUpIDoga2V5Q2FjaGU7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuTG9jYWxTdG9yYWdlKTtcblxuICAgIGlmICgha2V5cyB8fCAha2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChrZXlDYWNoZSkpIHtcbiAgICAgICAgdGhpcy5DbGVhcihrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWxldGVEYXRhYmFzZUluZGV4REIoZGJOYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBkYk5hbWUgPSAoZGJOYW1lIHx8IHRoaXMuZGJOYW1lKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFtZSBhcyBzdHJpbmcpO1xuXG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgY29uc29sZS50cmFjZSgnRGF0YWJhc2UgZGVsZXRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgcmVzb2x2ZSh7IGRlbGV0ZVN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UoJ0Vycm9yIGRlbGV0aW5nIGRhdGFiYXNlOicsIChldmVudC50YXJnZXQgYXMgSURCUmVxdWVzdCkuZXJyb3IpO1xuICAgICAgICByZXNvbHZlKHsgbWVzc2FnZUVycm9yOiBnZXQoKGV2ZW50LnRhcmdldCBhcyBJREJSZXF1ZXN0KS5lcnJvciwgJ21lc3NhZ2UnKSwgZGVsZXRlU3VjY2VzczogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfTtcblxuICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UoJ0RlbGV0ZSByZXF1ZXN0IGlzIGJsb2NrZWQnKTtcbiAgICAgICAgcmVzb2x2ZSh7IG1lc3NhZ2VFcnJvcjogJ0RlbGV0ZSByZXF1ZXN0IGlzIGJsb2NrZWQnLCBkZWxldGVTdWNjZXNzOiBmYWxzZSB9IGFzIGFueSk7XG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxufVxuIl19
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsdURBQXVEO0FBR3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sT0FBTyxVQUFVO0lBQ2QsTUFBTSxDQUFVLHlCQUF5QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsTUFBTSxDQUFVLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBVSxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbkMsTUFBTSxDQUFDLHdCQUF3QixHQUFHLG1DQUFtQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztJQUNuRCxNQUFNLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsT0FBTyxDQUE2QjtJQUMzQyxNQUFNLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQztJQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixNQUFNLENBQUMsU0FBUyxHQUFH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LENBQUMsQ0FBQztZQUVGLE9BQU8sQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFO2dCQUN2QixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxFQUFFLFlBQVksRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFTLENBQUMsQ0FBQztZQUN0RixDQUFDLENBQUE7UUFFSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmltcG9ydCB7IFRZUEVfTEFOR1VBR0VfU1VQUE9SVCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgVXRpbHNDb21tdW5pY2F0ZU1pY3JvIH0gZnJvbSAnLi9jb21tdW5pY2F0ZS1taWNybyc7XG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0LCBtZDUgfSBmcm9tICcuL2NyeXB0byc7XG5pbXBvcnQgeyBnZXRQbGF0RnJvbUJyb3dzZXIgfSBmcm9tICcuL2RvbSc7XG5pbXBvcnQgeyBpc0VtYmVkRnJhbWUgfSBmcm9tICcuL2Z1bmN0aW9uLWNoZWNrLWVtYmVkLWZyYW1lJztcbmltcG9ydCB7IGdldCwgaXNOaWwgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgVXRpbHNMYW5ndWFnZUNvbnN0YW50cyB9IGZyb20gJy4vbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJy4vdXVpZCc7XG5cbmV4cG9ydCBjbGFzcyBVdGlsc0NhY2hlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQUNIRV9FWFBJUkVfVElNRV9ERUZBVUxUID0gNSAqIDYwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hFX0VYUElSRV9OT05FID0gLTE7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaWRTZXJ2aWNlID0gdXVpZCgpO1xuICBwdWJsaWMgc3RhdGljIHR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSA9ICdMSUJTX1VJX0NMRUFSX0xPQ0FMX1NUT1JBR0VfRVZFTlQnO1xuXG4gIHByaXZhdGUgc3RhdGljIGxhbmd1YWdlS2V5Q2FjaGUgPSAnU1IzeFFLeEhnZmZpQ2V2UFFScmFsZyc7XG4gIHByaXZhdGUgc3RhdGljIGxpc3RLZXlLZWVwV2hlbkNsZWFyQUxsbCA9IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGRFdmVudD86IGJvb2xlYW47XG4gIHByaXZhdGUgc3RhdGljIHN0b3JhZ2U6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuICBwcml2YXRlIHN0YXRpYyBkYk5hbWUgPSAnbGlicy11aS1jYWNoZSc7XG4gIHByaXZhdGUgc3RhdGljIGl0ZW1JbmRleEJ5S2V5ID0gJ2tleSc7XG4gIHByaXZhdGUgc3RhdGljIGRiVmVyc2lvbiA9IDE7XG4gIHByaXZhdGUgc3RhdGljIGRiOiBJREJEYXRhYmFzZSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdChjb25maWc6IHsgaW5kZXhlZERCTmFtZT86IHN0cmluZywgbGFuZ3VhZ2VLZXlDYWNoZT86IHN0cmluZywgdHlwZUtleUNsZWFyTG9jYWxTdG9yYWdlPzogc3RyaW5nLCBsaXN0S2V5S2VlcFdoZW5DbGVhckFsbD86IEFycmF5PHN0cmluZz4gfSkge1xuICAgIGlmICh0aGlzLmluaXRkRXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0ZEV2ZW50ID0gdHJ1ZTtcbiAgICBpZiAoY29uZmlnLmluZGV4ZWREQk5hbWUpIHtcbiAgICAgIHRoaXMuZGJOYW1lID0gY29uZmlnLmluZGV4ZWREQk5hbWU7XG4gICAgfVxuICAgIGlmIChjb25maWcudHlwZUtleUNsZWFyTG9jYWxTdG9yYWdlKSB7XG4gICAgICB0aGlzLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSA9IGNvbmZpZy50eXBlS2V5Q2xlYXJMb2NhbFN0b3JhZ2U7XG4gICAgfVxuICAgIGlmIChjb25maWcubGlzdEtleUtlZXBXaGVuQ2xlYXJBbGwpIHtcbiAgICAgIHRoaXMubGlzdEtleUtlZXBXaGVuQ2xlYXJBTGxsID0gY29uZmlnLmxpc3RLZXlLZWVwV2hlbkNsZWFyQWxsO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmxhbmd1YWdlS2V5Q2FjaGUpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VLZXlDYWNoZSA9IGNvbmZpZy5sYW5ndWFnZUtleUNhY2hlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0TGFuZyhsYW5nOiBUWVBFX0xBTkdVQUdFX1NVUFBPUlQpIHtcbiAgICBpZiAoIVV0aWxzTGFuZ3VhZ2VDb25zdGFudHMuaXNTdXBwb3J0ZWQobGFuZykpIHtcbiAgICAgIHRocm93IEVycm9yKGBMYW5ndWFnZSBub3Qgc3VwcG9ydCAke2xhbmd9YCk7XG4gICAgfVxuICAgIHRoaXMuU2V0KHRoaXMubGFuZ3VhZ2VLZXlDYWNoZSwgbGFuZywgdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldExhbmcoKTogVFlQRV9MQU5HVUFHRV9TVVBQT1JUIHtcbiAgICByZXR1cm4gdGhpcy5HZXQodGhpcy5sYW5ndWFnZUtleUNhY2hlLCBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzLmRlZmF1bHRMYW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9wZW5EQigpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4odGhpcy5kYk5hbWUsIHRoaXMuZGJWZXJzaW9uKTtcblxuICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSAoZXZlbnQ6IElEQlZlcnNpb25DaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBkYiA9IChldmVudC50YXJnZXQgYXMgSURCT3BlbkRCUmVxdWVzdCkucmVzdWx0O1xuXG4gICAgICAgIGlmICghZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyh0aGlzLmRiTmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMuZGJOYW1lLCB7IGtleVBhdGg6IHRoaXMuaXRlbUluZGV4QnlLZXkgfSk7XG5cbiAgICAgICAgICBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCh0aGlzLml0ZW1JbmRleEJ5S2V5LCB0aGlzLml0ZW1JbmRleEJ5S2V5LCB7IHVuaXF1ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGIgPSByZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH07XG5cbiAgICAgIHJlcXVlc3Qub25lcnJvciA9IChldmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLnRyYWNlKCdFcnJvciBvcGVuaW5nIEluZGV4ZWREQjonLCBldmVudCk7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGdldE9iamVjdFN0b3JlKCkge1xuICAgIGlmICghdGhpcy5kYikge1xuICAgICAgYXdhaXQgdGhpcy5vcGVuREIoKTtcbiAgICB9XG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRiPy50cmFuc2FjdGlvbihbdGhpcy5kYk5hbWVdLCAncmVhZHdyaXRlJyk7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZGJOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldCBMb2NhbFN0b3JhZ2UoKTogYW55IHtcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCBPUyA9IGdldFBsYXRGcm9tQnJvd3NlcigpO1xuXG4gICAgICAgIGlmIChPUy5pbmNsdWRlcygnU2FmYXJpJykgJiYgcGFyc2VGbG9hdChPUy5zcGxpdCgnICcpLnBvcCgpIHx8ICcwJykgPj0gMTYpIHtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmdldExvY2FsU3RvcmFnZUZha2VPblNhZmFyaSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxTdG9yYWdlRmFrZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLnRyYWNlKGBMb2NhbFN0b3JhZ2UgYCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxTdG9yYWdlRmFrZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldExvY2FsU3RvcmFnZUZha2VPblNhZmFyaSgpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnICYmICF0aGlzLnN0b3JhZ2UgJiYgT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RvcmFnZSA9IHsgLi4ubG9jYWxTdG9yYWdlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEl0ZW06IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlW2tleV0gPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBnZXRJdGVtOiAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5zdG9yYWdlIHx8IGlzTmlsKHRoaXMuc3RvcmFnZVtrZXldKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLnN0b3JhZ2Vba2V5XSBhcyBzdHJpbmcpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2U/LltrZXldO1xuICAgICAgfSxcbiAgICAgIHJlbW92ZUl0ZW06IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy5zdG9yYWdlPy5ba2V5XTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgIH0sXG4gICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2UgPSB7fTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldExvY2FsU3RvcmFnZUZha2UoKSB7XG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHRoaXMuc3RvcmFnZSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzZXRJdGVtOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmFnZVtrZXldID0gdmFsdWU7XG4gICAgICB9LFxuICAgICAgZ2V0SXRlbTogKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2U/LltrZXldO1xuICAgICAgfSxcbiAgICAgIHJlbW92ZUl0ZW06IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy5zdG9yYWdlPy5ba2V5XTtcbiAgICAgIH0sXG4gICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2UgPSB7fTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBHZXRBc3luYzxUID0gYW55PihrZXk6IHN0cmluZywgZGVmYXVsdF92YWx1ZT86IGFueSwgaXNLZXlNRDUgPSBmYWxzZSk6IFByb21pc2U8VD4ge1xuICAgIGtleSA9IGlzS2V5TUQ1ID8ga2V5IDogbWQ1KGtleSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8VD4oYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdFN0b3JlID0gYXdhaXQgdGhpcy5nZXRPYmplY3RTdG9yZSgpO1xuXG4gICAgICBpZiAoIW9iamVjdFN0b3JlKSB7XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmUoZGVmYXVsdF92YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuZ2V0KGtleSk7XG5cbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXJlcXVlc3QucmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGVmYXVsdF92YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGVjcnlwdChyZXF1ZXN0LnJlc3VsdC52YWx1ZSkpO1xuXG4gICAgICAgIGlmIChkYXRhLmV4cGlyZSA9PT0gdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSkge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGEuanNvbik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudE1pbGxpc2Vjb25kID0gKG5ldyBEYXRlKCkudmFsdWVPZigpIC8gMTAwMCk7XG5cbiAgICAgICAgaWYgKGRhdGEuZXhwaXJlIDwgY3VycmVudE1pbGxpc2Vjb25kKSB7XG5cbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShkZWZhdWx0X3ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNvbHZlKGRhdGEuanNvbik7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UoYEdldCBrZXkgJHtrZXl9IEVycm9yLCByZXR1cm4gZGVmYXVsdCB2YWx1ZTogJHtkZWZhdWx0X3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShkZWZhdWx0X3ZhbHVlKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEdldDxUID0gYW55PihrZXk6IHN0cmluZywgZGVmYXVsdF92YWx1ZT86IGFueSk6IFQgeyAvLyBzdXBwb3J0IGNobyBuaOG7r25nIGZpbGUga2jDtG5nIHRo4buDIGluamVjdCBVdGlsc0NhY2hlXG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLkdldERlZmF1bHRWYWx1ZUJ5U3BlY2lmaWNLZXkoa2V5LCBkZWZhdWx0X3ZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgY2FjaGVkRGF0YSA9IHRoaXMuTG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgIGlmICghY2FjaGVkRGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0RGVmYXVsdFZhbHVlQnlTcGVjaWZpY0tleShrZXksIGRlZmF1bHRfdmFsdWUpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGVjcnlwdChjYWNoZWREYXRhKSk7XG5cbiAgICAgIGlmIChkYXRhLmV4cGlyZSA9PT0gdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSkge1xuICAgICAgICByZXR1cm4gZGF0YS52YWx1ZSA/PyBkZWZhdWx0X3ZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE1pbGxpc2Vjb25kID0gKG5ldyBEYXRlKCkudmFsdWVPZigpIC8gMTAwMCk7XG5cbiAgICAgIGlmIChkYXRhLmV4cGlyZSA8IGN1cnJlbnRNaWxsaXNlY29uZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5HZXREZWZhdWx0VmFsdWVCeVNwZWNpZmljS2V5KGtleSwgZGVmYXVsdF92YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhLnZhbHVlO1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUudHJhY2UoYEdldCBrZXkgJHtrZXl9IEVycm9yLCByZXR1cm4gZGVmYXVsdCB2YWx1ZTogJHtkZWZhdWx0X3ZhbHVlfWAsIGVycm9yKTtcblxuICAgICAgcmV0dXJuIHRoaXMuR2V0RGVmYXVsdFZhbHVlQnlTcGVjaWZpY0tleShrZXksIGRlZmF1bHRfdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgR2V0RGVmYXVsdFZhbHVlQnlTcGVjaWZpY0tleShrZXk6IHN0cmluZywgZGVmYXVsdF92YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIGRlZmF1bHRfdmFsdWU7XG5cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgU2V0QXN5bmM8VCA9IGFueT4oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGV4cGlyZVRpbWVCeVNlY29uZCA9IHRoaXMuQ0FDSEVfRVhQSVJFX1RJTUVfREVGQVVMVCwgaXNLZXlNRDUgPSBmYWxzZSk6IFByb21pc2U8VD4geyAvLyBzdXBwb3J0IGluamVjdCBVdGlsc0NhY2hlXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBvYmplY3RTdG9yZSA9IGF3YWl0IHRoaXMuZ2V0T2JqZWN0U3RvcmUoKTtcblxuICAgICAga2V5ID0gaXNLZXlNRDUgPyBrZXkgOiBtZDUoa2V5KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNaWxsaXNlY29uZCA9IGV4cGlyZVRpbWVCeVNlY29uZCA9PT0gdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSA/IHRoaXMuQ0FDSEVfRVhQSVJFX05PTkUgOiAobmV3IERhdGUoKS52YWx1ZU9mKCkgLyAxMDAwKSArIGV4cGlyZVRpbWVCeVNlY29uZDtcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgICAgIHZhbHVlOiBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHsganNvbjogdmFsdWUsIGV4cGlyZTogY3VycmVudE1pbGxpc2Vjb25kIH0pKSxcbiAgICAgICAgfTtcbiAgICAgICAgZGF0YVt0aGlzLml0ZW1JbmRleEJ5S2V5XSA9IGtleTtcblxuICAgICAgICBpZiAoIW9iamVjdFN0b3JlKSB7XG4gICAgICAgICAgY29uc29sZS50cmFjZShgQ2FuIG5vdCBvcGVuIG9iamVjdCBzdG9yZWApO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHsga2V5LCBtZXNzYWdlRXJyb3I6ICdDYW4gbm90IG9wZW4gb2JqZWN0IHN0b3JlJyB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG9iamVjdFN0b3JlPy5wdXQoZGF0YSk7XG4gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBTZXQga2V5ICR7a2V5fSBTdWNjZXNzYCk7XG4gICAgICAgICAgcmVzb2x2ZShyZXF1ZXN0LnJlc3VsdCBhcyBhbnkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUudHJhY2UoYFNldCBrZXkgJHtrZXl9IEVycm9yYCk7XG4gICAgICAgICAgcmVzb2x2ZSh7IGtleSwgbWVzc2FnZUVycm9yOiBnZXQoZXJyb3IsICdtZXNzYWdlJykgfSBhcyBhbnkpO1xuICAgICAgICB9O1xuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLnRyYWNlKGBTZXQga2V5ICR7a2V5fSBFcnJvcmApO1xuICAgICAgICByZXNvbHZlKHsga2V5LCBtZXNzYWdlRXJyb3I6IGdldChlcnJvciwgJ21lc3NhZ2UnKSB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG4gIHN0YXRpYyBTZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGV4cGlyZVRpbWVCeVNlY29uZCA9IHRoaXMuQ0FDSEVfRVhQSVJFX1RJTUVfREVGQVVMVCk6IGJvb2xlYW4geyAvLyBzdXBwb3J0IGNobyBuaOG7r25nIGZpbGUga2jDtG5nIGluamVjdCBVdGlsc0NhY2hlXG4gICAgY29uc3QgY3VycmVudE1pbGxpc2Vjb25kID0gZXhwaXJlVGltZUJ5U2Vjb25kID09PSB0aGlzLkNBQ0hFX0VYUElSRV9OT05FID8gdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSA6IChuZXcgRGF0ZSgpLnZhbHVlT2YoKSAvIDEwMDApICsgZXhwaXJlVGltZUJ5U2Vjb25kO1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBleHBpcmU6IGN1cnJlbnRNaWxsaXNlY29uZFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5Mb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLnRyYWNlKGBTZXQga2V5ICR7a2V5fSBFcnJvcmAsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIENsZWFyQXN5bmMoa2V5OiBzdHJpbmcsIGlzTUQ1ID0gZmFsc2UpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdFN0b3JlID0gYXdhaXQgdGhpcy5nZXRPYmplY3RTdG9yZSgpO1xuXG4gICAgICBpZiAoIW9iamVjdFN0b3JlKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuZGVsZXRlKGlzTUQ1ID8ga2V5IDogbWQ1KGtleSkpO1xuXG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7IGNsZWFyU3VjY2VzczogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICB9O1xuICAgICAgcmVxdWVzdC5vbmVycm9yID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLnRyYWNlKCdFcnJvciBkZWxldGluZyBLZXk6JywgZ2V0KChldmVudC50YXJnZXQgYXMgSURCUmVxdWVzdCkuZXJyb3IsICdtZXNzYWdlJykpO1xuICAgICAgICByZXNvbHZlKHsgbWVzc2FnZUVycm9yOiBnZXQoKGV2ZW50LnRhcmdldCBhcyBJREJSZXF1ZXN0KS5lcnJvciwgJ21lc3NhZ2UnKSwgY2xlYXJTdWNjZXNzOiBmYWxzZSB9IGFzIGFueSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIENsZWFyKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGtleS5pbmNsdWRlcygna2MtY2FsbGJhY2stJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5Mb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBDbGVhckFsbEFzeW5jKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3Qgb2JqZWN0U3RvcmUgPSBhd2FpdCB0aGlzLmdldE9iamVjdFN0b3JlKCk7XG5cbiAgICAgIGlmICghb2JqZWN0U3RvcmUpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmNsZWFyKCk7XG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NsZWFyIGFsbCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgcmVzb2x2ZSh7IGNsZWFyU3VjY2VzczogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UoJ0Vycm9yIGRlbGV0aW5nIGtleTonLCBnZXQoKGV2ZW50LnRhcmdldCBhcyBJREJSZXF1ZXN0KS5lcnJvciwgJ21lc3NhZ2UnKSk7XG4gICAgICAgIHJlc29sdmUoeyBtZXNzYWdlRXJyb3I6IGdldCgoZXZlbnQudGFyZ2V0IGFzIElEQlJlcXVlc3QpLmVycm9yLCAnbWVzc2FnZScpLCBjbGVhclN1Y2Nlc3M6IGZhbHNlIH0gYXMgYW55KTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgQ2xlYXJBbGwoKSB7XG4gICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICB0eXBlOiB0aGlzLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSxcbiAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICBpZEV2ZW50OiB0aGlzLmlkU2VydmljZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBbLi4udGhpcy5saXN0S2V5S2VlcFdoZW5DbGVhckFMbGxdO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuTG9jYWxTdG9yYWdlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKCdrYy1jYWxsYmFjay0nKSkge1xuICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHN0b3JlcyA9IHRoaXMuR2V0RGF0YUJ5S2V5cyhBcnJheS5mcm9tKGtleXMpKTtcblxuICAgIHRoaXMuTG9jYWxTdG9yYWdlLmNsZWFyKCk7XG5cbiAgICB0aGlzLlNldERhdGFCeUtleShzdG9yZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgR2V0RGF0YUJ5S2V5cyhrZXlzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgY29uc3Qgc3RvcmVzID0gbmV3IE1hcCgpO1xuXG4gICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGtleS5pbmNsdWRlcygna2MtY2FsbGJhY2stJykpIHtcbiAgICAgICAgc3RvcmVzLnNldChrZXksIHRoaXMuTG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3RvcmVzLnNldChrZXksIHRoaXMuR2V0KGtleSkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN0b3JlcztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIFNldERhdGFCeUtleShzdG9yZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcbiAgICBzdG9yZXMuZm9yRWFjaCgodmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2tjLWNhbGxiYWNrLScpKSB7XG4gICAgICAgIHRoaXMuTG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGtleSA9PT0gdGhpcy5sYW5ndWFnZUtleUNhY2hlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExhbmcodmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5TZXQoa2V5LCB2YWx1ZSwgdGhpcy5DQUNIRV9FWFBJUkVfTk9ORSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlbGV0ZUtleVN0YXJ0V2l0aEFzeW5jKGtleUNhY2hlU3RhcnRXaXRoOiBzdHJpbmcsIGlzS2V5TUQ1ID0gZmFsc2UpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdFN0b3JlID0gYXdhaXQgdGhpcy5nZXRPYmplY3RTdG9yZSgpO1xuXG4gICAgICBpZiAoIW9iamVjdFN0b3JlKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHt9KTtcbiAgICAgIH1cblxuICAgICAgLy8gTOG6pXkgdOG6pXQgY+G6oyBjw6FjIGtleXMgdOG7qyBpbmRleFxuICAgICAgY29uc3QgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldEFsbCgpO1xuXG4gICAgICBrZXlDYWNoZVN0YXJ0V2l0aCA9IGlzS2V5TUQ1ID8ga2V5Q2FjaGVTdGFydFdpdGggOiBtZDUoa2V5Q2FjaGVTdGFydFdpdGgpO1xuXG5cbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gZS50YXJnZXQucmVzdWx0IGFzIEFycmF5PGFueT47XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoe30pO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5mb3JFYWNoKG9iaiA9PiB7XG4gICAgICAgICAgaWYgKG9ialt0aGlzLml0ZW1JbmRleEJ5S2V5XS5zdGFydHNXaXRoKGtleUNhY2hlU3RhcnRXaXRoKSkge1xuICAgICAgICAgICAgdGhpcy5DbGVhckFzeW5jKG9ialt0aGlzLml0ZW1JbmRleEJ5S2V5XSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzb2x2ZSh7fSk7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHt9KTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlbGV0ZUtleVN0YXJ0V2l0aChrZXlDYWNoZTogc3RyaW5nLCBpc01ENSA9IGZhbHNlKSB7XG4gICAga2V5Q2FjaGUgPSBpc01ENSA/IG1kNShrZXlDYWNoZSkgOiBrZXlDYWNoZTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5Mb2NhbFN0b3JhZ2UpO1xuXG4gICAgaWYgKCFrZXlzIHx8ICFrZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGtleUNhY2hlKSkge1xuICAgICAgICB0aGlzLkNsZWFyKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlbGV0ZURhdGFiYXNlSW5kZXhEQihkYk5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGRiTmFtZSA9IChkYk5hbWUgfHwgdGhpcy5kYk5hbWUpIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJOYW1lIGFzIHN0cmluZyk7XG5cbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKCkgPT4ge1xuICAgICAgICBjb25zb2xlLnRyYWNlKCdEYXRhYmFzZSBkZWxldGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICByZXNvbHZlKHsgZGVsZXRlU3VjY2VzczogdHJ1ZSB9KTtcbiAgICAgIH07XG5cbiAgICAgIHJlcXVlc3Qub25lcnJvciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgY29uc29sZS50cmFjZSgnRXJyb3IgZGVsZXRpbmcgZGF0YWJhc2U6JywgKGV2ZW50LnRhcmdldCBhcyBJREJSZXF1ZXN0KS5lcnJvcik7XG4gICAgICAgIHJlc29sdmUoeyBtZXNzYWdlRXJyb3I6IGdldCgoZXZlbnQudGFyZ2V0IGFzIElEQlJlcXVlc3QpLmVycm9yLCAnbWVzc2FnZScpLCBkZWxldGVTdWNjZXNzOiBmYWxzZSB9IGFzIGFueSk7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc29sZS50cmFjZSgnRGVsZXRlIHJlcXVlc3QgaXMgYmxvY2tlZCcpO1xuICAgICAgICByZXNvbHZlKHsgbWVzc2FnZUVycm9yOiAnRGVsZXRlIHJlcXVlc3QgaXMgYmxvY2tlZCcsIGRlbGV0ZVN1Y2Nlc3M6IGZhbHNlIH0gYXMgYW55KTtcbiAgICAgIH1cblxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/esm2022/date.mjs CHANGED
@@ -55,7 +55,7 @@ export const getDayjs = (config) => {
55
55
  if (formatOfDate) {
56
56
  return dayjs(date, formatOfDate).utc();
57
57
  }
58
- const dateInputIsUTC = (typeof date === 'object' && date.isUTC()) || (typeof date === 'string' && date.includes('Z'));
58
+ const dateInputIsUTC = (dayjs.isDayjs(date) && date.isUTC()) || (typeof date === 'string' && date.includes('Z'));
59
59
  if (dateInputIsUTC) {
60
60
  return dayjs(date);
61
61
  }
@@ -186,4 +186,4 @@ const getFormatData = (type, lang) => {
186
186
  return 'HH:mm A';
187
187
  }
188
188
  };
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDL0IsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsYUFBYSxFQUFFLEVBQUU7SUFDL0QsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUMzQixLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUE7QUFHRCxJQUFJLGtCQUFrQixHQUEwQyxTQUFTLENBQUM7QUFHMUUsTUFBTSxDQUFDLE1BQU0sd0JB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QUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDO1lBRUQsT0FBTyxhQUFhLENBQUM7UUFFdkIsS0FBSyxRQUFRO1lBQ1gsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsQ0FBQztZQUVELE9BQU8sbUJBQW1CLENBQUM7UUFFN0IsS0FBSyxJQUFJO1lBQ1AsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLENBQUM7WUFFRCxPQUFPLFdBQVcsQ0FBQztRQUVyQixLQUFLLFNBQVM7WUFDWixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxDQUFDO1lBRUQsT0FBTyxzQkFBc0IsQ0FBQztRQUVoQyxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDO1FBRWpCLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxTQUFTO1lBQ1osT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUWVBFX09CSkVDVCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IFwiZGF5anMvbG9jYWxlL2VuXCI7XG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvdmlcIjtcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSBcImRheWpzL3BsdWdpbi9sb2NhbGVEYXRhXCI7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xuaW1wb3J0IHVwZGF0ZUxvY2FsZSBmcm9tICdkYXlqcy9wbHVnaW4vdXBkYXRlTG9jYWxlJztcbmltcG9ydCB1dGMgZnJvbSBcImRheWpzL3BsdWdpbi91dGNcIjtcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbmRheWpzLmV4dGVuZCh1cGRhdGVMb2NhbGUpO1xuZGF5anMuZXh0ZW5kKHV0Yyk7XG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KVxubGV0IHRpbWVab25lU2V0dXAgPSBcIkFzaWEvSG9fQ2hpX01pbmhcIjtcblxuZXhwb3J0IGNvbnN0IHNldERlZmF1bHRUaW1lWm9uZSA9IChsb2NhbGVab25lID0gdGltZVpvbmVTZXR1cCkgPT4ge1xuICB0aW1lWm9uZVNldHVwID0gbG9jYWxlWm9uZTtcbiAgZGF5anMudHouc2V0RGVmYXVsdChsb2NhbGVab25lKTtcbn1cblxuZXhwb3J0IHR5cGUgVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSA9ICh0aW1lOiBkYXlqcy5Db25maWdUeXBlLCBmb3JtYXRPdXRwdXQ6IHN0cmluZywgbGFuZz86IHN0cmluZykgPT4gc3RyaW5nO1xubGV0IGZ1bmN0aW9uRm9ybWF0RGF0ZTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuXG5leHBvcnQgY29uc3QgdXBkYXRlRnVuY3Rpb25Gb3JtYXREYXRlID0gKGZ1bmN0aW9uQ3VzdG9tOiBUWVBFX0ZVTkNUSU9OX0ZPUk1BVF9EQVRFKSA9PiB7XG4gIGZ1bmN0aW9uRm9ybWF0RGF0ZSA9IGZ1bmN0aW9uQ3VzdG9tO1xufVxuLyoqXG4gICogQGRlc2NyaXB0aW9uIEzhuqV5IMSR4buRaSB0xrDhu6NuZyBkYXlqcyB0aGVvIGNvbmZpZ1xuICAqIEBwYXJhbSBjb25maWcgbuG6v3Uga2jDtG5nIGPDsyBjb25maWcgc+G6vSB0cuG6oyB24buBIMSR4buRaSB0xrDhu6NuZyBkYXlqcyBsw6AgdGjhu51pIGdpYW4gaGnhu4duIHThuqFpXG4gICogQHBhcmFtIGNvbmZpZy5kYXRlIHRo4budaSBnaWFuIGPhuqduIGzhuqV5XG4gICogQHBhcmFtIGNvbmZpZy5yZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0IHRydWUgbuG6v3UgbXXhu5FuIHRy4bqjIHbhu4EgxJHhu5FpIHTGsOG7o25nIGRheWpzIG7hur91IGNvbmZpZy5kYXRlIGtow7RuZyBjw7NcbiAgKiBAcGFyYW0gY29uZmlnLnV0YyB0cnVlIG7hur91IG114buRbiBs4bqleSB0aOG7nWkgZ2lhbiBVVENcbiAgKiBAcGFyYW0gY29uZmlnLmZvcm1hdE9mRGF0ZSDEkeG7i25oIGThuqFuZyB0aOG7nWkgZ2lhbiDEkWFuZyDEkcaw4bujYyB0cnV54buBbiB2w6BvXG4qL1xuZXhwb3J0IGNvbnN0IGdldERheWpzID0gPFQgPSBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZD4oY29uZmlnPzogeyBkYXRlPzogZGF5anMuQ29uZmlnVHlwZTsgdXRjPzogYm9vbGVhbjsgZm9ybWF0T2ZEYXRlPzogc3RyaW5nOyByZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0PzogYm9vbGVhbiwgbG9jYWxlWm9uZT86IHN0cmluZyB9KTogVCA9PiB7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIGRheWpzKCkudHooKSBhcyBUO1xuICB9XG4gIGNvbmZpZy5kYXRlID0gIWNvbmZpZy5kYXRlICYmIGNvbmZpZy5yZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0ID8gZGF5anMoKS50eigpIDogY29uZmlnLmRhdGU7XG4gIGlmICh0eXBlb2YgY29uZmlnLmRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgY29uZmlnLmRhdGUgPSBkYXlqcy51bml4KGNvbmZpZy5kYXRlKTtcbiAgfVxuICBpZiAoIWNvbmZpZy5kYXRlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBUO1xuICB9XG4gIGxldCB7IGRhdGUsIHV0YywgZm9ybWF0T2ZEYXRlIH0gPSBjb25maWcgYXMgVFlQRV9PQkpFQ1Q7XG5cbiAgd2hpbGUgKGlzU2lnbmFsKGRhdGUpKSB7XG4gICAgZGF0ZSA9IGRhdGUoKTtcbiAgfVxuICB3aGlsZSAoaXNTaWduYWwodXRjKSkge1xuICAgIHV0YyA9IHV0YygpO1xuICB9XG4gIHdoaWxlIChpc1NpZ25hbChmb3JtYXRPZkRhdGUpKSB7XG4gICAgZm9ybWF0T2ZEYXRlID0gZm9ybWF0T2ZEYXRlKCk7XG4gIH1cblxuICBpZiAodXRjKSB7XG4gICAgaWYgKGZvcm1hdE9mRGF0ZSkge1xuICAgICAgcmV0dXJuIGRheWpzKGRhdGUsIGZvcm1hdE9mRGF0ZSkudXRjKCkgYXMgVDtcbiAgICB9XG4gICAgY29uc3QgZGF0ZUlucHV0SXNVVEMgPSAodHlwZW9mIGRhdGUgPT09ICdvYmplY3QnICYmIChkYXRlIGFzIERheWpzKS5pc1VUQygpKSB8fCAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmIChkYXRlIGFzIHN0cmluZykuaW5jbHVkZXMoJ1onKSk7XG5cbiAgICBpZiAoZGF0ZUlucHV0SXNVVEMpIHtcbiAgICAgIHJldHVybiBkYXlqcyhkYXRlKSBhcyBUO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlqcyhkYXRlKS51dGMoKSBhcyBUO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyAmJiAhKGRhdGUgYXMgc3RyaW5nKS5pbmNsdWRlcygnWicpICYmICEoZGF0ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKCcrJykpIHtcbiAgICByZXR1cm4gKGZvcm1hdE9mRGF0ZSA/IGRheWpzLnR6KGRhdGUsIGZvcm1hdE9mRGF0ZSwgY29uZmlnLmxvY2FsZVpvbmUgfHwgdGltZVpvbmVTZXR1cCkgOiBkYXlqcy50eihkYXRlLCBjb25maWcubG9jYWxlWm9uZSB8fCB0aW1lWm9uZVNldHVwKSkgYXMgVDtcbiAgfVxuXG4gIHJldHVybiAoZm9ybWF0T2ZEYXRlID8gZGF5anMoZGF0ZSwgZm9ybWF0T2ZEYXRlKSA6IGRheWpzKGRhdGUpKS50eigpIGFzIFQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtp4buDbSB0cmEgeGVtIGhhaSBuZ8OgeSBjw7Mga2jDoWMgbmhhdSBraMO0bmcgKGtow6FjIG5nw6B5IHRyb25nIHR14bqnbilcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIG5oYXUsIGZhbHNlIG7hur91IGdp4buRbmcgbmhhdSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VEYXkgPSAoZGF0ZTE6IGRheWpzLkNvbmZpZ1R5cGUsIGRhdGUyOiBkYXlqcy5Db25maWdUeXBlKSA9PiB7XG4gIGlmIChpc0RpZmZlcmVuY2VNb250aChkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgZGF5MSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy5kYXkoKTtcbiAgY29uc3QgZGF5MiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5kYXkoKTtcbiAgXG4gIHJldHVybiBkYXkxICE9PSBkYXkyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBLaeG7g20gdHJhIHhlbSBoYWkgbmfDoHkgY8OzIGtow6FjIHRow6FuZyBraMO0bmdcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIHRow6FuZywgZmFsc2UgbuG6v3UgY8O5bmcgdGjDoW5nIGhv4bq3YyBraMO0bmcgdGjhu4Mgc28gc8OhbmhcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGlmZmVyZW5jZU1vbnRoID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBpZiAoaXNEaWZmZXJlbmNlWWVhcihkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgbW9udGgxID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTEgfSk/Lm1vbnRoKCk7XG4gIGNvbnN0IG1vbnRoMiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5tb250aCgpO1xuXG4gIHJldHVybiBtb250aDEgIT09IG1vbnRoMjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gS2nhu4NtIHRyYSB4ZW0gaGFpIG5nw6B5IGPDsyBraMOhYyBuxINtIGtow7RuZ1xuICogQHBhcmFtIGRhdGUxIG5nw6B5IHRo4bupIG5o4bqldCBj4bqnbiBzbyBzw6FuaFxuICogQHBhcmFtIGRhdGUyIG5nw6B5IHRo4bupIGhhaSBj4bqnbiBzbyBzw6FuaFxuICogQHJldHVybnMgdHJ1ZSBu4bq/dSBoYWkgbmfDoHkga2jDoWMgbsSDbSwgZmFsc2UgbuG6v3UgY8O5bmcgbsSDbSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VZZWFyID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB5ZWFyMSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy55ZWFyKCk7XG4gIGNvbnN0IHllYXIyID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTIgfSk/LnllYXIoKTtcblxuICByZXR1cm4geWVhcjEgIT09IHllYXIyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBM4bqleSByYSBjaHXhu5dpIHRo4budaSBnaWFuIGhp4buDbiB0aOG7iyB0aGVvIMSR4buLbmggZOG6oW5nIHbDoCBuZ8O0biBuZ+G7r1xuICogQHBhcmFtIGRhdGUgdGjhu51pIGdpYW4gY+G6p24gxJHhu4tuaCBk4bqhbmdcbiAqIEBwYXJhbSBmb3JtYXQgxJHhu4tuaCBk4bqhbmcgdGjhu51pIGdpYW4gbXXhu5FuIGzhuqV5IHJhXG4gKiBAcGFyYW0gbGFuZyBs4bqleSB0aGVvIG5nw7RuIG5n4buvXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gKGRhdGU6IGRheWpzLkNvbmZpZ1R5cGUsIGZvcm1hdE91dHB1dCA9ICdZWVlZL01NL0REIEhIOm1tJywgbGFuZz86IHN0cmluZywgZm9ybWF0SW5wdXQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGFuZyA9IGxhbmcgfHwgVXRpbHNDYWNoZS5nZXRMYW5nKCkgYXMgc3RyaW5nO1xuICBpZiAoZnVuY3Rpb25Gb3JtYXREYXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uRm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRPdXRwdXQsIGxhbmcpO1xuICB9XG5cbiAgZGF0ZSA9IGdldERheWpzPERheWpzPih7IGRhdGUsIGZvcm1hdE9mRGF0ZTogZm9ybWF0SW5wdXQgfSkubG9jYWxlKGxhbmcpO1xuICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgIGRheWpzLnVwZGF0ZUxvY2FsZSgndmknLCB7XG4gICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZS5mb3JtYXQoZ2V0Rm9ybWF0RGF0YShnZXRUeXBlQnlGb3JtYXQoZm9ybWF0T3V0cHV0KSwgbGFuZykpIHx8ICcnO1xufVxuXG5jb25zdCBnZXRUeXBlQnlGb3JtYXQgPSAoZm9ybWF0OiBzdHJpbmcpOiAnZG0nIHwgJ2RteScgfCAnZG15IGhtJyB8ICdteScgfCAnZG15IGhtcycgfCAnaGg6bW0nIHwgJ0hIOm1tJyB8ICdoaDptbSBBJyB8ICdISDptbSBBJyA9PiB7XG4gIGlmIChmb3JtYXQgPT09ICdkbScgfHwgZm9ybWF0ID09PSAnZG15JyB8fCBmb3JtYXQgPT09ICdkbXkgaG0nIHx8IGZvcm1hdCA9PT0gJ215Jykge1xuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnREQvTU0vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0veXl5eScgfHwgZm9ybWF0ID09PSAnZGQtTU0teXl5eScgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eScpIHtcbiAgICByZXR1cm4gJ2RteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnTU0tREQnIHx8IGZvcm1hdCA9PT0gJ2RkL01NJyB8fCBmb3JtYXQgPT09ICdkZC9tbScpIHtcbiAgICByZXR1cm4gJ2RtJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdNL1lZWVknIHx8IGZvcm1hdCA9PT0gJ1lZWVktTU0nIHx8IGZvcm1hdCA9PT0gJ01NL3l5eXknKSB7XG4gICAgcmV0dXJuICdteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnWVlZWS9NTS9ERCBoaDptbTpzcycgfHwgZm9ybWF0ID09PSAnZG15IGhtcycgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eSBoaDptbTpzcycpIHtcbiAgICByZXR1cm4gJ2RteSBobXMnO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2hoOm1tJyB8fCBmb3JtYXQgPT09ICdISDptbScpIHtcbiAgICByZXR1cm4gJ2hoOm1tJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdoaDptbSBBJyB8fCBmb3JtYXQgPT09ICdISDptbSBBJykge1xuICAgIHJldHVybiAnaGg6bW0gQSc7XG4gIH1cblxuICByZXR1cm4gJ2RteSBobSc7XG59O1xuXG5jb25zdCBnZXRGb3JtYXREYXRhID0gKHR5cGU6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJyB8ICdoaDptbScgfCAnaGg6bW0gQScgfCAnSEg6bW0nIHwgJ0hIOm1tIEEnLCBsYW5nOiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZG0nOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQnO1xuXG4gICAgY2FzZSAnZG15JzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVknO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBELCBZWVlZJztcblxuICAgIGNhc2UgJ2RteSBobSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZIEhIOm1tJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbSc7XG5cbiAgICBjYXNlICdteSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ01NTSwgWVlZWSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIFlZWVkgJztcblxuICAgIGNhc2UgJ2RteSBobXMnOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSwgWVlZWSBISDptbTpzcyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQsIFlZWVkgSEg6bW06c3MnO1xuXG4gICAgY2FzZSAnaGg6bW0nOlxuICAgIGNhc2UgJ0hIOm1tJzpcbiAgICAgIHJldHVybiAnSEg6bW0nO1xuXG4gICAgY2FzZSAnaGg6bW0gQSc6XG4gICAgY2FzZSAnSEg6bW0gQSc6XG4gICAgICByZXR1cm4gJ0hIOm1tIEEnO1xuICB9XG59O1xuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDL0IsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsYUFBYSxFQUFFLEVBQUU7SUFDL0QsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUMzQixLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUE7QUFHRCxJQUFJLGtCQUFrQixHQUEwQyxTQUFTLENBQUM7QUFHMUUsTUFBTSxDQUFDLE1BQU0sd0JB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QUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVELE9BQU8sYUFBYSxDQUFDO1FBRXZCLEtBQUssUUFBUTtZQUNYLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLG1CQUFtQixDQUFDO1lBQzdCLENBQUM7WUFFRCxPQUFPLG1CQUFtQixDQUFDO1FBRTdCLEtBQUssSUFBSTtZQUNQLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUM7UUFFckIsS0FBSyxTQUFTO1lBQ1osSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztZQUVELE9BQU8sc0JBQXNCLENBQUM7UUFFaEMsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sQ0FBQztRQUVqQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xuaW1wb3J0IFwiZGF5anMvbG9jYWxlL3ZpXCI7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gXCJkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YVwiO1xuaW1wb3J0IHRpbWV6b25lIGZyb20gXCJkYXlqcy9wbHVnaW4vdGltZXpvbmVcIjtcbmltcG9ydCB1cGRhdGVMb2NhbGUgZnJvbSAnZGF5anMvcGx1Z2luL3VwZGF0ZUxvY2FsZSc7XG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSAnLi9jYWNoZSc7XG5kYXlqcy5leHRlbmQobG9jYWxlRGF0YSk7XG5kYXlqcy5leHRlbmQodXBkYXRlTG9jYWxlKTtcbmRheWpzLmV4dGVuZCh1dGMpO1xuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdClcbmxldCB0aW1lWm9uZVNldHVwID0gXCJBc2lhL0hvX0NoaV9NaW5oXCI7XG5cbmV4cG9ydCBjb25zdCBzZXREZWZhdWx0VGltZVpvbmUgPSAobG9jYWxlWm9uZSA9IHRpbWVab25lU2V0dXApID0+IHtcbiAgdGltZVpvbmVTZXR1cCA9IGxvY2FsZVpvbmU7XG4gIGRheWpzLnR6LnNldERlZmF1bHQobG9jYWxlWm9uZSk7XG59XG5cbmV4cG9ydCB0eXBlIFRZUEVfRlVOQ1RJT05fRk9STUFUX0RBVEUgPSAodGltZTogZGF5anMuQ29uZmlnVHlwZSwgZm9ybWF0T3V0cHV0OiBzdHJpbmcsIGxhbmc/OiBzdHJpbmcpID0+IHN0cmluZztcbmxldCBmdW5jdGlvbkZvcm1hdERhdGU6IFRZUEVfRlVOQ1RJT05fRk9STUFUX0RBVEUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZ1bmN0aW9uRm9ybWF0RGF0ZSA9IChmdW5jdGlvbkN1c3RvbTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSkgPT4ge1xuICBmdW5jdGlvbkZvcm1hdERhdGUgPSBmdW5jdGlvbkN1c3RvbTtcbn1cbi8qKlxuICAqIEBkZXNjcmlwdGlvbiBM4bqleSDEkeG7kWkgdMaw4bujbmcgZGF5anMgdGhlbyBjb25maWdcbiAgKiBAcGFyYW0gY29uZmlnIG7hur91IGtow7RuZyBjw7MgY29uZmlnIHPhur0gdHLhuqMgduG7gSDEkeG7kWkgdMaw4bujbmcgZGF5anMgbMOgIHRo4budaSBnaWFuIGhp4buHbiB04bqhaVxuICAqIEBwYXJhbSBjb25maWcuZGF0ZSB0aOG7nWkgZ2lhbiBj4bqnbiBs4bqleVxuICAqIEBwYXJhbSBjb25maWcucmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdCB0cnVlIG7hur91IG114buRbiB0cuG6oyB24buBIMSR4buRaSB0xrDhu6NuZyBkYXlqcyBu4bq/dSBjb25maWcuZGF0ZSBraMO0bmcgY8OzXG4gICogQHBhcmFtIGNvbmZpZy51dGMgdHJ1ZSBu4bq/dSBtdeG7kW4gbOG6pXkgdGjhu51pIGdpYW4gVVRDXG4gICogQHBhcmFtIGNvbmZpZy5mb3JtYXRPZkRhdGUgxJHhu4tuaCBk4bqhbmcgdGjhu51pIGdpYW4gxJFhbmcgxJHGsOG7o2MgdHJ1eeG7gW4gdsOgb1xuKi9cbmV4cG9ydCBjb25zdCBnZXREYXlqcyA9IDxUID0gZGF5anMuRGF5anMgfCB1bmRlZmluZWQ+KGNvbmZpZz86IHsgZGF0ZT86IGRheWpzLkNvbmZpZ1R5cGU7IHV0Yz86IGJvb2xlYW47IGZvcm1hdE9mRGF0ZT86IHN0cmluZzsgcmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdD86IGJvb2xlYW4sIGxvY2FsZVpvbmU/OiBzdHJpbmcgfSk6IFQgPT4ge1xuICBpZiAoIWNvbmZpZykge1xuICAgIHJldHVybiBkYXlqcygpLnR6KCkgYXMgVDtcbiAgfVxuICBjb25maWcuZGF0ZSA9ICFjb25maWcuZGF0ZSAmJiBjb25maWcucmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdCA/IGRheWpzKCkudHooKSA6IGNvbmZpZy5kYXRlO1xuICBpZiAodHlwZW9mIGNvbmZpZy5kYXRlID09PSAnbnVtYmVyJykge1xuICAgIGNvbmZpZy5kYXRlID0gZGF5anMudW5peChjb25maWcuZGF0ZSk7XG4gIH1cbiAgaWYgKCFjb25maWcuZGF0ZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQgYXMgVDtcbiAgfVxuICBsZXQgeyBkYXRlLCB1dGMsIGZvcm1hdE9mRGF0ZSB9ID0gY29uZmlnIGFzIFRZUEVfT0JKRUNUO1xuXG4gIHdoaWxlIChpc1NpZ25hbChkYXRlKSkge1xuICAgIGRhdGUgPSBkYXRlKCk7XG4gIH1cbiAgd2hpbGUgKGlzU2lnbmFsKHV0YykpIHtcbiAgICB1dGMgPSB1dGMoKTtcbiAgfVxuICB3aGlsZSAoaXNTaWduYWwoZm9ybWF0T2ZEYXRlKSkge1xuICAgIGZvcm1hdE9mRGF0ZSA9IGZvcm1hdE9mRGF0ZSgpO1xuICB9XG5cbiAgaWYgKHV0Yykge1xuICAgIGlmIChmb3JtYXRPZkRhdGUpIHtcbiAgICAgIHJldHVybiBkYXlqcyhkYXRlLCBmb3JtYXRPZkRhdGUpLnV0YygpIGFzIFQ7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVJbnB1dElzVVRDID0gKGRheWpzLmlzRGF5anMoZGF0ZSkgJiYgZGF0ZS5pc1VUQygpKSB8fCAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmIChkYXRlIGFzIHN0cmluZykuaW5jbHVkZXMoJ1onKSk7XG5cbiAgICBpZiAoZGF0ZUlucHV0SXNVVEMpIHtcbiAgICAgIHJldHVybiBkYXlqcyhkYXRlKSBhcyBUO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlqcyhkYXRlKS51dGMoKSBhcyBUO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyAmJiAhKGRhdGUgYXMgc3RyaW5nKS5pbmNsdWRlcygnWicpICYmICEoZGF0ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKCcrJykpIHtcbiAgICByZXR1cm4gKGZvcm1hdE9mRGF0ZSA/IGRheWpzLnR6KGRhdGUsIGZvcm1hdE9mRGF0ZSwgY29uZmlnLmxvY2FsZVpvbmUgfHwgdGltZVpvbmVTZXR1cCkgOiBkYXlqcy50eihkYXRlLCBjb25maWcubG9jYWxlWm9uZSB8fCB0aW1lWm9uZVNldHVwKSkgYXMgVDtcbiAgfVxuXG4gIHJldHVybiAoZm9ybWF0T2ZEYXRlID8gZGF5anMoZGF0ZSwgZm9ybWF0T2ZEYXRlKSA6IGRheWpzKGRhdGUpKS50eigpIGFzIFQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtp4buDbSB0cmEgeGVtIGhhaSBuZ8OgeSBjw7Mga2jDoWMgbmhhdSBraMO0bmcgKGtow6FjIG5nw6B5IHRyb25nIHR14bqnbilcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIG5oYXUsIGZhbHNlIG7hur91IGdp4buRbmcgbmhhdSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VEYXkgPSAoZGF0ZTE6IGRheWpzLkNvbmZpZ1R5cGUsIGRhdGUyOiBkYXlqcy5Db25maWdUeXBlKSA9PiB7XG4gIGlmIChpc0RpZmZlcmVuY2VNb250aChkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgZGF5MSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy5kYXkoKTtcbiAgY29uc3QgZGF5MiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5kYXkoKTtcbiAgXG4gIHJldHVybiBkYXkxICE9PSBkYXkyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBLaeG7g20gdHJhIHhlbSBoYWkgbmfDoHkgY8OzIGtow6FjIHRow6FuZyBraMO0bmdcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIHRow6FuZywgZmFsc2UgbuG6v3UgY8O5bmcgdGjDoW5nIGhv4bq3YyBraMO0bmcgdGjhu4Mgc28gc8OhbmhcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGlmZmVyZW5jZU1vbnRoID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBpZiAoaXNEaWZmZXJlbmNlWWVhcihkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgbW9udGgxID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTEgfSk/Lm1vbnRoKCk7XG4gIGNvbnN0IG1vbnRoMiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5tb250aCgpO1xuXG4gIHJldHVybiBtb250aDEgIT09IG1vbnRoMjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gS2nhu4NtIHRyYSB4ZW0gaGFpIG5nw6B5IGPDsyBraMOhYyBuxINtIGtow7RuZ1xuICogQHBhcmFtIGRhdGUxIG5nw6B5IHRo4bupIG5o4bqldCBj4bqnbiBzbyBzw6FuaFxuICogQHBhcmFtIGRhdGUyIG5nw6B5IHRo4bupIGhhaSBj4bqnbiBzbyBzw6FuaFxuICogQHJldHVybnMgdHJ1ZSBu4bq/dSBoYWkgbmfDoHkga2jDoWMgbsSDbSwgZmFsc2UgbuG6v3UgY8O5bmcgbsSDbSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VZZWFyID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB5ZWFyMSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy55ZWFyKCk7XG4gIGNvbnN0IHllYXIyID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTIgfSk/LnllYXIoKTtcblxuICByZXR1cm4geWVhcjEgIT09IHllYXIyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBM4bqleSByYSBjaHXhu5dpIHRo4budaSBnaWFuIGhp4buDbiB0aOG7iyB0aGVvIMSR4buLbmggZOG6oW5nIHbDoCBuZ8O0biBuZ+G7r1xuICogQHBhcmFtIGRhdGUgdGjhu51pIGdpYW4gY+G6p24gxJHhu4tuaCBk4bqhbmdcbiAqIEBwYXJhbSBmb3JtYXQgxJHhu4tuaCBk4bqhbmcgdGjhu51pIGdpYW4gbXXhu5FuIGzhuqV5IHJhXG4gKiBAcGFyYW0gbGFuZyBs4bqleSB0aGVvIG5nw7RuIG5n4buvXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gKGRhdGU6IGRheWpzLkNvbmZpZ1R5cGUsIGZvcm1hdE91dHB1dCA9ICdZWVlZL01NL0REIEhIOm1tJywgbGFuZz86IHN0cmluZywgZm9ybWF0SW5wdXQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGFuZyA9IGxhbmcgfHwgVXRpbHNDYWNoZS5nZXRMYW5nKCkgYXMgc3RyaW5nO1xuICBpZiAoZnVuY3Rpb25Gb3JtYXREYXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uRm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRPdXRwdXQsIGxhbmcpO1xuICB9XG5cbiAgZGF0ZSA9IGdldERheWpzPERheWpzPih7IGRhdGUsIGZvcm1hdE9mRGF0ZTogZm9ybWF0SW5wdXQgfSkubG9jYWxlKGxhbmcpO1xuICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgIGRheWpzLnVwZGF0ZUxvY2FsZSgndmknLCB7XG4gICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZS5mb3JtYXQoZ2V0Rm9ybWF0RGF0YShnZXRUeXBlQnlGb3JtYXQoZm9ybWF0T3V0cHV0KSwgbGFuZykpIHx8ICcnO1xufVxuXG5jb25zdCBnZXRUeXBlQnlGb3JtYXQgPSAoZm9ybWF0OiBzdHJpbmcpOiAnZG0nIHwgJ2RteScgfCAnZG15IGhtJyB8ICdteScgfCAnZG15IGhtcycgfCAnaGg6bW0nIHwgJ0hIOm1tJyB8ICdoaDptbSBBJyB8ICdISDptbSBBJyA9PiB7XG4gIGlmIChmb3JtYXQgPT09ICdkbScgfHwgZm9ybWF0ID09PSAnZG15JyB8fCBmb3JtYXQgPT09ICdkbXkgaG0nIHx8IGZvcm1hdCA9PT0gJ215Jykge1xuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnREQvTU0vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0veXl5eScgfHwgZm9ybWF0ID09PSAnZGQtTU0teXl5eScgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eScpIHtcbiAgICByZXR1cm4gJ2RteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnTU0tREQnIHx8IGZvcm1hdCA9PT0gJ2RkL01NJyB8fCBmb3JtYXQgPT09ICdkZC9tbScpIHtcbiAgICByZXR1cm4gJ2RtJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdNL1lZWVknIHx8IGZvcm1hdCA9PT0gJ1lZWVktTU0nIHx8IGZvcm1hdCA9PT0gJ01NL3l5eXknKSB7XG4gICAgcmV0dXJuICdteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnWVlZWS9NTS9ERCBoaDptbTpzcycgfHwgZm9ybWF0ID09PSAnZG15IGhtcycgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eSBoaDptbTpzcycpIHtcbiAgICByZXR1cm4gJ2RteSBobXMnO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2hoOm1tJyB8fCBmb3JtYXQgPT09ICdISDptbScpIHtcbiAgICByZXR1cm4gJ2hoOm1tJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdoaDptbSBBJyB8fCBmb3JtYXQgPT09ICdISDptbSBBJykge1xuICAgIHJldHVybiAnaGg6bW0gQSc7XG4gIH1cblxuICByZXR1cm4gJ2RteSBobSc7XG59O1xuXG5jb25zdCBnZXRGb3JtYXREYXRhID0gKHR5cGU6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJyB8ICdoaDptbScgfCAnaGg6bW0gQScgfCAnSEg6bW0nIHwgJ0hIOm1tIEEnLCBsYW5nOiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZG0nOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQnO1xuXG4gICAgY2FzZSAnZG15JzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVknO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBELCBZWVlZJztcblxuICAgIGNhc2UgJ2RteSBobSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZIEhIOm1tJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbSc7XG5cbiAgICBjYXNlICdteSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ01NTSwgWVlZWSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIFlZWVkgJztcblxuICAgIGNhc2UgJ2RteSBobXMnOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSwgWVlZWSBISDptbTpzcyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQsIFlZWVkgSEg6bW06c3MnO1xuXG4gICAgY2FzZSAnaGg6bW0nOlxuICAgIGNhc2UgJ0hIOm1tJzpcbiAgICAgIHJldHVybiAnSEg6bW0nO1xuXG4gICAgY2FzZSAnaGg6bW0gQSc6XG4gICAgY2FzZSAnSEg6bW0gQSc6XG4gICAgICByZXR1cm4gJ0hIOm1tIEEnO1xuICB9XG59O1xuIl19
package/esm2022/file.mjs CHANGED
@@ -57,7 +57,7 @@ export const convertBlobToFile = (blob, fileName) => {
57
57
  return new File([blob], name, { type: blob.type, lastModified: Date.now() });
58
58
  };
59
59
  export const convertUrlToFile = (url, fileName) => {
60
- return new Promise((resolve) => {
60
+ return new Promise((resolve, reject) => {
61
61
  const xhr = new XMLHttpRequest();
62
62
  xhr.onload = function () {
63
63
  const reader = new FileReader();
@@ -67,9 +67,12 @@ export const convertUrlToFile = (url, fileName) => {
67
67
  };
68
68
  reader.readAsDataURL(xhr.response);
69
69
  };
70
+ xhr.onerror = (err) => {
71
+ reject(err);
72
+ };
70
73
  xhr.open('GET', url);
71
74
  xhr.responseType = 'blob';
72
75
  xhr.send();
73
76
  });
74
77
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRTFJLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsZSB9IGZyb20gXCJAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzXCI7XG5pbXBvcnQgeyBnZXQsIHNldCB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IHV1aWQgfSBmcm9tIFwiLi91dWlkXCI7XG5pbXBvcnQgeyBjb252ZXJ0QmFzZTY0VG9CbG9iIH0gZnJvbSBcIi4vYmFzZTY0XCI7XG5cbmV4cG9ydCBjb25zdCBpc1R5cGVJbWFnZSA9IChmaWxlOiBGaWxlIHwgQmxvYikgPT4gZmlsZS50eXBlLm1hdGNoKC9pbWFnZS4qLykgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgY29uc3QgaXNUeXBlVmlkZW8gPSAoZmlsZTogRmlsZSB8IEJsb2IpID0+IGZpbGUudHlwZS5tYXRjaCgvdmlkZW8uKi8pID8gdHJ1ZSA6IGZhbHNlO1xuZXhwb3J0IGNvbnN0IGlzVHlwZUF1ZGlvID0gKGZpbGU6IEZpbGUgfCBCbG9iKSA9PiBmaWxlLnR5cGUubWF0Y2goL2F1ZGlvLiovKSA/IHRydWUgOiBmYWxzZTtcbmV4cG9ydCBjb25zdCBpc1R5cGVGaWxlID0gKGZpbGU6IEZpbGUpID0+IGZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlKSA9PT0gJ1tvYmplY3QgRmlsZV0nID8gdHJ1ZSA6IGZhbHNlO1xuXG5leHBvcnQgY29uc3QgRXhjZWxFeHRMaXN0ID0gWyd4bHMnLCAneGxzeCcsICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLCAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnXTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEV4dExpc3QgPSBbJ2RvYycsICdkb2N4JywgJ3hscycsICd4bHN4JywgJ3BwdCcsICdwcHR4JywgJ3BkZicsICdqc29uJywgJ3htbCcsICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAnYXBwbGljYXRpb24vcGRmJyxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAnYXBwbGljYXRpb24veG1sJ107XG5leHBvcnQgY29uc3QgaXNJbmNsdWRlRG9jdW1lbnRFeHRMaXN0ID0gKGV4dDogc3RyaW5nLCBsaXN0RXh0OiBBcnJheTxzdHJpbmc+ID0gRG9jdW1lbnRFeHRMaXN0KSA9PiBsaXN0RXh0LmluY2x1ZGVzKGV4dCkgfHwgbGlzdEV4dC5pbmNsdWRlcyhgYXBwbGljYXRpb24vJHtleHR9YCk7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUV4dExpc3QgPSBbJ2dpZicsICdqcGcnLCAnanBlZycsICdwbmcnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnXTtcbmV4cG9ydCBjb25zdCBpc0luY2x1ZGVJbWFnZUV4dExpc3QgPSAoZXh0OiBzdHJpbmcsIGxpc3RFeHQ6IEFycmF5PHN0cmluZz4gPSBJbWFnZUV4dExpc3QpID0+IGxpc3RFeHQuaW5jbHVkZXMoZXh0KTtcblxuZXhwb3J0IGNvbnN0IFZpZGVvRXh0TGlzdCA9IFsnbXA0JywgJ21vdicsICdtcGcnLCAnYXZpJywgJ3dtdicsICd2aWRlby9tcDQnLCAndmlkZW8vcXVpY2t0aW1lJywgJ3ZpZGVvL21wZWcnLCAndmlkZW8veC1tc3ZpZGVvJywgJ3ZpZGVvL3gtbXMtd212J107XG5leHBvcnQgY29uc3QgaXNJbmNsdWRlVmlkZW9FeHRMaXN0ID0gKGV4dDogc3RyaW5nLCBsaXN0RXh0OiBBcnJheTxzdHJpbmc+ID0gVmlkZW9FeHRMaXN0KSA9PiBsaXN0RXh0LmluY2x1ZGVzKGV4dCk7XG5leHBvcnQgY29uc3QgQXVkaW9FeHRMaXN0ID0gWydtcDMnLCAnd2F2JywgJ29nZycsICdhYWMnLCAnbTRhJywgJ2ZsYWMnLCAnd21hJywgJ2F1ZGlvL21wZWcnLCAnYXVkaW8vd2F2JywgJ2F1ZGlvL29nZycsICdhdWRpby9hYWMnLCAnYXVkaW8vbXA0JywgJ2F1ZGlvL2ZsYWMnLCAnYXVkaW8veC1tcy13bWEnXTtcbmV4cG9ydCBjb25zdCBpc0luY2x1ZGVBdWRpb0V4dExpc3QgPSAoZXh0OiBzdHJpbmcsIGxpc3RFeHQ6IEFycmF5PHN0cmluZz4gPSBBdWRpb0V4dExpc3QpID0+IGxpc3RFeHQuaW5jbHVkZXMoZXh0KTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVFeHRlbnNpb24gPSAoZmlsZTogSUZpbGUgfCBGaWxlKSA9PiB7XG4gIGlmIChmaWxlIGluc3RhbmNlb2YgRmlsZSAmJiBmaWxlLnR5cGUpIHtcbiAgICByZXR1cm4gKGZpbGUudHlwZS5zcGxpdCgnLycpLnBvcCgpIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIGZpbGUgPSBmaWxlIGFzIElGaWxlO1xuICBpZiAoZmlsZS5taW1ldHlwZSB8fCBmaWxlLmZpbGU/LnR5cGUpIHtcbiAgICByZXR1cm4gZmlsZS5taW1ldHlwZSB8fCBmaWxlLmZpbGU/LnR5cGU7XG4gIH1cblxuICBsZXQgZmlsZU5hbWUgPSBmaWxlLm5hbWUgYXMgc3RyaW5nO1xuICBjb25zdCB1cmwgPSBnZXQoZmlsZSwgJ3VybCcpIHx8IGdldChmaWxlLCAnb3JpZ2luX3VybCcpO1xuICBpZiAoIWZpbGVOYW1lICYmICF1cmwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCFmaWxlTmFtZSAmJiB1cmwpIHtcbiAgICBmaWxlTmFtZSA9IHVybC5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuICAgIHNldChmaWxlLCAnbmFtZScsIGZpbGVOYW1lKTtcbiAgfVxuICBjb25zdCBkb3RzID0gZmlsZU5hbWUuc3BsaXQoXCIuXCIpO1xuXG4gIGlmICghZG90cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiAoZG90cy5wb3AoKSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMYWJlbEJ5U2l6ZUZpbGUgPSAoc2l6ZTogbnVtYmVyLCB0b0ZpeGVkID0gMikgPT4ge1xuICBpZiAoc2l6ZSA8IDEwMjQgKiAxMDI0KSB7XG4gICAgcmV0dXJuIGAgJHsoc2l6ZSAvIDEwMjQpLnRvRml4ZWQodG9GaXhlZCl9IEtCYDtcbiAgfVxuXG4gIHJldHVybiBgICR7KHNpemUgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKHRvRml4ZWQpfSBNQmA7XG59O1xuXG5cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRCbG9iVG9GaWxlID0gKGJsb2I6IEJsb2IsIGZpbGVOYW1lPzogc3RyaW5nKTogRmlsZSA9PiB7XG4gIGNvbnN0IHR5cGUgPSBibG9iLnR5cGUuc3BsaXQoJy8nKVsxXTtcbiAgY29uc3QgbmFtZSA9IGZpbGVOYW1lID8gYCR7ZmlsZU5hbWUuc3BsaXQoJy4nKVswXX0uJHt0eXBlfWAgOiBgJHt1dWlkKCl9LiR7dHlwZX1gO1xuXG4gIHJldHVybiBuZXcgRmlsZShbYmxvYl0sIG5hbWUsIHsgdHlwZTogYmxvYi50eXBlLCBsYXN0TW9kaWZpZWQ6IERhdGUubm93KCkgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydFVybFRvRmlsZSA9ICh1cmw6IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPEZpbGU+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlID0gY29udmVydEJhc2U2NFRvQmxvYihyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgIHJlc29sdmUoY29udmVydEJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUgfHwgRGF0ZS5ub3coKS50b0xvY2FsZVN0cmluZygpKSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoeGhyLnJlc3BvbnNlKTtcbiAgICB9O1xuICAgIHhoci5vcGVuKCdHRVQnLCB1cmwpO1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYmxvYic7XG4gICAgeGhyLnNlbmQoKTtcbiAgfSk7XG59OyJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRTFJLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtB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QixHQUFHLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMxQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElGaWxlIH0gZnJvbSBcIkBsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXNcIjtcbmltcG9ydCB7IGdldCwgc2V0IH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gXCIuL3V1aWRcIjtcbmltcG9ydCB7IGNvbnZlcnRCYXNlNjRUb0Jsb2IgfSBmcm9tIFwiLi9iYXNlNjRcIjtcblxuZXhwb3J0IGNvbnN0IGlzVHlwZUltYWdlID0gKGZpbGU6IEZpbGUgfCBCbG9iKSA9PiBmaWxlLnR5cGUubWF0Y2goL2ltYWdlLiovKSA/IHRydWUgOiBmYWxzZTtcbmV4cG9ydCBjb25zdCBpc1R5cGVWaWRlbyA9IChmaWxlOiBGaWxlIHwgQmxvYikgPT4gZmlsZS50eXBlLm1hdGNoKC92aWRlby4qLykgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgY29uc3QgaXNUeXBlQXVkaW8gPSAoZmlsZTogRmlsZSB8IEJsb2IpID0+IGZpbGUudHlwZS5tYXRjaCgvYXVkaW8uKi8pID8gdHJ1ZSA6IGZhbHNlO1xuZXhwb3J0IGNvbnN0IGlzVHlwZUZpbGUgPSAoZmlsZTogRmlsZSkgPT4gZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUpID09PSAnW29iamVjdCBGaWxlXScgPyB0cnVlIDogZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBFeGNlbEV4dExpc3QgPSBbJ3hscycsICd4bHN4JywgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCddO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RXh0TGlzdCA9IFsnZG9jJywgJ2RvY3gnLCAneGxzJywgJ3hsc3gnLCAncHB0JywgJ3BwdHgnLCAncGRmJywgJ2pzb24nLCAneG1sJywgJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICdhcHBsaWNhdGlvbi9wZGYnLFxuICAnYXBwbGljYXRpb24vanNvbicsXG4gICdhcHBsaWNhdGlvbi94bWwnXTtcbmV4cG9ydCBjb25zdCBpc0luY2x1ZGVEb2N1bWVudEV4dExpc3QgPSAoZXh0OiBzdHJpbmcsIGxpc3RFeHQ6IEFycmF5PHN0cmluZz4gPSBEb2N1bWVudEV4dExpc3QpID0+IGxpc3RFeHQuaW5jbHVkZXMoZXh0KSB8fCBsaXN0RXh0LmluY2x1ZGVzKGBhcHBsaWNhdGlvbi8ke2V4dH1gKTtcblxuZXhwb3J0IGNvbnN0IEltYWdlRXh0TGlzdCA9IFsnZ2lmJywgJ2pwZycsICdqcGVnJywgJ3BuZycsICdpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZyddO1xuZXhwb3J0IGNvbnN0IGlzSW5jbHVkZUltYWdlRXh0TGlzdCA9IChleHQ6IHN0cmluZywgbGlzdEV4dDogQXJyYXk8c3RyaW5nPiA9IEltYWdlRXh0TGlzdCkgPT4gbGlzdEV4dC5pbmNsdWRlcyhleHQpO1xuXG5leHBvcnQgY29uc3QgVmlkZW9FeHRMaXN0ID0gWydtcDQnLCAnbW92JywgJ21wZycsICdhdmknLCAnd212JywgJ3ZpZGVvL21wNCcsICd2aWRlby9xdWlja3RpbWUnLCAndmlkZW8vbXBlZycsICd2aWRlby94LW1zdmlkZW8nLCAndmlkZW8veC1tcy13bXYnXTtcbmV4cG9ydCBjb25zdCBpc0luY2x1ZGVWaWRlb0V4dExpc3QgPSAoZXh0OiBzdHJpbmcsIGxpc3RFeHQ6IEFycmF5PHN0cmluZz4gPSBWaWRlb0V4dExpc3QpID0+IGxpc3RFeHQuaW5jbHVkZXMoZXh0KTtcbmV4cG9ydCBjb25zdCBBdWRpb0V4dExpc3QgPSBbJ21wMycsICd3YXYnLCAnb2dnJywgJ2FhYycsICdtNGEnLCAnZmxhYycsICd3bWEnLCAnYXVkaW8vbXBlZycsICdhdWRpby93YXYnLCAnYXVkaW8vb2dnJywgJ2F1ZGlvL2FhYycsICdhdWRpby9tcDQnLCAnYXVkaW8vZmxhYycsICdhdWRpby94LW1zLXdtYSddO1xuZXhwb3J0IGNvbnN0IGlzSW5jbHVkZUF1ZGlvRXh0TGlzdCA9IChleHQ6IHN0cmluZywgbGlzdEV4dDogQXJyYXk8c3RyaW5nPiA9IEF1ZGlvRXh0TGlzdCkgPT4gbGlzdEV4dC5pbmNsdWRlcyhleHQpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZUV4dGVuc2lvbiA9IChmaWxlOiBJRmlsZSB8IEZpbGUpID0+IHtcbiAgaWYgKGZpbGUgaW5zdGFuY2VvZiBGaWxlICYmIGZpbGUudHlwZSkge1xuICAgIHJldHVybiAoZmlsZS50eXBlLnNwbGl0KCcvJykucG9wKCkgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgZmlsZSA9IGZpbGUgYXMgSUZpbGU7XG4gIGlmIChmaWxlLm1pbWV0eXBlIHx8IGZpbGUuZmlsZT8udHlwZSkge1xuICAgIHJldHVybiBmaWxlLm1pbWV0eXBlIHx8IGZpbGUuZmlsZT8udHlwZTtcbiAgfVxuXG4gIGxldCBmaWxlTmFtZSA9IGZpbGUubmFtZSBhcyBzdHJpbmc7XG4gIGNvbnN0IHVybCA9IGdldChmaWxlLCAndXJsJykgfHwgZ2V0KGZpbGUsICdvcmlnaW5fdXJsJyk7XG4gIGlmICghZmlsZU5hbWUgJiYgIXVybCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIWZpbGVOYW1lICYmIHVybCkge1xuICAgIGZpbGVOYW1lID0gdXJsLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gICAgc2V0KGZpbGUsICduYW1lJywgZmlsZU5hbWUpO1xuICB9XG4gIGNvbnN0IGRvdHMgPSBmaWxlTmFtZS5zcGxpdChcIi5cIik7XG5cbiAgaWYgKCFkb3RzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIChkb3RzLnBvcCgpIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExhYmVsQnlTaXplRmlsZSA9IChzaXplOiBudW1iZXIsIHRvRml4ZWQgPSAyKSA9PiB7XG4gIGlmIChzaXplIDwgMTAyNCAqIDEwMjQpIHtcbiAgICByZXR1cm4gYCAkeyhzaXplIC8gMTAyNCkudG9GaXhlZCh0b0ZpeGVkKX0gS0JgO1xuICB9XG5cbiAgcmV0dXJuIGAgJHsoc2l6ZSAvICgxMDI0ICogMTAyNCkpLnRvRml4ZWQodG9GaXhlZCl9IE1CYDtcbn07XG5cblxuXG5leHBvcnQgY29uc3QgY29udmVydEJsb2JUb0ZpbGUgPSAoYmxvYjogQmxvYiwgZmlsZU5hbWU/OiBzdHJpbmcpOiBGaWxlID0+IHtcbiAgY29uc3QgdHlwZSA9IGJsb2IudHlwZS5zcGxpdCgnLycpWzFdO1xuICBjb25zdCBuYW1lID0gZmlsZU5hbWUgPyBgJHtmaWxlTmFtZS5zcGxpdCgnLicpWzBdfS4ke3R5cGV9YCA6IGAke3V1aWQoKX0uJHt0eXBlfWA7XG5cbiAgcmV0dXJuIG5ldyBGaWxlKFtibG9iXSwgbmFtZSwgeyB0eXBlOiBibG9iLnR5cGUsIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VXJsVG9GaWxlID0gKHVybDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2U8RmlsZT4oKHJlc29sdmUscmVqZWN0KSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlID0gY29udmVydEJhc2U2NFRvQmxvYihyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgIHJlc29sdmUoY29udmVydEJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUgfHwgRGF0ZS5ub3coKS50b0xvY2FsZVN0cmluZygpKSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoeGhyLnJlc3BvbnNlKTtcbiAgICB9O1xuICAgIHhoci5vbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfTtcbiAgICB4aHIub3BlbignR0VUJywgdXJsKTtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xuICAgIHhoci5zZW5kKCk7XG4gIH0pO1xufTsiXX0=