@effect-aws/client-iam 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/IAMService.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultIAMServiceLayer = exports.IAMServiceLayer = exports.BaseIAMServiceLayer = exports.makeIAMService = exports.IAMService = void 0;
4
+ /**
5
+ * @since 1.0.0
6
+ */
4
7
  const client_iam_1 = require("@aws-sdk/client-iam");
5
8
  const effect_1 = require("effect");
6
9
  const Errors_1 = require("./Errors");
@@ -221,4 +224,4 @@ exports.IAMServiceLayer = exports.BaseIAMServiceLayer.pipe(effect_1.Layer.provid
221
224
  * @category layers
222
225
  */
223
226
  exports.DefaultIAMServiceLayer = exports.IAMServiceLayer.pipe(effect_1.Layer.provide(IAMClientInstanceConfig_1.DefaultIAMClientConfigLayer));
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQStkNkI7QUFFN0IsbUNBQXNFO0FBQ3RFLHFDQStCa0I7QUFDbEIsMkRBQWdGO0FBQ2hGLHVFQUF3RTtBQUV4RSxNQUFNLFFBQVEsR0FBRztJQUNmLHlDQUF5QyxFQUF6QyxzREFBeUM7SUFDekMsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsNEJBQTRCLEVBQTVCLHlDQUE0QjtJQUM1Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQiwwQkFBMEIsRUFBMUIsdUNBQTBCO0lBQzFCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6Qiw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHNDQUFzQyxFQUF0QyxtREFBc0M7SUFDdEMsaUJBQWlCLEVBQWpCLDhCQUFpQjtJQUNqQiw2QkFBNkIsRUFBN0IsMENBQTZCO0lBQzdCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQix3QkFBd0IsRUFBeEIscUNBQXdC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LEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdEUsVUFBVSxFQUNWLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBZSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFVLEVBQUUsc0JBQWMsQ0FBQyxDQUFDO0FBRTVFOzs7R0FHRztBQUNVLFFBQUEsZUFBZSxHQUFHLDJCQUFtQixDQUFDLElBQUksQ0FDckQsY0FBSyxDQUFDLE9BQU8sQ0FBQywwQ0FBc0IsQ0FBQyxDQUN0QyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyx1QkFBZSxDQUFDLElBQUksQ0FDeEQsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxREFBMkIsQ0FBQyxDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFNU2VydmljZUV4Y2VwdGlvbixcbiAgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQWRkVXNlclRvR3JvdXBDb21tYW5kLFxuICB0eXBlIEFkZFVzZXJUb0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFVzZXJUb0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQXR0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQ2hhbmdlUGFzc3dvcmRDb21tYW5kLFxuICB0eXBlIENoYW5nZVBhc3N3b3JkQ29tbWFuZElucHV0LFxuICB0eXBlIENoYW5nZVBhc3N3b3JkQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGV0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kLFxuICB0eXBlIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kLFxuICB0eXBlIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2V0R3JvdXBDb21tYW5kLFxuICB0eXBlIEdldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgR2V0R3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBHZXRNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0Um9sZUNvbW1hbmQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSb2xlQ29tbWFuZE91dHB1dCxcbiAgR2V0Um9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBHZXRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgR2V0VXNlckNvbW1hbmQsXG4gIHR5cGUgR2V0VXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVc2VyQ29tbWFuZE91dHB1dCxcbiAgR2V0VXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY2Vzc0tleXNDb21tYW5kLFxuICB0eXBlIExpc3RBY2Nlc3NLZXlzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY2Nlc3NLZXlzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1GQURldmljZXNDb21tYW5kLFxuICB0eXBlIExpc3RNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNRkFEZXZpY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljeVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY3lUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY3lUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9sZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9sZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kLFxuICB0eXBlIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VXNlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VXNlclRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZE91dHB1dCxcbiAgUHV0R3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgUHV0Um9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgUHV0VXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgdHlwZSBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBSZXN5bmNNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmQsXG4gIHR5cGUgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZE91dHB1dCxcbiAgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICB0eXBlIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBUYWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVGFnUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBUYWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVGFnUm9sZUNvbW1hbmQsXG4gIHR5cGUgVGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBUYWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVGFnVXNlckNvbW1hbmQsXG4gIHR5cGUgVGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIFVudGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVudGFnUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVW50YWdSb2xlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdVc2VyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1pYW1cIjtcbmltcG9ydCB7IHR5cGUgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCBSZWFkb25seVJlY29yZCwgRGF0YSB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydEV4cGlyZWRFcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3IsXG4gIERlbGV0ZUNvbmZsaWN0RXJyb3IsXG4gIER1cGxpY2F0ZUNlcnRpZmljYXRlRXJyb3IsXG4gIER1cGxpY2F0ZVNTSFB1YmxpY0tleUVycm9yLFxuICBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3IsXG4gIElBTVNlcnZpY2VFcnJvcixcbiAgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yLFxuICBJbnZhbGlkQ2VydGlmaWNhdGVFcnJvcixcbiAgSW52YWxpZElucHV0RXJyb3IsXG4gIEludmFsaWRQdWJsaWNLZXlFcnJvcixcbiAgSW52YWxpZFVzZXJUeXBlRXJyb3IsXG4gIEtleVBhaXJNaXNtYXRjaEVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3IsXG4gIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3IsXG4gIE5vU3VjaEVudGl0eUVycm9yLFxuICBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yLFxuICBQb2xpY3lFdmFsdWF0aW9uRXJyb3IsXG4gIFBvbGljeU5vdEF0dGFjaGFibGVFcnJvcixcbiAgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gIFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxuICBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgVW5yZWNvZ25pemVkUHVibGljS2V5RW5jb2RpbmdFcnJvcixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBJQU1DbGllbnRJbnN0YW5jZSwgSUFNQ2xpZW50SW5zdGFuY2VMYXllciB9IGZyb20gXCIuL0lBTUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0SUFNQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9JQU1DbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIEFkZFVzZXJUb0dyb3VwQ29tbWFuZCxcbiAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgQXR0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIENoYW5nZVBhc3N3b3JkQ29tbWFuZCxcbiAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlR3JvdXBDb21tYW5kLFxuICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBDcmVhdGVQb2xpY3lDb21tYW5kLFxuICBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgQ3JlYXRlUm9sZUNvbW1hbmQsXG4gIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmQsXG4gIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZUdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kLFxuICBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlUm9sZUNvbW1hbmQsXG4gIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIERldGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZCxcbiAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZCxcbiAgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZCxcbiAgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kLFxuICBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIEdldEdyb3VwQ29tbWFuZCxcbiAgR2V0R3JvdXBQb2xpY3lDb21tYW5kLFxuICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBHZXRMb2dpblByb2ZpbGVDb21tYW5kLFxuICBHZXRNRkFEZXZpY2VDb21tYW5kLFxuICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIEdldFJvbGVDb21tYW5kLFxuICBHZXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZCxcbiAgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmQsXG4gIEdldFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIEdldFVzZXJDb21tYW5kLFxuICBHZXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgTGlzdEFjY2Vzc0tleXNDb21tYW5kLFxuICBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZCxcbiAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICBMaXN0R3JvdXBzQ29tbWFuZCxcbiAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZCxcbiAgTGlzdE1GQURldmljZXNDb21tYW5kLFxuICBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kLFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kLFxuICBMaXN0UG9saWN5VGFnc0NvbW1hbmQsXG4gIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RSb2xlUG9saWNpZXNDb21tYW5kLFxuICBMaXN0Um9sZXNDb21tYW5kLFxuICBMaXN0Um9sZVRhZ3NDb21tYW5kLFxuICBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmQsXG4gIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kLFxuICBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kLFxuICBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmQsXG4gIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZCxcbiAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RVc2Vyc0NvbW1hbmQsXG4gIExpc3RVc2VyVGFnc0NvbW1hbmQsXG4gIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmQsXG4gIFB1dEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBQdXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBQdXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZCxcbiAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZCxcbiAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kLFxuICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZCxcbiAgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kLFxuICBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFRhZ01GQURldmljZUNvbW1hbmQsXG4gIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFRhZ1BvbGljeUNvbW1hbmQsXG4gIFRhZ1JvbGVDb21tYW5kLFxuICBUYWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFRhZ1VzZXJDb21tYW5kLFxuICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFVudGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBVbnRhZ1BvbGljeUNvbW1hbmQsXG4gIFVudGFnUm9sZUNvbW1hbmQsXG4gIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVudGFnVXNlckNvbW1hbmQsXG4gIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kLFxuICBVcGRhdGVHcm91cENvbW1hbmQsXG4gIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kLFxuICBVcGRhdGVSb2xlQ29tbWFuZCxcbiAgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgVXBkYXRlVXNlckNvbW1hbmQsXG4gIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZCxcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCB0eXBlIElBTVNlcnZpY2UgPSB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFVzZXJUb0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGFkZFVzZXJUb0dyb3VwOiAoXG4gICAgYXJnczogQWRkVXNlclRvR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEFkZFVzZXJUb0dyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hSb2xlUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNoVXNlclBvbGljeTogKFxuICAgIGFyZ3M6IEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENoYW5nZVBhc3N3b3JkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVBhc3N3b3JkOiAoXG4gICAgYXJnczogQ2hhbmdlUGFzc3dvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlclR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWNjb3VudEFsaWFzOiAoXG4gICAgYXJnczogQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUdyb3VwOiAoXG4gICAgYXJnczogQ3JlYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUG9saWN5OiAoXG4gICAgYXJnczogQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVSb2xlOiAoXG4gICAgYXJnczogQ3JlYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlOiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgICBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVVzZXI6IChcbiAgICBhcmdzOiBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVmlydHVhbE1GQURldmljZTogKFxuICAgIGFyZ3M6IENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlYWN0aXZhdGVNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVBY2Nlc3NLZXk6IChcbiAgICBhcmdzOiBEZWxldGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRBbGlhczogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGU6IChcbiAgICBhcmdzOiBEZWxldGVSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBEZWxldGVSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlOiAoXG4gICAgYXJnczogRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVXNlcjogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVWaXJ0dWFsTUZBRGV2aWNlOiAoXG4gICAgYXJnczogRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IERldGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWNoUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hVc2VyUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERldGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZU1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBlbmFibGVNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBFbmFibGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydDogKFxuICAgIGFyZ3M6IEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0OiAoXG4gICAgYXJnczogR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgICBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsczogKFxuICAgIGFyZ3M6IEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY2Vzc0tleUxhc3RVc2VkOiAoXG4gICAgYXJnczogR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IsXG4gICAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHM6IChcbiAgICBhcmdzOiBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRTdW1tYXJ5OiAoXG4gICAgYXJnczogR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeTogKFxuICAgIGFyZ3M6IEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IsXG4gICAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5OiAoXG4gICAgYXJnczogR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENyZWRlbnRpYWxSZXBvcnQ6IChcbiAgICBhcmdzOiBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydEV4cGlyZWRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0R3JvdXA6IChcbiAgICBhcmdzOiBHZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0R3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBHZXRMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0TUZBRGV2aWNlOiAoXG4gICAgYXJnczogR2V0TUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydDogKFxuICAgIGFyZ3M6IEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0UG9saWN5OiAoXG4gICAgYXJnczogR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFJvbGU6IChcbiAgICBhcmdzOiBHZXRSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Um9sZVBvbGljeTogKFxuICAgIGFyZ3M6IEdldFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IEdldFNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllczogKFxuICAgIGFyZ3M6IEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogR2V0U1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG4gICAgR2V0U1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFVzZXI6IChcbiAgICBhcmdzOiBHZXRVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0VXNlclBvbGljeTogKFxuICAgIGFyZ3M6IEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0VXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY2Vzc0tleXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEFjY2Vzc0tleXM6IChcbiAgICBhcmdzOiBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QWNjZXNzS2V5c0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBY2NvdW50QWxpYXNlczogKFxuICAgIGFyZ3M6IExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QXR0YWNoZWRSb2xlUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEF0dGFjaGVkVXNlclBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RFbnRpdGllc0ZvclBvbGljeTogKFxuICAgIGFyZ3M6IExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RHcm91cFBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3VwczogKFxuICAgIGFyZ3M6IExpc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RHcm91cHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RHcm91cHNGb3JVc2VyOiAoXG4gICAgYXJnczogTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RJbnN0YW5jZVByb2ZpbGVzOiAoXG4gICAgYXJnczogTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlOiAoXG4gICAgYXJnczogTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1GQURldmljZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE1GQURldmljZXM6IChcbiAgICBhcmdzOiBMaXN0TUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0TUZBRGV2aWNlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE1GQURldmljZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnM6IChcbiAgICBhcmdzOiBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzOiAoXG4gICAgYXJnczogTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2VzczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWN5VGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWN5VGFnczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY3lUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY3lUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljeVZlcnNpb25zOiAoXG4gICAgYXJnczogTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZVBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFJvbGVzOiAoXG4gICAgYXJnczogTGlzdFJvbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0Um9sZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0Um9sZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFJvbGVUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U0FNTFByb3ZpZGVyczogKFxuICAgIGFyZ3M6IExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNBTUxQcm92aWRlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmVyQ2VydGlmaWNhdGVzOiAoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzOiAoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzOiAoXG4gICAgYXJnczogTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3IsXG4gICAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2lnbmluZ0NlcnRpZmljYXRlczogKFxuICAgIGFyZ3M6IExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U1NIUHVibGljS2V5czogKFxuICAgIGFyZ3M6IExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2VyUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RVc2VyczogKFxuICAgIGFyZ3M6IExpc3RVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFVzZXJzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJUYWdzOiAoXG4gICAgYXJnczogTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RVc2VyVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RWaXJ0dWFsTUZBRGV2aWNlczogKFxuICAgIGFyZ3M6IExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvcixcbiAgICBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogUHV0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFB1dEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBQdXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVVzZXJGcm9tR3JvdXA6IChcbiAgICBhcmdzOiBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXN5bmNNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzeW5jTUZBRGV2aWNlOiAoXG4gICAgYXJnczogUmVzeW5jTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzZXREZWZhdWx0UG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlczogKFxuICAgIGFyZ3M6IFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNpbXVsYXRlQ3VzdG9tUG9saWN5OiAoXG4gICAgYXJnczogU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IFBvbGljeUV2YWx1YXRpb25FcnJvcixcbiAgICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2ltdWxhdGVQcmluY2lwYWxQb2xpY3k6IChcbiAgICBhcmdzOiBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5RXZhbHVhdGlvbkVycm9yLFxuICAgIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBUYWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ01GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUG9saWN5OiAoXG4gICAgYXJnczogVGFnUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1JvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUm9sZTogKFxuICAgIGFyZ3M6IFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1JvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1NBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBUYWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1VzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnVXNlcjogKFxuICAgIGFyZ3M6IFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1VzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBVbnRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnUG9saWN5OiAoXG4gICAgYXJnczogVW50YWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnUm9sZTogKFxuICAgIGFyZ3M6IFVudGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1NBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1VzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdVc2VyOiAoXG4gICAgYXJnczogVW50YWdVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1VzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVBY2Nlc3NLZXk6IChcbiAgICBhcmdzOiBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFzc3VtZVJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlR3JvdXA6IChcbiAgICBhcmdzOiBVcGRhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnQ6IChcbiAgICBhcmdzOiBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlUm9sZTogKFxuICAgIGFyZ3M6IFVwZGF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVJvbGVEZXNjcmlwdGlvbjogKFxuICAgIGFyZ3M6IFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlVXNlcjogKFxuICAgIGFyZ3M6IFVwZGF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBLZXlQYWlyTWlzbWF0Y2hFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZFNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IER1cGxpY2F0ZVNTSFB1YmxpY0tleUVycm9yXG4gICAgfCBJbnZhbGlkUHVibGljS2V5RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG4gICAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1TZXJ2aWNlID0gQ29udGV4dC5UYWc8SUFNU2VydmljZT4oXG4gIFN5bWJvbC5mb3IoXCJAZWZmZWN0LWF3cy9jbGllbnQtaWFtL0lBTVNlcnZpY2VcIiksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUlBTVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhJQU1DbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlYWRvbmx5UmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBJQU1TZXJ2aWNlRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxJQU1TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBJQU1TZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlSUFNU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KElBTVNlcnZpY2UsIG1ha2VJQU1TZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IElBTVNlcnZpY2VMYXllciA9IEJhc2VJQU1TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShJQU1DbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0SUFNU2VydmljZUxheWVyID0gSUFNU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBK2Q2QjtBQUU3QixtQ0FBc0U7QUFDdEUscUNBK0JrQjtBQUNsQiwyREFBZ0Y7QUFDaEYsdUVBQXdFO0FBRXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2YseUNBQXlDLEVBQXpDLHNEQUF5QztJQUN6QywrQkFBK0IsRUFBL0IsNENBQStCO0lBQy9CLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIsd0JBQXdCLEVBQXhCLHFDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQiw0QkFBNEIsRUFBNUIseUNBQTRCO0lBQzVCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsa0NBQWtDLEVBQWxDLCtDQUFrQztJQUNsQyxtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsaUJBQWlCLEVBQWpCLDhCQUFpQjtJQUNqQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsc0NBQXNDLEVBQXRDLG1EQUFzQztJQUN0QyxpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLDZCQUE2QixFQUE3QiwwQ0FBNkI7SUFDN0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsa0NBQWtDLEVBQWxDLCtDQUFrQztJQUNsQyxrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLHdCQUF3QixF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TCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN0RSxVQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFlLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsa0JBQVUsRUFBRSxzQkFBYyxDQUFDLENBQUM7QUFFNUU7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsMkJBQW1CLENBQUMsSUFBSSxDQUNyRCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLHVCQUFlLENBQUMsSUFBSSxDQUN4RCxjQUFLLENBQUMsT0FBTyxDQUFDLHFEQUEyQixDQUFDLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBJQU1TZXJ2aWNlRXhjZXB0aW9uLFxuICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBBZGRVc2VyVG9Hcm91cENvbW1hbmQsXG4gIHR5cGUgQWRkVXNlclRvR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVXNlclRvR3JvdXBDb21tYW5kT3V0cHV0LFxuICBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBDaGFuZ2VQYXNzd29yZENvbW1hbmQsXG4gIHR5cGUgQ2hhbmdlUGFzc3dvcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2hhbmdlUGFzc3dvcmRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVSb2xlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBY2Nlc3NLZXlDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHcm91cFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVSb2xlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERldGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERldGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBFbmFibGVNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIEVuYWJsZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kT3V0cHV0LFxuICBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmQsXG4gIHR5cGUgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kT3V0cHV0LFxuICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kLFxuICB0eXBlIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kT3V0cHV0LFxuICBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgR2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBHZXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0R3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dpblByb2ZpbGVDb21tYW5kLFxuICB0eXBlIEdldExvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBHZXRNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIEdldE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBHZXRSb2xlQ29tbWFuZCxcbiAgdHlwZSBHZXRSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJvbGVDb21tYW5kT3V0cHV0LFxuICBHZXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIEdldFNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRTU0hQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIEdldFNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICBHZXRVc2VyQ29tbWFuZCxcbiAgdHlwZSBHZXRVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFVzZXJDb21tYW5kT3V0cHV0LFxuICBHZXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBMaXN0QWNjZXNzS2V5c0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFjY2Vzc0tleXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjY2Vzc0tleXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kLFxuICB0eXBlIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kLFxuICB0eXBlIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcm91cHNDb21tYW5kT3V0cHV0LFxuICBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmQsXG4gIHR5cGUgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0TUZBRGV2aWNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1GQURldmljZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1GQURldmljZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWN5VGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljeVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljeVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0Um9sZXNDb21tYW5kLFxuICB0eXBlIExpc3RSb2xlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9sZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0Um9sZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RSb2xlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9sZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2VyUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VXNlcnNDb21tYW5kLFxuICB0eXBlIExpc3RVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VXNlcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VXNlclRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RVc2VyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VXNlclRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kLFxuICB0eXBlIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kT3V0cHV0LFxuICBQdXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0R3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIHR5cGUgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICBQdXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIHR5cGUgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICBQdXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICBSZXN5bmNNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIFJlc3luY01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN5bmNNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZCxcbiAgdHlwZSBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kT3V0cHV0LFxuICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBUYWdNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIFRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBUYWdQb2xpY3lDb21tYW5kLFxuICB0eXBlIFRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBUYWdSb2xlQ29tbWFuZCxcbiAgdHlwZSBUYWdSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1JvbGVDb21tYW5kT3V0cHV0LFxuICBUYWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBUYWdVc2VyQ29tbWFuZCxcbiAgdHlwZSBUYWdVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1VzZXJDb21tYW5kT3V0cHV0LFxuICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBVbnRhZ01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1BvbGljeUNvbW1hbmQsXG4gIHR5cGUgVW50YWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1JvbGVDb21tYW5kLFxuICB0eXBlIFVudGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1JvbGVDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1VzZXJDb21tYW5kLFxuICB0eXBlIFVudGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1VzZXJDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVHcm91cENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlR3JvdXBDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVSb2xlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWlhbVwiO1xuaW1wb3J0IHsgdHlwZSBIdHRwSGFuZGxlck9wdGlvbnMgYXMgX19IdHRwSGFuZGxlck9wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQsIEVmZmVjdCwgTGF5ZXIsIFJlYWRvbmx5UmVjb3JkLCBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yLFxuICBDcmVkZW50aWFsUmVwb3J0RXhwaXJlZEVycm9yLFxuICBDcmVkZW50aWFsUmVwb3J0Tm90UHJlc2VudEVycm9yLFxuICBDcmVkZW50aWFsUmVwb3J0Tm90UmVhZHlFcnJvcixcbiAgRGVsZXRlQ29uZmxpY3RFcnJvcixcbiAgRHVwbGljYXRlQ2VydGlmaWNhdGVFcnJvcixcbiAgRHVwbGljYXRlU1NIUHVibGljS2V5RXJyb3IsXG4gIEVudGl0eUFscmVhZHlFeGlzdHNFcnJvcixcbiAgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvcixcbiAgSUFNU2VydmljZUVycm9yLFxuICBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3IsXG4gIEludmFsaWRDZXJ0aWZpY2F0ZUVycm9yLFxuICBJbnZhbGlkSW5wdXRFcnJvcixcbiAgSW52YWxpZFB1YmxpY0tleUVycm9yLFxuICBJbnZhbGlkVXNlclR5cGVFcnJvcixcbiAgS2V5UGFpck1pc21hdGNoRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvcixcbiAgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvcixcbiAgTm9TdWNoRW50aXR5RXJyb3IsXG4gIFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3IsXG4gIFBvbGljeUV2YWx1YXRpb25FcnJvcixcbiAgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yLFxuICBSZXBvcnRHZW5lcmF0aW9uTGltaXRFeGNlZWRlZEVycm9yLFxuICBTZGtFcnJvcixcbiAgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG4gIFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IElBTUNsaWVudEluc3RhbmNlLCBJQU1DbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRJQU1DbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0lBTUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgQWRkVXNlclRvR3JvdXBDb21tYW5kLFxuICBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgQ2hhbmdlUGFzc3dvcmRDb21tYW5kLFxuICBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICBDcmVhdGVHcm91cENvbW1hbmQsXG4gIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICBDcmVhdGVSb2xlQ29tbWFuZCxcbiAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlR3JvdXBDb21tYW5kLFxuICBEZWxldGVHcm91cFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICBEZWxldGVSb2xlQ29tbWFuZCxcbiAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBEZWxldGVSb2xlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBEZWxldGVVc2VyUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIERldGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICBFbmFibGVNRkFEZXZpY2VDb21tYW5kLFxuICBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kLFxuICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kLFxuICBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmQsXG4gIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgR2V0R3JvdXBDb21tYW5kLFxuICBHZXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIEdldExvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIEdldE1GQURldmljZUNvbW1hbmQsXG4gIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgR2V0Um9sZUNvbW1hbmQsXG4gIEdldFJvbGVQb2xpY3lDb21tYW5kLFxuICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZCxcbiAgR2V0U1NIUHVibGljS2V5Q29tbWFuZCxcbiAgR2V0VXNlckNvbW1hbmQsXG4gIEdldFVzZXJQb2xpY3lDb21tYW5kLFxuICBMaXN0QWNjZXNzS2V5c0NvbW1hbmQsXG4gIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kLFxuICBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kLFxuICBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RHcm91cHNDb21tYW5kLFxuICBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kLFxuICBMaXN0TUZBRGV2aWNlc0NvbW1hbmQsXG4gIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kLFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIExpc3RQb2xpY3lUYWdzQ29tbWFuZCxcbiAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RSb2xlc0NvbW1hbmQsXG4gIExpc3RSb2xlVGFnc0NvbW1hbmQsXG4gIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZCxcbiAgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kLFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmQsXG4gIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmQsXG4gIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kLFxuICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFVzZXJzQ29tbWFuZCxcbiAgTGlzdFVzZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZCxcbiAgUHV0R3JvdXBQb2xpY3lDb21tYW5kLFxuICBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIFB1dFJvbGVQb2xpY3lDb21tYW5kLFxuICBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIFB1dFVzZXJQb2xpY3lDb21tYW5kLFxuICBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kLFxuICBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBSZXN5bmNNRkFEZXZpY2VDb21tYW5kLFxuICBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kLFxuICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgVGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgVGFnUG9saWN5Q29tbWFuZCxcbiAgVGFnUm9sZUNvbW1hbmQsXG4gIFRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVGFnVXNlckNvbW1hbmQsXG4gIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgVW50YWdNRkFEZXZpY2VDb21tYW5kLFxuICBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFVudGFnUG9saWN5Q29tbWFuZCxcbiAgVW50YWdSb2xlQ29tbWFuZCxcbiAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVW50YWdVc2VyQ29tbWFuZCxcbiAgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmQsXG4gIFVwZGF0ZUdyb3VwQ29tbWFuZCxcbiAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmQsXG4gIFVwZGF0ZVJvbGVDb21tYW5kLFxuICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kLFxuICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBVcGRhdGVVc2VyQ29tbWFuZCxcbiAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kLFxufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IHR5cGUgSUFNU2VydmljZSA9IHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVXNlclRvR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkVXNlclRvR3JvdXA6IChcbiAgICBhcmdzOiBBZGRVc2VyVG9Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQWRkVXNlclRvR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hVc2VyUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2hhbmdlUGFzc3dvcmRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlUGFzc3dvcmQ6IChcbiAgICBhcmdzOiBDaGFuZ2VQYXNzd29yZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENoYW5nZVBhc3N3b3JkQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWNjZXNzS2V5OiAoXG4gICAgYXJnczogQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBY2NvdW50QWxpYXM6IChcbiAgICBhcmdzOiBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVQb2xpY3k6IChcbiAgICBhcmdzOiBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJvbGU6IChcbiAgICBhcmdzOiBDcmVhdGVSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmljZUxpbmtlZFJvbGU6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yLFxuICAgIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVXNlcjogKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVWaXJ0dWFsTUZBRGV2aWNlOiAoXG4gICAgYXJnczogQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhY3RpdmF0ZU1GQURldmljZTogKFxuICAgIGFyZ3M6IERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudEFsaWFzOiAoXG4gICAgYXJnczogRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUm9sZTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIERlbGV0ZVJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBEZWxldGVSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmljZUxpbmtlZFJvbGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyOiAoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVZpcnR1YWxNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRldGFjaEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hSb2xlUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRldGFjaFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU1GQURldmljZTogKFxuICAgIGFyZ3M6IEVuYWJsZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0OiAoXG4gICAgYXJnczogR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnQ6IChcbiAgICBhcmdzOiBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBSZXBvcnRHZW5lcmF0aW9uTGltaXRFeGNlZWRlZEVycm9yLFxuICAgIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzOiAoXG4gICAgYXJnczogR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjZXNzS2V5TGFzdFVzZWQ6IChcbiAgICBhcmdzOiBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvcixcbiAgICBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsczogKFxuICAgIGFyZ3M6IEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjb3VudFBhc3N3b3JkUG9saWN5OiAoXG4gICAgYXJnczogR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjb3VudFN1bW1hcnk6IChcbiAgICBhcmdzOiBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5OiAoXG4gICAgYXJnczogR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvcixcbiAgICBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Q3JlZGVudGlhbFJlcG9ydDogKFxuICAgIGFyZ3M6IEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0RXhwaXJlZEVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0Tm90UHJlc2VudEVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0Tm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRHcm91cDogKFxuICAgIGFyZ3M6IEdldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IEdldEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0SW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldExvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IEdldExvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBHZXRNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0TUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0OiAoXG4gICAgYXJnczogR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0UG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Um9sZTogKFxuICAgIGFyZ3M6IEdldFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0Um9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Um9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRSb2xlUG9saWN5OiAoXG4gICAgYXJnczogR2V0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogR2V0U0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHM6IChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXM6IChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBHZXRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgVW5yZWNvZ25pemVkUHVibGljS2V5RW5jb2RpbmdFcnJvcixcbiAgICBHZXRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0VXNlcjogKFxuICAgIGFyZ3M6IEdldFVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0VXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRVc2VyUG9saWN5OiAoXG4gICAgYXJnczogR2V0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjZXNzS2V5c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QWNjZXNzS2V5czogKFxuICAgIGFyZ3M6IExpc3RBY2Nlc3NLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBY2Nlc3NLZXlzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEFjY291bnRBbGlhc2VzOiAoXG4gICAgYXJnczogTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBdHRhY2hlZFJvbGVQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QXR0YWNoZWRVc2VyUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEVudGl0aWVzRm9yUG9saWN5OiAoXG4gICAgYXJnczogTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3VwUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0R3JvdXBzOiAoXG4gICAgYXJnczogTGlzdEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEdyb3Vwc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3Vwc0ZvclVzZXI6IChcbiAgICBhcmdzOiBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZXM6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGU6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0SW5zdGFuY2VQcm9maWxlVGFnczogKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TUZBRGV2aWNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0TUZBRGV2aWNlczogKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RNRkFEZXZpY2VzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0TUZBRGV2aWNlVGFnczogKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyczogKFxuICAgIGFyZ3M6IExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzOiAoXG4gICAgYXJnczogTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY3lUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY3lUYWdzOiAoXG4gICAgYXJnczogTGlzdFBvbGljeVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFBvbGljeVRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWN5VmVyc2lvbnM6IChcbiAgICBhcmdzOiBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RSb2xlUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZXM6IChcbiAgICBhcmdzOiBMaXN0Um9sZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RSb2xlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RSb2xlVGFnczogKFxuICAgIGFyZ3M6IExpc3RSb2xlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0Um9sZVRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTQU1MUHJvdmlkZXJzOiAoXG4gICAgYXJnczogTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U0FNTFByb3ZpZGVyVGFnczogKFxuICAgIGFyZ3M6IExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXM6IChcbiAgICBhcmdzOiBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHM6IChcbiAgICBhcmdzOiBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgICBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTaWduaW5nQ2VydGlmaWNhdGVzOiAoXG4gICAgYXJnczogTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTU0hQdWJsaWNLZXlzOiAoXG4gICAgYXJnczogTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VXNlclBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJzOiAoXG4gICAgYXJnczogTGlzdFVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0VXNlcnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2VyVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VXNlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0VXNlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFVzZXJUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFZpcnR1YWxNRkFEZXZpY2VzOiAoXG4gICAgYXJnczogTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yLFxuICAgIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0R3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUHV0R3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0Um9sZVBvbGljeTogKFxuICAgIGFyZ3M6IFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBQdXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0VXNlclBvbGljeTogKFxuICAgIGFyZ3M6IFB1dFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFB1dFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlVXNlckZyb21Hcm91cDogKFxuICAgIGFyZ3M6IFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3luY01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXN5bmNNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBSZXN5bmNNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBSZXN5bmNNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNldERlZmF1bHRQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzOiAoXG4gICAgYXJnczogU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2ltdWxhdGVDdXN0b21Qb2xpY3k6IChcbiAgICBhcmdzOiBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgUG9saWN5RXZhbHVhdGlvbkVycm9yLFxuICAgIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzaW11bGF0ZVByaW5jaXBhbFBvbGljeTogKFxuICAgIGFyZ3M6IFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lFdmFsdWF0aW9uRXJyb3IsXG4gICAgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ01GQURldmljZTogKFxuICAgIGFyZ3M6IFRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1BvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdQb2xpY3k6IChcbiAgICBhcmdzOiBUYWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1BvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdSb2xlOiAoXG4gICAgYXJnczogVGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1NBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdVc2VyOiAoXG4gICAgYXJnczogVGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ01GQURldmljZTogKFxuICAgIGFyZ3M6IFVudGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdQb2xpY3k6IChcbiAgICBhcmdzOiBVbnRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1JvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdSb2xlOiAoXG4gICAgYXJnczogVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1JvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1NlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1VzZXI6IChcbiAgICBhcmdzOiBVbnRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5OiAoXG4gICAgYXJnczogVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlQXNzdW1lUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVHcm91cDogKFxuICAgIGFyZ3M6IFVwZGF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZUdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlTG9naW5Qcm9maWxlOiAoXG4gICAgYXJnczogVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludDogKFxuICAgIGFyZ3M6IFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVSb2xlOiAoXG4gICAgYXJnczogVXBkYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlUm9sZURlc2NyaXB0aW9uOiAoXG4gICAgYXJnczogVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTaWduaW5nQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVVc2VyOiAoXG4gICAgYXJnczogVXBkYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZVVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZFNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IEtleVBhaXJNaXNtYXRjaEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRTaWduaW5nQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZUNlcnRpZmljYXRlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZENlcnRpZmljYXRlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkU1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRHVwbGljYXRlU1NIUHVibGljS2V5RXJyb3JcbiAgICB8IEludmFsaWRQdWJsaWNLZXlFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgVW5yZWNvZ25pemVkUHVibGljS2V5RW5jb2RpbmdFcnJvcixcbiAgICBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG59O1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IElBTVNlcnZpY2UgPSBDb250ZXh0LlRhZzxJQU1TZXJ2aWNlPihcbiAgU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1pYW0vSUFNU2VydmljZVwiKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlSUFNU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKElBTUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVhZG9ubHlSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM6IGFueSkgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoKSA9PiBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIG9wdGlvbnMgPz8ge30pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIElBTVNlcnZpY2VFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPElBTVNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIElBTVNlcnZpY2U7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VJQU1TZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoSUFNU2VydmljZSwgbWFrZUlBTVNlcnZpY2UpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgSUFNU2VydmljZUxheWVyID0gQmFzZUlBTVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKElBTUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRJQU1TZXJ2aWNlTGF5ZXIgPSBJQU1TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0SUFNQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==