@skyux/forms 10.28.0 → 10.30.0

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.
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
152
152
  type: HostBinding,
153
153
  args: ['class.sky-margin-stacked-xl']
154
154
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7OztBQUsvRTs7R0FFRztBQXNCSCxNQUFNLE9BQU8seUJBQXlCO0lBckJ0QztRQThDRTs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQWdCN0I7Ozs7V0FJRztRQUVJLGlCQUFZLEdBQWlDLENBQUMsQ0FBQztRQVV0RDs7O1dBR0c7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMEJqQixjQUFTLEdBQUcs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QUFTOytCQUNFLG9CQUFvQixjQUdsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNaLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsMkJBQTJCOzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO3FCQUNyRDs4QkFVTSxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBU0MsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVFsQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEzQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFnQjlCLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVM5QixRQUFRO3NCQURkLEtBQUs7Z0JBUUMsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVMzQixPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWdCL0IsT0FBTztzQkFEYixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSW5DLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreUlkU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG4vKipcbiAqIE9yZ2FuaXplcyBjaGVja2JveGVzIGludG8gYSBncm91cC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBjaGVja2JveCBncm91cCBmaWVsZHNldCBsZWdlbmQuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgY2hlY2tib3ggZ3JvdXAncyBoZWFkaW5nLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGhlYWRpbmdUZXh0ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgaGVhZGluZ1RleHRgLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEJ5IGRlZmF1bHQsIHRoZSBoZWFkaW5nIHRleHQgaXMgbm90IHdyYXBwZWQgaW4gYSBoZWFkaW5nIGVsZW1lbnQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oZWFkaW5nTGV2ZWwgPSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0xldmVsKCk6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaGVhZGluZ0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBwcmV2aWV3XG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nU3R5bGU6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUgPSA0O1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGNoZWNrYm94IGdyb3VwLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgc3RhY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19zdGFja2VkID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0YWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpIGJ1dHRvbiBpc1xuICAgKiBwbGFjZWQgYmVzaWRlIHRoZSBjaGVja2JveCBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LW1hcmdpbi1zdGFja2VkLWxnJylcbiAgcHVibGljIHN0YWNrZWRMZyA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LW1hcmdpbi1zdGFja2VkLXhsJylcbiAgcHVibGljIHN0YWNrZWRYTCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0NsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBza3ktZm9udC1oZWFkaW5nLSR7dGhpcy5oZWFkaW5nU3R5bGV9YDtcbiAgfVxuXG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHJvdGVjdGVkIGZvcm1FcnJvcnNEYXRhSWQgPSAnY2hlY2tib3gtZ3JvdXAtZm9ybS1lcnJvcnMnO1xuICBwcm90ZWN0ZWQgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICNfaGVhZGluZ0xldmVsOiBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIHwgdW5kZWZpbmVkO1xuICAjX3N0YWNrZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgdmFsaWRhdGUoZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPz89IGZvcm1Hcm91cDtcblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbE5hbWVzID0gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKTtcbiAgICBsZXQgYXRMZWFzdE9uZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBjb250cm9sTmFtZXMuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcbiAgICAgIGlmIChjb250cm9sPy52YWx1ZSkge1xuICAgICAgICBhdExlYXN0T25lU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFhdExlYXN0T25lU2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVTdGFja2VkQ2xhc3NlcygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YWNrZWRMZyA9ICF0aGlzLmhlYWRpbmdMZXZlbCAmJiB0aGlzLnN0YWNrZWQ7XG4gICAgdGhpcy5zdGFja2VkWEwgPSAhIXRoaXMuaGVhZGluZ0xldmVsICYmIHRoaXMuc3RhY2tlZDtcbiAgfVxufVxuIiwiPGZpZWxkc2V0XG4gIGNsYXNzPVwic2t5LWNoZWNrYm94LWdyb3VwXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZm9ybUdyb3VwPy5lcnJvcnNcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIlxuICAgIGhlYWRpbmdUZXh0ICYmIGZvcm1Hcm91cD8uZXJyb3JzID8gZXJyb3JJZCA6IHVuZGVmaW5lZFxuICBcIlxuPlxuICA8bGVnZW5kXG4gICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknOiBoZWFkaW5nSGlkZGVuLFxuICAgICAgJ3NreS1tYXJnaW4tc3RhY2tlZC14cyc6ICEhaGludFRleHQsXG4gICAgICAnc2t5LW1hcmdpbi1zdGFja2VkLXNtJzogIWhpbnRUZXh0XG4gICAgfVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJza3ktbWFyZ2luLWlubGluZS14c1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkaW5nTGV2ZWxcIiBbY2xhc3NdPVwiJ3NreS1oZWFkaW5nLXRleHQgJyArIGhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGgzICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSAzXCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oMz5cbiAgICAgIDxoNCAqbmdJZj1cImhlYWRpbmdMZXZlbCA9PT0gNFwiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvaDQ+XG4gICAgICA8aDUgKm5nSWY9XCJoZWFkaW5nTGV2ZWwgPT09IDVcIiBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+XG4gICAgICAgIHt7IGhlYWRpbmdUZXh0IH19XG4gICAgICA8L2g1PiA8L3NwYW5cbiAgICA+PHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCIgKm5nSWY9XCJyZXF1aXJlZFwiPnt7XG4gICAgICAnc2t5dXhfY2hlY2tib3hfZ3JvdXBfcmVxdWlyZWQnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgfX08L3NwYW5cbiAgICA+PHNreS1oZWxwLWlubGluZVxuICAgICAgKm5nSWY9XCJoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleVwiXG4gICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIC8+XG4gIDwvbGVnZW5kPlxuICA8ZGl2XG4gICAgc2t5SWRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1tYXJnaW4tc3RhY2tlZC1sZyBza3ktY2hlY2tib3gtZ3JvdXAtaGludC10ZXh0JzpcbiAgICAgICAgISFoaW50VGV4dFxuICAgIH1cIlxuICAgICNoaW50VGV4dEVsPVwic2t5SWRcIlxuICA+XG4gICAge3sgaGludFRleHQgfX1cbiAgPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwic2t5LWNoZWNrYm94LWdyb3VwLWlubGluZSBza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktY2hlY2tib3hbaWNvbl1cIiAvPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LWNoZWNrYm94LWdyb3VwLXN0YWNrZWRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktY2hlY2tib3hcIiAvPlxuICA8L3NwYW4+XG48L2ZpZWxkc2V0PlxuPHNreS1mb3JtLWVycm9yc1xuICAqbmdJZj1cImhlYWRpbmdUZXh0ICYmIGZvcm1Hcm91cD8uZXJyb3JzXCJcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbYXR0ci5kYXRhLXNreS1pZF09XCJmb3JtRXJyb3JzRGF0YUlkXCJcbiAgW2Vycm9yc109XCJmb3JtR3JvdXA/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICBbc2hvd0Vycm9yc109XCJmb3JtR3JvdXA/LnRvdWNoZWQgfHwgZm9ybUdyb3VwPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7OztBQUsvRTs7R0FFRztBQXNCSCxNQUFNLE9BQU8seUJBQXlCO0lBckJ0QztRQThDRTs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQWdCN0I7Ozs7V0FJRztRQUVJLGlCQUFZLEdBQWlDLENBQUMsQ0FBQztRQVV0RDs7O1dBR0c7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMkJqQixjQUFTLEdBQUcs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QUFTOytCQUNFLG9CQUFvQixjQUdsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNaLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsMkJBQTJCOzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO3FCQUNyRDs4QkFVTSxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBU0MsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVFsQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEzQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFnQjlCLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVM5QixRQUFRO3NCQURkLEtBQUs7Z0JBUUMsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVMzQixPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWlCL0IsT0FBTztzQkFEYixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSW5DLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreUlkU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG4vKipcbiAqIE9yZ2FuaXplcyBjaGVja2JveGVzIGludG8gYSBncm91cC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBjaGVja2JveCBncm91cCBmaWVsZHNldCBsZWdlbmQuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgY2hlY2tib3ggZ3JvdXAncyBoZWFkaW5nLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGhlYWRpbmdUZXh0ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgaGVhZGluZ1RleHRgLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEJ5IGRlZmF1bHQsIHRoZSBoZWFkaW5nIHRleHQgaXMgbm90IHdyYXBwZWQgaW4gYSBoZWFkaW5nIGVsZW1lbnQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oZWFkaW5nTGV2ZWwgPSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0xldmVsKCk6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaGVhZGluZ0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBwcmV2aWV3XG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nU3R5bGU6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUgPSA0O1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGNoZWNrYm94IGdyb3VwLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgc3RhY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19zdGFja2VkID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0YWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSBjaGVja2JveCBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC1sZycpXG4gIHB1YmxpYyBzdGFja2VkTGcgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC14bCcpXG4gIHB1YmxpYyBzdGFja2VkWEwgPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IGhlYWRpbmdDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2t5LWZvbnQtaGVhZGluZy0ke3RoaXMuaGVhZGluZ1N0eWxlfWA7XG4gIH1cblxuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGVycm9ySWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIHByb3RlY3RlZCBmb3JtRXJyb3JzRGF0YUlkID0gJ2NoZWNrYm94LWdyb3VwLWZvcm0tZXJyb3JzJztcbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICAjX2hlYWRpbmdMZXZlbDogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZDtcbiAgI19zdGFja2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHZhbGlkYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuZm9ybUdyb3VwID8/PSBmb3JtR3JvdXA7XG5cbiAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xOYW1lcyA9IE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scyk7XG4gICAgbGV0IGF0TGVhc3RPbmVTZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgY29udHJvbE5hbWVzLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XG4gICAgICBpZiAoY29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgYXRMZWFzdE9uZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghYXRMZWFzdE9uZVNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlU3RhY2tlZENsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFja2VkTGcgPSAhdGhpcy5oZWFkaW5nTGV2ZWwgJiYgdGhpcy5zdGFja2VkO1xuICAgIHRoaXMuc3RhY2tlZFhMID0gISF0aGlzLmhlYWRpbmdMZXZlbCAmJiB0aGlzLnN0YWNrZWQ7XG4gIH1cbn1cbiIsIjxmaWVsZHNldFxuICBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cFwiXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWZvcm1Hcm91cD8uZXJyb3JzXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICBoZWFkaW5nVGV4dCAmJiBmb3JtR3JvdXA/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgXCJcbj5cbiAgPGxlZ2VuZFxuICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWxcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlbixcbiAgICAgICdza3ktbWFyZ2luLXN0YWNrZWQteHMnOiAhIWhpbnRUZXh0LFxuICAgICAgJ3NreS1tYXJnaW4tc3RhY2tlZC1zbSc6ICFoaW50VGV4dFxuICAgIH1cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LW1hcmdpbi1pbmxpbmUteHNcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGluZ0xldmVsXCIgW2NsYXNzXT1cIidza3ktaGVhZGluZy10ZXh0ICcgKyBoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxoMyAqbmdJZj1cImhlYWRpbmdMZXZlbCA9PT0gM1wiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvaDM+XG4gICAgICA8aDQgKm5nSWY9XCJoZWFkaW5nTGV2ZWwgPT09IDRcIiBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+XG4gICAgICAgIHt7IGhlYWRpbmdUZXh0IH19XG4gICAgICA8L2g0PlxuICAgICAgPGg1ICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSA1XCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oNT4gPC9zcGFuXG4gICAgPjxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiICpuZ0lmPVwicmVxdWlyZWRcIj57e1xuICAgICAgJ3NreXV4X2NoZWNrYm94X2dyb3VwX3JlcXVpcmVkJyB8IHNreUxpYlJlc291cmNlc1xuICAgIH19PC9zcGFuXG4gICAgPjxza3ktaGVscC1pbmxpbmVcbiAgICAgICpuZ0lmPVwiaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXlcIlxuICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAvPlxuICA8L2xlZ2VuZD5cbiAgPGRpdlxuICAgIHNreUlkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCBza3ktbWFyZ2luLXN0YWNrZWQtbGcgc2t5LWNoZWNrYm94LWdyb3VwLWhpbnQtdGV4dCc6XG4gICAgICAgICEhaGludFRleHRcbiAgICB9XCJcbiAgICAjaGludFRleHRFbD1cInNreUlkXCJcbiAgPlxuICAgIHt7IGhpbnRUZXh0IH19XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cC1pbmxpbmUgc2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94W2ljb25dXCIgLz5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cC1zdGFja2VkXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94XCIgLz5cbiAgPC9zcGFuPlxuPC9maWVsZHNldD5cbjxza3ktZm9ybS1lcnJvcnNcbiAgKm5nSWY9XCJoZWFkaW5nVGV4dCAmJiBmb3JtR3JvdXA/LmVycm9yc1wiXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2F0dHIuZGF0YS1za3ktaWRdPVwiZm9ybUVycm9yc0RhdGFJZFwiXG4gIFtlcnJvcnNdPVwiZm9ybUdyb3VwPy5lcnJvcnNcIlxuICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgW3Nob3dFcnJvcnNdPVwiZm9ybUdyb3VwPy50b3VjaGVkIHx8IGZvcm1Hcm91cD8uZGlydHlcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZm9ybS1lcnJvclwiIC8+XG48L3NreS1mb3JtLWVycm9ycz5cbiJdfQ==
@@ -410,4 +410,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
410
410
  type: HostBinding,
411
411
  args: ['style.display']
