@bitgo-beta/statics 15.1.1-beta.1148 → 15.1.1-beta.1149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"tokenConfig.d.ts","sourceRoot":"","sources":["../../src/tokenConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenConfig.d.ts","sourceRoot":"","sources":["../../src/tokenConfig.ts"],"names":[],"mappings":"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"}
@@ -878,6 +878,9 @@ function getFormattedTokenConfigForCoin(coin) {
878
878
  else if (coin instanceof account_1.VetNFTCollection) {
879
879
  return getVetNFTCollectionConfig(coin);
880
880
  }
881
+ else if (coin instanceof account_1.CoredaoERC20Token) {
882
+ return getCoredaoTokenConfig(coin);
883
+ }
881
884
  return undefined;
882
885
  }
883
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK3ZDQSx3RUE4REM7QUE3ekNELHVDQWdDbUI7QUFDbkIsaUNBQXdEO0FBQ3hELG1DQUFnQztBQUNoQyx5Q0FBbUQ7QUFDbkQsK0JBQWdDO0FBNldoQyxTQUFTLG1CQUFtQixDQUFDLElBQWU7SUFDMUMsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQzlCLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDakIsTUFBTTtRQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDM0IsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM1QixRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ25CLE1BQU07UUFDUixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDaEMsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUMzQixRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ25CLE1BQU07UUFDUjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDbkUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDeEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckQsSUFBSSxJQUFJLFlBQVksbUJBQVMsRUFBRSxDQUFDO1FBQzlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFSSxRQUFBLGFBQWEsR0FBRztJQUMzQixlQUFlLEVBQUUsVUFBVSxFQUFFLGdEQUFnRDtJQUM3RSxlQUFlLEVBQUUsV0FBVyxFQUFFLGtEQUFrRDtJQUNoRixlQUFlLEVBQUUsYUFBYSxFQUFFLG1EQUFtRDtJQUNuRixlQUFlLEVBQUUsTUFBTSxFQUFFLDZDQUE2QztJQUN0RSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsMENBQTBDO0lBQzdFLGVBQWUsRUFBRSxLQUFLLEVBQUUsOENBQThDO0lBQ3RFLGVBQWUsRUFBRSxRQUFRLEVBQUUscURBQXFEO0lBQ2hGLDBCQUEwQixFQUFFLE1BQU0sRUFBRSw4RkFBOEY7SUFDbEksY0FBYyxFQUFFLGdCQUFnQixFQUFFLCtCQUErQjtDQUNsRSxDQUFDO0FBRUYsU0FBUyxxQkFBcUIsQ0FBQyxJQUFpQjtJQUM5QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELHFFQUFxRTtBQUNyRSxNQUFNLHlCQUF5QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQzFELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLHFCQUFXLEVBQUUsQ0FBQztRQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFhO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsS0FBSztRQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSztRQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQVEsQ0FBQyxJQUFJO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBQ0QsaUVBQWlFO0FBQ2pFLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDckQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXFCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDbkQsSUFBSSxJQUFJLFlBQVksYUFBTyxFQUFFLENBQUM7UUFDNUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsa0JBQWtCLENBQUMsSUFBYztJQUN4QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFDbEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQ25FLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDdkQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXNCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDcEQsSUFBSSxJQUFJLFlBQVksa0JBQVEsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLGlCQUFpQixDQUFDLElBQWE7SUFDdEMsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ2hFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFhO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDaEUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMvQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ25ELElBQUksSUFBSSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxtQkFBbUIsQ0FBQyxJQUFvQjtJQUMvQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQ25FLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDeEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckQsSUFBSSxJQUFJLFlBQVksd0JBQWMsRUFBRSxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLHFCQUFxQixDQUFDLElBQWtEO0lBQy9FLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUN4RSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDbkUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUMxRCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBeUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN2RCxJQUNFLElBQUksWUFBWSwyQkFBaUI7UUFDakMsQ0FBQyxDQUFDLElBQUksWUFBWSxvQkFBVSxJQUFJLElBQUksWUFBWSxxQkFBVyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxpQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUNuRyxDQUFDO1FBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMscUJBQXFCLENBQUMsSUFBOEI7SUFDM0QsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQ3hFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQzFELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksQ0FBQyxJQUFJLFlBQVksb0JBQVUsSUFBSSxJQUFJLFlBQVkscUJBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssaUJBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0RyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQjtJQUM1QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFDakUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQ25FLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDekQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXlCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDdkQsSUFBSSxJQUFJLFlBQVksb0JBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGlCQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsb0JBQW9CLENBQUMsSUFBc0I7SUFDbEQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3RFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHdCQUF3QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3pELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLDBCQUFnQixFQUFFLENBQUM7UUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsbUJBQW1CLENBQUMsSUFBcUI7SUFDaEQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQ3BFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHVCQUF1QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3hELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLHlCQUFlLEVBQUUsQ0FBQztRQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxtQkFBbUIsQ0FBQyxJQUFxQjtJQUNoRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQ25FLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDeEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXlCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDdkQsSUFBSSxJQUFJLFlBQVkseUJBQWUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLGtCQUFrQixDQUFDLElBQW9CO0lBQzlDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztRQUNsRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDbkUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN2RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBeUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN2RCxJQUFJLElBQUksWUFBWSx3QkFBYyxFQUFFLENBQUM7UUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMscUJBQXFCLENBQUMsSUFBdUI7SUFDcEQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQ3hFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQzFELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLDJCQUFpQixFQUFFLENBQUM7UUFDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsbUJBQW1CLENBQUMsSUFBcUI7SUFDaEQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQ3BFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHVCQUF1QixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3hELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF5QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3ZELElBQUksSUFBSSxZQUFZLHlCQUFlLEVBQUUsQ0FBQztRQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFhO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1FBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtRQUNqQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ25ELElBQUksSUFBSSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFjO0lBQ3hDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztRQUNsRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNNLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDOUQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXNCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDcEQsSUFBSSxJQUFJLFlBQVksa0JBQVEsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFOSSxRQUFBLHNCQUFzQiwwQkFNMUI7QUFFVCxTQUFTLGtCQUFrQixDQUFDLElBQWlCO0lBQzNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztRQUNsRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtRQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO0tBQ3RDLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN2RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBc0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNwRCxJQUFJLElBQUksWUFBWSxxQkFBVyxFQUFFLENBQUM7UUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsaUJBQWlCLENBQUMsSUFBYztJQUN2QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDdEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXFCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDbkQsSUFBSSxJQUFJLFlBQVksa0JBQVEsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLGlCQUFpQixDQUFDLElBQW1CO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDbkUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN0RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBcUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNuRCxJQUFJLElBQUksWUFBWSx1QkFBYSxFQUFFLENBQUM7UUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsaUJBQWlCLENBQUMsSUFBYTtJQUN0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtRQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7UUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1FBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtRQUNuQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ25ELElBQUksSUFBSSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFhO0lBQ3RDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtLQUN0QyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDdEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXFCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDbkQsSUFBSSxJQUFJLFlBQVksaUJBQU8sRUFBRSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLGlCQUFpQixDQUFDLElBQWE7SUFDdEMsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ2hFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7UUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN0RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBcUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNuRCxJQUFJLElBQUksWUFBWSxpQkFBTyxFQUFFLENBQUM7UUFDNUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsbUJBQW1CLENBQUMsSUFBZTtJQUMxQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtRQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN4RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBdUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNyRCxJQUFJLElBQUksWUFBWSxtQkFBUyxFQUFFLENBQUM7UUFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsaUJBQWlCLENBQUMsSUFBYTtJQUN0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ25ELElBQUksSUFBSSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsU0FBUyx5QkFBeUIsQ0FBQyxJQUFzQjtJQUN2RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtRQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLElBQXNCO0lBQ3ZELE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1FBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDOUQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDM0QsSUFBSSxJQUFJLFlBQVksMEJBQWdCLEVBQUUsQ0FBQztRQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUM5RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBNkIsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUMzRCxJQUFJLElBQUksWUFBWSwwQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLG1CQUFtQixDQUFDLElBQWdCO0lBQzNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBSyxFQUFFLEVBQUUsQ0FDeEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckQsSUFBSSxJQUFJLFlBQVksb0JBQVUsRUFBRSxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLG9CQUFvQixDQUFDLElBQWlCO0lBQzdDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztRQUNsRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDbkIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1FBQ3JDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7UUFDL0MsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUN6RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN0RCxJQUFJLElBQUksWUFBWSxxQkFBVyxFQUFFLENBQUM7UUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULFNBQVMsaUJBQWlCLENBQUMsSUFBYztJQUN2QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtRQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBYSxHQUFHLGFBQUssRUFBRSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQUksRUFBRSxFQUFFO0lBQ25ELElBQUksSUFBSSxZQUFZLGtCQUFRLEVBQUUsQ0FBQztRQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRVQsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLGFBQWEsR0FBRyxhQUFLLEVBQUUsRUFBRSxDQUM5RCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN0RCxJQUFJLElBQUksWUFBWSwwQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFVCxTQUFTLG9CQUFvQixDQUFDLElBQXNCO0lBQ2xELE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO1FBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtRQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRU0sTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQU8sR0FBRyxhQUFLLEVBQVUsRUFBRTtJQUM1RCxNQUFNLDBCQUEwQixHQUFHLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE1BQU0sMEJBQTBCLEdBQUcsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsT0FBTztRQUNMLE9BQU8sRUFBRTtZQUNQLEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDdkYsSUFBSSxFQUFFLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7YUFDdkY7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7YUFDMUY7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLElBQUEsOEJBQXNCLEVBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUMxQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FDeEU7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN6RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDckYsY0FBYyxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxhQUFxQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FDL0U7YUFDRjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN6RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDckYsY0FBYyxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxhQUFxQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FDL0U7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUM5RjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUN2RixJQUFJLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsSUFBQSw4QkFBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQzFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUN4RTthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQzFGO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQzFGO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3pGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENB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QUUsQ0FBQztRQUNwQyxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSwwQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbGdvQ29pbixcbiAgQXB0Q29pbixcbiAgQXB0TkZUQ29sbGVjdGlvbixcbiAgQXJiZXRoRVJDMjBUb2tlbixcbiAgQXZheEVSQzIwVG9rZW4sXG4gIEJlcmFFUkMyMFRva2VuLFxuICBCc2NDb2luLFxuICBDZWxvQ29pbixcbiAgQ29yZWRhb0VSQzIwVG9rZW4sXG4gIENvc21vc0NoYWluVG9rZW4sXG4gIEVvc0NvaW4sXG4gIEVyYzExNTVDb2luLFxuICBFcmMyMENvaW4sXG4gIEVyYzcyMUNvaW4sXG4gIEhlZGVyYVRva2VuLFxuICBOZXAxNDFUb2tlbixcbiAgT3BldGhFUkMyMFRva2VuLFxuICBQb2x5Z29uRVJDMjBUb2tlbixcbiAgU2lwMTBUb2tlbixcbiAgU29sQ29pbixcbiAgU3RlbGxhckNvaW4sXG4gIFN1aUNvaW4sXG4gIFRhb0NvaW4sXG4gIFBvbHl4Q29pbixcbiAgVHJvbkVyYzIwQ29pbixcbiAgVmV0VG9rZW4sXG4gIFdvcmxkRVJDMjBUb2tlbixcbiAgWHJwQ29pbixcbiAgWmtldGhFUkMyMFRva2VuLFxuICBWZXRORlRDb2xsZWN0aW9uLFxuICBBZGFUb2tlbixcbn0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IENvaW5GYW1pbHksIENvaW5LaW5kLCBCYXNlQ29pbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgTmV0d29ya3MsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBPZmNDb2luIH0gZnJvbSAnLi9vZmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VUb2tlbkNvbmZpZyB7XG4gIGNvaW46IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTmV0d29ya0NvbmZpZyBleHRlbmRzIEJhc2VUb2tlbkNvbmZpZyB7XG4gIG5ldHdvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnIGV4dGVuZHMgQmFzZU5ldHdvcmtDb25maWcge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBdmF4Y1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIENlbG9Ub2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBFdGhMaWtlVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRW9zVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnICYge1xuICBjb250cmFjdE5hbWU6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRXJjMjBUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBUcnhUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBTdGVsbGFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IHR5cGUgU29sVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWRhVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgcG9saWN5SWQ6IHN0cmluZztcbiAgYXNzZXROYW1lOiBzdHJpbmc7XG4gIHVuaXF1ZUFzc2V0SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFsZ29Ub2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBhbGlhcz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9mY1Rva2VuQ29uZmlnID0gQmFzZVRva2VuQ29uZmlnICYge1xuICBiYWNraW5nQ29pbjogc3RyaW5nO1xuICBpc0ZpYXQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBIYmFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgbm9kZUFjY291bnRJZDogc3RyaW5nO1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgWHJwVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgaXNzdWVyQWRkcmVzczogc3RyaW5nO1xuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgZG9tYWluPzogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFN1aVRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIHBhY2thZ2VJZDogc3RyaW5nO1xuICBtb2R1bGU6IHN0cmluZztcbiAgc3ltYm9sOiBzdHJpbmc7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQXB0VG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgYXNzZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQXB0TkZUQ29sbGVjdGlvbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBuZnRDb2xsZWN0aW9uSWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpcDEwVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgYXNzZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVGFvVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgc3VibmV0SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBvbHl4VG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgdGlja2VyOiBzdHJpbmc7XG4gIGFzc2V0SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE5lcDE0MVRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICBzdG9yYWdlRGVwb3NpdEFtb3VudDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVmV0VG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWZXRORlRDb2xsZWN0aW9uQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIG5mdENvbGxlY3Rpb25JZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29zbW9zVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgZGVub206IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRva2VuQ29uZmlnID1cbiAgfCBFcmMyMFRva2VuQ29uZmlnXG4gIHwgU3RlbGxhclRva2VuQ29uZmlnXG4gIHwgT2ZjVG9rZW5Db25maWdcbiAgfCBDZWxvVG9rZW5Db25maWdcbiAgfCBFdGhMaWtlVG9rZW5Db25maWdcbiAgfCBFb3NUb2tlbkNvbmZpZ1xuICB8IEF2YXhjVG9rZW5Db25maWdcbiAgfCBTb2xUb2tlbkNvbmZpZ1xuICB8IEhiYXJUb2tlbkNvbmZpZ1xuICB8IEFkYVRva2VuQ29uZmlnXG4gIHwgQWxnb1Rva2VuQ29uZmlnXG4gIHwgVHJ4VG9rZW5Db25maWdcbiAgfCBYcnBUb2tlbkNvbmZpZ1xuICB8IFN1aVRva2VuQ29uZmlnXG4gIHwgQXB0VG9rZW5Db25maWdcbiAgfCBBcHRORlRDb2xsZWN0aW9uQ29uZmlnXG4gIHwgU2lwMTBUb2tlbkNvbmZpZ1xuICB8IE5lcDE0MVRva2VuQ29uZmlnXG4gIHwgQ29zbW9zVG9rZW5Db25maWdcbiAgfCBWZXRUb2tlbkNvbmZpZ1xuICB8IFZldE5GVENvbGxlY3Rpb25Db25maWdcbiAgfCBUYW9Ub2tlbkNvbmZpZ1xuICB8IFBvbHl4VG9rZW5Db25maWc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5zIHtcbiAgYml0Y29pbjoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBFcmMyMFRva2VuQ29uZmlnW107XG4gICAgICBuZnRzOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb25laXVtOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXJiZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgb3BldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBjb3JlZGFvOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgd29ybGQ6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHRyeDoge1xuICAgICAgdG9rZW5zOiBUcnhUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgeHJwOiB7XG4gICAgICB0b2tlbnM6IFhycFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB6a2V0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHN1aToge1xuICAgICAgdG9rZW5zOiBTdWlUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdGFvOiB7XG4gICAgICB0b2tlbnM6IFRhb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBwb2x5eDoge1xuICAgICAgdG9rZW5zOiBQb2x5eFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBiZXJhOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXB0OiB7XG4gICAgICB0b2tlbnM6IEFwdFRva2VuQ29uZmlnW107XG4gICAgICBuZnRDb2xsZWN0aW9uczogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc3R4OiB7XG4gICAgICB0b2tlbnM6IFNpcDEwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG5lYXI6IHtcbiAgICAgIHRva2VuczogTmVwMTQxVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHZldDoge1xuICAgICAgdG9rZW5zOiBWZXRUb2tlbkNvbmZpZ1tdO1xuICAgICAgbmZ0Q29sbGVjdGlvbnM6IFZldE5GVENvbGxlY3Rpb25Db25maWdbXTtcbiAgICB9O1xuICAgIGNvc21vczoge1xuICAgICAgdG9rZW5zOiBDb3Ntb3NUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gIH07XG4gIHRlc3RuZXQ6IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogRXJjMjBUb2tlbkNvbmZpZ1tdO1xuICAgICAgbmZ0czogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB4bG06IHtcbiAgICAgIHRva2VuczogU3RlbGxhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhbGdvOiB7XG4gICAgICB0b2tlbnM6IEFsZ29Ub2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgb2ZjOiB7XG4gICAgICB0b2tlbnM6IE9mY1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBjZWxvOiB7XG4gICAgICB0b2tlbnM6IENlbG9Ub2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgZW9zOiB7XG4gICAgICB0b2tlbnM6IEVvc1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhdmF4Yzoge1xuICAgICAgdG9rZW5zOiBBdmF4Y1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBwb2x5Z29uOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc29uZWl1bToge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFyYmV0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG9wZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc29sOiB7XG4gICAgICB0b2tlbnM6IFNvbFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IEhiYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IEFkYVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB0cng6IHtcbiAgICAgIHRva2VuczogVHJ4VG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhycDoge1xuICAgICAgdG9rZW5zOiBYcnBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgemtldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzdWk6IHtcbiAgICAgIHRva2VuczogU3VpVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHRhbzoge1xuICAgICAgdG9rZW5zOiBUYW9Ub2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgcG9seXg6IHtcbiAgICAgIHRva2VuczogUG9seXhUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYmVyYToge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNvcmVkYW86IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB3b3JsZDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFwdDoge1xuICAgICAgdG9rZW5zOiBBcHRUb2tlbkNvbmZpZ1tdO1xuICAgICAgbmZ0Q29sbGVjdGlvbnM6IEFwdE5GVENvbGxlY3Rpb25Db25maWdbXTtcbiAgICB9O1xuICAgIHN0eDoge1xuICAgICAgdG9rZW5zOiBTaXAxMFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBuZWFyOiB7XG4gICAgICB0b2tlbnM6IE5lcDE0MVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB2ZXQ6IHtcbiAgICAgIHRva2VuczogVmV0VG9rZW5Db25maWdbXTtcbiAgICAgIG5mdENvbGxlY3Rpb25zOiBWZXRORlRDb2xsZWN0aW9uQ29uZmlnW107XG4gICAgfTtcbiAgICBjb3Ntb3M6IHtcbiAgICAgIHRva2VuczogQ29zbW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFtc1Rva2VuQ29uZmlnIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBmYW1pbHk6IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBhc3NldDogc3RyaW5nO1xuICBmZWF0dXJlcz86IHN0cmluZ1tdO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgbmV0d29yaz86IHVua25vd247XG4gIHByaW1hcnlLZXlDdXJ2ZT86IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICB0b2tlbkFkZHJlc3M/OiBzdHJpbmc7XG4gIG5mdENvbGxlY3Rpb25JZD86IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmc7XG4gIGNvbnRyYWN0TmFtZT86IHN0cmluZztcbiAgdG9rZW5JZD86IHN0cmluZztcbiAgcGFja2FnZUlkPzogc3RyaW5nO1xuICBtb2R1bGU/OiBzdHJpbmc7XG4gIHN5bWJvbD86IHN0cmluZztcbiAgaXNzdWVyQWRkcmVzcz86IHN0cmluZztcbiAgY3VycmVjbnljb2RlPzogc3RyaW5nO1xuICBkb21haW4/OiBzdHJpbmc7XG4gIGFzc2V0SWQ/OiBzdHJpbmc7XG4gIGRlbm9tPzogc3RyaW5nO1xuICBpc1Rva2VuOiBib29sZWFuO1xuICBiYXNlVW5pdD86IHN0cmluZztcbiAga2luZD86IHN0cmluZztcbiAgc3VibmV0SWQ/OiBzdHJpbmc7XG4gIHRpY2tlcj86IHN0cmluZztcbiAgcHJvZ3JhbUlkPzogc3RyaW5nO1xuICBhZGRyZXNzQ29pbj86IHN0cmluZztcbiAgYXNzZXROYW1lPzogc3RyaW5nO1xuICB1bmlxdWVBc3NldElkPzogc3RyaW5nO1xuICBwb2xpY3lJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmltbWVkQW1zTmV0d29ya0NvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHJpbW1lZEFtc1Rva2VuQ29uZmlnIGV4dGVuZHMgT21pdDxBbXNUb2tlbkNvbmZpZywgJ2ZlYXR1cmVzJyB8ICduZXR3b3JrJz4ge1xuICBuZXR3b3JrOiBUcmltbWVkQW1zTmV0d29ya0NvbmZpZztcbiAgZXhjbHVkZWRGZWF0dXJlcz86IHN0cmluZ1tdO1xuICBhZGRpdGlvbmFsRmVhdHVyZXM/OiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gZ2V0RXJjMjBUb2tlbkNvbmZpZyhjb2luOiBFcmMyMENvaW4pOiBFcmMyMFRva2VuQ29uZmlnIHtcbiAgbGV0IGJhc2VDb2luOiBzdHJpbmc7XG4gIHN3aXRjaCAoY29pbi5uZXR3b3JrLm5hbWUpIHtcbiAgICBjYXNlIE5ldHdvcmtzLm1haW4uZXRoZXJldW0ubmFtZTpcbiAgICAgIGJhc2VDb2luID0gJ2V0aCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE5ldHdvcmtzLnRlc3Qua292YW4ubmFtZTpcbiAgICAgIGJhc2VDb2luID0gJ3RldGgnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOZXR3b3Jrcy50ZXN0LmdvZXJsaS5uYW1lOlxuICAgICAgYmFzZUNvaW4gPSAnZ3RldGgnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOZXR3b3Jrcy50ZXN0LmhvbGVza3kubmFtZTpcbiAgICBjYXNlIE5ldHdvcmtzLnRlc3QuaG9vZGkubmFtZTpcbiAgICAgIGJhc2VDb2luID0gJ2h0ZXRoJztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVyYzIwIHRva2VuICR7Y29pbi5uYW1lfSBoYXMgYW4gdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICB9XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGJhc2VDb2luLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5cbi8vIEdldCB0aGUgbGlzdCBvZiBFUkMtMjAgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBnZXRGb3JtYXR0ZWRFcmMyMFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEVyYzIwVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgRXJjMjBDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRFcmMyMFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5leHBvcnQgY29uc3QgZXRoR2FzQ29uZmlncyA9IHtcbiAgbWluaW11bUdhc1ByaWNlOiAxMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDEgR3dlaSlcbiAgZGVmYXVsdEdhc1ByaWNlOiAyMDAwMDAwMDAwMCwgLy8gZGVmYXVsdCBnYXMgcHJpY2UgaWYgZXN0aW1hdGlvbiBmYWlscyAoMjAgR3dlaSlcbiAgbWF4aW11bUdhc1ByaWNlOiAyNTAwMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDI1MDAgR3dlaSlcbiAgZGVmYXVsdEdhc0xpbWl0OiA1MDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgY29udHJhY3Qgc2VuZFxuICBkZWZhdWx0R2FzTGltaXRUb2tlblNlbmQ6IDEwMDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgdG9rZW4gc2VuZFxuICBtaW5pbXVtR2FzTGltaXQ6IDMwMDAwLCAvLyBtaW5pbXVtIGdhcyBsaW1pdCBhIHVzZXIgY2FuIHNldCBmb3IgYSBzZW5kXG4gIG1heGltdW1HYXNMaW1pdDogMjAwMDAwMDAsIC8vIEN1c3RvbWVycyBjYW5ub3Qgc2V0IGdhcyBsaW1pdHMgYmV5b25kIHRoaXMgYW1vdW50XG4gIG5ld0V0aExpa2VDb2luc01pbkdhc0xpbWl0OiA0MDAwMDAsIC8vIG1pbmltdW0gZ2FzIGxpbWl0IGEgdXNlciBjYW4gc2V0IGZvciBhIHNlbmQgZm9yIGV0aCBsaWtlIGNvaW5zIGxpa2UgYXJiaXRydW0sIG9wdGltaXNtLCBldGNcbiAgb3BldGhHYXNMMUZlZXM6IDEwMDAwMDAwMDAwMDAwMDAsIC8vIEJ1ZmZlciBmb3Igb3BldGggTDEgZ2FzIGZlZXNcbn07XG5cbmZ1bmN0aW9uIGdldFN0ZWxsYXJUb2tlbkNvbmZpZyhjb2luOiBTdGVsbGFyQ29pbik6IFN0ZWxsYXJUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3hsbScgOiAndHhsbScsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG4vLyBHZXQgdGhlIGxpc3Qgb2YgU3RlbGxhciB0b2tlbnMgZnJvbSBzdGF0aWNzIGFuZCBmb3JtYXQgaXQgcHJvcGVybHlcbmNvbnN0IGdldEZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBTdGVsbGFyVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgU3RlbGxhckNvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFN0ZWxsYXJUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0T2ZjVG9rZW5Db25maWcoY29pbjogT2ZjQ29pbik6IE9mY1Rva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogJ29mYycsXG4gICAgYmFja2luZ0NvaW46IGNvaW4uYXNzZXQsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgaXNGaWF0OiBjb2luLmtpbmQgPT09IENvaW5LaW5kLkZJQVQsXG4gIH07XG59XG4vLyBHZXQgdGhlIGxpc3Qgb2YgT0ZDIHRva2VucyBmcm9tIHN0YXRpY3MgYW5kIGZvcm1hdCBpdCBwcm9wZXJseVxuY29uc3QgZ2V0Rm9ybWF0dGVkT2ZjQ29pbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBPZmNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBPZmNDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRPZmNUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0Q2Vsb1Rva2VuQ29uZmlnKGNvaW46IENlbG9Db2luKTogQ2Vsb1Rva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnY2VsbycgOiAndGNlbG8nLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRDZWxvVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogQ2Vsb1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIENlbG9Db2luKSB7XG4gICAgICBhY2MucHVzaChnZXRDZWxvVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEJzY1Rva2VuQ29uZmlnKGNvaW46IEJzY0NvaW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdic2MnIDogJ3Ric2MnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRCc2NUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQnNjQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0QnNjVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEVvc1Rva2VuQ29uZmlnKGNvaW46IEVvc0NvaW4pOiBFb3NUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2VvcycgOiAndGVvcycsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdE5hbWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBjb250cmFjdE5hbWU6IGNvaW4uY29udHJhY3ROYW1lLFxuICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRFb3NUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFb3NUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFb3NDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRFb3NUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QXZheENUb2tlbkNvbmZpZyhjb2luOiBBdmF4RVJDMjBUb2tlbik6IEF2YXhjVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhdmF4YycgOiAndGF2YXhjJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQXZheENUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBBdmF4Y1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEF2YXhFUkMyMFRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRBdmF4Q1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRQb2x5Z29uVG9rZW5Db25maWcoY29pbjogUG9seWdvbkVSQzIwVG9rZW4gfCBFcmM3MjFDb2luIHwgRXJjMTE1NUNvaW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdwb2x5Z29uJyA6ICd0cG9seWdvbicsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZFBvbHlnb25Ub2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChcbiAgICAgIGNvaW4gaW5zdGFuY2VvZiBQb2x5Z29uRVJDMjBUb2tlbiB8fFxuICAgICAgKChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiB8fCBjb2luIGluc3RhbmNlb2YgRXJjMTE1NUNvaW4pICYmIGNvaW4uZmFtaWx5ID09PSBDb2luRmFtaWx5LlBPTFlHT04pXG4gICAgKSB7XG4gICAgICBhY2MucHVzaChnZXRQb2x5Z29uVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFNvbmVpdW1Ub2tlbkNvbmZpZyhjb2luOiBFcmM3MjFDb2luIHwgRXJjMTE1NUNvaW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdzb25laXVtJyA6ICd0c29uZWl1bScsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZFNvbmVpdW1Ub2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmICgoY29pbiBpbnN0YW5jZW9mIEVyYzcyMUNvaW4gfHwgY29pbiBpbnN0YW5jZW9mIEVyYzExNTVDb2luKSAmJiBjb2luLmZhbWlseSA9PT0gQ29pbkZhbWlseS5TT05FSVVNKSB7XG4gICAgICBhY2MucHVzaChnZXRTb25laXVtVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEVyYzcyMVRva2VuQ29uZmlnKGNvaW46IEVyYzcyMUNvaW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdldGgnIDogJ2h0ZXRoJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkRXJjNzIxVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEVyYzcyMUNvaW4gJiYgY29pbi5mYW1pbHkgPT09IENvaW5GYW1pbHkuRVRIKSB7XG4gICAgICBhY2MucHVzaChnZXRFcmM3MjFUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QXJiZXRoVG9rZW5Db25maWcoY29pbjogQXJiZXRoRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FyYmV0aCcgOiAndGFyYmV0aCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEFyYmV0aFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcmJldGhFUkMyMFRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRBcmJldGhUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0T3BldGhUb2tlbkNvbmZpZyhjb2luOiBPcGV0aEVSQzIwVG9rZW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdvcGV0aCcgOiAndG9wZXRoJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkT3BldGhUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgT3BldGhFUkMyMFRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRPcGV0aFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRaa2V0aFRva2VuQ29uZmlnKGNvaW46IFprZXRoRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3prZXRoJyA6ICd0emtldGgnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRaa2V0aFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBaa2V0aEVSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFprZXRoVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEJlcmFUb2tlbkNvbmZpZyhjb2luOiBCZXJhRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2JlcmEnIDogJ3RiZXJhJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQmVyYVRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBCZXJhRVJDMjBUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0QmVyYVRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRDb3JlZGFvVG9rZW5Db25maWcoY29pbjogQ29yZWRhb0VSQzIwVG9rZW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdjb3JlZGFvJyA6ICd0Y29yZWRhbycsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZENvcmVkYW9Ub2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ29yZWRhb0VSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldENvcmVkYW9Ub2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0V29ybGRUb2tlbkNvbmZpZyhjb2luOiBXb3JsZEVSQzIwVG9rZW4pOiBFdGhMaWtlVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd3b3JsZCcgOiAndHdvcmxkJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkV29ybGRUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgV29ybGRFUkMyMFRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRXb3JsZFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRTb2xUb2tlbkNvbmZpZyhjb2luOiBTb2xDb2luKTogU29sVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdzb2wnIDogJ3Rzb2wnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5BZGRyZXNzOiBjb2luLnRva2VuQWRkcmVzcyxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgY29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZFNvbFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFNvbFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIFNvbENvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFNvbFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBbGdvVG9rZW5Db25maWcoY29pbjogQWxnb0NvaW4pOiBBbGdvVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhbGdvJyA6ICd0YWxnbycsXG4gICAgYWxpYXM6IGNvaW4uYWxpYXMsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5leHBvcnQgY29uc3QgZ2V0Rm9ybWF0dGVkQWxnb1Rva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEFsZ29Ub2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBbGdvQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0QWxnb1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRIYmFyVG9rZW5Db25maWcoY29pbjogSGVkZXJhVG9rZW4pOiBIYmFyVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdoYmFyJyA6ICd0aGJhcicsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgbm9kZUFjY291bnRJZDogY29pbi5ub2RlQWNjb3VudElkLFxuICAgIHRva2VuSWQ6IGNvaW4udG9rZW5JZCxcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkSGJhclRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEhiYXJUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0SGJhclRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBZGFUb2tlbkNvbmZpZyhjb2luOiBBZGFUb2tlbik6IEFkYVRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYWRhJyA6ICd0YWRhJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHBvbGljeUlkOiBjb2luLnBvbGljeUlkLFxuICAgIGFzc2V0TmFtZTogY29pbi5hc3NldE5hbWUsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIHVuaXF1ZUFzc2V0SWQ6IGNvaW4udW5pcXVlQXNzZXRJZCxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEFkYVRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEFkYVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEFkYVRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRBZGFUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0VHJ4VG9rZW5Db25maWcoY29pbjogVHJvbkVyYzIwQ29pbik6IFRyeFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAndHJ4JyA6ICd0dHJ4JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkVHJ4VG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogVHJ4VG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgVHJvbkVyYzIwQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0VHJ4VG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFhycFRva2VuQ29uZmlnKGNvaW46IFhycENvaW4pOiBYcnBUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3hycCcgOiAndHhycCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgaXNzdWVyQWRkcmVzczogY29pbi5pc3N1ZXJBZGRyZXNzLFxuICAgIGN1cnJlbmN5Q29kZTogY29pbi5jdXJyZW5jeUNvZGUsXG4gICAgZG9tYWluOiBjb2luLmRvbWFpbixcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkWHJwVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogWHJwVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgWHJwQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0WHJwVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFN1aVRva2VuQ29uZmlnKGNvaW46IFN1aUNvaW4pOiBTdWlUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3N1aScgOiAndHN1aScsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgcGFja2FnZUlkOiBjb2luLnBhY2thZ2VJZCxcbiAgICBtb2R1bGU6IGNvaW4ubW9kdWxlLFxuICAgIHN5bWJvbDogY29pbi5zeW1ib2wsXG4gICAgY29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZFN1aVRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFN1aVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIFN1aUNvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFN1aVRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRUYW9Ub2tlbkNvbmZpZyhjb2luOiBUYW9Db2luKTogVGFvVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd0YW8nIDogJ3R0YW8nLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIHN1Ym5ldElkOiBjb2luLnN1Ym5ldElkLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkVGFvVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogVGFvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgVGFvQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0VGFvVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFBvbHl4VG9rZW5Db25maWcoY29pbjogUG9seXhDb2luKTogUG9seXhUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3BvbHl4JyA6ICd0cG9seXgnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIHRpY2tlcjogY29pbi50aWNrZXIsXG4gICAgYXNzZXRJZDogY29pbi5hc3NldElkLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkUG9seXhUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBQb2x5eFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIFBvbHl4Q29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0UG9seXhUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Db25maWcoY29pbjogQXB0Q29pbik6IEFwdFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYXB0JyA6ICd0YXB0JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGFzc2V0SWQ6IGNvaW4uYXNzZXRJZCxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRBcHRUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBBcHRUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcHRDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRBcHRUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QXB0TkZUQ29sbGVjdGlvbkNvbmZpZyhjb2luOiBBcHRORlRDb2xsZWN0aW9uKTogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FwdCcgOiAndGFwdCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBuZnRDb2xsZWN0aW9uSWQ6IGNvaW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0TkZUQ29sbGVjdGlvbkNvbmZpZyhjb2luOiBWZXRORlRDb2xsZWN0aW9uKTogVmV0TkZUQ29sbGVjdGlvbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3ZldCcgOiAndHZldCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBuZnRDb2xsZWN0aW9uSWQ6IGNvaW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEFwdE5GVENvbGxlY3Rpb25zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcHRORlRDb2xsZWN0aW9uKSB7XG4gICAgICBhY2MucHVzaChnZXRBcHRORlRDb2xsZWN0aW9uQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5jb25zdCBnZXRGb3JtYXR0ZWRWZXRORlRDb2xsZWN0aW9ucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFZldE5GVENvbGxlY3Rpb25Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgVmV0TkZUQ29sbGVjdGlvbikge1xuICAgICAgYWNjLnB1c2goZ2V0VmV0TkZUQ29sbGVjdGlvbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0U2lwMTBUb2tlbkNvbmZpZyhjb2luOiBTaXAxMFRva2VuKTogU2lwMTBUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3N0eCcgOiAndHN0eCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBhc3NldElkOiBjb2luLmFzc2V0SWQsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkU2lwMTBUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBTaXAxMFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIFNpcDEwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFNpcDEwVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldE5lcDE0MVRva2VuQ29uZmlnKGNvaW46IE5lcDE0MVRva2VuKTogTmVwMTQxVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICduZWFyJyA6ICd0bmVhcicsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICAgIHN0b3JhZ2VEZXBvc2l0QW1vdW50OiBjb2luLnN0b3JhZ2VEZXBvc2l0QW1vdW50LFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZE5lcDE0MVRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IE5lcDE0MVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIE5lcDE0MVRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXROZXAxNDFUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Db25maWcoY29pbjogVmV0VG9rZW4pOiBWZXRUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3ZldCcgOiAndHZldCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cblxuY29uc3QgZ2V0Rm9ybWF0dGVkVmV0VG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogVmV0VG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgVmV0VG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFZldFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5jb25zdCBnZXRGb3JtYXR0ZWRDb3Ntb3NDaGFpblRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IENvc21vc1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIENvc21vc0NoYWluVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldENvc21vc1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRDb3Ntb3NUb2tlbkNvbmZpZyhjb2luOiBDb3Ntb3NDaGFpblRva2VuKTogQ29zbW9zVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5hbWUuc3BsaXQoJzonKVswXS50b0xvd2VyQ2FzZSgpLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgZGVub206IGNvaW4uZGVub20sXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybWF0dGVkVG9rZW5zID0gKGNvaW5NYXAgPSBjb2lucyk6IFRva2VucyA9PiB7XG4gIGNvbnN0IGZvcm1hdHRlZEFwdE5GVENvbGxlY3Rpb25zID0gZ2V0Rm9ybWF0dGVkQXB0TkZUQ29sbGVjdGlvbnMoY29pbk1hcCk7XG4gIGNvbnN0IGZvcm1hdHRlZFZldE5GVENvbGxlY3Rpb25zID0gZ2V0Rm9ybWF0dGVkVmV0TkZUQ29sbGVjdGlvbnMoY29pbk1hcCk7XG4gIHJldHVybiB7XG4gICAgYml0Y29pbjoge1xuICAgICAgZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkRXJjMjBUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgICAgbmZ0czogZ2V0Rm9ybWF0dGVkRXJjNzIxVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgeGxtOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU3RlbGxhclRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFsZ286IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBbGdvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgb2ZjOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkT2ZjQ29pbnMoY29pbk1hcCkuZmlsdGVyKFxuICAgICAgICAgICh0b2tlbikgPT4gY29pbk1hcC5nZXQodG9rZW4udHlwZSkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgY2Vsbzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZENlbG9Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBic2M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRCc2NUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBlb3M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRFb3NUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBhdmF4Yzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEF2YXhDVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgcG9seWdvbjoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFBvbHlnb25Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBzb25laXVtOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU29uZWl1bVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFyYmV0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEFyYmV0aFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIG9wZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkT3BldGhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB6a2V0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFprZXRoVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgc29sOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU29sVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgaGJhcjoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEhiYXJUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBhZGE6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBZGFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB0cng6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRUcnhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB4cnA6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRYcnBUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBzdWk6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTdWlUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB0YW86IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRUYW9Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBwb2x5eDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFBvbHl4VG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgYmVyYToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEJlcmFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBjb3JlZGFvOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQ29yZWRhb1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHdvcmxkOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkV29ybGRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBhcHQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBcHRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgICAgbmZ0Q29sbGVjdGlvbnM6IGZvcm1hdHRlZEFwdE5GVENvbGxlY3Rpb25zLmZpbHRlcihcbiAgICAgICAgICAobmZ0Q29sbGVjdGlvbjogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZykgPT4gbmZ0Q29sbGVjdGlvbi5uZXR3b3JrID09PSAnTWFpbm5ldCdcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBzdHg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTaXAxMFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIG5lYXI6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWROZXAxNDFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB2ZXQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRWZXRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgICAgbmZ0Q29sbGVjdGlvbnM6IGZvcm1hdHRlZFZldE5GVENvbGxlY3Rpb25zLmZpbHRlcihcbiAgICAgICAgICAobmZ0Q29sbGVjdGlvbjogVmV0TkZUQ29sbGVjdGlvbkNvbmZpZykgPT4gbmZ0Q29sbGVjdGlvbi5uZXR3b3JrID09PSAnTWFpbm5ldCdcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBjb3Ntb3M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRDb3Ntb3NDaGFpblRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHRlc3RuZXQ6IHtcbiAgICAgIGV0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEVyYzIwVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICAgIG5mdHM6IGdldEZvcm1hdHRlZEVyYzcyMVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIHhsbToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBhbGdvOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQWxnb1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIG9mYzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZE9mY0NvaW5zKGNvaW5NYXApLmZpbHRlcihcbiAgICAgICAgICAodG9rZW4pID0+IGNvaW5NYXAuZ2V0KHRva2VuLnR5cGUpLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuVEVTVE5FVFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGNlbG86IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRDZWxvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgYnNjOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQnNjVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgZW9zOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkRW9zVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgYXZheGM6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBdmF4Q1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIHBvbHlnb246IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRQb2x5Z29uVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgc29uZWl1bToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFNvbmVpdW1Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBhcmJldGg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBcmJldGhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBvcGV0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZE9wZXRoVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgemtldGg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRaa2V0aFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIHNvbDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFNvbFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIGhiYXI6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRIYmFyVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgYWRhOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQWRhVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgdHJ4OiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkVHJ4VG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgeHJwOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkWHJwVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgc3VpOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU3VpVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgdGFvOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkVGFvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgcG9seXg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRQb2x5eFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIGJlcmE6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRCZXJhVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgYXB0OiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQXB0VG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICAgIG5mdENvbGxlY3Rpb25zOiBmb3JtYXR0ZWRBcHRORlRDb2xsZWN0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG5mdENvbGxlY3Rpb246IEFwdE5GVENvbGxlY3Rpb25Db25maWcpID0+IG5mdENvbGxlY3Rpb24ubmV0d29yayA9PT0gJ1Rlc3RuZXQnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgc3R4OiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU2lwMTBUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBjb3JlZGFvOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQ29yZWRhb1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIHdvcmxkOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkV29ybGRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBuZWFyOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkTmVwMTQxVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgdmV0OiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkVmV0VG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICAgIG5mdENvbGxlY3Rpb25zOiBmb3JtYXR0ZWRWZXRORlRDb2xsZWN0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG5mdENvbGxlY3Rpb246IFZldE5GVENvbGxlY3Rpb25Db25maWcpID0+IG5mdENvbGxlY3Rpb24ubmV0d29yayA9PT0gJ1Rlc3RuZXQnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgY29zbW9zOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQ29zbW9zQ2hhaW5Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn07XG5cbi8qKlxuICogVmVyaWZ5IG1haW5uZXQgb3IgdGVzdG5ldCB0b2tlbnNcbiAqIEBwYXJhbSB0b2tlbnNcbiAqL1xuY29uc3QgdmVyaWZ5VG9rZW5zID0gZnVuY3Rpb24gKHRva2VuczogQmFzZVRva2VuQ29uZmlnW10pIHtcbiAgY29uc3QgdmVyaWZpZWRUb2tlbnM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGlmICh2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0b2tlbiA6ICcgKyB0b2tlbi50eXBlICsgJyBkdXBsaWNhdGVkLicpO1xuICAgIH1cbiAgICB2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MgJiZcbiAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcyAhPT1cbiAgICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3Rva2VuIGNvbnRyYWN0OiAnICsgdG9rZW4udHlwZSArICcgaXMgbm90IGFsbCBsb3dlciBjYXNlOiAnICsgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZlcmlmaWVkVG9rZW5zO1xufTtcblxuZXhwb3J0IGNvbnN0IHRva2VucyA9IGdldEZvcm1hdHRlZFRva2VucygpO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0dGVkQWxnb1Rva2VucyA9IGdldEZvcm1hdHRlZEFsZ29Ub2tlbnMoKTtcblxuY29uc3QgbWFpbm5ldEVyYzIwVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLmV0aC50b2tlbnMpO1xuY29uc3QgbWFpbm5ldEVyYzcyMVRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMuYml0Y29pbi5ldGgubmZ0cyk7XG5jb25zdCBtYWlubmV0U3RlbGxhclRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMuYml0Y29pbi54bG0udG9rZW5zKTtcbmV4cG9ydCBjb25zdCBtYWlubmV0VG9rZW5zID0geyAuLi5tYWlubmV0RXJjMjBUb2tlbnMsIC4uLm1haW5uZXRFcmM3MjFUb2tlbnMsIC4uLm1haW5uZXRTdGVsbGFyVG9rZW5zIH07XG5cbmNvbnN0IHRlc3RuZXRFcmMyMFRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC5ldGgudG9rZW5zKTtcbmNvbnN0IHRlc3RuZXRFcmM3MjFUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLnRlc3RuZXQuZXRoLm5mdHMpO1xuY29uc3QgdGVzdG5ldFN0ZWxsYXJUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLnRlc3RuZXQueGxtLnRva2Vucyk7XG5leHBvcnQgY29uc3QgdGVzdG5ldFRva2VucyA9IHsgLi4udGVzdG5ldEVyYzIwVG9rZW5zLCAuLi50ZXN0bmV0RXJjNzIxVG9rZW5zLCAuLi50ZXN0bmV0U3RlbGxhclRva2VucyB9O1xuXG4vKipcbiAqIEdldCBmb3JtYXR0ZWQgdG9rZW4gY29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgY29pblxuICogQHBhcmFtIGNvaW4gLSBTdGF0aWMgQmFzZSBjb2luIGluc3RhbmNlXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHRva2VuIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb2luLCBvciB1bmRlZmluZWQgaWYgbm90IHN1cHBvcnRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkVG9rZW5Db25maWdGb3JDb2luKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IFRva2VuQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFcmMyMENvaW4pIHtcbiAgICByZXR1cm4gZ2V0RXJjMjBUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgU3RlbGxhckNvaW4pIHtcbiAgICByZXR1cm4gZ2V0U3RlbGxhclRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBPZmNDb2luKSB7XG4gICAgcmV0dXJuIGdldE9mY1Rva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBDZWxvQ29pbikge1xuICAgIHJldHVybiBnZXRDZWxvVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEJzY0NvaW4pIHtcbiAgICByZXR1cm4gZ2V0QnNjVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEVvc0NvaW4pIHtcbiAgICByZXR1cm4gZ2V0RW9zVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEF2YXhFUkMyMFRva2VuKSB7XG4gICAgcmV0dXJuIGdldEF2YXhDVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoXG4gICAgY29pbiBpbnN0YW5jZW9mIFBvbHlnb25FUkMyMFRva2VuIHx8XG4gICAgKChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiB8fCBjb2luIGluc3RhbmNlb2YgRXJjMTE1NUNvaW4pICYmIGNvaW4uZmFtaWx5ID09PSBDb2luRmFtaWx5LlBPTFlHT04pXG4gICkge1xuICAgIHJldHVybiBnZXRQb2x5Z29uVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoKGNvaW4gaW5zdGFuY2VvZiBFcmM3MjFDb2luIHx8IGNvaW4gaW5zdGFuY2VvZiBFcmMxMTU1Q29pbikgJiYgY29pbi5mYW1pbHkgPT09IENvaW5GYW1pbHkuU09ORUlVTSkge1xuICAgIHJldHVybiBnZXRTb25laXVtVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEVyYzcyMUNvaW4gJiYgY29pbi5mYW1pbHkgPT09IENvaW5GYW1pbHkuRVRIKSB7XG4gICAgcmV0dXJuIGdldEVyYzcyMVRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcmJldGhFUkMyMFRva2VuKSB7XG4gICAgcmV0dXJuIGdldEFyYmV0aFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBPcGV0aEVSQzIwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0T3BldGhUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgWmtldGhFUkMyMFRva2VuKSB7XG4gICAgcmV0dXJuIGdldFprZXRoVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFNvbENvaW4pIHtcbiAgICByZXR1cm4gZ2V0U29sVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEhlZGVyYVRva2VuKSB7XG4gICAgcmV0dXJuIGdldEhiYXJUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgQWRhVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0QWRhVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFRyb25FcmMyMENvaW4pIHtcbiAgICByZXR1cm4gZ2V0VHJ4VG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFhycENvaW4pIHtcbiAgICByZXR1cm4gZ2V0WHJwVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFN1aUNvaW4pIHtcbiAgICByZXR1cm4gZ2V0U3VpVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFRhb0NvaW4pIHtcbiAgICByZXR1cm4gZ2V0VGFvVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFBvbHl4Q29pbikge1xuICAgIHJldHVybiBnZXRQb2x5eFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcHRDb2luKSB7XG4gICAgcmV0dXJuIGdldEFwdFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcHRORlRDb2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIGdldEFwdE5GVENvbGxlY3Rpb25Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFNpcDEwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0U2lwMTBUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgTmVwMTQxVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0TmVwMTQxVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIENvc21vc0NoYWluVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0Q29zbW9zVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFZldFRva2VuKSB7XG4gICAgcmV0dXJuIGdldFZldFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBWZXRORlRDb2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIGdldFZldE5GVENvbGxlY3Rpb25Db25maWcoY29pbik7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
886
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK3ZDQSx3RUFnRUM7QUEvekNELHVDQWdDbUI7QUFDbkIsaUNBQXdEO0FBQ3hELG1DQUFnQztBQUNoQyx5Q0FBbUQ7QUFDbkQsK0JBQWdDO0FBNldoQyxTQUFTLG1CQUFtQixDQUFDLElBQWU7SUFDMUMsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQzlCLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDakIsTUFBTTtRQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDM0IsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM1QixRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ25CLE1BQU07UUFDUixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDaEMsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUMzQixRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ25CLE1BQU07UUFDUjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMs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QUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN6RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN0RjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDckYsY0FBYyxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxhQUFxQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FDL0U7YUFDRjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN4RjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN6RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDckYsY0FBYyxFQUFFLDBCQUEwQixDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxhQUFxQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FDL0U7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUM5RjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUN2RixJQUFJLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUN2RjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQzthQUMxRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsSUFBQSw4QkFBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQzFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUN4RTthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQzFGO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQzFGO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3pGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3ZGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2FBQ3RGO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENB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QUUsQ0FBQztRQUNwQyxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSwwQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztTQUFNLElBQUksSUFBSSxZQUFZLDJCQUFpQixFQUFFLENBQUM7UUFDN0MsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFsZ29Db2luLFxuICBBcHRDb2luLFxuICBBcHRORlRDb2xsZWN0aW9uLFxuICBBcmJldGhFUkMyMFRva2VuLFxuICBBdmF4RVJDMjBUb2tlbixcbiAgQmVyYUVSQzIwVG9rZW4sXG4gIEJzY0NvaW4sXG4gIENlbG9Db2luLFxuICBDb3JlZGFvRVJDMjBUb2tlbixcbiAgQ29zbW9zQ2hhaW5Ub2tlbixcbiAgRW9zQ29pbixcbiAgRXJjMTE1NUNvaW4sXG4gIEVyYzIwQ29pbixcbiAgRXJjNzIxQ29pbixcbiAgSGVkZXJhVG9rZW4sXG4gIE5lcDE0MVRva2VuLFxuICBPcGV0aEVSQzIwVG9rZW4sXG4gIFBvbHlnb25FUkMyMFRva2VuLFxuICBTaXAxMFRva2VuLFxuICBTb2xDb2luLFxuICBTdGVsbGFyQ29pbixcbiAgU3VpQ29pbixcbiAgVGFvQ29pbixcbiAgUG9seXhDb2luLFxuICBUcm9uRXJjMjBDb2luLFxuICBWZXRUb2tlbixcbiAgV29ybGRFUkMyMFRva2VuLFxuICBYcnBDb2luLFxuICBaa2V0aEVSQzIwVG9rZW4sXG4gIFZldE5GVENvbGxlY3Rpb24sXG4gIEFkYVRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgQ29pbkZhbWlseSwgQ29pbktpbmQsIEJhc2VDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnLi9jb2lucyc7XG5pbXBvcnQgeyBOZXR3b3JrcywgTmV0d29ya1R5cGUgfSBmcm9tICcuL25ldHdvcmtzJztcbmltcG9ydCB7IE9mY0NvaW4gfSBmcm9tICcuL29mYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVRva2VuQ29uZmlnIHtcbiAgY29pbjogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VOZXR3b3JrQ29uZmlnIGV4dGVuZHMgQmFzZVRva2VuQ29uZmlnIHtcbiAgbmV0d29yazogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcgZXh0ZW5kcyBCYXNlTmV0d29ya0NvbmZpZyB7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEF2YXhjVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgQ2Vsb1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIEV0aExpa2VUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBFb3NUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcgJiB7XG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBFcmMyMFRva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIFRyeFRva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIFN0ZWxsYXJUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBTb2xUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICB0b2tlbkFkZHJlc3M6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBZGFUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBwb2xpY3lJZDogc3RyaW5nO1xuICBhc3NldE5hbWU6IHN0cmluZztcbiAgdW5pcXVlQXNzZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWxnb1Rva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIGFsaWFzPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT2ZjVG9rZW5Db25maWcgPSBCYXNlVG9rZW5Db25maWcgJiB7XG4gIGJhY2tpbmdDb2luOiBzdHJpbmc7XG4gIGlzRmlhdDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEhiYXJUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBub2RlQWNjb3VudElkOiBzdHJpbmc7XG4gIHRva2VuSWQ6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBYcnBUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBpc3N1ZXJBZGRyZXNzOiBzdHJpbmc7XG4gIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xuICBkb21haW4/OiBzdHJpbmc7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU3VpVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgcGFja2FnZUlkOiBzdHJpbmc7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBzeW1ib2w6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBcHRUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBhc3NldElkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBcHRORlRDb2xsZWN0aW9uQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIG5mdENvbGxlY3Rpb25JZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2lwMTBUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBhc3NldElkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBUYW9Ub2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBzdWJuZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUG9seXhUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICB0aWNrZXI6IHN0cmluZztcbiAgYXNzZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTmVwMTQxVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHN0b3JhZ2VEZXBvc2l0QW1vdW50OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWZXRUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFZldE5GVENvbGxlY3Rpb25Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgbmZ0Q29sbGVjdGlvbklkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDb3Ntb3NUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBkZW5vbTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVG9rZW5Db25maWcgPVxuICB8IEVyYzIwVG9rZW5Db25maWdcbiAgfCBTdGVsbGFyVG9rZW5Db25maWdcbiAgfCBPZmNUb2tlbkNvbmZpZ1xuICB8IENlbG9Ub2tlbkNvbmZpZ1xuICB8IEV0aExpa2VUb2tlbkNvbmZpZ1xuICB8IEVvc1Rva2VuQ29uZmlnXG4gIHwgQXZheGNUb2tlbkNvbmZpZ1xuICB8IFNvbFRva2VuQ29uZmlnXG4gIHwgSGJhclRva2VuQ29uZmlnXG4gIHwgQWRhVG9rZW5Db25maWdcbiAgfCBBbGdvVG9rZW5Db25maWdcbiAgfCBUcnhUb2tlbkNvbmZpZ1xuICB8IFhycFRva2VuQ29uZmlnXG4gIHwgU3VpVG9rZW5Db25maWdcbiAgfCBBcHRUb2tlbkNvbmZpZ1xuICB8IEFwdE5GVENvbGxlY3Rpb25Db25maWdcbiAgfCBTaXAxMFRva2VuQ29uZmlnXG4gIHwgTmVwMTQxVG9rZW5Db25maWdcbiAgfCBDb3Ntb3NUb2tlbkNvbmZpZ1xuICB8IFZldFRva2VuQ29uZmlnXG4gIHwgVmV0TkZUQ29sbGVjdGlvbkNvbmZpZ1xuICB8IFRhb1Rva2VuQ29uZmlnXG4gIHwgUG9seXhUb2tlbkNvbmZpZztcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbnMge1xuICBiaXRjb2luOiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICAgIG5mdHM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWxnbzoge1xuICAgICAgdG9rZW5zOiBBbGdvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBPZmNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBDZWxvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGVvczoge1xuICAgICAgdG9rZW5zOiBFb3NUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogQXZheGNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHNvbmVpdW06IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhcmJldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvcGV0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNvcmVkYW86IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB3b3JsZDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBTb2xUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgaGJhcjoge1xuICAgICAgdG9rZW5zOiBIYmFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBBZGFUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdHJ4OiB7XG4gICAgICB0b2tlbnM6IFRyeFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB4cnA6IHtcbiAgICAgIHRva2VuczogWHJwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHprZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc3VpOiB7XG4gICAgICB0b2tlbnM6IFN1aVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB0YW86IHtcbiAgICAgIHRva2VuczogVGFvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHl4OiB7XG4gICAgICB0b2tlbnM6IFBvbHl4VG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGJlcmE6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhcHQ6IHtcbiAgICAgIHRva2VuczogQXB0VG9rZW5Db25maWdbXTtcbiAgICAgIG5mdENvbGxlY3Rpb25zOiBBcHRORlRDb2xsZWN0aW9uQ29uZmlnW107XG4gICAgfTtcbiAgICBzdHg6IHtcbiAgICAgIHRva2VuczogU2lwMTBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgbmVhcjoge1xuICAgICAgdG9rZW5zOiBOZXAxNDFUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdmV0OiB7XG4gICAgICB0b2tlbnM6IFZldFRva2VuQ29uZmlnW107XG4gICAgICBuZnRDb2xsZWN0aW9uczogVmV0TkZUQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgY29zbW9zOiB7XG4gICAgICB0b2tlbnM6IENvc21vc1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgfTtcbiAgdGVzdG5ldDoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBFcmMyMFRva2VuQ29uZmlnW107XG4gICAgICBuZnRzOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb25laXVtOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXJiZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgb3BldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHRyeDoge1xuICAgICAgdG9rZW5zOiBUcnhUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgeHJwOiB7XG4gICAgICB0b2tlbnM6IFhycFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB6a2V0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHN1aToge1xuICAgICAgdG9rZW5zOiBTdWlUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdGFvOiB7XG4gICAgICB0b2tlbnM6IFRhb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBwb2x5eDoge1xuICAgICAgdG9rZW5zOiBQb2x5eFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBiZXJhOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgY29yZWRhbzoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHdvcmxkOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXB0OiB7XG4gICAgICB0b2tlbnM6IEFwdFRva2VuQ29uZmlnW107XG4gICAgICBuZnRDb2xsZWN0aW9uczogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc3R4OiB7XG4gICAgICB0b2tlbnM6IFNpcDEwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG5lYXI6IHtcbiAgICAgIHRva2VuczogTmVwMTQxVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHZldDoge1xuICAgICAgdG9rZW5zOiBWZXRUb2tlbkNvbmZpZ1tdO1xuICAgICAgbmZ0Q29sbGVjdGlvbnM6IFZldE5GVENvbGxlY3Rpb25Db25maWdbXTtcbiAgICB9O1xuICAgIGNvc21vczoge1xuICAgICAgdG9rZW5zOiBDb3Ntb3NUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW1zVG9rZW5Db25maWcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIGZhbWlseTogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzOiBudW1iZXI7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIGZlYXR1cmVzPzogc3RyaW5nW107XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICBuZXR3b3JrPzogdW5rbm93bjtcbiAgcHJpbWFyeUtleUN1cnZlPzogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIHRva2VuQWRkcmVzcz86IHN0cmluZztcbiAgbmZ0Q29sbGVjdGlvbklkPzogc3RyaW5nO1xuICBhbGlhcz86IHN0cmluZztcbiAgY29udHJhY3ROYW1lPzogc3RyaW5nO1xuICB0b2tlbklkPzogc3RyaW5nO1xuICBwYWNrYWdlSWQ/OiBzdHJpbmc7XG4gIG1vZHVsZT86IHN0cmluZztcbiAgc3ltYm9sPzogc3RyaW5nO1xuICBpc3N1ZXJBZGRyZXNzPzogc3RyaW5nO1xuICBjdXJyZWNueWNvZGU/OiBzdHJpbmc7XG4gIGRvbWFpbj86IHN0cmluZztcbiAgYXNzZXRJZD86IHN0cmluZztcbiAgZGVub20/OiBzdHJpbmc7XG4gIGlzVG9rZW46IGJvb2xlYW47XG4gIGJhc2VVbml0Pzogc3RyaW5nO1xuICBraW5kPzogc3RyaW5nO1xuICBzdWJuZXRJZD86IHN0cmluZztcbiAgdGlja2VyPzogc3RyaW5nO1xuICBwcm9ncmFtSWQ/OiBzdHJpbmc7XG4gIGFkZHJlc3NDb2luPzogc3RyaW5nO1xuICBhc3NldE5hbWU/OiBzdHJpbmc7XG4gIHVuaXF1ZUFzc2V0SWQ/OiBzdHJpbmc7XG4gIHBvbGljeUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaW1tZWRBbXNOZXR3b3JrQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmltbWVkQW1zVG9rZW5Db25maWcgZXh0ZW5kcyBPbWl0PEFtc1Rva2VuQ29uZmlnLCAnZmVhdHVyZXMnIHwgJ25ldHdvcmsnPiB7XG4gIG5ldHdvcms6IFRyaW1tZWRBbXNOZXR3b3JrQ29uZmlnO1xuICBleGNsdWRlZEZlYXR1cmVzPzogc3RyaW5nW107XG4gIGFkZGl0aW9uYWxGZWF0dXJlcz86IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBnZXRFcmMyMFRva2VuQ29uZmlnKGNvaW46IEVyYzIwQ29pbik6IEVyYzIwVG9rZW5Db25maWcge1xuICBsZXQgYmFzZUNvaW46IHN0cmluZztcbiAgc3dpdGNoIChjb2luLm5ldHdvcmsubmFtZSkge1xuICAgIGNhc2UgTmV0d29ya3MubWFpbi5ldGhlcmV1bS5uYW1lOlxuICAgICAgYmFzZUNvaW4gPSAnZXRoJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTmV0d29ya3MudGVzdC5rb3Zhbi5uYW1lOlxuICAgICAgYmFzZUNvaW4gPSAndGV0aCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE5ldHdvcmtzLnRlc3QuZ29lcmxpLm5hbWU6XG4gICAgICBiYXNlQ29pbiA9ICdndGV0aCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE5ldHdvcmtzLnRlc3QuaG9sZXNreS5uYW1lOlxuICAgIGNhc2UgTmV0d29ya3MudGVzdC5ob29kaS5uYW1lOlxuICAgICAgYmFzZUNvaW4gPSAnaHRldGgnO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJjMjAgdG9rZW4gJHtjb2luLm5hbWV9IGhhcyBhbiB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogYmFzZUNvaW4sXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cblxuLy8gR2V0IHRoZSBsaXN0IG9mIEVSQy0yMCB0b2tlbnMgZnJvbSBzdGF0aWNzIGFuZCBmb3JtYXQgaXQgcHJvcGVybHlcbmNvbnN0IGdldEZvcm1hdHRlZEVyYzIwVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogRXJjMjBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFcmMyMENvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEVyYzIwVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmV4cG9ydCBjb25zdCBldGhHYXNDb25maWdzID0ge1xuICBtaW5pbXVtR2FzUHJpY2U6IDEwMDAwMDAwMDAsIC8vIG1pbmltdW0gZ2FzIHByaWNlIGEgdXNlciBjYW4gcHJvdmlkZSAoMSBHd2VpKVxuICBkZWZhdWx0R2FzUHJpY2U6IDIwMDAwMDAwMDAwLCAvLyBkZWZhdWx0IGdhcyBwcmljZSBpZiBlc3RpbWF0aW9uIGZhaWxzICgyMCBHd2VpKVxuICBtYXhpbXVtR2FzUHJpY2U6IDI1MDAwMDAwMDAwMDAsIC8vIG1pbmltdW0gZ2FzIHByaWNlIGEgdXNlciBjYW4gcHJvdmlkZSAoMjUwMCBHd2VpKVxuICBkZWZhdWx0R2FzTGltaXQ6IDUwMDAwMCwgLy8gRGVmYXVsdCBnYXMgbGltaXQgd2Ugc2V0IGZvciBjb250cmFjdCBzZW5kXG4gIGRlZmF1bHRHYXNMaW1pdFRva2VuU2VuZDogMTAwMDAwMCwgLy8gRGVmYXVsdCBnYXMgbGltaXQgd2Ugc2V0IGZvciB0b2tlbiBzZW5kXG4gIG1pbmltdW1HYXNMaW1pdDogMzAwMDAsIC8vIG1pbmltdW0gZ2FzIGxpbWl0IGEgdXNlciBjYW4gc2V0IGZvciBhIHNlbmRcbiAgbWF4aW11bUdhc0xpbWl0OiAyMDAwMDAwMCwgLy8gQ3VzdG9tZXJzIGNhbm5vdCBzZXQgZ2FzIGxpbWl0cyBiZXlvbmQgdGhpcyBhbW91bnRcbiAgbmV3RXRoTGlrZUNvaW5zTWluR2FzTGltaXQ6IDQwMDAwMCwgLy8gbWluaW11bSBnYXMgbGltaXQgYSB1c2VyIGNhbiBzZXQgZm9yIGEgc2VuZCBmb3IgZXRoIGxpa2UgY29pbnMgbGlrZSBhcmJpdHJ1bSwgb3B0aW1pc20sIGV0Y1xuICBvcGV0aEdhc0wxRmVlczogMTAwMDAwMDAwMDAwMDAwMCwgLy8gQnVmZmVyIGZvciBvcGV0aCBMMSBnYXMgZmVlc1xufTtcblxuZnVuY3Rpb24gZ2V0U3RlbGxhclRva2VuQ29uZmlnKGNvaW46IFN0ZWxsYXJDb2luKTogU3RlbGxhclRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAneGxtJyA6ICd0eGxtJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbi8vIEdldCB0aGUgbGlzdCBvZiBTdGVsbGFyIHRva2VucyBmcm9tIHN0YXRpY3MgYW5kIGZvcm1hdCBpdCBwcm9wZXJseVxuY29uc3QgZ2V0Rm9ybWF0dGVkU3RlbGxhclRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTdGVsbGFyQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0U3RlbGxhclRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRPZmNUb2tlbkNvbmZpZyhjb2luOiBPZmNDb2luKTogT2ZjVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiAnb2ZjJyxcbiAgICBiYWNraW5nQ29pbjogY29pbi5hc3NldCxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBpc0ZpYXQ6IGNvaW4ua2luZCA9PT0gQ29pbktpbmQuRklBVCxcbiAgfTtcbn1cbi8vIEdldCB0aGUgbGlzdCBvZiBPRkMgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBnZXRGb3JtYXR0ZWRPZmNDb2lucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IE9mY1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIE9mY0NvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldE9mY1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRDZWxvVG9rZW5Db25maWcoY29pbjogQ2Vsb0NvaW4pOiBDZWxvVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdjZWxvJyA6ICd0Y2VsbycsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZENlbG9Ub2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBDZWxvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ2Vsb0NvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldENlbG9Ub2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QnNjVG9rZW5Db25maWcoY29pbjogQnNjQ29pbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2JzYycgOiAndGJzYycsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEJzY1Rva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBCc2NDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRCc2NUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0RW9zVG9rZW5Db25maWcoY29pbjogRW9zQ29pbik6IEVvc1Rva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnZW9zJyA6ICd0ZW9zJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIGNvbnRyYWN0TmFtZTogY29pbi5jb250cmFjdE5hbWUsXG4gICAgY29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEVvc1Rva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEVvc1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEVvc0NvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEVvc1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBdmF4Q1Rva2VuQ29uZmlnKGNvaW46IEF2YXhFUkMyMFRva2VuKTogQXZheGNUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2F2YXhjJyA6ICd0YXZheGMnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRBdmF4Q1Rva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEF2YXhjVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEF2YXhDVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFBvbHlnb25Ub2tlbkNvbmZpZyhjb2luOiBQb2x5Z29uRVJDMjBUb2tlbiB8IEVyYzcyMUNvaW4gfCBFcmMxMTU1Q29pbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3BvbHlnb24nIDogJ3Rwb2x5Z29uJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkUG9seWdvblRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKFxuICAgICAgY29pbiBpbnN0YW5jZW9mIFBvbHlnb25FUkMyMFRva2VuIHx8XG4gICAgICAoKGNvaW4gaW5zdGFuY2VvZiBFcmM3MjFDb2luIHx8IGNvaW4gaW5zdGFuY2VvZiBFcmMxMTU1Q29pbikgJiYgY29pbi5mYW1pbHkgPT09IENvaW5GYW1pbHkuUE9MWUdPTilcbiAgICApIHtcbiAgICAgIGFjYy5wdXNoKGdldFBvbHlnb25Ub2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0U29uZWl1bVRva2VuQ29uZmlnKGNvaW46IEVyYzcyMUNvaW4gfCBFcmMxMTU1Q29pbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3NvbmVpdW0nIDogJ3Rzb25laXVtJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkU29uZWl1bVRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiB8fCBjb2luIGluc3RhbmNlb2YgRXJjMTE1NUNvaW4pICYmIGNvaW4uZmFtaWx5ID09PSBDb2luRmFtaWx5LlNPTkVJVU0pIHtcbiAgICAgIGFjYy5wdXNoKGdldFNvbmVpdW1Ub2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0RXJjNzIxVG9rZW5Db25maWcoY29pbjogRXJjNzIxQ29pbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2V0aCcgOiAnaHRldGgnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRFcmM3MjFUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiAmJiBjb2luLmZhbWlseSA9PT0gQ29pbkZhbWlseS5FVEgpIHtcbiAgICAgIGFjYy5wdXNoKGdldEVyYzcyMVRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBcmJldGhUb2tlbkNvbmZpZyhjb2luOiBBcmJldGhFUkMyMFRva2VuKTogRXRoTGlrZVRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYXJiZXRoJyA6ICd0YXJiZXRoJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQXJiZXRoVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEFyYmV0aEVSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEFyYmV0aFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRPcGV0aFRva2VuQ29uZmlnKGNvaW46IE9wZXRoRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ29wZXRoJyA6ICd0b3BldGgnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRPcGV0aFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBPcGV0aEVSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldE9wZXRoVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFprZXRoVG9rZW5Db25maWcoY29pbjogWmtldGhFUkMyMFRva2VuKTogRXRoTGlrZVRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnemtldGgnIDogJ3R6a2V0aCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZFprZXRoVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIFprZXRoRVJDMjBUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0WmtldGhUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0QmVyYVRva2VuQ29uZmlnKGNvaW46IEJlcmFFUkMyMFRva2VuKTogRXRoTGlrZVRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYmVyYScgOiAndGJlcmEnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRCZXJhVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEJlcmFFUkMyMFRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRCZXJhVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldENvcmVkYW9Ub2tlbkNvbmZpZyhjb2luOiBDb3JlZGFvRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2NvcmVkYW8nIDogJ3Rjb3JlZGFvJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQ29yZWRhb1Rva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBDb3JlZGFvRVJDMjBUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0Q29yZWRhb1Rva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRXb3JsZFRva2VuQ29uZmlnKGNvaW46IFdvcmxkRVJDMjBUb2tlbik6IEV0aExpa2VUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3dvcmxkJyA6ICd0d29ybGQnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRXb3JsZFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBXb3JsZEVSQzIwVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldFdvcmxkVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFNvbFRva2VuQ29uZmlnKGNvaW46IFNvbENvaW4pOiBTb2xUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3NvbCcgOiAndHNvbCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICB0b2tlbkFkZHJlc3M6IGNvaW4udG9rZW5BZGRyZXNzLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkU29sVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogU29sVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgU29sQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0U29sVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEFsZ29Ub2tlbkNvbmZpZyhjb2luOiBBbGdvQ29pbik6IEFsZ29Ub2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FsZ28nIDogJ3RhbGdvJyxcbiAgICBhbGlhczogY29pbi5hbGlhcyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBnZXRGb3JtYXR0ZWRBbGdvVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogQWxnb1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEFsZ29Db2luKSB7XG4gICAgICBhY2MucHVzaChnZXRBbGdvVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEhiYXJUb2tlbkNvbmZpZyhjb2luOiBIZWRlcmFUb2tlbik6IEhiYXJUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2hiYXInIDogJ3RoYmFyJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBub2RlQWNjb3VudElkOiBjb2luLm5vZGVBY2NvdW50SWQsXG4gICAgdG9rZW5JZDogY29pbi50b2tlbklkLFxuICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRIYmFyVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogSGJhclRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEhlZGVyYVRva2VuKSB7XG4gICAgICBhY2MucHVzaChnZXRIYmFyVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldEFkYVRva2VuQ29uZmlnKGNvaW46IEFkYVRva2VuKTogQWRhVG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhZGEnIDogJ3RhZGEnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgcG9saWN5SWQ6IGNvaW4ucG9saWN5SWQsXG4gICAgYXNzZXROYW1lOiBjb2luLmFzc2V0TmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgdW5pcXVlQXNzZXRJZDogY29pbi51bmlxdWVBc3NldElkLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQWRhVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogQWRhVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQWRhVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEFkYVRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRUcnhUb2tlbkNvbmZpZyhjb2luOiBUcm9uRXJjMjBDb2luKTogVHJ4VG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd0cngnIDogJ3R0cngnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRUcnhUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBUcnhUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBUcm9uRXJjMjBDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRUcnhUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0WHJwVG9rZW5Db25maWcoY29pbjogWHJwQ29pbik6IFhycFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAneHJwJyA6ICd0eHJwJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBpc3N1ZXJBZGRyZXNzOiBjb2luLmlzc3VlckFkZHJlc3MsXG4gICAgY3VycmVuY3lDb2RlOiBjb2luLmN1cnJlbmN5Q29kZSxcbiAgICBkb21haW46IGNvaW4uZG9tYWluLFxuICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRYcnBUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBYcnBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBYcnBDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRYcnBUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0U3VpVG9rZW5Db25maWcoY29pbjogU3VpQ29pbik6IFN1aVRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc3VpJyA6ICd0c3VpJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICBwYWNrYWdlSWQ6IGNvaW4ucGFja2FnZUlkLFxuICAgIG1vZHVsZTogY29pbi5tb2R1bGUsXG4gICAgc3ltYm9sOiBjb2luLnN5bWJvbCxcbiAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkU3VpVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogU3VpVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgU3VpQ29pbikge1xuICAgICAgYWNjLnB1c2goZ2V0U3VpVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldFRhb1Rva2VuQ29uZmlnKGNvaW46IFRhb0NvaW4pOiBUYW9Ub2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3RhbycgOiAndHRhbycsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgc3VibmV0SWQ6IGNvaW4uc3VibmV0SWQsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRUYW9Ub2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBUYW9Ub2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBUYW9Db2luKSB7XG4gICAgICBhY2MucHVzaChnZXRUYW9Ub2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0UG9seXhUb2tlbkNvbmZpZyhjb2luOiBQb2x5eENvaW4pOiBQb2x5eFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAncG9seXgnIDogJ3Rwb2x5eCcsXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgdGlja2VyOiBjb2luLnRpY2tlcixcbiAgICBhc3NldElkOiBjb2luLmFzc2V0SWQsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRQb2x5eFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFBvbHl4VG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgUG9seXhDb2luKSB7XG4gICAgICBhY2MucHVzaChnZXRQb2x5eFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBcHRUb2tlbkNvbmZpZyhjb2luOiBBcHRDb2luKTogQXB0VG9rZW5Db25maWcge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhcHQnIDogJ3RhcHQnLFxuICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgYXNzZXRJZDogY29pbi5hc3NldElkLFxuICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgfTtcbn1cbmNvbnN0IGdldEZvcm1hdHRlZEFwdFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IEFwdFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEFwdENvaW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldEFwdFRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRBcHRORlRDb2xsZWN0aW9uQ29uZmlnKGNvaW46IEFwdE5GVENvbGxlY3Rpb24pOiBBcHRORlRDb2xsZWN0aW9uQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYXB0JyA6ICd0YXB0JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIG5mdENvbGxlY3Rpb25JZDogY29pbi5uZnRDb2xsZWN0aW9uSWQsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRWZXRORlRDb2xsZWN0aW9uQ29uZmlnKGNvaW46IFZldE5GVENvbGxlY3Rpb24pOiBWZXRORlRDb2xsZWN0aW9uQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAndmV0JyA6ICd0dmV0JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIG5mdENvbGxlY3Rpb25JZDogY29pbi5uZnRDb2xsZWN0aW9uSWQsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkQXB0TkZUQ29sbGVjdGlvbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBBcHRORlRDb2xsZWN0aW9uQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgICBpZiAoY29pbiBpbnN0YW5jZW9mIEFwdE5GVENvbGxlY3Rpb24pIHtcbiAgICAgIGFjYy5wdXNoKGdldEFwdE5GVENvbGxlY3Rpb25Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmNvbnN0IGdldEZvcm1hdHRlZFZldE5GVENvbGxlY3Rpb25zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogVmV0TkZUQ29sbGVjdGlvbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBWZXRORlRDb2xsZWN0aW9uKSB7XG4gICAgICBhY2MucHVzaChnZXRWZXRORlRDb2xsZWN0aW9uQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRTaXAxMFRva2VuQ29uZmlnKGNvaW46IFNpcDEwVG9rZW4pOiBTaXAxMFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc3R4JyA6ICd0c3R4JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGFzc2V0SWQ6IGNvaW4uYXNzZXRJZCxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5jb25zdCBnZXRGb3JtYXR0ZWRTaXAxMFRva2VucyA9IChjdXN0b21Db2luTWFwID0gY29pbnMpID0+XG4gIGN1c3RvbUNvaW5NYXAucmVkdWNlKChhY2M6IFNpcDEwVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgU2lwMTBUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0U2lwMTBUb2tlbkNvbmZpZyhjb2luKSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcblxuZnVuY3Rpb24gZ2V0TmVwMTQxVG9rZW5Db25maWcoY29pbjogTmVwMTQxVG9rZW4pOiBOZXAxNDFUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ25lYXInIDogJ3RuZWFyJyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gICAgc3RvcmFnZURlcG9zaXRBbW91bnQ6IGNvaW4uc3RvcmFnZURlcG9zaXRBbW91bnQsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuY29uc3QgZ2V0Rm9ybWF0dGVkTmVwMTQxVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogTmVwMTQxVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgTmVwMTQxVG9rZW4pIHtcbiAgICAgIGFjYy5wdXNoKGdldE5lcDE0MVRva2VuQ29uZmlnKGNvaW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuXG5mdW5jdGlvbiBnZXRWZXRUb2tlbkNvbmZpZyhjb2luOiBWZXRUb2tlbik6IFZldFRva2VuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAndmV0JyA6ICd0dmV0JyxcbiAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICB9O1xufVxuXG5jb25zdCBnZXRGb3JtYXR0ZWRWZXRUb2tlbnMgPSAoY3VzdG9tQ29pbk1hcCA9IGNvaW5zKSA9PlxuICBjdXN0b21Db2luTWFwLnJlZHVjZSgoYWNjOiBWZXRUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBWZXRUb2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0VmV0VG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmNvbnN0IGdldEZvcm1hdHRlZENvc21vc0NoYWluVG9rZW5zID0gKGN1c3RvbUNvaW5NYXAgPSBjb2lucykgPT5cbiAgY3VzdG9tQ29pbk1hcC5yZWR1Y2UoKGFjYzogQ29zbW9zVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ29zbW9zQ2hhaW5Ub2tlbikge1xuICAgICAgYWNjLnB1c2goZ2V0Q29zbW9zVG9rZW5Db25maWcoY29pbikpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG5cbmZ1bmN0aW9uIGdldENvc21vc1Rva2VuQ29uZmlnKGNvaW46IENvc21vc0NoYWluVG9rZW4pOiBDb3Ntb3NUb2tlbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogY29pbi5uYW1lLFxuICAgIGNvaW46IGNvaW4ubmFtZS5zcGxpdCgnOicpWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICBkZW5vbTogY29pbi5kZW5vbSxcbiAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtYXR0ZWRUb2tlbnMgPSAoY29pbk1hcCA9IGNvaW5zKTogVG9rZW5zID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkQXB0TkZUQ29sbGVjdGlvbnMgPSBnZXRGb3JtYXR0ZWRBcHRORlRDb2xsZWN0aW9ucyhjb2luTWFwKTtcbiAgY29uc3QgZm9ybWF0dGVkVmV0TkZUQ29sbGVjdGlvbnMgPSBnZXRGb3JtYXR0ZWRWZXRORlRDb2xsZWN0aW9ucyhjb2luTWFwKTtcbiAgcmV0dXJuIHtcbiAgICBiaXRjb2luOiB7XG4gICAgICBldGg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRFcmMyMFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgICBuZnRzOiBnZXRGb3JtYXR0ZWRFcmM3MjFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICB4bG06IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTdGVsbGFyVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgYWxnbzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEFsZ29Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBvZmM6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRPZmNDb2lucyhjb2luTWFwKS5maWx0ZXIoXG4gICAgICAgICAgKHRva2VuKSA9PiBjb2luTWFwLmdldCh0b2tlbi50eXBlKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVRcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBjZWxvOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQ2Vsb1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGJzYzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEJzY1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGVvczoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEVvc1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGF2YXhjOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQXZheENUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBwb2x5Z29uOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkUG9seWdvblRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHNvbmVpdW06IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTb25laXVtVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgYXJiZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQXJiZXRoVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgb3BldGg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRPcGV0aFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHprZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkWmtldGhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBzb2w6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTb2xUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBoYmFyOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkSGJhclRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFkYToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEFkYVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHRyeDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFRyeFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHhycDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFhycFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHN1aToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFN1aVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHRhbzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFRhb1Rva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHBvbHl4OiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkUG9seXhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICAgIH0sXG4gICAgICBiZXJhOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkQmVyYVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGNvcmVkYW86IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRDb3JlZGFvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgd29ybGQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRXb3JsZFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFwdDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEFwdFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgICBuZnRDb2xsZWN0aW9uczogZm9ybWF0dGVkQXB0TkZUQ29sbGVjdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChuZnRDb2xsZWN0aW9uOiBBcHRORlRDb2xsZWN0aW9uQ29uZmlnKSA9PiBuZnRDb2xsZWN0aW9uLm5ldHdvcmsgPT09ICdNYWlubmV0J1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHN0eDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFNpcDEwVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgICAgbmVhcjoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZE5lcDE0MVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgfSxcbiAgICAgIHZldDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFZldFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgICAgICBuZnRDb2xsZWN0aW9uczogZm9ybWF0dGVkVmV0TkZUQ29sbGVjdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChuZnRDb2xsZWN0aW9uOiBWZXRORlRDb2xsZWN0aW9uQ29uZmlnKSA9PiBuZnRDb2xsZWN0aW9uLm5ldHdvcmsgPT09ICdNYWlubmV0J1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGNvc21vczoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZENvc21vc0NoYWluVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgICB9LFxuICAgIH0sXG4gICAgdGVzdG5ldDoge1xuICAgICAgZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkRXJjMjBUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgICAgbmZ0czogZ2V0Rm9ybWF0dGVkRXJjNzIxVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgeGxtOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU3RlbGxhclRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFsZ286IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBbGdvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgb2ZjOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkT2ZjQ29pbnMoY29pbk1hcCkuZmlsdGVyKFxuICAgICAgICAgICh0b2tlbikgPT4gY29pbk1hcC5nZXQodG9rZW4udHlwZSkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5URVNUTkVUXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgY2Vsbzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZENlbG9Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBic2M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRCc2NUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBlb3M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRFb3NUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBhdmF4Yzoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEF2YXhDVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgcG9seWdvbjoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFBvbHlnb25Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBzb25laXVtOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU29uZWl1bVRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIGFyYmV0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEFyYmV0aFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIG9wZXRoOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkT3BldGhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICB6a2V0aDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFprZXRoVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgc29sOiB7XG4gICAgICAgIHRva2VuczogZ2V0Rm9ybWF0dGVkU29sVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgaGJhcjoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEhiYXJUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBhZGE6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBZGFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICB0cng6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRUcnhUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICB4cnA6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRYcnBUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBzdWk6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTdWlUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICB0YW86IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRUYW9Ub2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBwb2x5eDoge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZFBvbHl4VG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgYmVyYToge1xuICAgICAgICB0b2tlbnM6IGdldEZvcm1hdHRlZEJlcmFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICBhcHQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRBcHRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgICAgbmZ0Q29sbGVjdGlvbnM6IGZvcm1hdHRlZEFwdE5GVENvbGxlY3Rpb25zLmZpbHRlcihcbiAgICAgICAgICAobmZ0Q29sbGVjdGlvbjogQXB0TkZUQ29sbGVjdGlvbkNvbmZpZykgPT4gbmZ0Q29sbGVjdGlvbi5uZXR3b3JrID09PSAnVGVzdG5ldCdcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBzdHg6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRTaXAxMFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIGNvcmVkYW86IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRDb3JlZGFvVG9rZW5zKGNvaW5NYXApLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgICB9LFxuICAgICAgd29ybGQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRXb3JsZFRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICAgIG5lYXI6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWROZXAxNDFUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgIH0sXG4gICAgICB2ZXQ6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRWZXRUb2tlbnMoY29pbk1hcCkuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICAgICAgbmZ0Q29sbGVjdGlvbnM6IGZvcm1hdHRlZFZldE5GVENvbGxlY3Rpb25zLmZpbHRlcihcbiAgICAgICAgICAobmZ0Q29sbGVjdGlvbjogVmV0TkZUQ29sbGVjdGlvbkNvbmZpZykgPT4gbmZ0Q29sbGVjdGlvbi5uZXR3b3JrID09PSAnVGVzdG5ldCdcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBjb3Ntb3M6IHtcbiAgICAgICAgdG9rZW5zOiBnZXRGb3JtYXR0ZWRDb3Ntb3NDaGFpblRva2Vucyhjb2luTWFwKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuLyoqXG4gKiBWZXJpZnkgbWFpbm5ldCBvciB0ZXN0bmV0IHRva2Vuc1xuICogQHBhcmFtIHRva2Vuc1xuICovXG5jb25zdCB2ZXJpZnlUb2tlbnMgPSBmdW5jdGlvbiAodG9rZW5zOiBCYXNlVG9rZW5Db25maWdbXSkge1xuICBjb25zdCB2ZXJpZmllZFRva2VuczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgaWYgKHZlcmlmaWVkVG9rZW5zW3Rva2VuLnR5cGVdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rva2VuIDogJyArIHRva2VuLnR5cGUgKyAnIGR1cGxpY2F0ZWQuJyk7XG4gICAgfVxuICAgIHZlcmlmaWVkVG9rZW5zW3Rva2VuLnR5cGVdID0gdHJ1ZTtcblxuICAgIGlmIChcbiAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcyAmJlxuICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzICE9PVxuICAgICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAndG9rZW4gY29udHJhY3Q6ICcgKyB0b2tlbi50eXBlICsgJyBpcyBub3QgYWxsIGxvd2VyIGNhc2U6ICcgKyAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmVyaWZpZWRUb2tlbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdG9rZW5zID0gZ2V0Rm9ybWF0dGVkVG9rZW5zKCk7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXR0ZWRBbGdvVG9rZW5zID0gZ2V0Rm9ybWF0dGVkQWxnb1Rva2VucygpO1xuXG5jb25zdCBtYWlubmV0RXJjMjBUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLmJpdGNvaW4uZXRoLnRva2Vucyk7XG5jb25zdCBtYWlubmV0RXJjNzIxVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLmV0aC5uZnRzKTtcbmNvbnN0IG1haW5uZXRTdGVsbGFyVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLnhsbS50b2tlbnMpO1xuZXhwb3J0IGNvbnN0IG1haW5uZXRUb2tlbnMgPSB7IC4uLm1haW5uZXRFcmMyMFRva2VucywgLi4ubWFpbm5ldEVyYzcyMVRva2VucywgLi4ubWFpbm5ldFN0ZWxsYXJUb2tlbnMgfTtcblxuY29uc3QgdGVzdG5ldEVyYzIwVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy50ZXN0bmV0LmV0aC50b2tlbnMpO1xuY29uc3QgdGVzdG5ldEVyYzcyMVRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC5ldGgubmZ0cyk7XG5jb25zdCB0ZXN0bmV0U3RlbGxhclRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC54bG0udG9rZW5zKTtcbmV4cG9ydCBjb25zdCB0ZXN0bmV0VG9rZW5zID0geyAuLi50ZXN0bmV0RXJjMjBUb2tlbnMsIC4uLnRlc3RuZXRFcmM3MjFUb2tlbnMsIC4uLnRlc3RuZXRTdGVsbGFyVG9rZW5zIH07XG5cbi8qKlxuICogR2V0IGZvcm1hdHRlZCB0b2tlbiBjb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSBjb2luXG4gKiBAcGFyYW0gY29pbiAtIFN0YXRpYyBCYXNlIGNvaW4gaW5zdGFuY2VcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgdG9rZW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvaW4sIG9yIHVuZGVmaW5lZCBpZiBub3Qgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXR0ZWRUb2tlbkNvbmZpZ0ZvckNvaW4oY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+KTogVG9rZW5Db25maWcgfCB1bmRlZmluZWQge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEVyYzIwQ29pbikge1xuICAgIHJldHVybiBnZXRFcmMyMFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBTdGVsbGFyQ29pbikge1xuICAgIHJldHVybiBnZXRTdGVsbGFyVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIE9mY0NvaW4pIHtcbiAgICByZXR1cm4gZ2V0T2ZjVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIENlbG9Db2luKSB7XG4gICAgcmV0dXJuIGdldENlbG9Ub2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgQnNjQ29pbikge1xuICAgIHJldHVybiBnZXRCc2NUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgRW9zQ29pbikge1xuICAgIHJldHVybiBnZXRFb3NUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0QXZheENUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChcbiAgICBjb2luIGluc3RhbmNlb2YgUG9seWdvbkVSQzIwVG9rZW4gfHxcbiAgICAoKGNvaW4gaW5zdGFuY2VvZiBFcmM3MjFDb2luIHx8IGNvaW4gaW5zdGFuY2VvZiBFcmMxMTU1Q29pbikgJiYgY29pbi5mYW1pbHkgPT09IENvaW5GYW1pbHkuUE9MWUdPTilcbiAgKSB7XG4gICAgcmV0dXJuIGdldFBvbHlnb25Ub2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmICgoY29pbiBpbnN0YW5jZW9mIEVyYzcyMUNvaW4gfHwgY29pbiBpbnN0YW5jZW9mIEVyYzExNTVDb2luKSAmJiBjb2luLmZhbWlseSA9PT0gQ29pbkZhbWlseS5TT05FSVVNKSB7XG4gICAgcmV0dXJuIGdldFNvbmVpdW1Ub2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiAmJiBjb2luLmZhbWlseSA9PT0gQ29pbkZhbWlseS5FVEgpIHtcbiAgICByZXR1cm4gZ2V0RXJjNzIxVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEFyYmV0aEVSQzIwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0QXJiZXRoVG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIE9wZXRoRVJDMjBUb2tlbikge1xuICAgIHJldHVybiBnZXRPcGV0aFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBaa2V0aEVSQzIwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0WmtldGhUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgU29sQ29pbikge1xuICAgIHJldHVybiBnZXRTb2xUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgSGVkZXJhVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0SGJhclRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBBZGFUb2tlbikge1xuICAgIHJldHVybiBnZXRBZGFUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgVHJvbkVyYzIwQ29pbikge1xuICAgIHJldHVybiBnZXRUcnhUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgWHJwQ29pbikge1xuICAgIHJldHVybiBnZXRYcnBUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgU3VpQ29pbikge1xuICAgIHJldHVybiBnZXRTdWlUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgVGFvQ29pbikge1xuICAgIHJldHVybiBnZXRUYW9Ub2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgUG9seXhDb2luKSB7XG4gICAgcmV0dXJuIGdldFBvbHl4VG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEFwdENvaW4pIHtcbiAgICByZXR1cm4gZ2V0QXB0VG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIEFwdE5GVENvbGxlY3Rpb24pIHtcbiAgICByZXR1cm4gZ2V0QXB0TkZUQ29sbGVjdGlvbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgU2lwMTBUb2tlbikge1xuICAgIHJldHVybiBnZXRTaXAxMFRva2VuQ29uZmlnKGNvaW4pO1xuICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBOZXAxNDFUb2tlbikge1xuICAgIHJldHVybiBnZXROZXAxNDFUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgQ29zbW9zQ2hhaW5Ub2tlbikge1xuICAgIHJldHVybiBnZXRDb3Ntb3NUb2tlbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgVmV0VG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0VmV0VG9rZW5Db25maWcoY29pbik7XG4gIH0gZWxzZSBpZiAoY29pbiBpbnN0YW5jZW9mIFZldE5GVENvbGxlY3Rpb24pIHtcbiAgICByZXR1cm4gZ2V0VmV0TkZUQ29sbGVjdGlvbkNvbmZpZyhjb2luKTtcbiAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgQ29yZWRhb0VSQzIwVG9rZW4pIHtcbiAgICByZXR1cm4gZ2V0Q29yZWRhb1Rva2VuQ29uZmlnKGNvaW4pO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=