igniteui-angular 18.0.0 → 18.0.2

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.
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const IGX_GRID_BASE = /*@__PURE__*/ new InjectionToken('IgxGridBaseToken');
3
3
  export const IGX_GRID_SERVICE_BASE = /*@__PURE__*/ new InjectionToken('IgxGridServiceBaseToken');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBa0IseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtblBpbm5pbmdQb3NpdGlvbiwgRmlsdGVyTW9kZSwgR3JpZFBhZ2luZ01vZGUsIEdyaWRTZWxlY3Rpb25Nb2RlLCBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZSwgR3JpZFN1bW1hcnlQb3NpdGlvbiwgR3JpZFZhbGlkYXRpb25UcmlnZ2VyLCBSb3dQaW5uaW5nUG9zaXRpb24sIFNpemUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3MsXG4gICAgSUdyaWRSb3dFdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncywgSVJvd0RhdGFDYW5jZWxhYmxlRXZlbnRBcmdzLCBJR3JpZEVkaXREb25lRXZlbnRBcmdzLFxuICAgIElHcmlkQ29udGV4dE1lbnVFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcbmltcG9ydCB7IElHcmlkUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuL2dyaWQtcmVzb3VyY2VzJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5RXhwYW5kU3RhdGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1leHBhbmQtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IElneENlbGwsIElneEVkaXRSb3cgfSBmcm9tICcuL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkU2VsZWN0aW9uUmFuZ2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsdGVyaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IERyb3BQb3NpdGlvbiwgSWd4Q29sdW1uTW92aW5nU2VydmljZSB9IGZyb20gJy4uL21vdmluZy9tb3Zpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlLCBJZ3hUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElUcmVlR3JpZFJlY29yZCB9IGZyb20gJy4uL3RyZWUtZ3JpZC90cmVlLWdyaWQuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdGF0ZSwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IERhdGFUeXBlLCBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElneEZpbHRlcmluZ09wZXJhbmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBJQ29sdW1uUGlwZUFyZ3MsIElGaWVsZFBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSURpbWVuc2lvbnNDaGFuZ2UsIElQaXZvdENvbmZpZ3VyYXRpb24sIElQaXZvdERpbWVuc2lvbiwgSVBpdm90S2V5cywgSVBpdm90VmFsdWUsIElWYWx1ZXNDaGFuZ2UsIFBpdm90RGltZW5zaW9uVHlwZSwgSVBpdm90VUlTZXR0aW5ncyB9IGZyb20gJy4uL3Bpdm90LWdyaWQvcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGFDbG9uZVN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtY2xvbmUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uL2dyaWQvZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgSUdYX0dSSURfQkFTRSA9IC8qQF9fUFVSRV9fKi9uZXcgSW5qZWN0aW9uVG9rZW48R3JpZFR5cGU+KCdJZ3hHcmlkQmFzZVRva2VuJyk7XG5leHBvcnQgY29uc3QgSUdYX0dSSURfU0VSVklDRV9CQVNFID0gLypAX19QVVJFX18qL25ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG4vKiogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIHNlZ21lbnQgb2YgYSBwYXRoIGluIGEgaGllcmFyY2hpY2FsIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgLyoqXG4gICAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByb3cgd2l0aGluIHRoZSBzZWdtZW50LlxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMS4wLiBVc2UgdGhlIGByb3dLZXlgIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dLZXk6IGFueTtcbiAgICAvKiogVGhlIGtleSByZXByZXNlbnRpbmcgdGhlIHJvdydzICdoaWVyYXJjaGljYWwgbGV2ZWwuICovXG4gICAgcm93SXNsYW5kS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWREYXRhQmluZGFibGUge1xuICAgIGRhdGE6IGFueVtdIHwgbnVsbDtcbiAgICBnZXQgZmlsdGVyZWREYXRhKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNlbGxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIFRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGNlbGwgaXMgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRWYWx1ZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIEl0IGlzIGZhbHNlLCBpZiB0aGUgc2VsbCBpcyBub3Qgc2VsZWN0ZWQsIGFuZCB0cnVlLCBpZiBpdCBpcy4gKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNlbGwgaXMgY3VycmVudGx5IGFjdGl2ZSAoZm9jdXNlZCkuICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgZWRpdGVkLiAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY29sdW1uIHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0by4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHJvdyB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8gKi9cbiAgICByb3c6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgY2VsbCAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBPcHRpb25hbDsgQW4gb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBjZWxsLiBJdCBjb250YWlucyByb3dJRCwgY29sdW1uSUQsIGFuZCByb3dJbmRleCBvZiB0aGUgY2VsbC4gKi9cbiAgICBpZD86IHsgcm93SUQ6IGFueTsgY29sdW1uSUQ6IG51bWJlcjsgcm93SW5kZXg6IG51bWJlciB9O1xuICAgIC8qKiBPcHRpb25hbDsgVGhlIGBjZWxsSURgIGlzIHRoZSB1bmlxdWUga2V5LCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjZWxsICovXG4gICAgY2VsbElEPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsOyBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIHRoZSBjZWxsLlxuICAgICAqIFdoZXRoZXIgaXQncyB2YWxpZCBvciBpbnZhbGlkLCBhbmQgaWYgaXQgaGFzIGVycm9yc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgLyoqIEFuIG9wdGlvbmFsIHRpdGxlIHRvIGRpc3BsYXkgZm9yIHRoZSBjZWxsICovXG4gICAgdGl0bGU/OiBhbnk7XG4gICAgLyoqIFRoZSBDU1Mgd2lkdGggb2YgdGhlIGNlbGwgYXMgYSBzdHJpbmcuICovXG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiBJdCBjb3VudHMgb25seSB0aGUgdmlzaWJsZSAobm90IGhpZGRlbikgY29sdW1ucyAqL1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHVwZGF0ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gc3RhcnQgb3IgZW5kIHRoZSBlZGl0IG1vZGUgb2YgdGhlIGNlbGwuIEl0IHRha2VzIGEgYm9vbGVhbiB2YWx1ZSBhcyBhbiBhcmd1bWVudCovXG4gICAgc2V0RWRpdE1vZGU/KHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbDtcbiAgICAgKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB0byBmaXQgdGhlIGNvbnRlbnRcbiAgICAgKiBUaGUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB3aXRoIHRoZSBsb25nZXN0IGNvbnRlbnQgYW5kIHJlc2l6ZSBhbGwgY2VsbHMgdG8gdGhhdCBzaXplXG4gICAgICovXG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gYWN0aXZhdGUgdGhlIGNlbGwuXG4gICAgICogSXQgdGFrZXMgYSBmb2N1cyBvciBrZXlib2FyZCBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRvdWJsZS1jbGljayBldmVudHMgb24gdGhlIGNlbGxcbiAgICAgKiBJdCB0YWtlcyBhIG1vdXNlIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGhlYWRlciBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgaGVhZGVyIGNlbGwgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcywgcmVsZXZhbnQgdG8gdGhlIGhlYWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIC8qKiBUaGUgY29sdW1uIHRoYXQgdGhlIGhlYWRlciBjZWxsIHJlcHJlc2VudHMuICovXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWQuICovXG4gICAgc29ydGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBoZWFkZXIgaXMgYSB0aXRsZSBjZWxsLiAqL1xuICAgIHRpdGxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzb3J0aW5nIGRpcmVjdGlvbiBvZiB0aGUgY29sdW1uIChhc2NlbmRpbmcsIGRlc2NlbmRpbmcgb3Igbm9uZSkuICovXG4gICAgc29ydERpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgcm93IGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgcm93IG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgcm93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIHJvdyBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgcm93IHdpdGhpbiB0aGUgZ3JpZCAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb3cgaXMgZ3JvdXBlZC4gKi9cbiAgICBpc0dyb3VwQnlSb3c/OiBib29sZWFuO1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1hcCBvZiBjb2x1bW4gZmllbGQgbmFtZXMgdG8gdGhlIHN1bW1hcnkgcmVzdWx0cyBmb3IgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBsaXN0IG9yIGFuIGFycmF5IG9mIGNlbGxzLCB0aGF0IGJlbG9uZyB0byB0aGUgcm93XG4gICAgICovXG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFZpcnR1YWxpemF0aW9uIHN0YXRlIG9mIGRhdGEgcmVjb3JkIGFkZGVkIGZyb20gY2FjaGVcbiAgICAgKi9cbiAgICB2aXJ0RGlyUm93PzogSWd4R3JpZEZvck9mRGlyZWN0aXZlPENvbHVtblR5cGUsIENvbHVtblR5cGVbXT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgcGlubmVkLlxuICAgICAqL1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgZXhwYW5kZWQuXG4gICAgICogVGhlIHZhbHVlIGlzIHRydWUsIGlmIHRoZSByb3cgaXMgZXhwYW5kZWQgYW5kIGZhbHNlLCBpZiBpdCBpcyBjb2xsYXBzZWRcbiAgICAgKi9cbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgcm93IGlzIG1hcmtlZCBmb3IgZGVsZXRpb24uXG4gICAgICovXG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhZGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkLlxuICAgICAqL1xuICAgIGluRWRpdE1vZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIGNoaWxkIHJvd3Mgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiB0aGVyZSBhcmUgYW55LlxuICAgICAqL1xuICAgIGNoaWxkcmVuPzogUm93VHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIHBhcmVudCByb3cgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiBpdCBoYXMgb25lLlxuICAgICAqIElmIHRoZSBwYXJlbnQgcm93IGV4aXN0LCBpdCBtZWFucyB0aGF0IHRoZSBjdXJyZW50IHJvdyBpcyBhIGNoaWxkIHJvd1xuICAgICAqL1xuICAgIHBhcmVudD86IFJvd1R5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaGFzIGFueSBjaGlsZCByb3dzXG4gICAgICovXG4gICAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIHJlY29yZCBhc3NvY2lhdGVkIHdpdGggdGhlIHJvdyAoZm9yIHRyZWUgZ3JpZHMpLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgSVRyZWVHcmlkUmVjb3JkLCB3aGljaCBjb250YWlucyB0aGUgZGF0YSwgY2hpbGRyZW4sIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwsIGV0Yy5cbiAgICAgKi9cbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSByb3cgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAgICovXG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudCB0aGUgZ3JpZCBpbnN0YW5jZSwgdGhlIHJvdyBiZWxvbmdzIHRvICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50IG9uIHRoZSByb3dcbiAgICAgKiBJdCB0YWtlcyBhIGBNb3VzZUV2ZW50YCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgYWRkaW5nIGEgbmV3IHJvd1xuICAgICAqL1xuICAgIGJlZ2luQWRkUm93PzogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgZWxlbWVudHMgb2YgdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIHRoZSBuZXcgdmFsdWUgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICB1cGRhdGU/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBkZWxldGluZyByb3dzXG4gICAgICovXG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHBpbm5pbmcgYSByb3dcbiAgICAgKi9cbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHVucGlubmluZyBhIHJvdywgdGhhdCBoYXMgYmVlbiBwaW5uZWRcbiAgICAgKi9cbiAgICB1bnBpbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZTogRGF0YVR5cGU7XG4gICAgZmlsdGVyczogSWd4RmlsdGVyaW5nT3BlcmFuZDtcbiAgICBwaXBlQXJnczogSUZpZWxkUGlwZUFyZ3M7XG4gICAgZGVmYXVsdFRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcblxuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2x1bW4gaW4gdGhlIGBHcmlkVHlwZWAuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjb2x1bW4gb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBjb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UeXBlIGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5jdGFuY2Ugb2YgdGhlIHBhcmVudCBgR3JpZFR5cGVgIHRoYXQgY29udGFpbnMgdGhpcyBjb2x1bW4uICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIEEgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMgdW5kZXIgdGhpcyBjb2x1bW4gKGlmIGFueSkuICovXG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICAvKiogQW4gYXJyYXksIGNvbnRhaW5pbmcgYWxsIHRoZSBjaGlsZCBjb2x1bW5zLCBpbmNsdWRpbmcgbmVzdGVkIGNoaWxkcmVuLiAqL1xuICAgIGFsbENoaWxkcmVuOiBDb2x1bW5UeXBlW107XG4gICAgLyoqXG4gICAgICogVGhlIGhlYWRlciBncm91cCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgKi9cbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGNlbGwgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbi5cbiAgICAgKiBDb3VsZCBiZSBvZiBhbnkgdHlwZVxuICAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgY3VzdG9tIGhlYWRlciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjb2xsYXBzaWJsZSBpbmRpY2F0b3Igb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50LiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cENsYXNzZXM6IGFueTtcbiAgICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cFN0eWxlczogYW55O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIENTUyBzdHlsaW5nLCBhcHBwbGllZCB0byBldmVyeSBjb2x1bW5cbiAgICAgKiBjYWxjV2lkdGgsIG1pbldpZHRoUHgsIG1heFdpZHRoUHgsIG1pbldpZHRoLCBtYXhXaWR0aCwgbWluV2lkdGhQZXJjZW50LCBtYXhXaWR0aFBlcmNlbnQsIHJlc29sdmVkV2lkdGhcbiAgICAgKi9cbiAgICBjYWxjV2lkdGg6IGFueTtcbiAgICBtaW5XaWR0aFB4OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQeDogbnVtYmVyO1xuICAgIG1pbldpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICBtYXhXaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICByZXNvbHZlZFdpZHRoOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFJlcHJlc2VudHMgdGhlIGhlYWRlciB0ZXh0IG9mIHRoZSBjb2x1bW5cbiAgICAgKi9cbiAgICBoZWFkZXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gd2l0aGluIHRoZSBncmlkLlxuICAgICAqIEluY2x1ZGVzIHRoZSBoaWRkZW4gY29sdW1ucyB3aGVuIGNvdW50aW5nXG4gICAgICovXG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIGRhdGEgZm9yIHRoZSBjb2x1bW46XG4gICAgICogc3RyaW5nLCBudW1iZXIsIGJ1dWxlYW4sIGN1cnJlbmN5LCBkYXRlLCB0aW1lLCBldGMuXG4gICAgICovXG4gICAgZGF0YVR5cGU6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgY3VzdG9tIGlubGluZSBlZGl0b3Igb2YgdGhlIGNvbHVtblxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBpbmxpbmVFZGl0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGdyaWQuXG4gICAgICogRG9lcyBub3QgaW5jbHVkZSB0aGUgaGlkZGVuIGNvbHVtbnMgd2hlbiBjb3VudGluZ1xuICAgICAqL1xuICAgIHZpc2libGVJbmRleDogbnVtYmVyO1xuICAgIC8qKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlZCB3aGV0aGVyIHRoZSBjb2x1bW4gY2FuIGJlIGNvbGxhcHNlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIGNvbGxhcHNlZFxuICAgICAqIEl0IGlzIHVzZWQgaW4gdHJlZSBncmlkIGFuZCBmb3IgbmF2aWdhdGlvblxuICAgICAqL1xuICAgIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVkIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgZWRpdGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgZWRpdGVkICovXG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb2x1bW4gY2FuIGJlIHJlc2l6ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSByZXNpemVkICovXG4gICAgcmVzaXphYmxlOiBib29sZWFuO1xuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgZGF0YSBvZiB0aGUgY29sdW1uIGNhbiBiZSBzZWFyY2hlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gZGF0YSBjYW4gYmUgc2VhcmNoZWQgKi9cbiAgICBzZWFyY2hhYmxlOiBib29sZWFuO1xuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgY29sdW1uIGJlbG9uZ3MgdG8gYSBncm91cCBvZiBjb2x1bW5zLiAqL1xuICAgIGNvbHVtbkdyb3VwOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcHV0IGluIGEgZ3JvdXAuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBwdXQgaW4gYSBncm91cCAqL1xuICAgIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gKi9cbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIGZpbHRlcmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBmaWx0ZXJhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBpcyBjdXJyZW50bHkgaGlkZGVuIChub3QgdmlzaWJsZSkuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIG5vdCB2aXNpYmxlICovXG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW5ub3QgYmUgcGlubmVkICovXG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBoaWRkZW4uIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbm5vdCBiZSBoaWRkZW4gKi9cbiAgICBkaXNhYmxlSGlkaW5nOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3J0aW5nIHN0cmF0ZWd5IHVzZWQgZm9yIHNvcnRpbmcgdGhpcyBjb2x1bW4uXG4gICAgICogVGhlIGludGVyZmFjZSBjb250YWlucyBhIG1ldGhvZCBzb3J0IHRoYXQgc29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnNcbiAgICAgKi9cbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWFyY2ggc2hvdWxkIG1hdGNoIHJlc3VsdHMsIG5vIG1hdHRlciB0aGUgY2FzZSBvZiB0aGUgbGV0dGVycyAodXBwZXIgYW5kIGxvd2VyKVxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlIHJlc3VsdCB3aWxsIGRlcGVuZCBvbiB0aGUgY2FzZSAoZXhhbXBsZTogYEVgIHdpbGwgbm90IG1hdGNoIGBlYClcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIG5vdCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG1hdGNoIGBlYClcbiAgICAgKi9cbiAgICBzb3J0aW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJDZWxsOiBhbnk7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsdGVyaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgY29sdW1uLlxuICAgICAqIFRoZSB0eXBlIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGZpbHRlcmluZzogZmlsdGVyaW5nT3BlcmFuZHMsIG9wZXJhdG9yIChsb2dpYyksIGZpZWxkTmFtZSwgZXRjLlxuICAgICAqL1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgc3VtbWFyaWVzOiBhbnk7XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgYSBzdW1tYXJ5IG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc3VtbWFyeVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBwaW5uZWQgKi9cbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBleHBhbmRlZCBvciBjb2xsYXBzZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIGV4cGFuZGVkICovXG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gY2FuIGJlIHNlbGVjdGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGNvbHVtbkxheW91dDogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIGxldmVsIG9mIHRoZSBjb2x1bW4gaW4gdGhlIGNvbHVtbiBsYXlvdXQgKi9cbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHJvd1N0YXJ0OiBudW1iZXI7XG4gICAgcm93RW5kOiBudW1iZXI7XG4gICAgY29sU3RhcnQ6IG51bWJlcjtcbiAgICBjb2xFbmQ6IG51bWJlcjtcbiAgICBncmlkUm93U3BhbjogbnVtYmVyO1xuICAgIGdyaWRDb2x1bW5TcGFuOiBudW1iZXI7XG4gICAgY29sdW1uTGF5b3V0Q2hpbGQ6IGJvb2xlYW47XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSByb290IHBhcmVudCBvZiB0aGlzIGNvbHVtbiAoaWYgYW55KS5cbiAgICAgKiBJZiB0aGVyZSBpcyBubyByb290IHBhcmVudCwgdGhhdCBtZWFucyB0aGUgY3VycmVudCBzb2x1bm0gaXMgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIGltbWVkaWF0ZSBwYXJlbnQgKHJpZ2h0IGFib3ZlKSBjb2x1bW4gb2YgdGhpcyBjb2x1bW4gKGlmIGFueSkuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gcGFyZW50LCB0aGF0IG1lYW5zIHRoZSBjdXJyZW50IHNvbHVubSBpcyB0aGUgcm9vdCBwYXJlbnRcbiAgICAgKi9cbiAgICBwYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBpcGVBcmdzOiBJQ29sdW1uUGlwZUFyZ3M7XG4gICAgaGFzTmVzdGVkUGF0aDogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUgbGFzdCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGFmdGVyIHRoZSBjdXJyZW50ICovXG4gICAgaXNMYXN0UGlubmVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGZvciB0aGUgZ3JpZCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGJlZm9yZSB0aGUgY3VycmVudCAqL1xuICAgIGlzRmlyc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXBwbHlTZWxlY3RhYmxlQ2xhc3M6IGJvb2xlYW47XG4gICAgLyoqIFRoZSB0aXRsZSBvZiB0aGUgY29sdW1uLCB1c2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCB3aXRoIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuICovXG4gICAgZ3JvdXBpbmdDb21wYXJlcjogKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgY3VzdG9tIHRlbXBsYXRlIGZvciBmaWx0ZXJpbmdcbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZmlsdGVyQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgZGVmaW5pdGlvbiB0byBtb3ZlIHRoZSBjb2x1bW4gdG8gdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKiBJdCB0YWtlcyB0aGUgaW5kZXggb2YgdHlwZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXJcbiAgICAqL1xuICAgIG1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgc2l6ZSAqL1xuICAgIGdldEF1dG9TaXplKCk6IHN0cmluZztcbiAgICBnZXRSZXNpemFibGVDb2xVbmRlckVuZCgpOiBNUkxSZXNpemVDb2x1bW5JbmZvW107XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgd2lkdGggb2YgdGhlIGNlbGxzIHVuZGVyIHRoZSBjb2x1bW4gKi9cbiAgICBnZXRDZWxsV2lkdGgoKTogc3RyaW5nO1xuICAgIGdldEdyaWRUZW1wbGF0ZShpc1JvdzogYm9vbGVhbik6IHN0cmluZztcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB0b2dnbGUgY29sdW1uIHZpYmlzaWxpdHkgKGhpZGRlbiBvciB2aXNpYmxlKSAqL1xuICAgIHRvZ2dsZVZpc2liaWxpdHkodmFsdWU/OiBib29sZWFuKTogdm9pZDtcbiAgICBwb3B1bGF0ZVZpc2libGVJbmRleGVzPygpOiB2b2lkO1xuICAgIC8qKiBQaW5zIHRoZSBjb2x1bW4gYXQgdGhlIHNwZWNpZmllZCBpbmRleCAoaWYgbm90IGFscmVhZHkgcGlubmVkKS4gKi9cbiAgICBwaW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xuICAgIC8qKiBVbnBpbnMgdGhlIGNvbHVtbiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IChpZiBub3QgYWxyZWFkeSB1bnBpbm5lZCkuICovXG4gICAgdW5waW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyB3aGVuIGEgZm9ybSBncm91cCBpcyBjcmVhdGVkIGluIHRoZSBncmlkLlxuICogLSBmb3JtR3JvdXA6IFRoZSBmb3JtIGdyb3VwIHRoYXQgaXMgY3JlYXRlZC5cbiAqIC0gb3duZXI6IFRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgZm9ybSBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3Mge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyBmb3IgdGhlIGdyaWQgdmFsaWRhdGlvbiBzdGF0dXMgY2hhbmdlIGV2ZW50LlxuICogLSBzdGF0dXM6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyAoJ1ZBTElEJyBvciAnSU5WQUxJRCcpLlxuICogLSBvd25lcjogVGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSB2YWxpZGF0aW9uIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncyB7XG4gICAgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXR1cy5cbiAqIC0gJ1ZBTElEJzogVGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIHZhbGlkLlxuICogLSAnSU5WQUxJRCc6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uU3RhdHVzID0gJ1ZBTElEJyB8ICdJTlZBTElEJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZ3JpZC5cbiAqIC0gc3RhdHVzOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgKCdWQUxJRCcgb3IgJ0lOVkFMSUQnKS5cbiAqIC0gZXJyb3JzOiBUaGUgdmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXM7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgcmVjb3JkIGluIHRoZSBncmlkLlxuICogLSBga2V5YDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZWNvcmQuXG4gKiAtIGBmaWVsZHNgOiBBbiBhcnJheSBvZiB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBpbmRpdmlkdWFsIGZpZWxkcyBpbiB0aGUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAga2V5OiBhbnk7XG4gICAgZmllbGRzOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZmllbGQgaW4gdGhlIGdyaWQuXG4gKiAtYGZpZWxkYDogVGhlIG5hbWUgb2YgdGhlIGZpZWxkIChwcm9wZXJ0eSkgYmVpbmcgdmFsaWRhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBmaWVsZDogc3RyaW5nXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc2VydmljZSBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNlcnZpY2VUeXBlIHtcblxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYEdyaWRUeXBlYCB0aGF0IGNvbnRhaW5zIHRoZSBzZXJ2aWNlLiAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBDUlVEIHNlcnZpY2UgKENyZWF0ZSwgUmVhZCwgVXBkYXRlLCBEZWxldGUpIG9wZXJhdGlvbnMgb24gdGhlIGdyaWQgZGF0YS4gKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBBIHNlcnZpY2UgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIGNvbHVtbiBtb3Zpbmcgd2l0aGluIHRoZSBncmlkLiBJdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgY29sdW1uLCBpdHMgaWNvbiwgYW5kIGluZGljYXRvciBmb3IgY2FuY2VsYXRpb24uICovXG4gICAgY21zOiBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgdXNlZCBpbiB0aGUgZ3JpZC4gVGhlIHJldHVybmVkIHZhbHVlcyBjb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGdldF9kYXRhKCk6IGFueVtdO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYWxsIHRoZSBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgZ3JpZCwgaW5jbHVkaW5nIGFueSB0cmFuc2FjdGlvbmFsIGRhdGEuXG4gICAgICogYGluY2x1ZGVUcmFuc2FjdGlvbnNgOiBPcHRpb25hbCBwYXJhbWV0ZXIuIFNwZWNpZmllcyB3aGV0aGVyIHRvIGluY2x1ZGUgdHJhbnNhY3Rpb25hbCBkYXRhIGlmIHByZXNlbnQuXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGdyaWQuXG4gICAgICovXG4gICAgZ2V0X2FsbF9kYXRhKGluY2x1ZGVUcmFuc2FjdGlvbnM/OiBib29sZWFuKTogYW55W107XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gb2JqZWN0IGJ5IGl0cyBuYW1lLCB0YWtlbiBhcyBhIHBhcmFtZXRlci4gKi9cbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldFJvd0RhdGEoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByZWNvcmQgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldF9yZWNfYnlfaWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgYSBzcGVjaWZpYyByb3cgYnkgaXRzIGRhdGEuICovXG4gICAgZ2V0X3Jvd19pZChyb3dEYXRhOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgaW5kZXggKHRha2VuIGFzIGEgcGFyYW1ldGVyKSBpbiB0aGUgZ3JpZCAqL1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMga2V5ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIGdyaWQgKi9cbiAgICBnZXRfcm93X2J5X2tleShyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLiAqL1xuICAgIGdldF9yZWNfaW5kZXhfYnlfaWQocGs6IHN0cmluZyB8IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIGluZGV4LiAqL1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gaW4gdGhlIGdyaWQuICovXG4gICAgZ2V0X2NlbGxfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy4gKi9cbiAgICBnZXRfY2VsbF9ieV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JRDogbnVtYmVyIHwgc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy5cbiAgICAgKiBJdCBjb3VudHMgb25seSB0aGUgaW5kZXhlcyBvZiB0aGUgdmlzaWJsZSBjb2x1bW5zIGFuZCByb3dzXG4gICAgICovXG4gICAgZ2V0X2NlbGxfYnlfdmlzaWJsZV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiB0aGF0IHNldHMgdGhlIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIGdyb3VwIHJvdyAodXNlZCBmb3IgdHJlZSBncmlkcylcbiAgICAgKiBJdCB0YWtlcyB0aGUgdmFsdWUgZm9yIHRoZSBleHBhbnRpb24gYXMgYSBwYXJhbWV0ZXIgKGV4cGFuZGVkIG9yIGNvbGxhcHNlZClcbiAgICAgKi9cbiAgICBzZXRfZ3JvdXByb3dfZXhwYW5zaW9uX3N0YXRlPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICByb3dfZGVsZXRlZF90cmFuc2FjdGlvbihpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBhZGRpbmcgYSBuZXcgcm93IHRvIHRoZSBncmlkLlxuICAgICAqIEl0IHRha2VzIHRoZSByb3cncyBkYXRhIGFuZCB0aGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50IHJvdyBpZiBhcHBsaWNhYmxlICh1c2VkIGZvciB0cmVlIGdyaWRzKVxuICAgICAqL1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgZGVsZXRpbmcgYSByb3csIHNwZWNpZmllZCBieSBpdCdzIGlkZW50aWRpZXIgKHRha2VuIGFzIGEgcGFyYW1ldGVyKSAqL1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgcm93J3MgY3VycmVudCBzdGF0ZSBvZiBleHBhbnRpb24gKHVzZWQgZm9yIHRyZWUgZ3JpZHMpKi9cbiAgICBnZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc2V0dGluZyBhIG5ldyBleHBhbnRpb24gc3RhdGUuIEl0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKi9cbiAgICBzZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQ7XG4gICAgZ2V0X3N1bW1hcnlfZGF0YSgpOiBhbnlbXTtcblxuICAgIHByZXBhcmVfc29ydGluZ19leHByZXNzaW9uKHN0YXRlQ29sbGVjdGlvbnM6IEFycmF5PEFycmF5PGFueT4+LCBleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNvcnRpbmcgYnkgb25seSBvbmUgZXhwcmVzc2lvblxuICAgICAqIFRoZSBleHByZXNzaW9uIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzb3J0aW5nIGJ5IG11bHRpcGxlIGV4cHJlc3Npb25zXG4gICAgICogVGhlIGV4cHJlc3Npb25zIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnRfbXVsdGlwbGUoZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmVzZXRpbmcgdGhlIHNvcnRpbmcgKi9cbiAgICBjbGVhcl9zb3J0KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKiBSZXByZXNlbnRzIGFuIGV2ZW50LCB0cmlnZ2VyZWQgd2hlbiB0aGUgcGluIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBnZXRfcGluX3Jvd19ldmVudF9hcmdzKHJvd0lEOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlLCBwaW5uZWQ/OiBib29sZWFuKTogSVBpblJvd0V2ZW50QXJncztcblxuICAgIGZpbHRlckRhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdO1xuICAgIHNvcnREYXRhQnlFeHByZXNzaW9ucyhkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogYW55W107XG5cbiAgICB1cGRhdGVfY2VsbChjZWxsOiBJZ3hDZWxsKTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuICAgIHVwZGF0ZV9yb3cocm93OiBJZ3hFZGl0Um93LCB2YWx1ZTogYW55LCBldmVudD86IEV2ZW50KTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuXG4gICAgZXhwYW5kX3BhdGhfdG9fcmVjb3JkPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCk6IHZvaWQ7XG4gICAgZ2V0X3NlbGVjdGVkX2NoaWxkcmVuPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCwgc2VsZWN0ZWRSb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBnZXRfZ3JvdXBCeV9yZWNvcmRfaWQ/KGdSb3c6IElHcm91cEJ5UmVjb3JkKTogc3RyaW5nO1xuICAgIHJlbW92ZV9ncm91cGluZ19leHByZXNzaW9uPyhmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXJfZ3JvdXBieT8oZmllbGQ6IHN0cmluZyB8IGFueSk6IHZvaWQ7XG4gICAgZ2V0UGFyZW50Um93SWQ/KGNoaWxkOiBHcmlkVHlwZSk6IGFueTtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IEdyaWRUeXBlW107XG4gICAgZ2V0Q2hpbGRHcmlkPyhwYXRoOiBJUGF0aFNlZ21lbnRbXSk6IEdyaWRUeXBlO1xuXG4gICAgdW5zZXRDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG59XG5cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgZ3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWRcbiAqIEV4dGVuZHMgYElHcmlkRGF0YUJpbmRhYmxlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRUeXBlIGV4dGVuZHMgSUdyaWREYXRhQmluZGFibGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsb2NhbGUgb2YgdGhlIGRyaWc6IGBVU0RgLCBgRVVSYCwgYEdCUGAsIGBDTllgLCBgSlBZYCwgZXRjLiAqL1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgYXJlIGVkaXRhYmxlLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcm93cyBjYW4gYmUgZWRpdGVkICovXG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpbiB0aGUgZ3JpZCBpcyBlbmFibGVkLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgZ3JpZCBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgY2FuIGJlIGRyYWdnZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgcHJpbWFyeSBrZXkgdXNlZCBmb3IgaWRlbnRpZnlpbmcgcm93cyBpbiB0aGUgZ3JpZCAqL1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdyaWQuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhlaWdodCBvZiB0aGUgdmlzaWJsZSByb3dzIGluIHRoZSBncmlkLiAqL1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cGFibGVQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaXMgY3VycmVudGx5IGluIGEgbW92aW5nIHN0YXRlLiAqL1xuICAgIG1vdmluZzogYm9vbGVhbjtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JpZFNpemU6IFNpemU7XG5cbiAgICAvKiogU3RyYXRlZ3ksIHVzZWQgZm9yIGNsb25pbmcgdGhlIHByb3ZpZGVkIGRhdGEuIFRoZSB0eXBlIGhhcyBvbmUgbWV0aG9kLCB0aGF0IHRha2VzIGFueSB0eXBlIG9mIGRhdGEgKi9cbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgc2VydmljZSB0eXBlIHByb3ZpZGluZyBBUEkgbWV0aG9kcyBmb3IgdGhlIGdyaWQgKi9cbiAgICByZWFkb25seSBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICAvKiogVGhlIGZpbHRlciBtb2RlIGZvciB0aGUgZ3JpZC4gSXQgY2FuIGJlIHF1aWNrIGZpbHRlciBvZiBleGNlbC1zdHlsZSBmaWx0ZXIgKi9cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHZpcnR1YWxpemF0aW9uIGZvciB0aGUgZ3JpZC4gSXQgaGFzIGFuIG93bmVyLCBzdGFydCBpbmRleCBhbmQgY2h1bmsgc2l6ZSAqL1xuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHNlcnZpY2UgaGFuZGxpbmcgc2VsZWN0aW9uIGluIHRoZSBncmlkLiBTZWxlY3RpbmcsIGRlc2VsZWN0aW5nIGVsZW1lbnRzICovXG4gICAgc2VsZWN0aW9uU2VydmljZTogYW55O1xuICAgIG5hdmlnYXRpb246IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBhbnk7XG4gICAgb3V0bGV0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgY2FuIGJlIG1vdmVkICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzTW92YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3Mgcm93cyBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3RvcnMgb2YgdGhlIHJvd3MgYXJlIHZpc2libGUgKi9cbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCdzIGVsZW1lbnQgaXMgcGlubmVkIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JpZCAqL1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgLyoqIElkaWNhdGVzIGlmIHRoZSBjb2x1bW4gb2YgdGhlIGdyaWQgaXMgaW4gZHJhZyBtb2RlICovXG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiBwaW5uZWQgZWxlbWVudCAqL1xuICAgIHBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiB1bnBpbm5lZCBlbGVtZW50ICovXG4gICAgdW5waW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgQ1NTIG1hcmdpbiBvZiB0aGUgc3VtbWFyaWVzICovXG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgYXJlIHNob3duICovXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBoYXMgZXhwYW5kYWJsZSBjaGlsZHJlbiAoaGllcmFyY2hpY2FsIGFuZCB0cmVlIGdyaWQpXG4gICAgICovXG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIGNvbGxhcHNlZCBncmlkIGVsZW1lbnRzIHNob3VsZCBiZSBleHBhbmRlZFxuICAgICAqL1xuICAgIHNob3dFeHBhbmRBbGw/OiBib29sZWFuO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvdW50IG9mIG9ubHkgdGhlIGhpZGRlbiAobm90IHZpc2libGUpIGNvbHVtbnMgKi9cbiAgICBoaWRkZW5Db2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY291bnQgb2Ygb25seSB0aGUgcGlubmVkIGNvbHVtbnMgKi9cbiAgICBwaW5uZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncmlkIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBpY29uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncm91cC1ieSByb3dzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBncm91cCByb3cgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IGxvYWRpbmcgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IHNlbGVjdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgYXNjZW5kaW5nIHNvcnQgaGVhZGVyIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGRlc2NlbmRpbmcgc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBjb2xsYXBzZWQgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyQ29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGV4cGFuZGVkIGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlckV4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKiBUaGUgdGVtcGxhdGUgZm9yIGRyYWcgaW5kaWNhdG9yIGljb25zLiBDb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICAvKiogVGhlIGJhc2UgZHJhZyBpbmRpY2F0b3IgaWNvbi4gQ291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdHJhbnNpdGlvbnMgYXJlIGRpc2FibGVkIGZvciB0aGUgZ3JpZC4gKi9cbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW5jeSBzeW1ib2wgaXMgcG9zaXRpb25lZCB0byB0aGUgbGVmdCBvZiB2YWx1ZXMuICovXG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gaXMgc2V0IGJ5IHRoZSB1c2VyLCBvciBpcyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkuICovXG4gICAgY29sdW1uV2lkdGhTZXRCeVVzZXI6IGJvb2xlYW47XG4gICAgaGVhZGVyRmVhdHVyZXNXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBDU1Mgc3R5bGluZyBjYWxjdWxhdGVkIGZvciBhbiBlbGVtZW50OiBjYWxjSGVpZ2h0LCBjYWxjV2lkdGgsIG91dGVyV2lkdGggKi9cbiAgICBjYWxjSGVpZ2h0OiBudW1iZXI7XG4gICAgY2FsY1dpZHRoOiBudW1iZXI7XG4gICAgb3V0ZXJXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgaGVpZ2h0IG9mIGVhY2ggcm93IGluIHRoZSBncmlkLiBTZXR0aW5nIGEgY29uc3RhbnQgaGVpZ2h0IGNhbiBzb2x2ZSBwcm9ibGVtcyB3aXRoIG5vdCBzaG93aW5nIGFsbCBhbGVtZW50cyB3aGVuIHNjcm9sbGluZyAqL1xuICAgIHJvd0hlaWdodDogbnVtYmVyO1xuICAgIG11bHRpUm93TGF5b3V0Um93U2l6ZTogbnVtYmVyO1xuICAgIC8qKiBNaW5pbWFsIHdpZHRoIGZvciBoZWFkZXJzICovXG4gICAgZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6IGFueTtcbiAgICBtYXhMZXZlbEhlYWRlckRlcHRoOiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBmb250IHNpemUsIGNhbGN1bGF0ZWQgZm9yIGVhY2ggZWxlbWVudCAqL1xuICAgIF9iYXNlRm9udFNpemU/OiBudW1iZXI7XG4gICAgc2Nyb2xsU2l6ZTogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSB0cmlnZ2VyIGZvciBncmlkIHZhbGlkYXRpb24uIEl0J3MgdmFsdWUgY2FuIGVpZ2h0ZXIgYmUgYGNoYW5nZWAgb3IgYGJsdXJgICovXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgY29sdW1ucyBhbmQgcm93cyBwaW5uaW5nIGluIHRoZSBncmlkXG4gICAgICogSXQncyBvZiB0eXBlIElQaW5uaW5nQ29uZmlnLCB3aGljaCBjYW4gaGF2ZSB2YWx1ZSBmb3IgY29sdW1ucyAoc3RhcnQsIGVuZCkgYW5kIGZvciByb3dzICh0b3AsIGJvdHRvbSlcbiAgICAqL1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICAvKiogQW4gdW5tb2RpZmlhYmxlIGxpc3QsIGNvbnRhaW5pbmcgYWxsIHRoZSBjb2x1bW5zIG9mIHRoZSBncmlkLiAqL1xuICAgIGNvbHVtbkxpc3Q6IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBjb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB2aXNpYmxlIChub3QgaGlkZGVuKSBpbiB0aGUgdmlldyAqL1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBub3QgcGlubmVkICovXG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBwaW5uZWQgKi9cbiAgICBwaW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgdGhlIGhlYWRlcnMgb2YgdGhlIGNvbHVtbnMgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGNlbGxzIGFyZSBzZWxlY3RhYmxlIGluIHRoZSBncmlkICovXG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgaXQgaXMgYWxsb3dlZCB0byBzZWxlY3QgbW9yZSB0aGFuIG9uZSByb3cgaW4gdGhlIGdyaWQgKi9cbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0cmFuc2FjdGlvbiBzZXJ2aWNlIGZvciB0aGUgZ3JpZC4gKi9cbiAgICByZWFkb25seSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB2YWxpZGF0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIChsb2dpYykgZm9yIHZhbGlkYXRpbmcgcmVjb3JkcyAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb246IElneEdyaWRWYWxpZGF0aW9uU2VydmljZTtcbiAgICBkZWZhdWx0U3VtbWFyeUhlaWdodDogbnVtYmVyO1xuICAgIHN1bW1hcnlSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICByb3dFZGl0aW5nT3ZlcmxheTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xuICAgIHRvdGFsUm93c0NvdW50QWZ0ZXJGaWx0ZXI6IG51bWJlcjtcbiAgICBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgcGFnaW5nIG9mIHRoZSBncmlkLiBJdCBjYW4gYmUgZWlnaHRlciAnTG9jYWwnIG9yICdSZW1vdGUnXG4gICAgICogLSBMb2NhbDogRGVmYXVsdCB2YWx1ZTsgVGhlIGdyaWQgd2lsbCBwYWdpbmF0ZSB0aGUgZGF0YSBzb3VyY2UgYmFzZWQgb24gdGhlIHBhZ2VcbiAgICAgKi9cbiAgICBwYWdpbmdNb2RlOiBHcmlkUGFnaW5nTW9kZTtcbiAgICAvKiogVGhlIHBhZ2luZyBzdGF0ZSBmb3IgdGhlIGdyaWQ7IFVzZWQgdG8gY29uZmlndXJlIGhvdyBwYWdpbmcgc2hvdWxkIGJlIGFwcGxpZWQgLSB3aGljaCBpcyB0aGUgY3VycmVudCBwYWdlLCByZWNvcmRzIHBlciBwYWdlICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwYWdpbmdTdGF0ZTogYW55O1xuXG4gICAgcm93RWRpdFRhYnM6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbGFzdCBzZWFyY2ggaW4gdGhlIGdyaWRcbiAgICAgKiBJdCBjb250YWlucyB0aGUgc2VhcmNoIHRleHQgKHRoZSB1c2VyIGhhcyBlbnRlcmVkKSwgdGhlIG1hdGNoIGFuZCBzb21lIHNldHRpbmdzIGZvciB0aGUgc2VhcmNoXG4gICAgICovXG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgLyoqIFRoZSBJRCBvZiB0aGUgcm93IGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkIGluIHRoZSBncmlkLiAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRyYWdSb3dJRDogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCAqL1xuICAgIHJvd0RyYWdnaW5nOiBib29sZWFuO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIFByb3BlcnR5LCB0aGF0IHByb3ZpZGVzIGEgY2FsbGJhY2sgZm9yIGxvYWRpbmcgdW5pcXVlIGNvbHVtbiB2YWx1ZXMgb24gZGVtYW5kLlxuICAgICAqIElmIHRoaXMgcHJvcGVydHkgaXMgcHJvdmlkZWQsIHRoZSB1bmlxdWUgdmFsdWVzIGl0IGdlbmVyYXRlcyB3aWxsIGJlIHVzZWQgYnkgdGhlIEV4Y2VsIFN0eWxlIEZpbHRlcmluZyAgKi9cbiAgICB1bmlxdWVDb2x1bW5WYWx1ZXNTdHJhdGVneTogKGNvbHVtbjogQ29sdW1uVHlwZSwgdHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBkb25lOiAodmFsdWVzOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgZ2V0cyB0aGUgaGVhZGVyIGNlbGwgaW5uZXIgd2lkdGggZm9yIGF1dG8tc2l6aW5nLiAqL1xuICAgIGdldEhlYWRlckNlbGxXaWR0aDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBJU2l6ZUluZm87XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBjaGFuZ2UgZGV0ZWN0aW9uIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQSBjaGFuZ2UtZGV0ZWN0aW9uIHRyZWUgY29sbGVjdHMgYWxsIHZpZXdzIHRoYXQgYXJlIHRvIGJlIGNoZWNrZWQgZm9yIGNoYW5nZXMuXG4gICAgICogVGhlIHByb3BlcnR5IGNhbm5vdCBiZSBjaGFuZ2VkIChyZWFkb25seSkgKi9cbiAgICByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBleHBhbmRlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93RXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBjb2xsYXBzZWQgcm93IGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBpY29uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGV4Y2VsU3R5bGVIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgc2VsZWN0Um93T25DbGljazogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNlbGxzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHNlbGVjdGlvbiBtb2RlIGZvciByb3dzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNvbHVtbnM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjYWxjdWxhdGlvbiBtb2RlIGZvciBzdW1tYXJpZXM6ICdyb290TGV2ZWxPbmx5JywgJ2NoaWxkTGV2ZWxzT25seScsICdyb290QW5kQ2hpbGRMZXZlbHMnICovXG4gICAgc3VtbWFyeUNhbGN1bGF0aW9uTW9kZTogR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIHN1bW1hcmllczogJ3RvcCcsICdib3R0b20nICovXG4gICAgc3VtbWFyeVBvc2l0aW9uOiBHcmlkU3VtbWFyeVBvc2l0aW9uO1xuXG4gICAgLy8gWFhYOiBXb3JrIGFyb3VuZCB0aWxsIHdlIGZpeGVkIHRoZSBpbmplY3Rpb24gdG9rZW5zXG4gICAgbGFzdENoaWxkR3JpZD86IEdyaWRUeXBlO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRvb2xiYXJPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgZmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgY2hpbGRSb3c/OiBhbnk7XG4gICAgZXhwYW5zaW9uRGVwdGg/OiBudW1iZXI7XG4gICAgY2hpbGREYXRhS2V5PzogYW55O1xuICAgIGZvcmVpZ25LZXk/OiBhbnk7XG4gICAgY2FzY2FkZU9uRGVsZXRlPzogYm9vbGVhbjtcbiAgICBsb2FkQ2hpbGRyZW5PbkRlbWFuZD86IChwYXJlbnRJRDogYW55LCBkb25lOiAoY2hpbGRyZW46IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGhhc0NoaWxkcmVuS2V5PzogYW55O1xuICAgIGxvYWRpbmdSb3dzPzogU2V0PGFueT47XG4gICAgcGFyZW50PzogR3JpZFR5cGU7XG4gICAgaGlnaGxpZ2h0ZWRSb3dJRD86IGFueTtcbiAgICB1cGRhdGVPblJlbmRlcj86IGJvb2xlYW47XG4gICAgY2hpbGRMYXlvdXRLZXlzPzogYW55W107XG4gICAgY2hpbGRMYXlvdXRMaXN0PzogUXVlcnlMaXN0PGFueT47XG4gICAgcm9vdEdyaWQ/OiBHcmlkVHlwZTtcbiAgICBwcm9jZXNzZWRSb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgcHJvY2Vzc2VkRXhwYW5kZWRGbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBwcm9jZXNzZWRSZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICB0cmVlR3JvdXBBcmVhPzogYW55O1xuXG4gICAgYWN0aXZlTm9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzPjtcbiAgICBncmlkS2V5ZG93bjogRXZlbnRFbWl0dGVyPElHcmlkS2V5ZG93bkV2ZW50QXJncz47XG4gICAgY2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICByb3dDbGljazogRXZlbnRFbWl0dGVyPElHcmlkUm93RXZlbnRBcmdzPjtcbiAgICBkb3VibGVDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgY29udGV4dE1lbnU6IEV2ZW50RW1pdHRlcjxJR3JpZENvbnRleHRNZW51RXZlbnRBcmdzPjtcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgcmFuZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT47XG4gICAgcm93U2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJUm93U2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBsb2NhbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBmaWx0ZXJpbmc6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXZlbnRBcmdzPjtcbiAgICBmaWx0ZXJpbmdEb25lOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgY29sdW1uUGlubmVkOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkV2ZW50QXJncz47XG4gICAgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPElDb2x1bW5SZXNpemVFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ0VuZDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblNlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0V2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblBpbjogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIGJhdGNoRWRpdGluZ0NoYW5nZT86IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUNhbmNlbGFibGVFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZTogRXZlbnRFbWl0dGVyPElSb3dEYXRhQ2FuY2VsYWJsZUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICByb3dEcmFnRW5kOiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdFbmRFdmVudEFyZ3M+O1xuICAgIHJvd1RvZ2dsZTogRXZlbnRFbWl0dGVyPElSb3dUb2dnbGVFdmVudEFyZ3M+O1xuICAgIGZvcm1Hcm91cENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3M+O1xuICAgIHZhbGlkYXRpb25TdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3M+O1xuXG4gICAgdG9vbGJhckV4cG9ydGluZzogRXZlbnRFbWl0dGVyPElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncz47XG4gICAgcmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlc2l6ZU5vdGlmeTogU3ViamVjdDx2b2lkPjtcblxuICAgIHNvcnRTdHJhdGVneTogSUdyaWRTb3J0aW5nU3RyYXRlZ3k7XG4gICAgZ3JvdXBTdHJhdGVneT86IElHcmlkR3JvdXBpbmdTdHJhdGVneTtcbiAgICBmaWx0ZXJpbmdMb2dpYzogRmlsdGVyaW5nTG9naWM7XG4gICAgZmlsdGVyU3RyYXRlZ3k6IElGaWx0ZXJpbmdTdHJhdGVneTtcbiAgICBhbGxvd0FkdmFuY2VkRmlsdGVyaW5nOiBib29sZWFuO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW107XG4gICAgc29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIHNvcnRpbmdPcHRpb25zOiBJU29ydGluZ09wdGlvbnM7XG5cbiAgICBiYXRjaEVkaXRpbmc6IGJvb2xlYW47XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZT86IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcbiAgICBncm91cHNFeHBhbmRlZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgZ3JvdXBzUmVjb3Jkcz86IElHcm91cEJ5UmVjb3JkW107XG4gICAgZ3JvdXBpbmdGbGF0UmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ01ldGFkYXRhPzogYW55W107XG4gICAgc2VsZWN0ZWRDZWxscz86IENlbGxUeXBlW107XG4gICAgc2VsZWN0ZWRSb3dzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBhY3RpdmVEZXNjZW5kYW50Pzogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGlzUGl2b3Q/OiBib29sZWFuO1xuXG4gICAgdG9nZ2xlR3JvdXA/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZz8oZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeT8oZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbiAgICByZXNvbHZlT3V0bGV0PygpOiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuICAgIHVwZGF0ZUNvbHVtbnMoY29sdW1uczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBnZXRTZWxlY3RlZFJhbmdlcygpOiBHcmlkU2VsZWN0aW9uUmFuZ2VbXTtcbiAgICBkZXNlbGVjdEFsbENvbHVtbnMoKTogdm9pZDtcbiAgICBkZXNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdGVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW107XG4gICAgcmVmcmVzaFNlYXJjaCgpOiB2b2lkO1xuICAgIGdldERlZmF1bHRFeHBhbmRTdGF0ZShyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgdHJhY2tDb2x1bW5DaGFuZ2VzKGluZGV4OiBudW1iZXIsIGNvbHVtbjogYW55KTogYW55O1xuICAgIGdldFBvc3NpYmxlQ29sdW1uV2lkdGgoKTogc3RyaW5nO1xuICAgIHJlc2V0SG9yaXpvbnRhbFZpcnR1YWxpemF0aW9uKCk6IHZvaWQ7XG4gICAgaGFzVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbjtcbiAgICBnZXRWaXNpYmxlQ29udGVudEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0RHJhZ0dob3N0Q3VzdG9tVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgb3BlblJvd092ZXJsYXkoaWQ6IGFueSk6IHZvaWQ7XG4gICAgb3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncyk6IHZvaWQ7XG4gICAgc2hvd1NuYWNrYmFyRm9yKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldENvbHVtbkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IENvbHVtblR5cGU7XG4gICAgZ2V0SGVhZGVyR3JvdXBXaWR0aChjb2x1bW46IENvbHVtblR5cGUpOiBzdHJpbmc7XG4gICAgZ2V0Um93QnlLZXk/KGtleTogYW55KTogUm93VHlwZTtcbiAgICBnZXRSb3dCeUluZGV4PyhpbmRleDogbnVtYmVyKTogUm93VHlwZTtcbiAgICBzZXRGaWx0ZXJlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldEZpbHRlcmVkU29ydGVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24gfCBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJTb3J0KG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHBpblJvdyhpZDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgdW5waW5Sb3coaWQ6IGFueSwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgZ2V0VW5waW5uZWRJbmRleEJ5SWQoaWQ6IGFueSk6IG51bWJlcjtcbiAgICBnZXRFbXB0eVJlY29yZE9iamVjdEZvcihpblJvdzogUm93VHlwZSk6IGFueTtcbiAgICBpc1N1bW1hcnlSb3cocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzUmVjb3JkUGlubmVkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRJbml0aWFsUGlubmVkSW5kZXgocmVjOiBhbnkpOiBudW1iZXI7XG4gICAgaXNSZWNvcmRQaW5uZWRCeVZpZXdJbmRleChyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbjtcbiAgICBpc0NvbHVtbkdyb3VwZWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGlzRGV0YWlsUmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dyb3VwQnlSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR2hvc3RSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzVHJlZVJvdz8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzQ2hpbGRHcmlkUmVjb3JkPyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBpc0hpZXJhcmNoaWNhbFJlY29yZD8ocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIGNvbHVtblRvVmlzaWJsZUluZGV4KGtleTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICAgIG1vdmVDb2x1bW4oY29sdW1uOiBDb2x1bW5UeXBlLCB0YXJnZXQ6IENvbHVtblR5cGUsIHBvczogRHJvcFBvc2l0aW9uKTogdm9pZDtcbiAgICBuYXZpZ2F0ZVRvKHJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2x1bW5JbmRleDogbnVtYmVyLCBjYWxsYmFjaz86IChlOiBhbnkpID0+IGFueSk6IHZvaWQ7XG4gICAgZ2V0UHJldmlvdXNDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBnZXROZXh0Q2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgY2xlYXJDZWxsU2VsZWN0aW9uKCk6IHZvaWQ7XG4gICAgc2VsZWN0UmFuZ2UocmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZSB8IEdyaWRTZWxlY3Rpb25SYW5nZVtdKTogdm9pZDtcbiAgICBzZWxlY3RSb3dzKHJvd0lEczogYW55W10sIGNsZWFyQ3VycmVudFNlbGVjdGlvbj86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0VXBQYWdpbmF0b3IoKTogdm9pZDtcbiAgICBjcmVhdGVGaWx0ZXJEcm9wZG93bihjb2x1bW46IENvbHVtblR5cGUsIG9wdGlvbnM6IE92ZXJsYXlTZXR0aW5ncyk6IGFueTtcbiAgICB1cGRhdGVDZWxsKHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnksIGNvbHVtbjogc3RyaW5nKTogdm9pZDtcbiAgICAvLyBUeXBlIHRvIFJvd1R5cGVcbiAgICBjcmVhdGVSb3c/KGluZGV4OiBudW1iZXIsIGRhdGE/OiBhbnkpOiBSb3dUeXBlO1xuICAgIGRlbGV0ZVJvdyhpZDogYW55KTogYW55O1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICB1cGRhdGVSb3codmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSk6IHZvaWQ7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEZsYXQgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHJlY29yZHM6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgaXNUcmVlUm93KHJlYzogYW55KTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEhpZXJhcmNoaWNhbCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoaWNhbEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGNoaWxkTGF5b3V0S2V5czogYW55W107XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBQaXZvdCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpdm90R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBwaXZvdCBncmlkLlxuICAgICAqIGl0IGluY2x1ZGVzIGRpbWVudGlvbiBzdHJhdGVneSBmb3Igcm93cyBhbmQgY29sdW1ucywgZmlsdGVycyBhbmQgZGF0YSBrZXlzXG4gICAgICovXG4gICAgcGl2b3RDb25maWd1cmF0aW9uOiBJUGl2b3RDb25maWd1cmF0aW9uO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIGFsbCBkaW1lbnNpb25zIChyb3dzIGFuZCBjb2x1bW5zKSBpbiB0aGUgcGl2b3QgZ3JpZC5cbiAgICAgKiBpdCBpbmNsdWRlcyBoaWVyYXJjaGljYWwgbGV2ZWwsIGZpbHRlcnMgYW5kIHNvcnRpbmcsIGRpbWVudGlvbmFsIGxldmVsLCBldGMuXG4gICAgICovXG4gICAgYWxsRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRvIHNob3cgdGhlIHBpdm90IGNvbmZpZ3VyYXRpb24gVUkgaW4gdGhlIGdyaWQuICovXG4gICAgcGl2b3RVSTogSVBpdm90VUlTZXR0aW5ncztcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjb2x1bW5EaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByb3dEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICByb3dEaW1lbnNpb25SZXNpemluZzogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZGltZW5zaW9uRGF0YUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBwaXZvdFJvd1dpZHRoczogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzZXRpbmcgdXAgdGhlIGNvbHVtbnMgZm9yIHRoZSBwaXZvdCBncmlkIGJhc2VkIG9uIHRoZSBwaXZvdCBjb25maWd1cmF0aW9uICovXG4gICAgc2V0dXBDb2x1bW5zKCk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBhbGxvd3MgdG9nZ2xlIG9mIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIHJvdyAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBwaXZvdCBncmlkICovXG4gICAgdG9nZ2xlUm93KHJvd0lEOiBhbnkpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc29sdmluZyB0aGUgZGF0YSB0eXBlIGZvciBhIHNwZWNpZmljIGZpZWxkIChjb2x1bW4pLlxuICAgICAqIEl0IHRha2VzIHRoZSBmaWVsZCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBpdCdzIHR5cGVcbiAgICAgKi9cbiAgICByZXNvbHZlRGF0YVR5cGVzKGZpZWxkOiBhbnkpOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgbW92aW5nIGRpbWVuc2lvbiBmcm9tIGl0cyBjdXJyZW50bHkgY29sbGVjdGlvbiB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCBjb2xsZWN0aW9uXG4gICAgICogYnkgdHlwZSAoUm93LCBDb2x1bW4gb3IgRmlsdGVyKSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGNvbGxlY3Rpb24ncyBlbmRcbiAgICAgKi9cbiAgICBtb3ZlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCB0YXJnZXRDb2xsZWN0aW9uVHlwZTogUGl2b3REaW1lbnNpb25UeXBlLCBpbmRleD86IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgLyoqIFRvZ2dsZXMgdGhlIGRpbWVuc2lvbidzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgZGltZW5zaW9uIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbiAqL1xuICAgIHRvZ2dsZURpbWVuc2lvbihkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbik7XG4gICAgLyoqIFNvcnQgdGhlIGRpbWVuc2lvbiBhbmQgaXRzIGNoaWxkcmVuIGluIHRoZSBwcm92aWRlZCBkaXJlY3Rpb24gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgdmFsdWUncyBlbmFibGVkIHN0YXRlIG9uIG9yIG9mZi4gVGhlIHZhbHVlIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbi4gKi9cbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIC8qKiBNb3ZlIHZhbHVlIGZyb20gaXRzIGN1cnJlbnRseSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGVuZC5cbiAgICAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQsIGl0IHdpbGwgYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoKGRpbTogSVBpdm90RGltZW5zaW9uKTogc3RyaW5nO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpbWVuc2lvbnMgaW4gdGhlIHBpdm90IGdyaWQgY2hhbmdlLiAqL1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlcyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGEgZGltZW5zaW9uIGlzIHNvcnRlZC4gKi9cbiAgICBkaW1lbnNpb25zU29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBpdm90S2V5czogSVBpdm90S2V5cztcbiAgICBoYXNNdWx0aXBsZVZhbHVlczogYm9vbGVhbjtcbiAgICBleGNlbFN0eWxlRmlsdGVyTWF4SGVpZ2h0OiBzdHJpbmc7XG4gICAgZXhjZWxTdHlsZUZpbHRlck1pbkhlaWdodDogc3RyaW5nO1xuICAgIHZhbHVlQ2hpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHJvd0RpbWVuc2lvbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZE1hc3RlckRldGFpbENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55O1xuICAgIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJR3JvdXBCeVJlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBSb3dUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0RyYWdHaG9zdENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LCAvLyB0aGlzIGlzIHRoZSByb3cgZGF0YVxuICAgIGRhdGE6IGFueSwgLy8gdGhpcyBpcyBhbHNvIHRoZSByb3cgZGF0YSBmb3Igc29tZSByZWFzb24uXG4gICAgZ3JpZDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkRW1wdHlUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgIHJvd0NoYW5nZXNDb3VudDogbnVtYmVyLFxuICAgIGVuZEVkaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRleHRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRBY3Rpb25zVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEhlYWRlclR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogQ29sdW1uVHlwZSxcbiAgICBjb2x1bW46IENvbHVtblR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDZWxsVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueSxcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnksXG4gICAgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDxhbnk+LFxuICAgIGRlZmF1bHRFcnJvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICBjZWxsOiBDZWxsVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneFJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTUuMS4wLiBVc2UgdGhlIGBrZXlgIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICBrZXk6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBzZWxlY3Q/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0PzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFN1bW1hcnlSZXN1bHRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRQYWdpbmF0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogR3JpZFR5cGU7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgc2V0dGluZ3MgZm9yIHJvdy9jb2x1bW4gcGlubmluZyBwb3NpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGlubmluZ0NvbmZpZyB7XG4gICAgY29sdW1ucz86IENvbHVtblBpbm5pbmdQb3NpdGlvbjtcbiAgICByb3dzPzogUm93UGlubmluZ1Bvc2l0aW9uO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIHNldHRpbmdzIGZvciBjbGlwYm9hcmQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlwYm9hcmRPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBjb3B5IGJlaGF2aW9yXG4gICAgICovXG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmNsdWRlIHRoZSBjb2x1bW5zIGhlYWRlcnMgaW4gdGhlIGNsaXBib2FyZCBvdXRwdXQuXG4gICAgICovXG4gICAgY29weUhlYWRlcnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQXBwbHkgdGhlIGNvbHVtbnMgZm9ybWF0dGVycyAoaWYgYW55KSBvbiB0aGUgZGF0YSBpbiB0aGUgY2xpcGJvYXJkIG91dHB1dC5cbiAgICAgKi9cbiAgICBjb3B5Rm9ybWF0dGVyczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc2VwYXJhdG9yIHVzZWQgZm9yIGZvcm1hdHRpbmcgdGhlIGNvcHkgb3V0cHV0LiBEZWZhdWx0cyB0byBgXFx0YC5cbiAgICAgKi9cbiAgICBzZXBhcmF0b3I6IHN0cmluZztcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBa0IseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtblBpbm5pbmdQb3NpdGlvbiwgRmlsdGVyTW9kZSwgR3JpZFBhZ2luZ01vZGUsIEdyaWRTZWxlY3Rpb25Nb2RlLCBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZSwgR3JpZFN1bW1hcnlQb3NpdGlvbiwgR3JpZFZhbGlkYXRpb25UcmlnZ2VyLCBSb3dQaW5uaW5nUG9zaXRpb24sIFNpemUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3MsXG4gICAgSUdyaWRSb3dFdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncywgSVJvd0RhdGFDYW5jZWxhYmxlRXZlbnRBcmdzLCBJR3JpZEVkaXREb25lRXZlbnRBcmdzLFxuICAgIElHcmlkQ29udGV4dE1lbnVFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcbmltcG9ydCB7IElHcmlkUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuL2dyaWQtcmVzb3VyY2VzJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5RXhwYW5kU3RhdGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1leHBhbmQtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IElneENlbGwsIElneEVkaXRSb3cgfSBmcm9tICcuL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkU2VsZWN0aW9uUmFuZ2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsdGVyaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IERyb3BQb3NpdGlvbiwgSWd4Q29sdW1uTW92aW5nU2VydmljZSB9IGZyb20gJy4uL21vdmluZy9tb3Zpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlLCBJZ3hUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElUcmVlR3JpZFJlY29yZCB9IGZyb20gJy4uL3RyZWUtZ3JpZC90cmVlLWdyaWQuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdGF0ZSwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IERhdGFUeXBlLCBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElneEZpbHRlcmluZ09wZXJhbmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBJQ29sdW1uUGlwZUFyZ3MsIElGaWVsZFBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSURpbWVuc2lvbnNDaGFuZ2UsIElQaXZvdENvbmZpZ3VyYXRpb24sIElQaXZvdERpbWVuc2lvbiwgSVBpdm90S2V5cywgSVBpdm90VmFsdWUsIElWYWx1ZXNDaGFuZ2UsIFBpdm90RGltZW5zaW9uVHlwZSwgSVBpdm90VUlTZXR0aW5ncyB9IGZyb20gJy4uL3Bpdm90LWdyaWQvcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGFDbG9uZVN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtY2xvbmUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uL2dyaWQvZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgSUdYX0dSSURfQkFTRSA9IC8qQF9fUFVSRV9fKi9uZXcgSW5qZWN0aW9uVG9rZW48R3JpZFR5cGU+KCdJZ3hHcmlkQmFzZVRva2VuJyk7XG5leHBvcnQgY29uc3QgSUdYX0dSSURfU0VSVklDRV9CQVNFID0gLypAX19QVVJFX18qL25ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG4vKiogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIHNlZ21lbnQgb2YgYSBwYXRoIGluIGEgaGllcmFyY2hpY2FsIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgLyoqXG4gICAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByb3cgd2l0aGluIHRoZSBzZWdtZW50LlxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMS4wLiBVc2UgdGhlIGByb3dLZXlgIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dLZXk6IGFueTtcbiAgICAvKiogVGhlIGtleSByZXByZXNlbnRpbmcgdGhlIHJvdydzICdoaWVyYXJjaGljYWwgbGV2ZWwuICovXG4gICAgcm93SXNsYW5kS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWREYXRhQmluZGFibGUge1xuICAgIGRhdGE6IGFueVtdIHwgbnVsbDtcbiAgICBnZXQgZmlsdGVyZWREYXRhKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNlbGxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIFRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGNlbGwgaXMgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRWYWx1ZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIEl0IGlzIGZhbHNlLCBpZiB0aGUgc2VsbCBpcyBub3Qgc2VsZWN0ZWQsIGFuZCB0cnVlLCBpZiBpdCBpcy4gKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNlbGwgaXMgY3VycmVudGx5IGFjdGl2ZSAoZm9jdXNlZCkuICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgZWRpdGVkLiAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY29sdW1uIHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0by4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHJvdyB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8gKi9cbiAgICByb3c6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgY2VsbCAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBPcHRpb25hbDsgQW4gb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBjZWxsLiBJdCBjb250YWlucyByb3dJRCwgY29sdW1uSUQsIGFuZCByb3dJbmRleCBvZiB0aGUgY2VsbC4gKi9cbiAgICBpZD86IHsgcm93SUQ6IGFueTsgY29sdW1uSUQ6IG51bWJlcjsgcm93SW5kZXg6IG51bWJlciB9O1xuICAgIC8qKiBPcHRpb25hbDsgVGhlIGBjZWxsSURgIGlzIHRoZSB1bmlxdWUga2V5LCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjZWxsICovXG4gICAgY2VsbElEPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsOyBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIHRoZSBjZWxsLlxuICAgICAqIFdoZXRoZXIgaXQncyB2YWxpZCBvciBpbnZhbGlkLCBhbmQgaWYgaXQgaGFzIGVycm9yc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgLyoqIEFuIG9wdGlvbmFsIHRpdGxlIHRvIGRpc3BsYXkgZm9yIHRoZSBjZWxsICovXG4gICAgdGl0bGU/OiBhbnk7XG4gICAgLyoqIFRoZSBDU1Mgd2lkdGggb2YgdGhlIGNlbGwgYXMgYSBzdHJpbmcuICovXG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiBJdCBjb3VudHMgb25seSB0aGUgdmlzaWJsZSAobm90IGhpZGRlbikgY29sdW1ucyAqL1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHVwZGF0ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gc3RhcnQgb3IgZW5kIHRoZSBlZGl0IG1vZGUgb2YgdGhlIGNlbGwuIEl0IHRha2VzIGEgYm9vbGVhbiB2YWx1ZSBhcyBhbiBhcmd1bWVudCovXG4gICAgc2V0RWRpdE1vZGU/KHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbDtcbiAgICAgKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB0byBmaXQgdGhlIGNvbnRlbnRcbiAgICAgKiBUaGUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB3aXRoIHRoZSBsb25nZXN0IGNvbnRlbnQgYW5kIHJlc2l6ZSBhbGwgY2VsbHMgdG8gdGhhdCBzaXplXG4gICAgICovXG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gYWN0aXZhdGUgdGhlIGNlbGwuXG4gICAgICogSXQgdGFrZXMgYSBmb2N1cyBvciBrZXlib2FyZCBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRvdWJsZS1jbGljayBldmVudHMgb24gdGhlIGNlbGxcbiAgICAgKiBJdCB0YWtlcyBhIG1vdXNlIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGhlYWRlciBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgaGVhZGVyIGNlbGwgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcywgcmVsZXZhbnQgdG8gdGhlIGhlYWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIC8qKiBUaGUgY29sdW1uIHRoYXQgdGhlIGhlYWRlciBjZWxsIHJlcHJlc2VudHMuICovXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWQuICovXG4gICAgc29ydGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBoZWFkZXIgaXMgYSB0aXRsZSBjZWxsLiAqL1xuICAgIHRpdGxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzb3J0aW5nIGRpcmVjdGlvbiBvZiB0aGUgY29sdW1uIChhc2NlbmRpbmcsIGRlc2NlbmRpbmcgb3Igbm9uZSkuICovXG4gICAgc29ydERpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgcm93IGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgcm93IG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgcm93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIHJvdyBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgcm93IHdpdGhpbiB0aGUgZ3JpZCAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb3cgaXMgZ3JvdXBlZC4gKi9cbiAgICBpc0dyb3VwQnlSb3c/OiBib29sZWFuO1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1hcCBvZiBjb2x1bW4gZmllbGQgbmFtZXMgdG8gdGhlIHN1bW1hcnkgcmVzdWx0cyBmb3IgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBsaXN0IG9yIGFuIGFycmF5IG9mIGNlbGxzLCB0aGF0IGJlbG9uZyB0byB0aGUgcm93XG4gICAgICovXG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFZpcnR1YWxpemF0aW9uIHN0YXRlIG9mIGRhdGEgcmVjb3JkIGFkZGVkIGZyb20gY2FjaGVcbiAgICAgKi9cbiAgICB2aXJ0RGlyUm93PzogSWd4R3JpZEZvck9mRGlyZWN0aXZlPENvbHVtblR5cGUsIENvbHVtblR5cGVbXT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgcGlubmVkLlxuICAgICAqL1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgZXhwYW5kZWQuXG4gICAgICogVGhlIHZhbHVlIGlzIHRydWUsIGlmIHRoZSByb3cgaXMgZXhwYW5kZWQgYW5kIGZhbHNlLCBpZiBpdCBpcyBjb2xsYXBzZWRcbiAgICAgKi9cbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcm93IGlzIG1hcmtlZCBmb3IgZGVsZXRpb24uXG4gICAgICovXG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkLlxuICAgICAqL1xuICAgIGluRWRpdE1vZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIGNoaWxkIHJvd3Mgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiB0aGVyZSBhcmUgYW55LlxuICAgICAqL1xuICAgIGNoaWxkcmVuPzogUm93VHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIHBhcmVudCByb3cgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiBpdCBoYXMgb25lLlxuICAgICAqIElmIHRoZSBwYXJlbnQgcm93IGV4aXN0LCBpdCBtZWFucyB0aGF0IHRoZSBjdXJyZW50IHJvdyBpcyBhIGNoaWxkIHJvd1xuICAgICAqL1xuICAgIHBhcmVudD86IFJvd1R5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaGFzIGFueSBjaGlsZCByb3dzXG4gICAgICovXG4gICAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIHJlY29yZCBhc3NvY2lhdGVkIHdpdGggdGhlIHJvdyAoZm9yIHRyZWUgZ3JpZHMpLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgSVRyZWVHcmlkUmVjb3JkLCB3aGljaCBjb250YWlucyB0aGUgZGF0YSwgY2hpbGRyZW4sIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwsIGV0Yy5cbiAgICAgKi9cbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb3cgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAgICovXG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudCB0aGUgZ3JpZCBpbnN0YW5jZSwgdGhlIHJvdyBiZWxvbmdzIHRvICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50IG9uIHRoZSByb3dcbiAgICAgKiBJdCB0YWtlcyBhIGBNb3VzZUV2ZW50YCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgYWRkaW5nIGEgbmV3IHJvd1xuICAgICAqL1xuICAgIGJlZ2luQWRkUm93PzogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgZWxlbWVudHMgb2YgdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIHRoZSBuZXcgdmFsdWUgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICB1cGRhdGU/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBkZWxldGluZyByb3dzXG4gICAgICovXG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHBpbm5pbmcgYSByb3dcbiAgICAgKi9cbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHVucGlubmluZyBhIHJvdywgdGhhdCBoYXMgYmVlbiBwaW5uZWRcbiAgICAgKi9cbiAgICB1bnBpbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZTogRGF0YVR5cGU7XG4gICAgZmlsdGVyczogSWd4RmlsdGVyaW5nT3BlcmFuZDtcbiAgICBwaXBlQXJnczogSUZpZWxkUGlwZUFyZ3M7XG4gICAgZGVmYXVsdFRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcblxuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2x1bW4gaW4gdGhlIGBHcmlkVHlwZWAuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjb2x1bW4gb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBjb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UeXBlIGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5zdGFuY2Ugb2YgdGhlIHBhcmVudCBgR3JpZFR5cGVgIHRoYXQgY29udGFpbnMgdGhpcyBjb2x1bW4uICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIEEgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMgdW5kZXIgdGhpcyBjb2x1bW4gKGlmIGFueSkuICovXG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICAvKiogQW4gYXJyYXksIGNvbnRhaW5pbmcgYWxsIHRoZSBjaGlsZCBjb2x1bW5zLCBpbmNsdWRpbmcgbmVzdGVkIGNoaWxkcmVuLiAqL1xuICAgIGFsbENoaWxkcmVuOiBDb2x1bW5UeXBlW107XG4gICAgLyoqXG4gICAgICogVGhlIGhlYWRlciBncm91cCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgKi9cbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGNlbGwgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbi5cbiAgICAgKiBDb3VsZCBiZSBvZiBhbnkgdHlwZVxuICAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgY3VzdG9tIGhlYWRlciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjb2xsYXBzaWJsZSBpbmRpY2F0b3Igb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50LiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cENsYXNzZXM6IGFueTtcbiAgICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cFN0eWxlczogYW55O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIENTUyBzdHlsaW5nLCBhcHBsaWVkIHRvIGV2ZXJ5IGNvbHVtblxuICAgICAqIGNhbGNXaWR0aCwgbWluV2lkdGhQeCwgbWF4V2lkdGhQeCwgbWluV2lkdGgsIG1heFdpZHRoLCBtaW5XaWR0aFBlcmNlbnQsIG1heFdpZHRoUGVyY2VudCwgcmVzb2x2ZWRXaWR0aFxuICAgICAqL1xuICAgIGNhbGNXaWR0aDogYW55O1xuICAgIG1pbldpZHRoUHg6IG51bWJlcjtcbiAgICBtYXhXaWR0aFB4OiBudW1iZXI7XG4gICAgbWluV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIG1heFdpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIHJlc29sdmVkV2lkdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGVhZGVyIHRleHQgb2YgdGhlIGNvbHVtblxuICAgICAqL1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGdyaWQuXG4gICAgICogSW5jbHVkZXMgdGhlIGhpZGRlbiBjb2x1bW5zIHdoZW4gY291bnRpbmdcbiAgICAgKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIHR5cGUgb2YgZGF0YSBmb3IgdGhlIGNvbHVtbjpcbiAgICAgKiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgY3VycmVuY3ksIGRhdGUsIHRpbWUsIGV0Yy5cbiAgICAgKi9cbiAgICBkYXRhVHlwZTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjdXN0b20gaW5saW5lIGVkaXRvciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGlubGluZUVkaXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICAgKiBEb2VzIG5vdCBpbmNsdWRlIHRoZSBoaWRkZW4gY29sdW1ucyB3aGVuIGNvdW50aW5nXG4gICAgICovXG4gICAgdmlzaWJsZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVkIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkXG4gICAgICogSXQgaXMgdXNlZCBpbiB0cmVlIGdyaWQgYW5kIGZvciBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgY29sbGFwc2libGU/OiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZWQgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQgKi9cbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHJlc2l6ZWQgKi9cbiAgICByZXNpemFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBkYXRhIG9mIHRoZSBjb2x1bW4gY2FuIGJlIHNlYXJjaGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBkYXRhIGNhbiBiZSBzZWFyY2hlZCAqL1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb2x1bW4gYmVsb25ncyB0byBhIGdyb3VwIG9mIGNvbHVtbnMuICovXG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBwdXQgaW4gYSBncm91cC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHB1dCBpbiBhIGdyb3VwICovXG4gICAgZ3JvdXBhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgc29ydGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgc29ydGVkLiAqL1xuICAgIHNvcnRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgZmlsdGVyZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBmaWx0ZXJlZCAqL1xuICAgIGZpbHRlcmFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgY29sdW1uIGlzIGN1cnJlbnRseSBoaWRkZW4gKG5vdCB2aXNpYmxlKS4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgbm90IHZpc2libGUgKi9cbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBwaW5uZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbm5vdCBiZSBwaW5uZWQgKi9cbiAgICBkaXNhYmxlUGlubmluZzogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIGhpZGRlbi4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2Fubm90IGJlIGhpZGRlbiAqL1xuICAgIGRpc2FibGVIaWRpbmc6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHNvcnRpbmcgc3RyYXRlZ3kgdXNlZCBmb3Igc29ydGluZyB0aGlzIGNvbHVtbi5cbiAgICAgKiBUaGUgaW50ZXJmYWNlIGNvbnRhaW5zIGEgbWV0aG9kIHNvcnQgdGhhdCBzb3J0cyB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc29ydGluZyBleHByZXNzaW9uc1xuICAgICAqL1xuICAgIHNvcnRTdHJhdGVneTogSVNvcnRpbmdTdHJhdGVneTtcbiAgICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNlYXJjaCBzaG91bGQgbWF0Y2ggcmVzdWx0cywgbm8gbWF0dGVyIHRoZSBjYXNlIG9mIHRoZSBsZXR0ZXJzICh1cHBlciBhbmQgbG93ZXIpXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGUgcmVzdWx0IHdpbGwgZGVwZW5kIG9uIHRoZSBjYXNlIChleGFtcGxlOiBgRWAgd2lsbCBub3QgbWF0Y2ggYGVgKVxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcmVzdWx0IHdpbGwgbm90IGRlcGVuZCBvbiB0aGUgY2FzZSAoZXhhbXBsZTogYEVgIHdpbGwgbWF0Y2ggYGVgKVxuICAgICAqL1xuICAgIHNvcnRpbmdJZ25vcmVDYXNlOiBib29sZWFuO1xuICAgIGZpbHRlckNlbGw6IGFueTtcbiAgICBmaWx0ZXJpbmdJZ25vcmVDYXNlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBmaWx0ZXJpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBjb2x1bW4uXG4gICAgICogVGhlIHR5cGUgY29udGFpbnMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgZmlsdGVyaW5nOiBmaWx0ZXJpbmdPcGVyYW5kcywgb3BlcmF0b3IgKGxvZ2ljKSwgZmllbGROYW1lLCBldGMuXG4gICAgICovXG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgaGFzU3VtbWFyeTogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM6IGFueTtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciBhIHN1bW1hcnkgb2YgdGhlIGNvbHVtblxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBwaW5uZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIHBpbm5lZCAqL1xuICAgIHBpbm5lZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IGV4cGFuZGVkIG9yIGNvbGxhcHNlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgZXhwYW5kZWQgKi9cbiAgICBleHBhbmRlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHNlbGVjdGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBjYW4gYmUgc2VsZWN0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uTGF5b3V0OiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwgb2YgdGhlIGNvbHVtbiBpbiB0aGUgY29sdW1uIGxheW91dCAqL1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICByb3dFbmQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGdyaWRSb3dTcGFuOiBudW1iZXI7XG4gICAgZ3JpZENvbHVtblNwYW46IG51bWJlcjtcbiAgICBjb2x1bW5MYXlvdXRDaGlsZDogYm9vbGVhbjtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHJvb3QgcGFyZW50IG9mIHRoaXMgY29sdW1uIChpZiBhbnkpLlxuICAgICAqIElmIHRoZXJlIGlzIG5vIHJvb3QgcGFyZW50LCB0aGF0IG1lYW5zIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUgcm9vdCBwYXJlbnRcbiAgICAgKi9cbiAgICB0b3BMZXZlbFBhcmVudD86IENvbHVtblR5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgaW1tZWRpYXRlIHBhcmVudCAocmlnaHQgYWJvdmUpIGNvbHVtbiBvZiB0aGlzIGNvbHVtbiAoaWYgYW55KS5cbiAgICAgKiBJZiB0aGVyZSBpcyBubyBwYXJlbnQsIHRoYXQgbWVhbnMgdGhlIGN1cnJlbnQgY29sdW1uIGlzIHRoZSByb290IHBhcmVudFxuICAgICAqL1xuICAgIHBhcmVudD86IENvbHVtblR5cGU7XG4gICAgcGlwZUFyZ3M6IElDb2x1bW5QaXBlQXJncztcbiAgICBoYXNOZXN0ZWRQYXRoOiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29sdW1uIGlzIHRoZSBsYXN0IHRvIGJlIHBpbm5lZC5cbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZmFsc2UsIHRoZXJlIGFyZSBjb2x1bW5zLCB0aGF0IGhhdmUgYmVlbiBwaW5uZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgKi9cbiAgICBpc0xhc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUgZmlyc3QgZm9yIHRoZSBncmlkIHRvIGJlIHBpbm5lZC5cbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZmFsc2UsIHRoZXJlIGFyZSBjb2x1bW5zLCB0aGF0IGhhdmUgYmVlbiBwaW5uZWQgYmVmb3JlIHRoZSBjdXJyZW50ICovXG4gICAgaXNGaXJzdFBpbm5lZDogYm9vbGVhbjtcbiAgICBhcHBseVNlbGVjdGFibGVDbGFzczogYm9vbGVhbjtcbiAgICAvKiogVGhlIHRpdGxlIG9mIHRoZSBjb2x1bW4sIHVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIHdpdGggY3VzdG9tIGdyb3VwaW5nIGNvbXBhcmF0b3IgdG8gZGV0ZXJtaW5lIHRoZSBtZW1iZXJzIG9mIHRoZSBncm91cC4gKi9cbiAgICBncm91cGluZ0NvbXBhcmVyOiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBjdXN0b20gdGVtcGxhdGUgZm9yIGZpbHRlcmluZ1xuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBmaWx0ZXJDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIG1vdmUgdGhlIGNvbHVtbiB0byB0aGUgc3BlY2lmaWVkIGluZGV4LlxuICAgICAqIEl0IHRha2VzIHRoZSBpbmRleCBvZiB0eXBlIG51bWJlciBhcyBhIHBhcmFtZXRlclxuICAgICovXG4gICAgbW92ZShpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byByZXRyaWV2ZSB0aGUgc2V0IENTUyBzaXplICovXG4gICAgZ2V0QXV0b1NpemUoKTogc3RyaW5nO1xuICAgIGdldFJlc2l6YWJsZUNvbFVuZGVyRW5kKCk6IE1STFJlc2l6ZUNvbHVtbkluZm9bXTtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byByZXRyaWV2ZSB0aGUgc2V0IENTUyB3aWR0aCBvZiB0aGUgY2VsbHMgdW5kZXIgdGhlIGNvbHVtbiAqL1xuICAgIGdldENlbGxXaWR0aCgpOiBzdHJpbmc7XG4gICAgZ2V0R3JpZFRlbXBsYXRlKGlzUm93OiBib29sZWFuKTogc3RyaW5nO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eSAoaGlkZGVuIG9yIHZpc2libGUpICovXG4gICAgdG9nZ2xlVmlzaWJpbGl0eSh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHBvcHVsYXRlVmlzaWJsZUluZGV4ZXM/KCk6IHZvaWQ7XG4gICAgLyoqIFBpbnMgdGhlIGNvbHVtbiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IChpZiBub3QgYWxyZWFkeSBwaW5uZWQpLiAqL1xuICAgIHBpbihpbmRleD86IG51bWJlcik6IGJvb2xlYW47XG4gICAgLyoqIFVucGlucyB0aGUgY29sdW1uIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggKGlmIG5vdCBhbHJlYWR5IHVucGlubmVkKS4gKi9cbiAgICB1bnBpbihpbmRleD86IG51bWJlcik6IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgZXZlbnQgYXJndW1lbnRzIHdoZW4gYSBmb3JtIGdyb3VwIGlzIGNyZWF0ZWQgaW4gdGhlIGdyaWQuXG4gKiAtIGZvcm1Hcm91cDogVGhlIGZvcm0gZ3JvdXAgdGhhdCBpcyBjcmVhdGVkLlxuICogLSBvd25lcjogVGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSBmb3JtIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncyB7XG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgZXZlbnQgYXJndW1lbnRzIGZvciB0aGUgZ3JpZCB2YWxpZGF0aW9uIHN0YXR1cyBjaGFuZ2UgZXZlbnQuXG4gKiAtIHN0YXR1czogVGhlIHZhbGlkYXRpb24gc3RhdHVzICgnVkFMSUQnIG9yICdJTlZBTElEJykuXG4gKiAtIG93bmVyOiBUaGUgZ3JpZCBpbnN0YW5jZSB0aGF0IG93bnMgdGhlIHZhbGlkYXRpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzIHtcbiAgICBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXMsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdHVzLlxuICogLSAnVkFMSUQnOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgdmFsaWQuXG4gKiAtICdJTlZBTElEJzogVGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIGludmFsaWQuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25TdGF0dXMgPSAnVkFMSUQnIHwgJ0lOVkFMSUQnO1xuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgYSBncmlkLlxuICogLSBzdGF0dXM6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyAoJ1ZBTElEJyBvciAnSU5WQUxJRCcpLlxuICogLSBlcnJvcnM6IFRoZSB2YWxpZGF0aW9uIGVycm9ycyBpZiBhbnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IHN0YXR1czogVmFsaWRhdGlvblN0YXR1cztcbiAgICByZWFkb25seSBlcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQuXG4gKiAtIGBrZXlgOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlY29yZC5cbiAqIC0gYGZpZWxkc2A6IEFuIGFycmF5IG9mIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGluZGl2aWR1YWwgZmllbGRzIGluIHRoZSByZWNvcmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlY29yZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBrZXk6IGFueTtcbiAgICBmaWVsZHM6IElGaWVsZFZhbGlkYXRpb25TdGF0ZVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgYSBmaWVsZCBpbiB0aGUgZ3JpZC5cbiAqIC1gZmllbGRgOiBUaGUgbmFtZSBvZiB0aGUgZmllbGQgKHByb3BlcnR5KSBiZWluZyB2YWxpZGF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGZpZWxkOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXJ2aWNlIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZ3JpZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VydmljZVR5cGUge1xuXG4gICAgLyoqIFRoZSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBgR3JpZFR5cGVgIHRoYXQgY29udGFpbnMgdGhlIHNlcnZpY2UuICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlIENSVUQgc2VydmljZSAoQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSkgb3BlcmF0aW9ucyBvbiB0aGUgZ3JpZCBkYXRhLiAqL1xuICAgIGNydWRTZXJ2aWNlOiBhbnk7XG4gICAgLyoqIEEgc2VydmljZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgY29sdW1uIG1vdmluZyB3aXRoaW4gdGhlIGdyaWQuIEl0IGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4sIGl0cyBpY29uLCBhbmQgaW5kaWNhdG9yIGZvciBjYW5jZWxhdGlvbi4gKi9cbiAgICBjbXM6IElneENvbHVtbk1vdmluZ1NlcnZpY2U7XG5cbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSB1c2VkIGluIHRoZSBncmlkLiBUaGUgcmV0dXJuZWQgdmFsdWVzIGNvdWxkIGJlIG9mIGFueSB0eXBlICovXG4gICAgZ2V0X2RhdGEoKTogYW55W107XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyBhbGwgdGhlIGRhdGEgYXZhaWxhYmxlIGluIHRoZSBncmlkLCBpbmNsdWRpbmcgYW55IHRyYW5zYWN0aW9uYWwgZGF0YS5cbiAgICAgKiBgaW5jbHVkZVRyYW5zYWN0aW9uc2A6IE9wdGlvbmFsIHBhcmFtZXRlci4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gaW5jbHVkZSB0cmFuc2FjdGlvbmFsIGRhdGEgaWYgcHJlc2VudC5cbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIHRoZSBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgZ3JpZC5cbiAgICAgKi9cbiAgICBnZXRfYWxsX2RhdGEoaW5jbHVkZVRyYW5zYWN0aW9ucz86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyBhIGNvbHVtbiBvYmplY3QgYnkgaXRzIG5hbWUsIHRha2VuIGFzIGEgcGFyYW1ldGVyLiAqL1xuICAgIGdldF9jb2x1bW5fYnlfbmFtZShuYW1lOiBzdHJpbmcpOiBDb2x1bW5UeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBieSBpdHMgdW5pcXVlIGlkZW50aWZpZXIgKG9mIGFueSB0eXBlLCB0YWtlbiBhcyBhIHBhcmFtZXRlcikuICovXG4gICAgZ2V0Um93RGF0YShpZDogYW55KTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJlY29yZCBieSBpdHMgdW5pcXVlIGlkZW50aWZpZXIgKG9mIGFueSB0eXBlLCB0YWtlbiBhcyBhIHBhcmFtZXRlcikuICovXG4gICAgZ2V0X3JlY19ieV9pZChpZDogYW55KTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBhIHNwZWNpZmljIHJvdyBieSBpdHMgZGF0YS4gKi9cbiAgICBnZXRfcm93X2lkKHJvd0RhdGE6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgcm93IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBpbmRleCAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBncmlkICovXG4gICAgZ2V0X3Jvd19ieV9pbmRleChyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgcm93IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBrZXkgKHRha2VuIGFzIGEgcGFyYW1ldGVyKSBpbiB0aGUgZ3JpZCAqL1xuICAgIGdldF9yb3dfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnkpOiBSb3dUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBpbmRleCBvZiBhIHJlY29yZCBpbiB0aGUgZ3JpZCdzIGRhdGEgY29sbGVjdGlvbiB1c2luZyBpdHMgdW5pcXVlIGlkZW50aWZpZXIuICovXG4gICAgZ2V0X3JlY19pbmRleF9ieV9pZChwazogc3RyaW5nIHwgbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBpbmRleCBvZiBhIHJlY29yZCBpbiB0aGUgZ3JpZCdzIGRhdGEgY29sbGVjdGlvbiB1c2luZyBpdHMgaW5kZXguICovXG4gICAgZ2V0X3JlY19pZF9ieV9pbmRleChpbmRleDogbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogYW55O1xuICAgIGdldF9yb3dfaW5kZXhfaW5fZGF0YShyb3dJRDogYW55LCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBjZWxsIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYW5kIGNvbHVtbiBpbiB0aGUgZ3JpZC4gKi9cbiAgICBnZXRfY2VsbF9ieV9rZXkocm93U2VsZWN0b3I6IGFueSwgZmllbGQ6IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBjZWxsIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYW5kIGNvbHVtbiB1c2luZyB0aGVpciBpbmRleGVzLiAqL1xuICAgIGdldF9jZWxsX2J5X2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbklEOiBudW1iZXIgfCBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBjZWxsIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYW5kIGNvbHVtbiB1c2luZyB0aGVpciBpbmRleGVzLlxuICAgICAqIEl0IGNvdW50cyBvbmx5IHRoZSBpbmRleGVzIG9mIHRoZSB2aXNpYmxlIGNvbHVtbnMgYW5kIHJvd3NcbiAgICAgKi9cbiAgICBnZXRfY2VsbF9ieV92aXNpYmxlX2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIHRoYXQgc2V0cyB0aGUgZXhwYW5zaW9uIHN0YXRlIG9mIGEgZ3JvdXAgcm93ICh1c2VkIGZvciB0cmVlIGdyaWRzKVxuICAgICAqIEl0IHRha2VzIHRoZSB2YWx1ZSBmb3IgdGhlIGV4cGFuc2lvbiBhcyBhIHBhcmFtZXRlciAoZXhwYW5kZWQgb3IgY29sbGFwc2VkKVxuICAgICAqL1xuICAgIHNldF9ncm91cHJvd19leHBhbnNpb25fc3RhdGU/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCwgdmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJvd19kZWxldGVkX3RyYW5zYWN0aW9uKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIGFkZGluZyBhIG5ldyByb3cgdG8gdGhlIGdyaWQuXG4gICAgICogSXQgdGFrZXMgdGhlIHJvdydzIGRhdGEgYW5kIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBwYXJlbnQgcm93IGlmIGFwcGxpY2FibGUgKHVzZWQgZm9yIHRyZWUgZ3JpZHMpXG4gICAgICovXG4gICAgYWRkUm93VG9EYXRhKHJvd0RhdGE6IGFueSwgcGFyZW50SUQ/OiBhbnkpOiB2b2lkO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBkZWxldGluZyBhIHJvdywgc3BlY2lmaWVkIGJ5IGl0J3MgaWRlbnRpZmllciAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpICovXG4gICAgZGVsZXRlUm93QnlJZChpZDogYW55KTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSByb3cncyBjdXJyZW50IHN0YXRlIG9mIGV4cGFuc2lvbiAodXNlZCBmb3IgdHJlZSBncmlkcykqL1xuICAgIGdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzZXR0aW5nIGEgbmV3IGV4cGFuc2lvbiBzdGF0ZS4gSXQgY2FuIGJlIHRyaWdnZXJlZCBieSBhbiBldmVudCAqL1xuICAgIHNldF9yb3dfZXhwYW5zaW9uX3N0YXRlKGlkOiBhbnksIGV4cGFuZGVkOiBib29sZWFuLCBldmVudD86IEV2ZW50KTogdm9pZDtcbiAgICBnZXRfc3VtbWFyeV9kYXRhKCk6IGFueVtdO1xuXG4gICAgcHJlcGFyZV9zb3J0aW5nX2V4cHJlc3Npb24oc3RhdGVDb2xsZWN0aW9uczogQXJyYXk8QXJyYXk8YW55Pj4sIGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc29ydGluZyBieSBvbmx5IG9uZSBleHByZXNzaW9uXG4gICAgICogVGhlIGV4cHJlc3Npb24gY29udGFpbnMgZmllbGROYW1lLCBzb3J0aW5nIGRpcmVjdG9yeSwgd2hldGhlciBjYXNlIHNob3VsZCBiZSBpZ25vcmVkIGFuZCBvcHRpb25hbCBzb3J0aW5nIHN0cmF0ZWd5XG4gICAgICovXG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNvcnRpbmcgYnkgbXVsdGlwbGUgZXhwcmVzc2lvbnNcbiAgICAgKiBUaGUgZXhwcmVzc2lvbnMgY29udGFpbnMgZmllbGROYW1lLCBzb3J0aW5nIGRpcmVjdG9yeSwgd2hldGhlciBjYXNlIHNob3VsZCBiZSBpZ25vcmVkIGFuZCBvcHRpb25hbCBzb3J0aW5nIHN0cmF0ZWd5XG4gICAgICovXG4gICAgc29ydF9tdWx0aXBsZShleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXNldHRpbmcgdGhlIHNvcnRpbmcgKi9cbiAgICBjbGVhcl9zb3J0KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKiBSZXByZXNlbnRzIGFuIGV2ZW50LCB0cmlnZ2VyZWQgd2hlbiB0aGUgcGluIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBnZXRfcGluX3Jvd19ldmVudF9hcmdzKHJvd0lEOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlLCBwaW5uZWQ/OiBib29sZWFuKTogSVBpblJvd0V2ZW50QXJncztcblxuICAgIGZpbHRlckRhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdO1xuICAgIHNvcnREYXRhQnlFeHByZXNzaW9ucyhkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogYW55W107XG5cbiAgICB1cGRhdGVfY2VsbChjZWxsOiBJZ3hDZWxsKTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuICAgIHVwZGF0ZV9yb3cocm93OiBJZ3hFZGl0Um93LCB2YWx1ZTogYW55LCBldmVudD86IEV2ZW50KTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuXG4gICAgZXhwYW5kX3BhdGhfdG9fcmVjb3JkPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCk6IHZvaWQ7XG4gICAgZ2V0X3NlbGVjdGVkX2NoaWxkcmVuPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCwgc2VsZWN0ZWRSb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBnZXRfZ3JvdXBCeV9yZWNvcmRfaWQ/KGdSb3c6IElHcm91cEJ5UmVjb3JkKTogc3RyaW5nO1xuICAgIHJlbW92ZV9ncm91cGluZ19leHByZXNzaW9uPyhmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXJfZ3JvdXBieT8oZmllbGQ6IHN0cmluZyB8IGFueSk6IHZvaWQ7XG4gICAgZ2V0UGFyZW50Um93SWQ/KGNoaWxkOiBHcmlkVHlwZSk6IGFueTtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IEdyaWRUeXBlW107XG4gICAgZ2V0Q2hpbGRHcmlkPyhwYXRoOiBJUGF0aFNlZ21lbnRbXSk6IEdyaWRUeXBlO1xuXG4gICAgdW5zZXRDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG59XG5cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgZ3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWRcbiAqIEV4dGVuZHMgYElHcmlkRGF0YUJpbmRhYmxlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRUeXBlIGV4dGVuZHMgSUdyaWREYXRhQmluZGFibGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsb2NhbGUgb2YgdGhlIGdyaWQ6IGBVU0RgLCBgRVVSYCwgYEdCUGAsIGBDTllgLCBgSlBZYCwgZXRjLiAqL1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgYXJlIGVkaXRhYmxlLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcm93cyBjYW4gYmUgZWRpdGVkICovXG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpbiB0aGUgZ3JpZCBpcyBlbmFibGVkLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgZ3JpZCBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgY2FuIGJlIGRyYWdnZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgcHJpbWFyeSBrZXkgdXNlZCBmb3IgaWRlbnRpZnlpbmcgcm93cyBpbiB0aGUgZ3JpZCAqL1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdyaWQuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhlaWdodCBvZiB0aGUgdmlzaWJsZSByb3dzIGluIHRoZSBncmlkLiAqL1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cGFibGVQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaXMgY3VycmVudGx5IGluIGEgbW92aW5nIHN0YXRlLiAqL1xuICAgIG1vdmluZzogYm9vbGVhbjtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JpZFNpemU6IFNpemU7XG5cbiAgICAvKiogU3RyYXRlZ3ksIHVzZWQgZm9yIGNsb25pbmcgdGhlIHByb3ZpZGVkIGRhdGEuIFRoZSB0eXBlIGhhcyBvbmUgbWV0aG9kLCB0aGF0IHRha2VzIGFueSB0eXBlIG9mIGRhdGEgKi9cbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgc2VydmljZSB0eXBlIHByb3ZpZGluZyBBUEkgbWV0aG9kcyBmb3IgdGhlIGdyaWQgKi9cbiAgICByZWFkb25seSBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICAvKiogVGhlIGZpbHRlciBtb2RlIGZvciB0aGUgZ3JpZC4gSXQgY2FuIGJlIHF1aWNrIGZpbHRlciBvZiBleGNlbC1zdHlsZSBmaWx0ZXIgKi9cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHZpcnR1YWxpemF0aW9uIGZvciB0aGUgZ3JpZC4gSXQgaGFzIGFuIG93bmVyLCBzdGFydCBpbmRleCBhbmQgY2h1bmsgc2l6ZSAqL1xuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHNlcnZpY2UgaGFuZGxpbmcgc2VsZWN0aW9uIGluIHRoZSBncmlkLiBTZWxlY3RpbmcsIGRlc2VsZWN0aW5nIGVsZW1lbnRzICovXG4gICAgc2VsZWN0aW9uU2VydmljZTogYW55O1xuICAgIG5hdmlnYXRpb246IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBhbnk7XG4gICAgb3V0bGV0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgY2FuIGJlIG1vdmVkICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzTW92YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3Mgcm93cyBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3RvcnMgb2YgdGhlIHJvd3MgYXJlIHZpc2libGUgKi9cbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCdzIGVsZW1lbnQgaXMgcGlubmVkIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JpZCAqL1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIG9mIHRoZSBncmlkIGlzIGluIGRyYWcgbW9kZSAqL1xuICAgIGNvbHVtbkluRHJhZzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIC8qKiBUaGUgd2lkdGggb2YgcGlubmVkIGVsZW1lbnQgKi9cbiAgICBwaW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIC8qKiBUaGUgd2lkdGggb2YgdW5waW5uZWQgZWxlbWVudCAqL1xuICAgIHVucGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICAvKiogVGhlIENTUyBtYXJnaW4gb2YgdGhlIHN1bW1hcmllcyAqL1xuICAgIHN1bW1hcmllc01hcmdpbjogbnVtYmVyO1xuICAgIGhlYWRTZWxlY3RvckJhc2VBcmlhTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBoYXMgY29sdW1ucyB0aGF0IGFyZSBzaG93biAqL1xuICAgIGhhc1Zpc2libGVDb2x1bW5zOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaGFzIGV4cGFuZGFibGUgY2hpbGRyZW4gKGhpZXJhcmNoaWNhbCBhbmQgdHJlZSBncmlkKVxuICAgICAqL1xuICAgIGhhc0V4cGFuZGFibGVDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBjb2xsYXBzZWQgZ3JpZCBlbGVtZW50cyBzaG91bGQgYmUgZXhwYW5kZWRcbiAgICAgKi9cbiAgICBzaG93RXhwYW5kQWxsPzogYm9vbGVhbjtcblxuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb3VudCBvZiBvbmx5IHRoZSBoaWRkZW4gKG5vdCB2aXNpYmxlKSBjb2x1bW5zICovXG4gICAgaGlkZGVuQ29sdW1uc0NvdW50OiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvdW50IG9mIG9ubHkgdGhlIHBpbm5lZCBjb2x1bW5zICovXG4gICAgcGlubmVkQ29sdW1uc0NvdW50OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgZ3JpZCBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgZ3JvdXAtYnkgcm93cy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZ3JvdXBSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPElneEdyb3VwQnlSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciB0aGUgZ3JvdXAgcm93IHNlbGVjdG9yLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBncm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHJvdyBsb2FkaW5nIGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHJvd0xvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciB0aGUgaGVhZGVyIHNlbGVjdG9yLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBoZWFkU2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHJvdyBzZWxlY3RvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHJvd1NlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneFJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHNvcnQgaGVhZGVyIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzb3J0SGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGFzY2VuZGluZyBzb3J0IGhlYWRlciBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc29ydEFzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBkZXNjZW5kaW5nIHNvcnQgaGVhZGVyIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBoZWFkZXIgY29sbGFwc2VkIGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlckNvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBleHBhbmRlZCBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBoZWFkZXJFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciBkcmFnIGluZGljYXRvciBpY29ucy4gQ291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBkcmFnSW5kaWNhdG9ySWNvblRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFRoZSBiYXNlIGRyYWcgaW5kaWNhdG9yIGljb24uIENvdWxkIGJlIG9mIGFueSB0eXBlICovXG4gICAgZHJhZ0luZGljYXRvckljb25CYXNlOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRyYW5zaXRpb25zIGFyZSBkaXNhYmxlZCBmb3IgdGhlIGdyaWQuICovXG4gICAgZGlzYWJsZVRyYW5zaXRpb25zOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVuY3kgc3ltYm9sIGlzIHBvc2l0aW9uZWQgdG8gdGhlIGxlZnQgb2YgdmFsdWVzLiAqL1xuICAgIGN1cnJlbmN5UG9zaXRpb25MZWZ0OiBib29sZWFuO1xuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGlzIHNldCBieSB0aGUgdXNlciwgb3IgaXMgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5LiAqL1xuICAgIGNvbHVtbldpZHRoU2V0QnlVc2VyOiBib29sZWFuO1xuICAgIGhlYWRlckZlYXR1cmVzV2lkdGg6IG51bWJlcjtcbiAgICAvKiogQ1NTIHN0eWxpbmcgY2FsY3VsYXRlZCBmb3IgYW4gZWxlbWVudDogY2FsY0hlaWdodCwgY2FsY1dpZHRoLCBvdXRlcldpZHRoICovXG4gICAgY2FsY0hlaWdodDogbnVtYmVyO1xuICAgIGNhbGNXaWR0aDogbnVtYmVyO1xuICAgIG91dGVyV2lkdGg6IG51bWJlcjtcbiAgICAvKiogVGhlIGhlaWdodCBvZiBlYWNoIHJvdyBpbiB0aGUgZ3JpZC4gU2V0dGluZyBhIGNvbnN0YW50IGhlaWdodCBjYW4gc29sdmUgcHJvYmxlbXMgd2l0aCBub3Qgc2hvd2luZyBhbGwgZWxlbWVudHMgd2hlbiBzY3JvbGxpbmcgKi9cbiAgICByb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBtdWx0aVJvd0xheW91dFJvd1NpemU6IG51bWJlcjtcbiAgICAvKiogTWluaW1hbCB3aWR0aCBmb3IgaGVhZGVycyAqL1xuICAgIGRlZmF1bHRIZWFkZXJHcm91cE1pbldpZHRoOiBhbnk7XG4gICAgbWF4TGV2ZWxIZWFkZXJEZXB0aDogbnVtYmVyO1xuICAgIGRlZmF1bHRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICAvKiogVGhlIGRlZmF1bHQgZm9udCBzaXplLCBjYWxjdWxhdGVkIGZvciBlYWNoIGVsZW1lbnQgKi9cbiAgICBfYmFzZUZvbnRTaXplPzogbnVtYmVyO1xuICAgIHNjcm9sbFNpemU6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgdHJpZ2dlciBmb3IgZ3JpZCB2YWxpZGF0aW9uLiBJdCdzIHZhbHVlIGNhbiBlaXRoZXIgYmUgYGNoYW5nZWAgb3IgYGJsdXJgICovXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgY29sdW1ucyBhbmQgcm93cyBwaW5uaW5nIGluIHRoZSBncmlkXG4gICAgICogSXQncyBvZiB0eXBlIElQaW5uaW5nQ29uZmlnLCB3aGljaCBjYW4gaGF2ZSB2YWx1ZSBmb3IgY29sdW1ucyAoc3RhcnQsIGVuZCkgYW5kIGZvciByb3dzICh0b3AsIGJvdHRvbSlcbiAgICAqL1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICAvKiogQW4gdW5tb2RpZmlhYmxlIGxpc3QsIGNvbnRhaW5pbmcgYWxsIHRoZSBjb2x1bW5zIG9mIHRoZSBncmlkLiAqL1xuICAgIGNvbHVtbkxpc3Q6IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBjb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB2aXNpYmxlIChub3QgaGlkZGVuKSBpbiB0aGUgdmlldyAqL1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBub3QgcGlubmVkICovXG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBwaW5uZWQgKi9cbiAgICBwaW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgdGhlIGhlYWRlcnMgb2YgdGhlIGNvbHVtbnMgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGNlbGxzIGFyZSBzZWxlY3RhYmxlIGluIHRoZSBncmlkICovXG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgaXQgaXMgYWxsb3dlZCB0byBzZWxlY3QgbW9yZSB0aGFuIG9uZSByb3cgaW4gdGhlIGdyaWQgKi9cbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0cmFuc2FjdGlvbiBzZXJ2aWNlIGZvciB0aGUgZ3JpZC4gKi9cbiAgICByZWFkb25seSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB2YWxpZGF0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIChsb2dpYykgZm9yIHZhbGlkYXRpbmcgcmVjb3JkcyAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb246IElneEdyaWRWYWxpZGF0aW9uU2VydmljZTtcbiAgICBkZWZhdWx0U3VtbWFyeUhlaWdodDogbnVtYmVyO1xuICAgIHN1bW1hcnlSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICByb3dFZGl0aW5nT3ZlcmxheTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xuICAgIHRvdGFsUm93c0NvdW50QWZ0ZXJGaWx0ZXI6IG51bWJlcjtcbiAgICBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgcGFnaW5nIG9mIHRoZSBncmlkLiBJdCBjYW4gYmUgZWl0aGVyICdMb2NhbCcgb3IgJ1JlbW90ZSdcbiAgICAgKiAtIExvY2FsOiBEZWZhdWx0IHZhbHVlOyBUaGUgZ3JpZCB3aWxsIHBhZ2luYXRlIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcGFnZVxuICAgICAqL1xuICAgIHBhZ2luZ01vZGU6IEdyaWRQYWdpbmdNb2RlO1xuICAgIC8qKiBUaGUgcGFnaW5nIHN0YXRlIGZvciB0aGUgZ3JpZDsgVXNlZCB0byBjb25maWd1cmUgaG93IHBhZ2luZyBzaG91bGQgYmUgYXBwbGllZCAtIHdoaWNoIGlzIHRoZSBjdXJyZW50IHBhZ2UsIHJlY29yZHMgcGVyIHBhZ2UgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBhZ2luZ1N0YXRlOiBhbnk7XG5cbiAgICByb3dFZGl0VGFiczogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsYXN0IHNlYXJjaCBpbiB0aGUgZ3JpZFxuICAgICAqIEl0IGNvbnRhaW5zIHRoZSBzZWFyY2ggdGV4dCAodGhlIHVzZXIgaGFzIGVudGVyZWQpLCB0aGUgbWF0Y2ggYW5kIHNvbWUgc2V0dGluZ3MgZm9yIHRoZSBzZWFyY2hcbiAgICAgKi9cbiAgICByZWFkb25seSBsYXN0U2VhcmNoSW5mbzogSVNlYXJjaEluZm87XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnZTogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBlclBhZ2U6IG51bWJlcjtcbiAgICAvKiogVGhlIElEIG9mIHRoZSByb3cgY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgaW4gdGhlIGdyaWQuICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgcm93IGlzIGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG5cbiAgICBmaXJzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBsYXN0RWRpdGFibGVDb2x1bW5JbmRleDogbnVtYmVyO1xuICAgIGlzUm93UGlubmluZ1RvVG9wOiBib29sZWFuO1xuICAgIGhhc0RldGFpbHM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzU3VtbWFyaXplZENvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uR3JvdXBzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0VkaXRhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgcHJvdmlkZXMgYSBjYWxsYmFjayBmb3IgbG9hZGluZyB1bmlxdWUgY29sdW1uIHZhbHVlcyBvbiBkZW1hbmQuXG4gICAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBwcm92aWRlZCwgdGhlIHVuaXF1ZSB2YWx1ZXMgaXQgZ2VuZXJhdGVzIHdpbGwgYmUgdXNlZCBieSB0aGUgRXhjZWwgU3R5bGUgRmlsdGVyaW5nICAqL1xuICAgIHVuaXF1ZUNvbHVtblZhbHVlc1N0cmF0ZWd5OiAoY29sdW1uOiBDb2x1bW5UeXBlLCB0cmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGRvbmU6ICh2YWx1ZXM6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIC8qKiBQcm9wZXJ0eSwgdGhhdCBnZXRzIHRoZSBoZWFkZXIgY2VsbCBpbm5lciB3aWR0aCBmb3IgYXV0by1zaXppbmcuICovXG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGNoYW5nZSBkZXRlY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICAgKiBBIGNoYW5nZS1kZXRlY3Rpb24gdHJlZSBjb2xsZWN0cyBhbGwgdmlld3MgdGhhdCBhcmUgdG8gYmUgY2hlY2tlZCBmb3IgY2hhbmdlcy5cbiAgICAgKiBUaGUgcHJvcGVydHkgY2Fubm90IGJlIGNoYW5nZWQgKHJlYWRvbmx5KSAqL1xuICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGV4cGFuZGVkIHJvdyBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNvbGxhcHNlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93Q29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGljb25cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbnRpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY2VsbHM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjZWxsU2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIHJvd3M6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICByb3dTZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY29sdW1uczogJ25vbmUnLCdzaW5nbGUnLCAnbXVsdGlwbGUnLCAnbXVsdGlwbGVDYXNjYWRlJyAqL1xuICAgIGNvbHVtblNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNhbGN1bGF0aW9uIG1vZGUgZm9yIHN1bW1hcmllczogJ3Jvb3RMZXZlbE9ubHknLCAnY2hpbGRMZXZlbHNPbmx5JywgJ3Jvb3RBbmRDaGlsZExldmVscycgKi9cbiAgICBzdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlOiBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2Ygc3VtbWFyaWVzOiAndG9wJywgJ2JvdHRvbScgKi9cbiAgICBzdW1tYXJ5UG9zaXRpb246IEdyaWRTdW1tYXJ5UG9zaXRpb247XG5cbiAgICAvLyBYWFg6IFdvcmsgYXJvdW5kIHRpbGwgd2UgZml4ZWQgdGhlIGluamVjdGlvbiB0b2tlbnNcbiAgICBsYXN0Q2hpbGRHcmlkPzogR3JpZFR5cGU7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdG9vbGJhck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBmbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBjaGlsZFJvdz86IGFueTtcbiAgICBleHBhbnNpb25EZXB0aD86IG51bWJlcjtcbiAgICBjaGlsZERhdGFLZXk/OiBhbnk7XG4gICAgZm9yZWlnbktleT86IGFueTtcbiAgICBjYXNjYWRlT25EZWxldGU/OiBib29sZWFuO1xuICAgIGxvYWRDaGlsZHJlbk9uRGVtYW5kPzogKHBhcmVudElEOiBhbnksIGRvbmU6IChjaGlsZHJlbjogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgaGFzQ2hpbGRyZW5LZXk/OiBhbnk7XG4gICAgbG9hZGluZ1Jvd3M/OiBTZXQ8YW55PjtcbiAgICBwYXJlbnQ/OiBHcmlkVHlwZTtcbiAgICBoaWdobGlnaHRlZFJvd0lEPzogYW55O1xuICAgIHVwZGF0ZU9uUmVuZGVyPzogYm9vbGVhbjtcbiAgICBjaGlsZExheW91dEtleXM/OiBhbnlbXTtcbiAgICBjaGlsZExheW91dExpc3Q/OiBRdWVyeUxpc3Q8YW55PjtcbiAgICByb290R3JpZD86IEdyaWRUeXBlO1xuICAgIHByb2Nlc3NlZFJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBwcm9jZXNzZWRFeHBhbmRlZEZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIHByb2Nlc3NlZFJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHRyZWVHcm91cEFyZWE/OiBhbnk7XG5cbiAgICBhY3RpdmVOb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2ZU5vZGVDaGFuZ2VFdmVudEFyZ3M+O1xuICAgIGdyaWRLZXlkb3duOiBFdmVudEVtaXR0ZXI8SUdyaWRLZXlkb3duRXZlbnRBcmdzPjtcbiAgICBjZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRSb3dFdmVudEFyZ3M+O1xuICAgIGRvdWJsZUNsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBjb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPElHcmlkQ29udGV4dE1lbnVFdmVudEFyZ3M+O1xuICAgIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICByYW5nZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8R3JpZFNlbGVjdGlvblJhbmdlPjtcbiAgICByb3dTZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElSb3dTZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGxvY2FsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIGZpbHRlcmluZzogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFdmVudEFyZ3M+O1xuICAgIGZpbHRlcmluZ0RvbmU6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBjb2x1bW5QaW5uZWQ6IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5SZXNpemVkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblJlc2l6ZUV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nRW5kOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0VuZEV2ZW50QXJncz47XG4gICAgY29sdW1uU2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uU2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3Zpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdTdGFydDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdTdGFydEV2ZW50QXJncz47XG4gICAgY29sdW1uUGluOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkNhbmNlbGxhYmxlRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncz47XG4gICAgYmF0Y2hFZGl0aW5nQ2hhbmdlPzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIHJvd0FkZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhQ2FuY2VsYWJsZUV2ZW50QXJncz47XG4gICAgcm93QWRkZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93QWRkZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFDYW5jZWxhYmxlRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdTdGFydDogRXZlbnRFbWl0dGVyPElSb3dEcmFnU3RhcnRFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ0VuZEV2ZW50QXJncz47XG4gICAgcm93VG9nZ2xlOiBFdmVudEVtaXR0ZXI8SVJvd1RvZ2dsZUV2ZW50QXJncz47XG4gICAgZm9ybUdyb3VwQ3JlYXRlZDogRXZlbnRFbWl0dGVyPElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncz47XG4gICAgdmFsaWRhdGlvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncz47XG5cbiAgICB0b29sYmFyRXhwb3J0aW5nOiBFdmVudEVtaXR0ZXI8SUdyaWRUb29sYmFyRXhwb3J0RXZlbnRBcmdzPjtcbiAgICByZW5kZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcmVzaXplTm90aWZ5OiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgc29ydFN0cmF0ZWd5OiBJR3JpZFNvcnRpbmdTdHJhdGVneTtcbiAgICBncm91cFN0cmF0ZWd5PzogSUdyaWRHcm91cGluZ1N0cmF0ZWd5O1xuICAgIGZpbHRlcmluZ0xvZ2ljOiBGaWx0ZXJpbmdMb2dpYztcbiAgICBmaWx0ZXJTdHJhdGVneTogSUZpbHRlcmluZ1N0cmF0ZWd5O1xuICAgIGFsbG93QWR2YW5jZWRGaWx0ZXJpbmc6IGJvb2xlYW47XG4gICAgc29ydGluZ0V4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXTtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJU29ydGluZ0V4cHJlc3Npb25bXT47XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgc29ydGluZ09wdGlvbnM6IElTb3J0aW5nT3B0aW9ucztcblxuICAgIGJhdGNoRWRpdGluZzogYm9vbGVhbjtcbiAgICBncm91cGluZ0V4cGFuc2lvblN0YXRlPzogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM/OiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uc0NoYW5nZT86IEV2ZW50RW1pdHRlcjxJR3JvdXBpbmdFeHByZXNzaW9uW10+O1xuICAgIGdyb3Vwc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBncm91cHNSZWNvcmRzPzogSUdyb3VwQnlSZWNvcmRbXTtcbiAgICBncm91cGluZ0ZsYXRSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ1Jlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nTWV0YWRhdGE/OiBhbnlbXTtcbiAgICBzZWxlY3RlZENlbGxzPzogQ2VsbFR5cGVbXTtcbiAgICBzZWxlY3RlZFJvd3M6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGl2ZURlc2NlbmRhbnQ/OiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaXNQaXZvdD86IGJvb2xlYW47XG5cbiAgICB0b2dnbGVHcm91cD8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkKTogdm9pZDtcbiAgICBjbGVhckdyb3VwaW5nPyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5PyhleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uIHwgQXJyYXk8SUdyb3VwaW5nRXhwcmVzc2lvbj4pOiB2b2lkO1xuICAgIHJlc29sdmVPdXRsZXQ/KCk6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmU7XG4gICAgdXBkYXRlQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIGdldFNlbGVjdGVkUmFuZ2VzKCk6IEdyaWRTZWxlY3Rpb25SYW5nZVtdO1xuICAgIGRlc2VsZWN0QWxsQ29sdW1ucygpOiB2b2lkO1xuICAgIGRlc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSB8IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSB8IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgc2VsZWN0ZWRDb2x1bW5zKCk6IENvbHVtblR5cGVbXTtcbiAgICByZWZyZXNoU2VhcmNoKCk6IHZvaWQ7XG4gICAgZ2V0RGVmYXVsdEV4cGFuZFN0YXRlKHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICB0cmFja0NvbHVtbkNoYW5nZXMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBhbnkpOiBhbnk7XG4gICAgZ2V0UG9zc2libGVDb2x1bW5XaWR0aCgpOiBzdHJpbmc7XG4gICAgcmVzZXRIb3Jpem9udGFsVmlydHVhbGl6YXRpb24oKTogdm9pZDtcbiAgICBoYXNWZXJ0aWNhbFNjcm9sbCgpOiBib29sZWFuO1xuICAgIGdldFZpc2libGVDb250ZW50SGVpZ2h0KCk6IG51bWJlcjtcbiAgICBnZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgICBvcGVuUm93T3ZlcmxheShpZDogYW55KTogdm9pZDtcbiAgICBvcGVuQWR2YW5jZWRGaWx0ZXJpbmdEaWFsb2cob3ZlcmxheVNldHRpbmdzPzogT3ZlcmxheVNldHRpbmdzKTogdm9pZDtcbiAgICBzaG93U25hY2tiYXJGb3IoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgZ2V0Q29sdW1uQnlOYW1lKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgICBnZXRDb2x1bW5CeVZpc2libGVJbmRleChpbmRleDogbnVtYmVyKTogQ29sdW1uVHlwZTtcbiAgICBnZXRIZWFkZXJHcm91cFdpZHRoKGNvbHVtbjogQ29sdW1uVHlwZSk6IHN0cmluZztcbiAgICBnZXRSb3dCeUtleT8oa2V5OiBhbnkpOiBSb3dUeXBlO1xuICAgIGdldFJvd0J5SW5kZXg/KGluZGV4OiBudW1iZXIpOiBSb3dUeXBlO1xuICAgIHNldEZpbHRlcmVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0RmlsdGVyZWRTb3J0ZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbiB8IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICBjbGVhclNvcnQobmFtZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgcGluUm93KGlkOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlKTogYm9vbGVhbjtcbiAgICB1bnBpblJvdyhpZDogYW55LCByb3c/OiBSb3dUeXBlKTogYm9vbGVhbjtcbiAgICBnZXRVbnBpbm5lZEluZGV4QnlJZChpZDogYW55KTogbnVtYmVyO1xuICAgIGdldEVtcHR5UmVjb3JkT2JqZWN0Rm9yKGluUm93OiBSb3dUeXBlKTogYW55O1xuICAgIGlzU3VtbWFyeVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNSZWNvcmRQaW5uZWQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldEluaXRpYWxQaW5uZWRJbmRleChyZWM6IGFueSk6IG51bWJlcjtcbiAgICBpc1JlY29yZFBpbm5lZEJ5Vmlld0luZGV4KHJvd0luZGV4OiBudW1iZXIpOiBib29sZWFuO1xuICAgIGlzQ29sdW1uR3JvdXBlZChmaWVsZE5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gICAgaXNEZXRhaWxSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR3JvdXBCeVJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHaG9zdFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNUcmVlUm93PyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNDaGlsZEdyaWRSZWNvcmQ/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IGFueVtdO1xuICAgIGlzSGllcmFyY2hpY2FsUmVjb3JkPyhyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgY29sdW1uVG9WaXNpYmxlSW5kZXgoa2V5OiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXI7XG4gICAgbW92ZUNvbHVtbihjb2x1bW46IENvbHVtblR5cGUsIHRhcmdldDogQ29sdW1uVHlwZSwgcG9zOiBEcm9wUG9zaXRpb24pOiB2b2lkO1xuICAgIG5hdmlnYXRlVG8ocm93SW5kZXg6IG51bWJlciwgdmlzaWJsZUNvbHVtbkluZGV4OiBudW1iZXIsIGNhbGxiYWNrPzogKGU6IGFueSkgPT4gYW55KTogdm9pZDtcbiAgICBnZXRQcmV2aW91c0NlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGdldE5leHRDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBjbGVhckNlbGxTZWxlY3Rpb24oKTogdm9pZDtcbiAgICBzZWxlY3RSYW5nZShyYW5nZTogR3JpZFNlbGVjdGlvblJhbmdlIHwgR3JpZFNlbGVjdGlvblJhbmdlW10pOiB2b2lkO1xuICAgIHNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSwgY2xlYXJDdXJyZW50U2VsZWN0aW9uPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RSb3dzKHJvd0lEczogYW55W10pOiB2b2lkO1xuICAgIHNlbGVjdEFsbFJvd3Mob25seUZpbHRlckRhdGE/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdEFsbFJvd3Mob25seUZpbHRlckRhdGE/OiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRVcFBhZ2luYXRvcigpOiB2b2lkO1xuICAgIGNyZWF0ZUZpbHRlckRyb3Bkb3duKGNvbHVtbjogQ29sdW1uVHlwZSwgb3B0aW9uczogT3ZlcmxheVNldHRpbmdzKTogYW55O1xuICAgIHVwZGF0ZUNlbGwodmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSwgY29sdW1uOiBzdHJpbmcpOiB2b2lkO1xuICAgIC8vIFR5cGUgdG8gUm93VHlwZVxuICAgIGNyZWF0ZVJvdz8oaW5kZXg6IG51bWJlciwgZGF0YT86IGFueSk6IFJvd1R5cGU7XG4gICAgZGVsZXRlUm93KGlkOiBhbnkpOiBhbnk7XG4gICAgZGVsZXRlUm93QnlJZChpZDogYW55KTogYW55O1xuICAgIHVwZGF0ZVJvdyh2YWx1ZTogYW55LCByb3dTZWxlY3RvcjogYW55KTogdm9pZDtcbiAgICBjb2xsYXBzZVJvdyhpZDogYW55KTogdm9pZDtcbiAgICBub3RpZnlDaGFuZ2VzKHJlcGFpbnQ/OiBib29sZWFuKTogdm9pZDtcbiAgICByZXNldENvbHVtbkNvbGxlY3Rpb25zKCk6IHZvaWQ7XG4gICAgdHJpZ2dlclBpcGVzKCk6IHZvaWQ7XG4gICAgcmVwb3NpdGlvblJvd0VkaXRpbmdPdmVybGF5KHJvdzogUm93VHlwZSk6IHZvaWQ7XG4gICAgY2xvc2VSb3dFZGl0aW5nT3ZlcmxheSgpOiB2b2lkO1xuICAgIHJlZmxvdygpOiB2b2lkO1xuXG4gICAgLy8gVE9ETzogTWF5YmUgbW92ZSB0aGVtIHRvIEZsYXRHcmlkVHlwZSwgYnV0IHRoZW4gd2lsbCB3ZSBuZWVkIGFub3RoZXIgdG9rZW4/XG4gICAgaXNFeHBhbmRlZEdyb3VwKGdyb3VwOiBJR3JvdXBCeVJlY29yZCk6IGJvb2xlYW47XG4gICAgY3JlYXRlQ29sdW1uc0xpc3Q/KGNvbHM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgdG9nZ2xlQWxsR3JvdXBSb3dzPygpOiB2b2lkO1xuICAgIHRvZ2dsZUFsbD8oKTogdm9pZDtcbiAgICBnZW5lcmF0ZVJvd1BhdGg/KHJvd0lkOiBhbnkpOiBhbnlbXTtcbiAgICBwcmV2ZW50SGVhZGVyU2Nyb2xsPyhhcmdzOiBhbnkpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgRmxhdCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBncm91cGluZ0V4cGFuc2lvblN0YXRlOiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uczogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JvdXBpbmdFeHByZXNzaW9uW10+O1xuXG4gICAgdG9nZ2xlR3JvdXAoZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkKTogdm9pZDtcbiAgICBjbGVhckdyb3VwaW5nKGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnkoZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIFRyZWUgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmVlR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgcmVjb3JkczogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBpc1RyZWVSb3cocmVjOiBhbnkpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgSGllcmFyY2hpY2FsIEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgY2hpbGRMYXlvdXRLZXlzOiBhbnlbXTtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIFBpdm90IEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGl2b3RHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIHBpdm90IGdyaWQuXG4gICAgICogaXQgaW5jbHVkZXMgZGltZW5zaW9uIHN0cmF0ZWd5IGZvciByb3dzIGFuZCBjb2x1bW5zLCBmaWx0ZXJzIGFuZCBkYXRhIGtleXNcbiAgICAgKi9cbiAgICBwaXZvdENvbmZpZ3VyYXRpb246IElQaXZvdENvbmZpZ3VyYXRpb247XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgYWxsIGRpbWVuc2lvbnMgKHJvd3MgYW5kIGNvbHVtbnMpIGluIHRoZSBwaXZvdCBncmlkLlxuICAgICAqIGl0IGluY2x1ZGVzIGhpZXJhcmNoaWNhbCBsZXZlbCwgZmlsdGVycyBhbmQgc29ydGluZywgZGltZW5zaW9uYWwgbGV2ZWwsIGV0Yy5cbiAgICAgKi9cbiAgICBhbGxEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgcGl2b3QgY29uZmlndXJhdGlvbiBVSSBpbiB0aGUgZ3JpZC4gKi9cbiAgICBwaXZvdFVJOiBJUGl2b3RVSVNldHRpbmdzO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNvbHVtbkRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHJvd0RpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIHJvd0RpbWVuc2lvblJlc2l6aW5nOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHZhbHVlczogSVBpdm90VmFsdWVbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBkaW1lbnNpb25EYXRhQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpdm90Um93V2lkdGhzOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNldHRpbmcgdXAgdGhlIGNvbHVtbnMgZm9yIHRoZSBwaXZvdCBncmlkIGJhc2VkIG9uIHRoZSBwaXZvdCBjb25maWd1cmF0aW9uICovXG4gICAgc2V0dXBDb2x1bW5zKCk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBhbGxvd3MgdG9nZ2xlIG9mIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIHJvdyAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBwaXZvdCBncmlkICovXG4gICAgdG9nZ2xlUm93KHJvd0lEOiBhbnkpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc29sdmluZyB0aGUgZGF0YSB0eXBlIGZvciBhIHNwZWNpZmljIGZpZWxkIChjb2x1bW4pLlxuICAgICAqIEl0IHRha2VzIHRoZSBmaWVsZCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBpdCdzIHR5cGVcbiAgICAgKi9cbiAgICByZXNvbHZlRGF0YVR5cGVzKGZpZWxkOiBhbnkpOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgbW92aW5nIGRpbWVuc2lvbiBmcm9tIGl0cyBjdXJyZW50bHkgY29sbGVjdGlvbiB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCBjb2xsZWN0aW9uXG4gICAgICogYnkgdHlwZSAoUm93LCBDb2x1bW4gb3IgRmlsdGVyKSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGNvbGxlY3Rpb24ncyBlbmRcbiAgICAgKi9cbiAgICBtb3ZlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCB0YXJnZXRDb2xsZWN0aW9uVHlwZTogUGl2b3REaW1lbnNpb25UeXBlLCBpbmRleD86IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgLyoqIFRvZ2dsZXMgdGhlIGRpbWVuc2lvbidzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgZGltZW5zaW9uIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbiAqL1xuICAgIHRvZ2dsZURpbWVuc2lvbihkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbik7XG4gICAgLyoqIFNvcnQgdGhlIGRpbWVuc2lvbiBhbmQgaXRzIGNoaWxkcmVuIGluIHRoZSBwcm92aWRlZCBkaXJlY3Rpb24gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgdmFsdWUncyBlbmFibGVkIHN0YXRlIG9uIG9yIG9mZi4gVGhlIHZhbHVlIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbi4gKi9cbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIC8qKiBNb3ZlIHZhbHVlIGZyb20gaXRzIGN1cnJlbnRseSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGVuZC5cbiAgICAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQsIGl0IHdpbGwgYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoKGRpbTogSVBpdm90RGltZW5zaW9uKTogc3RyaW5nO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpbWVuc2lvbnMgaW4gdGhlIHBpdm90IGdyaWQgY2hhbmdlLiAqL1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlcyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGEgZGltZW5zaW9uIGlzIHNvcnRlZC4gKi9cbiAgICBkaW1lbnNpb25zU29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBpdm90S2V5czogSVBpdm90S2V5cztcbiAgICBoYXNNdWx0aXBsZVZhbHVlczogYm9vbGVhbjtcbiAgICBleGNlbFN0eWxlRmlsdGVyTWF4SGVpZ2h0OiBzdHJpbmc7XG4gICAgZXhjZWxTdHlsZUZpbHRlck1pbkhlaWdodDogc3RyaW5nO1xuICAgIHZhbHVlQ2hpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHJvd0RpbWVuc2lvbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZE1hc3RlckRldGFpbENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55O1xuICAgIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJR3JvdXBCeVJlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBSb3dUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0RyYWdHaG9zdENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LCAvLyB0aGlzIGlzIHRoZSByb3cgZGF0YVxuICAgIGRhdGE6IGFueSwgLy8gdGhpcyBpcyBhbHNvIHRoZSByb3cgZGF0YSBmb3Igc29tZSByZWFzb24uXG4gICAgZ3JpZDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkRW1wdHlUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgIHJvd0NoYW5nZXNDb3VudDogbnVtYmVyLFxuICAgIGVuZEVkaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRleHRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRBY3Rpb25zVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEhlYWRlclR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogQ29sdW1uVHlwZSxcbiAgICBjb2x1bW46IENvbHVtblR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDZWxsVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueSxcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnksXG4gICAgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDxhbnk+LFxuICAgIGRlZmF1bHRFcnJvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICBjZWxsOiBDZWxsVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneFJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTUuMS4wLiBVc2UgdGhlIGBrZXlgIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICBrZXk6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBzZWxlY3Q/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0PzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFN1bW1hcnlSZXN1bHRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRQYWdpbmF0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogR3JpZFR5cGU7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgc2V0dGluZ3MgZm9yIHJvdy9jb2x1bW4gcGlubmluZyBwb3NpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGlubmluZ0NvbmZpZyB7XG4gICAgY29sdW1ucz86IENvbHVtblBpbm5pbmdQb3NpdGlvbjtcbiAgICByb3dzPzogUm93UGlubmluZ1Bvc2l0aW9uO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIHNldHRpbmdzIGZvciBjbGlwYm9hcmQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbGlwYm9hcmRPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBjb3B5IGJlaGF2aW9yXG4gICAgICovXG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbmNsdWRlIHRoZSBjb2x1bW5zIGhlYWRlcnMgaW4gdGhlIGNsaXBib2FyZCBvdXRwdXQuXG4gICAgICovXG4gICAgY29weUhlYWRlcnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQXBwbHkgdGhlIGNvbHVtbnMgZm9ybWF0dGVycyAoaWYgYW55KSBvbiB0aGUgZGF0YSBpbiB0aGUgY2xpcGJvYXJkIG91dHB1dC5cbiAgICAgKi9cbiAgICBjb3B5Rm9ybWF0dGVyczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc2VwYXJhdG9yIHVzZWQgZm9yIGZvcm1hdHRpbmcgdGhlIGNvcHkgb3V0cHV0LiBEZWZhdWx0cyB0byBgXFx0YC5cbiAgICAgKi9cbiAgICBzZXBhcmF0b3I6IHN0cmluZztcbn1cbiJdfQ==
