@tiba-spark/client-shared-lib 26.2.0-235 → 26.2.0-241

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.
@@ -157,6 +157,12 @@ export class ClearLprTransactionsExpanded {
157
157
  constructor() {
158
158
  }
159
159
  }
160
+ export class SelectLprTransactionsRowAction {
161
+ static { this.type = '[park-manager] SelectLprTransactionsRow'; }
162
+ constructor(value) {
163
+ this.value = value;
164
+ }
165
+ }
160
166
  export class SelectedRowAction {
161
167
  static { this.type = '[park-manager] SelectedRow'; }
162
168
  constructor(payload) {
@@ -239,4 +245,4 @@ export class DeviceStatusChangedAction {
239
245
  this.deviceStatus = deviceStatus;
240
246
  }
241
247
  }
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsTUFBTSxPQUFPLHVCQUF1QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFMUQsWUFBbUIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDNUMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ2IsU0FBSSxHQUFHLDZCQUE2QixDQUFDO0lBRXJELFlBQW1CLFFBQVE7UUFBUixhQUFRLEdBQVIsUUFBUSxDQUFBO0lBQzNCLENBQUM7O0FBSUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLEFBQTlCLENBQStCO0lBRW5ELFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDbkMsQ0FBQzs7QUFKVSxnQkFBZ0I7SUFENUIsV0FBVyxFQUFFO0dBQ0QsZ0JBQWdCLENBSzVCOztBQUdNLElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7SUFFM0Q7SUFDQSxDQUFDOztBQUpVLHdCQUF3QjtJQURwQyxXQUFXLEVBQUU7R0FDRCx3QkFBd0IsQ0FLcEM7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUVwRDtJQUNBLENBQUM7O0FBSUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7YUFDWixTQUFJLEdBQUcsNEJBQTRCLEFBQS9CLENBQWdDO0lB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QUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ3ZLLENBQUM7O0FBSlUsc0JBQXNCO0lBRGxDLFdBQVcsRUFBRTtHQUNELHNCQUFzQixDQUtsQzs7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO2FBQ1gsU0FBSSxHQUFHLDhCQUE4QixDQUFDO0lBRXREO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8seUJBQXlCO2FBQ3BCLFNBQUksR0FBRyx5QkFBeUIsQ0FBQztJQUVqRCxZQUFtQixZQUE2QjtRQUE3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7SUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmljZXNWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9lbnVtcy9kZXZpY2VzLXZpZXctbW9kZS5lbnVtXCI7XG5pbXBvcnQgeyBTZWxlY3RlZFJvdyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL3NlbGVjdGVkLXJvdy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IERldmljZUR0bywgRGV2aWNlRXZlbnREdG8sIERldmljZVN0YXR1c0R0bywgRGV2aWNlVHlwZSwgRXZlbnRBY3Rpdml0eUR0bywgTHByVHJhbnNhY3Rpb25EdG8sIFNlYXJjaFBhcmFtc0R0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFRyYWNrQWN0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL25neHMvdHJhY2stYWN0aW9uLmRlY29yYXRvclwiO1xuXG5leHBvcnQgY2xhc3MgU2V0RGV2aWNlVmlld01vZGVBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VWaWV3TW9kZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdNb2RlOiBEZXZpY2VzVmlld01vZGUpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0RGV2aWNlQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0RGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlSWQpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlSWQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNlbGVjdGVkRGV2aWNlQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZFNlbGVjdGVkRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkRGV2aWNlc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzZWFyY2hQYXJhbXNEdG8/OiBTZWFyY2hQYXJhbXNEdG8sIHB1YmxpYyBpc1RsNjA6IGJvb2xlYW4gPSBudWxsKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VzQnlUeXBlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VzQnlUeXBlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bywgcHVibGljIGRldmljZVR5cGVzOiBEZXZpY2VUeXBlW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gQ2xlYXJEZXZpY2VzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gRGV2aWNlRXZlbnRDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2RXZlbnQ6IGFueSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBEZXZpY2VBY3Rpdml0eUNoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBldmVudEFjdGl2aXR5OiBhbnkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIERldmljZSBMUFJUcmFuc2FjdGlvbkNoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBscHJUcmFuc2FjdGlvbjogTHByVHJhbnNhY3Rpb25EdG8pIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmtJZDogbnVtYmVyLCBwdWJsaWMgZGV2aWNlSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHJlc3VsdExpbWl0OiBudW1iZXIpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmtJZDogbnVtYmVyLCBwdWJsaWMgZGV2aWNlSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHJlc3VsdExpbWl0OiBudW1iZXIpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWRMcHJUcmFuc2FjdGlvbkNvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBEZXZpY2VFdmVudER0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldEV2ZW50QWN0aXZpdGllc0V4cGFuZGVkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2V0RXZlbnRBY3Rpdml0aWVzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVNldDogRXZlbnRBY3Rpdml0eUR0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldExwclRyYW5zYWN0aW9uc0V4cGFuZGVkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2V0THByVHJhbnNhY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBMcHJUcmFuc2FjdGlvbkR0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRGV2aWNlRXZlbnRzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZUV2ZW50cyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckV2ZW50QWN0aXZpdGllcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyTHByVHJhbnNhY3Rpb25zRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckxwclRyYW5zYWN0aW9ucyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0ZWRSb3cnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTZWxlY3RlZFJvdykgeyB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZVN0YXR1c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VTdGF0dXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyLCBwdWJsaWMgc2VhcmNoVmFsdWU/OiBzdHJpbmcpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgc3RhcnREYXRlOiBEYXRlLCBwdWJsaWMgZW5kRGF0ZTogRGF0ZSwgcHVibGljIHRha2U6IG51bWJlciwgcHVibGljIHNraXA6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2VdIExvYWREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRSb3cge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhclNlbGVjdGVkJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2Utc3RhdHVzXSBDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsTUFBTSxPQUFPLHVCQUF1QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFMUQsWUFBbUIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDNUMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ2IsU0FBSSxHQUFHLDZCQUE2QixDQUFDO0lBRXJELFlBQW1CLFFBQVE7UUFBUixhQUFRLEdBQVIsUUFBUSxDQUFBO0lBQzNCLENBQUM7O0FBSUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLEFBQTlCLENBQStCO0lBRW5ELFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDbkMsQ0FBQzs7QUFKVSxnQkFBZ0I7SUFENUIsV0FBVyxFQUFFO0dBQ0QsZ0JBQWdCLENBSzVCOztBQUdNLElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7SUFFM0Q7SUFDQSxDQUFDOztBQUpVLHdCQUF3QjtJQURwQyxXQUFXLEVBQUU7R0FDRCx3QkFBd0IsQ0FLcEM7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUVwRDtJQUNBLENBQUM7O0FBSUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7YUFDWixTQUFJLEdBQUcsNEJBQTRCLEFBQS9CLENBQWdDO0lB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LENBQStCO0lBRW5ELFlBQW1CLE1BQWMsRUFBUyxRQUFnQixFQUFTLElBQVksRUFBUyxTQUFlLEVBQVMsT0FBYSxFQUFTLElBQVksRUFBUyxJQUFZO1FBQXBKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQU07UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFNO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7SUFDdkssQ0FBQzs7QUFKVSxzQkFBc0I7SUFEbEMsV0FBVyxFQUFFO0dBQ0Qsc0JBQXNCLENBS2xDOztBQUVELE1BQU0sT0FBTyxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsOEJBQThCLENBQUM7SUFFdEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyx5QkFBeUI7YUFDcEIsU0FBSSxHQUFHLHlCQUF5QixDQUFDO0lBRWpELFlBQW1CLFlBQTZCO1FBQTdCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtJQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGV2aWNlc1ZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL2VudW1zL2RldmljZXMtdmlldy1tb2RlLmVudW1cIjtcbmltcG9ydCB7IFNlbGVjdGVkUm93IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2VsZWN0ZWQtcm93LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRGV2aWNlRHRvLCBEZXZpY2VFdmVudER0bywgRGV2aWNlU3RhdHVzRHRvLCBEZXZpY2VUeXBlLCBFdmVudEFjdGl2aXR5RHRvLCBMcHJUcmFuc2FjdGlvbkR0bywgU2VhcmNoUGFyYW1zRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgVHJhY2tBY3Rpb24gfSBmcm9tIFwiLi4vLi4vdXRpbHMvbmd4cy90cmFjay1hY3Rpb24uZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VWaWV3TW9kZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIFNldERldmljZVZpZXdNb2RlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld01vZGU6IERldmljZXNWaWV3TW9kZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3REZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZWxlY3REZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2VJZCkge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkU2VsZWN0ZWREZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhckRldmljZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHNlYXJjaFBhcmFtc0R0bz86IFNlYXJjaFBhcmFtc0R0bywgcHVibGljIGlzVGw2MDogYm9vbGVhbiA9IG51bGwpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZERldmljZXNCeVR5cGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZXNCeVR5cGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHNlYXJjaFBhcmFtc0R0bzogU2VhcmNoUGFyYW1zRHRvLCBwdWJsaWMgZGV2aWNlVHlwZXM6IERldmljZVR5cGVbXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhckRldmljZXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBEZXZpY2VFdmVudENoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZFdmVudDogYW55KSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIERldmljZUFjdGl2aXR5Q2hhbmdlZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGV2ZW50QWN0aXZpdHk6IGFueSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gRGV2aWNlIExQUlRyYW5zYWN0aW9uQ2hhbmdlZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxwclRyYW5zYWN0aW9uOiBMcHJUcmFuc2FjdGlvbkR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZUV2ZW50c0NvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZEV2ZW50QWN0aXZpdGllc0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZEV2ZW50QWN0aXZpdGllc0NvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZExwclRyYW5zYWN0aW9uQ29sbGFwc2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyByZXN1bHRMaW1pdDogbnVtYmVyKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VFdmVudHNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIFNldERldmljZUV2ZW50cyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXQ6IERldmljZUV2ZW50RHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXRFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBFdmVudEFjdGl2aXR5RHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0THByVHJhbnNhY3Rpb25zRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXRMcHJUcmFuc2FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXQ6IExwclRyYW5zYWN0aW9uRHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VFdmVudHNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRGV2aWNlRXZlbnRzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRXZlbnRBY3Rpdml0aWVzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0THByVHJhbnNhY3Rpb25zUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0THByVHJhbnNhY3Rpb25zUm93JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IExwclRyYW5zYWN0aW9uRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0ZWRSb3cnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTZWxlY3RlZFJvdykgeyB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZVN0YXR1c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VTdGF0dXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyLCBwdWJsaWMgc2VhcmNoVmFsdWU/OiBzdHJpbmcpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgc3RhcnREYXRlOiBEYXRlLCBwdWJsaWMgZW5kRGF0ZTogRGF0ZSwgcHVibGljIHRha2U6IG51bWJlciwgcHVibGljIHNraXA6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2VdIExvYWREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRSb3cge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhclNlbGVjdGVkJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2Utc3RhdHVzXSBDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuIl19
@@ -11,7 +11,7 @@ import { getDefaultDeviceStatus } from '../../utils/device.util';
11
11
  import { toNumberMap } from '../../utils/lang.util';
12
12
  import { FacilityState } from '../facility/facility.state';
13
13
  import { SidenavState } from '../sidenav/sidenav.state';
14
- import { ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearLprTransactionsExpanded, ClearSelectedRow, DeviceActivityChangedAction, DeviceEventChangedAction, DeviceStatusChangedAction, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDeviceStatusAction, LoadEventActivitiesCollapse, LoadLprTransactionsCollapse, LoadSelectedDeviceAction, LprTransactionsChangedAction, SelectDeviceAction, SelectedRowAction, SetDeviceEventsExpanded, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetLprTransactionsExpanded } from './park-manager.actions';
14
+ import { ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearLprTransactionsExpanded, ClearSelectedRow, DeviceActivityChangedAction, DeviceEventChangedAction, DeviceStatusChangedAction, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDeviceStatusAction, LoadEventActivitiesCollapse, LoadLprTransactionsCollapse, LoadSelectedDeviceAction, LprTransactionsChangedAction, SelectDeviceAction, SelectLprTransactionsRowAction, SelectedRowAction, SetDeviceEventsExpanded, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetLprTransactionsExpanded } from './park-manager.actions';
15
15
  import { AppModule, SubModule } from '../../service-proxy/cloud-service-proxies';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "../../service-proxy";
@@ -87,6 +87,9 @@ let ParkManagerState = class ParkManagerState {
87
87
  static selectedRow(state) {
88
88
  return state.selectedRow;
89
89
  }
90
+ static selectedLprTransactionsRow(state) {
91
+ return state.selectedLprTransactionsRow;
92
+ }
90
93
  onSetDeviceViewModeAction(ctx, action) {
91
94
  ctx.patchState({
92
95
  devicesViewMode: action.viewMode,
@@ -233,6 +236,7 @@ let ParkManagerState = class ParkManagerState {
233
236
  lprTransactionsExpanded: [],
234
237
  selectedDeviceStatus: null,
235
238
  selectedDeviceParkId: null,
239
+ selectedLprTransactionsRow: null,
236
240
  });
237
241
  // wait for devices store to be loaded before loading a device
238
242
  return this.store.select(ParkManagerState_1.devices)
@@ -250,6 +254,7 @@ let ParkManagerState = class ParkManagerState {
250
254
  lprTransactions: null,
251
255
  deviceEvents: null,
252
256
  deviceRemoteCommands: null,
257
+ selectedLprTransactionsRow: null,
253
258
  });
254
259
  }
255
260
  onDeviceStatusChangedAction(ctx, action) {
@@ -313,6 +318,11 @@ let ParkManagerState = class ParkManagerState {
313
318
  },
314
319
  });
315
320
  }