412
412
  }] } });
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7OztBQUl4Rzs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9COzs7Ozs7T0FNRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDcEQsdUJBQXVCLEVBQUUsQ0FBQzth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QUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7cUJBQ3JEO3dEQWFVLEtBQUs7c0JBRGYsS0FBSztnQkF1QkssVUFBVTtzQkFEcEIsS0FBSztnQkFvQkssRUFBRTtzQkFEWixLQUFLO2dCQWVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBcUJDLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxJQUFJO3NCQURkLEtBQUs7Z0JBb0JDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFTQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUUMsTUFBTTtzQkFGWixNQUFNO2dCQVNBLElBQUk7c0JBRFYsS0FBSztnQkFhSyxZQUFZO3NCQUR0QixLQUFLO2dCQW9CSyxPQUFPO3NCQURqQixLQUFLO2dCQXFCSyxhQUFhO3NCQUR2QixLQUFLO2dCQXNCQyxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUy9CLFNBQVM7c0JBRGYsS0FBSztnQkFRQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVMvQixRQUFRO3NCQURkLEtBQUs7Z0JBV0MsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBU25DLE9BQU87c0JBRGIsS0FBSztnQkFPSyxhQUFhO3NCQUR2QixNQUFNO2dCQVNJLGNBQWM7c0JBRHhCLE1BQU07Z0JBVUksbUJBQW1CO3NCQUQ3QixNQUFNO2dCQU1JLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFhbkMsT0FBTztzQkFEYixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lGb3Jtc1V0aWxpdHksIFNreUlkU2VydmljZSwgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWZpZWxkLWxhYmVsLXRleHQtcmVxdWlyZWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreUNoZWNrYm94Q2hhbmdlIH0gZnJvbSAnLi9jaGVja2JveC1jaGFuZ2UnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCBgdHlwZT1cImNoZWNrYm94XCJgLiBXaGVuIHVzZXJzIHNlbGVjdCBhIGNoZWNrYm94LCBpdHMgdmFsdWVcbiAqIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1jaGVja2JveGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hDb21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQsIHVzZVZhbHVlOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoZWNrYm94Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY2hlY2tib3ggZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIFlvdSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IGZvciBpY29uXG4gICAqIGNoZWNrYm94ZXMuIElmIHRoZSBjaGVja2JveCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbGFiZWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2xhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlXG4gICAqIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGNoZWNrYm94IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGxhYmVsVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxsZWRCeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsbGVkQnkgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsbGVkQnknLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbGxlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIGNoZWNrYm94LlxuICAgKiBJZiBhIHZhbHVlIGlzIG5vdCBwcm92aWRlZCwgYW4gYXV0b2dlbmVyYXRlZCBJRCBpcyB1c2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNoZWNrYm94LSR7dmFsdWV9LWlucHV0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH0taW5wdXRgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNoZWNrYm94IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlLm5leHQoY29lcmNlZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluZGV4IGZvciB0aGUgY2hlY2tib3guIElmIG5vdCBkZWZpbmVkLCB0aGUgaW5kZXggaXMgc2V0IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGVcbiAgICogY2hlY2tib3ggb24gbG9hZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBjaGVja2JveC5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNkZWZhdWx0SWQpIHtcbiAgICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19uYW1lID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH1gO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGNoZWNrYm94IGxhYmVsLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNoZWNrYm94Q2hhbmdlPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgaWNvbiB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBjaGVja2JveC4gVG8gZ3JvdXAgaWNvbiBjaGVja2JveGVzXG4gICAqIGxpa2UgaW4gdGhlIGRlbW8sIHBsYWNlIHRoZSBjaGVja2JveGVzIHdpdGhpbiBhIGBza3ktY2hlY2tib3gtZ3JvdXBgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGJhY2tncm91bmQgY29sb3IgdHlwZSBhZnRlciB1c2VycyBzZWxlY3QgYSBjaGVja2JveCB3aGVyZSB0aGVcbiAgICogYGljb25gIHByb3BlcnR5IGRpc3BsYXlzIGFuIGljb24gaW4gcGxhY2Ugb2YgdGhlIGNoZWNrYm94LiBUaGUgdmFsaWQgb3B0aW9ucyBjb3JyZXNwb25kIHRvXG4gICAqIFt0aGUgbGFiZWwgY29tcG9uZW50J3NdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9sYWJlbClcbiAgICogbGFiZWwgdHlwZXMuIGBcImluZm9cImAgY3JlYXRlcyBhIGJsdWUgYmFja2dyb3VuZCwgYFwic3VjY2Vzc1wiYCBjcmVhdGVzIGEgZ3JlZW5cbiAgICogYmFja2dyb3VuZCwgYFwid2FybmluZ1wiYCBjcmVhdGVzIGFuIG9yYW5nZSBiYWNrZ3JvdW5kLCBhbmQgYFwiZGFuZ2VyXCJgIGNyZWF0ZXMgYSByZWQgYmFja2dyb3VuZC5cbiAgICogQGRlZmF1bHQgXCJpbmZvXCJcbiAgICogQGRlcHJlY2F0ZWQgY2hlY2tib3hUeXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hlY2tib3hUeXBlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lDaGVja2JveENvbXBvbmVudC5jaGVja2JveFR5cGUnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA3LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy4jX2NoZWNrYm94VHlwZSA9IHZhbHVlID8gdmFsdWUudG9Mb3dlckNhc2UoKSA6ICdpbmZvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tib3hUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2JveFR5cGU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjaGVja2VkID0gISF2YWx1ZTtcbiAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy4jX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuI19jaGVja2VkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UubmV4dChjaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGluIHRoZSBpbmRldGVybWluYXRlIHN0YXRlLiBUaGlzIGhhcyBubyB2aXN1YWwgZWZmZWN0IGZvciBpY29uIGNoZWNrYm94ZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbmRldGVybWluYXRlKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2luZGV0ZXJtaW5hdGUgPSAhIXZhbHVlO1xuICAgIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UubmV4dCh0aGlzLiNfaW5kZXRlcm1pbmF0ZSk7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRoaXMuI19pbmRldGVybWluYXRlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaW5kZXRlcm1pbmF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgY2hlY2tib3gncyBsYWJlbC4gVXNlIHRoaXMgaW5zdGVhZCBvZiB0aGUgYHNreS1jaGVja2JveC1sYWJlbGAgd2hlbiB0aGUgbGFiZWwgaXMgdGV4dC1vbmx5LlxuICAgKiBTcGVjaWZ5aW5nIGBsYWJlbFRleHRgIGFsc28gZW5hYmxlcyBhdXRvbWF0aWMgZXJyb3IgbWVzc2FnZSBoYW5kbGluZyBmb3IgY2hlY2tib3guXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZGUgdGhlIGBsYWJlbFRleHRgLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgY2hlY2tib3guIElmIHRoZSBjaGVja2JveCBpcyB3aXRoaW4gYSBjaGVja2JveCBncm91cCxcbiAgICogc2V0IGBzdGFja2VkYCBvbiB0aGUgY2hlY2tib3ggZ3JvdXAgY29tcG9uZW50IGluc3RlYWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktbWFyZ2luLXN0YWNrZWQtbGcnKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSkgYnV0dG9uIGlzXG4gICAqIHBsYWNlZCBiZXNpZGUgdGhlIGNoZWNrYm94IGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBvciBkZXNlbGVjdCB0aGUgY2hlY2tib3guXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBjaGVja2VkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiNjaGVja2VkQ2hhbmdlT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZENoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnM7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBzZXQgaW5wdXRFbChlbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbnB1dEVsID0gZWw7XG4gICAgaWYgKGVsICYmIHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgZWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy5pbmRldGVybWluYXRlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5wdXRFbCgpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2lucHV0RWw7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICBwdWJsaWMgZGlzcGxheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNDaGVja2JveFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucmVxdWlyZWQgfHxcbiAgICAgIHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKSB8fFxuICAgICAgdGhpcy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlucHV0SWQgPSAnJztcblxuICAjY2hlY2tlZENoYW5nZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAjY2hlY2tlZENoYW5nZU9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgI2Rpc2FibGVkQ2hhbmdlOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICNkaXNhYmxlZENoYW5nZU9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgI2luZGV0ZXJtaW5hdGVDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgI19jaGVja2VkID0gZmFsc2U7XG4gICNfY2hlY2tib3hUeXBlID0gJ2luZm8nO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAjX2lucHV0RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gICNfbmFtZSA9ICcnO1xuICAjX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfbGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICAjZGVmYXVsdElkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjbGFiZWxUZXh0UmVxdWlyZWQgPSBpbmplY3QoU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWRTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy4jZGlzYWJsZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuZGlzYWJsZWQpO1xuXG4gICAgdGhpcy4jY2hlY2tlZENoYW5nZU9icyA9IHRoaXMuI2NoZWNrZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jZGlzYWJsZWRDaGFuZ2VPYnMgPSB0aGlzLiNkaXNhYmxlZENoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlT2JzID0gdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuaWQgPSB0aGlzLiNkZWZhdWx0SWQ7XG4gICAgdGhpcy5uYW1lID0gdGhpcy4jZGVmYXVsdElkO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNsYWJlbFRleHRSZXF1aXJlZCAmJiAhdGhpcy5sYWJlbFRleHQpIHtcbiAgICAgIHRoaXMuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICB0aGlzLiNsYWJlbFRleHRSZXF1aXJlZD8udmFsaWRhdGVMYWJlbFRleHQodGhpcy5sYWJlbFRleHQpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxib29sZWFuPik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLmNvbnRyb2wgfHw9IGNvbnRyb2w7XG5cbiAgICAvLyBJbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMsIEFuZ3VsYXIncyBuYXRpdmUgJ3JlcXVpcmVkJyBhdHRyaWJ1dGUgZGlyZWN0aXZlIG9ubHkgd29ya3NcbiAgICAvLyBvbiBgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdYCBzZWxlY3RvcnMsIHNvIHdlIG5lZWQgdG8gd3JpdGUgdGhlIHZhbGlkYXRpb24gbG9naWMgb3Vyc2VsdmVzLlxuICAgIC8vIEFsc28sIHdlJ3JlIHRyZWF0aW5nIFZhbGlkYXRvcnMucmVxdWlyZWQgdGhlIHNhbWUgYXMgVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUgaW50ZXJuYWxseSwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoYXQgZGVjaXNpb24gaW4gb3VyIGN1c3RvbSB2YWxpZGF0b3IuXG4gICAgcmV0dXJuIHRoaXMuaXNDaGVja2JveFJlcXVpcmVkICYmIGNvbnRyb2wudmFsdWUgIT09IHRydWVcbiAgICAgID8geyByZXF1aXJlZDogdHJ1ZSB9XG4gICAgICA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNoZWNrYm94IGlucHV0IGVsZW1lbnQuXG4gICAqIFRvZ2dsZXMgY2hlY2tlZCBzdGF0ZSBpZiBlbGVtZW50IGlzIG5vdCBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBvbkludGVyYWN0aW9uRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2UgYWx3YXlzIGhhdmUgdG8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hhbmdlIGV2ZW50LlxuICAgIC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcbiAgICAvLyBlbWl0IGl0cyBldmVudCBvYmplY3QgdG8gdGhlIGBjaGFuZ2VgIG91dHB1dC5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLiN0b2dnbGUoKTtcbiAgICAgIHRoaXMuI2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIHRoaXMuI2VtaXRDaGFuZ2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCBpcyBibHVycmVkLiBOZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKHZhbHVlKSA9PiB7fTtcblxuICAjZW1pdENoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQoeyBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgYGNoZWNrZWRgIHZhbHVlIGJldHdlZW4gdHJ1ZSBhbmQgZmFsc2VcbiAgICovXG4gICN0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktY2hlY2tib3gtb3V0ZXItd3JhcHBlclwiPlxuICA8bGFiZWxcbiAgICBjbGFzcz1cInNreS1jaGVja2JveC13cmFwcGVyIHNreS1zd2l0Y2hcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IGlzQ2hlY2tib3hSZXF1aXJlZCxcbiAgICAgICdza3ktc3dpdGNoLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgICAnc2t5LW1hcmdpbi1pbmxpbmUteHMnOiBsYWJlbFRleHQgJiYgIWljb25cbiAgICB9XCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaW5wdXQgc2t5LXN3aXRjaC1pbnB1dFwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwiaXNDaGVja2JveFJlcXVpcmVkXCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsVGV4dCB8fCBsYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxUZXh0ID8gdW5kZWZpbmVkIDogbGFiZWxsZWRCeVwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImlzQ2hlY2tib3hSZXF1aXJlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWNvbnRyb2w/LmVycm9yc1wiXG4gICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgbGFiZWxUZXh0ICYmIGNvbnRyb2w/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgIFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc3dpdGNoLWludmFsaWQnOlxuICAgICAgICAgIChjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LmRpcnR5KSAmJiBjb250cm9sPy5lcnJvcnNcbiAgICAgIH1cIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgICAoY2hhbmdlKT1cIm9uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgICAgICNpbnB1dEVsXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJza3ktc3dpdGNoLWNvbnRyb2wgc2t5LXJvdW5kZWQtY29ybmVyc1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaWNvbic6IGljb24sXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IGNoZWNrYm94VHlwZSA9PT0gJ2luZm8nLFxuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLXN1Y2Nlc3MnOiBjaGVja2JveFR5cGUgPT09ICdzdWNjZXNzJyxcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC13YXJuaW5nJzogY2hlY2tib3hUeXBlID09PSAnd2FybmluZycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtZGFuZ2VyJzogY2hlY2tib3hUeXBlID09PSAnZGFuZ2VyJ1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpuZ0lmPVwiaWNvbjsgZWxzZSBjaGVja2VkT3JJbmRldGVybWluYXRlVGVtcGxhdGVcIlxuICAgICAgICBbZml4ZWRXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAvPlxuICAgICAgPG5nLXRlbXBsYXRlICNjaGVja2VkT3JJbmRldGVybWluYXRlVGVtcGxhdGU+XG4gICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICpuZ0lmPVwiIWluZGV0ZXJtaW5hdGUgJiYgY2hlY2tlZFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1tb2Rlcm4tY2hlY2tlZFwiXG4gICAgICAgICAgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgaWNvbj1cImNoZWNrXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpbmRldGVybWluYXRlXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1jaGVja2JveC1pY29uLWluZGV0ZXJtaW5hdGUgc2t5LWNoZWNrYm94LWljb24tbW9kZXJuLWluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgIFtmaXhlZFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgIGljb249XCJzcXVhcmVcIlxuICAgICAgICAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUZXh0OyBlbHNlIGxhYmVsRWxlbWVudFwiPlxuICAgICAgPHNreS1jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsXG4gICAgICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICAgICAgW2xhYmVsSGlkZGVuXT1cImxhYmVsSGlkZGVuXCJcbiAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbEVsZW1lbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktY2hlY2tib3gtbGFiZWxcIiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbGFiZWw+XG4gIDxza3ktaGVscC1pbmxpbmVcbiAgICAqbmdJZj1cIihoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkgJiYgbGFiZWxUZXh0XCJcbiAgICBjbGFzcz1cInNreS1jaGVja2JveC1oZWxwLWlubGluZVwiXG4gICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gIC8+XG48L3NwYW4+XG48c3BhbiBza3lJZCAjaGludFRleHRFbD1cInNreUlkXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cImhpbnRUZXh0XCJcbiAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktY2hlY2tib3gtaGludC10ZXh0IHNreS1jaGVja2JveC1mb3JtLW1hcmdpblwiXG4gID5cbiAgICB7eyBoaW50VGV4dCB9fVxuICA8L2Rpdj5cbjwvc3Bhbj5cbjxza3ktZm9ybS1lcnJvcnNcbiAgY2xhc3M9XCJza3ktY2hlY2tib3gtZm9ybS1tYXJnaW5cIlxuICAqbmdJZj1cImxhYmVsVGV4dCAmJiBjb250cm9sPy5lcnJvcnNcIlxuICBbaWRdPVwiZXJyb3JJZFwiXG4gIFtlcnJvcnNdPVwiY29udHJvbD8uZXJyb3JzXCJcbiAgW2xhYmVsVGV4dF09XCInc2t5dXhfY2hlY2tib3hfcmVxdWlyZWRfbGFiZWxfdGV4dCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICBbc2hvd0Vycm9yc109XCJjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LmRpcnR5XCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZvcm0tZXJyb3JcIiAvPlxuPC9za3ktZm9ybS1lcnJvcnM+XG4iXX0=
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7OztBQUl4Rzs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9COzs7Ozs7T0FNRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDcEQsdUJBQXVCLEVBQUUsQ0FBQzth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QUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7cUJBQ3JEO3dEQWFVLEtBQUs7c0JBRGYsS0FBSztnQkF1QkssVUFBVTtzQkFEcEIsS0FBSztnQkFvQkssRUFBRTtzQkFEWixLQUFLO2dCQWVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBcUJDLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxJQUFJO3NCQURkLEtBQUs7Z0JBb0JDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFTQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUUMsTUFBTTtzQkFGWixNQUFNO2dCQVNBLElBQUk7c0JBRFYsS0FBSztnQkFhSyxZQUFZO3NCQUR0QixLQUFLO2dCQW9CSyxPQUFPO3NCQURqQixLQUFLO2dCQXFCSyxhQUFhO3NCQUR2QixLQUFLO2dCQXNCQyxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUy9CLFNBQVM7c0JBRGYsS0FBSztnQkFRQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVMvQixRQUFRO3NCQURkLEtBQUs7Z0JBV0MsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBVW5DLE9BQU87c0JBRGIsS0FBSztnQkFPSyxhQUFhO3NCQUR2QixNQUFNO2dCQVNJLGNBQWM7c0JBRHhCLE1BQU07Z0JBVUksbUJBQW1CO3NCQUQ3QixNQUFNO2dCQU1JLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFhbkMsT0FBTztzQkFEYixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lGb3Jtc1V0aWxpdHksIFNreUlkU2VydmljZSwgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWZpZWxkLWxhYmVsLXRleHQtcmVxdWlyZWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreUNoZWNrYm94Q2hhbmdlIH0gZnJvbSAnLi9jaGVja2JveC1jaGFuZ2UnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCBgdHlwZT1cImNoZWNrYm94XCJgLiBXaGVuIHVzZXJzIHNlbGVjdCBhIGNoZWNrYm94LCBpdHMgdmFsdWVcbiAqIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1jaGVja2JveGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hDb21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQsIHVzZVZhbHVlOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoZWNrYm94Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY2hlY2tib3ggZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIFlvdSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IGZvciBpY29uXG4gICAqIGNoZWNrYm94ZXMuIElmIHRoZSBjaGVja2JveCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbGFiZWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2xhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlXG4gICAqIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGNoZWNrYm94IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGxhYmVsVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxsZWRCeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsbGVkQnkgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsbGVkQnknLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbGxlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIGNoZWNrYm94LlxuICAgKiBJZiBhIHZhbHVlIGlzIG5vdCBwcm92aWRlZCwgYW4gYXV0b2dlbmVyYXRlZCBJRCBpcyB1c2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNoZWNrYm94LSR7dmFsdWV9LWlucHV0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH0taW5wdXRgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNoZWNrYm94IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlLm5leHQoY29lcmNlZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluZGV4IGZvciB0aGUgY2hlY2tib3guIElmIG5vdCBkZWZpbmVkLCB0aGUgaW5kZXggaXMgc2V0IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGVcbiAgICogY2hlY2tib3ggb24gbG9hZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBjaGVja2JveC5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNkZWZhdWx0SWQpIHtcbiAgICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19uYW1lID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH1gO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGNoZWNrYm94IGxhYmVsLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNoZWNrYm94Q2hhbmdlPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgaWNvbiB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBjaGVja2JveC4gVG8gZ3JvdXAgaWNvbiBjaGVja2JveGVzXG4gICAqIGxpa2UgaW4gdGhlIGRlbW8sIHBsYWNlIHRoZSBjaGVja2JveGVzIHdpdGhpbiBhIGBza3ktY2hlY2tib3gtZ3JvdXBgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGJhY2tncm91bmQgY29sb3IgdHlwZSBhZnRlciB1c2VycyBzZWxlY3QgYSBjaGVja2JveCB3aGVyZSB0aGVcbiAgICogYGljb25gIHByb3BlcnR5IGRpc3BsYXlzIGFuIGljb24gaW4gcGxhY2Ugb2YgdGhlIGNoZWNrYm94LiBUaGUgdmFsaWQgb3B0aW9ucyBjb3JyZXNwb25kIHRvXG4gICAqIFt0aGUgbGFiZWwgY29tcG9uZW50J3NdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9sYWJlbClcbiAgICogbGFiZWwgdHlwZXMuIGBcImluZm9cImAgY3JlYXRlcyBhIGJsdWUgYmFja2dyb3VuZCwgYFwic3VjY2Vzc1wiYCBjcmVhdGVzIGEgZ3JlZW5cbiAgICogYmFja2dyb3VuZCwgYFwid2FybmluZ1wiYCBjcmVhdGVzIGFuIG9yYW5nZSBiYWNrZ3JvdW5kLCBhbmQgYFwiZGFuZ2VyXCJgIGNyZWF0ZXMgYSByZWQgYmFja2dyb3VuZC5cbiAgICogQGRlZmF1bHQgXCJpbmZvXCJcbiAgICogQGRlcHJlY2F0ZWQgY2hlY2tib3hUeXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hlY2tib3hUeXBlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lDaGVja2JveENvbXBvbmVudC5jaGVja2JveFR5cGUnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA3LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy4jX2NoZWNrYm94VHlwZSA9IHZhbHVlID8gdmFsdWUudG9Mb3dlckNhc2UoKSA6ICdpbmZvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tib3hUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2JveFR5cGU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjaGVja2VkID0gISF2YWx1ZTtcbiAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy4jX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuI19jaGVja2VkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UubmV4dChjaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGluIHRoZSBpbmRldGVybWluYXRlIHN0YXRlLiBUaGlzIGhhcyBubyB2aXN1YWwgZWZmZWN0IGZvciBpY29uIGNoZWNrYm94ZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbmRldGVybWluYXRlKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2luZGV0ZXJtaW5hdGUgPSAhIXZhbHVlO1xuICAgIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UubmV4dCh0aGlzLiNfaW5kZXRlcm1pbmF0ZSk7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRoaXMuI19pbmRldGVybWluYXRlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaW5kZXRlcm1pbmF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgY2hlY2tib3gncyBsYWJlbC4gVXNlIHRoaXMgaW5zdGVhZCBvZiB0aGUgYHNreS1jaGVja2JveC1sYWJlbGAgd2hlbiB0aGUgbGFiZWwgaXMgdGV4dC1vbmx5LlxuICAgKiBTcGVjaWZ5aW5nIGBsYWJlbFRleHRgIGFsc28gZW5hYmxlcyBhdXRvbWF0aWMgZXJyb3IgbWVzc2FnZSBoYW5kbGluZyBmb3IgY2hlY2tib3guXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZGUgdGhlIGBsYWJlbFRleHRgLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgY2hlY2tib3guIElmIHRoZSBjaGVja2JveCBpcyB3aXRoaW4gYSBjaGVja2JveCBncm91cCxcbiAgICogc2V0IGBzdGFja2VkYCBvbiB0aGUgY2hlY2tib3ggZ3JvdXAgY29tcG9uZW50IGluc3RlYWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktbWFyZ2luLXN0YWNrZWQtbGcnKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIGNoZWNrYm94IGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3Qgb3IgZGVzZWxlY3QgdGhlIGNoZWNrYm94LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgY2hlY2tlZENoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jY2hlY2tlZENoYW5nZU9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkQ2hhbmdlT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUgY2hhbmdlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlT2JzO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgc2V0IGlucHV0RWwoZWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaW5wdXRFbCA9IGVsO1xuICAgIGlmIChlbCAmJiB0aGlzLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgIGVsLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRoaXMuaW5kZXRlcm1pbmF0ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlucHV0RWwoKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pbnB1dEVsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgcHVibGljIGRpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgZ2V0IGlzQ2hlY2tib3hSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnJlcXVpcmVkIHx8XG4gICAgICB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSkgfHxcbiAgICAgIHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBpbnB1dElkID0gJyc7XG5cbiAgI2NoZWNrZWRDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgI2NoZWNrZWRDaGFuZ2VPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICNkaXNhYmxlZENoYW5nZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAjZGlzYWJsZWRDaGFuZ2VPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICNpbmRldGVybWluYXRlQ2hhbmdlOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICNpbmRldGVybWluYXRlQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICNfY2hlY2tlZCA9IGZhbHNlO1xuICAjX2NoZWNrYm94VHlwZSA9ICdpbmZvJztcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX2luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgI19pbnB1dEVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICAjX25hbWUgPSAnJztcbiAgI19sYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjX2xhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgI2RlZmF1bHRJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgI2xvZ2dlciA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xhYmVsVGV4dFJlcXVpcmVkID0gaW5qZWN0KFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNjaGVja2VkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmRpc2FibGVkKTtcbiAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmRpc2FibGVkKTtcblxuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2VPYnMgPSB0aGlzLiNjaGVja2VkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlT2JzID0gdGhpcy4jZGlzYWJsZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZU9icyA9IHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLmlkID0gdGhpcy4jZGVmYXVsdElkO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuI2RlZmF1bHRJZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jbGFiZWxUZXh0UmVxdWlyZWQgJiYgIXRoaXMubGFiZWxUZXh0KSB7XG4gICAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuXG4gICAgdGhpcy4jbGFiZWxUZXh0UmVxdWlyZWQ/LnZhbGlkYXRlTGFiZWxUZXh0KHRoaXMubGFiZWxUZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8Ym9vbGVhbj4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgdGhpcy5jb250cm9sIHx8PSBjb250cm9sO1xuXG4gICAgLy8gSW4gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLCBBbmd1bGFyJ3MgbmF0aXZlICdyZXF1aXJlZCcgYXR0cmlidXRlIGRpcmVjdGl2ZSBvbmx5IHdvcmtzXG4gICAgLy8gb24gYGlucHV0W3R5cGU9XCJjaGVja2JveFwiXWAgc2VsZWN0b3JzLCBzbyB3ZSBuZWVkIHRvIHdyaXRlIHRoZSB2YWxpZGF0aW9uIGxvZ2ljIG91cnNlbHZlcy5cbiAgICAvLyBBbHNvLCB3ZSdyZSB0cmVhdGluZyBWYWxpZGF0b3JzLnJlcXVpcmVkIHRoZSBzYW1lIGFzIFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlIGludGVybmFsbHksIHNvXG4gICAgLy8gd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGF0IGRlY2lzaW9uIGluIG91ciBjdXN0b20gdmFsaWRhdG9yLlxuICAgIHJldHVybiB0aGlzLmlzQ2hlY2tib3hSZXF1aXJlZCAmJiBjb250cm9sLnZhbHVlICE9PSB0cnVlXG4gICAgICA/IHsgcmVxdWlyZWQ6IHRydWUgfVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gISF2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGVja2JveCBpbnB1dCBlbGVtZW50LlxuICAgKiBUb2dnbGVzIGNoZWNrZWQgc3RhdGUgaWYgZWxlbWVudCBpcyBub3QgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgb25JbnRlcmFjdGlvbkV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIFdlIGFsd2F5cyBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGNoYW5nZSBldmVudC5cbiAgICAvLyBPdGhlcndpc2UgdGhlIGNoYW5nZSBldmVudCwgZnJvbSB0aGUgaW5wdXQgZWxlbWVudCwgd2lsbCBidWJibGUgdXAgYW5kXG4gICAgLy8gZW1pdCBpdHMgZXZlbnQgb2JqZWN0IHRvIHRoZSBgY2hhbmdlYCBvdXRwdXQuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy4jdG9nZ2xlKCk7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLiNlbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgYmx1cnJlZC4gTmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3Nvci4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBwdWJsaWMgb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICh2YWx1ZSkgPT4ge307XG5cbiAgI2VtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHsgY2hlY2tlZDogdGhpcy5jaGVja2VkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCB2YWx1ZSBiZXR3ZWVuIHRydWUgYW5kIGZhbHNlXG4gICAqL1xuICAjdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwic2t5LWNoZWNrYm94LW91dGVyLXdyYXBwZXJcIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJza3ktY2hlY2tib3gtd3JhcHBlciBza3ktc3dpdGNoXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiBpc0NoZWNrYm94UmVxdWlyZWQsXG4gICAgICAnc2t5LXN3aXRjaC1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXhzJzogbGFiZWxUZXh0ICYmICFpY29uXG4gICAgfVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LWlucHV0IHNreS1zd2l0Y2gtaW5wdXRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgW3JlcXVpcmVkXT1cImlzQ2hlY2tib3hSZXF1aXJlZFwiXG4gICAgICBbdGFiSW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFRleHQgfHwgbGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsVGV4dCA/IHVuZGVmaW5lZCA6IGxhYmVsbGVkQnlcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJpc0NoZWNrYm94UmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFjb250cm9sPy5lcnJvcnNcIlxuICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiXG4gICAgICAgIGxhYmVsVGV4dCAmJiBjb250cm9sPy5lcnJvcnMgPyBlcnJvcklkIDogdW5kZWZpbmVkXG4gICAgICBcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXN3aXRjaC1pbnZhbGlkJzpcbiAgICAgICAgICAoY29udHJvbD8udG91Y2hlZCB8fCBjb250cm9sPy5kaXJ0eSkgJiYgY29udHJvbD8uZXJyb3JzXG4gICAgICB9XCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gICAgICAjaW5wdXRFbFxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXN3aXRjaC1jb250cm9sIHNreS1yb3VuZGVkLWNvcm5lcnNcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWljb24nOiBpY29uLFxuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWluZm8nOiBjaGVja2JveFR5cGUgPT09ICdpbmZvJyxcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1zdWNjZXNzJzogY2hlY2tib3hUeXBlID09PSAnc3VjY2VzcycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtd2FybmluZyc6IGNoZWNrYm94VHlwZSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWRhbmdlcic6IGNoZWNrYm94VHlwZSA9PT0gJ2RhbmdlcidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICAqbmdJZj1cImljb247IGVsc2UgY2hlY2tlZE9ySW5kZXRlcm1pbmF0ZVRlbXBsYXRlXCJcbiAgICAgICAgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgLz5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY2hlY2tlZE9ySW5kZXRlcm1pbmF0ZVRlbXBsYXRlPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAqbmdJZj1cIiFpbmRldGVybWluYXRlICYmIGNoZWNrZWRcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LWljb24tbW9kZXJuLWNoZWNrZWRcIlxuICAgICAgICAgIFtmaXhlZFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICpuZ0lmPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1pbmRldGVybWluYXRlIHNreS1jaGVja2JveC1pY29uLW1vZGVybi1pbmRldGVybWluYXRlXCJcbiAgICAgICAgICBbZml4ZWRXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICBpY29uPVwic3F1YXJlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsVGV4dDsgZWxzZSBsYWJlbEVsZW1lbnRcIj5cbiAgICAgIDxza3ktY2hlY2tib3gtbGFiZWwtdGV4dC1sYWJlbFxuICAgICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICAgIFtsYWJlbEhpZGRlbl09XCJsYWJlbEhpZGRlblwiXG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWxFbGVtZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94LWxhYmVsXCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2xhYmVsPlxuICA8c2t5LWhlbHAtaW5saW5lXG4gICAgKm5nSWY9XCIoaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXkpICYmIGxhYmVsVGV4dFwiXG4gICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaGVscC1pbmxpbmVcIlxuICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAvPlxuPC9zcGFuPlxuPHNwYW4gc2t5SWQgI2hpbnRUZXh0RWw9XCJza3lJZFwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJoaW50VGV4dFwiXG4gICAgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LWNoZWNrYm94LWhpbnQtdGV4dCBza3ktY2hlY2tib3gtZm9ybS1tYXJnaW5cIlxuICA+XG4gICAge3sgaGludFRleHQgfX1cbiAgPC9kaXY+XG48L3NwYW4+XG48c2t5LWZvcm0tZXJyb3JzXG4gIGNsYXNzPVwic2t5LWNoZWNrYm94LWZvcm0tbWFyZ2luXCJcbiAgKm5nSWY9XCJsYWJlbFRleHQgJiYgY29udHJvbD8uZXJyb3JzXCJcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbZXJyb3JzXT1cImNvbnRyb2w/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwiJ3NreXV4X2NoZWNrYm94X3JlcXVpcmVkX2xhYmVsX3RleHQnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgW3Nob3dFcnJvcnNdPVwiY29udHJvbD8udG91Y2hlZCB8fCBjb250cm9sPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
72
72
  }], helpKey: [{
73
73
  type: Input
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7QUFLeEc7O0dBRUc7QUFTSCxNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBd0JFOzs7V0FHRztRQUVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTdCOzs7O1dBSUc7UUFHSSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXZCOzs7O1dBSUc7UUFFSSxpQkFBWSxHQUE4QixDQUFDLENBQUM7UUFxQ3pDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7S0FDL0M7SUFwQ0M7Ozs7T0FJRztJQUNILElBQ1csWUFBWSxDQUFDLEtBQWdDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsb0JBQW9CLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBaERVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlLQW9CYixnQkFBZ0IsbUNBUWhCLGdCQUFnQixrREFTaEIsZUFBZSxrREFRZixlQUFlLDZMQS9DeEIsQ0FBQyxvQ0FBb0MsQ0FBQywwQkMxQm5ELG1sQ0F1Q0EsMFREZFksWUFBWSxnT0FBRSxtQkFBbUIsME9BQUUsV0FBVzs7MkZBRzdDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLGFBQzlDLENBQUMsb0NBQW9DLENBQUM7OEJBUTFDLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVNsQixRQUFRO3NCQURkLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVL0IsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBU25DLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVMxQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFZOUIsa0JBQWtCO3NCQUR4QixLQUFLO2dCQVNDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFTQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcblxuaW1wb3J0IHsgU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0tZmllbGQtbGFiZWwtdGV4dC1yZXF1aXJlZC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2t5RmllbGRHcm91cEhlYWRpbmdMZXZlbCB9IGZyb20gJy4vZmllbGQtZ3JvdXAtaGVhZGluZy1sZXZlbCc7XG5pbXBvcnQgeyBTa3lGaWVsZEdyb3VwSGVhZGluZ1N0eWxlIH0gZnJvbSAnLi9maWVsZC1ncm91cC1oZWFkaW5nLXN0eWxlJztcblxuLyoqXG4gKiBPcmdhbml6ZXMgZm9ybSBmaWVsZHMgaW50byBhIGdyb3VwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lIZWxwSW5saW5lTW9kdWxlLCBTa3lJZE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1NreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpZWxkR3JvdXBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgZmllbGQgZ3JvdXAncyBoZWFkaW5nLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGhlYWRpbmdUZXh0ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlkZSB0aGUgYGhlYWRpbmdUZXh0YC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaGVhZGluZ0hpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBncm91cCBpcyBzdGFja2VkIG9uIGFub3RoZXIgZmllbGQgZ3JvdXAuIFdoZW4gc3BlY2lmaWVkLCB0aGUgYXBwcm9wcmlhdGVcbiAgICogdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBmaWVsZCBncm91cC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC14bCcpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuXG4gICAqIEBwcmV2aWV3XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nTGV2ZWw6IFNreUZpZWxkR3JvdXBIZWFkaW5nTGV2ZWwgPSAzO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBbZm9udCBzdHlsZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vc3R5bGVzL3R5cG9ncmFwaHkjaGVhZGluZ3MpLlxuICAgKiBAcHJldmlld1xuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdTdHlsZSh2YWx1ZTogU2t5RmllbGRHcm91cEhlYWRpbmdTdHlsZSkge1xuICAgIHRoaXMuaGVhZGluZ0NsYXNzID0gYHNreS1mb250LWhlYWRpbmctJHt2YWx1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGZpZWxkIGdyb3VwIGhlYWRpbmcuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpIGJ1dHRvbiBpc1xuICAgKiBwbGFjZWQgYmVzaWRlIHRoZSBmaWVsZCBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBoZWFkaW5nQ2xhc3MgPSAnc2t5LWZvbnQtaGVhZGluZy0zJztcbn1cbiIsIjxmaWVsZHNldFxuICBjbGFzcz1cInNreS1maWVsZC1ncm91cFwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludFRleHQgPyBoaW50VGV4dEVsLmlkIDogdW5kZWZpbmVkXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktZmllbGQtZ3JvdXAtbGVnZW5kLXdyYXBwZXJcIj5cbiAgICA8bGVnZW5kXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlbixcbiAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXhzJzogaGVscFBvcG92ZXJDb250ZW50XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8aDMgKm5nSWY9XCJoZWFkaW5nTGV2ZWwgPT09IDNcIiBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+XG4gICAgICAgIHt7IGhlYWRpbmdUZXh0IH19XG4gICAgICA8L2gzPlxuICAgICAgPGg0ICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSA0XCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oND5cbiAgICA8L2xlZ2VuZD5cbiAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAqbmdJZj1cImhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5XCJcbiAgICAgIGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWhlbHAtaW5saW5lXCJcbiAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgW2xhYmVsVGV4dF09XCJoZWFkaW5nVGV4dFwiXG4gICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgLz5cbiAgPC9zcGFuPlxuICA8ZGl2IHNreUlkICNoaW50VGV4dEVsPVwic2t5SWRcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImhpbnRUZXh0XCJcbiAgICAgIGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWhpbnQtdGV4dCBza3ktZm9udC1kZWVtcGhhc2l6ZWRcIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudCAvPlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7QUFLeEc7O0dBRUc7QUFTSCxNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBd0JFOzs7V0FHRztRQUVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTdCOzs7O1dBSUc7UUFHSSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXZCOzs7O1dBSUc7UUFFSSxpQkFBWSxHQUE4QixDQUFDLENBQUM7UUFzQ3pDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7S0FDL0M7SUFyQ0M7Ozs7T0FJRztJQUNILElBQ1csWUFBWSxDQUFDLEtBQWdDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsb0JBQW9CLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBaERVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlLQW9CYixnQkFBZ0IsbUNBUWhCLGdCQUFnQixrREFTaEIsZUFBZSxrREFRZixlQUFlLDZMQS9DeEIsQ0FBQyxvQ0FBb0MsQ0FBQywwQkMxQm5ELG1sQ0F1Q0EsMFREZFksWUFBWSxnT0FBRSxtQkFBbUIsME9BQUUsV0FBVzs7MkZBRzdDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLGFBQzlDLENBQUMsb0NBQW9DLENBQUM7OEJBUTFDLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVNsQixRQUFRO3NCQURkLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVL0IsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBU25DLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVMxQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFZOUIsa0JBQWtCO3NCQUR4QixLQUFLO2dCQVNDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFVQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcblxuaW1wb3J0IHsgU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0tZmllbGQtbGFiZWwtdGV4dC1yZXF1aXJlZC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2t5RmllbGRHcm91cEhlYWRpbmdMZXZlbCB9IGZyb20gJy4vZmllbGQtZ3JvdXAtaGVhZGluZy1sZXZlbCc7XG5pbXBvcnQgeyBTa3lGaWVsZEdyb3VwSGVhZGluZ1N0eWxlIH0gZnJvbSAnLi9maWVsZC1ncm91cC1oZWFkaW5nLXN0eWxlJztcblxuLyoqXG4gKiBPcmdhbml6ZXMgZm9ybSBmaWVsZHMgaW50byBhIGdyb3VwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lIZWxwSW5saW5lTW9kdWxlLCBTa3lJZE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1NreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpZWxkR3JvdXBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgZmllbGQgZ3JvdXAncyBoZWFkaW5nLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGhlYWRpbmdUZXh0ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlkZSB0aGUgYGhlYWRpbmdUZXh0YC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaGVhZGluZ0hpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBncm91cCBpcyBzdGFja2VkIG9uIGFub3RoZXIgZmllbGQgZ3JvdXAuIFdoZW4gc3BlY2lmaWVkLCB0aGUgYXBwcm9wcmlhdGVcbiAgICogdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBmaWVsZCBncm91cC5cbiAgICogQHByZXZpZXdcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC14bCcpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuXG4gICAqIEBwcmV2aWV3XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nTGV2ZWw6IFNreUZpZWxkR3JvdXBIZWFkaW5nTGV2ZWwgPSAzO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBbZm9udCBzdHlsZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vc3R5bGVzL3R5cG9ncmFwaHkjaGVhZGluZ3MpLlxuICAgKiBAcHJldmlld1xuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdTdHlsZSh2YWx1ZTogU2t5RmllbGRHcm91cEhlYWRpbmdTdHlsZSkge1xuICAgIHRoaXMuaGVhZGluZ0NsYXNzID0gYHNreS1mb250LWhlYWRpbmctJHt2YWx1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGZpZWxkIGdyb3VwIGhlYWRpbmcuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSBmaWVsZCBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcHJldmlld1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgaGVhZGluZ0NsYXNzID0gJ3NreS1mb250LWhlYWRpbmctMyc7XG59XG4iLCI8ZmllbGRzZXRcbiAgY2xhc3M9XCJza3ktZmllbGQtZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWxlZ2VuZC13cmFwcGVyXCI+XG4gICAgPGxlZ2VuZFxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXNjcmVlbi1yZWFkZXItb25seSc6IGhlYWRpbmdIaWRkZW4sXG4gICAgICAgICdza3ktbWFyZ2luLWlubGluZS14cyc6IGhlbHBQb3BvdmVyQ29udGVudFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGgzICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSAzXCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oMz5cbiAgICAgIDxoNCAqbmdJZj1cImhlYWRpbmdMZXZlbCA9PT0gNFwiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvaDQ+XG4gICAgPC9sZWdlbmQ+XG4gICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgKm5nSWY9XCJoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleVwiXG4gICAgICBjbGFzcz1cInNreS1maWVsZC1ncm91cC1oZWxwLWlubGluZVwiXG4gICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIC8+XG4gIDwvc3Bhbj5cbiAgPGRpdiBza3lJZCAjaGludFRleHRFbD1cInNreUlkXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJoaW50VGV4dFwiXG4gICAgICBjbGFzcz1cInNreS1maWVsZC1ncm91cC1oaW50LXRleHQgc2t5LWZvbnQtZGVlbXBoYXNpemVkXCJcbiAgICA+XG4gICAgICB7eyBoaW50VGV4dCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNreS1maWVsZC1ncm91cC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9kaXY+XG48L2ZpZWxkc2V0PlxuIl19
@@ -475,4 +475,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
475
475
  type: ContentChildren,
476
476
  args: [SkyFileAttachmentLabelComponent]
477
477
  }] } });