@@ -213,7 +213,7 @@ export class NoopSortingStrategy {
213
213
  }
214
214
  /**
215
215
  * Represents a class extending the IgxSorting class
216
- * Provids custom data record sorting.
216
+ * Provides custom data record sorting.
217
217
  */
218
218
  export class IgxDataRecordSorting extends IgxSorting {
219
219
  /**
@@ -224,4 +224,4 @@ export class IgxDataRecordSorting extends IgxSorting {
224
224
  return super.getFieldValue(obj.data, key, isDate, isTime);
225
225
  }
226
226
  }
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFnQzdCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBQ25COzs7Ozs7S0FNQztJQUNNLElBQUksQ0FBQyxJQUFXLEVBQUUsV0FBaUMsRUFBRSxJQUFlO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztLQUlDO0lBQ1Msa0JBQWtCLENBQ3hCLElBQVcsRUFDWCxLQUFxQixFQUNyQixLQUFhLEVBQ2IsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsT0FBaUIsSUFBSSxFQUNyQixnQkFBdUIsRUFBRSxFQUN6QixhQUE2QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUV2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxD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QVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFHLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPO1lBQ0gsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7YUFDYixjQUFTLEdBQXdCLElBQUksQ0FBQztJQUVyRCxnQkFBd0IsQ0FBQztJQUVsQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBVztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQUdMOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ2pEOzs7TUFHRTtJQUNrQixhQUFhLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLO1FBQ2xGLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVBcnJheSwgcGFyc2VEYXRlLCByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ1N0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZXN1bHQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRIaWVyYXJjaHksIGlzSGllcmFyY2h5TWF0Y2ggfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5LCBJU29ydGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuXG5jb25zdCBEQVRFX1RZUEUgPSAnZGF0ZSc7XG5jb25zdCBUSU1FX1RZUEUgPSAndGltZSc7XG5jb25zdCBEQVRFX1RJTUVfVFlQRSA9ICdkYXRlVGltZSc7XG5jb25zdCBTVFJJTkdfVFlQRSA9ICdzdHJpbmcnO1xuXG4vKiogXG4gKiBSZXByZXNlbnRzIGEgc29ydGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YVxuICogQ29udGFpbnMgYSBzaW5nbGUgbWV0aG9kIHNvcnQgdGhhdCBzb3J0cyB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc29ydGluZyBleHByZXNzaW9ucyBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAvKipcbiAgICogYGRhdGFgOiBUaGUgYXJyYXkgb2YgZGF0YSB0byBiZSBzb3J0ZWQuIENvdWxkIGJlIG9mIGFueSB0eXBlLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncm91cGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YSwgZXh0ZW5kaW5nIHRoZSBTb3J0aW5nIFN0cmF0ZWd5IGludGVyZmFjZSAoY29udGFpbnMgYSBzb3J0aW5nIG1ldGhvZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGV4dGVuZHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCBncm91cHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIHN0YXRlIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgZ3JvdXBlZC4gQ291bGQgYmUgb2YgYW55IHR5cGUuXG4gICAqIGBzdGF0ZWA6IFRoZSBncm91cGluZyBzdGF0ZSB0aGF0IGRlZmluZXMgdGhlIGdyb3VwaW5nIHNldHRpbmdzIGFuZCBleHByZXNzaW9ucy5cbiAgICogYGdyaWRgOiAoT3B0aW9uYWwpIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ3JpZCB3aGVyZSB0aGUgZ3JvdXBpbmcgaXMgYXBwbGllZC5cbiAgICogYGdyb3Vwc1JlY29yZHNgOiAoT3B0aW9uYWwpIEFuIGFycmF5IHRoYXQgaG9sZHMgdGhlIHJlY29yZHMgZm9yIGVhY2ggZ3JvdXAuXG4gICAqIGBmdWxsUmVzdWx0YDogKE9wdGlvbmFsKSBUaGUgY29tcGxldGUgcmVzdWx0IG9mIGdyb3VwaW5nIGluY2x1ZGluZyBncm91cHMgYW5kIHN1bW1hcnkgZGF0YS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIGdyb3VwQnkoZGF0YTogYW55W10sIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSwgZ3JpZD86IGFueSwgZ3JvdXBzUmVjb3Jkcz86IGFueVtdLCBmdWxsUmVzdWx0PzogSUdyb3VwQnlSZXN1bHQpOiBJR3JvdXBCeVJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2UuXG4gKiBJdCBwcm92aWRlcyBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgZm9yIGdyaWQgZGF0YSBiYXNlZCBvbiBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWd4U29ydGluZyBpbXBsZW1lbnRzIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgc29ydGVkLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLCBncmlkPzogR3JpZFR5cGUpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGRhdGEsIGV4cHJlc3Npb25zLCAwLCBncmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICogUmVjdXJzaXZlbHkgZ3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZSBhbmQgcmV0dXJucyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBEYXRhUmVjdXJzaXZlKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgc3RhdGU6IElHcm91cGluZ1N0YXRlLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICBwYXJlbnQ6IElHcm91cEJ5UmVjb3JkLFxuICAgICAgICBtZXRhZGF0YTogSUdyb3VwQnlSZWNvcmRbXSxcbiAgICAgICAgZ3JpZDogR3JpZFR5cGUgPSBudWxsLFxuICAgICAgICBncm91cHNSZWNvcmRzOiBhbnlbXSA9IFtdLFxuICAgICAgICBmdWxsUmVzdWx0OiBJR3JvdXBCeVJlc3VsdCA9IHsgZGF0YTogW10sIG1ldGFkYXRhOiBbXSB9XG4gICAgKTogYW55W10ge1xuICAgICAgICBjb25zdCBleHByZXNzaW9ucyA9IHN0YXRlLmV4cHJlc3Npb25zO1xuICAgICAgICBjb25zdCBleHBhbnNpb24gPSBzdGF0ZS5leHBhbnNpb247XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoaSA8IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkID8gZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwcmVzc2lvbnNbbGV2ZWxdLmZpZWxkTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNUaW1lID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gVElNRV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBTVFJJTkdfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cGVkUmVjb3Jkc0J5RXhwcmVzc2lvbihkYXRhLCBpLCBleHByZXNzaW9uc1tsZXZlbF0sIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZyk7XG4gICAgICAgICAgICBjb25zdCBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcmVzc2lvbnNbbGV2ZWxdLFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIHJlY29yZHM6IGNsb25lQXJyYXkoZ3JvdXApLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZ3JvdXBbMF0sIGV4cHJlc3Npb25zW2xldmVsXS5maWVsZE5hbWUsIGlzRGF0ZSwgaXNUaW1lKSxcbiAgICAgICAgICAgICAgICBncm91cFBhcmVudDogcGFyZW50LFxuICAgICAgICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBncmlkID8gZ3JpZC5yZW5kZXJlZFJvd0hlaWdodCA6IG51bGwsXG4gICAgICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5ncm91cHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3Vwc1JlY29yZHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoaWVyYXJjaHkgPSBnZXRIaWVyYXJjaHkoZ3JvdXBSb3cpO1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGUgPSBleHBhbnNpb24uZmluZCgocykgPT5cbiAgICAgICAgICAgICAgICBpc0hpZXJhcmNoeU1hdGNoKFxuICAgICAgICAgICAgICAgICAgICBzLmhpZXJhcmNoeSB8fCBbeyBmaWVsZE5hbWU6IGdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lLCB2YWx1ZTogZ3JvdXBSb3cudmFsdWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kU3RhdGUgPyBleHBhbmRTdGF0ZS5leHBhbmRlZCA6IHN0YXRlLmRlZmF1bHRFeHBhbmRlZDtcbiAgICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBtZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgaWYgKGxldmVsIDwgZXhwcmVzc2lvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZ3JvdXBEYXRhUmVjdXJzaXZlKGdyb3VwLCBzdGF0ZSwgbGV2ZWwgKyAxLCBncm91cFJvdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPyBtZXRhZGF0YSA6IFtdLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChyZWN1cnNpdmVSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goLi4uZnVsbFJlc3VsdC5tZXRhZGF0YS5zbGljZShmdWxsUmVzdWx0Lm1ldGFkYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5mdWxsUmVzdWx0LmRhdGEuc2xpY2UoZnVsbFJlc3VsdC5kYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ3JvdXAubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIGNvbnNpZGVyaW5nIGRhdGUgYW5kIHRpbWUgZGF0YSB0eXBlcy5cbiAgICogYGtleWA6IFRoZSBrZXkgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlLlxuICAgKiBgaXNEYXRlYDogKE9wdGlvbmFsKSBJbmRpY2F0ZXMgaWYgdGhlIGZpZWxkIGlzIG9mIHR5cGUgRGF0ZS5cbiAgICogYGlzVGltZWA6IChPcHRpb25hbCkgSW5kaWNhdGVzIGlmIHRoZSBmaWVsZCBpcyBvZiB0eXBlIFRpbWUuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWU8VD4ob2JqOiBULCBrZXk6IHN0cmluZywgaXNEYXRlID0gZmFsc2UsIGlzVGltZSA9IGZhbHNlKSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgob2JqLCBrZXkpO1xuICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICBpZiAoZGF0ZSAmJiBpc0RhdGUgJiYgaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gZGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzRGF0ZSAmJiAhaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzVGltZSAmJiAhaXNEYXRlKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgKiBHcm91cHMgdGhlIHJlY29yZHMgaW4gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIGV4cHJlc3Npb24uXG4gICAqIGBncm91cGluZ0NvbXBhcmVyYDogKE9wdGlvbmFsKSBBIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgcmVjb3JkcyB0aGF0IGJlbG9uZyB0byB0aGUgZ3JvdXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcml2YXRlIGdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24sXG4gICAgICAgIGlzRGF0ZSA9IGZhbHNlLFxuICAgICAgICBpc1RpbWUgPSBmYWxzZSxcbiAgICAgICAgaXNTdHJpbmc6IGJvb2xlYW4sXG4gICAgICAgIGdyb3VwaW5nQ29tcGFyZXI/OiAoYTogYW55LCBiOiBhbnksIGN1cnJSZWM6IGFueSwgZ3JvdXBSZWM6IGFueSkgPT4gbnVtYmVyXG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGNvbnN0IGtleSA9IGV4cHJlc3Npb24uZmllbGROYW1lO1xuICAgICAgICBjb25zdCBsZW4gPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZ3JvdXBSZWNvcmQgPSBkYXRhW2luZGV4XTtcbiAgICAgICAgbGV0IGdyb3VwdmFsID0gdGhpcy5nZXRGaWVsZFZhbHVlKGdyb3VwUmVjb3JkLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmVzLnB1c2goZ3JvdXBSZWNvcmQpO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBncm91cGluZ0NvbXBhcmVyIHx8IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKS5jb21wYXJlVmFsdWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VyclJlYyA9IGRhdGFbaV07XG4gICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShjdXJyUmVjLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgICAgIGlmIChleHByZXNzaW9uLmlnbm9yZUNhc2UgJiYgaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbHVtbidzIGRhdGFUeXBlIGlzIHN0cmluZyBidXQgdGhlIHZhbHVlIGlzIG51bWJlclxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXB2YWwgPSBncm91cHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBhcmVyKGZpZWxkVmFsdWUsIGdyb3VwdmFsLCBjdXJyUmVjLCBncm91cFJlY29yZCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChjdXJyUmVjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgd2hlbiBtdWx0aXBsZSBzb3J0aW5nIGlzIHBlcmZvcm1lZCwgZ29pbmcgdGhyb3VnaCBlYWNoIG9uZVxuICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IHdpdGggdGhlIGRhdGEgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc29ydGluZyBleHByZXNzaW9ucy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICAgIHByaXZhdGUgc29ydERhdGFSZWN1cnNpdmU8VD4oXG4gICAgICAgIGRhdGE6IFRbXSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBleHByZXNzaW9uSW5kZXggPSAwLFxuICAgICAgICBncmlkOiBHcmlkVHlwZVxuICAgICk6IFRbXSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGxldCBqOiBudW1iZXI7XG4gICAgICAgIGxldCBnYkRhdGE6IFRbXTtcbiAgICAgICAgbGV0IGdiRGF0YUxlbjogbnVtYmVyO1xuICAgICAgICBjb25zdCBleHByc0xlbiA9IGV4cHJlc3Npb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAgIGV4cHJlc3Npb25JbmRleCA9IGV4cHJlc3Npb25JbmRleCB8fCAwO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID49IGV4cHJzTGVuIHx8IGRhdGFMZW4gPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25zW2V4cHJlc3Npb25JbmRleF07XG4gICAgICAgIGlmICghZXhwci5zdHJhdGVneSkge1xuICAgICAgICAgICAgZXhwci5zdHJhdGVneSA9IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZD8uZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gU1RSSU5HX1RZUEU7XG4gICAgICAgIGRhdGEgPSBleHByLnN0cmF0ZWd5LnNvcnQoZGF0YSwgZXhwci5maWVsZE5hbWUsIGV4cHIuZGlyLCBleHByLmlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUsIGdyaWQpO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID09PSBleHByc0xlbiAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIGNhc2Ugb2YgbXVsdGlwbGUgc29ydGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbjsgaSsrKSB7XG4gICAgICAgICAgICBnYkRhdGEgPSB0aGlzLmdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uKGRhdGEsIGksIGV4cHIsIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZywgY29sdW1uPy5ncm91cGluZ0NvbXBhcmVyKTtcbiAgICAgICAgICAgIGdiRGF0YUxlbiA9IGdiRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoZ2JEYXRhTGVuID4gMSkge1xuICAgICAgICAgICAgICAgIGdiRGF0YSA9IHRoaXMuc29ydERhdGFSZWN1cnNpdmUoZ2JEYXRhLCBleHByZXNzaW9ucywgZXhwcmVzc2lvbkluZGV4ICsgMSwgZ3JpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgZ2JEYXRhTGVuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBkYXRhW2kgKyBqXSA9IGdiRGF0YVtqXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ2JEYXRhTGVuIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGludGVyZmFjZSBhbmQgZXh0ZW5kaW5nIHRoZSBJZ3hTb3J0aW5nIGNsYXNzLlxuICogSXQgcHJvdmlkZXMgYSBtZXRob2QgdG8gZ3JvdXAgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXBpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hHcm91cGluZyBleHRlbmRzIElneFNvcnRpbmcgaW1wbGVtZW50cyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogR3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIHB1YmxpYyBncm91cEJ5KGRhdGE6IGFueVtdLCBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsIGdyaWQ/OiBhbnksXG4gICAgICAgIGdyb3Vwc1JlY29yZHM/OiBhbnlbXSwgZnVsbFJlc3VsdDogSUdyb3VwQnlSZXN1bHQgPSB7IGRhdGE6IFtdLCBtZXRhZGF0YTogW10gfSk6IElHcm91cEJ5UmVzdWx0IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IElHcm91cEJ5UmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBpbmcgPSB0aGlzLmdyb3VwRGF0YVJlY3Vyc2l2ZShkYXRhLCBzdGF0ZSwgMCwgbnVsbCwgbWV0YWRhdGEsIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICBncmlkPy5ncm91cGluZ1BlcmZvcm1lZFN1YmplY3QubmV4dCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogZ3JvdXBpbmcsXG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2Ugd2l0aCBhIG5vLW9wZXJhdGlvbiBzb3J0aW5nIHN0cmF0ZWd5LlxuICogSXQgcGVyZm9ybXMgbm8gc29ydGluZyBhbmQgcmV0dXJucyB0aGUgZGF0YSBhcyBpdCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vb3BTb3J0aW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb29wU29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgTm9vcFNvcnRpbmdTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGFzcyBleHRlbmRpbmcgdGhlIElneFNvcnRpbmcgY2xhc3NcbiAqIFByb3ZpZHMgY3VzdG9tIGRhdGEgcmVjb3JkIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hEYXRhUmVjb3JkU29ydGluZyBleHRlbmRzIElneFNvcnRpbmcge1xuICAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYmFzZSBtZXRob2QgdG8gcmV0cmlldmUgdGhlIGZpZWxkIHZhbHVlIGZyb20gdGhlIGRhdGEgb2JqZWN0IGluc3RlYWQgb2YgdGhlIHJlY29yZCBvYmplY3QuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKi9cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGlzRGF0ZSA9IGZhbHNlLCBpc1RpbWUgPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRGaWVsZFZhbHVlKG9iai5kYXRhLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICB9XG59XG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFnQzdCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBQ25COzs7Ozs7S0FNQztJQUNNLElBQUksQ0FBQyxJQUFXLEVBQUUsV0FBaUMsRUFBRSxJQUFlO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztLQUlDO0lBQ1Msa0JBQWtCLENBQ3hCLElBQVcsRUFDWCxLQUFxQixFQUNyQixLQUFhLEVBQ2IsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsT0FBaUIsSUFBSSxFQUNyQixnQkFBdUIsRUFBRSxFQUN6QixhQUE2QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUV2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxD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QVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFHLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPO1lBQ0gsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7YUFDYixjQUFTLEdBQXdCLElBQUksQ0FBQztJQUVyRCxnQkFBd0IsQ0FBQztJQUVsQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBVztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQUdMOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ2pEOzs7TUFHRTtJQUNrQixhQUFhLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLO1FBQ2xGLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVBcnJheSwgcGFyc2VEYXRlLCByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ1N0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZXN1bHQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRIaWVyYXJjaHksIGlzSGllcmFyY2h5TWF0Y2ggfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5LCBJU29ydGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuXG5jb25zdCBEQVRFX1RZUEUgPSAnZGF0ZSc7XG5jb25zdCBUSU1FX1RZUEUgPSAndGltZSc7XG5jb25zdCBEQVRFX1RJTUVfVFlQRSA9ICdkYXRlVGltZSc7XG5jb25zdCBTVFJJTkdfVFlQRSA9ICdzdHJpbmcnO1xuXG4vKiogXG4gKiBSZXByZXNlbnRzIGEgc29ydGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YVxuICogQ29udGFpbnMgYSBzaW5nbGUgbWV0aG9kIHNvcnQgdGhhdCBzb3J0cyB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc29ydGluZyBleHByZXNzaW9ucyBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAvKipcbiAgICogYGRhdGFgOiBUaGUgYXJyYXkgb2YgZGF0YSB0byBiZSBzb3J0ZWQuIENvdWxkIGJlIG9mIGFueSB0eXBlLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncm91cGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YSwgZXh0ZW5kaW5nIHRoZSBTb3J0aW5nIFN0cmF0ZWd5IGludGVyZmFjZSAoY29udGFpbnMgYSBzb3J0aW5nIG1ldGhvZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGV4dGVuZHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCBncm91cHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIHN0YXRlIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgZ3JvdXBlZC4gQ291bGQgYmUgb2YgYW55IHR5cGUuXG4gICAqIGBzdGF0ZWA6IFRoZSBncm91cGluZyBzdGF0ZSB0aGF0IGRlZmluZXMgdGhlIGdyb3VwaW5nIHNldHRpbmdzIGFuZCBleHByZXNzaW9ucy5cbiAgICogYGdyaWRgOiAoT3B0aW9uYWwpIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ3JpZCB3aGVyZSB0aGUgZ3JvdXBpbmcgaXMgYXBwbGllZC5cbiAgICogYGdyb3Vwc1JlY29yZHNgOiAoT3B0aW9uYWwpIEFuIGFycmF5IHRoYXQgaG9sZHMgdGhlIHJlY29yZHMgZm9yIGVhY2ggZ3JvdXAuXG4gICAqIGBmdWxsUmVzdWx0YDogKE9wdGlvbmFsKSBUaGUgY29tcGxldGUgcmVzdWx0IG9mIGdyb3VwaW5nIGluY2x1ZGluZyBncm91cHMgYW5kIHN1bW1hcnkgZGF0YS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIGdyb3VwQnkoZGF0YTogYW55W10sIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSwgZ3JpZD86IGFueSwgZ3JvdXBzUmVjb3Jkcz86IGFueVtdLCBmdWxsUmVzdWx0PzogSUdyb3VwQnlSZXN1bHQpOiBJR3JvdXBCeVJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2UuXG4gKiBJdCBwcm92aWRlcyBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgZm9yIGdyaWQgZGF0YSBiYXNlZCBvbiBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWd4U29ydGluZyBpbXBsZW1lbnRzIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgc29ydGVkLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLCBncmlkPzogR3JpZFR5cGUpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGRhdGEsIGV4cHJlc3Npb25zLCAwLCBncmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICogUmVjdXJzaXZlbHkgZ3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZSBhbmQgcmV0dXJucyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBEYXRhUmVjdXJzaXZlKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgc3RhdGU6IElHcm91cGluZ1N0YXRlLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICBwYXJlbnQ6IElHcm91cEJ5UmVjb3JkLFxuICAgICAgICBtZXRhZGF0YTogSUdyb3VwQnlSZWNvcmRbXSxcbiAgICAgICAgZ3JpZDogR3JpZFR5cGUgPSBudWxsLFxuICAgICAgICBncm91cHNSZWNvcmRzOiBhbnlbXSA9IFtdLFxuICAgICAgICBmdWxsUmVzdWx0OiBJR3JvdXBCeVJlc3VsdCA9IHsgZGF0YTogW10sIG1ldGFkYXRhOiBbXSB9XG4gICAgKTogYW55W10ge1xuICAgICAgICBjb25zdCBleHByZXNzaW9ucyA9IHN0YXRlLmV4cHJlc3Npb25zO1xuICAgICAgICBjb25zdCBleHBhbnNpb24gPSBzdGF0ZS5leHBhbnNpb247XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoaSA8IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkID8gZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwcmVzc2lvbnNbbGV2ZWxdLmZpZWxkTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNUaW1lID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gVElNRV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBTVFJJTkdfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cGVkUmVjb3Jkc0J5RXhwcmVzc2lvbihkYXRhLCBpLCBleHByZXNzaW9uc1tsZXZlbF0sIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZyk7XG4gICAgICAgICAgICBjb25zdCBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcmVzc2lvbnNbbGV2ZWxdLFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIHJlY29yZHM6IGNsb25lQXJyYXkoZ3JvdXApLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZ3JvdXBbMF0sIGV4cHJlc3Npb25zW2xldmVsXS5maWVsZE5hbWUsIGlzRGF0ZSwgaXNUaW1lKSxcbiAgICAgICAgICAgICAgICBncm91cFBhcmVudDogcGFyZW50LFxuICAgICAgICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBncmlkID8gZ3JpZC5yZW5kZXJlZFJvd0hlaWdodCA6IG51bGwsXG4gICAgICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5ncm91cHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3Vwc1JlY29yZHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoaWVyYXJjaHkgPSBnZXRIaWVyYXJjaHkoZ3JvdXBSb3cpO1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGUgPSBleHBhbnNpb24uZmluZCgocykgPT5cbiAgICAgICAgICAgICAgICBpc0hpZXJhcmNoeU1hdGNoKFxuICAgICAgICAgICAgICAgICAgICBzLmhpZXJhcmNoeSB8fCBbeyBmaWVsZE5hbWU6IGdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lLCB2YWx1ZTogZ3JvdXBSb3cudmFsdWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kU3RhdGUgPyBleHBhbmRTdGF0ZS5leHBhbmRlZCA6IHN0YXRlLmRlZmF1bHRFeHBhbmRlZDtcbiAgICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBtZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgaWYgKGxldmVsIDwgZXhwcmVzc2lvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZ3JvdXBEYXRhUmVjdXJzaXZlKGdyb3VwLCBzdGF0ZSwgbGV2ZWwgKyAxLCBncm91cFJvdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPyBtZXRhZGF0YSA6IFtdLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChyZWN1cnNpdmVSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goLi4uZnVsbFJlc3VsdC5tZXRhZGF0YS5zbGljZShmdWxsUmVzdWx0Lm1ldGFkYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5mdWxsUmVzdWx0LmRhdGEuc2xpY2UoZnVsbFJlc3VsdC5kYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ3JvdXAubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIGNvbnNpZGVyaW5nIGRhdGUgYW5kIHRpbWUgZGF0YSB0eXBlcy5cbiAgICogYGtleWA6IFRoZSBrZXkgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlLlxuICAgKiBgaXNEYXRlYDogKE9wdGlvbmFsKSBJbmRpY2F0ZXMgaWYgdGhlIGZpZWxkIGlzIG9mIHR5cGUgRGF0ZS5cbiAgICogYGlzVGltZWA6IChPcHRpb25hbCkgSW5kaWNhdGVzIGlmIHRoZSBmaWVsZCBpcyBvZiB0eXBlIFRpbWUuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWU8VD4ob2JqOiBULCBrZXk6IHN0cmluZywgaXNEYXRlID0gZmFsc2UsIGlzVGltZSA9IGZhbHNlKSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgob2JqLCBrZXkpO1xuICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICBpZiAoZGF0ZSAmJiBpc0RhdGUgJiYgaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gZGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzRGF0ZSAmJiAhaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzVGltZSAmJiAhaXNEYXRlKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgKiBHcm91cHMgdGhlIHJlY29yZHMgaW4gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIGV4cHJlc3Npb24uXG4gICAqIGBncm91cGluZ0NvbXBhcmVyYDogKE9wdGlvbmFsKSBBIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgcmVjb3JkcyB0aGF0IGJlbG9uZyB0byB0aGUgZ3JvdXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcml2YXRlIGdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24sXG4gICAgICAgIGlzRGF0ZSA9IGZhbHNlLFxuICAgICAgICBpc1RpbWUgPSBmYWxzZSxcbiAgICAgICAgaXNTdHJpbmc6IGJvb2xlYW4sXG4gICAgICAgIGdyb3VwaW5nQ29tcGFyZXI/OiAoYTogYW55LCBiOiBhbnksIGN1cnJSZWM6IGFueSwgZ3JvdXBSZWM6IGFueSkgPT4gbnVtYmVyXG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGNvbnN0IGtleSA9IGV4cHJlc3Npb24uZmllbGROYW1lO1xuICAgICAgICBjb25zdCBsZW4gPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZ3JvdXBSZWNvcmQgPSBkYXRhW2luZGV4XTtcbiAgICAgICAgbGV0IGdyb3VwdmFsID0gdGhpcy5nZXRGaWVsZFZhbHVlKGdyb3VwUmVjb3JkLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmVzLnB1c2goZ3JvdXBSZWNvcmQpO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBncm91cGluZ0NvbXBhcmVyIHx8IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKS5jb21wYXJlVmFsdWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VyclJlYyA9IGRhdGFbaV07XG4gICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShjdXJyUmVjLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgICAgIGlmIChleHByZXNzaW9uLmlnbm9yZUNhc2UgJiYgaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbHVtbidzIGRhdGFUeXBlIGlzIHN0cmluZyBidXQgdGhlIHZhbHVlIGlzIG51bWJlclxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXB2YWwgPSBncm91cHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBhcmVyKGZpZWxkVmFsdWUsIGdyb3VwdmFsLCBjdXJyUmVjLCBncm91cFJlY29yZCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChjdXJyUmVjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgd2hlbiBtdWx0aXBsZSBzb3J0aW5nIGlzIHBlcmZvcm1lZCwgZ29pbmcgdGhyb3VnaCBlYWNoIG9uZVxuICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IHdpdGggdGhlIGRhdGEgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc29ydGluZyBleHByZXNzaW9ucy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICAgIHByaXZhdGUgc29ydERhdGFSZWN1cnNpdmU8VD4oXG4gICAgICAgIGRhdGE6IFRbXSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBleHByZXNzaW9uSW5kZXggPSAwLFxuICAgICAgICBncmlkOiBHcmlkVHlwZVxuICAgICk6IFRbXSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGxldCBqOiBudW1iZXI7XG4gICAgICAgIGxldCBnYkRhdGE6IFRbXTtcbiAgICAgICAgbGV0IGdiRGF0YUxlbjogbnVtYmVyO1xuICAgICAgICBjb25zdCBleHByc0xlbiA9IGV4cHJlc3Npb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAgIGV4cHJlc3Npb25JbmRleCA9IGV4cHJlc3Npb25JbmRleCB8fCAwO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID49IGV4cHJzTGVuIHx8IGRhdGFMZW4gPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25zW2V4cHJlc3Npb25JbmRleF07XG4gICAgICAgIGlmICghZXhwci5zdHJhdGVneSkge1xuICAgICAgICAgICAgZXhwci5zdHJhdGVneSA9IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZD8uZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gU1RSSU5HX1RZUEU7XG4gICAgICAgIGRhdGEgPSBleHByLnN0cmF0ZWd5LnNvcnQoZGF0YSwgZXhwci5maWVsZE5hbWUsIGV4cHIuZGlyLCBleHByLmlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUsIGdyaWQpO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID09PSBleHByc0xlbiAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIGNhc2Ugb2YgbXVsdGlwbGUgc29ydGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbjsgaSsrKSB7XG4gICAgICAgICAgICBnYkRhdGEgPSB0aGlzLmdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uKGRhdGEsIGksIGV4cHIsIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZywgY29sdW1uPy5ncm91cGluZ0NvbXBhcmVyKTtcbiAgICAgICAgICAgIGdiRGF0YUxlbiA9IGdiRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoZ2JEYXRhTGVuID4gMSkge1xuICAgICAgICAgICAgICAgIGdiRGF0YSA9IHRoaXMuc29ydERhdGFSZWN1cnNpdmUoZ2JEYXRhLCBleHByZXNzaW9ucywgZXhwcmVzc2lvbkluZGV4ICsgMSwgZ3JpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgZ2JEYXRhTGVuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBkYXRhW2kgKyBqXSA9IGdiRGF0YVtqXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ2JEYXRhTGVuIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGludGVyZmFjZSBhbmQgZXh0ZW5kaW5nIHRoZSBJZ3hTb3J0aW5nIGNsYXNzLlxuICogSXQgcHJvdmlkZXMgYSBtZXRob2QgdG8gZ3JvdXAgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXBpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hHcm91cGluZyBleHRlbmRzIElneFNvcnRpbmcgaW1wbGVtZW50cyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogR3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIHB1YmxpYyBncm91cEJ5KGRhdGE6IGFueVtdLCBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsIGdyaWQ/OiBhbnksXG4gICAgICAgIGdyb3Vwc1JlY29yZHM/OiBhbnlbXSwgZnVsbFJlc3VsdDogSUdyb3VwQnlSZXN1bHQgPSB7IGRhdGE6IFtdLCBtZXRhZGF0YTogW10gfSk6IElHcm91cEJ5UmVzdWx0IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IElHcm91cEJ5UmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBpbmcgPSB0aGlzLmdyb3VwRGF0YVJlY3Vyc2l2ZShkYXRhLCBzdGF0ZSwgMCwgbnVsbCwgbWV0YWRhdGEsIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICBncmlkPy5ncm91cGluZ1BlcmZvcm1lZFN1YmplY3QubmV4dCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogZ3JvdXBpbmcsXG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2Ugd2l0aCBhIG5vLW9wZXJhdGlvbiBzb3J0aW5nIHN0cmF0ZWd5LlxuICogSXQgcGVyZm9ybXMgbm8gc29ydGluZyBhbmQgcmV0dXJucyB0aGUgZGF0YSBhcyBpdCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vb3BTb3J0aW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb29wU29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgTm9vcFNvcnRpbmdTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGFzcyBleHRlbmRpbmcgdGhlIElneFNvcnRpbmcgY2xhc3NcbiAqIFByb3ZpZGVzIGN1c3RvbSBkYXRhIHJlY29yZCBzb3J0aW5nLlxuICovXG5leHBvcnQgY2xhc3MgSWd4RGF0YVJlY29yZFNvcnRpbmcgZXh0ZW5kcyBJZ3hTb3J0aW5nIHtcbiAgIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGJhc2UgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBkYXRhIG9iamVjdCBpbnN0ZWFkIG9mIHRoZSByZWNvcmQgb2JqZWN0LlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGZpZWxkIGluIHRoZSBkYXRhIG9iamVjdC5cbiAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldEZpZWxkVmFsdWUob2JqOiBhbnksIGtleTogc3RyaW5nLCBpc0RhdGUgPSBmYWxzZSwgaXNUaW1lID0gZmFsc2UpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0RmllbGRWYWx1ZShvYmouZGF0YSwga2V5LCBpc0RhdGUsIGlzVGltZSk7XG4gICAgfVxufVxuIl19
@@ -4,4 +4,4 @@ import { InjectionToken } from '@angular/core';
4
4
  * This allows injecting the grid transaction object into components or services.
5
5
  */
6
6
  export const IgxGridTransaction = /*@__PURE__*/ new InjectionToken('IgxGridTransaction');
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmFuZ2Ugc2VsZWN0aW9uIGJldHdlZW4gY2VydGFpbiByb3dzIGFuZCBjb2x1bW5zIG9mIHRoZSBncmlkLlxuICogUmFuZ2Ugc2VsZWN0aW9uIGNhbiBiZSBtYWRlIGVpdGhlciB0aHJvdWdoIGRyYWcgc2VsZWN0aW9uIG9yIHRocm91Z2gga2V5Ym9hcmQgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZWxlY3Rpb25SYW5nZSB7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgc3RhcnRpbmcgcm93IG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICovXG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgZW5kaW5nIHJvdyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAqL1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9yIGluZGV4IG9mIHRoZSBzdGFydGluZyBjb2x1bW4gb2YgdGhlIHNlbGVjdGlvbiByYW5nZS5cbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29sdW1uJ3MgZmllbGQgbmFtZSBvciBhIG51bWVyaWMgaW5kZXguXG4gICAgICovXG4gICAgY29sdW1uU3RhcnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvciBpbmRleCBvZiB0aGUgZW5kaW5nIGNvbHVtbiBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqIEl0IGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4ncyBmaWVsZCBuYW1lIG9yIGEgbnVtZXJpYyBpbmRleC5cbiAgICAgKi9cbiAgICBjb2x1bW5FbmQ6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNlbGVjdGVkIGNlbGwgb3Igbm9kZSBpbiBhIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbk5vZGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgcm93LlxuICAgICAqL1xuICAgIHJvdzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBBZGRpdGlvbmFsIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgbXVsdGktcm93IHNlbGVjdGlvbiBub2Rlcy5cbiAgICAgKi9cbiAgICBsYXlvdXQ/OiBJTXVsdGlSb3dMYXlvdXROb2RlO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHNlbGVjdGVkIG5vZGUgaXMgYSBzdW1tYXJ5IHJvdy5cbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHRydWUgaWYgdGhlIHNlbGVjdGVkIHJvdyBpcyBhIHN1bW1hcnkgcm93OyBvdGhlcndpc2UsIGl0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpUm93TGF5b3V0Tm9kZSB7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGNvbHVtblZpc2libGVJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBrZXlib2FyZCB3aGVuIHNlbGVjdGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB7XG4gICAgLyoqIFRoZSBzZWxlY3RlZCBub2RlIGluIHRoZSBncmlkLCBpZiBhbnkuIENhbiBiZSBudWxsIGlmIG5vIG5vZGUgaXMgc2VsZWN0ZWQuICovXG4gICAgbm9kZTogbnVsbCB8IElTZWxlY3Rpb25Ob2RlO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU2hpZnQga2V5IGlzIGN1cnJlbnRseSBwcmVzc2VkIGR1cmluZyB0aGUgc2VsZWN0aW9uLiAqL1xuICAgIHNoaWZ0OiBib29sZWFuO1xuICAgIC8qKiBUaGUgcmFuZ2Ugb2YgdGhlIHNlbGVjdGVkIGNlbGxzIGluIHRoZSBncmlkLiBDYW4gYmUgbnVsbCB3aGVuIHJlc2V0aW5nIHRoZSBzZWxlY3Rpb24uICovXG4gICAgcmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNlbGVjdGlvbiBpcyBjdXJyZW50bHkgYWN0aXZlIChiZWluZyBwZXJmb3JtZWQpLiBgRmFsc2VgIHdoZW4gcmVzZXRpbmcgdGhlIHNlbGVjdGlvbi4gICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBncmlkIHNlbGVjdGlvbiB1c2luZyBwb2ludGVyIGludGVyYWN0aW9ucyAobW91c2UpLlxuICogRXh0ZW5kcyBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB0byBpbmNsdWRlIHBvaW50ZXItc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0aW9uUG9pbnRlclN0YXRlIGV4dGVuZHMgSVNlbGVjdGlvbktleWJvYXJkU3RhdGUge1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgQ3RybCBrZXkgaXMgY3VycmVudGx5IHByZXNzZWQgZHVyaW5nIHRoZSBzZWxlY3Rpb24uICovXG4gICAgY3RybDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByaW1hcnkgcG9pbnRlciBidXR0b24gaXMgcHJlc3NlZCBkdXJpbmcgdGhlIHNlbGVjdGlvbiAoY2xpY2tlZCkuICovXG4gICAgcHJpbWFyeUJ1dHRvbjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiB0aGUgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uU2VsZWN0aW9uU3RhdGUge1xuICAgICAvKiogUmVwcmVzZW50cyB0aGUgZmllbGQgbmFtZSBvZiB0aGUgc2VsZWN0ZWQgY29sdW1uLCBpZiBhbnkuIENhbiBiZSBudWxsIGlmIG5vIGNvbHVtbiBpcyBzZWxlY3RlZC4gKi9cbiAgICBmaWVsZDogbnVsbCB8IHN0cmluZztcbiAgICAvKiogQW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHJhbmdlcyBvZiBzZWxlY3RlZCBjb2x1bW5zIGluIHRoZSBncmlkLiAqL1xuICAgIHJhbmdlOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBvdmVyYWxsIHN0YXRlIG9mIGdyaWQgc2VsZWN0aW9uLCBjb21iaW5pbmcgYm90aCBrZXlib2FyZCBhbmQgcG9pbnRlciBpbnRlcmFjdGlvbiBzdGF0ZXMuXG4gKiBJdCBjYW4gYmUgZWl0aGVyIGFuIElTZWxlY3Rpb25LZXlib2FyZFN0YXRlIG9yIGFuIElTZWxlY3Rpb25Qb2ludGVyU3RhdGUuXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdGlvblN0YXRlID0gSVNlbGVjdGlvbktleWJvYXJkU3RhdGUgfCBJU2VsZWN0aW9uUG9pbnRlclN0YXRlO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgYWNjZXNzaW5nIHRoZSBncmlkIHRyYW5zYWN0aW9uIG9iamVjdC5cbiAqIFRoaXMgYWxsb3dzIGluamVjdGluZyB0aGUgZ3JpZCB0cmFuc2FjdGlvbiBvYmplY3QgaW50byBjb21wb25lbnRzIG9yIHNlcnZpY2VzLlxuICovXG5leHBvcnQgY29uc3QgSWd4R3JpZFRyYW5zYWN0aW9uID0gLypAX19QVVJFX18qL25ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdJZ3hHcmlkVHJhbnNhY3Rpb24nKTtcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmFuZ2Ugc2VsZWN0aW9uIGJldHdlZW4gY2VydGFpbiByb3dzIGFuZCBjb2x1bW5zIG9mIHRoZSBncmlkLlxuICogUmFuZ2Ugc2VsZWN0aW9uIGNhbiBiZSBtYWRlIGVpdGhlciB0aHJvdWdoIGRyYWcgc2VsZWN0aW9uIG9yIHRocm91Z2gga2V5Ym9hcmQgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZWxlY3Rpb25SYW5nZSB7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgc3RhcnRpbmcgcm93IG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICovXG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgZW5kaW5nIHJvdyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAqL1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9yIGluZGV4IG9mIHRoZSBzdGFydGluZyBjb2x1bW4gb2YgdGhlIHNlbGVjdGlvbiByYW5nZS5cbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29sdW1uJ3MgZmllbGQgbmFtZSBvciBhIG51bWVyaWMgaW5kZXguXG4gICAgICovXG4gICAgY29sdW1uU3RhcnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvciBpbmRleCBvZiB0aGUgZW5kaW5nIGNvbHVtbiBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqIEl0IGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4ncyBmaWVsZCBuYW1lIG9yIGEgbnVtZXJpYyBpbmRleC5cbiAgICAgKi9cbiAgICBjb2x1bW5FbmQ6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNlbGVjdGVkIGNlbGwgb3Igbm9kZSBpbiBhIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbk5vZGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgcm93LlxuICAgICAqL1xuICAgIHJvdzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBBZGRpdGlvbmFsIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgbXVsdGktcm93IHNlbGVjdGlvbiBub2Rlcy5cbiAgICAgKi9cbiAgICBsYXlvdXQ/OiBJTXVsdGlSb3dMYXlvdXROb2RlO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHNlbGVjdGVkIG5vZGUgaXMgYSBzdW1tYXJ5IHJvdy5cbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHRydWUgaWYgdGhlIHNlbGVjdGVkIHJvdyBpcyBhIHN1bW1hcnkgcm93OyBvdGhlcndpc2UsIGl0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpUm93TGF5b3V0Tm9kZSB7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGNvbHVtblZpc2libGVJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBrZXlib2FyZCB3aGVuIHNlbGVjdGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB7XG4gICAgLyoqIFRoZSBzZWxlY3RlZCBub2RlIGluIHRoZSBncmlkLCBpZiBhbnkuIENhbiBiZSBudWxsIGlmIG5vIG5vZGUgaXMgc2VsZWN0ZWQuICovXG4gICAgbm9kZTogbnVsbCB8IElTZWxlY3Rpb25Ob2RlO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU2hpZnQga2V5IGlzIGN1cnJlbnRseSBwcmVzc2VkIGR1cmluZyB0aGUgc2VsZWN0aW9uLiAqL1xuICAgIHNoaWZ0OiBib29sZWFuO1xuICAgIC8qKiBUaGUgcmFuZ2Ugb2YgdGhlIHNlbGVjdGVkIGNlbGxzIGluIHRoZSBncmlkLiBDYW4gYmUgbnVsbCB3aGVuIHJlc2V0dGluZyB0aGUgc2VsZWN0aW9uLiAqL1xuICAgIHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2U7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgY3VycmVudGx5IGFjdGl2ZSAoYmVpbmcgcGVyZm9ybWVkKS4gYEZhbHNlYCB3aGVuIHJlc2V0dGluZyB0aGUgc2VsZWN0aW9uLiAgKi9cbiAgICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdGhlIGdyaWQgc2VsZWN0aW9uIHVzaW5nIHBvaW50ZXIgaW50ZXJhY3Rpb25zIChtb3VzZSkuXG4gKiBFeHRlbmRzIElTZWxlY3Rpb25LZXlib2FyZFN0YXRlIHRvIGluY2x1ZGUgcG9pbnRlci1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3Rpb25Qb2ludGVyU3RhdGUgZXh0ZW5kcyBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBDdHJsIGtleSBpcyBjdXJyZW50bHkgcHJlc3NlZCBkdXJpbmcgdGhlIHNlbGVjdGlvbi4gKi9cbiAgICBjdHJsOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJpbWFyeSBwb2ludGVyIGJ1dHRvbiBpcyBwcmVzc2VkIGR1cmluZyB0aGUgc2VsZWN0aW9uIChjbGlja2VkKS4gKi9cbiAgICBwcmltYXJ5QnV0dG9uOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5TZWxlY3Rpb25TdGF0ZSB7XG4gICAgIC8qKiBSZXByZXNlbnRzIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBzZWxlY3RlZCBjb2x1bW4sIGlmIGFueS4gQ2FuIGJlIG51bGwgaWYgbm8gY29sdW1uIGlzIHNlbGVjdGVkLiAqL1xuICAgIGZpZWxkOiBudWxsIHwgc3RyaW5nO1xuICAgIC8qKiBBbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgcmFuZ2VzIG9mIHNlbGVjdGVkIGNvbHVtbnMgaW4gdGhlIGdyaWQuICovXG4gICAgcmFuZ2U6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG92ZXJhbGwgc3RhdGUgb2YgZ3JpZCBzZWxlY3Rpb24sIGNvbWJpbmluZyBib3RoIGtleWJvYXJkIGFuZCBwb2ludGVyIGludGVyYWN0aW9uIHN0YXRlcy5cbiAqIEl0IGNhbiBiZSBlaXRoZXIgYW4gSVNlbGVjdGlvbktleWJvYXJkU3RhdGUgb3IgYW4gSVNlbGVjdGlvblBvaW50ZXJTdGF0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uU3RhdGUgPSBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB8IElTZWxlY3Rpb25Qb2ludGVyU3RhdGU7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBhY2Nlc3NpbmcgdGhlIGdyaWQgdHJhbnNhY3Rpb24gb2JqZWN0LlxuICogVGhpcyBhbGxvd3MgaW5qZWN0aW5nIHRoZSBncmlkIHRyYW5zYWN0aW9uIG9iamVjdCBpbnRvIGNvbXBvbmVudHMgb3Igc2VydmljZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBJZ3hHcmlkVHJhbnNhY3Rpb24gPSAvKkBfX1BVUkVfXyovbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0lneEdyaWRUcmFuc2FjdGlvbicpO1xuIl19