321
+ onSelectLprTransactionsRowAction(ctx, action) {
322
+ ctx.patchState({
323
+ selectedLprTransactionsRow: action.value
324
+ });
325
+ }
316
326
  patchDevices(ctx, devices) {
317
327
  devices?.forEach(device => device.deviceStatus = device.deviceStatus ?? getDefaultDeviceStatus(device));
318
328
  ctx.patchState({
@@ -516,6 +526,9 @@ __decorate([
516
526
  __decorate([
517
527
  Action(SelectedRowAction)
518
528
  ], ParkManagerState.prototype, "onSelectedRowAction", null);
529
+ __decorate([
530
+ Action(SelectLprTransactionsRowAction)
531
+ ], ParkManagerState.prototype, "onSelectLprTransactionsRowAction", null);
519
532
  __decorate([
520
533
  Action(ClearSelectedRow)
521
534
  ], ParkManagerState.prototype, "onClearSelectedRow", null);
@@ -579,6 +592,9 @@ __decorate([
579
592
  __decorate([
580
593
  Selector()
581
594
  ], ParkManagerState, "selectedRow", null);
595
+ __decorate([
596
+ Selector()
597
+ ], ParkManagerState, "selectedLprTransactionsRow", null);
582
598
  ParkManagerState = ParkManagerState_1 = __decorate([
583
599
  State({
584
600
  name: 'parkManager',
@@ -602,11 +618,12 @@ ParkManagerState = ParkManagerState_1 = __decorate([
602
618
  eventActivitiesExpanded: [],
603
619
  lprTransactionsExpanded: [],
604
620
  selectedRow: null,
621
+ selectedLprTransactionsRow: null,
605
622
  },
606
623
  })
607
624
  ], ParkManagerState);
608
625
  export { ParkManagerState };
609
626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkManagerState, decorators: [{
610
627
  type: Injectable
611
- }], ctorParameters: () => [{ type: i1.Rpc.DeviceRpcServiceProxy }, { type: i2.FacilityRpcServiceProxy }, { type: i3.Store }], propDecorators: { onSetDeviceViewModeAction: [], onLoadDeviceEventsCollapse: [], onSetDeviceEventsExpanded: [], onLoadEventActivitiesCollapse: [], onSetEventActivitiesExpanded: [], onLoadLprTransactionsCollapse: [], onSetLprTransactionsExpanded: [], onClearDeviceEventsExpanded: [], onClearEventActivitiesExpanded: [], onClearLprTransactionsExpanded: [], onLoadDevicesAction: [], onLoadDevicesByTypeAction: [], onClearDevicesAction: [], onSelectDeviceAction: [], onLoadSelectedDeviceAction: [], onLoadDeviceStatusAction: [], onSetDeviceStatusAction: [], onLoadDeviceEventActivitiesAction: [], onLoadDeviceLprTransactionsAction: [], onLoadDeviceEventsAction: [], onLoadDeviceAction: [], onClearDeviceAction: [], onDeviceStatusChangedAction: [], onDeviceEventChangedAction: [], onDeviceActivityChangedAction: [], onLprTransactionsChangedAction: [], onSelectedRowAction: [], onClearSelectedRow: [] } });
612
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSXJFLE9BQU8sRUFDTSxjQUFjLEVBQTZCLGVBQWUsRUFBRSxnQkFBZ0IsRUFDM0MsY0FBYyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUNqRyxxQkFBcUIsRUFDdEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQzlGLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3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bkIseUJBQXlCLE1BUXpCLG9CQUFvQixNQUtwQixvQkFBb0IsTUFNcEIsMEJBQTBCLE1BUTFCLHdCQUF3QixNQW1CeEIsdUJBQXVCLE1BUXZCLGlDQUFpQyxNQVdqQyxpQ0FBaUMsTUFXakMsd0JBQXdCLE1BV3hCLGtCQUFrQixNQTZCbEIsbUJBQW1CLE1BYW5CLDJCQUEyQixNQWdDM0IsMEJBQTBCLE1BYTFCLDZCQUE2QixNQVk3Qiw4QkFBOEIsTUFVOUIsbUJBQW1CLE1BeUNuQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEZXZpY2VzVmlld01vZGUgfSBmcm9tICcuLi8uLi9lbnVtcy9kZXZpY2VzLXZpZXctbW9kZS5lbnVtJztcbmltcG9ydCB7IFNlbGVjdGVkUm93IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZWxlY3RlZC1yb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBEZXZpY2VEdG8sIERldmljZUV2ZW50RHRvLCBEZXZpY2VSZW1vdGVDb21tYW5kUmVmRHRvLCBEZXZpY2VTdGF0dXNEdG8sIEV2ZW50QWN0aXZpdHlEdG8sXG4gIEZhY2lsaXR5UnBjU2VydmljZVByb3h5LCBMcHJUcmFuc2FjdGlvbkR0bywgT3JkZXJEaXJlY3Rpb24sIFBhcmtlclRpY2tldFR5cGUsIFR5cGVDYXN0RGV2aWNlRXZlbnQsXG4gIFR5cGVDYXN0RXZlbnRBY3Rpdml0eVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgZ2V0TW9tZW50TnVsbGFibGUgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlLnV0aWwnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdERldmljZVN0YXR1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS51dGlsJztcbmltcG9ydCB7IE51bWJlck1hcCwgdG9OdW1iZXJNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgRmFjaWxpdHlTdGF0ZSB9IGZyb20gJy4uL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQge1xuICBDbGVhckRldmljZUFjdGlvbiwgQ2xlYXJEZXZpY2VFdmVudHNFeHBhbmRlZCwgQ2xlYXJEZXZpY2VzQWN0aW9uLCBDbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkLFxuICBDbGVhckxwclRyYW5zYWN0aW9uc0V4cGFuZGVkLCBDbGVhclNlbGVjdGVkUm93LCBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24sIERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbixcbiAgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiwgTG9hZERldmljZUFjdGlvbiwgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgTG9hZERldmljZUV2ZW50c0FjdGlvbixcbiAgTG9hZERldmljZUV2ZW50c0NvbGxhcHNlLCBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCBMb2FkRGV2aWNlc0FjdGlvbiwgTG9hZERldmljZXNCeVR5cGVBY3Rpb24sIExvYWREZXZpY2VTdGF0dXNBY3Rpb24sXG4gIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSwgTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlLCBMb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24sIExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24sXG4gIFNlbGVjdERldmljZUFjdGlvbiwgU2VsZWN0ZWRSb3dBY3Rpb24sIFNldERldmljZUV2ZW50c0V4cGFuZGVkLCBTZXREZXZpY2VTdGF0dXNBY3Rpb24sXG4gIFNldERldmljZVZpZXdNb2RlQWN0aW9uLCBTZXRFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCwgU2V0THByVHJhbnNhY3Rpb25zRXhwYW5kZWRcbn0gZnJvbSAnLi9wYXJrLW1hbmFnZXIuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFN1Yk1vZHVsZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJrTWFuYWdlclN0YXRlTW9kZWwge1xuICBmbGF0OiBEZXZpY2VEdG9bXTtcbiAgYnlJZDogTnVtYmVyTWFwPERldmljZUR0bz47XG4gIGJ5Q29tbUlkOiBOdW1iZXJNYXA8RGV2aWNlRHRvPjtcbiAgY291bnQ6IG51bWJlcjtcbiAgZGV2aWNlc1ZpZXdNb2RlOiBEZXZpY2VzVmlld01vZGU7XG5cbiAgc2VsZWN0ZWRJZDogbnVtYmVyO1xuICBzZWxlY3RlZERldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvO1xuICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVtYmVyO1xuICBkZXZpY2VSZW1vdGVDb21tYW5kczogRGV2aWNlUmVtb3RlQ29tbWFuZFJlZkR0b1tdO1xuXG4gIGRldmljZUV2ZW50c0NvbGxhcHNlOiBUYWJsZURhdGE8RGV2aWNlRXZlbnREdG8+O1xuICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogVGFibGVEYXRhPEV2ZW50QWN0aXZpdHlEdG8+O1xuICBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZTogVGFibGVEYXRhPExwclRyYW5zYWN0aW9uRHRvPjtcblxuICBkZXZpY2VFdmVudHM6IERldmljZUV2ZW50RHRvW107XG4gIGV2ZW50QWN0aXZpdGllczogRXZlbnRBY3Rpdml0eUR0b1tdO1xuICBscHJUcmFuc2FjdGlvbnM6IExwclRyYW5zYWN0aW9uRHRvW107XG5cbiAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IERldmljZUV2ZW50RHRvW107XG4gIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBFdmVudEFjdGl2aXR5RHRvW107XG4gIGxwclRyYW5zYWN0aW9uc0V4cGFuZGVkOiBMcHJUcmFuc2FjdGlvbkR0b1tdO1xuXG4gIHNlbGVjdGVkUm93OiBTZWxlY3RlZFJvdztcbn1cblxuY29uc3QgRVhQQU5ERURfUkVTVUxUX0xJTUlUID0gMTAwMDtcblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncGFya01hbmFnZXInLFxuICBkZWZhdWx0czoge1xuICAgIGZsYXQ6IG51bGwsXG4gICAgYnlJZDoge30sXG4gICAgYnlDb21tSWQ6IHt9LFxuICAgIGNvdW50OiAwLFxuICAgIGRldmljZXNWaWV3TW9kZTogbnVsbCxcblxuICAgIHNlbGVjdGVkSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VQYXJrSWQ6IG51bGwsXG4gICAgZGV2aWNlUmVtb3RlQ29tbWFuZHM6IG51bGwsXG5cbiAgICBkZXZpY2VFdmVudHNDb2xsYXBzZTogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZTogbnVsbCxcblxuICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXM6IG51bGwsXG4gICAgbHByVHJhbnNhY3Rpb25zOiBudWxsLFxuXG4gICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBbXSxcbiAgICBscHJUcmFuc2FjdGlvbnNFeHBhbmRlZDogW10sXG5cbiAgICBzZWxlY3RlZFJvdzogbnVsbCxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUGFya01hbmFnZXJTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkZXZpY2VScGNTZXJ2aWNlUHJveHk6IFJwYy5EZXZpY2VScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eVJwY1NlcnZpY2VQcm94eTogRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZmxhdChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5mbGF0O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBkZXZpY2VzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VEdG9bXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoc3RhdGUuYnlJZCB8fCB7fSk7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGJ5Q29tbUlkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBOdW1iZXJNYXA8RGV2aWNlRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmJ5Q29tbUlkIHx8IHt9O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBieUlkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBOdW1iZXJNYXA8RGV2aWNlRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmJ5SWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZXNWaWV3TW9kZShzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlc1ZpZXdNb2RlIHtcbiAgICAvLyBBbHNvIHJldHVybnMgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGhhdm4ndCBjaGFuZ2UgaXQgeWV0XG4gICAgcmV0dXJuIHN0YXRlLmRldmljZXNWaWV3TW9kZSB8fCBEZXZpY2VzVmlld01vZGUuR2FsbGVyeTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWREZXZpY2VJZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlbGVjdGVkSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkRGV2aWNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5ieUlkW3N0YXRlLnNlbGVjdGVkSWRdO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZERldmljZVN0YXR1cyhzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlU3RhdHVzRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWREZXZpY2VTdGF0dXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkRGV2aWNlUGFya0lkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZERldmljZVBhcmtJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCkge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZXZlbnRBY3Rpdml0aWVzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBFdmVudEFjdGl2aXR5RHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5ldmVudEFjdGl2aXRpZXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxwclRyYW5zYWN0aW9ucyhzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogTHByVHJhbnNhY3Rpb25EdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmxwclRyYW5zYWN0aW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZGV2aWNlRXZlbnRzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VFdmVudER0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlRXZlbnRzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBkZXZpY2VFdmVudHNFeHBhbmRlZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlRXZlbnREdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmRldmljZUV2ZW50c0V4cGFuZGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBldmVudEFjdGl2aXRpZXNFeHBhbmRlZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRXZlbnRBY3Rpdml0eUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxwclRyYW5zYWN0aW9uc0V4cGFuZGVkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBMcHJUcmFuc2FjdGlvbkR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUubHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZUV2ZW50c0NvbGxhcHNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBUYWJsZURhdGE8RGV2aWNlRXZlbnREdG8+IHtcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlRXZlbnRzQ29sbGFwc2U7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBUYWJsZURhdGE8RXZlbnRBY3Rpdml0eUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5ldmVudEFjdGl2aXRpZXNDb2xsYXBzZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbHByVHJhbnNhY3Rpb25zQ29sbGFwc2Uoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFRhYmxlRGF0YTxMcHJUcmFuc2FjdGlvbkR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5scHJUcmFuc2FjdGlvbnNDb2xsYXBzZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRSb3coc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFNlbGVjdGVkUm93IHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRSb3c7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZVZpZXdNb2RlQWN0aW9uKVxuICBvblNldERldmljZVZpZXdNb2RlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlVmlld01vZGVBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VzVmlld01vZGU6IGFjdGlvbi52aWV3TW9kZSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50c0NvbGxhcHNlKVxuICBvbkxvYWREZXZpY2VFdmVudHNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgbnVsbCwgbnVsbCxcbiAgICAgIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi5yZXN1bHRMaW1pdCwgMCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGF0YVNldCA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBkZXZpY2VFdmVudHNDb2xsYXBzZToge1xuICAgICAgICAgIHJlc3VsdExpbWl0OiBhY3Rpb24ucmVzdWx0TGltaXQsXG4gICAgICAgICAgZGF0YVNldDogZGF0YVNldC5kYXRhLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvblNldERldmljZUV2ZW50c0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQpIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VFdmVudHNFeHBhbmRlZDogYWN0aW9uLmRhdGFTZXQsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSlcbiAgb25Mb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UpIHtcbiAgICBjb25zdCBldmVudEFjdGl2aXRpZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlQWN0aXZpdGllcyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLFxuICAgICAgbnVsbCwgbnVsbCwgbnVsbCwgYWN0aW9uLnJlc3VsdExpbWl0LCAwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChkYXRhU2V0ID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlOiB7XG4gICAgICAgICAgcmVzdWx0TGltaXQ6IGFjdGlvbi5yZXN1bHRMaW1pdCxcbiAgICAgICAgICBkYXRhU2V0OiBkYXRhU2V0LmRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQpXG4gIG9uU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXRFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBhY3Rpb24uZGF0YVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlKVxuICBvbkxvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGxwclRyYW5zYWN0aW9ucyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eVxuICAgICAgLmdldERldmljZUxwclRyYW5zYWN0aW9ucyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLCBudWxsLCBudWxsLFxuICAgICAgICBudWxsLCBhY3Rpb24ucmVzdWx0TGltaXQsIDAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGRhdGFTZXQgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbHByVHJhbnNhY3Rpb25zQ29sbGFwc2U6IHtcbiAgICAgICAgICByZXN1bHRMaW1pdDogYWN0aW9uLnJlc3VsdExpbWl0LFxuICAgICAgICAgIGRhdGFTZXQ6IGRhdGFTZXQuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZClcbiAgb25TZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IFNldExwclRyYW5zYWN0aW9uc0V4cGFuZGVkKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IGFjdGlvbi5kYXRhU2V0LFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhckRldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvbkNsZWFyRGV2aWNlRXZlbnRzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGRldmljZUV2ZW50c0V4cGFuZGVkOiBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJFdmVudEFjdGl2aXRpZXNFeHBhbmRlZClcbiAgb25DbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBldmVudEFjdGl2aXRpZXNFeHBhbmRlZDogW10sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyTHByVHJhbnNhY3Rpb25zRXhwYW5kZWQpXG4gIG9uQ2xlYXJMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNBY3Rpb24pIHtcbiAgICB0aGlzLnBhdGNoRGV2aWNlcyhjdHgsIG51bGwpO1xuXG4gICAgY29uc3QgYXBwTW9kdWxlOiBBcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGNvbnN0IHN1Yk1vZHVsZTogU3ViTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuc3ViTW9kdWxlKTtcblxuICAgIGxldCBnZXREZXZpY2VzJDogdHlwZW9mIHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldENDRGV2aWNlcztcbiAgICBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuQ2MpIHtcbiAgICAgIGdldERldmljZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0Q0NEZXZpY2VzLmJpbmQodGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkpO1xuICAgIH0gZWxzZSBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuUmVwb3J0cykge1xuICAgICAgZ2V0RGV2aWNlcyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXRSZXBvcnRzRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9IGVsc2UgaWYgKGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkxvdENvbmZpZ3VyYXRpb24gJiYgc3ViTW9kdWxlID09PSBTdWJNb2R1bGUuU2NoZWR1bGVyKSB7XG4gICAgICBnZXREZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldExvdENvbmZpZ3VyYXRpb25zRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RGV2aWNlcyQoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5pc1RsNjApLnBpcGUodGFwKGRldmljZXMgPT5cbiAgICAgICAgdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VzQnlUeXBlQWN0aW9uKVxuICBvbkxvYWREZXZpY2VzQnlUeXBlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNCeVR5cGVBY3Rpb24pIHtcbiAgICBjb25zdCBkZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZXNCeVR5cGUoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5kZXZpY2VUeXBlcyk7XG4gICAgcmV0dXJuIGRldmljZXMkLnBpcGUodGFwKGRldmljZXMgPT4gdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyRGV2aWNlc0FjdGlvbilcbiAgb25DbGVhckRldmljZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIHRoaXMucGF0Y2hEZXZpY2VzKGN0eCwgbnVsbCk7XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdERldmljZUFjdGlvbilcbiAgb25TZWxlY3REZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3REZXZpY2VBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkSWQ6IG51bGwgfSk7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZElkOiBhY3Rpb24uZGV2aWNlSWQgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTZWxlY3RlZERldmljZUFjdGlvbilcbiAgb25Mb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlSWQgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZElkO1xuICAgIGlmIChzZWxlY3RlZERldmljZUlkKSB7XG4gICAgICB0aGlzLm9uTG9hZERldmljZUFjdGlvbihjdHgsIHsgZGV2aWNlSWQ6IHNlbGVjdGVkRGV2aWNlSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlU3RhdHVzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZVN0YXR1c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuXG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRldmljZVN0YXR1cyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldERldmljZVN0YXR1cyhndWlkLCBhY3Rpb24uZGV2aWNlPy5wYXJrSUQsIGFjdGlvbi5kZXZpY2U/LmlkKTtcblxuICAgIHJldHVybiBkZXZpY2VTdGF0dXMkLnBpcGUodGFwKGRldmljZVN0YXR1cyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZGV2aWNlU3RhdHVzPy5kYXRhPy5kYXRhIHx8IGdldERlZmF1bHREZXZpY2VTdGF0dXMoYWN0aW9uLmRldmljZSksXG4gICAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBkZXZpY2VTdGF0dXM/LmRhdGE/LnBhcmtJRCxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXREZXZpY2VTdGF0dXNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25TZXREZXZpY2VTdGF0dXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZ2V0RGVmYXVsdERldmljZVN0YXR1cyhhY3Rpb24uZGV2aWNlKSxcbiAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBhY3Rpb24uZGV2aWNlLnBhcmtJRCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VFdmVudEFjdGl2aXRpZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRGV2aWNlRXZlbnRBY3Rpdml0aWVzQWN0aW9uKSB7XG4gICAgY29uc3QgZXZlbnRBY3Rpdml0aWVzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZUFjdGl2aXRpZXMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIGFjdGlvbi5zZWFyY2hWYWx1ZSwgbnVsbCwgbnVsbCwgYWN0aW9uLnRha2UsIGFjdGlvbi5za2lwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChldmVudEFjdGl2aXRpZXMgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXZlbnRBY3Rpdml0aWVzOiBldmVudEFjdGl2aXRpZXMuZGF0YSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZUxwclRyYW5zYWN0aW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24pIHtcbiAgICBjb25zdCBscHJUcmFuc2FjdGlvbnMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlTHByVHJhbnNhY3Rpb25zKGFjdGlvbi5ndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24uZGV2aWNlSWQsIGdldE1vbWVudE51bGxhYmxlKGFjdGlvbi5zdGFydERhdGUpLFxuICAgICAgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLmVuZERhdGUpLCBudWxsLCBudWxsLCBudWxsLCBhY3Rpb24udGFrZSwgYWN0aW9uLnNraXAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGxwclRyYW5zYWN0aW9ucyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBscHJUcmFuc2FjdGlvbnM6IGxwclRyYW5zYWN0aW9ucy5kYXRhLFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VFdmVudHNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkRGV2aWNlRXZlbnRzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUV2ZW50c0FjdGlvbikge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi50YWtlLCBhY3Rpb24uc2tpcCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGV2aWNlRXZlbnRzID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGRldmljZUV2ZW50czogZGV2aWNlRXZlbnRzLmRhdGEsXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUFjdGlvbilcbiAgb25Mb2FkRGV2aWNlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllczogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uczogbnVsbCxcbiAgICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICAgIGRldmljZVJlbW90ZUNvbW1hbmRzOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzQ29sbGFwc2U6IG51bGwsXG4gICAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uc0NvbGxhcHNlOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgICAgZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ6IFtdLFxuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICB9KTtcblxuICAgIC8vIHdhaXQgZm9yIGRldmljZXMgc3RvcmUgdG8gYmUgbG9hZGVkIGJlZm9yZSBsb2FkaW5nIGEgZGV2aWNlXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KFBhcmtNYW5hZ2VyU3RhdGUuZGV2aWNlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZGV2aWNlcyA9PiBkZXZpY2VzPy5sZW5ndGggPiAwKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgdGFwKChmaWx0ZXJlZERldmljZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXZpY2UgPSBmaWx0ZXJlZERldmljZXMuZmluZChkID0+IGQuaWQgPT09ICthY3Rpb24uZGV2aWNlSWQpO1xuICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9hZERldmljZVN0YXR1c0FjdGlvbihkZXZpY2UpKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJEZXZpY2VBY3Rpb24pXG4gIG9uQ2xlYXJEZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkSWQ6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVN0YXR1czogbnVsbCxcbiAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBudWxsLFxuICAgICAgZXZlbnRBY3Rpdml0aWVzOiBudWxsLFxuICAgICAgbHByVHJhbnNhY3Rpb25zOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzOiBudWxsLFxuICAgICAgZGV2aWNlUmVtb3RlQ29tbWFuZHM6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pXG4gIG9uRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBkZXZpY2VJZCA9IGFjdGlvbi5kZXZpY2VTdGF0dXM/LmRldmljZUlEO1xuICAgIGNvbnN0IGNvbW1JRCA9IGFjdGlvbi5kZXZpY2VTdGF0dXM/LmNvbW1JRDtcblxuICAgIGNvbnN0IGRldmljZXNCeUlkID0gY3R4LmdldFN0YXRlKCkuYnlJZDtcbiAgICBjb25zdCBkZXZpY2VzYnlDb21tSWQgPSBjdHguZ2V0U3RhdGUoKS5ieUNvbW1JZDtcblxuICAgIGlmIChkZXZpY2VzQnlJZFtkZXZpY2VJZF0pIHtcbiAgICAgIGlmICghaXNFcXVhbChkZXZpY2VzQnlJZFtkZXZpY2VJZF0uZGV2aWNlU3RhdHVzLCBhY3Rpb24uZGV2aWNlU3RhdHVzKSkge1xuICAgICAgICBjb25zdCBjbG9uZWREdG8gPSBEZXZpY2VTdGF0dXNEdG8uZnJvbUpTKGFjdGlvbi5kZXZpY2VTdGF0dXMpO1xuICAgICAgICBjbG9uZWREdG8udHlwZSA9IGRldmljZXNCeUlkW2RldmljZUlkXS50eXBlO1xuICAgICAgICBkZXZpY2VzQnlJZFtkZXZpY2VJZF0uZGV2aWNlU3RhdHVzID0gY2xvbmVkRHRvO1xuICAgICAgICBkZXZpY2VzYnlDb21tSWRbY29tbUlEXS5kZXZpY2VTdGF0dXMgPSBjbG9uZWREdG87XG5cbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGJ5SWQ6IGNsb25lRGVlcChkZXZpY2VzQnlJZCksXG4gICAgICAgICAgYnlDb21tSWQ6IGNsb25lRGVlcChkZXZpY2VzYnlDb21tSWQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZERldmljZVN0YXR1cyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlU3RhdHVzO1xuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uZGV2aWNlSUQgPT09IGRldmljZUlkKSB7XG4gICAgICBhY3Rpb24uZGV2aWNlU3RhdHVzLnR5cGUgPSBzZWxlY3RlZERldmljZVN0YXR1cy50eXBlO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzZWxlY3RlZERldmljZVN0YXR1czogYWN0aW9uLmRldmljZVN0YXR1cyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvciBEZXZpY2UgRXZlbnRzXG4gIEBBY3Rpb24oRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uKVxuICBvbkRldmljZUV2ZW50Q2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlUGFya0lkID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VQYXJrSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICAvLyBUT0RPOiBjaGFuZ2UgdG8gZGV2aWNlSWQgb25jZSBTUCB3aWxsIGltcGxlbWVudFxuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uY29tbUlEID09PSBhY3Rpb24uZGV2RXZlbnQ/LnJlYWRlcklEICYmIHNlbGVjdGVkRGV2aWNlUGFya0lkID09PSBhY3Rpb24uZGV2RXZlbnQ/LnBhcmtJRCkge1xuICAgICAgY29uc3QgZGV2aWNlRXZlbnREdG8gPSB0aGlzLnBvcHVsYXRlRGV2aWNlRXZlbnQoYWN0aW9uLmRldkV2ZW50KTtcbiAgICAgIHRoaXMucGF0Y2hEZXZpY2VJdGVtKGN0eCwgZGV2aWNlRXZlbnREdG8sICdkZXZpY2VFdmVudHMnKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vLyBmb3IgRGV2aWNlIGFjdGl2aXR5XG4gIEBBY3Rpb24oRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKVxuICBvbkRldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlUGFya0lkID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VQYXJrSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICAvLyBUT0RPOiBjaGFuZ2UgdG8gZGV2aWNlSWQgb25jZSBTUCB3aWxsIGltcGxlbWVudFxuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uY29tbUlEID09PSBhY3Rpb24uZXZlbnRBY3Rpdml0eT8ucmVhZGVySUQgJiYgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPT09IGFjdGlvbi5ldmVudEFjdGl2aXR5Py5wYXJrSUQpIHtcbiAgICAgIGNvbnN0IGV2ZW50QWN0aXZpdHlEdG8gPSB0aGlzLnBvcHVsYXRlRXZlbnRBY3Rpdml0eShhY3Rpb24uZXZlbnRBY3Rpdml0eSk7XG4gICAgICB0aGlzLnBhdGNoRGV2aWNlSXRlbShjdHgsIGV2ZW50QWN0aXZpdHlEdG8sICdldmVudEFjdGl2aXRpZXMnKTtcbiAgICB9XG4gIH1cblxuICAvLy8gZm9yIExQUiBUcmFuc2FjdGlvbnNcbiAgQEFjdGlvbihMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uKVxuICBvbkxwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVBhcmtJZDtcbiAgICBjb25zdCBzZWxlY3RlZERldmljZVN0YXR1cyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlU3RhdHVzO1xuICAgIC8vIFRPRE86IGNoYW5nZSB0byBkZXZpY2VJZCBvbmNlIFNQIHdpbGwgaW1wbGVtZW50XG4gICAgaWYgKHNlbGVjdGVkRGV2aWNlU3RhdHVzPy5jb21tSUQgPT09IGFjdGlvbi5scHJUcmFuc2FjdGlvbj8ucmVhZGVySUQgJiYgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPT09IGFjdGlvbi5scHJUcmFuc2FjdGlvbj8ucGFya0lEKSB7XG4gICAgICB0aGlzLnBhdGNoRGV2aWNlSXRlbShjdHgsIGFjdGlvbi5scHJUcmFuc2FjdGlvbiwgJ2xwclRyYW5zYWN0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oU2VsZWN0ZWRSb3dBY3Rpb24pXG4gIG9uU2VsZWN0ZWRSb3dBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RlZFJvd0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkUm93OiB7XG4gICAgICAgIHRhYmxlTmFtZTogYWN0aW9uLnBheWxvYWQudGFibGVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hEZXZpY2VzKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGRldmljZXM6IERldmljZUR0b1tdKSB7XG4gICAgZGV2aWNlcz8uZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBmbGF0OiBkZXZpY2VzPy5zb3J0KChhLCBiKSA9PiBhLmlkIC0gYi5pZCksXG4gICAgICBieUlkOiB0b051bWJlck1hcChkZXZpY2VzIHx8IFtdLCAoZCkgPT4gZC5pZCksXG4gICAgICBieUNvbW1JZDogdG9OdW1iZXJNYXAoZGV2aWNlcyB8fCBbXSwgKGQpID0+IGQuY29tbUlEKSxcbiAgICAgIGNvdW50OiBkZXZpY2VzPy5sZW5ndGggfHwgMCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hEZXZpY2VJdGVtPFQ+KGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGl0ZW06IFQsIGl0ZW1zTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY29sbGFwc2VJdGVtc05hbWUgPSBgJHtpdGVtc05hbWV9Q29sbGFwc2VgO1xuICAgIGNvbnN0IGV4cGFuZGVkSXRlbXNOYW1lID0gYCR7aXRlbXNOYW1lfUV4cGFuZGVkYDtcbiAgICBjb25zdCBjb2xsYXBzZUl0ZW1zID0gY3R4LmdldFN0YXRlKClbY29sbGFwc2VJdGVtc05hbWVdIGFzIFRhYmxlRGF0YTxhbnk+O1xuICAgIGxldCBleHBhbmRlZEl0ZW1zID0gY3R4LmdldFN0YXRlKClbZXhwYW5kZWRJdGVtc05hbWVdO1xuXG4gICAgaWYgKGNvbGxhcHNlSXRlbXMgIT09IG51bGwpIHtcbiAgICAgIGNvbGxhcHNlSXRlbXMuZGF0YVNldCA9IFsuLi5jb2xsYXBzZUl0ZW1zLmRhdGFTZXQuc2xpY2UoMCwgY29sbGFwc2VJdGVtcy5yZXN1bHRMaW1pdCAtIDEpXTtcbiAgICAgIGNvbGxhcHNlSXRlbXMuZGF0YVNldC51bnNoaWZ0KGl0ZW0pO1xuICAgIH1cblxuICAgIGlmIChleHBhbmRlZEl0ZW1zICE9PSBudWxsKSB7XG4gICAgICBleHBhbmRlZEl0ZW1zID0gWy4uLmV4cGFuZGVkSXRlbXNdLnNsaWNlKDAsIEVYUEFOREVEX1JFU1VMVF9MSU1JVCAtIDEpO1xuICAgICAgZXhwYW5kZWRJdGVtcy51bnNoaWZ0KGl0ZW0pO1xuICAgIH1cblxuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIFtjb2xsYXBzZUl0ZW1zTmFtZV06IGNsb25lRGVlcChjb2xsYXBzZUl0ZW1zKSxcbiAgICAgIFtleHBhbmRlZEl0ZW1zTmFtZV06IGV4cGFuZGVkSXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRSb3cpXG4gIG9uQ2xlYXJTZWxlY3RlZFJvdyhjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRSb3c6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlRGV2aWNlRXZlbnQoZGV2aWNlRXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zdCBkZXZpY2VFdmVudER0byA9IERldmljZUV2ZW50RHRvLmZyb21KUyhkZXZpY2VFdmVudERhdGEpO1xuXG4gICAgLy8gYmFja3dhcmRzIC0gZnJvbSA5LjMuMiB0aGUgbWFwcGluZyBmcm9tIERldmljZUV2ZW50Q29yZSB0byBEZXZpY2VFdmVudER0byB3aWxsIGJlIGluIHRoZSBjbGllbnRcbiAgICBpZiAoZGV2aWNlRXZlbnREYXRhLnBhcmtlclRpY2tldFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGV2aWNlRXZlbnREdG8ucGFya2VyVGlja2V0VHlwZSA9IHRoaXMuZ2V0RGV2aWNlRXZlbnRQYXJrZXJUaWNrZXRUeXBlKGRldmljZUV2ZW50RGF0YSk7XG4gICAgICBkZXZpY2VFdmVudER0by50aWNrZXROdW0gPSB0aGlzLkdldFRpY2tldE51bShkZXZpY2VFdmVudER0by5wYXJrZXJUaWNrZXRUeXBlLCBkZXZpY2VFdmVudER0by52YWx1ZTEpO1xuICAgIH1cbiAgICBpZiAoZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlPy5tb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZS5tb2RlID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS5ldmVudFR5cGU7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUudmFsdWUxX0Rlc2NyaXB0aW9uID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS52YWx1ZTFfRGlzO1xuICAgICAgZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlLnZhbHVlMl9EZXNjcmlwdGlvbiA9IGRldmljZUV2ZW50RGF0YS5ldmVudFR5cGUudmFsdWUyX0RpcztcbiAgICAgIGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZS52YWx1ZTNfRGVzY3JpcHRpb24gPSBkZXZpY2VFdmVudERhdGEuZXZlbnRUeXBlLnZhbHVlM19EaXM7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUudmFsdWU0X0Rlc2NyaXB0aW9uID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS52YWx1ZTRfRGlzO1xuICAgIH1cblxuICAgIHJldHVybiBkZXZpY2VFdmVudER0bztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGV2aWNlRXZlbnRQYXJrZXJUaWNrZXRUeXBlKGRldmljZUV2ZW50RGF0YTogYW55KTogUGFya2VyVGlja2V0VHlwZSB7XG4gICAgbGV0IHBhcmtlclRpY2tldFR5cGU6IFBhcmtlclRpY2tldFR5cGU7XG4gICAgc3dpdGNoIChkZXZpY2VFdmVudERhdGEuZXZlbnRJRCkge1xuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNhbmNlbGxlZFRpY2tldFBheW1lbnRQcm9jZXNzOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50Lk5ld0VudHJ5VGlja2V0OlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LlRpY2tldFBheW1lbnRDYWxjdWxhdGlvbjpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5UaWNrZXRXaXRoTm9QYXltZW50OlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNoYXJnZVNlbnRGcm9tU2VydmVyOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNhc2hiYWNrV2FzUHJpbnRlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5MUFJNaXNtYXRjaDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5BY2NlcHRFbnRyeVRpY2tldDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5EZW55RW50cnlUaWNrZXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuRGVueUVudHJ5VGlja2V0RXJyb3I6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQ2FyTGVmdExvb3BUaWNrZXRSZWplY3RlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5UaWNrZXREZXRhaWxzQ2hhbmdlOlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5UcmFuc2llbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNyZWRpdFRyYW5zYWN0aW9uQWNjZXB0ZWQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQ3JlZGl0VHJhbnNhY3Rpb25SZWplY3RlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DcmVkaXRQcm9jZXNzVGltZW91dDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5TdGlja2VyczpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuUGF5bWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5Vbmtub3duO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcGFya2VyVGlja2V0VHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgR2V0VGlja2V0TnVtID0gKHBhcmtlclRpY2tldFR5cGU6IFBhcmtlclRpY2tldFR5cGUsIHZhbHVlOiBudW1iZXIpOiBudW1iZXIgPT4gcGFya2VyVGlja2V0VHlwZSAhPSBQYXJrZXJUaWNrZXRUeXBlLlVua25vd24gPyB2YWx1ZSA6IG51bGw7XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUV2ZW50QWN0aXZpdHkoZXZlbnRBY3Rpdml0eURhdGE6IGFueSkge1xuICAgIGNvbnN0IGV2ZW50QWN0aXZ0eUR0byA9IEV2ZW50QWN0aXZpdHlEdG8uZnJvbUpTKGV2ZW50QWN0aXZpdHlEYXRhKTtcbiAgICAvLyBiYWNrd2FyZHMgLSBmcm9tIDkuMy4yIHRoZSBtYXBwaW5nIGZyb20gRXZlbnRBY3Rpdml0eUNvcmUgdG8gRXZlbnRBY3Rpdml0eUR0byB3aWxsIGJlIGluIHRoZSBjbGllbnRcbiAgICBpZiAoZXZlbnRBY3Rpdml0eURhdGEucGFya2VyVGlja2V0VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBldmVudEFjdGl2dHlEdG8uZGVzY3JpcHRpb24gPSBldmVudEFjdGl2aXR5RGF0YS5kaXM7XG4gICAgICBldmVudEFjdGl2dHlEdG8uZGF0ZSA9IGV2ZW50QWN0aXZpdHlEYXRhLm5EYXRlO1xuICAgICAgZXZlbnRBY3RpdnR5RHRvLnRpbWUgPSBldmVudEFjdGl2aXR5RGF0YS5uVGltZTtcbiAgICAgIGV2ZW50QWN0aXZ0eUR0by5kYXRlVGltZSA9IGV2ZW50QWN0aXZpdHlEYXRhLm5EYXRlVGltZTtcbiAgICAgIGV2ZW50QWN0aXZ0eUR0by5wYXJrZXJUaWNrZXRUeXBlID0gdGhpcy5nZXRFdmVudEFjdGl2aXR5UGFya2VyVGlja2V0VHlwZShldmVudEFjdGl2aXR5RGF0YSk7XG4gICAgICBldmVudEFjdGl2dHlEdG8udGlja2V0SWQgPSB0aGlzLkdldFRpY2tldE51bShldmVudEFjdGl2dHlEdG8ucGFya2VyVGlja2V0VHlwZSwgZXZlbnRBY3Rpdml0eURhdGEucm93SXRlbURhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBldmVudEFjdGl2dHlEdG87XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50QWN0aXZpdHlQYXJrZXJUaWNrZXRUeXBlKGV2ZW50QWN0aXZpdHlEYXRhOiBhbnkpOiBQYXJrZXJUaWNrZXRUeXBlIHtcbiAgICBsZXQgcGFya2VyVGlja2V0VHlwZTogUGFya2VyVGlja2V0VHlwZTtcbiAgICBzd2l0Y2ggKGV2ZW50QWN0aXZpdHlEYXRhLmltZ0NlbGxUYWcpIHtcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LkNyZWRpdENhcmROb3RFbmFibGVkOlxuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuQ3JlZGl0Q2FyZEVycm9yOlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5DcmVkaXRDYXJkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LlRyYW5zaWVudE9wZW5UaWNrZXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5UcmFuc2llbnRDbG9zZVRpY2tldDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5Lk1vbnRobHk6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLk1vbnRobHk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuUGF5bWVudDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuUGF5bWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5HdWVzdDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuR3Vlc3Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuRVZvdWNoZXI6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLkVWb3VjaGVyO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLlVua25vd247XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJrZXJUaWNrZXRUeXBlO1xuICB9XG59XG4iXX0=
628
+ }], ctorParameters: () => [{ type: i1.Rpc.DeviceRpcServiceProxy }, { type: i2.FacilityRpcServiceProxy }, { type: i3.Store }], propDecorators: { onSetDeviceViewModeAction: [], onLoadDeviceEventsCollapse: [], onSetDeviceEventsExpanded: [], onLoadEventActivitiesCollapse: [], onSetEventActivitiesExpanded: [], onLoadLprTransactionsCollapse: [], onSetLprTransactionsExpanded: [], onClearDeviceEventsExpanded: [], onClearEventActivitiesExpanded: [], onClearLprTransactionsExpanded: [], onLoadDevicesAction: [], onLoadDevicesByTypeAction: [], onClearDevicesAction: [], onSelectDeviceAction: [], onLoadSelectedDeviceAction: [], onLoadDeviceStatusAction: [], onSetDeviceStatusAction: [], onLoadDeviceEventActivitiesAction: [], onLoadDeviceLprTransactionsAction: [], onLoadDeviceEventsAction: [], onLoadDeviceAction: [], onClearDeviceAction: [], onDeviceStatusChangedAction: [], onDeviceEventChangedAction: [], onDeviceActivityChangedAction: [], onLprTransactionsChangedAction: [], onSelectedRowAction: [], onSelectLprTransactionsRowAction: [], onClearSelectedRow: [] } });
629
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSXJFLE9BQU8sRUFDTSxjQUFjLEVBQTZCLGVBQWUsRUFBRSxnQkFBZ0IsRUFDM0MsY0FBYyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUNqRyxxQkFBcUIsRUFDdEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQzlGLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUNyRyx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSwrQkFBK0IsRUFBRSxzQkFBc0IsRUFDcEcsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQzdILDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUNoSCxrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFDckgsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQ2hGLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFtQ2pGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBa0M1QixJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjs7SUFFM0IsWUFDVSxxQkFBZ0QsRUFDaEQsdUJBQWdELEVBQ2hELEtBQVk7UUFGWiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsVUFBSyxHQUFMLEtBQUssQ0FBTztRQThnQmQsaUJBQVksR0FBRyxDQUFDLGdCQUFrQyxFQUFFLEtBQWEsRUFBVSxFQUFFLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQTdnQmxKLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBNEI7UUFDN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBNEI7UUFDaEQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUE0QjtRQUNqRCxPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBNEI7UUFDN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBNEI7UUFDeEQsZ0VBQWdFO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDO0lBQzFELENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUE0QjtRQUN6RCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDMUIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUE0QjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUE0QjtRQUM3RCxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztJQUNwQyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBNEI7UUFDN0QsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDcEMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUE0QjtRQUM5QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUE0QjtRQUN4RCxPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUE0QjtRQUN4RCxPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUE0QjtRQUNyRCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQTRCO1FBQzdELE9BQU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ3BDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUE0QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUN2QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBNEI7UUFDaEUsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUM7SUFDdkMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQTRCO1FBQzdELE9BQU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ3BDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUE0QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUN2QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBNEI7UUFDaEUsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUM7SUFDdkMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUE0QjtRQUNwRCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQTRCO1FBQ25FLE9BQU8sS0FBSyxDQUFDLDBCQUEwQixDQUFDO0lBQzFDLENBQUM7SUFHRCx5QkFBeUIsQ0FBQyxHQUF3QyxFQUFFLE1BQStCO1FBQ2pHLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixlQUFlLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDBCQUEwQixDQUFDLEdBQXdDLEVBQUUsTUFBZ0M7UUFDbkcsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUN0SCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdEMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFO2dCQUNwQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSTthQUN0QjtTQUNGLENBQUMsQ0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QseUJBQXlCLENBQUMsR0FBd0MsRUFBRSxNQUErQjtRQUNqRyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDZCQUE2QixDQUFDLEdBQXdDLEVBQUUsTUFBbUM7UUFDekcsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDN0gsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDekMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLHVCQUF1QixFQUFFO2dCQUN2QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSTthQUN0QjtTQUNGLENBQUMsQ0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsNEJBQTRCLENBQUMsR0FBd0MsRUFBRSxNQUFrQztRQUN2RyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDZCQUE2QixDQUFDLEdBQXdDLEVBQUUsTUFBbUM7UUFDekcsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCO2FBQ2hELHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDM0YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3pDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYix1QkFBdUIsRUFBRTtnQkFDdkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7YUFDdEI7U0FDRixDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDRCQUE0QixDQUFDLEdBQXdDLEVBQUUsTUFBa0M7UUFDdkcsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCwyQkFBMkIsQ0FBQyxHQUF3QztRQUNsRSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2Isb0JBQW9CLEVBQUUsRUFBRTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsOEJBQThCLENBQUMsR0FBd0M7UUFDckUsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLHVCQUF1QixFQUFFLEVBQUU7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDhCQUE4QixDQUFDLEdBQXdDO1FBQ3JFLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYix1QkFBdUIsRUFBRSxFQUFFO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxHQUF3QyxFQUFFLE1BQXlCO1FBQ3JGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdCLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRSxNQUFNLFNBQVMsR0FBYyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0UsSUFBSSxXQUEyRCxDQUFDO1FBQ2hFLElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMvQixXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekYsQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5RixDQUFDO2FBQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLGdCQUFnQixJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekYsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFDL0UsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUMxRSxNQUFNLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDaEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBR0QseUJBQXlCLENBQUMsR0FBd0MsRUFBRSxNQUErQjtRQUNqRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUN6SCxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQzFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUdELG9CQUFvQixDQUFDLEdBQXdDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFHRCxvQkFBb0IsQ0FBQyxHQUF3QyxFQUFFLE1BQTBCO1FBQ3ZGLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCwwQkFBMEIsQ0FBQyxHQUF3QztRQUNqRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDbkQsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBR0Qsd0JBQXdCLENBQUMsR0FBd0MsRUFBRSxNQUE4QjtRQUMvRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0QsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsb0JBQW9CLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRW5ILE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDM0MsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDdkYsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNO1NBQ2pELENBQUMsQ0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsdUJBQXVCLENBQUMsR0FBd0MsRUFBRSxNQUE2QjtRQUM3RixHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2Isb0JBQW9CLEVBQUUsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUMzRCxvQkFBb0IsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU07U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGlDQUFpQyxDQUFDLEdBQXdDLEVBQUUsTUFBdUM7UUFDakgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUN0SixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFILE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUNqRCxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsZUFBZSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1NBQ3RDLENBQUMsQ0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsaUNBQWlDLENBQUMsR0FBd0MsRUFBRSxNQUF1QztRQUNqSCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQzNKLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLGVBQWUsRUFBRSxlQUFlLENBQUMsSUFBSTtTQUN0QyxDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELHdCQUF3QixDQUFDLEdBQXdDLEVBQUUsTUFBOEI7UUFDL0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQy9JLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQzNDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7U0FDaEMsQ0FBQyxDQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxHQUF3QyxFQUFFLE1BQXdCO1FBQ25GLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixlQUFlLEVBQUUsSUFBSTtZQUNyQixlQUFlLEVBQUUsSUFBSTtZQUNyQixZQUFZLEVBQUUsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3Qix1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLG9CQUFvQixFQUFFLEVBQUU7WUFDeEIsdUJBQXVCLEVBQUUsRUFBRTtZQUMzQix1QkFBdUIsRUFBRSxFQUFFO1lBQzNCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQiwwQkFBMEIsRUFBRSxJQUFJO1NBQ2pDLENBQUMsQ0FBQztRQUVILDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFnQixDQUFDLE9BQU8sQ0FBQzthQUMvQyxJQUFJLENBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDdEMsS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDdEIsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNMLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxHQUF3QztRQUMxRCxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsVUFBVSxFQUFFLElBQUk7WUFDaEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsMEJBQTBCLEVBQUUsSUFBSTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsMkJBQTJCLENBQUMsR0FBd0MsRUFBRSxNQUFpQztRQUNyRyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUUzQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFaEQsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM5RCxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzVDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUMvQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztnQkFFakQsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQztvQkFDNUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUM7aUJBQ3JDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsSUFBSSxvQkFBb0IsRUFBRSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFlBQVk7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0I7SUFFcEIsMEJBQTBCLENBQUMsR0FBd0MsRUFBRSxNQUFnQztRQUNuRyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRSxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRSxrREFBa0Q7UUFDbEQsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksb0JBQW9CLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuSCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUdELHVCQUF1QjtJQUV2Qiw2QkFBNkIsQ0FBQyxHQUF3QyxFQUFFLE1BQW1DO1FBQ3pHLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQ2pFLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQ2pFLGtEQUFrRDtRQUNsRCxJQUFJLG9CQUFvQixFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsSUFBSSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO0lBRXhCLDhCQUE4QixDQUFDLEdBQXdDLEVBQUUsTUFBb0M7UUFDM0csTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsa0RBQWtEO1FBQ2xELElBQUksb0JBQW9CLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFJLG9CQUFvQixLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDL0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsR0FBd0MsRUFBRSxNQUF5QjtRQUNyRixHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVM7YUFDcEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsZ0NBQWdDLENBQUMsR0FBd0MsRUFBRSxNQUFzQztRQUMvRyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLEtBQUs7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUF3QyxFQUFFLE9BQW9CO1FBQ2pGLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4RyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxXQUFXLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNyRCxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUksR0FBd0MsRUFBRSxJQUFPLEVBQUUsU0FBaUI7UUFDN0YsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLFNBQVMsVUFBVSxDQUFDO1FBQ2pELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxTQUFTLFVBQVUsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLENBQW1CLENBQUM7UUFDMUUsSUFBSSxhQUFhLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEQsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0IsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0IsYUFBYSxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixDQUFDLGlCQUFpQixDQUFDLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUM3QyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsYUFBYTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsR0FBd0M7UUFDekQsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxlQUFvQjtRQUM5QyxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELGtHQUFrRztRQUNsRyxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZGLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3BFLGNBQWMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDbkYsY0FBYyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNuRixjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ25GLGNBQWMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDckYsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxlQUFvQjtRQUN6RCxJQUFJLGdCQUFrQyxDQUFDO1FBQ3ZDLFFBQVEsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLEtBQUssbUJBQW1CLENBQUMsNkJBQTZCLENBQUM7WUFDdkQsS0FBSyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7WUFDeEMsS0FBSyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQztZQUNsRCxLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDO1lBQzdDLEtBQUssbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsS0FBSyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUM1QyxLQUFLLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztZQUNyQyxLQUFLLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1lBQzNDLEtBQUssbUJBQW1CLENBQUMsZUFBZSxDQUFDO1lBQ3pDLEtBQUssbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsS0FBSyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUNuRCxLQUFLLG1CQUFtQixDQUFDLG1CQUFtQjtnQkFDMUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUNuRCxLQUFLLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDO1lBQ25ELEtBQUssbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsS0FBSyxtQkFBbUIsQ0FBQyxRQUFRO2dCQUMvQixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzVDLE1BQU07WUFDUjtnQkFDRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzVDLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBSU8scUJBQXFCLENBQUMsaUJBQXNCO1FBQ2xELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25FLHNHQUFzRztRQUN0RyxJQUFJLGlCQUFpQixDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JELGVBQWUsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1lBQ3BELGVBQWUsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQy9DLGVBQWUsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQy9DLGVBQWUsQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1lBQ3ZELGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM1RixlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hILENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZ0NBQWdDLENBQUMsaUJBQXNCO1FBQzdELElBQUksZ0JBQWtDLENBQUM7UUFDdkMsUUFBUSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxLQUFLLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO1lBQ2hELEtBQUsscUJBQXFCLENBQUMsZUFBZTtnQkFDeEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUMvQyxNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQyxLQUFLLHFCQUFxQixDQUFDLG9CQUFvQjtnQkFDN0MsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxPQUFPO2dCQUNoQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzVDLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLE9BQU87Z0JBQ2hDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDNUMsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMsS0FBSztnQkFDOUIsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO2dCQUMxQyxNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxRQUFRO2dCQUNqQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7Z0JBQzdDLE1BQU07WUFDUjtnQkFDRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzVDLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDOytHQWprQlUsZ0JBQWdCO21IQUFoQixnQkFBZ0I7O0FBbUgzQjtJQURDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztpRUFLL0I7QUFHRDtJQURDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztrRUFZaEM7QUFHRDtJQURDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztpRUFLL0I7QUFHRDtJQURDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztxRUFZbkM7QUFHRDtJQURDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztvRUFLbEM7QUFHRDtJQURDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztxRUFhbkM7QUFHRDtJQURDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztvRUFLbEM7QUFHRDtJQURDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQzttRUFLakM7QUFHRDtJQURDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztzRUFLcEM7QUFHRDtJQURDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztzRUFLcEM7QUFHRDtJQURDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDOzJEQW9CdEQ7QUFHRDtJQURDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztpRUFNL0I7QUFHRDtJQURDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzs0REFHMUI7QUFHRDtJQURDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzs0REFJMUI7QUFHRDtJQURDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztrRUFNaEM7QUFHRDtJQURDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO2dFQWlCM0Q7QUFHRDtJQURDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDOytEQU0xRDtBQUdEO0lBREMsTUFBTSxDQUFDLCtCQUErQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7eUVBU3BFO0FBR0Q7SUFEQyxNQUFNLENBQUMsK0JBQStCLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzt5RUFTcEU7QUFHRDtJQURDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO2dFQVMzRDtBQUdEO0lBREMsTUFBTSxDQUFDLGdCQUFnQixDQUFDOzBEQTRCeEI7QUFHRDtJQURDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQzsyREFZekI7QUFHRDtJQURDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQzttRUE2QmpDO0FBSUQ7SUFEQyxNQUFNLENBQUMsd0JBQXdCLENBQUM7a0VBU2hDO0FBS0Q7SUFEQyxNQUFNLENBQUMsMkJBQTJCLENBQUM7cUVBU25DO0FBSUQ7SUFEQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7c0VBUXBDO0FBR0Q7SUFEQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7MkRBT3pCO0FBR0Q7SUFEQyxNQUFNLENBQUMsOEJBQThCLENBQUM7d0VBS3RDO0FBbUNEO0lBREMsTUFBTSxDQUFDLGdCQUFnQixDQUFDOzBEQUt4QjtBQXRkYTtJQURiLFFBQVEsRUFBRTtrQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3FDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7c0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtrQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzZDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7OENBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTs0Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tEQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7a0RBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTttQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzZDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7NkNBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTswQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tEQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7cURBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtxREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tEQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7cURBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtxREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3lDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7d0RBR1Y7QUFoSFUsZ0JBQWdCO0lBL0I1QixLQUFLLENBQXdCO1FBQzVCLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUUsRUFBRTtZQUNaLEtBQUssRUFBRSxDQUFDO1lBQ1IsZUFBZSxFQUFFLElBQUk7WUFFckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFFMUIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQix1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLHVCQUF1QixFQUFFLElBQUk7WUFFN0IsWUFBWSxFQUFFLElBQUk7WUFDbEIsZUFBZSxFQUFFLElBQUk7WUFDckIsZUFBZSxFQUFFLElBQUk7WUFFckIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4Qix1QkFBdUIsRUFBRSxFQUFFO1lBQzNCLHVCQUF1QixFQUFFLEVBQUU7WUFFM0IsV0FBVyxFQUFFLElBQUk7WUFFakIsMEJBQTBCLEVBQUUsSUFBSTtTQUNqQztLQUNGLENBQUM7R0FDVyxnQkFBZ0IsQ0Fra0I1Qjs7NEZBbGtCWSxnQkFBZ0I7a0JBaEM1QixVQUFVO3dKQW1KVCx5QkFBeUIsTUFPekIsMEJBQTBCLE1BYzFCLHlCQUF5QixNQU96Qiw2QkFBNkIsTUFjN0IsNEJBQTRCLE1BTzVCLDZCQUE2QixNQWU3Qiw0QkFBNEIsTUFPNUIsMkJBQTJCLE1BTzNCLDhCQUE4QixNQU85Qiw4QkFBOEIsTUFPOUIsbUJBQW1CLE1Bc0JuQix5QkFBeUIsTUFRekIsb0JBQW9CLE1BS3BCLG9CQUFvQixNQU1wQiwwQkFBMEIsTUFRMUIsd0JBQXdCLE1BbUJ4Qix1QkFBdUIsTUFRdkIsaUNBQWlDLE1BV2pDLGlDQUFpQyxNQVdqQyx3QkFBd0IsTUFXeEIsa0JBQWtCLE1BOEJsQixtQkFBbUIsTUFjbkIsMkJBQTJCLE1BZ0MzQiwwQkFBMEIsTUFhMUIsNkJBQTZCLE1BWTdCLDhCQUE4QixNQVU5QixtQkFBbUIsTUFTbkIsZ0NBQWdDLE1BdUNoQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEZXZpY2VzVmlld01vZGUgfSBmcm9tICcuLi8uLi9lbnVtcy9kZXZpY2VzLXZpZXctbW9kZS5lbnVtJztcbmltcG9ydCB7IFNlbGVjdGVkUm93IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZWxlY3RlZC1yb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBEZXZpY2VEdG8sIERldmljZUV2ZW50RHRvLCBEZXZpY2VSZW1vdGVDb21tYW5kUmVmRHRvLCBEZXZpY2VTdGF0dXNEdG8sIEV2ZW50QWN0aXZpdHlEdG8sXG4gIEZhY2lsaXR5UnBjU2VydmljZVByb3h5LCBMcHJUcmFuc2FjdGlvbkR0bywgT3JkZXJEaXJlY3Rpb24sIFBhcmtlclRpY2tldFR5cGUsIFR5cGVDYXN0RGV2aWNlRXZlbnQsXG4gIFR5cGVDYXN0RXZlbnRBY3Rpdml0eVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgZ2V0TW9tZW50TnVsbGFibGUgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlLnV0aWwnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdERldmljZVN0YXR1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS51dGlsJztcbmltcG9ydCB7IE51bWJlck1hcCwgdG9OdW1iZXJNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgRmFjaWxpdHlTdGF0ZSB9IGZyb20gJy4uL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQge1xuICBDbGVhckRldmljZUFjdGlvbiwgQ2xlYXJEZXZpY2VFdmVudHNFeHBhbmRlZCwgQ2xlYXJEZXZpY2VzQWN0aW9uLCBDbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkLFxuICBDbGVhckxwclRyYW5zYWN0aW9uc0V4cGFuZGVkLCBDbGVhclNlbGVjdGVkUm93LCBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24sIERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbixcbiAgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiwgTG9hZERldmljZUFjdGlvbiwgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgTG9hZERldmljZUV2ZW50c0FjdGlvbixcbiAgTG9hZERldmljZUV2ZW50c0NvbGxhcHNlLCBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCBMb2FkRGV2aWNlc0FjdGlvbiwgTG9hZERldmljZXNCeVR5cGVBY3Rpb24sIExvYWREZXZpY2VTdGF0dXNBY3Rpb24sXG4gIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSwgTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlLCBMb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24sIExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24sXG4gIFNlbGVjdERldmljZUFjdGlvbiwgU2VsZWN0THByVHJhbnNhY3Rpb25zUm93QWN0aW9uLCBTZWxlY3RlZFJvd0FjdGlvbiwgU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQsIFNldERldmljZVN0YXR1c0FjdGlvbixcbiAgU2V0RGV2aWNlVmlld01vZGVBY3Rpb24sIFNldEV2ZW50QWN0aXZpdGllc0V4cGFuZGVkLCBTZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZFxufSBmcm9tICcuL3BhcmstbWFuYWdlci5hY3Rpb25zJztcbmltcG9ydCB7IEFwcE1vZHVsZSwgU3ViTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCB7XG4gIGZsYXQ6IERldmljZUR0b1tdO1xuICBieUlkOiBOdW1iZXJNYXA8RGV2aWNlRHRvPjtcbiAgYnlDb21tSWQ6IE51bWJlck1hcDxEZXZpY2VEdG8+O1xuICBjb3VudDogbnVtYmVyO1xuICBkZXZpY2VzVmlld01vZGU6IERldmljZXNWaWV3TW9kZTtcblxuICBzZWxlY3RlZElkOiBudW1iZXI7XG4gIHNlbGVjdGVkRGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG87XG4gIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBudW1iZXI7XG4gIGRldmljZVJlbW90ZUNvbW1hbmRzOiBEZXZpY2VSZW1vdGVDb21tYW5kUmVmRHRvW107XG5cbiAgZGV2aWNlRXZlbnRzQ29sbGFwc2U6IFRhYmxlRGF0YTxEZXZpY2VFdmVudER0bz47XG4gIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlOiBUYWJsZURhdGE8RXZlbnRBY3Rpdml0eUR0bz47XG4gIGxwclRyYW5zYWN0aW9uc0NvbGxhcHNlOiBUYWJsZURhdGE8THByVHJhbnNhY3Rpb25EdG8+O1xuXG4gIGRldmljZUV2ZW50czogRGV2aWNlRXZlbnREdG9bXTtcbiAgZXZlbnRBY3Rpdml0aWVzOiBFdmVudEFjdGl2aXR5RHRvW107XG4gIGxwclRyYW5zYWN0aW9uczogTHByVHJhbnNhY3Rpb25EdG9bXTtcblxuICBkZXZpY2VFdmVudHNFeHBhbmRlZDogRGV2aWNlRXZlbnREdG9bXTtcbiAgZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ6IEV2ZW50QWN0aXZpdHlEdG9bXTtcbiAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IExwclRyYW5zYWN0aW9uRHRvW107XG5cbiAgLy8gQ3Jvc3MtdGFibGUgbXV0dWFsLWV4Y2x1c2lvbiBtYXJrZXIgKERldmljZUV2ZW50L0RldmljZUFjdGl2aXR5KTpcbiAgLy8gd2hpY2ggdGFibGUgY3VycmVudGx5IG93bnMgcm93IHNlbGVjdGlvbjsgaG9sZHMgbm8gcm93IGRhdGEuXG4gIHNlbGVjdGVkUm93OiBTZWxlY3RlZFJvdztcblxuICAvLyBUaGUgYWN0dWFsIHNlbGVjdGVkIExQUiByb3csIHByZXNlcnZlZCBhY3Jvc3MgdGhlIGRlZmF1bHQ8LT5leHBhbmRlZFxuICAvLyB0YWJsZSByZW1vdW50OyBjbGVhcmVkIG9uIGRldmljZSBjaGFuZ2UuXG4gIHNlbGVjdGVkTHByVHJhbnNhY3Rpb25zUm93OiBMcHJUcmFuc2FjdGlvbkR0bztcbn1cblxuY29uc3QgRVhQQU5ERURfUkVTVUxUX0xJTUlUID0gMTAwMDtcblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncGFya01hbmFnZXInLFxuICBkZWZhdWx0czoge1xuICAgIGZsYXQ6IG51bGwsXG4gICAgYnlJZDoge30sXG4gICAgYnlDb21tSWQ6IHt9LFxuICAgIGNvdW50OiAwLFxuICAgIGRldmljZXNWaWV3TW9kZTogbnVsbCxcblxuICAgIHNlbGVjdGVkSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VQYXJrSWQ6IG51bGwsXG4gICAgZGV2aWNlUmVtb3RlQ29tbWFuZHM6IG51bGwsXG5cbiAgICBkZXZpY2VFdmVudHNDb2xsYXBzZTogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZTogbnVsbCxcblxuICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXM6IG51bGwsXG4gICAgbHByVHJhbnNhY3Rpb25zOiBudWxsLFxuXG4gICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBbXSxcbiAgICBscHJUcmFuc2FjdGlvbnNFeHBhbmRlZDogW10sXG5cbiAgICBzZWxlY3RlZFJvdzogbnVsbCxcblxuICAgIHNlbGVjdGVkTHByVHJhbnNhY3Rpb25zUm93OiBudWxsLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBQYXJrTWFuYWdlclN0YXRlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRldmljZVJwY1NlcnZpY2VQcm94eTogUnBjLkRldmljZVJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5UnBjU2VydmljZVByb3h5OiBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBmbGF0KHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmZsYXQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZXMoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IERldmljZUR0b1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhzdGF0ZS5ieUlkIHx8IHt9KTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYnlDb21tSWQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IE51bWJlck1hcDxEZXZpY2VEdG8+IHtcbiAgICByZXR1cm4gc3RhdGUuYnlDb21tSWQgfHwge307XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGJ5SWQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IE51bWJlck1hcDxEZXZpY2VEdG8+IHtcbiAgICByZXR1cm4gc3RhdGUuYnlJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZGV2aWNlc1ZpZXdNb2RlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VzVmlld01vZGUge1xuICAgIC8vIEFsc28gcmV0dXJucyBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgaGF2bid0IGNoYW5nZSBpdCB5ZXRcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlc1ZpZXdNb2RlIHx8IERldmljZXNWaWV3TW9kZS5HYWxsZXJ5O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZERldmljZUlkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWREZXZpY2Uoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IERldmljZUR0byB7XG4gICAgcmV0dXJuIHN0YXRlLmJ5SWRbc3RhdGUuc2VsZWN0ZWRJZF07XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkRGV2aWNlU3RhdHVzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VTdGF0dXNEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWREZXZpY2VQYXJrSWQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLnNlbGVjdGVkRGV2aWNlUGFya0lkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBjb3VudChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLmNvdW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBldmVudEFjdGl2aXRpZXMoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IEV2ZW50QWN0aXZpdHlEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmV2ZW50QWN0aXZpdGllcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbHByVHJhbnNhY3Rpb25zKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBMcHJUcmFuc2FjdGlvbkR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUubHByVHJhbnNhY3Rpb25zO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBkZXZpY2VFdmVudHMoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IERldmljZUV2ZW50RHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5kZXZpY2VFdmVudHM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZUV2ZW50c0V4cGFuZGVkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VFdmVudER0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlRXZlbnRzRXhwYW5kZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBFdmVudEFjdGl2aXR5RHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5ldmVudEFjdGl2aXRpZXNFeHBhbmRlZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IExwclRyYW5zYWN0aW9uRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5scHJUcmFuc2FjdGlvbnNFeHBhbmRlZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZGV2aWNlRXZlbnRzQ29sbGFwc2Uoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFRhYmxlRGF0YTxEZXZpY2VFdmVudER0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5kZXZpY2VFdmVudHNDb2xsYXBzZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZXZlbnRBY3Rpdml0aWVzQ29sbGFwc2Uoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFRhYmxlRGF0YTxFdmVudEFjdGl2aXR5RHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmV2ZW50QWN0aXZpdGllc0NvbGxhcHNlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZShzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogVGFibGVEYXRhPExwclRyYW5zYWN0aW9uRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmxwclRyYW5zYWN0aW9uc0NvbGxhcHNlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFJvdyhzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogU2VsZWN0ZWRSb3cge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFJvdztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRMcHJUcmFuc2FjdGlvbnNSb3coc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IExwclRyYW5zYWN0aW9uRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRMcHJUcmFuc2FjdGlvbnNSb3c7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZVZpZXdNb2RlQWN0aW9uKVxuICBvblNldERldmljZVZpZXdNb2RlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlVmlld01vZGVBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VzVmlld01vZGU6IGFjdGlvbi52aWV3TW9kZSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50c0NvbGxhcHNlKVxuICBvbkxvYWREZXZpY2VFdmVudHNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgbnVsbCwgbnVsbCxcbiAgICAgIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi5yZXN1bHRMaW1pdCwgMCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGF0YVNldCA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBkZXZpY2VFdmVudHNDb2xsYXBzZToge1xuICAgICAgICAgIHJlc3VsdExpbWl0OiBhY3Rpb24ucmVzdWx0TGltaXQsXG4gICAgICAgICAgZGF0YVNldDogZGF0YVNldC5kYXRhLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvblNldERldmljZUV2ZW50c0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQpIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VFdmVudHNFeHBhbmRlZDogYWN0aW9uLmRhdGFTZXQsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSlcbiAgb25Mb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UpIHtcbiAgICBjb25zdCBldmVudEFjdGl2aXRpZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlQWN0aXZpdGllcyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLFxuICAgICAgbnVsbCwgbnVsbCwgbnVsbCwgYWN0aW9uLnJlc3VsdExpbWl0LCAwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChkYXRhU2V0ID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlOiB7XG4gICAgICAgICAgcmVzdWx0TGltaXQ6IGFjdGlvbi5yZXN1bHRMaW1pdCxcbiAgICAgICAgICBkYXRhU2V0OiBkYXRhU2V0LmRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQpXG4gIG9uU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXRFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBhY3Rpb24uZGF0YVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlKVxuICBvbkxvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGxwclRyYW5zYWN0aW9ucyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eVxuICAgICAgLmdldERldmljZUxwclRyYW5zYWN0aW9ucyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLCBudWxsLCBudWxsLFxuICAgICAgICBudWxsLCBhY3Rpb24ucmVzdWx0TGltaXQsIDAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGRhdGFTZXQgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbHByVHJhbnNhY3Rpb25zQ29sbGFwc2U6IHtcbiAgICAgICAgICByZXN1bHRMaW1pdDogYWN0aW9uLnJlc3VsdExpbWl0LFxuICAgICAgICAgIGRhdGFTZXQ6IGRhdGFTZXQuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZClcbiAgb25TZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IFNldExwclRyYW5zYWN0aW9uc0V4cGFuZGVkKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IGFjdGlvbi5kYXRhU2V0LFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhckRldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvbkNsZWFyRGV2aWNlRXZlbnRzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGRldmljZUV2ZW50c0V4cGFuZGVkOiBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJFdmVudEFjdGl2aXRpZXNFeHBhbmRlZClcbiAgb25DbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBldmVudEFjdGl2aXRpZXNFeHBhbmRlZDogW10sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyTHByVHJhbnNhY3Rpb25zRXhwYW5kZWQpXG4gIG9uQ2xlYXJMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNBY3Rpb24pIHtcbiAgICB0aGlzLnBhdGNoRGV2aWNlcyhjdHgsIG51bGwpO1xuXG4gICAgY29uc3QgYXBwTW9kdWxlOiBBcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGNvbnN0IHN1Yk1vZHVsZTogU3ViTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuc3ViTW9kdWxlKTtcblxuICAgIGxldCBnZXREZXZpY2VzJDogdHlwZW9mIHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldENDRGV2aWNlcztcbiAgICBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuQ2MpIHtcbiAgICAgIGdldERldmljZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0Q0NEZXZpY2VzLmJpbmQodGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkpO1xuICAgIH0gZWxzZSBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuUmVwb3J0cykge1xuICAgICAgZ2V0RGV2aWNlcyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXRSZXBvcnRzRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9IGVsc2UgaWYgKGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkxvdENvbmZpZ3VyYXRpb24gJiYgc3ViTW9kdWxlID09PSBTdWJNb2R1bGUuU2NoZWR1bGVyKSB7XG4gICAgICBnZXREZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldExvdENvbmZpZ3VyYXRpb25zRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RGV2aWNlcyQoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5pc1RsNjApLnBpcGUodGFwKGRldmljZXMgPT5cbiAgICAgICAgdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VzQnlUeXBlQWN0aW9uKVxuICBvbkxvYWREZXZpY2VzQnlUeXBlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNCeVR5cGVBY3Rpb24pIHtcbiAgICBjb25zdCBkZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZXNCeVR5cGUoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5kZXZpY2VUeXBlcyk7XG4gICAgcmV0dXJuIGRldmljZXMkLnBpcGUodGFwKGRldmljZXMgPT4gdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyRGV2aWNlc0FjdGlvbilcbiAgb25DbGVhckRldmljZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIHRoaXMucGF0Y2hEZXZpY2VzKGN0eCwgbnVsbCk7XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdERldmljZUFjdGlvbilcbiAgb25TZWxlY3REZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3REZXZpY2VBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkSWQ6IG51bGwgfSk7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZElkOiBhY3Rpb24uZGV2aWNlSWQgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTZWxlY3RlZERldmljZUFjdGlvbilcbiAgb25Mb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlSWQgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZElkO1xuICAgIGlmIChzZWxlY3RlZERldmljZUlkKSB7XG4gICAgICB0aGlzLm9uTG9hZERldmljZUFjdGlvbihjdHgsIHsgZGV2aWNlSWQ6IHNlbGVjdGVkRGV2aWNlSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlU3RhdHVzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZVN0YXR1c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuXG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRldmljZVN0YXR1cyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldERldmljZVN0YXR1cyhndWlkLCBhY3Rpb24uZGV2aWNlPy5wYXJrSUQsIGFjdGlvbi5kZXZpY2U/LmlkKTtcblxuICAgIHJldHVybiBkZXZpY2VTdGF0dXMkLnBpcGUodGFwKGRldmljZVN0YXR1cyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZGV2aWNlU3RhdHVzPy5kYXRhPy5kYXRhIHx8IGdldERlZmF1bHREZXZpY2VTdGF0dXMoYWN0aW9uLmRldmljZSksXG4gICAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBkZXZpY2VTdGF0dXM/LmRhdGE/LnBhcmtJRCxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXREZXZpY2VTdGF0dXNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25TZXREZXZpY2VTdGF0dXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZ2V0RGVmYXVsdERldmljZVN0YXR1cyhhY3Rpb24uZGV2aWNlKSxcbiAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBhY3Rpb24uZGV2aWNlLnBhcmtJRCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VFdmVudEFjdGl2aXRpZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRGV2aWNlRXZlbnRBY3Rpdml0aWVzQWN0aW9uKSB7XG4gICAgY29uc3QgZXZlbnRBY3Rpdml0aWVzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZUFjdGl2aXRpZXMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIGFjdGlvbi5zZWFyY2hWYWx1ZSwgbnVsbCwgbnVsbCwgYWN0aW9uLnRha2UsIGFjdGlvbi5za2lwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChldmVudEFjdGl2aXRpZXMgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXZlbnRBY3Rpdml0aWVzOiBldmVudEFjdGl2aXRpZXMuZGF0YSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZUxwclRyYW5zYWN0aW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24pIHtcbiAgICBjb25zdCBscHJUcmFuc2FjdGlvbnMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlTHByVHJhbnNhY3Rpb25zKGFjdGlvbi5ndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24uZGV2aWNlSWQsIGdldE1vbWVudE51bGxhYmxlKGFjdGlvbi5zdGFydERhdGUpLFxuICAgICAgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLmVuZERhdGUpLCBudWxsLCBudWxsLCBudWxsLCBhY3Rpb24udGFrZSwgYWN0aW9uLnNraXAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGxwclRyYW5zYWN0aW9ucyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBscHJUcmFuc2FjdGlvbnM6IGxwclRyYW5zYWN0aW9ucy5kYXRhLFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VFdmVudHNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkRGV2aWNlRXZlbnRzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUV2ZW50c0FjdGlvbikge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi50YWtlLCBhY3Rpb24uc2tpcCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGV2aWNlRXZlbnRzID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGRldmljZUV2ZW50czogZGV2aWNlRXZlbnRzLmRhdGEsXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUFjdGlvbilcbiAgb25Mb2FkRGV2aWNlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllczogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uczogbnVsbCxcbiAgICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICAgIGRldmljZVJlbW90ZUNvbW1hbmRzOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzQ29sbGFwc2U6IG51bGwsXG4gICAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uc0NvbGxhcHNlOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgICAgZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ6IFtdLFxuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICAgIHNlbGVjdGVkTHByVHJhbnNhY3Rpb25zUm93OiBudWxsLFxuICAgIH0pO1xuXG4gICAgLy8gd2FpdCBmb3IgZGV2aWNlcyBzdG9yZSB0byBiZSBsb2FkZWQgYmVmb3JlIGxvYWRpbmcgYSBkZXZpY2VcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoUGFya01hbmFnZXJTdGF0ZS5kZXZpY2VzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihkZXZpY2VzID0+IGRldmljZXM/Lmxlbmd0aCA+IDApLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICB0YXAoKGZpbHRlcmVkRGV2aWNlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IGRldmljZSA9IGZpbHRlcmVkRGV2aWNlcy5maW5kKGQgPT4gZC5pZCA9PT0gK2FjdGlvbi5kZXZpY2VJZCk7XG4gICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBMb2FkRGV2aWNlU3RhdHVzQWN0aW9uKGRldmljZSkpO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgQEFjdGlvbihDbGVhckRldmljZUFjdGlvbilcbiAgb25DbGVhckRldmljZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRJZDogbnVsbCxcbiAgICAgIHNlbGVjdGVkRGV2aWNlU3RhdHVzOiBudWxsLFxuICAgICAgc2VsZWN0ZWREZXZpY2VQYXJrSWQ6IG51bGwsXG4gICAgICBldmVudEFjdGl2aXRpZXM6IG51bGwsXG4gICAgICBscHJUcmFuc2FjdGlvbnM6IG51bGwsXG4gICAgICBkZXZpY2VFdmVudHM6IG51bGwsXG4gICAgICBkZXZpY2VSZW1vdGVDb21tYW5kczogbnVsbCxcbiAgICAgIHNlbGVjdGVkTHByVHJhbnNhY3Rpb25zUm93OiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKVxuICBvbkRldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKSB7XG4gICAgY29uc3QgZGV2aWNlSWQgPSBhY3Rpb24uZGV2aWNlU3RhdHVzPy5kZXZpY2VJRDtcbiAgICBjb25zdCBjb21tSUQgPSBhY3Rpb24uZGV2aWNlU3RhdHVzPy5jb21tSUQ7XG5cbiAgICBjb25zdCBkZXZpY2VzQnlJZCA9IGN0eC5nZXRTdGF0ZSgpLmJ5SWQ7XG4gICAgY29uc3QgZGV2aWNlc2J5Q29tbUlkID0gY3R4LmdldFN0YXRlKCkuYnlDb21tSWQ7XG5cbiAgICBpZiAoZGV2aWNlc0J5SWRbZGV2aWNlSWRdKSB7XG4gICAgICBpZiAoIWlzRXF1YWwoZGV2aWNlc0J5SWRbZGV2aWNlSWRdLmRldmljZVN0YXR1cywgYWN0aW9uLmRldmljZVN0YXR1cykpIHtcbiAgICAgICAgY29uc3QgY2xvbmVkRHRvID0gRGV2aWNlU3RhdHVzRHRvLmZyb21KUyhhY3Rpb24uZGV2aWNlU3RhdHVzKTtcbiAgICAgICAgY2xvbmVkRHRvLnR5cGUgPSBkZXZpY2VzQnlJZFtkZXZpY2VJZF0udHlwZTtcbiAgICAgICAgZGV2aWNlc0J5SWRbZGV2aWNlSWRdLmRldmljZVN0YXR1cyA9IGNsb25lZER0bztcbiAgICAgICAgZGV2aWNlc2J5Q29tbUlkW2NvbW1JRF0uZGV2aWNlU3RhdHVzID0gY2xvbmVkRHRvO1xuXG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBieUlkOiBjbG9uZURlZXAoZGV2aWNlc0J5SWQpLFxuICAgICAgICAgIGJ5Q29tbUlkOiBjbG9uZURlZXAoZGV2aWNlc2J5Q29tbUlkKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICBpZiAoc2VsZWN0ZWREZXZpY2VTdGF0dXM/LmRldmljZUlEID09PSBkZXZpY2VJZCkge1xuICAgICAgYWN0aW9uLmRldmljZVN0YXR1cy50eXBlID0gc2VsZWN0ZWREZXZpY2VTdGF0dXMudHlwZTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IGFjdGlvbi5kZXZpY2VTdGF0dXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgRGV2aWNlIEV2ZW50c1xuICBAQWN0aW9uKERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbilcbiAgb25EZXZpY2VFdmVudENoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZERldmljZVBhcmtJZCA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlUGFya0lkO1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlU3RhdHVzID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VTdGF0dXM7XG4gICAgLy8gVE9ETzogY2hhbmdlIHRvIGRldmljZUlkIG9uY2UgU1Agd2lsbCBpbXBsZW1lbnRcbiAgICBpZiAoc2VsZWN0ZWREZXZpY2VTdGF0dXM/LmNvbW1JRCA9PT0gYWN0aW9uLmRldkV2ZW50Py5yZWFkZXJJRCAmJiBzZWxlY3RlZERldmljZVBhcmtJZCA9PT0gYWN0aW9uLmRldkV2ZW50Py5wYXJrSUQpIHtcbiAgICAgIGNvbnN0IGRldmljZUV2ZW50RHRvID0gdGhpcy5wb3B1bGF0ZURldmljZUV2ZW50KGFjdGlvbi5kZXZFdmVudCk7XG4gICAgICB0aGlzLnBhdGNoRGV2aWNlSXRlbShjdHgsIGRldmljZUV2ZW50RHRvLCAnZGV2aWNlRXZlbnRzJyk7XG4gICAgfVxuICB9XG5cblxuICAvLy8gZm9yIERldmljZSBhY3Rpdml0eVxuICBAQWN0aW9uKERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbilcbiAgb25EZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZERldmljZVBhcmtJZCA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlUGFya0lkO1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlU3RhdHVzID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VTdGF0dXM7XG4gICAgLy8gVE9ETzogY2hhbmdlIHRvIGRldmljZUlkIG9uY2UgU1Agd2lsbCBpbXBsZW1lbnRcbiAgICBpZiAoc2VsZWN0ZWREZXZpY2VTdGF0dXM/LmNvbW1JRCA9PT0gYWN0aW9uLmV2ZW50QWN0aXZpdHk/LnJlYWRlcklEICYmIHNlbGVjdGVkRGV2aWNlUGFya0lkID09PSBhY3Rpb24uZXZlbnRBY3Rpdml0eT8ucGFya0lEKSB7XG4gICAgICBjb25zdCBldmVudEFjdGl2aXR5RHRvID0gdGhpcy5wb3B1bGF0ZUV2ZW50QWN0aXZpdHkoYWN0aW9uLmV2ZW50QWN0aXZpdHkpO1xuICAgICAgdGhpcy5wYXRjaERldmljZUl0ZW0oY3R4LCBldmVudEFjdGl2aXR5RHRvLCAnZXZlbnRBY3Rpdml0aWVzJyk7XG4gICAgfVxuICB9XG5cbiAgLy8vIGZvciBMUFIgVHJhbnNhY3Rpb25zXG4gIEBBY3Rpb24oTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbilcbiAgb25McHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlUGFya0lkID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VQYXJrSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICAvLyBUT0RPOiBjaGFuZ2UgdG8gZGV2aWNlSWQgb25jZSBTUCB3aWxsIGltcGxlbWVudFxuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uY29tbUlEID09PSBhY3Rpb24ubHByVHJhbnNhY3Rpb24/LnJlYWRlcklEICYmIHNlbGVjdGVkRGV2aWNlUGFya0lkID09PSBhY3Rpb24ubHByVHJhbnNhY3Rpb24/LnBhcmtJRCkge1xuICAgICAgdGhpcy5wYXRjaERldmljZUl0ZW0oY3R4LCBhY3Rpb24ubHByVHJhbnNhY3Rpb24sICdscHJUcmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdGVkUm93QWN0aW9uKVxuICBvblNlbGVjdGVkUm93QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2VsZWN0ZWRSb3dBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFJvdzoge1xuICAgICAgICB0YWJsZU5hbWU6IGFjdGlvbi5wYXlsb2FkLnRhYmxlTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdExwclRyYW5zYWN0aW9uc1Jvd0FjdGlvbilcbiAgb25TZWxlY3RMcHJUcmFuc2FjdGlvbnNSb3dBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RMcHJUcmFuc2FjdGlvbnNSb3dBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZExwclRyYW5zYWN0aW9uc1JvdzogYWN0aW9uLnZhbHVlXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhdGNoRGV2aWNlcyhjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBkZXZpY2VzOiBEZXZpY2VEdG9bXSkge1xuICAgIGRldmljZXM/LmZvckVhY2goZGV2aWNlID0+IGRldmljZS5kZXZpY2VTdGF0dXMgPSBkZXZpY2UuZGV2aWNlU3RhdHVzID8/IGdldERlZmF1bHREZXZpY2VTdGF0dXMoZGV2aWNlKSk7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgZmxhdDogZGV2aWNlcz8uc29ydCgoYSwgYikgPT4gYS5pZCAtIGIuaWQpLFxuICAgICAgYnlJZDogdG9OdW1iZXJNYXAoZGV2aWNlcyB8fCBbXSwgKGQpID0+IGQuaWQpLFxuICAgICAgYnlDb21tSWQ6IHRvTnVtYmVyTWFwKGRldmljZXMgfHwgW10sIChkKSA9PiBkLmNvbW1JRCksXG4gICAgICBjb3VudDogZGV2aWNlcz8ubGVuZ3RoIHx8IDAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhdGNoRGV2aWNlSXRlbTxUPihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBpdGVtOiBULCBpdGVtc05hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxhcHNlSXRlbXNOYW1lID0gYCR7aXRlbXNOYW1lfUNvbGxhcHNlYDtcbiAgICBjb25zdCBleHBhbmRlZEl0ZW1zTmFtZSA9IGAke2l0ZW1zTmFtZX1FeHBhbmRlZGA7XG4gICAgY29uc3QgY29sbGFwc2VJdGVtcyA9IGN0eC5nZXRTdGF0ZSgpW2NvbGxhcHNlSXRlbXNOYW1lXSBhcyBUYWJsZURhdGE8YW55PjtcbiAgICBsZXQgZXhwYW5kZWRJdGVtcyA9IGN0eC5nZXRTdGF0ZSgpW2V4cGFuZGVkSXRlbXNOYW1lXTtcblxuICAgIGlmIChjb2xsYXBzZUl0ZW1zICE9PSBudWxsKSB7XG4gICAgICBjb2xsYXBzZUl0ZW1zLmRhdGFTZXQgPSBbLi4uY29sbGFwc2VJdGVtcy5kYXRhU2V0LnNsaWNlKDAsIGNvbGxhcHNlSXRlbXMucmVzdWx0TGltaXQgLSAxKV07XG4gICAgICBjb2xsYXBzZUl0ZW1zLmRhdGFTZXQudW5zaGlmdChpdGVtKTtcbiAgICB9XG5cbiAgICBpZiAoZXhwYW5kZWRJdGVtcyAhPT0gbnVsbCkge1xuICAgICAgZXhwYW5kZWRJdGVtcyA9IFsuLi5leHBhbmRlZEl0ZW1zXS5zbGljZSgwLCBFWFBBTkRFRF9SRVNVTFRfTElNSVQgLSAxKTtcbiAgICAgIGV4cGFuZGVkSXRlbXMudW5zaGlmdChpdGVtKTtcbiAgICB9XG5cbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBbY29sbGFwc2VJdGVtc05hbWVdOiBjbG9uZURlZXAoY29sbGFwc2VJdGVtcyksXG4gICAgICBbZXhwYW5kZWRJdGVtc05hbWVdOiBleHBhbmRlZEl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkUm93KVxuICBvbkNsZWFyU2VsZWN0ZWRSb3coY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkUm93OiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZURldmljZUV2ZW50KGRldmljZUV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc3QgZGV2aWNlRXZlbnREdG8gPSBEZXZpY2VFdmVudER0by5mcm9tSlMoZGV2aWNlRXZlbnREYXRhKTtcblxuICAgIC8vIGJhY2t3YXJkcyAtIGZyb20gOS4zLjIgdGhlIG1hcHBpbmcgZnJvbSBEZXZpY2VFdmVudENvcmUgdG8gRGV2aWNlRXZlbnREdG8gd2lsbCBiZSBpbiB0aGUgY2xpZW50XG4gICAgaWYgKGRldmljZUV2ZW50RGF0YS5wYXJrZXJUaWNrZXRUeXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRldmljZUV2ZW50RHRvLnBhcmtlclRpY2tldFR5cGUgPSB0aGlzLmdldERldmljZUV2ZW50UGFya2VyVGlja2V0VHlwZShkZXZpY2VFdmVudERhdGEpO1xuICAgICAgZGV2aWNlRXZlbnREdG8udGlja2V0TnVtID0gdGhpcy5HZXRUaWNrZXROdW0oZGV2aWNlRXZlbnREdG8ucGFya2VyVGlja2V0VHlwZSwgZGV2aWNlRXZlbnREdG8udmFsdWUxKTtcbiAgICB9XG4gICAgaWYgKGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZT8ubW9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUubW9kZSA9IGRldmljZUV2ZW50RGF0YS5ldmVudFR5cGUuZXZlbnRUeXBlO1xuICAgICAgZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlLnZhbHVlMV9EZXNjcmlwdGlvbiA9IGRldmljZUV2ZW50RGF0YS5ldmVudFR5cGUudmFsdWUxX0RpcztcbiAgICAgIGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZS52YWx1ZTJfRGVzY3JpcHRpb24gPSBkZXZpY2VFdmVudERhdGEuZXZlbnRUeXBlLnZhbHVlMl9EaXM7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUudmFsdWUzX0Rlc2NyaXB0aW9uID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS52YWx1ZTNfRGlzO1xuICAgICAgZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlLnZhbHVlNF9EZXNjcmlwdGlvbiA9IGRldmljZUV2ZW50RGF0YS5ldmVudFR5cGUudmFsdWU0X0RpcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGV2aWNlRXZlbnREdG87XG4gIH1cblxuICBwcml2YXRlIGdldERldmljZUV2ZW50UGFya2VyVGlja2V0VHlwZShkZXZpY2VFdmVudERhdGE6IGFueSk6IFBhcmtlclRpY2tldFR5cGUge1xuICAgIGxldCBwYXJrZXJUaWNrZXRUeXBlOiBQYXJrZXJUaWNrZXRUeXBlO1xuICAgIHN3aXRjaCAoZGV2aWNlRXZlbnREYXRhLmV2ZW50SUQpIHtcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DYW5jZWxsZWRUaWNrZXRQYXltZW50UHJvY2VzczpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5OZXdFbnRyeVRpY2tldDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5UaWNrZXRQYXltZW50Q2FsY3VsYXRpb246XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuVGlja2V0V2l0aE5vUGF5bWVudDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DaGFyZ2VTZW50RnJvbVNlcnZlcjpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DYXNoYmFja1dhc1ByaW50ZWQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuTFBSTWlzbWF0Y2g6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQWNjZXB0RW50cnlUaWNrZXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuRGVueUVudHJ5VGlja2V0OlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkRlbnlFbnRyeVRpY2tldEVycm9yOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNhckxlZnRMb29wVGlja2V0UmVqZWN0ZWQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuVGlja2V0RGV0YWlsc0NoYW5nZTpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DcmVkaXRUcmFuc2FjdGlvbkFjY2VwdGVkOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNyZWRpdFRyYW5zYWN0aW9uUmVqZWN0ZWQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQ3JlZGl0UHJvY2Vzc1RpbWVvdXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuU3RpY2tlcnM6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLlBheW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuVW5rbm93bjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmtlclRpY2tldFR5cGU7XG4gIH1cblxuICBwcml2YXRlIEdldFRpY2tldE51bSA9IChwYXJrZXJUaWNrZXRUeXBlOiBQYXJrZXJUaWNrZXRUeXBlLCB2YWx1ZTogbnVtYmVyKTogbnVtYmVyID0+IHBhcmtlclRpY2tldFR5cGUgIT0gUGFya2VyVGlja2V0VHlwZS5Vbmtub3duID8gdmFsdWUgOiBudWxsO1xuXG4gIHByaXZhdGUgcG9wdWxhdGVFdmVudEFjdGl2aXR5KGV2ZW50QWN0aXZpdHlEYXRhOiBhbnkpIHtcbiAgICBjb25zdCBldmVudEFjdGl2dHlEdG8gPSBFdmVudEFjdGl2aXR5RHRvLmZyb21KUyhldmVudEFjdGl2aXR5RGF0YSk7XG4gICAgLy8gYmFja3dhcmRzIC0gZnJvbSA5LjMuMiB0aGUgbWFwcGluZyBmcm9tIEV2ZW50QWN0aXZpdHlDb3JlIHRvIEV2ZW50QWN0aXZpdHlEdG8gd2lsbCBiZSBpbiB0aGUgY2xpZW50XG4gICAgaWYgKGV2ZW50QWN0aXZpdHlEYXRhLnBhcmtlclRpY2tldFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXZlbnRBY3RpdnR5RHRvLmRlc2NyaXB0aW9uID0gZXZlbnRBY3Rpdml0eURhdGEuZGlzO1xuICAgICAgZXZlbnRBY3RpdnR5RHRvLmRhdGUgPSBldmVudEFjdGl2aXR5RGF0YS5uRGF0ZTtcbiAgICAgIGV2ZW50QWN0aXZ0eUR0by50aW1lID0gZXZlbnRBY3Rpdml0eURhdGEublRpbWU7XG4gICAgICBldmVudEFjdGl2dHlEdG8uZGF0ZVRpbWUgPSBldmVudEFjdGl2aXR5RGF0YS5uRGF0ZVRpbWU7XG4gICAgICBldmVudEFjdGl2dHlEdG8ucGFya2VyVGlja2V0VHlwZSA9IHRoaXMuZ2V0RXZlbnRBY3Rpdml0eVBhcmtlclRpY2tldFR5cGUoZXZlbnRBY3Rpdml0eURhdGEpO1xuICAgICAgZXZlbnRBY3RpdnR5RHRvLnRpY2tldElkID0gdGhpcy5HZXRUaWNrZXROdW0oZXZlbnRBY3RpdnR5RHRvLnBhcmtlclRpY2tldFR5cGUsIGV2ZW50QWN0aXZpdHlEYXRhLnJvd0l0ZW1EYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnRBY3RpdnR5RHRvO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudEFjdGl2aXR5UGFya2VyVGlja2V0VHlwZShldmVudEFjdGl2aXR5RGF0YTogYW55KTogUGFya2VyVGlja2V0VHlwZSB7XG4gICAgbGV0IHBhcmtlclRpY2tldFR5cGU6IFBhcmtlclRpY2tldFR5cGU7XG4gICAgc3dpdGNoIChldmVudEFjdGl2aXR5RGF0YS5pbWdDZWxsVGFnKSB7XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5DcmVkaXRDYXJkTm90RW5hYmxlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LkNyZWRpdENhcmRFcnJvcjpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuQ3JlZGl0Q2FyZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5UcmFuc2llbnRPcGVuVGlja2V0OlxuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuVHJhbnNpZW50Q2xvc2VUaWNrZXQ6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLlRyYW5zaWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5Nb250aGx5OlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5Nb250aGx5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LlBheW1lbnQ6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLlBheW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuR3Vlc3Q6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLkd1ZXN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LkVWb3VjaGVyOlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5FVm91Y2hlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5Vbmtub3duO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcGFya2VyVGlja2V0VHlwZTtcbiAgfVxufVxuIl19