478
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sSUFBSSxFQUVKLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXJFLElBQUksUUFBUSxHQUFHLENBQUMsQ0FB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QkFEYixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEvQixRQUFRO3NCQURkLEtBQUs7Z0JBUUssV0FBVztzQkFEckIsS0FBSztnQkFjSyxXQUFXO3NCQURyQixLQUFLO2dCQWVDLE9BQU87c0JBRmIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsNkJBQTZCO2dCQVFuQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLE1BQU07Z0JBUUEsU0FBUztzQkFEZixNQUFNO2dCQXFCQSxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixXQUFXO3VCQUFDLGVBQWU7Z0JBb0NyQixPQUFPO3NCQURiLFNBQVM7dUJBQUMsV0FBVztnQkFJZixlQUFlO3NCQURyQixlQUFlO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU2t5Rm9ybXNVdGlsaXR5LFxuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1maWVsZC1sYWJlbC10ZXh0LXJlcXVpcmVkLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUZpbGVBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW0gfSBmcm9tICcuL2ZpbGUtaXRlbSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4vZmlsZS1pdGVtLWVycm9yLXR5cGUnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9maWxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlVmFsaWRhdGVGbiB9IGZyb20gJy4vZmlsZS12YWxpZGF0ZS1mdW5jdGlvbic7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENoYW5nZSB9IGZyb20gJy4vdHlwZXMvZmlsZS1hdHRhY2htZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENsaWNrIH0gZnJvbSAnLi90eXBlcy9maWxlLWF0dGFjaG1lbnQtY2xpY2snO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5jb25zdCBNQVhfRklMRV9TSVpFX0RFRkFVTFQgPSA1MDAwMDA7XG5jb25zdCBNSU5fRklMRV9TSVpFX0RFRkFVTFQgPSAwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFuIGVsZW1lbnQgdG8gYXR0YWNoIGEgc2luZ2xlIGxvY2FsIGZpbGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1maWxlLWF0dGFjaG1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZpbGVBdHRhY2htZW50U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmlsZUF0dGFjaG1lbnRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcgbGl0ZXJhbCBvZiBNSU1FIHR5cGVzIHRoYXQgdXNlcnMgY2FuIGF0dGFjaC5cbiAgICogQnkgZGVmYXVsdCwgYWxsIGZpbGUgdHlwZXMgYXJlIGFsbG93ZWQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3RGlzYWJsZWRTdGF0ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNfZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSkgYnV0dG9uIGlzXG4gICAqIHBsYWNlZCBiZXNpZGUgdGhlIHNpbmdsZSBmaWxlIGF0dGFjaG1lbnQgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBnbG9iYWwgaGVscCBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGZpbGUgYXR0YWNobWVudCdzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgYGxhYmVsVGV4dGAgZnJvbSB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDUwMDAwMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtYXhGaWxlU2l6ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21heEZpbGVTaXplID0gdmFsdWUgPz8gTUFYX0ZJTEVfU0laRV9ERUZBVUxUO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhGaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfbWF4RmlsZVNpemU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWluRmlsZVNpemUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19taW5GaWxlU2l6ZSA9IHZhbHVlID8/IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWluRmlsZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21pbkZpbGVTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpbmdsZSBmaWxlIGF0dGFjaG1lbnQgaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCxcbiAgICogdGhlIGFwcHJvcHJpYXRlIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC1sZycpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbi4gVGhpcyB2YWxpZGF0aW9uIHJ1bnMgYWxvbmdzaWRlIHRoZSBpbnRlcm5hbFxuICAgKiBmaWxlIHZhbGlkYXRpb24uIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBgU2t5RmlsZUl0ZW1gIG9iamVjdCBhcyBhIHBhcmFtZXRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWxpZGF0ZUZuOiBTa3lGaWxlVmFsaWRhdGVGbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBhZGQgb3IgcmVtb3ZlIGZpbGVzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lGaWxlQXR0YWNobWVudENoYW5nZT4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGZpbGUgbmFtZSBsaW5rLiBNYWtlIHN1cmUgdG8gYmluZCB0aGUgZXZlbnQuXG4gICAqIElmIHlvdSBkbyBub3QsIHRoZSBmaWxlIG5hbWUgbGluayB3aWxsIGJlIGEgZGVhZCBsaW5rLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmaWxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVBdHRhY2htZW50Q2xpY2s+KCk7XG5cbiAgcHVibGljIGFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuXG4gIHB1YmxpYyBoYXNMYWJlbENvbXBvbmVudCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBmaWxlRHJvcERlc2NyaXB0aW9uRWxlbWVudElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGxhYmVsRWxlbWVudElkOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlamVjdGVkT3ZlciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLXJlcXVpcmVkYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1yZXF1aXJlZCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICBwdWJsaWMgZGlzcGxheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFNreUZpbGVJdGVtIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIC8vIFRoZSBudWxsIGNoZWNrIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNC5cbiAgICAvLyB3cml0ZVZhbHVlIGlzIGJlaW5nIGNhbGxlZCB0d2ljZSwgZmlyc3QgdGltZSB3aXRoIGEgcGhhbnRvbSBudWxsIHZhbHVlXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNDk4OFxuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiB2YWx1ZSAhPT0gbnVsbDtcblxuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmlzSW1hZ2UodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLiNzZXRGaWxlTmFtZSh2YWx1ZSk7XG5cbiAgICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy4jdXBkYXRlRmlsZUF0dGFjaG1lbnRCdXR0b24oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFNreUZpbGVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRUaGVtZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZmlsZU5hbWUgPSAnJztcblxuICBwdWJsaWMgc2hvd0ZpbGVBdHRhY2htZW50QnV0dG9uID0gdHJ1ZTtcblxuICBwdWJsaWMgdHJ1bmNhdGVkRmlsZU5hbWUgPSAnJztcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICBwdWJsaWMgaW5wdXRFbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUZpbGVBdHRhY2htZW50TGFiZWxDb21wb25lbnQpXG4gIHB1YmxpYyBsYWJlbENvbXBvbmVudHM6XG4gICAgfCBRdWVyeUxpc3Q8U2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudD5cbiAgICB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuXG4gICNlbnRlckV2ZW50VGFyZ2V0OiBFdmVudFRhcmdldCB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbiAgI2ZpbGVBdHRhY2htZW50SWQgPSB1bmlxdWVJZCsrO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19tYXhGaWxlU2l6ZSA9IE1BWF9GSUxFX1NJWkVfREVGQVVMVDtcblxuICAjX21pbkZpbGVTaXplID0gTUlOX0ZJTEVfU0laRV9ERUZBVUxUO1xuXG4gICNfdmFsdWU6IFNreUZpbGVJdGVtIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNmaWxlQXR0YWNobWVudFNlcnZpY2U6IFNreUZpbGVBdHRhY2htZW50U2VydmljZTtcbiAgI2ZpbGVJdGVtU2VydmljZTogU2t5RmlsZUl0ZW1TZXJ2aWNlO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNsYWJlbFRleHRSZXF1aXJlZCA9IGluamVjdChTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZFNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcblxuICBwcm90ZWN0ZWQgZmlsZUVycm9yTmFtZTogU2t5RmlsZUl0ZW1FcnJvclR5cGUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBmaWxlRXJyb3JQYXJhbTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgZmlsZUVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGZpbGVBdHRhY2htZW50U2VydmljZTogU2t5RmlsZUF0dGFjaG1lbnRTZXJ2aWNlLFxuICAgIGZpbGVJdGVtU2VydmljZTogU2t5RmlsZUl0ZW1TZXJ2aWNlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sPzogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZSA9IGZpbGVBdHRhY2htZW50U2VydmljZTtcbiAgICB0aGlzLiNmaWxlSXRlbVNlcnZpY2UgPSBmaWxlSXRlbVNlcnZpY2U7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSBuZ0NvbnRyb2w7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcblxuICAgIHRoaXMubGFiZWxFbGVtZW50SWQgPSBgc2t5LWZpbGUtYXR0YWNobWVudC1sYWJlbC0ke3RoaXMuI2ZpbGVBdHRhY2htZW50SWR9YDtcbiAgICB0aGlzLmZpbGVEcm9wRGVzY3JpcHRpb25FbGVtZW50SWQgPSBgc2t5LWZpbGUtYXR0YWNobWVudC1kcm9wLWRlc2NyaXB0aW9uLSR7dGhpcy4jZmlsZUF0dGFjaG1lbnRJZH1gO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN0aGVtZVN2Yykge1xuICAgICAgdGhpcy4jdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50VGhlbWVOYW1lID0gdGhlbWVTZXR0aW5ncy5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZTtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVGaWxlQXR0YWNobWVudEJ1dHRvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jbGFiZWxUZXh0UmVxdWlyZWQgJiYgIXRoaXMubGFiZWxUZXh0KSB7XG4gICAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICAgIHRoaXMuI2xhYmVsVGV4dFJlcXVpcmVkPy52YWxpZGF0ZUxhYmVsVGV4dCh0aGlzLmxhYmVsVGV4dCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA3LlxuICAgIC8vIFdoZW4gYSBjb250cm9sIHZhbHVlIGlzIHNldCBpbml0aWFsbHksIGl0cyB2YWx1ZSBpcyBub3QgcmVwcmVzZW50ZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8vIE9mIG5vdGUgaXMgdGhlIHBhcmVudCBjaGVjayB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmb3JtIGlzIHJlYWN0aXZlLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjayB0aGVyZSBpcyBhIGNoYW5nZWQgYmVmb3JlIGNoZWNrZWQgZXJyb3JcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubmdDb250cm9sIS5jb250cm9sIS5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB7XG4gICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVxdWlyZWQgPVxuICAgICAgICB0aGlzLnJlcXVpcmVkIHx8IFNreUZvcm1zVXRpbGl0eS5oYXNSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5uZ0NvbnRyb2wpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGFiZWxDb21wb25lbnRzKSB7XG4gICAgICB0aGlzLmhhc0xhYmVsQ29tcG9uZW50ID0gdGhpcy5sYWJlbENvbXBvbmVudHMubGVuZ3RoID4gMDtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgLy8gSGFuZGxlcyB1cGRhdGluZyBjbGFzc2VzIHdoZW4gbGFiZWwgY2hhbmdlc1xuICAgICAgdGhpcy5sYWJlbENvbXBvbmVudHMuY2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKG5ld0xhYmVsQ29tcG9uZW50czogUXVlcnlMaXN0PFNreUZpbGVBdHRhY2htZW50TGFiZWxDb21wb25lbnQ+KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0xhYmVsQ29tcG9uZW50ID0gbmV3TGFiZWxDb21wb25lbnRzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkRyb3BDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZUNoYW5nZUV2ZW50KGZpbGVDaGFuZ2VFdmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLiNoYW5kbGVGaWxlcyhcbiAgICAgIChmaWxlQ2hhbmdlRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQpPy5maWxlcyxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbGVEcmFnRW50ZXIoZHJhZ0VudGVyRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIC8vIFNhdmUgdGhpcyB0YXJnZXQgdG8ga25vdyB3aGVuIHRoZSBkcmFnIGV2ZW50IGxlYXZlc1xuICAgIHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPSBkcmFnRW50ZXJFdmVudC50YXJnZXQ7XG4gICAgZHJhZ0VudGVyRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJhZ0VudGVyRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ092ZXIoZHJhZ092ZXJFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNmZXIgPSBkcmFnT3ZlckV2ZW50LmRhdGFUcmFuc2ZlcjtcblxuICAgIGRyYWdPdmVyRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJhZ092ZXJFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRyYW5zZmVyKSB7XG4gICAgICBpZiAodHJhbnNmZXIuaXRlbXMpIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKHRyYW5zZmVyLml0ZW1zKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmaWxlLnR5cGUgJiZcbiAgICAgICAgICAgIHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5maWxlVHlwZVJlamVjdGVkKFxuICAgICAgICAgICAgICBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgIHRoaXMuYWNjZXB0ZWRUeXBlcyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWNjZXB0ZWRPdmVyKSB7XG4gICAgICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgICAgLy8gSWYgdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBEYXRhVHJhbnNmZXIuaXRlbXMsXG4gICAgICAgIC8vIGRlZmVyIGZpbGUtdHlwZSBjaGVja2luZyB0byBkcm9wIGhhbmRsZXIuXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXIvaXRlbXMjQnJvd3Nlcl9jb21wYXRpYmlsaXR5XG4gICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyb3AoZHJvcEV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBkcm9wRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJvcEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcblxuICAgIGlmIChkcm9wRXZlbnQuZGF0YVRyYW5zZmVyICYmIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgIGlmIChkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5oYXNEaXJlY3RvcnkoZHJvcEV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2hhbmRsZUZpbGVzKGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ0xlYXZlKGRyYWdMZWF2ZUV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jZW50ZXJFdmVudFRhcmdldCA9PT0gZHJhZ0xlYXZlRXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRmlsZUF0dGFjaG1lbnQoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0aGlzLnZhbHVlPy5maWxlLm5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLiNlbWl0RmlsZUNoYW5nZUV2ZW50KHRoaXMudmFsdWUpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2U6IHNhZmV0eSBjaGVjayAqL1xuICAgIGlmIChmaWxlTmFtZSkge1xuICAgICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9maWxlX3JlbW92ZWQnLFxuICAgICAgICBmaWxlTmFtZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5maWxlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvbkNoYW5nZSA9IGZuO1xuICB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29udHJvbC4gSW1wbGVtZW50ZWQgYXMgYSBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBXaGV0aGVyIHRoZSBjb250cm9sIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2xpY2soKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5maWxlQ2xpY2suZW1pdCh7XG4gICAgICAgIGZpbGU6IHRoaXMudmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjYW5ub3VuY2VTdGF0ZShyZXNvdXJjZVN0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgLmdldFN0cmluZyhyZXNvdXJjZVN0cmluZywgLi4uYXJncylcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnRlcm5hdGlvbmFsaXplZFN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKGludGVybmF0aW9uYWxpemVkU3RyaW5nKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2VtaXRGaWxlQ2hhbmdlRXZlbnQoY3VycmVudEZpbGU/OiBTa3lGaWxlSXRlbSk6IHZvaWQge1xuICAgIGlmIChjdXJyZW50RmlsZSAmJiAhY3VycmVudEZpbGUuZXJyb3JUeXBlKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoY3VycmVudEZpbGUpO1xuICAgICAgdGhpcy5maWxlRXJyb3JOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5maWxlRXJyb3JQYXJhbSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZmlsZUVycm9yVmFsaWRhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAvLyBNYWtlcyBzdXJlIHZhbHVlIGFjY2Vzc29yIGlzIG1hcmtlZCBhcyBkaXJ0eSBldmVuIGlmIGN1cnJlbnQgZmlsZSBpcyB1bmRlZmluZWRcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmZpbGVFcnJvclZhbGlkYXRpb24gPSB7IGZpbGVFcnJvcjogdHJ1ZSB9O1xuICAgICAgdGhpcy5maWxlRXJyb3JOYW1lID0gY3VycmVudEZpbGU/LmVycm9yVHlwZTtcbiAgICAgIHRoaXMuZmlsZUVycm9yUGFyYW0gPSBjdXJyZW50RmlsZT8uZXJyb3JQYXJhbTtcbiAgICB9XG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoe1xuICAgICAgZmlsZTogY3VycmVudEZpbGUsXG4gICAgfSBhcyBTa3lGaWxlQXR0YWNobWVudENoYW5nZSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgI2xvYWRGaWxlKGZpbGU6IFNreUZpbGVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGZpbGUuZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXZlbnQ6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c0ZpbGVOYW1lID0gdGhpcy52YWx1ZT8uZmlsZS5uYW1lO1xuICAgICAgICBmaWxlLnVybCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgIHRoaXMuI2VtaXRGaWxlQ2hhbmdlRXZlbnQoZmlsZSk7XG4gICAgICAgIGlmIChwcmV2aW91c0ZpbGVOYW1lKSB7XG4gICAgICAgICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZXBsYWNlZCcsXG4gICAgICAgICAgICBwcmV2aW91c0ZpbGVOYW1lLFxuICAgICAgICAgICAgZmlsZS5maWxlLm5hbWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9maWxlX2FkZGVkJyxcbiAgICAgICAgICAgIGZpbGUuZmlsZS5uYW1lLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuI2VtaXRGaWxlQ2hhbmdlRXZlbnQoZmlsZSk7XG4gICAgICB9KTtcblxuICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLiNlbWl0RmlsZUNoYW5nZUV2ZW50KGZpbGUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUuZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgI2hhbmRsZUZpbGVzKGZpbGVzPzogRmlsZUxpc3QgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGZpbGVzKSB7XG4gICAgICBjb25zdCBwcm9jZXNzZWRGaWxlcyA9IHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5jaGVja0ZpbGVzKFxuICAgICAgICBmaWxlcyxcbiAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5hY2NlcHRlZFR5cGVzLFxuICAgICAgICB0aGlzLnZhbGlkYXRlRm4sXG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcHJvY2Vzc2VkRmlsZXMpIHtcbiAgICAgICAgaWYgKGZpbGUuZXJyb3JUeXBlKSB7XG4gICAgICAgICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNsb2FkRmlsZShmaWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNzZXRGaWxlTmFtZShmaWxlPzogU2t5RmlsZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgZHJvcE5hbWUgPVxuICAgICAgICB0aGlzLiNmaWxlSXRlbVNlcnZpY2UuaXNGaWxlKGZpbGUpICYmIGZpbGUuZmlsZS5uYW1lXG4gICAgICAgICAgPyBmaWxlLmZpbGUubmFtZVxuICAgICAgICAgIDogZmlsZS51cmw7XG5cbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBkcm9wTmFtZTtcblxuICAgICAgaWYgKGRyb3BOYW1lLmxlbmd0aCA+IDI2KSB7XG4gICAgICAgIHRoaXMudHJ1bmNhdGVkRmlsZU5hbWUgPSBkcm9wTmFtZS5zbGljZSgwLCAyNikgKyAnLi4uJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJ1bmNhdGVkRmlsZU5hbWUgPSBkcm9wTmFtZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlTmFtZSA9ICcnO1xuICAgICAgdGhpcy50cnVuY2F0ZWRGaWxlTmFtZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVGaWxlQXR0YWNobWVudEJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dGaWxlQXR0YWNobWVudEJ1dHRvbiA9ICEoXG4gICAgICB0aGlzLnZhbHVlICYmIHRoaXMuY3VycmVudFRoZW1lTmFtZSA9PT0gJ21vZGVybidcbiAgICApO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNvbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHtcbiAgICByZXR1cm47XG4gIH07XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICByZXR1cm47XG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWZpbGUtYXR0YWNobWVudC13cmFwcGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtbGFiZWwtd3JhcHBlclwiXG4gICAgW2F0dHIuaWRdPVwibGFiZWxFbGVtZW50SWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6ICFsYWJlbFRleHQgJiYgcmVxdWlyZWQgJiYgaGFzTGFiZWxDb21wb25lbnRcbiAgICB9XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFRleHQ7IGVsc2UgbGFiZWxDb250ZW50XCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIiFsYWJlbEhpZGRlblwiXG4gICAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWwgc2t5LW1hcmdpbi1pbmxpbmUteHNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogcmVxdWlyZWRcbiAgICAgICAgfVwiXG4gICAgICAgID57eyBsYWJlbFRleHQgfX08L3NwYW5cbiAgICAgID48c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICpuZ0lmPVwiaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXlcIlxuICAgICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAqbmdJZj1cInJlcXVpcmVkICYmIChoYXNMYWJlbENvbXBvbmVudCB8fCBsYWJlbFRleHQpXCJcbiAgICAgID57eyAnc2t5dXhfZmlsZV9hdHRhY2htZW50X3JlcXVpcmVkJyB8IHNreUxpYlJlc291cmNlcyB9fTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtdXBsb2FkIHNreS1maWxlLWF0dGFjaG1lbnQgc2t5LWZpbGUtYXR0YWNobWVudC10YXJnZXRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktZmlsZS1hdHRhY2htZW50LWFjY2VwdCc6IGFjY2VwdGVkT3ZlcixcbiAgICAgICdza3ktZmlsZS1hdHRhY2htZW50LXJlamVjdCc6IHJlamVjdGVkT3ZlclxuICAgIH1cIlxuICAgIChkcmFnZW50ZXIpPVwiZmlsZURyYWdFbnRlcigkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwiZmlsZURyYWdPdmVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwiZmlsZURyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAoZHJvcCk9XCJmaWxlRHJvcCgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIlxuICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgW2F0dHIuaWRdPVwiZmlsZURyb3BEZXNjcmlwdGlvbkVsZW1lbnRJZFwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX29yX2NsaWNrJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvZGl2PlxuICAgIDxpbnB1dFxuICAgICAgaGlkZGVuXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgIFthdHRyLmFjY2VwdF09XCJhY2NlcHRlZFR5cGVzIHx8IG51bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoY2hhbmdlKT1cImZpbGVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgICNmaWxlSW5wdXRcbiAgICAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RmlsZUF0dGFjaG1lbnRCdXR0b25cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93RmlsZUF0dGFjaG1lbnRCdXR0b25cIlxuICAgICAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtYnRuIHNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHNreUlkXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiXG4gICAgICAgICAgKGhpbnRUZXh0ID8gaGludFRleHRFbC5pZCArICcgJyA6ICcnKSArIGZpbGVEcm9wRGVzY3JpcHRpb25FbGVtZW50SWRcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgPyAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfcmVwbGFjZV9maWxlX2xhYmVsJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZmlsZU5hbWUpXG4gICAgICAgICAgICA6ICgnc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9jaG9vc2VfZmlsZV9sYWJlbCdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICBhdHRhY2hCdXR0b24uaWQgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgKGxhYmVsVGV4dFxuICAgICAgICAgICAgPyBsYWJlbEVsZW1lbnRJZFxuICAgICAgICAgICAgOiBoYXNMYWJlbENvbXBvbmVudFxuICAgICAgICAgICAgICA/IGxhYmVsQ29tcG9uZW50cz8uZ2V0KDApPy5sYWJlbENvbnRlbnRJZD8uaWRcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQpXG4gICAgICAgIFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkRyb3BDbGlja2VkKClcIlxuICAgICAgICAjYXR0YWNoQnV0dG9uPVwic2t5SWRcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cImZvbGRlci1vcGVuLW9cIiAvPlxuICAgICAgICB7e1xuICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICA/ICgnc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9yZXBsYWNlX2ZpbGUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgOiAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHNreS1pY29uXG4gICAgICAqbmdJZj1cInZhbHVlICYmICFpc0ltYWdlICYmIGN1cnJlbnRUaGVtZU5hbWUgPT09ICdtb2Rlcm4nXCJcbiAgICAgIGNsYXNzPVwic2t5LWZpbGUtYXR0YWNobWVudC1pY29uIHNreS1kZWVtcGhhc2l6ZWRcIlxuICAgICAgaWNvbj1cImZpbGUtb1wiXG4gICAgICBzaXplPVwiMnhcIlxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwidmFsdWUgfHwgY3VycmVudFRoZW1lTmFtZSA9PT0gJ2RlZmF1bHQnXCJcbiAgICAgIGNsYXNzPVwic2t5LWZpbGUtYXR0YWNobWVudC1uYW1lXCJcbiAgICA+XG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cInZhbHVlOyBlbHNlIG5vRmlsZVwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImZpbGVOYW1lXCJcbiAgICAgICAgKGNsaWNrKT1cImVtaXRDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgdHJ1bmNhdGVkRmlsZU5hbWUgfX1cbiAgICAgIDwvYT5cbiAgICA8L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNub0ZpbGU+XG4gICAgICA8c3BhbiBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtbm9uZSBza3ktZGVlbXBoYXNpemVkXCI+XG4gICAgICAgIHt7ICdza3l1eF9maWxlX2F0dGFjaG1lbnRfbGFiZWxfbm9fZmlsZV9jaG9zZW4nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInZhbHVlXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWJvcmRlcmxlc3Mgc2t5LWZpbGUtYXR0YWNobWVudC1kZWxldGVcIlxuICAgICAgc2t5SWRcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX2l0ZW1fcmVtb3ZlJyB8IHNreUxpYlJlc291cmNlczogZmlsZU5hbWVcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgIGRlbGV0ZUJ1dHRvbi5pZCArXG4gICAgICAgICcgJyArXG4gICAgICAgIChoYXNMYWJlbENvbXBvbmVudFxuICAgICAgICAgID8gbGFiZWxDb21wb25lbnRzPy5nZXQoMCk/LmxhYmVsQ29udGVudElkPy5pZFxuICAgICAgICAgIDogdW5kZWZpbmVkKVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVGaWxlQXR0YWNobWVudCgpXCJcbiAgICAgICNkZWxldGVCdXR0b249XCJza3lJZFwiXG4gICAgPlxuICAgICAgPHNreS1pY29uIGljb249XCJ0cmFzaC1vXCIgc2l6ZT1cIm1kXCIgLz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGltZ1xuICAgICpuZ0lmPVwidmFsdWUgJiYgaXNJbWFnZVwiXG4gICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LXByZXZpZXctaW1nXCJcbiAgICBbYWx0XT1cIlxuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9pbWFnZV9wcmV2aWV3X2FsdF90ZXh0J1xuICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgIFwiXG4gICAgW3NyY109XCJ2YWx1ZS51cmxcIlxuICAvPlxuPC9kaXY+XG48ZGl2IHNreUlkICNoaW50VGV4dEVsPVwic2t5SWRcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaGludFRleHRcIlxuICAgIGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1maWxlLWF0dGFjaG1lbnQtaGludC10ZXh0XCJcbiAgPlxuICAgIHt7IGhpbnRUZXh0IH19XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxza3ktZm9ybS1lcnJvcnNcbiAgKm5nSWY9XCJsYWJlbFRleHQgJiYgKG5nQ29udHJvbD8uY29udHJvbD8uZXJyb3JzIHx8IGZpbGVFcnJvclZhbGlkYXRpb24pXCJcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbZXJyb3JzXT1cIlxuICAgIG5nQ29udHJvbD8uZXJyb3JzICE9PSBudWxsID8gbmdDb250cm9sPy5lcnJvcnMgOiBmaWxlRXJyb3JWYWxpZGF0aW9uXG4gIFwiXG4gIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgW3Nob3dFcnJvcnNdPVwibmdDb250cm9sPy50b3VjaGVkIHx8IG5nQ29udHJvbD8uZGlydHlcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZm9ybS1lcnJvclwiIC8+XG4gIDxza3ktZm9ybS1lcnJvclxuICAgICpuZ0lmPVwiZmlsZUVycm9yTmFtZSA9PT0gJ2ZpbGVUeXBlJ1wiXG4gICAgW2Vycm9yTmFtZV09XCInZmlsZVR5cGUnXCJcbiAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3R5cGVfZXJyb3JfbGFiZWxfdGV4dCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVFcnJvclBhcmFtXG4gICAgXCJcbiAgLz5cbiAgPHNreS1mb3JtLWVycm9yXG4gICAgKm5nSWY9XCJmaWxlRXJyb3JOYW1lID09PSAnbWF4RmlsZVNpemUnXCJcbiAgICBbZXJyb3JOYW1lXT1cIidtYXhGaWxlU2l6ZSdcIlxuICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21heF9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVFcnJvclBhcmFtXG4gICAgXCJcbiAgLz5cbiAgPHNreS1mb3JtLWVycm9yXG4gICAgKm5nSWY9XCJmaWxlRXJyb3JOYW1lID09PSAnbWluRmlsZVNpemUnXCJcbiAgICBbZXJyb3JOYW1lXT1cIidtaW5GaWxlU2l6ZSdcIlxuICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21pbl9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVFcnJvclBhcmFtXG4gICAgXCJcbiAgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuXG48bmctdGVtcGxhdGUgI2xhYmVsQ29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZpbGUtYXR0YWNobWVudC1sYWJlbFwiIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sSUFBSSxFQUVKLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXJFLElBQUksUUFBUSxHQUFHLENBQUMsQ0FB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QkFEYixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEvQixRQUFRO3NCQURkLEtBQUs7Z0JBUUssV0FBVztzQkFEckIsS0FBSztnQkFjSyxXQUFXO3NCQURyQixLQUFLO2dCQWVDLE9BQU87c0JBRmIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsNkJBQTZCO2dCQVFuQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLE1BQU07Z0JBUUEsU0FBUztzQkFEZixNQUFNO2dCQXFCQSxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixXQUFXO3VCQUFDLGVBQWU7Z0JBb0NyQixPQUFPO3NCQURiLFNBQVM7dUJBQUMsV0FBVztnQkFJZixlQUFlO3NCQURyQixlQUFlO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU2t5Rm9ybXNVdGlsaXR5LFxuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1maWVsZC1sYWJlbC10ZXh0LXJlcXVpcmVkLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUZpbGVBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW0gfSBmcm9tICcuL2ZpbGUtaXRlbSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4vZmlsZS1pdGVtLWVycm9yLXR5cGUnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9maWxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlVmFsaWRhdGVGbiB9IGZyb20gJy4vZmlsZS12YWxpZGF0ZS1mdW5jdGlvbic7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENoYW5nZSB9IGZyb20gJy4vdHlwZXMvZmlsZS1hdHRhY2htZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENsaWNrIH0gZnJvbSAnLi90eXBlcy9maWxlLWF0dGFjaG1lbnQtY2xpY2snO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5jb25zdCBNQVhfRklMRV9TSVpFX0RFRkFVTFQgPSA1MDAwMDA7XG5jb25zdCBNSU5fRklMRV9TSVpFX0RFRkFVTFQgPSAwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFuIGVsZW1lbnQgdG8gYXR0YWNoIGEgc2luZ2xlIGxvY2FsIGZpbGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1maWxlLWF0dGFjaG1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZpbGVBdHRhY2htZW50U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmlsZUF0dGFjaG1lbnRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcgbGl0ZXJhbCBvZiBNSU1FIHR5cGVzIHRoYXQgdXNlcnMgY2FuIGF0dGFjaC5cbiAgICogQnkgZGVmYXVsdCwgYWxsIGZpbGUgdHlwZXMgYXJlIGFsbG93ZWQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3RGlzYWJsZWRTdGF0ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNfZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIHNpbmdsZSBmaWxlIGF0dGFjaG1lbnQgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBmaWxlIGF0dGFjaG1lbnQncyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBoaWRlIGBsYWJlbFRleHRgIGZyb20gdmlldy5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbGFiZWxIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgZm9yIHZhbGlkIGZpbGVzLlxuICAgKiBAZGVmYXVsdCA1MDAwMDBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4RmlsZVNpemUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tYXhGaWxlU2l6ZSA9IHZhbHVlID8/IE1BWF9GSUxFX1NJWkVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4RmlsZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21heEZpbGVTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHNpemUgaW4gYnl0ZXMgZm9yIHZhbGlkIGZpbGVzLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbkZpbGVTaXplKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWluRmlsZVNpemUgPSB2YWx1ZSA/PyBNSU5fRklMRV9TSVpFX0RFRkFVTFQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1pbkZpbGVTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19taW5GaWxlU2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzaW5nbGUgZmlsZSBhdHRhY2htZW50IGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsXG4gICAqIHRoZSBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIHNpbmdsZSBmaWxlIGF0dGFjaG1lbnQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktbWFyZ2luLXN0YWNrZWQtbGcnKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb24uIFRoaXMgdmFsaWRhdGlvbiBydW5zIGFsb25nc2lkZSB0aGUgaW50ZXJuYWxcbiAgICogZmlsZSB2YWxpZGF0aW9uLiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgYFNreUZpbGVJdGVtYCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdmFsaWRhdGVGbjogU2t5RmlsZVZhbGlkYXRlRm4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgYWRkIG9yIHJlbW92ZSBmaWxlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZUF0dGFjaG1lbnRDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBmaWxlIG5hbWUgbGluay4gTWFrZSBzdXJlIHRvIGJpbmQgdGhlIGV2ZW50LlxuICAgKiBJZiB5b3UgZG8gbm90LCB0aGUgZmlsZSBuYW1lIGxpbmsgd2lsbCBiZSBhIGRlYWQgbGluay5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmlsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lGaWxlQXR0YWNobWVudENsaWNrPigpO1xuXG4gIHB1YmxpYyBhY2NlcHRlZE92ZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgaGFzTGFiZWxDb21wb25lbnQgPSBmYWxzZTtcblxuICBwdWJsaWMgZmlsZURyb3BEZXNjcmlwdGlvbkVsZW1lbnRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBsYWJlbEVsZW1lbnRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWplY3RlZE92ZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gdmFsaWRhdGlvbi5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnQgc28gdGhhdCBmb3JtcyBkaXNwbGF5IGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1yZXF1aXJlZGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtcmVxdWlyZWQpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgcHVibGljIGRpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBTa3lGaWxlSXRlbSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICAvLyBUaGUgbnVsbCBjaGVjayBpcyBuZWVkZWQgdG8gYWRkcmVzcyBhIGJ1ZyBpbiBBbmd1bGFyIDQuXG4gICAgLy8gd3JpdGVWYWx1ZSBpcyBiZWluZyBjYWxsZWQgdHdpY2UsIGZpcnN0IHRpbWUgd2l0aCBhIHBoYW50b20gbnVsbCB2YWx1ZVxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTQ5ODhcbiAgICBjb25zdCBpc05ld1ZhbHVlID0gdmFsdWUgIT09IHRoaXMudmFsdWUgJiYgdmFsdWUgIT09IG51bGw7XG5cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5pc0ltYWdlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy4jc2V0RmlsZU5hbWUodmFsdWUpO1xuXG4gICAgICB0aGlzLiNfdmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuI3VwZGF0ZUZpbGVBdHRhY2htZW50QnV0dG9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBTa3lGaWxlSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50VGhlbWVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG5cbiAgcHVibGljIHNob3dGaWxlQXR0YWNobWVudEJ1dHRvbiA9IHRydWU7XG5cbiAgcHVibGljIHRydW5jYXRlZEZpbGVOYW1lID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JylcbiAgcHVibGljIGlucHV0RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50KVxuICBwdWJsaWMgbGFiZWxDb21wb25lbnRzOlxuICAgIHwgUXVlcnlMaXN0PFNreUZpbGVBdHRhY2htZW50TGFiZWxDb21wb25lbnQ+XG4gICAgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcblxuICAjZW50ZXJFdmVudFRhcmdldDogRXZlbnRUYXJnZXQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICNmaWxlQXR0YWNobWVudElkID0gdW5pcXVlSWQrKztcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICNfbWF4RmlsZVNpemUgPSBNQVhfRklMRV9TSVpFX0RFRkFVTFQ7XG5cbiAgI19taW5GaWxlU2l6ZSA9IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcblxuICAjX3ZhbHVlOiBTa3lGaWxlSXRlbSB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZmlsZUF0dGFjaG1lbnRTZXJ2aWNlOiBTa3lGaWxlQXR0YWNobWVudFNlcnZpY2U7XG4gICNmaWxlSXRlbVNlcnZpY2U6IFNreUZpbGVJdGVtU2VydmljZTtcbiAgI3RoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlc1N2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICByZWFkb25seSAjbGFiZWxUZXh0UmVxdWlyZWQgPSBpbmplY3QoU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWRTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGVycm9ySWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG5cbiAgcHJvdGVjdGVkIGZpbGVFcnJvck5hbWU6IFNreUZpbGVJdGVtRXJyb3JUeXBlIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgZmlsZUVycm9yUGFyYW06IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGZpbGVFcnJvclZhbGlkYXRpb246IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBmaWxlQXR0YWNobWVudFNlcnZpY2U6IFNreUZpbGVBdHRhY2htZW50U2VydmljZSxcbiAgICBmaWxlSXRlbVNlcnZpY2U6IFNreUZpbGVJdGVtU2VydmljZSxcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIG5nQ29udHJvbD86IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UgPSBmaWxlQXR0YWNobWVudFNlcnZpY2U7XG4gICAgdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlID0gZmlsZUl0ZW1TZXJ2aWNlO1xuICAgIHRoaXMubmdDb250cm9sID0gbmdDb250cm9sO1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG5cbiAgICB0aGlzLmxhYmVsRWxlbWVudElkID0gYHNreS1maWxlLWF0dGFjaG1lbnQtbGFiZWwtJHt0aGlzLiNmaWxlQXR0YWNobWVudElkfWA7XG4gICAgdGhpcy5maWxlRHJvcERlc2NyaXB0aW9uRWxlbWVudElkID0gYHNreS1maWxlLWF0dGFjaG1lbnQtZHJvcC1kZXNjcmlwdGlvbi0ke3RoaXMuI2ZpbGVBdHRhY2htZW50SWR9YDtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jdGhlbWVTdmMpIHtcbiAgICAgIHRoaXMuI3RoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudFRoZW1lTmFtZSA9IHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWU7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlRmlsZUF0dGFjaG1lbnRCdXR0b24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI2xhYmVsVGV4dFJlcXVpcmVkICYmICF0aGlzLmxhYmVsVGV4dCkge1xuICAgICAgdGhpcy5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgICB0aGlzLiNsYWJlbFRleHRSZXF1aXJlZD8udmFsaWRhdGVMYWJlbFRleHQodGhpcy5sYWJlbFRleHQpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNy5cbiAgICAvLyBXaGVuIGEgY29udHJvbCB2YWx1ZSBpcyBzZXQgaW5pdGlhbGx5LCBpdHMgdmFsdWUgaXMgbm90IHJlcHJlc2VudGVkIG9uIHRoZSB2aWV3LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM3OTJcbiAgICAvLyBPZiBub3RlIGlzIHRoZSBwYXJlbnQgY2hlY2sgd2hpY2ggYWxsb3dzIHVzIHRvIGRldGVybWluZSBpZiB0aGUgZm9ybSBpcyByZWFjdGl2ZS5cbiAgICAvLyBXaXRob3V0IHRoaXMgY2hlY2sgdGhlcmUgaXMgYSBjaGFuZ2VkIGJlZm9yZSBjaGVja2VkIGVycm9yXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm5nQ29udHJvbCEuY29udHJvbCEuc2V0VmFsdWUodGhpcy52YWx1ZSwge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMubmdDb250cm9sKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsQ29tcG9uZW50cykge1xuICAgICAgdGhpcy5oYXNMYWJlbENvbXBvbmVudCA9IHRoaXMubGFiZWxDb21wb25lbnRzLmxlbmd0aCA+IDA7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgIC8vIEhhbmRsZXMgdXBkYXRpbmcgY2xhc3NlcyB3aGVuIGxhYmVsIGNoYW5nZXNcbiAgICAgIHRoaXMubGFiZWxDb21wb25lbnRzLmNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChuZXdMYWJlbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50PikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNMYWJlbENvbXBvbmVudCA9IG5ld0xhYmVsQ29tcG9uZW50cy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Ecm9wQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVDaGFuZ2VFdmVudChmaWxlQ2hhbmdlRXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy4jaGFuZGxlRmlsZXMoXG4gICAgICAoZmlsZUNoYW5nZUV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgdW5kZWZpbmVkKT8uZmlsZXMsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ0VudGVyKGRyYWdFbnRlckV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBTYXZlIHRoaXMgdGFyZ2V0IHRvIGtub3cgd2hlbiB0aGUgZHJhZyBldmVudCBsZWF2ZXNcbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gZHJhZ0VudGVyRXZlbnQudGFyZ2V0O1xuICAgIGRyYWdFbnRlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdFbnRlckV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdPdmVyKGRyYWdPdmVyRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gZHJhZ092ZXJFdmVudC5kYXRhVHJhbnNmZXI7XG5cbiAgICBkcmFnT3ZlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdPdmVyRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgaWYgKHRyYW5zZmVyLml0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbSh0cmFuc2Zlci5pdGVtcyk7XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmlsZS50eXBlICYmXG4gICAgICAgICAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuZmlsZVR5cGVSZWplY3RlZChcbiAgICAgICAgICAgICAgZmlsZS50eXBlLFxuICAgICAgICAgICAgICB0aGlzLmFjY2VwdGVkVHlwZXMsXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwICYmICF0aGlzLmFjY2VwdGVkT3Zlcikge1xuICAgICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRyYW5zZmVyLmZpbGVzKSB7XG4gICAgICAgIC8vIElmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgRGF0YVRyYW5zZmVyLml0ZW1zLFxuICAgICAgICAvLyBkZWZlciBmaWxlLXR5cGUgY2hlY2tpbmcgdG8gZHJvcCBoYW5kbGVyLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRGF0YVRyYW5zZmVyL2l0ZW1zI0Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVEcm9wKGRyb3BFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZHJvcEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyb3BFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy4jZW50ZXJFdmVudFRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG5cbiAgICBpZiAoZHJvcEV2ZW50LmRhdGFUcmFuc2ZlciAmJiBkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKSB7XG4gICAgICBpZiAoZHJvcEV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuaGFzRGlyZWN0b3J5KGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNoYW5kbGVGaWxlcyhkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdMZWF2ZShkcmFnTGVhdmVFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPT09IGRyYWdMZWF2ZUV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUZpbGVBdHRhY2htZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVOYW1lID0gdGhpcy52YWx1ZT8uZmlsZS5uYW1lO1xuICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudCh0aGlzLnZhbHVlKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBzYWZldHkgY2hlY2sgKi9cbiAgICBpZiAoZmlsZU5hbWUpIHtcbiAgICAgIHRoaXMuI2Fubm91bmNlU3RhdGUoXG4gICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZW1vdmVkJyxcbiAgICAgICAgZmlsZU5hbWUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgV2hldGhlciB0aGUgY29udHJvbCBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuZmlsZUNsaWNrLmVtaXQoe1xuICAgICAgICBmaWxlOiB0aGlzLnZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2Fubm91bmNlU3RhdGUocmVzb3VyY2VTdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgIC5nZXRTdHJpbmcocmVzb3VyY2VTdHJpbmcsIC4uLmFyZ3MpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoaW50ZXJuYXRpb25hbGl6ZWRTdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShpbnRlcm5hdGlvbmFsaXplZFN0cmluZyk7XG4gICAgICB9KTtcbiAgfVxuXG4gICNlbWl0RmlsZUNoYW5nZUV2ZW50KGN1cnJlbnRGaWxlPzogU2t5RmlsZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoY3VycmVudEZpbGUgJiYgIWN1cnJlbnRGaWxlLmVycm9yVHlwZSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKGN1cnJlbnRGaWxlKTtcbiAgICAgIHRoaXMuZmlsZUVycm9yTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZmlsZUVycm9yUGFyYW0gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmZpbGVFcnJvclZhbGlkYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgLy8gTWFrZXMgc3VyZSB2YWx1ZSBhY2Nlc3NvciBpcyBtYXJrZWQgYXMgZGlydHkgZXZlbiBpZiBjdXJyZW50IGZpbGUgaXMgdW5kZWZpbmVkXG4gICAgICB0aGlzLiNvbkNoYW5nZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5maWxlRXJyb3JWYWxpZGF0aW9uID0geyBmaWxlRXJyb3I6IHRydWUgfTtcbiAgICAgIHRoaXMuZmlsZUVycm9yTmFtZSA9IGN1cnJlbnRGaWxlPy5lcnJvclR5cGU7XG4gICAgICB0aGlzLmZpbGVFcnJvclBhcmFtID0gY3VycmVudEZpbGU/LmVycm9yUGFyYW07XG4gICAgfVxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHtcbiAgICAgIGZpbGU6IGN1cnJlbnRGaWxlLFxuICAgIH0gYXMgU2t5RmlsZUF0dGFjaG1lbnRDaGFuZ2UpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gICNsb2FkRmlsZShmaWxlOiBTa3lGaWxlSXRlbSk6IHZvaWQge1xuICAgIGlmIChmaWxlLmZpbGUpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50OiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNGaWxlTmFtZSA9IHRoaXMudmFsdWU/LmZpbGUubmFtZTtcbiAgICAgICAgZmlsZS51cmwgPSBldmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgICB0aGlzLiNlbWl0RmlsZUNoYW5nZUV2ZW50KGZpbGUpO1xuICAgICAgICBpZiAocHJldmlvdXNGaWxlTmFtZSkge1xuICAgICAgICAgIHRoaXMuI2Fubm91bmNlU3RhdGUoXG4gICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfcmVwbGFjZWQnLFxuICAgICAgICAgICAgcHJldmlvdXNGaWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGUuZmlsZS5uYW1lLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9hZGRlZCcsXG4gICAgICAgICAgICBmaWxlLmZpbGUubmFtZSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLiNlbWl0RmlsZUNoYW5nZUV2ZW50KGZpbGUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudChmaWxlKTtcbiAgICAgIH0pO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlLmZpbGUpO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVGaWxlcyhmaWxlcz86IEZpbGVMaXN0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChmaWxlcykge1xuICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZXMgPSB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuY2hlY2tGaWxlcyhcbiAgICAgICAgZmlsZXMsXG4gICAgICAgIHRoaXMubWluRmlsZVNpemUsXG4gICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgIHRoaXMuYWNjZXB0ZWRUeXBlcyxcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZuLFxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHByb2Nlc3NlZEZpbGVzKSB7XG4gICAgICAgIGlmIChmaWxlLmVycm9yVHlwZSkge1xuICAgICAgICAgIHRoaXMuI2VtaXRGaWxlQ2hhbmdlRXZlbnQoZmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jbG9hZEZpbGUoZmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjc2V0RmlsZU5hbWUoZmlsZT86IFNreUZpbGVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGNvbnN0IGRyb3BOYW1lID1cbiAgICAgICAgdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmlzRmlsZShmaWxlKSAmJiBmaWxlLmZpbGUubmFtZVxuICAgICAgICAgID8gZmlsZS5maWxlLm5hbWVcbiAgICAgICAgICA6IGZpbGUudXJsO1xuXG4gICAgICB0aGlzLmZpbGVOYW1lID0gZHJvcE5hbWU7XG5cbiAgICAgIGlmIChkcm9wTmFtZS5sZW5ndGggPiAyNikge1xuICAgICAgICB0aGlzLnRydW5jYXRlZEZpbGVOYW1lID0gZHJvcE5hbWUuc2xpY2UoMCwgMjYpICsgJy4uLic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRydW5jYXRlZEZpbGVOYW1lID0gZHJvcE5hbWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSAnJztcbiAgICAgIHRoaXMudHJ1bmNhdGVkRmlsZU5hbWUgPSAnJztcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlRmlsZUF0dGFjaG1lbnRCdXR0b24oKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RmlsZUF0dGFjaG1lbnRCdXR0b24gPSAhKFxuICAgICAgdGhpcy52YWx1ZSAmJiB0aGlzLmN1cnJlbnRUaGVtZU5hbWUgPT09ICdtb2Rlcm4nXG4gICAgKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAjb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtd3JhcHBlclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LWxhYmVsLXdyYXBwZXJcIlxuICAgIFthdHRyLmlkXT1cImxhYmVsRWxlbWVudElkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiAhbGFiZWxUZXh0ICYmIHJlcXVpcmVkICYmIGhhc0xhYmVsQ29tcG9uZW50XG4gICAgfVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUZXh0OyBlbHNlIGxhYmVsQ29udGVudFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCIhbGFiZWxIaWRkZW5cIlxuICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsIHNreS1tYXJnaW4taW5saW5lLXhzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgICAgIH1cIlxuICAgICAgICA+e3sgbGFiZWxUZXh0IH19PC9zcGFuXG4gICAgICA+PHNreS1oZWxwLWlubGluZVxuICAgICAgICAqbmdJZj1cImhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5XCJcbiAgICAgICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIlxuICAgICAgKm5nSWY9XCJyZXF1aXJlZCAmJiAoaGFzTGFiZWxDb21wb25lbnQgfHwgbGFiZWxUZXh0KVwiXG4gICAgICA+e3sgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXMgfX08L3NwYW5cbiAgICA+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LXVwbG9hZCBza3ktZmlsZS1hdHRhY2htZW50IHNreS1maWxlLWF0dGFjaG1lbnQtdGFyZ2V0XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWZpbGUtYXR0YWNobWVudC1hY2NlcHQnOiBhY2NlcHRlZE92ZXIsXG4gICAgICAnc2t5LWZpbGUtYXR0YWNobWVudC1yZWplY3QnOiByZWplY3RlZE92ZXJcbiAgICB9XCJcbiAgICAoZHJhZ2VudGVyKT1cImZpbGVEcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgKGRyYWdvdmVyKT1cImZpbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cImZpbGVEcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwiZmlsZURyb3AoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgIFthdHRyLmlkXT1cImZpbGVEcm9wRGVzY3JpcHRpb25FbGVtZW50SWRcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJhZ19vcl9jbGljaycgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2Rpdj5cbiAgICA8aW5wdXRcbiAgICAgIGhpZGRlblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0ZWRUeXBlcyB8fCBudWxsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAjZmlsZUlucHV0XG4gICAgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbGVBdHRhY2htZW50QnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd0ZpbGVBdHRhY2htZW50QnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LWJ0biBza3ktYnRuIHNreS1idG4tZGVmYXVsdFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBza3lJZFxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIlxuICAgICAgICAgIChoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgKyAnICcgOiAnJykgKyBmaWxlRHJvcERlc2NyaXB0aW9uRWxlbWVudElkXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgID8gKCdza3l1eF9maWxlX2F0dGFjaG1lbnRfYnV0dG9uX2xhYmVsX3JlcGxhY2VfZmlsZV9sYWJlbCdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVOYW1lKVxuICAgICAgICAgICAgOiAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGVfbGFiZWwnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgYXR0YWNoQnV0dG9uLmlkICtcbiAgICAgICAgICAnICcgK1xuICAgICAgICAgIChsYWJlbFRleHRcbiAgICAgICAgICAgID8gbGFiZWxFbGVtZW50SWRcbiAgICAgICAgICAgIDogaGFzTGFiZWxDb21wb25lbnRcbiAgICAgICAgICAgICAgPyBsYWJlbENvbXBvbmVudHM/LmdldCgwKT8ubGFiZWxDb250ZW50SWQ/LmlkXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkKVxuICAgICAgICBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib25Ecm9wQ2xpY2tlZCgpXCJcbiAgICAgICAgI2F0dGFjaEJ1dHRvbj1cInNreUlkXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb249XCJmb2xkZXItb3Blbi1vXCIgLz5cbiAgICAgICAge3tcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgPyAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfcmVwbGFjZV9maWxlJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgIDogKCdza3l1eF9maWxlX2F0dGFjaG1lbnRfYnV0dG9uX2xhYmVsX2Nob29zZV9maWxlJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxza3ktaWNvblxuICAgICAgKm5nSWY9XCJ2YWx1ZSAmJiAhaXNJbWFnZSAmJiBjdXJyZW50VGhlbWVOYW1lID09PSAnbW9kZXJuJ1wiXG4gICAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtaWNvbiBza3ktZGVlbXBoYXNpemVkXCJcbiAgICAgIGljb249XCJmaWxlLW9cIlxuICAgICAgc2l6ZT1cIjJ4XCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cInZhbHVlIHx8IGN1cnJlbnRUaGVtZU5hbWUgPT09ICdkZWZhdWx0J1wiXG4gICAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtbmFtZVwiXG4gICAgPlxuICAgICAgPGFcbiAgICAgICAgKm5nSWY9XCJ2YWx1ZTsgZWxzZSBub0ZpbGVcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJmaWxlTmFtZVwiXG4gICAgICAgIChjbGljayk9XCJlbWl0Q2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHRydW5jYXRlZEZpbGVOYW1lIH19XG4gICAgICA8L2E+XG4gICAgPC9zcGFuPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9GaWxlPlxuICAgICAgPHNwYW4gY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LW5vbmUgc2t5LWRlZW1waGFzaXplZFwiPlxuICAgICAgICB7eyAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2xhYmVsX25vX2ZpbGVfY2hvc2VuJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1ib3JkZXJsZXNzIHNreS1maWxlLWF0dGFjaG1lbnQtZGVsZXRlXCJcbiAgICAgIHNreUlkXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9pdGVtX3JlbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVOYW1lXG4gICAgICBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICBkZWxldGVCdXR0b24uaWQgK1xuICAgICAgICAnICcgK1xuICAgICAgICAoaGFzTGFiZWxDb21wb25lbnRcbiAgICAgICAgICA/IGxhYmVsQ29tcG9uZW50cz8uZ2V0KDApPy5sYWJlbENvbnRlbnRJZD8uaWRcbiAgICAgICAgICA6IHVuZGVmaW5lZClcbiAgICAgIFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3MnOiAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlRmlsZUF0dGFjaG1lbnQoKVwiXG4gICAgICAjZGVsZXRlQnV0dG9uPVwic2t5SWRcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiBpY29uPVwidHJhc2gtb1wiIHNpemU9XCJtZFwiIC8+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxpbWdcbiAgICAqbmdJZj1cInZhbHVlICYmIGlzSW1hZ2VcIlxuICAgIGNsYXNzPVwic2t5LWZpbGUtYXR0YWNobWVudC1wcmV2aWV3LWltZ1wiXG4gICAgW2FsdF09XCJcbiAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW1hZ2VfcHJldmlld19hbHRfdGV4dCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICBcIlxuICAgIFtzcmNdPVwidmFsdWUudXJsXCJcbiAgLz5cbjwvZGl2PlxuPGRpdiBza3lJZCAjaGludFRleHRFbD1cInNreUlkXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cImhpbnRUZXh0XCJcbiAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktZmlsZS1hdHRhY2htZW50LWhpbnQtdGV4dFwiXG4gID5cbiAgICB7eyBoaW50VGV4dCB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48c2t5LWZvcm0tZXJyb3JzXG4gICpuZ0lmPVwibGFiZWxUZXh0ICYmIChuZ0NvbnRyb2w/LmNvbnRyb2w/LmVycm9ycyB8fCBmaWxlRXJyb3JWYWxpZGF0aW9uKVwiXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2Vycm9yc109XCJcbiAgICBuZ0NvbnRyb2w/LmVycm9ycyAhPT0gbnVsbCA/IG5nQ29udHJvbD8uZXJyb3JzIDogZmlsZUVycm9yVmFsaWRhdGlvblxuICBcIlxuICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gIFtzaG93RXJyb3JzXT1cIm5nQ29udHJvbD8udG91Y2hlZCB8fCBuZ0NvbnRyb2w/LmRpcnR5XCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZvcm0tZXJyb3JcIiAvPlxuICA8c2t5LWZvcm0tZXJyb3JcbiAgICAqbmdJZj1cImZpbGVFcnJvck5hbWUgPT09ICdmaWxlVHlwZSdcIlxuICAgIFtlcnJvck5hbWVdPVwiJ2ZpbGVUeXBlJ1wiXG4gICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV90eXBlX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBmaWxlRXJyb3JQYXJhbVxuICAgIFwiXG4gIC8+XG4gIDxza3ktZm9ybS1lcnJvclxuICAgICpuZ0lmPVwiZmlsZUVycm9yTmFtZSA9PT0gJ21heEZpbGVTaXplJ1wiXG4gICAgW2Vycm9yTmFtZV09XCInbWF4RmlsZVNpemUnXCJcbiAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9tYXhfZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBmaWxlRXJyb3JQYXJhbVxuICAgIFwiXG4gIC8+XG4gIDxza3ktZm9ybS1lcnJvclxuICAgICpuZ0lmPVwiZmlsZUVycm9yTmFtZSA9PT0gJ21pbkZpbGVTaXplJ1wiXG4gICAgW2Vycm9yTmFtZV09XCInbWluRmlsZVNpemUnXCJcbiAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9taW5fZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBmaWxlRXJyb3JQYXJhbVxuICAgIFwiXG4gIC8+XG48L3NreS1mb3JtLWVycm9ycz5cblxuPG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1maWxlLWF0dGFjaG1lbnQtbGFiZWxcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==