@awesome-cordova-plugins/onesignal 8.0.2 → 9.0.1

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/index.d.ts CHANGED
@@ -711,13 +711,13 @@ export declare class OneSignalOriginal extends AwesomeCordovaNativePlugin {
711
711
  * @param {string} key Key for the trigger.
712
712
  * @param {string | number | Object} value Value for the trigger. String or number recommended. Object passed in will be converted to a string.
713
713
  */
714
- addTrigger(key: string, value: string | number | Object): void;
714
+ addTrigger(key: string, value: string | number | object): void;
715
715
  /**
716
716
  * Add a map of triggers. May show an In-App Message if its trigger conditions were met.
717
717
  *
718
718
  * @param {Object.<string, string | number | Object>} triggers Allows you to set multiple trigger key/value pairs simultaneously. Pass a json object with key/value pairs like: `{"key": "value", "key2": "value2"}`.
719
719
  */
720
- addTriggers(triggers: Object): void;
720
+ addTriggers(triggers: object): void;
721
721
  /**
722
722
  * Removes a single trigger for the given key. May show an In-App Message if its trigger conditions were met.
723
723
  *
@@ -736,7 +736,7 @@ export declare class OneSignalOriginal extends AwesomeCordovaNativePlugin {
736
736
  * @param {string} key Key for trigger to get value.
737
737
  * @returns {Promise<string | number | Object>} Return value set with `addTrigger`, or `null`/`nil` (iOS) if never set or removed.
738
738
  */
739
- getTriggerValueForKey(key: string): Promise<string | number | Object>;
739
+ getTriggerValueForKey(key: string): Promise<string | number | object>;
740
740
  /**
741
741
  * Allows you to temporarily pause all In-App Messages. You may want to do this while the user is engaged in an activity that you don't want a message to interrupt (such as watching a video).
742
742
  * An In-App Message that would display if not paused will display right after resume if its conditions to display remains satisfied.
package/index.js CHANGED
@@ -1,18 +1,3 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
1
  import { AwesomeCordovaNativePlugin, cordova } from '@awesome-cordova-plugins/core';
17
2
  import { Observable } from 'rxjs';
18
3
  /**
@@ -56,71 +41,63 @@ export var OSActionType;
56
41
  OSActionType[OSActionType["Opened"] = 0] = "Opened";
57
42
  OSActionType[OSActionType["ActionTake"] = 1] = "ActionTake";
58
43
  })(OSActionType || (OSActionType = {}));
59
- var OneSignalOriginal = /** @class */ (function (_super) {
60
- __extends(OneSignalOriginal, _super);
61
- function OneSignalOriginal() {
62
- var _this = _super !== null && _super.apply(this, arguments) || this;
63
- /**
64
- * constants to use in inFocusDisplaying()
65
- *
66
- * @hidden
67
- */
68
- _this.OSInFocusDisplayOption = {
69
- None: 0,
70
- InAppAlert: 1,
71
- Notification: 2,
72
- };
73
- return _this;
74
- }
75
- OneSignalOriginal.prototype.startInit = function (appId, googleProjectNumber) { return cordova(this, "startInit", { "sync": true }, arguments); };
76
- OneSignalOriginal.prototype.handleNotificationReceived = function () { return cordova(this, "handleNotificationReceived", { "observable": true }, arguments); };
77
- OneSignalOriginal.prototype.handleNotificationOpened = function () { return cordova(this, "handleNotificationOpened", { "observable": true }, arguments); };
78
- OneSignalOriginal.prototype.handleInAppMessageClicked = function () { return cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); };
79
- OneSignalOriginal.prototype.iOSSettings = function (settings) { return cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); };
80
- OneSignalOriginal.prototype.endInit = function () { return cordova(this, "endInit", { "sync": true }, arguments); };
81
- OneSignalOriginal.prototype.promptForPushNotificationsWithUserResponse = function () { return cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); };
82
- OneSignalOriginal.prototype.getTags = function () { return cordova(this, "getTags", {}, arguments); };
83
- OneSignalOriginal.prototype.getIds = function () { return cordova(this, "getIds", {}, arguments); };
84
- OneSignalOriginal.prototype.sendTag = function (key, value) { return cordova(this, "sendTag", { "sync": true }, arguments); };
85
- OneSignalOriginal.prototype.sendTags = function (json) { return cordova(this, "sendTags", { "sync": true }, arguments); };
86
- OneSignalOriginal.prototype.deleteTag = function (key) { return cordova(this, "deleteTag", { "sync": true }, arguments); };
87
- OneSignalOriginal.prototype.deleteTags = function (keys) { return cordova(this, "deleteTags", { "sync": true }, arguments); };
88
- OneSignalOriginal.prototype.registerForPushNotifications = function () { return cordova(this, "registerForPushNotifications", { "sync": true }, arguments); };
89
- OneSignalOriginal.prototype.enableVibrate = function (enable) { return cordova(this, "enableVibrate", { "sync": true }, arguments); };
90
- OneSignalOriginal.prototype.enableSound = function (enable) { return cordova(this, "enableSound", { "sync": true }, arguments); };
91
- OneSignalOriginal.prototype.inFocusDisplaying = function (displayOption) { return cordova(this, "inFocusDisplaying", { "sync": true }, arguments); };
92
- OneSignalOriginal.prototype.setSubscription = function (enable) { return cordova(this, "setSubscription", { "sync": true }, arguments); };
93
- OneSignalOriginal.prototype.getPermissionSubscriptionState = function () { return cordova(this, "getPermissionSubscriptionState", {}, arguments); };
94
- OneSignalOriginal.prototype.postNotification = function (notificationObj) { return cordova(this, "postNotification", {}, arguments); };
95
- OneSignalOriginal.prototype.cancelNotification = function (notificationId) { return cordova(this, "cancelNotification", { "sync": true }, arguments); };
96
- OneSignalOriginal.prototype.promptLocation = function () { return cordova(this, "promptLocation", { "sync": true }, arguments); };
97
- OneSignalOriginal.prototype.syncHashedEmail = function (email) { return cordova(this, "syncHashedEmail", { "sync": true }, arguments); };
98
- OneSignalOriginal.prototype.setLogLevel = function (logLevel) { return cordova(this, "setLogLevel", { "sync": true }, arguments); };
99
- OneSignalOriginal.prototype.setLocationShared = function (shared) { return cordova(this, "setLocationShared", { "sync": true }, arguments); };
100
- OneSignalOriginal.prototype.addPermissionObserver = function () { return cordova(this, "addPermissionObserver", { "observable": true }, arguments); };
101
- OneSignalOriginal.prototype.addSubscriptionObserver = function () { return cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); };
102
- OneSignalOriginal.prototype.setEmail = function (email, emailAuthToken) { return cordova(this, "setEmail", {}, arguments); };
103
- OneSignalOriginal.prototype.logoutEmail = function () { return cordova(this, "logoutEmail", {}, arguments); };
104
- OneSignalOriginal.prototype.addEmailSubscriptionObserver = function () { return cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); };
105
- OneSignalOriginal.prototype.clearOneSignalNotifications = function () { return cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); };
106
- OneSignalOriginal.prototype.setRequiresUserPrivacyConsent = function (required) { return cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); };
107
- OneSignalOriginal.prototype.provideUserConsent = function (granted) { return cordova(this, "provideUserConsent", {}, arguments); };
108
- OneSignalOriginal.prototype.userProvidedPrivacyConsent = function (callback) { return cordova(this, "userProvidedPrivacyConsent", {}, arguments); };
109
- OneSignalOriginal.prototype.setExternalUserId = function (externalId) { return cordova(this, "setExternalUserId", {}, arguments); };
110
- OneSignalOriginal.prototype.removeExternalUserId = function () { return cordova(this, "removeExternalUserId", {}, arguments); };
111
- OneSignalOriginal.prototype.addTrigger = function (key, value) { return cordova(this, "addTrigger", { "sync": true }, arguments); };
112
- OneSignalOriginal.prototype.addTriggers = function (triggers) { return cordova(this, "addTriggers", { "sync": true }, arguments); };
113
- OneSignalOriginal.prototype.removeTriggerForKey = function (key) { return cordova(this, "removeTriggerForKey", { "sync": true }, arguments); };
114
- OneSignalOriginal.prototype.removeTriggersForKeys = function (keys) { return cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); };
115
- OneSignalOriginal.prototype.getTriggerValueForKey = function (key) { return cordova(this, "getTriggerValueForKey", {}, arguments); };
116
- OneSignalOriginal.prototype.pauseInAppMessages = function (pause) { return cordova(this, "pauseInAppMessages", { "sync": true }, arguments); };
117
- OneSignalOriginal.pluginName = "OneSignal";
118
- OneSignalOriginal.plugin = "onesignal-cordova-plugin";
119
- OneSignalOriginal.pluginRef = "plugins.OneSignal";
120
- OneSignalOriginal.repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
121
- OneSignalOriginal.platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
122
- return OneSignalOriginal;
123
- }(AwesomeCordovaNativePlugin));
124
- var OneSignal = new OneSignalOriginal();
125
- export { OneSignal };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvb25lc2lnbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sdUNBQStDLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTBGbEM7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFhWDtBQWJELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsdUVBQVUsQ0FBQTtJQUNWOztPQUVHO0lBQ0gseUVBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsd0VBQVcsQ0FBQTtBQUNiLENBQUMsRUFiVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBYWpDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxhQWFYO0FBYkQsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsaURBQVEsQ0FBQTtJQUNSOztPQUVHO0lBQ0gsNkRBQWMsQ0FBQTtJQUNkOztPQUVHO0lBQ0gsaUVBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQWJXLGFBQWEsS0FBYixhQUFhLFFBYXhCO0FBOEtELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsbURBQVUsQ0FBQTtJQUNWLDJEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCOztJQXVJOEIsNkJBQTBCOzs7UUFDdkQ7Ozs7V0FJRztRQUNILDRCQUFzQixHQUFHO1lBQ3ZCLElBQUksRUFBRSxDQUFDO1lBQ1AsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDOzs7SUFVRiw2QkFBUyxhQUFDLEtBQWEsRUFBRSxtQkFBNEI7SUFZckQsOENBQTBCO0lBYzFCLDRDQUF3QjtJQVl4Qiw2Q0FBeUI7SUFxQnpCLCtCQUFXLGFBQUMsUUFBc0Y7SUFVbEcsMkJBQU87SUFZUCw4REFBMEM7SUFZMUMsMkJBQU87SUFlUCwwQkFBTTtJQWNOLDJCQUFPLGFBQUMsR0FBVyxFQUFFLEtBQWE7SUFVbEMsNEJBQVEsYUFBQyxJQUFTO0lBU2xCLDZCQUFTLGFBQUMsR0FBVztJQVNyQiw4QkFBVSxhQUFDLElBQWM7SUFPekIsZ0RBQTRCO0lBYTVCLGlDQUFhLGFBQUMsTUFBZTtJQWE3QiwrQkFBVyxhQUFDLE1BQWU7SUFVM0IscUNBQWlCLGFBQUMsYUFBNEI7SUFXOUMsbUNBQWUsYUFBQyxNQUFlO0lBUS9CLGtEQUE4QjtJQVc5QixvQ0FBZ0IsYUFBQyxlQUErQjtJQVVoRCxzQ0FBa0IsYUFBQyxjQUFzQjtJQU16QyxrQ0FBYztJQU9kLG1DQUFlLGFBQUMsS0FBYTtJQWM3QiwrQkFBVyxhQUFDLFFBQW1EO0lBUS9ELHFDQUFpQixhQUFDLE1BQWU7SUFjakMseUNBQXFCO0lBaUJyQiwyQ0FBdUI7SUFXdkIsNEJBQVEsYUFBQyxLQUFhLEVBQUUsY0FBdUI7SUFRL0MsK0JBQVc7SUFpQlgsZ0RBQTRCO0lBUTVCLCtDQUEyQjtJQVMzQixpREFBNkIsYUFBQyxRQUFpQjtJQVMvQyxzQ0FBa0IsYUFBQyxPQUFnQjtJQVFuQyw4Q0FBMEIsYUFBQyxRQUFrQjtJQVM3QyxxQ0FBaUIsYUFBQyxVQUFrQjtJQU1wQyx3Q0FBb0I7SUFXcEIsOEJBQVUsYUFBQyxHQUFXLEVBQUUsS0FBK0I7SUFVdkQsK0JBQVcsYUFBQyxRQUFnQjtJQVU1Qix1Q0FBbUIsYUFBQyxHQUFXO0lBVS9CLHlDQUFxQixhQUFDLElBQWM7SUFTcEMseUNBQXFCLGFBQUMsR0FBVztJQWFqQyxzQ0FBa0IsYUFBQyxLQUFjOzs7Ozs7b0JBejRCbkM7RUFzYitCLDBCQUEwQjtTQUE1QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZG92YSwgQXdlc29tZUNvcmRvdmFOYXRpdmVQbHVnaW4sIFBsdWdpbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBXYXMgYXBwIGluIGZvY3VzLlxuICAgKi9cbiAgaXNBcHBJbkZvY3VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdhcyBub3RpZmljYXRpb24gc2hvd24gdG8gdGhlIHVzZXIuIFdpbGwgYmUgZmFsc2UgZm9yIHNpbGVudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgc2hvd24/OiBib29sZWFuO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQW5kcm9pZCBOb3RpZmljYXRpb24gYXNzaWduZWQgdG8gdGhlIG5vdGlmaWNhdGlvbi4gQ2FuIGJlIHVzZWQgdG8gY2FuY2VsIG9yIHJlcGxhY2UgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGFuZHJvaWROb3RpZmljYXRpb25JZD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBheWxvYWQgcmVjZWl2ZWQgZnJvbSBPbmVTaWduYWwuXG4gICAqL1xuICBwYXlsb2FkPzogT1NOb3RpZmljYXRpb25QYXlsb2FkO1xuICAvKipcbiAgICogSG93IHRoZSBub3RpZmljYXRpb24gd2FzIGRpc3BsYXllZCB0byB0aGUgdXNlci4gQ2FuIGJlIHNldCB0byBgTm90aWZpY2F0aW9uYCwgYEluQXBwQWxlcnRgLCBvciBgTm9uZWAgaWYgaXQgd2FzIG5vdCBkaXNwbGF5ZWQuXG4gICAqL1xuICBkaXNwbGF5VHlwZT86IE9TRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBOb3RpZmljYXRpb24gaXMgYSBzdW1tYXJ5IG5vdGlmaWNhdGlvbiBmb3IgYSBncm91cCB0aGlzIHdpbGwgY29udGFpbiBhbGwgbm90aWZpY2F0aW9uIHBheWxvYWRzIGl0IHdhcyBjcmVhdGVkIGZyb20uXG4gICAqL1xuICBncm91cGVkTm90aWZpY2F0aW9ucz86IE9TTm90aWZpY2F0aW9uUGF5bG9hZFtdO1xuICBhcHBfaWQ/OiBzdHJpbmc7XG4gIGNvbnRlbnRzPzogYW55O1xuICBoZWFkaW5ncz86IGFueTtcbiAgaXNJb3M/OiBib29sZWFuO1xuICBpc0FuZHJvaWQ/OiBib29sZWFuO1xuICBpc1dQPzogYm9vbGVhbjtcbiAgaXNXUF9XTlM/OiBib29sZWFuO1xuICBpc0FkbT86IGJvb2xlYW47XG4gIGlzQ2hyb21lPzogYm9vbGVhbjtcbiAgaXNDaHJvbWVXZWI/OiBib29sZWFuO1xuICBpc1NhZmFyaT86IGJvb2xlYW47XG4gIGlzQW55V2ViPzogYm9vbGVhbjtcbiAgaW5jbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgZXhjbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9wbGF5ZXJfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfaW9zX3Rva2Vucz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FuZHJvaWRfcmVnX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX3dwX3VyaXM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV93cF93bnNfdXJpcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FtYXpvbl9yZWdfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfY2hyb21lX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9jaHJvbWVfd2ViX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgYXBwX2lkcz86IHN0cmluZ1tdO1xuICB0YWdzPzogYW55W107XG4gIGlvc19iYWRnZVR5cGU/OiBzdHJpbmc7XG4gIGlvc19iYWRnZUNvdW50PzogbnVtYmVyO1xuICBpb3Nfc291bmQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfc291bmQ/OiBzdHJpbmc7XG4gIGFkbV9zb3VuZD86IHN0cmluZztcbiAgd3Bfc291bmQ/OiBzdHJpbmc7XG4gIHdwX3duc19zb3VuZD86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgYnV0dG9ucz86IGFueTtcbiAgY29sbGFwc2VfaWQ/OiBzdHJpbmc7XG4gIHNtYWxsX2ljb24/OiBzdHJpbmc7XG4gIGxhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGJpZ19waWN0dXJlPzogc3RyaW5nO1xuICBhZG1fc21hbGxfaWNvbj86IHN0cmluZztcbiAgYWRtX2xhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGFkbV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX2ljb24/OiBzdHJpbmc7XG4gIGNocm9tZV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX3dlYl9pY29uPzogc3RyaW5nO1xuICBmaXJlZm94X2ljb24/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgc2VuZF9hZnRlcj86IHN0cmluZztcbiAgZGVsYXllZF9vcHRpb24/OiBzdHJpbmc7XG4gIGRlbGl2ZXJ5X3RpbWVfb2ZfZGF5Pzogc3RyaW5nO1xuICBhbmRyb2lkX2xlZF9jb2xvcj86IHN0cmluZztcbiAgYW5kcm9pZF9hY2NlbnRfY29sb3I/OiBzdHJpbmc7XG4gIGFuZHJvaWRfdmlzaWJpbGl0eT86IG51bWJlcjtcbiAgY29udGVudF9hdmFpbGFibGU/OiBib29sZWFuO1xuICBhbWF6b25fYmFja2dyb3VuZF9kYXRhPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVfaWQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXA/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgYWRtX2dyb3VwPzogc3RyaW5nO1xuICBhZG1fZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgdHRsPzogbnVtYmVyO1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgaW9zX2NhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIFByaXZhY3kgc2V0dGluZyBmb3IgaG93IHRoZSBub3RpZmljYXRpb24gc2hvdWxkIGJlIHNob3duIG9uIHRoZSBsb2Nrc2NyZWVuIG9mIEFuZHJvaWQgNSsgZGV2aWNlcy5cbiAqL1xuZXhwb3J0IGVudW0gT1NMb2NrU2NyZWVuVmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBGdWxseSB2aXNpYmxlIChkZWZhdWx0KVxuICAgKi9cbiAgUHVibGljID0gMSxcbiAgLyoqXG4gICAqIENvbnRlbnRzIGFyZSBoaWRkZW5cbiAgICovXG4gIFByaXZhdGUgPSAwLFxuICAvKipcbiAgICogTm90IHNob3duXG4gICAqL1xuICBTZWNyZXQgPSAtMSxcbn1cblxuLyoqXG4gKiBIb3cgdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBQYXJ0IG9mIE9TTm90aWZpY2F0aW9uLiBTZWUgaW5Gb2N1c0Rpc3BsYXlpbmcgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gT1NEaXNwbGF5VHlwZSB7XG4gIC8qKlxuICAgKiBub3RpZmljYXRpb24gaXMgc2lsZW50LCBvciBpbkZvY3VzRGlzcGxheWluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIE5vbmUgPSAwLFxuICAvKipcbiAgICogKCoqREVGQVVMVCoqKSAtIG5hdGl2ZSBhbGVydCBkaWFsb2cgZGlzcGxheS5cbiAgICovXG4gIEluQXBwQWxlcnQgPSAxLFxuICAvKipcbiAgICogbmF0aXZlIG5vdGlmaWNhdGlvbiBkaXNwbGF5LlxuICAgKi9cbiAgTm90aWZpY2F0aW9uID0gMixcbn1cblxuLyoqXG4gKiBDb250ZW50cyBhbmQgc2V0dGluZ3Mgb2YgdGhlIG5vdGlmaWNhdGlvbiB0aGUgdXNlciByZWNlaXZlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvblBheWxvYWQge1xuICAvKipcbiAgICogT25lU2lnbmFsIG5vdGlmaWNhdGlvbiBVVUlELlxuICAgKi9cbiAgbm90aWZpY2F0aW9uSUQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogQm9keSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGFkZGl0aW9uYWwgZGF0YSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIG5vdGlmaWNhdGlvbi4gU2V0IG9uIHRoZSBkYXNoYm9hcmQgdW5kZXIgT3B0aW9ucyA+IEFkZGl0aW9uYWwgRGF0YVxuICAgKiBvciB3aXRoIHRoZSAnZGF0YScgZmllbGQgb24gdGhlIFJFU1QgQVBJLlxuICAgKi9cbiAgYWRkaXRpb25hbERhdGE/OiBhbnk7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBTbWFsbCBpY29uIHJlc291cmNlIG5hbWUgc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBzbWFsbEljb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBMYXJnZSBpY29uIHNldCBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgbGFyZ2VJY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQmlnIHBpY3R1cmUgaW1hZ2Ugc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBiaWdQaWN0dXJlPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQWNjZW50IGNvbG9yIHNob3duIGFyb3VuZCBzbWFsbCBub3RpZmljYXRpb24gaWNvbiBvbiBBbmRyb2lkIDUrIGRldmljZXMuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgc21hbGxJY29uQWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVUkwgdG8gb3BlbiB3aGVuIG9wZW5pbmcgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGxhdW5jaFVSTD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNvdW5kIHJlc291cmNlIHRvIHBsYXkgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIHNob3duLlxuICAgKi9cbiAgc291bmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIERldmljZXMgdGhhdCBoYXZlIGEgbm90aWZpY2F0aW9uIExFRCB3aWxsIGJsaW5rIGluIHRoaXMgY29sb3IuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgbGVkQ29sb3I/OiBzdHJpbmc7XG4gIGxvY2tTY3JlZW5WaXNpYmlsaXR5PzogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eTtcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIE5vdGlmaWNhdGlvbnMgd2l0aCB0aGlzIHNhbWUga2V5IHdpbGwgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBhIHNpbmdsZSBzdW1tYXJ5IG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGdyb3VwS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gU3VtbWFyeSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgc3VtbWFyeSBub3RpZmljYXRpb24uXG4gICAqL1xuICBncm91cE1lc3NhZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBhY3Rpb25CdXR0b25zOiBPU0FjdGlvbkJ1dHRvbltdO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gVGhlIEdvb2dsZSBwcm9qZWN0IG51bWJlciB0aGUgbm90aWZpY2F0aW9uIHdhcyBzZW50IHVuZGVyLlxuICAgKi9cbiAgZnJvbVByb2plY3ROdW1iZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIGJhY2tncm91bmRJbWFnZUxheW91dD86IE9TQmFja2dyb3VuZEltYWdlTGF5b3V0O1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGJ1dHRvbnMgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJhd1BheWxvYWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NBY3Rpb25CdXR0b24ge1xuICAvKipcbiAgICogSWQgYXNzaWduZWQgdG8gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IHNob3cgb24gdGhlIGJ1dHRvbiB0byB0aGUgdXNlci5cbiAgICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEljb24gc2hvd24gb24gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBPU1Blcm1pc3Npb25TdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN0YXRlIHtcbiAgLyoqXG4gICAqIFVzZXIgd2FzIHByb21wdGVkLlxuICAgKi9cbiAgaGFzUHJvbXB0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0dXMgKGlPUyBPbmx5KVxuICAgKi9cbiAgc3RhdHVzOiBhbnk7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0ZSAoQW5kcm9pZCBPbmx5KVxuICAgKi9cbiAgc3RhdGU6IGFueTtcbn1cblxuLyoqXG4gKiBPU1N1YnNjcmlwdGlvblN0YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NTdWJzY3JpcHRpb25TdGF0ZSB7XG4gIHN1YnNjcmliZWQ6IGJvb2xlYW47XG4gIHVzZXJTdWJzY3JpcHRpb25TZXR0aW5nOiBhbnk7XG4gIHVzZXJJZDogYW55O1xuICBwdXNoVG9rZW46IGFueTtcbn1cblxuLyoqXG4gKiBTdWJzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zIHN0YXR1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlIHtcbiAgLyoqXG4gICAqIElkIGFzc2lnbmVkIHRvIHRoZSBidXR0b24uXG4gICAqL1xuICBwZXJtaXNzaW9uU3RhdHVzOiBPU1Blcm1pc3Npb25TdGF0ZTtcbiAgLyoqXG4gICAqIFRleHQgc2hvdyBvbiB0aGUgYnV0dG9uIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgc3Vic2NyaXB0aW9uU3RhdHVzOiBPU1N1YnNjcmlwdGlvblN0YXRlO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIElmIGEgYmFja2dyb3VuZCBpbWFnZSB3YXMgc2V0LCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU0JhY2tncm91bmRJbWFnZUxheW91dCB7XG4gIC8qKlxuICAgKiBJbWFnZSBVUkwgb3IgbmFtZSB1c2VkIGFzIHRoZSBiYWNrZ3JvdW5kIGltYWdlLlxuICAgKi9cbiAgaW1hZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIHRpdGxlIG9uIHRoZSBub3RpZmljYXRpb24uIEFSR0IgRm9ybWF0LlxuICAgKi9cbiAgdGl0bGVUZXh0Q29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIGJvZHkgb24gdGhlIG5vdGlmaWNhdGlvbi4gQVJHQiBGb3JtYXQuXG4gICAqL1xuICBib2R5VGV4dENvbG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYSBub3RpZmljYXRpb24gdGhlIHVzZXIgcmVjZWl2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NOb3RpZmljYXRpb25PcGVuZWRSZXN1bHQge1xuICBhY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBXYXMgdGhlIG5vdGlmaWNhdGlvbiBvcGVuZWQgbm9ybWFsbHkgKGBPcGVuZWRgKSBvciB3YXMgYSBidXR0b24gcHJlc3NlZCBvbiB0aGUgbm90aWZpY2F0aW9uIChgQWN0aW9uVGFrZW5gKS5cbiAgICAgKi9cbiAgICB0eXBlOiBPU0FjdGlvblR5cGU7XG4gICAgLyoqXG4gICAgICogSWYgYHR5cGVgID09IGBBY3Rpb25UYWtlbmAgdGhlbiB0aGlzIHdpbGwgY29udGFpbiB0aGUgaWQgb2YgdGhlIGJ1dHRvbiBwcmVzc2VkLlxuICAgICAqL1xuICAgIGFjdGlvbklEPzogc3RyaW5nO1xuICB9O1xuICBub3RpZmljYXRpb246IE9TTm90aWZpY2F0aW9uO1xufVxuXG5leHBvcnQgZW51bSBPU0FjdGlvblR5cGUge1xuICBPcGVuZWQgPSAwLFxuICBBY3Rpb25UYWtlID0gMSxcbn1cblxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBJbi1BcHAgTWVzc2FnZSBhY3Rpb24gZWxlbWVudCAoYnV0dG9uIG9yIGltYWdlKSB0aGF0IHdhcyB0YXBwZWQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NJbkFwcE1lc3NhZ2VBY3Rpb24ge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY2xpY2sgbmFtZSBkZWZpbmVkIGZvciB0aGUgYWN0aW9uIGVsZW1lbnQuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja19uYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBVUkwgdGhhdCBvcGVucyB3aGVuIHRoZSBhY3Rpb24gdGFrZXMgcGxhY2UuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja191cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoZSB1c2VyIGhhcyBwcmVzc2VkIGFueSBhY3Rpb24gb24gdGhlIEluLUFwcCBNZXNzYWdlLlxuICAgKi9cbiAgZmlyc3RfY2xpY2s6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIGFuaW1hdGUgb2ZmIHRoZSBzY3JlZW4uIElmIGBmYWxzZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIHN0YXkgb24gc2NyZWVuIHVudGlsIHRoZSB1c2VyIGRpc21pc3NlcyBpdC5cbiAgICovXG4gIGNsb3Nlc19tZXNzYWdlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBuYW1lIE9uZVNpZ25hbFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgT25lU2lnbmFsIHBsdWdpbiBpcyBhbiBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIHVzaW5nIHRoZSBbT25lU2lnbmFsXShodHRwczovL29uZXNpZ25hbC5jb20vKSBTZXJ2aWNlLlxuICogT25lU2lnbmFsIGlzIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIGZvciBkZWxpdmVyaW5nIHB1c2ggbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBQbGVhc2UgdmlldyB0aGUgb2ZmaWNpYWwgW09uZVNpZ25hbCBJb25pYyBTREsgSW5zdGFsbGF0aW9uXShodHRwczovL2RvY3VtZW50YXRpb24ub25lc2lnbmFsLmNvbS9kb2NzL2lvbmljLXNkay1zZXR1cCkgZ3VpZGVcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqICMjIyMgSWNvbnNcbiAqIElmIHlvdSB3YW50IHRvIHVzZSBnZW5lcmF0ZWQgaWNvbnMgd2l0aCBjb21tYW5kIGBpb25pYyBjb3Jkb3ZhIHJlc291cmNlc2A6XG4gKlxuICogMS4gQWRkIGEgZmlsZSB0byB5b3VyIGBob29rc2AgZGlyZWN0b3J5IGNhbGxlZCBgY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqXG4gKiAyLiBDb25maWd1cmUgdGhlIGhvb2sgaW4geW91ciBjb25maWcueG1sXG4gKiBgYGBcbiAqICAgICA8cGxhdGZvcm0gbmFtZT1cImFuZHJvaWRcIj5cbiAqICAgICAgICAgPGhvb2sgdHlwZT1cImFmdGVyX3ByZXBhcmVcIiBzcmM9XCJob29rcy9jb3B5X2FuZHJvaWRfbm90aWZpY2F0aW9uX2ljb25zLmpzXCIgLz5cbiAqICAgICA8L3BsYXRmb3JtPlxuICogYGBgXG4gKlxuICogMy4gUHV0IHRoZSBmb2xsb3dpbmcgY29kZSBpbiBpdDpcbiAqXG4gKiBgYGBcbiAqICMhL3Vzci9iaW4vZW52IG5vZGVcbiAqXG4gKiB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuICogdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4gKlxuICogdmFyIGZpbGVzdG9jb3B5ID0gW3tcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUtaGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUtaGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLW1kcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLW1kcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14aGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUteGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4aGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLXh4eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4eGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSBdO1xuICpcbiAqIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICpcbiAqICAgICAvLyBubyBuZWVkIHRvIGNvbmZpZ3VyZSBiZWxvd1xuICogICAgIHZhciByb290ZGlyID0gY29udGV4dC5vcHRzLnByb2plY3RSb290O1xuICpcbiAqICAgICBmaWxlc3RvY29weS5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICogICAgICAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gKiAgICAgICAgICAgICB2YXIgdmFsID0gb2JqW2tleV07XG4gKiAgICAgICAgICAgICB2YXIgc3JjZmlsZSA9IHBhdGguam9pbihyb290ZGlyLCBrZXkpO1xuICogICAgICAgICAgICAgdmFyIGRlc3RmaWxlID0gcGF0aC5qb2luKHJvb3RkaXIsIHZhbCk7XG4gKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvcHlpbmcgXCIrc3JjZmlsZStcIiB0byBcIitkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICB2YXIgZGVzdGRpciA9IHBhdGguZGlybmFtZShkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzcmNmaWxlKSAmJiBmcy5leGlzdHNTeW5jKGRlc3RkaXIpKSB7XG4gKiAgICAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbShzcmNmaWxlKS5waXBlKFxuICogICAgICAgICAgICAgICAgICAgICBmcy5jcmVhdGVXcml0ZVN0cmVhbShkZXN0ZmlsZSkpO1xuICogICAgICAgICAgICAgfVxuICogICAgICAgICB9KTtcbiAqICAgICB9KTtcbiAqXG4gKiB9O1xuICogYGBgXG4gKlxuICogMy4gRnJvbSB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgbWFrZSB0aGUgZmlsZSBleGVjdXRhYmxlOlxuICogYCQgY2htb2QgK3ggaG9va3MvY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqIEB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgT25lU2lnbmFsIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL29uZXNpZ25hbC9uZ3gnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgb25lU2lnbmFsOiBPbmVTaWduYWwpIHsgfVxuICpcbiAqIC4uLlxuICpcbiAqIHRoaXMub25lU2lnbmFsLnN0YXJ0SW5pdCgnYjJmN2Y5NjYtZDhjYy0xMWU0LWJlZDEtZGY4ZjA1YmU1NWJhJywgJzcwMzMyMjc0NDI2MScpO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmluRm9jdXNEaXNwbGF5aW5nKHRoaXMub25lU2lnbmFsLk9TSW5Gb2N1c0Rpc3BsYXlPcHRpb24uSW5BcHBBbGVydCk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICogIC8vIGRvIHNvbWV0aGluZyB3aGVuIG5vdGlmaWNhdGlvbiBpcyByZWNlaXZlZFxuICogfSk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAqICAgLy8gZG8gc29tZXRoaW5nIHdoZW4gYSBub3RpZmljYXRpb24gaXMgb3BlbmVkXG4gKiB9KTtcbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5lbmRJbml0KCk7XG4gKiBgYGBcbiAqIEBpbnRlcmZhY2VzXG4gKiBPU05vdGlmaWNhdGlvblxuICogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eVxuICogT1NEaXNwbGF5VHlwZVxuICogT1NOb3RpZmljYXRpb25QYXlsb2FkXG4gKiBPU0FjdGlvbkJ1dHRvblxuICogT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXRcbiAqIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0XG4gKiBPU0FjdGlvblR5cGVcbiAqIE9TSW5BcHBNZXNzYWdlQWN0aW9uXG4gKi9cbkBQbHVnaW4oe1xuICBwbHVnaW5OYW1lOiAnT25lU2lnbmFsJyxcbiAgcGx1Z2luOiAnb25lc2lnbmFsLWNvcmRvdmEtcGx1Z2luJyxcbiAgcGx1Z2luUmVmOiAncGx1Z2lucy5PbmVTaWduYWwnLFxuICByZXBvOiAnaHR0cHM6Ly9naXRodWIuY29tL09uZVNpZ25hbC9PbmVTaWduYWwtQ29yZG92YS1TREsnLFxuICBwbGF0Zm9ybXM6IFsnQW1hem9uIEZpcmUgT1MnLCAnQW5kcm9pZCcsICdpT1MnLCAnV2luZG93cyddLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVTaWduYWwgZXh0ZW5kcyBBd2Vzb21lQ29yZG92YU5hdGl2ZVBsdWdpbiB7XG4gIC8qKlxuICAgKiBjb25zdGFudHMgdG8gdXNlIGluIGluRm9jdXNEaXNwbGF5aW5nKClcbiAgICpcbiAgICogQGhpZGRlblxuICAgKi9cbiAgT1NJbkZvY3VzRGlzcGxheU9wdGlvbiA9IHtcbiAgICBOb25lOiAwLFxuICAgIEluQXBwQWxlcnQ6IDEsXG4gICAgTm90aWZpY2F0aW9uOiAyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gT25jZSB5b3UgYXJlIGRvbmUgY29uZmlndXJpbmcgT25lU2lnbmFsLCBjYWxsIHRoZSBgZW5kSW5pdGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCBZb3VyIE9uZVNpZ25hbCBhcHAgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdvb2dsZVByb2plY3ROdW1iZXIgKipBTkRST0lEKiogLSB5b3VyIEdvb2dsZSBwcm9qZWN0IG51bWJlcjsgb25seSByZXF1aXJlZCBmb3IgQW5kcm9pZCBHQ00vRkNNIHB1c2hlcy5cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzdGFydEluaXQoYXBwSWQ6IHN0cmluZywgZ29vZ2xlUHJvamVjdE51bWJlcj86IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIHJ1biB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB3aGV0aGVyIGl0IHdhcyBkaXNwbGF5ZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPbmVTaWduYWxSZWNlaXZlZE5vdGlmaWNhdGlvbj59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBydW4gd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyB0YXBwZWQgb24gZnJvbSB0aGUgbm90aWZpY2F0aW9uIHNoYWRlICgqKkFORFJPSUQqKikgb3Igbm90aWZpY2F0aW9uXG4gICAqIGNlbnRlciAoKippT1MqKiksIG9yIHdoZW4gY2xvc2luZyBhbiBBbGVydCBub3RpZmljYXRpb24gc2hvd24gaW4gdGhlIGFwcCAoaWYgSW5BcHBBbGVydCBpcyBlbmFibGVkIGluXG4gICAqIGluRm9jdXNEaXNwbGF5aW5nKS5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T25lU2lnbmFsT3BlbmVkTm90aWZpY2F0aW9uPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBoYW5kbGVOb3RpZmljYXRpb25PcGVuZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbk9wZW5lZFJlc3VsdD4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdG8gcHJvY2VzcyBhbiBJbi1BcHAgTWVzc2FnZSB0aGUgdXNlciBqdXN0IHRhcHBlZCBvbi5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T1NJbkFwcE1lc3NhZ2VBY3Rpb24+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGhhbmRsZUluQXBwTWVzc2FnZUNsaWNrZWQoKTogT2JzZXJ2YWJsZTxPU0luQXBwTWVzc2FnZUFjdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBpT1MqKiAtIFNldHRpbmdzIGZvciBpT1MgYXBwc1xuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3NcbiAgICogIGtPU1NldHRpbmdzS2V5QXV0b1Byb21wdDogYm9vbGVhbiA9IHRydWVcbiAgICogIEF1dG8gcHJvbXB0IHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogIGtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkw6IGJvb2xlYW4gPSBmYWxzZVxuICAgKiAgTGF1bmNoIG5vdGlmaWNhdGlvbnMgd2l0aCBhIGxhdW5jaCBVUkwgYXMgYW4gaW4gYXBwIHdlYnZpZXcuXG4gICAqIEBwYXJhbSBzZXR0aW5ncy5rT1NTZXR0aW5nc0tleUF1dG9Qcm9tcHRcbiAgICogQHBhcmFtIHNldHRpbmdzLmtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkxcbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgaU9TU2V0dGluZ3Moc2V0dGluZ3M6IHsga09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0OiBib29sZWFuOyBrT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMOiBib29sZWFuIH0pOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRJbml0YCB0byBjb21wbGV0ZSBpbml0aWFsaXphdGlvbiBvZiBPbmVTaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5kSW5pdCgpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy4gQ2FsbGJhY2sgZmlyZXMgYXMgc29vbiBhcyB0aGUgdXNlciBhY2NlcHRzIG9yIGRlY2xpbmVzIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgcHJvbXB0Rm9yUHVzaE5vdGlmaWNhdGlvbnNXaXRoVXNlclJlc3BvbnNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGFncyB0aGF0IGhhdmUgYmVlbiBzZXQgb24gdGhlIHVzZXIgZnJvbSB0aGUgT25lU2lnbmFsIHNlcnZlci5cbiAgICpcbiAgICogUXVpcmsqKjogWW91IG11c3Qgd2FpdCBmb3IgYGdldFRhZ3NgIHRvIHJlc29sdmUgYmVmb3JlIGNhbGxpbmcgaXQgYWdhaW4sIGFzIHRoZSBwbHVnaW4gd2lsbCBvbmx5IHByb2Nlc3MgdGhlIGxhc3QgbWV0aG9kIGNhbGwgYW5kIGRpc2NhcmQgYW55IHByZXZpb3VzIG9uZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0YWdzIGFyZSByZWNpZXZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VGFncygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXRzIHlvdSByZXRyaWV2ZSB0aGUgT25lU2lnbmFsIHVzZXIgaWQgYW5kIGRldmljZSB0b2tlbi5cbiAgICogWW91ciBoYW5kbGVyIGlzIGNhbGxlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHdpdGggT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBkZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLlxuICAgKlxuICAgKiAgdXNlcklkIHtzdHJpbmd9IE9uZVNpZ25hbCB1c2VySWQgaXMgYSBVVUlEIGZvcm1hdHRlZCBzdHJpbmcuICh1bmlxdWUgcGVyIGRldmljZSBwZXIgYXBwKVxuICAgKlxuICAgKiAgcHVzaFRva2VuIHtzdHJpbmd9IEEgcHVzaCB0b2tlbiBpcyBhIEdvb2dsZS9BcHBsZSBhc3NpZ25lZCBpZGVudGlmaWVyKHVuaXF1ZSBwZXIgZGV2aWNlIHBlciBhcHApLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRJZHMoKTogUHJvbWlzZTx7IHVzZXJJZDogc3RyaW5nOyBwdXNoVG9rZW46IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRhZyBhIHVzZXIgYmFzZWQgb24gYW4gYXBwIGV2ZW50IG9mIHlvdXIgY2hvb3Npbmcgc28gbGF0ZXIgeW91IGNhbiBjcmVhdGUgc2VnbWVudHMgb24gW29uZXNpZ25hbC5jb21dKGh0dHBzOi8vb25lc2lnbmFsLmNvbS8pIHRvIHRhcmdldCB0aGVzZSB1c2Vycy5cbiAgICogUmVjb21tZW5kIHVzaW5nIHNlbmRUYWdzIG92ZXIgc2VuZFRhZyBpZiB5b3UgbmVlZCB0byBzZXQgbW9yZSB0aGFuIG9uZSB0YWcgb24gYSB1c2VyIGF0IGEgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSBvZiB5b3VyIGNob29zaW5nIHRvIGNyZWF0ZSBvciB1cGRhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBWYWx1ZSB0byBzZXQgb24gdGhlIGtleS4gTk9URTogUGFzc2luZyBpbiBhIGJsYW5rIFN0cmluZyBkZWxldGVzIHRoZSBrZXksIHlvdSBjYW4gYWxzbyBjYWxsIGRlbGV0ZVRhZy5cbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZW5kVGFnKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBUYWcgYSB1c2VyIGJhc2VkIG9uIGFuIGFwcCBldmVudCBvZiB5b3VyIGNob29zaW5nIHNvIGxhdGVyIHlvdSBjYW4gY3JlYXRlIHNlZ21lbnRzIG9uIFtvbmVzaWduYWwuY29tXShodHRwczovL29uZXNpZ25hbC5jb20vKSB0byB0YXJnZXQgdGhlc2UgdXNlcnMuXG4gICAqIFJlY29tbWVuZCB1c2luZyBzZW5kVGFncyBvdmVyIHNlbmRUYWcgaWYgeW91IG5lZWQgdG8gc2V0IG1vcmUgdGhhbiBvbmUgdGFnIG9uIGEgdXNlciBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBQYXNzIGEganNvbiBvYmplY3Qgd2l0aCBrZXkvdmFsdWUgcGFpcnMgbGlrZToge2tleTogXCJ2YWx1ZVwiLCBrZXkyOiBcInZhbHVlMlwifVxuICAgKiBAcGFyYW0ganNvblxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNlbmRUYWdzKGpzb246IGFueSk6IHZvaWQge31cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHRhZyB0aGF0IHdhcyBwcmV2aW91c2x5IHNldCBvbiBhIHVzZXIgd2l0aCBgc2VuZFRhZ2Agb3IgYHNlbmRUYWdzYC4gVXNlIGBkZWxldGVUYWdzYCBpZiB5b3UgbmVlZCB0byBkZWxldGUgbW9yZSB0aGFuIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSB0byByZW1vdmUuXG4gICAqIEBwYXJhbSBrZXlcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBkZWxldGVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGFncyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXQgb24gYSB1c2VyIHdpdGggYHNlbmRUYWdgIG9yIGBzZW5kVGFnc2AuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IEtleXMgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0ga2V5c1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGRlbGV0ZVRhZ3Moa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhpcyB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIHByb21wdCBhbiBpT1MgdXNlciB0byBhY2NlcHQgcHVzaCBub3RpZmljYXRpb25zIHdpdGggdGhlIGRlZmF1bHQgc3lzdGVtIHByb21wdC5cbiAgICogT25seSB3b3JrcyBpZiB5b3Ugc2V0IGBrT1NTZXR0aW5nc0F1dG9Qcm9tcHRgIHRvIGBmYWxzZWAgaW4gYGlPU1NldHRpbmdzYFxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHJlZ2lzdGVyRm9yUHVzaE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgYWx3YXlzIHZpYnJhdGVzIHRoZSBkZXZpY2Ugd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBkaXNwbGF5ZWQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgaW4gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgbGlnaHRseSB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gaXQncyB2aWJyYXRlIG9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHZpYnJhdGUsIHRydWUgdG8gcmUtZW5hYmxlIGl0LlxuICAgKiBAcGFyYW0gZW5hYmxlXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5hYmxlVmlicmF0ZShlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFdhcm5pbmc6XG4gICAqIE9ubHkgYXBwbGllcyB0byBBbmRyb2lkIGFuZCBBbWF6b24uIFlvdSBjYW4gY2FsbCB0aGlzIGZyb20geW91ciBVSSBmcm9tIGEgYnV0dG9uIHByZXNzIGZvciBleGFtcGxlIHRvIGdpdmUgeW91ciB1c2VyJ3Mgb3B0aW9ucyBmb3IgeW91ciBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IE9uZVNpZ25hbCBwbGF5cyB0aGUgc3lzdGVtJ3MgZGVmYXVsdCBub3RpZmljYXRpb24gc291bmQgd2hlbiB0aGUgZGV2aWNlJ3Mgbm90aWZpY2F0aW9uIHN5c3RlbSB2b2x1bWUgaXMgdHVybmVkIG9uLlxuICAgKiBQYXNzaW5nIGZhbHNlIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG9ubHkgdmlicmF0ZSB1bmxlc3MgdGhlIGRldmljZSBpcyBzZXQgdG8gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHNvdW5kLCB0cnVlIHRvIHJlLWVuYWJsZSBpdC5cbiAgICogQHBhcmFtIGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuYWJsZVNvdW5kKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICpcbiAgICogU2V0dGluZyB0byBjb250cm9sIGhvdyBPbmVTaWduYWwgbm90aWZpY2F0aW9ucyB3aWxsIGJlIHNob3duIHdoZW4gb25lIGlzIHJlY2VpdmVkIHdoaWxlIHlvdXIgYXBwIGlzIGluIGZvY3VzLiBCeSBkZWZhdWx0IHRoaXMgaXMgc2V0IHRvIGluQXBwQWxlcnQsIHdoaWNoIGNhbiBiZSBoZWxwZnVsIGR1cmluZyBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtEaXNwbGF5VHlwZX0gZGlzcGxheU9wdGlvblxuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGluRm9jdXNEaXNwbGF5aW5nKGRpc3BsYXlPcHRpb246IE9TRGlzcGxheVR5cGUpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBmYWxzZSB0byBvcHQgdXNlcnMgb3V0IG9mIHJlY2VpdmluZyBhbGwgbm90aWZpY2F0aW9ucyB0aHJvdWdoIE9uZVNpZ25hbC5cbiAgICogWW91IGNhbiBwYXNzIHRydWUgbGF0ZXIgdG8gb3B0IHVzZXJzIGJhY2sgaW50byBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldFN1YnNjcmlwdGlvbihlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBub3RpZmljYXRpb24gYW5kIHBlcm1pc3Npb24gc3RhdGUuIFJldHVybnMgYSBPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZSB0eXBlIGRlc2NyaWJlZCBiZWxvdy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8T1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGU+fVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGUoKTogUHJvbWlzZTxPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge25vdGlmaWNhdGlvbk9ian0gUGFyYW1ldGVycyBzZWUgUE9TVCBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9uZXNpZ25hbC5jb20vdjIuMC9kb2NzL25vdGlmaWNhdGlvbnMtY3JlYXRlLW5vdGlmaWNhdGlvbilcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbk9ialxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBub3RpZmljYXRpb24gd2FzIHNlbmQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBwb3N0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk9iajogT1NOb3RpZmljYXRpb24pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGEgc2luZ2xlIE9uZVNpZ25hbCBub3RpZmljYXRpb24gYmFzZWQgb24gaXRzIEFuZHJvaWQgbm90aWZpY2F0aW9uIGludGVnZXIgaWQuIFVzZSBpbnN0ZWFkIG9mIE5vdGlmaWNhdGlvbk1hbmFnZXIuY2FuY2VsKGlkKTsgb3RoZXJ3aXNlIHRoZSBub3RpZmljYXRpb24gd2lsbCBiZSByZXN0b3JlZCB3aGVuIHlvdXIgYXBwIGlzIHJlc3RhcnRlZC5cbiAgICpcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkIHtzdHJpbmd9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgY2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFByb21wdHMgdGhlIHVzZXIgZm9yIGxvY2F0aW9uIHBlcm1pc3Npb24gdG8gYWxsb3cgZ2VvdGFnZ2luZyBiYXNlZCBvbiB0aGUgXCJMb2NhdGlvbiByYWRpdXNcIiBmaWx0ZXIgb24gdGhlIE9uZVNpZ25hbCBkYXNoYm9hcmQuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgcHJvbXB0TG9jYXRpb24oKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZW1haWwge3N0cmluZ31cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzeW5jSGFzaGVkRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQge31cblxuICAvKipcbiAgICogRW5hYmxlIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBpZiB5b3UgcnVuIGludG8gYW4gaXNzdWUgc2V0dGluZyB1cCBPbmVTaWduYWwuXG4gICAqIFRoZSBsb2dnaW5nIGxldmVscyBhcmUgYXMgZm9sbG93czogMCA9IE5vbmUsIDE9IEZhdGFsLCAyID0gRXJyb3JzLCAzID0gV2FybmluZ3MsIDQgPSBJbmZvLCA1ID0gRGVidWcsIDYgPSBWZXJib3NlXG4gICAqXG4gICAqIFRoZSBoaWdoZXIgdGhlIHZhbHVlIHRoZSBtb3JlIGluZm9ybWF0aW9uIGlzIHNob3duLlxuICAgKlxuICAgKiBAcGFyYW0ge2xvZ2xldmVsfSBjb250YWlucyB0d28gcHJvcGVydGllczogbG9nTGV2ZWwgKGZvciBjb25zb2xlIGxvZ2dpbmcpIGFuZCB2aXN1YWxMZXZlbCAoZm9yIGRpYWxvZyBtZXNzYWdlcylcbiAgICogQHBhcmFtIGxvZ0xldmVsXG4gICAqIEBwYXJhbSBsb2dMZXZlbC5sb2dMZXZlbFxuICAgKiBAcGFyYW0gbG9nTGV2ZWwudmlzdWFsTGV2ZWxcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRMb2dMZXZlbChsb2dMZXZlbDogeyBsb2dMZXZlbDogbnVtYmVyOyB2aXN1YWxMZXZlbDogbnVtYmVyIH0pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgb3IgZW5hYmxlIGxvY2F0aW9uIGNvbGxlY3Rpb24gKERlZmF1bHRzIHRvIGVuYWJsZWQpIGlmIHlvdXIgYXBwIGhhcyBsb2NhdGlvbiBwZXJtaXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcmVkIHtib29sZWFufVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldExvY2F0aW9uU2hhcmVkKHNoYXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gcGVybWlzc2lvbiBzZXR0aW5nIGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcHJvbXB0IHNob3duXG4gICAqIC0gVGhlIHVzZXIgYWNjZXB0aW5nIG9yIGRlY2xpbmluZyB0aGUgcGVybWlzc2lvbiBwcm9tcHRcbiAgICogLSBFbmFibGluZy9kaXNhYmxpbmcgbm90aWZpY2F0aW9ucyBmb3IgeW91ciBhcHAgaW4gdGhlIGRldmljZSBTZXR0aW5ncyBhZnRlciByZXR1cm5pbmcgdG8geW91ciBhcHAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkUGVybWlzc2lvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzZWQgaW4gZnVuY3Rpb24gd2lsbCBiZSBmaXJlZCB3aGVuIGEgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEdldHRpbmcgYSBwdXNoIHRva2VuIGZyb20gQXBwbGUgLyBHb29nbGUuXG4gICAqIC0gR2V0dGluZyBhIHBsYXllciAvIHVzZXIgaWQgZnJvbSBPbmVTaWduYWxcbiAgICogLSBPbmVTaWduYWwuc2V0U3Vic2NyaXB0aW9uIGlzIGNhbGxlZFxuICAgKiAtIFVzZXIgZGlzYWJsZXMgb3IgZW5hYmxlcyBub3RpZmljYXRpb25zXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICogQHBhcmFtIGVtYWlsQXV0aFRva2VuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldEVtYWlsKGVtYWlsOiBzdHJpbmcsIGVtYWlsQXV0aFRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogSWYgeW91ciBhcHAgaW1wbGVtZW50cyBsb2dvdXQgZnVuY3Rpb25hbGl0eSwgeW91IGNhbiBjYWxsIGxvZ291dEVtYWlsIHRvIGRpc3NvY2lhdGUgdGhlIGVtYWlsIGZyb20gdGhlIGRldmljZVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBsb2dvdXRFbWFpbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFzc2VkIGluIGZ1bmN0aW9uIHdpbGwgYmUgZmlyZWQgd2hlbiBhIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24gcHJvcGVydHkgY2hhbmdlcy5cbiAgICogVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGV2ZW50czpcbiAgICogLSBHZXR0aW5nIGEgcHVzaCB0b2tlbiBmcm9tIEFwcGxlIC8gR29vZ2xlLlxuICAgKiAtIEdldHRpbmcgYSBwbGF5ZXIgLyB1c2VyIGlkIGZyb20gT25lU2lnbmFsXG4gICAqIC0gT25lU2lnbmFsLnNldFN1YnNjcmlwdGlvbiBpcyBjYWxsZWRcbiAgICogLSBVc2VyIGRpc2FibGVzIG9yIGVuYWJsZXMgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZEVtYWlsU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGNsZWFyT25lU2lnbmFsTm90aWZpY2F0aW9ucygpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gZGVsYXkgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBTREsgdW50aWwgdGhlIHVzZXIgcHJvdmlkZXMgcHJpdmFjeSBjb25zZW50LlxuICAgKiBUaGUgU0RLIHdpbGwgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkIHVudGlsIHRoZSBwcm92aWRlVXNlckNvbnNlbnQodHJ1ZSkgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByZXF1aXJlZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRSZXF1aXJlc1VzZXJQcml2YWN5Q29uc2VudChyZXF1aXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogSWYgeW91ciBhcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmVxdWlyZSB0aGUgdXNlcidzIHByaXZhY3kgY29uc2VudCwgeW91IGNhbiBwcm92aWRlIHRoaXMgY29uc2VudCB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICogVW50aWwgeW91IGNhbGwgcHJvdmlkZVVzZXJDb25zZW50KHRydWUpLCB0aGUgU0RLIHdpbGwgbm90IGZ1bGx5IGluaXRpYWxpemUgYW5kIHdpbGwgbm90IHNlbmQgYW55IGRhdGEgdG8gT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyYW50ZWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcHJvdmlkZVVzZXJDb25zZW50KGdyYW50ZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSBjYWxsYmFjaywgd2hpY2ggcmV0dXJucyBhIGJvb2xlYW4gdmFyaWFibGUgaW5kaWNhdGluZyBpZiB0aGUgdXNlciBoYXMgZ2l2ZW4gcHJpdmFjeSBjb25zZW50IHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgdXNlclByb3ZpZGVkUHJpdmFjeUNvbnNlbnQoY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIHVzZSB5b3VyIG93biBzeXN0ZW0ncyB1c2VyIElEJ3MgdG8gc2VuZCBwdXNoIG5vdGlmaWNhdGlvbnMgdG8geW91ciB1c2Vycy5cbiAgICogVG8gdGllIGEgdXNlciB0byBhIGdpdmVuIHVzZXIgSUQsIHlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0ZXJuYWxJZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRFeHRlcm5hbFVzZXJJZChleHRlcm5hbElkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgd2hhdGV2ZXIgd2FzIHNldCBhcyB0aGUgY3VycmVudCB1c2VyJ3MgZXh0ZXJuYWwgdXNlciBJRC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcmVtb3ZlRXh0ZXJuYWxVc2VySWQoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0cmlnZ2VyLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdGhlIHRyaWdnZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0fSB2YWx1ZSBWYWx1ZSBmb3IgdGhlIHRyaWdnZXIuIFN0cmluZyBvciBudW1iZXIgcmVjb21tZW5kZWQuIE9iamVjdCBwYXNzZWQgaW4gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcuXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgYWRkVHJpZ2dlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IE9iamVjdCk6IHZvaWQge31cblxuICAvKipcbiAgICogQWRkIGEgbWFwIG9mIHRyaWdnZXJzLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdC48c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+fSB0cmlnZ2VycyBBbGxvd3MgeW91IHRvIHNldCBtdWx0aXBsZSB0cmlnZ2VyIGtleS92YWx1ZSBwYWlycyBzaW11bHRhbmVvdXNseS4gUGFzcyBhIGpzb24gb2JqZWN0IHdpdGgga2V5L3ZhbHVlIHBhaXJzIGxpa2U6IGB7XCJrZXlcIjogXCJ2YWx1ZVwiLCBcImtleTJcIjogXCJ2YWx1ZTJcIn1gLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIGFkZFRyaWdnZXJzKHRyaWdnZXJzOiBPYmplY3QpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzaW5nbGUgdHJpZ2dlciBmb3IgdGhlIGdpdmVuIGtleS4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRyaWdnZXIgdG8gcmVtb3ZlLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHJlbW92ZVRyaWdnZXJGb3JLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0IG9mIHRyaWdnZXJzIGJhc2VkIG9uIGEgY29sbGVjdGlvbiAoYXJyYXkpIG9mIGtleXMuIE1heSBzaG93IGFuIEluLUFwcCBNZXNzYWdlIGlmIGl0cyB0cmlnZ2VyIGNvbmRpdGlvbnMgd2VyZSBtZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGtleXMgUmVtb3ZlcyBhIGNvbGxlY3Rpb24gb2YgdHJpZ2dlcnMgZnJvbSB0aGVpciBrZXlzLiBQYXNzIGFuIGFycmF5IG9mIHRyaWdnZXIga2V5cyBsaWtlOiBgW1wia2V5MVwiLCBcImtleTJcIiwgXCJrZXkzXCJdYC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICByZW1vdmVUcmlnZ2Vyc0ZvcktleXMoa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB0cmlnZ2VyIHZhbHVlIGZvciBhIHByb3ZpZGVkIHRyaWdnZXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdHJpZ2dlciB0byBnZXQgdmFsdWUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IE9iamVjdD59IFJldHVybiB2YWx1ZSBzZXQgd2l0aCBgYWRkVHJpZ2dlcmAsIG9yIGBudWxsYC9gbmlsYCAoaU9TKSBpZiBuZXZlciBzZXQgb3IgcmVtb3ZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VHJpZ2dlclZhbHVlRm9yS2V5KGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB0ZW1wb3JhcmlseSBwYXVzZSBhbGwgSW4tQXBwIE1lc3NhZ2VzLiBZb3UgbWF5IHdhbnQgdG8gZG8gdGhpcyB3aGlsZSB0aGUgdXNlciBpcyBlbmdhZ2VkIGluIGFuIGFjdGl2aXR5IHRoYXQgeW91IGRvbid0IHdhbnQgYSBtZXNzYWdlIHRvIGludGVycnVwdCAoc3VjaCBhcyB3YXRjaGluZyBhIHZpZGVvKS5cbiAgICogQW4gSW4tQXBwIE1lc3NhZ2UgdGhhdCB3b3VsZCBkaXNwbGF5IGlmIG5vdCBwYXVzZWQgd2lsbCBkaXNwbGF5IHJpZ2h0IGFmdGVyIHJlc3VtZSBpZiBpdHMgY29uZGl0aW9ucyB0byBkaXNwbGF5IHJlbWFpbnMgc2F0aXNmaWVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhdXNlIFRvIHBhdXNlLCBzZXQgYHRydWVgLiBUbyByZXN1bWUsIHNldCBgZmFsc2VgLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHBhdXNlSW5BcHBNZXNzYWdlcyhwYXVzZTogYm9vbGVhbik6IHZvaWQge31cbn1cbiJdfQ==
44
+ export class OneSignalOriginal extends AwesomeCordovaNativePlugin {
45
+ /**
46
+ * constants to use in inFocusDisplaying()
47
+ *
48
+ * @hidden
49
+ */
50
+ OSInFocusDisplayOption = {
51
+ None: 0,
52
+ InAppAlert: 1,
53
+ Notification: 2,
54
+ };
55
+ startInit(appId, googleProjectNumber) { return cordova(this, "startInit", { "sync": true }, arguments); }
56
+ handleNotificationReceived() { return cordova(this, "handleNotificationReceived", { "observable": true }, arguments); }
57
+ handleNotificationOpened() { return cordova(this, "handleNotificationOpened", { "observable": true }, arguments); }
58
+ handleInAppMessageClicked() { return cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); }
59
+ iOSSettings(settings) { return cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); }
60
+ endInit() { return cordova(this, "endInit", { "sync": true }, arguments); }
61
+ promptForPushNotificationsWithUserResponse() { return cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); }
62
+ getTags() { return cordova(this, "getTags", {}, arguments); }
63
+ getIds() { return cordova(this, "getIds", {}, arguments); }
64
+ sendTag(key, value) { return cordova(this, "sendTag", { "sync": true }, arguments); }
65
+ sendTags(json) { return cordova(this, "sendTags", { "sync": true }, arguments); }
66
+ deleteTag(key) { return cordova(this, "deleteTag", { "sync": true }, arguments); }
67
+ deleteTags(keys) { return cordova(this, "deleteTags", { "sync": true }, arguments); }
68
+ registerForPushNotifications() { return cordova(this, "registerForPushNotifications", { "sync": true }, arguments); }
69
+ enableVibrate(enable) { return cordova(this, "enableVibrate", { "sync": true }, arguments); }
70
+ enableSound(enable) { return cordova(this, "enableSound", { "sync": true }, arguments); }
71
+ inFocusDisplaying(displayOption) { return cordova(this, "inFocusDisplaying", { "sync": true }, arguments); }
72
+ setSubscription(enable) { return cordova(this, "setSubscription", { "sync": true }, arguments); }
73
+ getPermissionSubscriptionState() { return cordova(this, "getPermissionSubscriptionState", {}, arguments); }
74
+ postNotification(notificationObj) { return cordova(this, "postNotification", {}, arguments); }
75
+ cancelNotification(notificationId) { return cordova(this, "cancelNotification", { "sync": true }, arguments); }
76
+ promptLocation() { return cordova(this, "promptLocation", { "sync": true }, arguments); }
77
+ syncHashedEmail(email) { return cordova(this, "syncHashedEmail", { "sync": true }, arguments); }
78
+ setLogLevel(logLevel) { return cordova(this, "setLogLevel", { "sync": true }, arguments); }
79
+ setLocationShared(shared) { return cordova(this, "setLocationShared", { "sync": true }, arguments); }
80
+ addPermissionObserver() { return cordova(this, "addPermissionObserver", { "observable": true }, arguments); }
81
+ addSubscriptionObserver() { return cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); }
82
+ setEmail(email, emailAuthToken) { return cordova(this, "setEmail", {}, arguments); }
83
+ logoutEmail() { return cordova(this, "logoutEmail", {}, arguments); }
84
+ addEmailSubscriptionObserver() { return cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); }
85
+ clearOneSignalNotifications() { return cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); }
86
+ setRequiresUserPrivacyConsent(required) { return cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); }
87
+ provideUserConsent(granted) { return cordova(this, "provideUserConsent", {}, arguments); }
88
+ userProvidedPrivacyConsent(callback) { return cordova(this, "userProvidedPrivacyConsent", {}, arguments); }
89
+ setExternalUserId(externalId) { return cordova(this, "setExternalUserId", {}, arguments); }
90
+ removeExternalUserId() { return cordova(this, "removeExternalUserId", {}, arguments); }
91
+ addTrigger(key, value) { return cordova(this, "addTrigger", { "sync": true }, arguments); }
92
+ addTriggers(triggers) { return cordova(this, "addTriggers", { "sync": true }, arguments); }
93
+ removeTriggerForKey(key) { return cordova(this, "removeTriggerForKey", { "sync": true }, arguments); }
94
+ removeTriggersForKeys(keys) { return cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); }
95
+ getTriggerValueForKey(key) { return cordova(this, "getTriggerValueForKey", {}, arguments); }
96
+ pauseInAppMessages(pause) { return cordova(this, "pauseInAppMessages", { "sync": true }, arguments); }
97
+ static pluginName = "OneSignal";
98
+ static plugin = "onesignal-cordova-plugin";
99
+ static pluginRef = "plugins.OneSignal";
100
+ static repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
101
+ static platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvb25lc2lnbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sdUNBQStDLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTBGbEM7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFhWDtBQWJELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsdUVBQVUsQ0FBQTtJQUNWOztPQUVHO0lBQ0gseUVBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsd0VBQVcsQ0FBQTtBQUNiLENBQUMsRUFiVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBYWpDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxhQWFYO0FBYkQsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsaURBQVEsQ0FBQTtJQUNSOztPQUVHO0lBQ0gsNkRBQWMsQ0FBQTtJQUNkOztPQUVHO0lBQ0gsaUVBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQWJXLGFBQWEsS0FBYixhQUFhLFFBYXhCO0FBOEtELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsbURBQVUsQ0FBQTtJQUNWLDJEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO2FBdUlZLFNBQVUsU0FBUSwwQkFBMEI7SUFDdkQ7Ozs7T0FJRztJQUNILHNCQUFzQixHQUFHO1FBQ3ZCLElBQUksRUFBRSxDQUFDO1FBQ1AsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsQ0FBQztLQUNoQixDQUFDO0lBVUYsU0FBUyxDQUFDLEtBQWEsRUFBRSxtQkFBNEI7SUFZckQsMEJBQTBCO0lBYzFCLHdCQUF3QjtJQVl4Qix5QkFBeUI7SUFxQnpCLFdBQVcsQ0FBQyxRQUFzRjtJQVVsRyxPQUFPO0lBWVAsMENBQTBDO0lBWTFDLE9BQU87SUFlUCxNQUFNO0lBY04sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhO0lBVWxDLFFBQVEsQ0FBQyxJQUFTO0lBU2xCLFNBQVMsQ0FBQyxHQUFXO0lBU3JCLFVBQVUsQ0FBQyxJQUFjO0lBT3pCLDRCQUE0QjtJQWE1QixhQUFhLENBQUMsTUFBZTtJQWE3QixXQUFXLENBQUMsTUFBZTtJQVUzQixpQkFBaUIsQ0FBQyxhQUE0QjtJQVc5QyxlQUFlLENBQUMsTUFBZTtJQVEvQiw4QkFBOEI7SUFXOUIsZ0JBQWdCLENBQUMsZUFBK0I7SUFVaEQsa0JBQWtCLENBQUMsY0FBc0I7SUFNekMsY0FBYztJQU9kLGVBQWUsQ0FBQyxLQUFhO0lBYzdCLFdBQVcsQ0FBQyxRQUFtRDtJQVEvRCxpQkFBaUIsQ0FBQyxNQUFlO0lBY2pDLHFCQUFxQjtJQWlCckIsdUJBQXVCO0lBV3ZCLFFBQVEsQ0FBQyxLQUFhLEVBQUUsY0FBdUI7SUFRL0MsV0FBVztJQWlCWCw0QkFBNEI7SUFRNUIsMkJBQTJCO0lBUzNCLDZCQUE2QixDQUFDLFFBQWlCO0lBUy9DLGtCQUFrQixDQUFDLE9BQWdCO0lBUW5DLDBCQUEwQixDQUFDLFFBQWtCO0lBUzdDLGlCQUFpQixDQUFDLFVBQWtCO0lBTXBDLG9CQUFvQjtJQVdwQixVQUFVLENBQUMsR0FBVyxFQUFFLEtBQStCO0lBVXZELFdBQVcsQ0FBQyxRQUFnQjtJQVU1QixtQkFBbUIsQ0FBQyxHQUFXO0lBVS9CLHFCQUFxQixDQUFDLElBQWM7SUFTcEMscUJBQXFCLENBQUMsR0FBVztJQWFqQyxrQkFBa0IsQ0FBQyxLQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZG92YSwgQXdlc29tZUNvcmRvdmFOYXRpdmVQbHVnaW4sIFBsdWdpbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBXYXMgYXBwIGluIGZvY3VzLlxuICAgKi9cbiAgaXNBcHBJbkZvY3VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdhcyBub3RpZmljYXRpb24gc2hvd24gdG8gdGhlIHVzZXIuIFdpbGwgYmUgZmFsc2UgZm9yIHNpbGVudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgc2hvd24/OiBib29sZWFuO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQW5kcm9pZCBOb3RpZmljYXRpb24gYXNzaWduZWQgdG8gdGhlIG5vdGlmaWNhdGlvbi4gQ2FuIGJlIHVzZWQgdG8gY2FuY2VsIG9yIHJlcGxhY2UgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGFuZHJvaWROb3RpZmljYXRpb25JZD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBheWxvYWQgcmVjZWl2ZWQgZnJvbSBPbmVTaWduYWwuXG4gICAqL1xuICBwYXlsb2FkPzogT1NOb3RpZmljYXRpb25QYXlsb2FkO1xuICAvKipcbiAgICogSG93IHRoZSBub3RpZmljYXRpb24gd2FzIGRpc3BsYXllZCB0byB0aGUgdXNlci4gQ2FuIGJlIHNldCB0byBgTm90aWZpY2F0aW9uYCwgYEluQXBwQWxlcnRgLCBvciBgTm9uZWAgaWYgaXQgd2FzIG5vdCBkaXNwbGF5ZWQuXG4gICAqL1xuICBkaXNwbGF5VHlwZT86IE9TRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBOb3RpZmljYXRpb24gaXMgYSBzdW1tYXJ5IG5vdGlmaWNhdGlvbiBmb3IgYSBncm91cCB0aGlzIHdpbGwgY29udGFpbiBhbGwgbm90aWZpY2F0aW9uIHBheWxvYWRzIGl0IHdhcyBjcmVhdGVkIGZyb20uXG4gICAqL1xuICBncm91cGVkTm90aWZpY2F0aW9ucz86IE9TTm90aWZpY2F0aW9uUGF5bG9hZFtdO1xuICBhcHBfaWQ/OiBzdHJpbmc7XG4gIGNvbnRlbnRzPzogYW55O1xuICBoZWFkaW5ncz86IGFueTtcbiAgaXNJb3M/OiBib29sZWFuO1xuICBpc0FuZHJvaWQ/OiBib29sZWFuO1xuICBpc1dQPzogYm9vbGVhbjtcbiAgaXNXUF9XTlM/OiBib29sZWFuO1xuICBpc0FkbT86IGJvb2xlYW47XG4gIGlzQ2hyb21lPzogYm9vbGVhbjtcbiAgaXNDaHJvbWVXZWI/OiBib29sZWFuO1xuICBpc1NhZmFyaT86IGJvb2xlYW47XG4gIGlzQW55V2ViPzogYm9vbGVhbjtcbiAgaW5jbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgZXhjbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9wbGF5ZXJfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfaW9zX3Rva2Vucz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FuZHJvaWRfcmVnX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX3dwX3VyaXM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV93cF93bnNfdXJpcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FtYXpvbl9yZWdfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfY2hyb21lX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9jaHJvbWVfd2ViX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgYXBwX2lkcz86IHN0cmluZ1tdO1xuICB0YWdzPzogYW55W107XG4gIGlvc19iYWRnZVR5cGU/OiBzdHJpbmc7XG4gIGlvc19iYWRnZUNvdW50PzogbnVtYmVyO1xuICBpb3Nfc291bmQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfc291bmQ/OiBzdHJpbmc7XG4gIGFkbV9zb3VuZD86IHN0cmluZztcbiAgd3Bfc291bmQ/OiBzdHJpbmc7XG4gIHdwX3duc19zb3VuZD86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgYnV0dG9ucz86IGFueTtcbiAgY29sbGFwc2VfaWQ/OiBzdHJpbmc7XG4gIHNtYWxsX2ljb24/OiBzdHJpbmc7XG4gIGxhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGJpZ19waWN0dXJlPzogc3RyaW5nO1xuICBhZG1fc21hbGxfaWNvbj86IHN0cmluZztcbiAgYWRtX2xhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGFkbV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX2ljb24/OiBzdHJpbmc7XG4gIGNocm9tZV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX3dlYl9pY29uPzogc3RyaW5nO1xuICBmaXJlZm94X2ljb24/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgc2VuZF9hZnRlcj86IHN0cmluZztcbiAgZGVsYXllZF9vcHRpb24/OiBzdHJpbmc7XG4gIGRlbGl2ZXJ5X3RpbWVfb2ZfZGF5Pzogc3RyaW5nO1xuICBhbmRyb2lkX2xlZF9jb2xvcj86IHN0cmluZztcbiAgYW5kcm9pZF9hY2NlbnRfY29sb3I/OiBzdHJpbmc7XG4gIGFuZHJvaWRfdmlzaWJpbGl0eT86IG51bWJlcjtcbiAgY29udGVudF9hdmFpbGFibGU/OiBib29sZWFuO1xuICBhbWF6b25fYmFja2dyb3VuZF9kYXRhPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVfaWQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXA/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgYWRtX2dyb3VwPzogc3RyaW5nO1xuICBhZG1fZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgdHRsPzogbnVtYmVyO1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgaW9zX2NhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIFByaXZhY3kgc2V0dGluZyBmb3IgaG93IHRoZSBub3RpZmljYXRpb24gc2hvdWxkIGJlIHNob3duIG9uIHRoZSBsb2Nrc2NyZWVuIG9mIEFuZHJvaWQgNSsgZGV2aWNlcy5cbiAqL1xuZXhwb3J0IGVudW0gT1NMb2NrU2NyZWVuVmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBGdWxseSB2aXNpYmxlIChkZWZhdWx0KVxuICAgKi9cbiAgUHVibGljID0gMSxcbiAgLyoqXG4gICAqIENvbnRlbnRzIGFyZSBoaWRkZW5cbiAgICovXG4gIFByaXZhdGUgPSAwLFxuICAvKipcbiAgICogTm90IHNob3duXG4gICAqL1xuICBTZWNyZXQgPSAtMSxcbn1cblxuLyoqXG4gKiBIb3cgdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBQYXJ0IG9mIE9TTm90aWZpY2F0aW9uLiBTZWUgaW5Gb2N1c0Rpc3BsYXlpbmcgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gT1NEaXNwbGF5VHlwZSB7XG4gIC8qKlxuICAgKiBub3RpZmljYXRpb24gaXMgc2lsZW50LCBvciBpbkZvY3VzRGlzcGxheWluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIE5vbmUgPSAwLFxuICAvKipcbiAgICogKCoqREVGQVVMVCoqKSAtIG5hdGl2ZSBhbGVydCBkaWFsb2cgZGlzcGxheS5cbiAgICovXG4gIEluQXBwQWxlcnQgPSAxLFxuICAvKipcbiAgICogbmF0aXZlIG5vdGlmaWNhdGlvbiBkaXNwbGF5LlxuICAgKi9cbiAgTm90aWZpY2F0aW9uID0gMixcbn1cblxuLyoqXG4gKiBDb250ZW50cyBhbmQgc2V0dGluZ3Mgb2YgdGhlIG5vdGlmaWNhdGlvbiB0aGUgdXNlciByZWNlaXZlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvblBheWxvYWQge1xuICAvKipcbiAgICogT25lU2lnbmFsIG5vdGlmaWNhdGlvbiBVVUlELlxuICAgKi9cbiAgbm90aWZpY2F0aW9uSUQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogQm9keSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGFkZGl0aW9uYWwgZGF0YSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIG5vdGlmaWNhdGlvbi4gU2V0IG9uIHRoZSBkYXNoYm9hcmQgdW5kZXIgT3B0aW9ucyA+IEFkZGl0aW9uYWwgRGF0YVxuICAgKiBvciB3aXRoIHRoZSAnZGF0YScgZmllbGQgb24gdGhlIFJFU1QgQVBJLlxuICAgKi9cbiAgYWRkaXRpb25hbERhdGE/OiBhbnk7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBTbWFsbCBpY29uIHJlc291cmNlIG5hbWUgc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBzbWFsbEljb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBMYXJnZSBpY29uIHNldCBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgbGFyZ2VJY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQmlnIHBpY3R1cmUgaW1hZ2Ugc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBiaWdQaWN0dXJlPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQWNjZW50IGNvbG9yIHNob3duIGFyb3VuZCBzbWFsbCBub3RpZmljYXRpb24gaWNvbiBvbiBBbmRyb2lkIDUrIGRldmljZXMuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgc21hbGxJY29uQWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVUkwgdG8gb3BlbiB3aGVuIG9wZW5pbmcgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGxhdW5jaFVSTD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNvdW5kIHJlc291cmNlIHRvIHBsYXkgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIHNob3duLlxuICAgKi9cbiAgc291bmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIERldmljZXMgdGhhdCBoYXZlIGEgbm90aWZpY2F0aW9uIExFRCB3aWxsIGJsaW5rIGluIHRoaXMgY29sb3IuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgbGVkQ29sb3I/OiBzdHJpbmc7XG4gIGxvY2tTY3JlZW5WaXNpYmlsaXR5PzogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eTtcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIE5vdGlmaWNhdGlvbnMgd2l0aCB0aGlzIHNhbWUga2V5IHdpbGwgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBhIHNpbmdsZSBzdW1tYXJ5IG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGdyb3VwS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gU3VtbWFyeSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgc3VtbWFyeSBub3RpZmljYXRpb24uXG4gICAqL1xuICBncm91cE1lc3NhZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBhY3Rpb25CdXR0b25zOiBPU0FjdGlvbkJ1dHRvbltdO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gVGhlIEdvb2dsZSBwcm9qZWN0IG51bWJlciB0aGUgbm90aWZpY2F0aW9uIHdhcyBzZW50IHVuZGVyLlxuICAgKi9cbiAgZnJvbVByb2plY3ROdW1iZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIGJhY2tncm91bmRJbWFnZUxheW91dD86IE9TQmFja2dyb3VuZEltYWdlTGF5b3V0O1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGJ1dHRvbnMgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJhd1BheWxvYWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NBY3Rpb25CdXR0b24ge1xuICAvKipcbiAgICogSWQgYXNzaWduZWQgdG8gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IHNob3cgb24gdGhlIGJ1dHRvbiB0byB0aGUgdXNlci5cbiAgICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEljb24gc2hvd24gb24gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBPU1Blcm1pc3Npb25TdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN0YXRlIHtcbiAgLyoqXG4gICAqIFVzZXIgd2FzIHByb21wdGVkLlxuICAgKi9cbiAgaGFzUHJvbXB0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0dXMgKGlPUyBPbmx5KVxuICAgKi9cbiAgc3RhdHVzOiBhbnk7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0ZSAoQW5kcm9pZCBPbmx5KVxuICAgKi9cbiAgc3RhdGU6IGFueTtcbn1cblxuLyoqXG4gKiBPU1N1YnNjcmlwdGlvblN0YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NTdWJzY3JpcHRpb25TdGF0ZSB7XG4gIHN1YnNjcmliZWQ6IGJvb2xlYW47XG4gIHVzZXJTdWJzY3JpcHRpb25TZXR0aW5nOiBhbnk7XG4gIHVzZXJJZDogYW55O1xuICBwdXNoVG9rZW46IGFueTtcbn1cblxuLyoqXG4gKiBTdWJzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zIHN0YXR1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlIHtcbiAgLyoqXG4gICAqIElkIGFzc2lnbmVkIHRvIHRoZSBidXR0b24uXG4gICAqL1xuICBwZXJtaXNzaW9uU3RhdHVzOiBPU1Blcm1pc3Npb25TdGF0ZTtcbiAgLyoqXG4gICAqIFRleHQgc2hvdyBvbiB0aGUgYnV0dG9uIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgc3Vic2NyaXB0aW9uU3RhdHVzOiBPU1N1YnNjcmlwdGlvblN0YXRlO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIElmIGEgYmFja2dyb3VuZCBpbWFnZSB3YXMgc2V0LCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU0JhY2tncm91bmRJbWFnZUxheW91dCB7XG4gIC8qKlxuICAgKiBJbWFnZSBVUkwgb3IgbmFtZSB1c2VkIGFzIHRoZSBiYWNrZ3JvdW5kIGltYWdlLlxuICAgKi9cbiAgaW1hZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIHRpdGxlIG9uIHRoZSBub3RpZmljYXRpb24uIEFSR0IgRm9ybWF0LlxuICAgKi9cbiAgdGl0bGVUZXh0Q29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIGJvZHkgb24gdGhlIG5vdGlmaWNhdGlvbi4gQVJHQiBGb3JtYXQuXG4gICAqL1xuICBib2R5VGV4dENvbG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYSBub3RpZmljYXRpb24gdGhlIHVzZXIgcmVjZWl2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NOb3RpZmljYXRpb25PcGVuZWRSZXN1bHQge1xuICBhY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBXYXMgdGhlIG5vdGlmaWNhdGlvbiBvcGVuZWQgbm9ybWFsbHkgKGBPcGVuZWRgKSBvciB3YXMgYSBidXR0b24gcHJlc3NlZCBvbiB0aGUgbm90aWZpY2F0aW9uIChgQWN0aW9uVGFrZW5gKS5cbiAgICAgKi9cbiAgICB0eXBlOiBPU0FjdGlvblR5cGU7XG4gICAgLyoqXG4gICAgICogSWYgYHR5cGVgID09IGBBY3Rpb25UYWtlbmAgdGhlbiB0aGlzIHdpbGwgY29udGFpbiB0aGUgaWQgb2YgdGhlIGJ1dHRvbiBwcmVzc2VkLlxuICAgICAqL1xuICAgIGFjdGlvbklEPzogc3RyaW5nO1xuICB9O1xuICBub3RpZmljYXRpb246IE9TTm90aWZpY2F0aW9uO1xufVxuXG5leHBvcnQgZW51bSBPU0FjdGlvblR5cGUge1xuICBPcGVuZWQgPSAwLFxuICBBY3Rpb25UYWtlID0gMSxcbn1cblxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBJbi1BcHAgTWVzc2FnZSBhY3Rpb24gZWxlbWVudCAoYnV0dG9uIG9yIGltYWdlKSB0aGF0IHdhcyB0YXBwZWQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NJbkFwcE1lc3NhZ2VBY3Rpb24ge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY2xpY2sgbmFtZSBkZWZpbmVkIGZvciB0aGUgYWN0aW9uIGVsZW1lbnQuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja19uYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBVUkwgdGhhdCBvcGVucyB3aGVuIHRoZSBhY3Rpb24gdGFrZXMgcGxhY2UuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja191cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoZSB1c2VyIGhhcyBwcmVzc2VkIGFueSBhY3Rpb24gb24gdGhlIEluLUFwcCBNZXNzYWdlLlxuICAgKi9cbiAgZmlyc3RfY2xpY2s6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIGFuaW1hdGUgb2ZmIHRoZSBzY3JlZW4uIElmIGBmYWxzZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIHN0YXkgb24gc2NyZWVuIHVudGlsIHRoZSB1c2VyIGRpc21pc3NlcyBpdC5cbiAgICovXG4gIGNsb3Nlc19tZXNzYWdlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBuYW1lIE9uZVNpZ25hbFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgT25lU2lnbmFsIHBsdWdpbiBpcyBhbiBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIHVzaW5nIHRoZSBbT25lU2lnbmFsXShodHRwczovL29uZXNpZ25hbC5jb20vKSBTZXJ2aWNlLlxuICogT25lU2lnbmFsIGlzIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIGZvciBkZWxpdmVyaW5nIHB1c2ggbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBQbGVhc2UgdmlldyB0aGUgb2ZmaWNpYWwgW09uZVNpZ25hbCBJb25pYyBTREsgSW5zdGFsbGF0aW9uXShodHRwczovL2RvY3VtZW50YXRpb24ub25lc2lnbmFsLmNvbS9kb2NzL2lvbmljLXNkay1zZXR1cCkgZ3VpZGVcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqICMjIyMgSWNvbnNcbiAqIElmIHlvdSB3YW50IHRvIHVzZSBnZW5lcmF0ZWQgaWNvbnMgd2l0aCBjb21tYW5kIGBpb25pYyBjb3Jkb3ZhIHJlc291cmNlc2A6XG4gKlxuICogMS4gQWRkIGEgZmlsZSB0byB5b3VyIGBob29rc2AgZGlyZWN0b3J5IGNhbGxlZCBgY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqXG4gKiAyLiBDb25maWd1cmUgdGhlIGhvb2sgaW4geW91ciBjb25maWcueG1sXG4gKiBgYGBcbiAqICAgICA8cGxhdGZvcm0gbmFtZT1cImFuZHJvaWRcIj5cbiAqICAgICAgICAgPGhvb2sgdHlwZT1cImFmdGVyX3ByZXBhcmVcIiBzcmM9XCJob29rcy9jb3B5X2FuZHJvaWRfbm90aWZpY2F0aW9uX2ljb25zLmpzXCIgLz5cbiAqICAgICA8L3BsYXRmb3JtPlxuICogYGBgXG4gKlxuICogMy4gUHV0IHRoZSBmb2xsb3dpbmcgY29kZSBpbiBpdDpcbiAqXG4gKiBgYGBcbiAqICMhL3Vzci9iaW4vZW52IG5vZGVcbiAqXG4gKiB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuICogdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4gKlxuICogdmFyIGZpbGVzdG9jb3B5ID0gW3tcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUtaGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUtaGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLW1kcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLW1kcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14aGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUteGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4aGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLXh4eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4eGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSBdO1xuICpcbiAqIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICpcbiAqICAgICAvLyBubyBuZWVkIHRvIGNvbmZpZ3VyZSBiZWxvd1xuICogICAgIHZhciByb290ZGlyID0gY29udGV4dC5vcHRzLnByb2plY3RSb290O1xuICpcbiAqICAgICBmaWxlc3RvY29weS5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICogICAgICAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gKiAgICAgICAgICAgICB2YXIgdmFsID0gb2JqW2tleV07XG4gKiAgICAgICAgICAgICB2YXIgc3JjZmlsZSA9IHBhdGguam9pbihyb290ZGlyLCBrZXkpO1xuICogICAgICAgICAgICAgdmFyIGRlc3RmaWxlID0gcGF0aC5qb2luKHJvb3RkaXIsIHZhbCk7XG4gKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvcHlpbmcgXCIrc3JjZmlsZStcIiB0byBcIitkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICB2YXIgZGVzdGRpciA9IHBhdGguZGlybmFtZShkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzcmNmaWxlKSAmJiBmcy5leGlzdHNTeW5jKGRlc3RkaXIpKSB7XG4gKiAgICAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbShzcmNmaWxlKS5waXBlKFxuICogICAgICAgICAgICAgICAgICAgICBmcy5jcmVhdGVXcml0ZVN0cmVhbShkZXN0ZmlsZSkpO1xuICogICAgICAgICAgICAgfVxuICogICAgICAgICB9KTtcbiAqICAgICB9KTtcbiAqXG4gKiB9O1xuICogYGBgXG4gKlxuICogMy4gRnJvbSB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgbWFrZSB0aGUgZmlsZSBleGVjdXRhYmxlOlxuICogYCQgY2htb2QgK3ggaG9va3MvY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqIEB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgT25lU2lnbmFsIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL29uZXNpZ25hbC9uZ3gnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgb25lU2lnbmFsOiBPbmVTaWduYWwpIHsgfVxuICpcbiAqIC4uLlxuICpcbiAqIHRoaXMub25lU2lnbmFsLnN0YXJ0SW5pdCgnYjJmN2Y5NjYtZDhjYy0xMWU0LWJlZDEtZGY4ZjA1YmU1NWJhJywgJzcwMzMyMjc0NDI2MScpO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmluRm9jdXNEaXNwbGF5aW5nKHRoaXMub25lU2lnbmFsLk9TSW5Gb2N1c0Rpc3BsYXlPcHRpb24uSW5BcHBBbGVydCk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICogIC8vIGRvIHNvbWV0aGluZyB3aGVuIG5vdGlmaWNhdGlvbiBpcyByZWNlaXZlZFxuICogfSk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAqICAgLy8gZG8gc29tZXRoaW5nIHdoZW4gYSBub3RpZmljYXRpb24gaXMgb3BlbmVkXG4gKiB9KTtcbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5lbmRJbml0KCk7XG4gKiBgYGBcbiAqIEBpbnRlcmZhY2VzXG4gKiBPU05vdGlmaWNhdGlvblxuICogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eVxuICogT1NEaXNwbGF5VHlwZVxuICogT1NOb3RpZmljYXRpb25QYXlsb2FkXG4gKiBPU0FjdGlvbkJ1dHRvblxuICogT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXRcbiAqIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0XG4gKiBPU0FjdGlvblR5cGVcbiAqIE9TSW5BcHBNZXNzYWdlQWN0aW9uXG4gKi9cbkBQbHVnaW4oe1xuICBwbHVnaW5OYW1lOiAnT25lU2lnbmFsJyxcbiAgcGx1Z2luOiAnb25lc2lnbmFsLWNvcmRvdmEtcGx1Z2luJyxcbiAgcGx1Z2luUmVmOiAncGx1Z2lucy5PbmVTaWduYWwnLFxuICByZXBvOiAnaHR0cHM6Ly9naXRodWIuY29tL09uZVNpZ25hbC9PbmVTaWduYWwtQ29yZG92YS1TREsnLFxuICBwbGF0Zm9ybXM6IFsnQW1hem9uIEZpcmUgT1MnLCAnQW5kcm9pZCcsICdpT1MnLCAnV2luZG93cyddLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVTaWduYWwgZXh0ZW5kcyBBd2Vzb21lQ29yZG92YU5hdGl2ZVBsdWdpbiB7XG4gIC8qKlxuICAgKiBjb25zdGFudHMgdG8gdXNlIGluIGluRm9jdXNEaXNwbGF5aW5nKClcbiAgICpcbiAgICogQGhpZGRlblxuICAgKi9cbiAgT1NJbkZvY3VzRGlzcGxheU9wdGlvbiA9IHtcbiAgICBOb25lOiAwLFxuICAgIEluQXBwQWxlcnQ6IDEsXG4gICAgTm90aWZpY2F0aW9uOiAyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gT25jZSB5b3UgYXJlIGRvbmUgY29uZmlndXJpbmcgT25lU2lnbmFsLCBjYWxsIHRoZSBgZW5kSW5pdGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCBZb3VyIE9uZVNpZ25hbCBhcHAgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdvb2dsZVByb2plY3ROdW1iZXIgKipBTkRST0lEKiogLSB5b3VyIEdvb2dsZSBwcm9qZWN0IG51bWJlcjsgb25seSByZXF1aXJlZCBmb3IgQW5kcm9pZCBHQ00vRkNNIHB1c2hlcy5cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzdGFydEluaXQoYXBwSWQ6IHN0cmluZywgZ29vZ2xlUHJvamVjdE51bWJlcj86IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIHJ1biB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB3aGV0aGVyIGl0IHdhcyBkaXNwbGF5ZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPbmVTaWduYWxSZWNlaXZlZE5vdGlmaWNhdGlvbj59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBydW4gd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyB0YXBwZWQgb24gZnJvbSB0aGUgbm90aWZpY2F0aW9uIHNoYWRlICgqKkFORFJPSUQqKikgb3Igbm90aWZpY2F0aW9uXG4gICAqIGNlbnRlciAoKippT1MqKiksIG9yIHdoZW4gY2xvc2luZyBhbiBBbGVydCBub3RpZmljYXRpb24gc2hvd24gaW4gdGhlIGFwcCAoaWYgSW5BcHBBbGVydCBpcyBlbmFibGVkIGluXG4gICAqIGluRm9jdXNEaXNwbGF5aW5nKS5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T25lU2lnbmFsT3BlbmVkTm90aWZpY2F0aW9uPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBoYW5kbGVOb3RpZmljYXRpb25PcGVuZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbk9wZW5lZFJlc3VsdD4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdG8gcHJvY2VzcyBhbiBJbi1BcHAgTWVzc2FnZSB0aGUgdXNlciBqdXN0IHRhcHBlZCBvbi5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T1NJbkFwcE1lc3NhZ2VBY3Rpb24+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGhhbmRsZUluQXBwTWVzc2FnZUNsaWNrZWQoKTogT2JzZXJ2YWJsZTxPU0luQXBwTWVzc2FnZUFjdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBpT1MqKiAtIFNldHRpbmdzIGZvciBpT1MgYXBwc1xuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3NcbiAgICogIGtPU1NldHRpbmdzS2V5QXV0b1Byb21wdDogYm9vbGVhbiA9IHRydWVcbiAgICogIEF1dG8gcHJvbXB0IHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogIGtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkw6IGJvb2xlYW4gPSBmYWxzZVxuICAgKiAgTGF1bmNoIG5vdGlmaWNhdGlvbnMgd2l0aCBhIGxhdW5jaCBVUkwgYXMgYW4gaW4gYXBwIHdlYnZpZXcuXG4gICAqIEBwYXJhbSBzZXR0aW5ncy5rT1NTZXR0aW5nc0tleUF1dG9Qcm9tcHRcbiAgICogQHBhcmFtIHNldHRpbmdzLmtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkxcbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgaU9TU2V0dGluZ3Moc2V0dGluZ3M6IHsga09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0OiBib29sZWFuOyBrT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMOiBib29sZWFuIH0pOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRJbml0YCB0byBjb21wbGV0ZSBpbml0aWFsaXphdGlvbiBvZiBPbmVTaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5kSW5pdCgpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy4gQ2FsbGJhY2sgZmlyZXMgYXMgc29vbiBhcyB0aGUgdXNlciBhY2NlcHRzIG9yIGRlY2xpbmVzIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgcHJvbXB0Rm9yUHVzaE5vdGlmaWNhdGlvbnNXaXRoVXNlclJlc3BvbnNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGFncyB0aGF0IGhhdmUgYmVlbiBzZXQgb24gdGhlIHVzZXIgZnJvbSB0aGUgT25lU2lnbmFsIHNlcnZlci5cbiAgICpcbiAgICogUXVpcmsqKjogWW91IG11c3Qgd2FpdCBmb3IgYGdldFRhZ3NgIHRvIHJlc29sdmUgYmVmb3JlIGNhbGxpbmcgaXQgYWdhaW4sIGFzIHRoZSBwbHVnaW4gd2lsbCBvbmx5IHByb2Nlc3MgdGhlIGxhc3QgbWV0aG9kIGNhbGwgYW5kIGRpc2NhcmQgYW55IHByZXZpb3VzIG9uZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0YWdzIGFyZSByZWNpZXZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VGFncygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXRzIHlvdSByZXRyaWV2ZSB0aGUgT25lU2lnbmFsIHVzZXIgaWQgYW5kIGRldmljZSB0b2tlbi5cbiAgICogWW91ciBoYW5kbGVyIGlzIGNhbGxlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHdpdGggT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBkZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLlxuICAgKlxuICAgKiAgdXNlcklkIHtzdHJpbmd9IE9uZVNpZ25hbCB1c2VySWQgaXMgYSBVVUlEIGZvcm1hdHRlZCBzdHJpbmcuICh1bmlxdWUgcGVyIGRldmljZSBwZXIgYXBwKVxuICAgKlxuICAgKiAgcHVzaFRva2VuIHtzdHJpbmd9IEEgcHVzaCB0b2tlbiBpcyBhIEdvb2dsZS9BcHBsZSBhc3NpZ25lZCBpZGVudGlmaWVyKHVuaXF1ZSBwZXIgZGV2aWNlIHBlciBhcHApLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRJZHMoKTogUHJvbWlzZTx7IHVzZXJJZDogc3RyaW5nOyBwdXNoVG9rZW46IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRhZyBhIHVzZXIgYmFzZWQgb24gYW4gYXBwIGV2ZW50IG9mIHlvdXIgY2hvb3Npbmcgc28gbGF0ZXIgeW91IGNhbiBjcmVhdGUgc2VnbWVudHMgb24gW29uZXNpZ25hbC5jb21dKGh0dHBzOi8vb25lc2lnbmFsLmNvbS8pIHRvIHRhcmdldCB0aGVzZSB1c2Vycy5cbiAgICogUmVjb21tZW5kIHVzaW5nIHNlbmRUYWdzIG92ZXIgc2VuZFRhZyBpZiB5b3UgbmVlZCB0byBzZXQgbW9yZSB0aGFuIG9uZSB0YWcgb24gYSB1c2VyIGF0IGEgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSBvZiB5b3VyIGNob29zaW5nIHRvIGNyZWF0ZSBvciB1cGRhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBWYWx1ZSB0byBzZXQgb24gdGhlIGtleS4gTk9URTogUGFzc2luZyBpbiBhIGJsYW5rIFN0cmluZyBkZWxldGVzIHRoZSBrZXksIHlvdSBjYW4gYWxzbyBjYWxsIGRlbGV0ZVRhZy5cbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZW5kVGFnKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBUYWcgYSB1c2VyIGJhc2VkIG9uIGFuIGFwcCBldmVudCBvZiB5b3VyIGNob29zaW5nIHNvIGxhdGVyIHlvdSBjYW4gY3JlYXRlIHNlZ21lbnRzIG9uIFtvbmVzaWduYWwuY29tXShodHRwczovL29uZXNpZ25hbC5jb20vKSB0byB0YXJnZXQgdGhlc2UgdXNlcnMuXG4gICAqIFJlY29tbWVuZCB1c2luZyBzZW5kVGFncyBvdmVyIHNlbmRUYWcgaWYgeW91IG5lZWQgdG8gc2V0IG1vcmUgdGhhbiBvbmUgdGFnIG9uIGEgdXNlciBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBQYXNzIGEganNvbiBvYmplY3Qgd2l0aCBrZXkvdmFsdWUgcGFpcnMgbGlrZToge2tleTogXCJ2YWx1ZVwiLCBrZXkyOiBcInZhbHVlMlwifVxuICAgKiBAcGFyYW0ganNvblxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNlbmRUYWdzKGpzb246IGFueSk6IHZvaWQge31cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHRhZyB0aGF0IHdhcyBwcmV2aW91c2x5IHNldCBvbiBhIHVzZXIgd2l0aCBgc2VuZFRhZ2Agb3IgYHNlbmRUYWdzYC4gVXNlIGBkZWxldGVUYWdzYCBpZiB5b3UgbmVlZCB0byBkZWxldGUgbW9yZSB0aGFuIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSB0byByZW1vdmUuXG4gICAqIEBwYXJhbSBrZXlcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBkZWxldGVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGFncyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXQgb24gYSB1c2VyIHdpdGggYHNlbmRUYWdgIG9yIGBzZW5kVGFnc2AuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IEtleXMgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0ga2V5c1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGRlbGV0ZVRhZ3Moa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhpcyB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIHByb21wdCBhbiBpT1MgdXNlciB0byBhY2NlcHQgcHVzaCBub3RpZmljYXRpb25zIHdpdGggdGhlIGRlZmF1bHQgc3lzdGVtIHByb21wdC5cbiAgICogT25seSB3b3JrcyBpZiB5b3Ugc2V0IGBrT1NTZXR0aW5nc0F1dG9Qcm9tcHRgIHRvIGBmYWxzZWAgaW4gYGlPU1NldHRpbmdzYFxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHJlZ2lzdGVyRm9yUHVzaE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgYWx3YXlzIHZpYnJhdGVzIHRoZSBkZXZpY2Ugd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBkaXNwbGF5ZWQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgaW4gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgbGlnaHRseSB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gaXQncyB2aWJyYXRlIG9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHZpYnJhdGUsIHRydWUgdG8gcmUtZW5hYmxlIGl0LlxuICAgKiBAcGFyYW0gZW5hYmxlXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5hYmxlVmlicmF0ZShlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFdhcm5pbmc6XG4gICAqIE9ubHkgYXBwbGllcyB0byBBbmRyb2lkIGFuZCBBbWF6b24uIFlvdSBjYW4gY2FsbCB0aGlzIGZyb20geW91ciBVSSBmcm9tIGEgYnV0dG9uIHByZXNzIGZvciBleGFtcGxlIHRvIGdpdmUgeW91ciB1c2VyJ3Mgb3B0aW9ucyBmb3IgeW91ciBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IE9uZVNpZ25hbCBwbGF5cyB0aGUgc3lzdGVtJ3MgZGVmYXVsdCBub3RpZmljYXRpb24gc291bmQgd2hlbiB0aGUgZGV2aWNlJ3Mgbm90aWZpY2F0aW9uIHN5c3RlbSB2b2x1bWUgaXMgdHVybmVkIG9uLlxuICAgKiBQYXNzaW5nIGZhbHNlIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG9ubHkgdmlicmF0ZSB1bmxlc3MgdGhlIGRldmljZSBpcyBzZXQgdG8gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHNvdW5kLCB0cnVlIHRvIHJlLWVuYWJsZSBpdC5cbiAgICogQHBhcmFtIGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuYWJsZVNvdW5kKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICpcbiAgICogU2V0dGluZyB0byBjb250cm9sIGhvdyBPbmVTaWduYWwgbm90aWZpY2F0aW9ucyB3aWxsIGJlIHNob3duIHdoZW4gb25lIGlzIHJlY2VpdmVkIHdoaWxlIHlvdXIgYXBwIGlzIGluIGZvY3VzLiBCeSBkZWZhdWx0IHRoaXMgaXMgc2V0IHRvIGluQXBwQWxlcnQsIHdoaWNoIGNhbiBiZSBoZWxwZnVsIGR1cmluZyBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtEaXNwbGF5VHlwZX0gZGlzcGxheU9wdGlvblxuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGluRm9jdXNEaXNwbGF5aW5nKGRpc3BsYXlPcHRpb246IE9TRGlzcGxheVR5cGUpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBmYWxzZSB0byBvcHQgdXNlcnMgb3V0IG9mIHJlY2VpdmluZyBhbGwgbm90aWZpY2F0aW9ucyB0aHJvdWdoIE9uZVNpZ25hbC5cbiAgICogWW91IGNhbiBwYXNzIHRydWUgbGF0ZXIgdG8gb3B0IHVzZXJzIGJhY2sgaW50byBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldFN1YnNjcmlwdGlvbihlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBub3RpZmljYXRpb24gYW5kIHBlcm1pc3Npb24gc3RhdGUuIFJldHVybnMgYSBPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZSB0eXBlIGRlc2NyaWJlZCBiZWxvdy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8T1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGU+fVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGUoKTogUHJvbWlzZTxPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge25vdGlmaWNhdGlvbk9ian0gUGFyYW1ldGVycyBzZWUgUE9TVCBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9uZXNpZ25hbC5jb20vdjIuMC9kb2NzL25vdGlmaWNhdGlvbnMtY3JlYXRlLW5vdGlmaWNhdGlvbilcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbk9ialxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBub3RpZmljYXRpb24gd2FzIHNlbmQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBwb3N0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk9iajogT1NOb3RpZmljYXRpb24pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGEgc2luZ2xlIE9uZVNpZ25hbCBub3RpZmljYXRpb24gYmFzZWQgb24gaXRzIEFuZHJvaWQgbm90aWZpY2F0aW9uIGludGVnZXIgaWQuIFVzZSBpbnN0ZWFkIG9mIE5vdGlmaWNhdGlvbk1hbmFnZXIuY2FuY2VsKGlkKTsgb3RoZXJ3aXNlIHRoZSBub3RpZmljYXRpb24gd2lsbCBiZSByZXN0b3JlZCB3aGVuIHlvdXIgYXBwIGlzIHJlc3RhcnRlZC5cbiAgICpcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkIHtzdHJpbmd9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgY2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFByb21wdHMgdGhlIHVzZXIgZm9yIGxvY2F0aW9uIHBlcm1pc3Npb24gdG8gYWxsb3cgZ2VvdGFnZ2luZyBiYXNlZCBvbiB0aGUgXCJMb2NhdGlvbiByYWRpdXNcIiBmaWx0ZXIgb24gdGhlIE9uZVNpZ25hbCBkYXNoYm9hcmQuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgcHJvbXB0TG9jYXRpb24oKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZW1haWwge3N0cmluZ31cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzeW5jSGFzaGVkRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQge31cblxuICAvKipcbiAgICogRW5hYmxlIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBpZiB5b3UgcnVuIGludG8gYW4gaXNzdWUgc2V0dGluZyB1cCBPbmVTaWduYWwuXG4gICAqIFRoZSBsb2dnaW5nIGxldmVscyBhcmUgYXMgZm9sbG93czogMCA9IE5vbmUsIDE9IEZhdGFsLCAyID0gRXJyb3JzLCAzID0gV2FybmluZ3MsIDQgPSBJbmZvLCA1ID0gRGVidWcsIDYgPSBWZXJib3NlXG4gICAqXG4gICAqIFRoZSBoaWdoZXIgdGhlIHZhbHVlIHRoZSBtb3JlIGluZm9ybWF0aW9uIGlzIHNob3duLlxuICAgKlxuICAgKiBAcGFyYW0ge2xvZ2xldmVsfSBjb250YWlucyB0d28gcHJvcGVydGllczogbG9nTGV2ZWwgKGZvciBjb25zb2xlIGxvZ2dpbmcpIGFuZCB2aXN1YWxMZXZlbCAoZm9yIGRpYWxvZyBtZXNzYWdlcylcbiAgICogQHBhcmFtIGxvZ0xldmVsXG4gICAqIEBwYXJhbSBsb2dMZXZlbC5sb2dMZXZlbFxuICAgKiBAcGFyYW0gbG9nTGV2ZWwudmlzdWFsTGV2ZWxcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRMb2dMZXZlbChsb2dMZXZlbDogeyBsb2dMZXZlbDogbnVtYmVyOyB2aXN1YWxMZXZlbDogbnVtYmVyIH0pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgb3IgZW5hYmxlIGxvY2F0aW9uIGNvbGxlY3Rpb24gKERlZmF1bHRzIHRvIGVuYWJsZWQpIGlmIHlvdXIgYXBwIGhhcyBsb2NhdGlvbiBwZXJtaXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcmVkIHtib29sZWFufVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldExvY2F0aW9uU2hhcmVkKHNoYXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gcGVybWlzc2lvbiBzZXR0aW5nIGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcHJvbXB0IHNob3duXG4gICAqIC0gVGhlIHVzZXIgYWNjZXB0aW5nIG9yIGRlY2xpbmluZyB0aGUgcGVybWlzc2lvbiBwcm9tcHRcbiAgICogLSBFbmFibGluZy9kaXNhYmxpbmcgbm90aWZpY2F0aW9ucyBmb3IgeW91ciBhcHAgaW4gdGhlIGRldmljZSBTZXR0aW5ncyBhZnRlciByZXR1cm5pbmcgdG8geW91ciBhcHAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkUGVybWlzc2lvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzZWQgaW4gZnVuY3Rpb24gd2lsbCBiZSBmaXJlZCB3aGVuIGEgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEdldHRpbmcgYSBwdXNoIHRva2VuIGZyb20gQXBwbGUgLyBHb29nbGUuXG4gICAqIC0gR2V0dGluZyBhIHBsYXllciAvIHVzZXIgaWQgZnJvbSBPbmVTaWduYWxcbiAgICogLSBPbmVTaWduYWwuc2V0U3Vic2NyaXB0aW9uIGlzIGNhbGxlZFxuICAgKiAtIFVzZXIgZGlzYWJsZXMgb3IgZW5hYmxlcyBub3RpZmljYXRpb25zXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICogQHBhcmFtIGVtYWlsQXV0aFRva2VuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldEVtYWlsKGVtYWlsOiBzdHJpbmcsIGVtYWlsQXV0aFRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogSWYgeW91ciBhcHAgaW1wbGVtZW50cyBsb2dvdXQgZnVuY3Rpb25hbGl0eSwgeW91IGNhbiBjYWxsIGxvZ291dEVtYWlsIHRvIGRpc3NvY2lhdGUgdGhlIGVtYWlsIGZyb20gdGhlIGRldmljZVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBsb2dvdXRFbWFpbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFzc2VkIGluIGZ1bmN0aW9uIHdpbGwgYmUgZmlyZWQgd2hlbiBhIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24gcHJvcGVydHkgY2hhbmdlcy5cbiAgICogVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGV2ZW50czpcbiAgICogLSBHZXR0aW5nIGEgcHVzaCB0b2tlbiBmcm9tIEFwcGxlIC8gR29vZ2xlLlxuICAgKiAtIEdldHRpbmcgYSBwbGF5ZXIgLyB1c2VyIGlkIGZyb20gT25lU2lnbmFsXG4gICAqIC0gT25lU2lnbmFsLnNldFN1YnNjcmlwdGlvbiBpcyBjYWxsZWRcbiAgICogLSBVc2VyIGRpc2FibGVzIG9yIGVuYWJsZXMgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZEVtYWlsU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGNsZWFyT25lU2lnbmFsTm90aWZpY2F0aW9ucygpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gZGVsYXkgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBTREsgdW50aWwgdGhlIHVzZXIgcHJvdmlkZXMgcHJpdmFjeSBjb25zZW50LlxuICAgKiBUaGUgU0RLIHdpbGwgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkIHVudGlsIHRoZSBwcm92aWRlVXNlckNvbnNlbnQodHJ1ZSkgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByZXF1aXJlZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRSZXF1aXJlc1VzZXJQcml2YWN5Q29uc2VudChyZXF1aXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogSWYgeW91ciBhcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmVxdWlyZSB0aGUgdXNlcidzIHByaXZhY3kgY29uc2VudCwgeW91IGNhbiBwcm92aWRlIHRoaXMgY29uc2VudCB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICogVW50aWwgeW91IGNhbGwgcHJvdmlkZVVzZXJDb25zZW50KHRydWUpLCB0aGUgU0RLIHdpbGwgbm90IGZ1bGx5IGluaXRpYWxpemUgYW5kIHdpbGwgbm90IHNlbmQgYW55IGRhdGEgdG8gT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyYW50ZWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcHJvdmlkZVVzZXJDb25zZW50KGdyYW50ZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSBjYWxsYmFjaywgd2hpY2ggcmV0dXJucyBhIGJvb2xlYW4gdmFyaWFibGUgaW5kaWNhdGluZyBpZiB0aGUgdXNlciBoYXMgZ2l2ZW4gcHJpdmFjeSBjb25zZW50IHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgdXNlclByb3ZpZGVkUHJpdmFjeUNvbnNlbnQoY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIHVzZSB5b3VyIG93biBzeXN0ZW0ncyB1c2VyIElEJ3MgdG8gc2VuZCBwdXNoIG5vdGlmaWNhdGlvbnMgdG8geW91ciB1c2Vycy5cbiAgICogVG8gdGllIGEgdXNlciB0byBhIGdpdmVuIHVzZXIgSUQsIHlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0ZXJuYWxJZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRFeHRlcm5hbFVzZXJJZChleHRlcm5hbElkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgd2hhdGV2ZXIgd2FzIHNldCBhcyB0aGUgY3VycmVudCB1c2VyJ3MgZXh0ZXJuYWwgdXNlciBJRC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcmVtb3ZlRXh0ZXJuYWxVc2VySWQoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0cmlnZ2VyLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdGhlIHRyaWdnZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0fSB2YWx1ZSBWYWx1ZSBmb3IgdGhlIHRyaWdnZXIuIFN0cmluZyBvciBudW1iZXIgcmVjb21tZW5kZWQuIE9iamVjdCBwYXNzZWQgaW4gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcuXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgYWRkVHJpZ2dlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG9iamVjdCk6IHZvaWQge31cblxuICAvKipcbiAgICogQWRkIGEgbWFwIG9mIHRyaWdnZXJzLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdC48c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+fSB0cmlnZ2VycyBBbGxvd3MgeW91IHRvIHNldCBtdWx0aXBsZSB0cmlnZ2VyIGtleS92YWx1ZSBwYWlycyBzaW11bHRhbmVvdXNseS4gUGFzcyBhIGpzb24gb2JqZWN0IHdpdGgga2V5L3ZhbHVlIHBhaXJzIGxpa2U6IGB7XCJrZXlcIjogXCJ2YWx1ZVwiLCBcImtleTJcIjogXCJ2YWx1ZTJcIn1gLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIGFkZFRyaWdnZXJzKHRyaWdnZXJzOiBvYmplY3QpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzaW5nbGUgdHJpZ2dlciBmb3IgdGhlIGdpdmVuIGtleS4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRyaWdnZXIgdG8gcmVtb3ZlLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHJlbW92ZVRyaWdnZXJGb3JLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0IG9mIHRyaWdnZXJzIGJhc2VkIG9uIGEgY29sbGVjdGlvbiAoYXJyYXkpIG9mIGtleXMuIE1heSBzaG93IGFuIEluLUFwcCBNZXNzYWdlIGlmIGl0cyB0cmlnZ2VyIGNvbmRpdGlvbnMgd2VyZSBtZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGtleXMgUmVtb3ZlcyBhIGNvbGxlY3Rpb24gb2YgdHJpZ2dlcnMgZnJvbSB0aGVpciBrZXlzLiBQYXNzIGFuIGFycmF5IG9mIHRyaWdnZXIga2V5cyBsaWtlOiBgW1wia2V5MVwiLCBcImtleTJcIiwgXCJrZXkzXCJdYC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICByZW1vdmVUcmlnZ2Vyc0ZvcktleXMoa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB0cmlnZ2VyIHZhbHVlIGZvciBhIHByb3ZpZGVkIHRyaWdnZXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdHJpZ2dlciB0byBnZXQgdmFsdWUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IE9iamVjdD59IFJldHVybiB2YWx1ZSBzZXQgd2l0aCBgYWRkVHJpZ2dlcmAsIG9yIGBudWxsYC9gbmlsYCAoaU9TKSBpZiBuZXZlciBzZXQgb3IgcmVtb3ZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VHJpZ2dlclZhbHVlRm9yS2V5KGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3Q+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB0ZW1wb3JhcmlseSBwYXVzZSBhbGwgSW4tQXBwIE1lc3NhZ2VzLiBZb3UgbWF5IHdhbnQgdG8gZG8gdGhpcyB3aGlsZSB0aGUgdXNlciBpcyBlbmdhZ2VkIGluIGFuIGFjdGl2aXR5IHRoYXQgeW91IGRvbid0IHdhbnQgYSBtZXNzYWdlIHRvIGludGVycnVwdCAoc3VjaCBhcyB3YXRjaGluZyBhIHZpZGVvKS5cbiAgICogQW4gSW4tQXBwIE1lc3NhZ2UgdGhhdCB3b3VsZCBkaXNwbGF5IGlmIG5vdCBwYXVzZWQgd2lsbCBkaXNwbGF5IHJpZ2h0IGFmdGVyIHJlc3VtZSBpZiBpdHMgY29uZGl0aW9ucyB0byBkaXNwbGF5IHJlbWFpbnMgc2F0aXNmaWVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhdXNlIFRvIHBhdXNlLCBzZXQgYHRydWVgLiBUbyByZXN1bWUsIHNldCBgZmFsc2VgLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHBhdXNlSW5BcHBNZXNzYWdlcyhwYXVzZTogYm9vbGVhbik6IHZvaWQge31cbn1cbiJdfQ==
package/ngx/bundle.js CHANGED
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var tslib = require('tslib');
4
3
  var i0 = require('@angular/core');
5
4
  var core = require('@awesome-cordova-plugins/core');
6
5
  require('rxjs');
@@ -65,75 +64,68 @@ exports.OSActionType = void 0;
65
64
  OSActionType[OSActionType["Opened"] = 0] = "Opened";
66
65
  OSActionType[OSActionType["ActionTake"] = 1] = "ActionTake";
67
66
  })(exports.OSActionType || (exports.OSActionType = {}));
68
- var OneSignal = /** @class */ (function (_super) {
69
- tslib.__extends(OneSignal, _super);
70
- function OneSignal() {
71
- var _this = _super !== null && _super.apply(this, arguments) || this;
72
- /**
73
- * constants to use in inFocusDisplaying()
74
- *
75
- * @hidden
76
- */
77
- _this.OSInFocusDisplayOption = {
78
- None: 0,
79
- InAppAlert: 1,
80
- Notification: 2,
81
- };
82
- return _this;
83
- }
84
- OneSignal.prototype.startInit = function (appId, googleProjectNumber) { return core.cordova(this, "startInit", { "sync": true }, arguments); };
85
- OneSignal.prototype.handleNotificationReceived = function () { return core.cordova(this, "handleNotificationReceived", { "observable": true }, arguments); };
86
- OneSignal.prototype.handleNotificationOpened = function () { return core.cordova(this, "handleNotificationOpened", { "observable": true }, arguments); };
87
- OneSignal.prototype.handleInAppMessageClicked = function () { return core.cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); };
88
- OneSignal.prototype.iOSSettings = function (settings) { return core.cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); };
89
- OneSignal.prototype.endInit = function () { return core.cordova(this, "endInit", { "sync": true }, arguments); };
90
- OneSignal.prototype.promptForPushNotificationsWithUserResponse = function () { return core.cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); };
91
- OneSignal.prototype.getTags = function () { return core.cordova(this, "getTags", {}, arguments); };
92
- OneSignal.prototype.getIds = function () { return core.cordova(this, "getIds", {}, arguments); };
93
- OneSignal.prototype.sendTag = function (key, value) { return core.cordova(this, "sendTag", { "sync": true }, arguments); };
94
- OneSignal.prototype.sendTags = function (json) { return core.cordova(this, "sendTags", { "sync": true }, arguments); };
95
- OneSignal.prototype.deleteTag = function (key) { return core.cordova(this, "deleteTag", { "sync": true }, arguments); };
96
- OneSignal.prototype.deleteTags = function (keys) { return core.cordova(this, "deleteTags", { "sync": true }, arguments); };
97
- OneSignal.prototype.registerForPushNotifications = function () { return core.cordova(this, "registerForPushNotifications", { "sync": true }, arguments); };
98
- OneSignal.prototype.enableVibrate = function (enable) { return core.cordova(this, "enableVibrate", { "sync": true }, arguments); };
99
- OneSignal.prototype.enableSound = function (enable) { return core.cordova(this, "enableSound", { "sync": true }, arguments); };
100
- OneSignal.prototype.inFocusDisplaying = function (displayOption) { return core.cordova(this, "inFocusDisplaying", { "sync": true }, arguments); };
101
- OneSignal.prototype.setSubscription = function (enable) { return core.cordova(this, "setSubscription", { "sync": true }, arguments); };
102
- OneSignal.prototype.getPermissionSubscriptionState = function () { return core.cordova(this, "getPermissionSubscriptionState", {}, arguments); };
103
- OneSignal.prototype.postNotification = function (notificationObj) { return core.cordova(this, "postNotification", {}, arguments); };
104
- OneSignal.prototype.cancelNotification = function (notificationId) { return core.cordova(this, "cancelNotification", { "sync": true }, arguments); };
105
- OneSignal.prototype.promptLocation = function () { return core.cordova(this, "promptLocation", { "sync": true }, arguments); };
106
- OneSignal.prototype.syncHashedEmail = function (email) { return core.cordova(this, "syncHashedEmail", { "sync": true }, arguments); };
107
- OneSignal.prototype.setLogLevel = function (logLevel) { return core.cordova(this, "setLogLevel", { "sync": true }, arguments); };
108
- OneSignal.prototype.setLocationShared = function (shared) { return core.cordova(this, "setLocationShared", { "sync": true }, arguments); };
109
- OneSignal.prototype.addPermissionObserver = function () { return core.cordova(this, "addPermissionObserver", { "observable": true }, arguments); };
110
- OneSignal.prototype.addSubscriptionObserver = function () { return core.cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); };
111
- OneSignal.prototype.setEmail = function (email, emailAuthToken) { return core.cordova(this, "setEmail", {}, arguments); };
112
- OneSignal.prototype.logoutEmail = function () { return core.cordova(this, "logoutEmail", {}, arguments); };
113
- OneSignal.prototype.addEmailSubscriptionObserver = function () { return core.cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); };
114
- OneSignal.prototype.clearOneSignalNotifications = function () { return core.cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); };
115
- OneSignal.prototype.setRequiresUserPrivacyConsent = function (required) { return core.cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); };
116
- OneSignal.prototype.provideUserConsent = function (granted) { return core.cordova(this, "provideUserConsent", {}, arguments); };
117
- OneSignal.prototype.userProvidedPrivacyConsent = function (callback) { return core.cordova(this, "userProvidedPrivacyConsent", {}, arguments); };
118
- OneSignal.prototype.setExternalUserId = function (externalId) { return core.cordova(this, "setExternalUserId", {}, arguments); };
119
- OneSignal.prototype.removeExternalUserId = function () { return core.cordova(this, "removeExternalUserId", {}, arguments); };
120
- OneSignal.prototype.addTrigger = function (key, value) { return core.cordova(this, "addTrigger", { "sync": true }, arguments); };
121
- OneSignal.prototype.addTriggers = function (triggers) { return core.cordova(this, "addTriggers", { "sync": true }, arguments); };
122
- OneSignal.prototype.removeTriggerForKey = function (key) { return core.cordova(this, "removeTriggerForKey", { "sync": true }, arguments); };
123
- OneSignal.prototype.removeTriggersForKeys = function (keys) { return core.cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); };
124
- OneSignal.prototype.getTriggerValueForKey = function (key) { return core.cordova(this, "getTriggerValueForKey", {}, arguments); };
125
- OneSignal.prototype.pauseInAppMessages = function (pause) { return core.cordova(this, "pauseInAppMessages", { "sync": true }, arguments); };
126
- OneSignal.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: OneSignal, deps: null, target: i0__namespace.ɵɵFactoryTarget.Injectable });
127
- OneSignal.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: OneSignal });
128
- OneSignal.pluginName = "OneSignal";
129
- OneSignal.plugin = "onesignal-cordova-plugin";
130
- OneSignal.pluginRef = "plugins.OneSignal";
131
- OneSignal.repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
132
- OneSignal.platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
133
- OneSignal = tslib.__decorate([], OneSignal);
134
- return OneSignal;
135
- }(core.AwesomeCordovaNativePlugin));
136
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: OneSignal, decorators: [{
67
+ class OneSignal extends core.AwesomeCordovaNativePlugin {
68
+ /**
69
+ * constants to use in inFocusDisplaying()
70
+ *
71
+ * @hidden
72
+ */
73
+ OSInFocusDisplayOption = {
74
+ None: 0,
75
+ InAppAlert: 1,
76
+ Notification: 2,
77
+ };
78
+ startInit(appId, googleProjectNumber) { return core.cordova(this, "startInit", { "sync": true }, arguments); }
79
+ handleNotificationReceived() { return core.cordova(this, "handleNotificationReceived", { "observable": true }, arguments); }
80
+ handleNotificationOpened() { return core.cordova(this, "handleNotificationOpened", { "observable": true }, arguments); }
81
+ handleInAppMessageClicked() { return core.cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); }
82
+ iOSSettings(settings) { return core.cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); }
83
+ endInit() { return core.cordova(this, "endInit", { "sync": true }, arguments); }
84
+ promptForPushNotificationsWithUserResponse() { return core.cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); }
85
+ getTags() { return core.cordova(this, "getTags", {}, arguments); }
86
+ getIds() { return core.cordova(this, "getIds", {}, arguments); }
87
+ sendTag(key, value) { return core.cordova(this, "sendTag", { "sync": true }, arguments); }
88
+ sendTags(json) { return core.cordova(this, "sendTags", { "sync": true }, arguments); }
89
+ deleteTag(key) { return core.cordova(this, "deleteTag", { "sync": true }, arguments); }
90
+ deleteTags(keys) { return core.cordova(this, "deleteTags", { "sync": true }, arguments); }
91
+ registerForPushNotifications() { return core.cordova(this, "registerForPushNotifications", { "sync": true }, arguments); }
92
+ enableVibrate(enable) { return core.cordova(this, "enableVibrate", { "sync": true }, arguments); }
93
+ enableSound(enable) { return core.cordova(this, "enableSound", { "sync": true }, arguments); }
94
+ inFocusDisplaying(displayOption) { return core.cordova(this, "inFocusDisplaying", { "sync": true }, arguments); }
95
+ setSubscription(enable) { return core.cordova(this, "setSubscription", { "sync": true }, arguments); }
96
+ getPermissionSubscriptionState() { return core.cordova(this, "getPermissionSubscriptionState", {}, arguments); }
97
+ postNotification(notificationObj) { return core.cordova(this, "postNotification", {}, arguments); }
98
+ cancelNotification(notificationId) { return core.cordova(this, "cancelNotification", { "sync": true }, arguments); }
99
+ promptLocation() { return core.cordova(this, "promptLocation", { "sync": true }, arguments); }
100
+ syncHashedEmail(email) { return core.cordova(this, "syncHashedEmail", { "sync": true }, arguments); }
101
+ setLogLevel(logLevel) { return core.cordova(this, "setLogLevel", { "sync": true }, arguments); }
102
+ setLocationShared(shared) { return core.cordova(this, "setLocationShared", { "sync": true }, arguments); }
103
+ addPermissionObserver() { return core.cordova(this, "addPermissionObserver", { "observable": true }, arguments); }
104
+ addSubscriptionObserver() { return core.cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); }
105
+ setEmail(email, emailAuthToken) { return core.cordova(this, "setEmail", {}, arguments); }
106
+ logoutEmail() { return core.cordova(this, "logoutEmail", {}, arguments); }
107
+ addEmailSubscriptionObserver() { return core.cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); }
108
+ clearOneSignalNotifications() { return core.cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); }
109
+ setRequiresUserPrivacyConsent(required) { return core.cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); }
110
+ provideUserConsent(granted) { return core.cordova(this, "provideUserConsent", {}, arguments); }
111
+ userProvidedPrivacyConsent(callback) { return core.cordova(this, "userProvidedPrivacyConsent", {}, arguments); }
112
+ setExternalUserId(externalId) { return core.cordova(this, "setExternalUserId", {}, arguments); }
113
+ removeExternalUserId() { return core.cordova(this, "removeExternalUserId", {}, arguments); }
114
+ addTrigger(key, value) { return core.cordova(this, "addTrigger", { "sync": true }, arguments); }
115
+ addTriggers(triggers) { return core.cordova(this, "addTriggers", { "sync": true }, arguments); }
116
+ removeTriggerForKey(key) { return core.cordova(this, "removeTriggerForKey", { "sync": true }, arguments); }
117
+ removeTriggersForKeys(keys) { return core.cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); }
118
+ getTriggerValueForKey(key) { return core.cordova(this, "getTriggerValueForKey", {}, arguments); }
119
+ pauseInAppMessages(pause) { return core.cordova(this, "pauseInAppMessages", { "sync": true }, arguments); }
120
+ static ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0__namespace, type: OneSignal, deps: null, target: i0__namespace.ɵɵFactoryTarget.Injectable });
121
+ static ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0__namespace, type: OneSignal });
122
+ static pluginName = "OneSignal";
123
+ static plugin = "onesignal-cordova-plugin";
124
+ static pluginRef = "plugins.OneSignal";
125
+ static repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
126
+ static platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
127
+ }
128
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0__namespace, type: OneSignal, decorators: [{
137
129
  type: i0.Injectable
138
130
  }], propDecorators: { startInit: [], handleNotificationReceived: [], handleNotificationOpened: [], handleInAppMessageClicked: [], iOSSettings: [], endInit: [], promptForPushNotificationsWithUserResponse: [], getTags: [], getIds: [], sendTag: [], sendTags: [], deleteTag: [], deleteTags: [], registerForPushNotifications: [], enableVibrate: [], enableSound: [], inFocusDisplaying: [], setSubscription: [], getPermissionSubscriptionState: [], postNotification: [], cancelNotification: [], promptLocation: [], syncHashedEmail: [], setLogLevel: [], setLocationShared: [], addPermissionObserver: [], addSubscriptionObserver: [], setEmail: [], logoutEmail: [], addEmailSubscriptionObserver: [], clearOneSignalNotifications: [], setRequiresUserPrivacyConsent: [], provideUserConsent: [], userProvidedPrivacyConsent: [], setExternalUserId: [], removeExternalUserId: [], addTrigger: [], addTriggers: [], removeTriggerForKey: [], removeTriggersForKeys: [], getTriggerValueForKey: [], pauseInAppMessages: [] } });
139
131
 
package/ngx/index.d.ts CHANGED
@@ -711,13 +711,13 @@ export declare class OneSignal extends AwesomeCordovaNativePlugin {
711
711
  * @param {string} key Key for the trigger.
712
712
  * @param {string | number | Object} value Value for the trigger. String or number recommended. Object passed in will be converted to a string.
713
713
  */
714
- addTrigger(key: string, value: string | number | Object): void;
714
+ addTrigger(key: string, value: string | number | object): void;
715
715
  /**
716
716
  * Add a map of triggers. May show an In-App Message if its trigger conditions were met.
717
717
  *
718
718
  * @param {Object.<string, string | number | Object>} triggers Allows you to set multiple trigger key/value pairs simultaneously. Pass a json object with key/value pairs like: `{"key": "value", "key2": "value2"}`.
719
719
  */
720
- addTriggers(triggers: Object): void;
720
+ addTriggers(triggers: object): void;
721
721
  /**
722
722
  * Removes a single trigger for the given key. May show an In-App Message if its trigger conditions were met.
723
723
  *
@@ -736,7 +736,7 @@ export declare class OneSignal extends AwesomeCordovaNativePlugin {
736
736
  * @param {string} key Key for trigger to get value.
737
737
  * @returns {Promise<string | number | Object>} Return value set with `addTrigger`, or `null`/`nil` (iOS) if never set or removed.
738
738
  */
739
- getTriggerValueForKey(key: string): Promise<string | number | Object>;
739
+ getTriggerValueForKey(key: string): Promise<string | number | object>;
740
740
  /**
741
741
  * Allows you to temporarily pause all In-App Messages. You may want to do this while the user is engaged in an activity that you don't want a message to interrupt (such as watching a video).
742
742
  * An In-App Message that would display if not paused will display right after resume if its conditions to display remains satisfied.
package/ngx/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import { __decorate, __extends } from "tslib";
2
1
  import { Injectable } from '@angular/core';
3
2
  import { AwesomeCordovaNativePlugin, cordova } from '@awesome-cordova-plugins/core';
4
3
  import { Observable } from 'rxjs';
@@ -44,76 +43,68 @@ export var OSActionType;
44
43
  OSActionType[OSActionType["Opened"] = 0] = "Opened";
45
44
  OSActionType[OSActionType["ActionTake"] = 1] = "ActionTake";
46
45
  })(OSActionType || (OSActionType = {}));
47
- var OneSignal = /** @class */ (function (_super) {
48
- __extends(OneSignal, _super);
49
- function OneSignal() {
50
- var _this = _super !== null && _super.apply(this, arguments) || this;
51
- /**
52
- * constants to use in inFocusDisplaying()
53
- *
54
- * @hidden
55
- */
56
- _this.OSInFocusDisplayOption = {
57
- None: 0,
58
- InAppAlert: 1,
59
- Notification: 2,
60
- };
61
- return _this;
62
- }
63
- OneSignal.prototype.startInit = function (appId, googleProjectNumber) { return cordova(this, "startInit", { "sync": true }, arguments); };
64
- OneSignal.prototype.handleNotificationReceived = function () { return cordova(this, "handleNotificationReceived", { "observable": true }, arguments); };
65
- OneSignal.prototype.handleNotificationOpened = function () { return cordova(this, "handleNotificationOpened", { "observable": true }, arguments); };
66
- OneSignal.prototype.handleInAppMessageClicked = function () { return cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); };
67
- OneSignal.prototype.iOSSettings = function (settings) { return cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); };
68
- OneSignal.prototype.endInit = function () { return cordova(this, "endInit", { "sync": true }, arguments); };
69
- OneSignal.prototype.promptForPushNotificationsWithUserResponse = function () { return cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); };
70
- OneSignal.prototype.getTags = function () { return cordova(this, "getTags", {}, arguments); };
71
- OneSignal.prototype.getIds = function () { return cordova(this, "getIds", {}, arguments); };
72
- OneSignal.prototype.sendTag = function (key, value) { return cordova(this, "sendTag", { "sync": true }, arguments); };
73
- OneSignal.prototype.sendTags = function (json) { return cordova(this, "sendTags", { "sync": true }, arguments); };
74
- OneSignal.prototype.deleteTag = function (key) { return cordova(this, "deleteTag", { "sync": true }, arguments); };
75
- OneSignal.prototype.deleteTags = function (keys) { return cordova(this, "deleteTags", { "sync": true }, arguments); };
76
- OneSignal.prototype.registerForPushNotifications = function () { return cordova(this, "registerForPushNotifications", { "sync": true }, arguments); };
77
- OneSignal.prototype.enableVibrate = function (enable) { return cordova(this, "enableVibrate", { "sync": true }, arguments); };
78
- OneSignal.prototype.enableSound = function (enable) { return cordova(this, "enableSound", { "sync": true }, arguments); };
79
- OneSignal.prototype.inFocusDisplaying = function (displayOption) { return cordova(this, "inFocusDisplaying", { "sync": true }, arguments); };
80
- OneSignal.prototype.setSubscription = function (enable) { return cordova(this, "setSubscription", { "sync": true }, arguments); };
81
- OneSignal.prototype.getPermissionSubscriptionState = function () { return cordova(this, "getPermissionSubscriptionState", {}, arguments); };
82
- OneSignal.prototype.postNotification = function (notificationObj) { return cordova(this, "postNotification", {}, arguments); };
83
- OneSignal.prototype.cancelNotification = function (notificationId) { return cordova(this, "cancelNotification", { "sync": true }, arguments); };
84
- OneSignal.prototype.promptLocation = function () { return cordova(this, "promptLocation", { "sync": true }, arguments); };
85
- OneSignal.prototype.syncHashedEmail = function (email) { return cordova(this, "syncHashedEmail", { "sync": true }, arguments); };
86
- OneSignal.prototype.setLogLevel = function (logLevel) { return cordova(this, "setLogLevel", { "sync": true }, arguments); };
87
- OneSignal.prototype.setLocationShared = function (shared) { return cordova(this, "setLocationShared", { "sync": true }, arguments); };
88
- OneSignal.prototype.addPermissionObserver = function () { return cordova(this, "addPermissionObserver", { "observable": true }, arguments); };
89
- OneSignal.prototype.addSubscriptionObserver = function () { return cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); };
90
- OneSignal.prototype.setEmail = function (email, emailAuthToken) { return cordova(this, "setEmail", {}, arguments); };
91
- OneSignal.prototype.logoutEmail = function () { return cordova(this, "logoutEmail", {}, arguments); };
92
- OneSignal.prototype.addEmailSubscriptionObserver = function () { return cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); };
93
- OneSignal.prototype.clearOneSignalNotifications = function () { return cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); };
94
- OneSignal.prototype.setRequiresUserPrivacyConsent = function (required) { return cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); };
95
- OneSignal.prototype.provideUserConsent = function (granted) { return cordova(this, "provideUserConsent", {}, arguments); };
96
- OneSignal.prototype.userProvidedPrivacyConsent = function (callback) { return cordova(this, "userProvidedPrivacyConsent", {}, arguments); };
97
- OneSignal.prototype.setExternalUserId = function (externalId) { return cordova(this, "setExternalUserId", {}, arguments); };
98
- OneSignal.prototype.removeExternalUserId = function () { return cordova(this, "removeExternalUserId", {}, arguments); };
99
- OneSignal.prototype.addTrigger = function (key, value) { return cordova(this, "addTrigger", { "sync": true }, arguments); };
100
- OneSignal.prototype.addTriggers = function (triggers) { return cordova(this, "addTriggers", { "sync": true }, arguments); };
101
- OneSignal.prototype.removeTriggerForKey = function (key) { return cordova(this, "removeTriggerForKey", { "sync": true }, arguments); };
102
- OneSignal.prototype.removeTriggersForKeys = function (keys) { return cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); };
103
- OneSignal.prototype.getTriggerValueForKey = function (key) { return cordova(this, "getTriggerValueForKey", {}, arguments); };
104
- OneSignal.prototype.pauseInAppMessages = function (pause) { return cordova(this, "pauseInAppMessages", { "sync": true }, arguments); };
105
- OneSignal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OneSignal, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
106
- OneSignal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OneSignal });
107
- OneSignal.pluginName = "OneSignal";
108
- OneSignal.plugin = "onesignal-cordova-plugin";
109
- OneSignal.pluginRef = "plugins.OneSignal";
110
- OneSignal.repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
111
- OneSignal.platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
112
- OneSignal = __decorate([], OneSignal);
113
- return OneSignal;
114
- }(AwesomeCordovaNativePlugin));
115
- export { OneSignal };
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OneSignal, decorators: [{
46
+ export class OneSignal extends AwesomeCordovaNativePlugin {
47
+ /**
48
+ * constants to use in inFocusDisplaying()
49
+ *
50
+ * @hidden
51
+ */
52
+ OSInFocusDisplayOption = {
53
+ None: 0,
54
+ InAppAlert: 1,
55
+ Notification: 2,
56
+ };
57
+ startInit(appId, googleProjectNumber) { return cordova(this, "startInit", { "sync": true }, arguments); }
58
+ handleNotificationReceived() { return cordova(this, "handleNotificationReceived", { "observable": true }, arguments); }
59
+ handleNotificationOpened() { return cordova(this, "handleNotificationOpened", { "observable": true }, arguments); }
60
+ handleInAppMessageClicked() { return cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); }
61
+ iOSSettings(settings) { return cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); }
62
+ endInit() { return cordova(this, "endInit", { "sync": true }, arguments); }
63
+ promptForPushNotificationsWithUserResponse() { return cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); }
64
+ getTags() { return cordova(this, "getTags", {}, arguments); }
65
+ getIds() { return cordova(this, "getIds", {}, arguments); }
66
+ sendTag(key, value) { return cordova(this, "sendTag", { "sync": true }, arguments); }
67
+ sendTags(json) { return cordova(this, "sendTags", { "sync": true }, arguments); }
68
+ deleteTag(key) { return cordova(this, "deleteTag", { "sync": true }, arguments); }
69
+ deleteTags(keys) { return cordova(this, "deleteTags", { "sync": true }, arguments); }
70
+ registerForPushNotifications() { return cordova(this, "registerForPushNotifications", { "sync": true }, arguments); }
71
+ enableVibrate(enable) { return cordova(this, "enableVibrate", { "sync": true }, arguments); }
72
+ enableSound(enable) { return cordova(this, "enableSound", { "sync": true }, arguments); }
73
+ inFocusDisplaying(displayOption) { return cordova(this, "inFocusDisplaying", { "sync": true }, arguments); }
74
+ setSubscription(enable) { return cordova(this, "setSubscription", { "sync": true }, arguments); }
75
+ getPermissionSubscriptionState() { return cordova(this, "getPermissionSubscriptionState", {}, arguments); }
76
+ postNotification(notificationObj) { return cordova(this, "postNotification", {}, arguments); }
77
+ cancelNotification(notificationId) { return cordova(this, "cancelNotification", { "sync": true }, arguments); }
78
+ promptLocation() { return cordova(this, "promptLocation", { "sync": true }, arguments); }
79
+ syncHashedEmail(email) { return cordova(this, "syncHashedEmail", { "sync": true }, arguments); }
80
+ setLogLevel(logLevel) { return cordova(this, "setLogLevel", { "sync": true }, arguments); }
81
+ setLocationShared(shared) { return cordova(this, "setLocationShared", { "sync": true }, arguments); }
82
+ addPermissionObserver() { return cordova(this, "addPermissionObserver", { "observable": true }, arguments); }
83
+ addSubscriptionObserver() { return cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); }
84
+ setEmail(email, emailAuthToken) { return cordova(this, "setEmail", {}, arguments); }
85
+ logoutEmail() { return cordova(this, "logoutEmail", {}, arguments); }
86
+ addEmailSubscriptionObserver() { return cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); }
87
+ clearOneSignalNotifications() { return cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); }
88
+ setRequiresUserPrivacyConsent(required) { return cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); }
89
+ provideUserConsent(granted) { return cordova(this, "provideUserConsent", {}, arguments); }
90
+ userProvidedPrivacyConsent(callback) { return cordova(this, "userProvidedPrivacyConsent", {}, arguments); }
91
+ setExternalUserId(externalId) { return cordova(this, "setExternalUserId", {}, arguments); }
92
+ removeExternalUserId() { return cordova(this, "removeExternalUserId", {}, arguments); }
93
+ addTrigger(key, value) { return cordova(this, "addTrigger", { "sync": true }, arguments); }
94
+ addTriggers(triggers) { return cordova(this, "addTriggers", { "sync": true }, arguments); }
95
+ removeTriggerForKey(key) { return cordova(this, "removeTriggerForKey", { "sync": true }, arguments); }
96
+ removeTriggersForKeys(keys) { return cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); }
97
+ getTriggerValueForKey(key) { return cordova(this, "getTriggerValueForKey", {}, arguments); }
98
+ pauseInAppMessages(pause) { return cordova(this, "pauseInAppMessages", { "sync": true }, arguments); }
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OneSignal, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
100
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OneSignal });
101
+ static pluginName = "OneSignal";
102
+ static plugin = "onesignal-cordova-plugin";
103
+ static pluginRef = "plugins.OneSignal";
104
+ static repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
105
+ static platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OneSignal, decorators: [{
117
108
  type: Injectable
118
109
  }], propDecorators: { startInit: [], handleNotificationReceived: [], handleNotificationOpened: [], handleInAppMessageClicked: [], iOSSettings: [], endInit: [], promptForPushNotificationsWithUserResponse: [], getTags: [], getIds: [], sendTag: [], sendTags: [], deleteTag: [], deleteTags: [], registerForPushNotifications: [], enableVibrate: [], enableSound: [], inFocusDisplaying: [], setSubscription: [], getPermissionSubscriptionState: [], postNotification: [], cancelNotification: [], promptLocation: [], syncHashedEmail: [], setLogLevel: [], setLocationShared: [], addPermissionObserver: [], addSubscriptionObserver: [], setEmail: [], logoutEmail: [], addEmailSubscriptionObserver: [], clearOneSignalNotifications: [], setRequiresUserPrivacyConsent: [], provideUserConsent: [], userProvidedPrivacyConsent: [], setExternalUserId: [], removeExternalUserId: [], addTrigger: [], addTriggers: [], removeTriggerForKey: [], removeTriggersForKeys: [], getTriggerValueForKey: [], pauseInAppMessages: [] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvb25lc2lnbmFsL25neC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLHVDQUErQyxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMEZsQzs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLHNCQWFYO0FBYkQsV0FBWSxzQkFBc0I7SUFDaEM7O09BRUc7SUFDSCx1RUFBVSxDQUFBO0lBQ1Y7O09BRUc7SUFDSCx5RUFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCx3RUFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWJXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFhakM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGFBYVg7QUFiRCxXQUFZLGFBQWE7SUFDdkI7O09BRUc7SUFDSCxpREFBUSxDQUFBO0lBQ1I7O09BRUc7SUFDSCw2REFBYyxDQUFBO0lBQ2Q7O09BRUc7SUFDSCxpRUFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBYlcsYUFBYSxLQUFiLGFBQWEsUUFheEI7QUE4S0QsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixtREFBVSxDQUFBO0lBQ1YsMkRBQWMsQ0FBQTtBQUNoQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7O0lBdUk4Qiw2QkFBMEI7OztRQUN2RDs7OztXQUlHO1FBQ0gsNEJBQXNCLEdBQUc7WUFDdkIsSUFBSSxFQUFFLENBQUM7WUFDUCxVQUFVLEVBQUUsQ0FBQztZQUNiLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUM7OztJQVVGLDZCQUFTLGFBQUMsS0FBYSxFQUFFLG1CQUE0QjtJQVlyRCw4Q0FBMEI7SUFjMUIsNENBQXdCO0lBWXhCLDZDQUF5QjtJQXFCekIsK0JBQVcsYUFBQyxRQUFzRjtJQVVsRywyQkFBTztJQVlQLDhEQUEwQztJQVkxQywyQkFBTztJQWVQLDBCQUFNO0lBY04sMkJBQU8sYUFBQyxHQUFXLEVBQUUsS0FBYTtJQVVsQyw0QkFBUSxhQUFDLElBQVM7SUFTbEIsNkJBQVMsYUFBQyxHQUFXO0lBU3JCLDhCQUFVLGFBQUMsSUFBYztJQU96QixnREFBNEI7SUFhNUIsaUNBQWEsYUFBQyxNQUFlO0lBYTdCLCtCQUFXLGFBQUMsTUFBZTtJQVUzQixxQ0FBaUIsYUFBQyxhQUE0QjtJQVc5QyxtQ0FBZSxhQUFDLE1BQWU7SUFRL0Isa0RBQThCO0lBVzlCLG9DQUFnQixhQUFDLGVBQStCO0lBVWhELHNDQUFrQixhQUFDLGNBQXNCO0lBTXpDLGtDQUFjO0lBT2QsbUNBQWUsYUFBQyxLQUFhO0lBYzdCLCtCQUFXLGFBQUMsUUFBbUQ7SUFRL0QscUNBQWlCLGFBQUMsTUFBZTtJQWNqQyx5Q0FBcUI7SUFpQnJCLDJDQUF1QjtJQVd2Qiw0QkFBUSxhQUFDLEtBQWEsRUFBRSxjQUF1QjtJQVEvQywrQkFBVztJQWlCWCxnREFBNEI7SUFRNUIsK0NBQTJCO0lBUzNCLGlEQUE2QixhQUFDLFFBQWlCO0lBUy9DLHNDQUFrQixhQUFDLE9BQWdCO0lBUW5DLDhDQUEwQixhQUFDLFFBQWtCO0lBUzdDLHFDQUFpQixhQUFDLFVBQWtCO0lBTXBDLHdDQUFvQjtJQVdwQiw4QkFBVSxhQUFDLEdBQVcsRUFBRSxLQUErQjtJQVV2RCwrQkFBVyxhQUFDLFFBQWdCO0lBVTVCLHVDQUFtQixhQUFDLEdBQVc7SUFVL0IseUNBQXFCLGFBQUMsSUFBYztJQVNwQyx5Q0FBcUIsYUFBQyxHQUFXO0lBYWpDLHNDQUFrQixhQUFDLEtBQWM7MkdBbmR0QixTQUFTOytHQUFULFNBQVM7Ozs7OztJQUFULFNBQVMsa0JBQVQsU0FBUztvQkF0YnRCO0VBc2IrQiwwQkFBMEI7U0FBNUMsU0FBUzs0RkFBVCxTQUFTO2tCQURyQixVQUFVOzhCQXFCVCxTQUFTLE1BWVQsMEJBQTBCLE1BYzFCLHdCQUF3QixNQVl4Qix5QkFBeUIsTUFxQnpCLFdBQVcsTUFVWCxPQUFPLE1BWVAsMENBQTBDLE1BWTFDLE9BQU8sTUFlUCxNQUFNLE1BY04sT0FBTyxNQVVQLFFBQVEsTUFTUixTQUFTLE1BU1QsVUFBVSxNQU9WLDRCQUE0QixNQWE1QixhQUFhLE1BYWIsV0FBVyxNQVVYLGlCQUFpQixNQVdqQixlQUFlLE1BUWYsOEJBQThCLE1BVzlCLGdCQUFnQixNQVVoQixrQkFBa0IsTUFNbEIsY0FBYyxNQU9kLGVBQWUsTUFjZixXQUFXLE1BUVgsaUJBQWlCLE1BY2pCLHFCQUFxQixNQWlCckIsdUJBQXVCLE1BV3ZCLFFBQVEsTUFRUixXQUFXLE1BaUJYLDRCQUE0QixNQVE1QiwyQkFBMkIsTUFTM0IsNkJBQTZCLE1BUzdCLGtCQUFrQixNQVFsQiwwQkFBMEIsTUFTMUIsaUJBQWlCLE1BTWpCLG9CQUFvQixNQVdwQixVQUFVLE1BVVYsV0FBVyxNQVVYLG1CQUFtQixNQVVuQixxQkFBcUIsTUFTckIscUJBQXFCLE1BYXJCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmRvdmEsIEF3ZXNvbWVDb3Jkb3ZhTmF0aXZlUGx1Z2luLCBQbHVnaW4gfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT1NOb3RpZmljYXRpb24ge1xuICAvKipcbiAgICogV2FzIGFwcCBpbiBmb2N1cy5cbiAgICovXG4gIGlzQXBwSW5Gb2N1cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXYXMgbm90aWZpY2F0aW9uIHNob3duIHRvIHRoZSB1c2VyLiBXaWxsIGJlIGZhbHNlIGZvciBzaWxlbnQgbm90aWZpY2F0aW9ucy5cbiAgICovXG4gIHNob3duPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEFuZHJvaWQgTm90aWZpY2F0aW9uIGFzc2lnbmVkIHRvIHRoZSBub3RpZmljYXRpb24uIENhbiBiZSB1c2VkIHRvIGNhbmNlbCBvciByZXBsYWNlIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBhbmRyb2lkTm90aWZpY2F0aW9uSWQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQYXlsb2FkIHJlY2VpdmVkIGZyb20gT25lU2lnbmFsLlxuICAgKi9cbiAgcGF5bG9hZD86IE9TTm90aWZpY2F0aW9uUGF5bG9hZDtcbiAgLyoqXG4gICAqIEhvdyB0aGUgbm90aWZpY2F0aW9uIHdhcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIENhbiBiZSBzZXQgdG8gYE5vdGlmaWNhdGlvbmAsIGBJbkFwcEFsZXJ0YCwgb3IgYE5vbmVgIGlmIGl0IHdhcyBub3QgZGlzcGxheWVkLlxuICAgKi9cbiAgZGlzcGxheVR5cGU/OiBPU0Rpc3BsYXlUeXBlO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gTm90aWZpY2F0aW9uIGlzIGEgc3VtbWFyeSBub3RpZmljYXRpb24gZm9yIGEgZ3JvdXAgdGhpcyB3aWxsIGNvbnRhaW4gYWxsIG5vdGlmaWNhdGlvbiBwYXlsb2FkcyBpdCB3YXMgY3JlYXRlZCBmcm9tLlxuICAgKi9cbiAgZ3JvdXBlZE5vdGlmaWNhdGlvbnM/OiBPU05vdGlmaWNhdGlvblBheWxvYWRbXTtcbiAgYXBwX2lkPzogc3RyaW5nO1xuICBjb250ZW50cz86IGFueTtcbiAgaGVhZGluZ3M/OiBhbnk7XG4gIGlzSW9zPzogYm9vbGVhbjtcbiAgaXNBbmRyb2lkPzogYm9vbGVhbjtcbiAgaXNXUD86IGJvb2xlYW47XG4gIGlzV1BfV05TPzogYm9vbGVhbjtcbiAgaXNBZG0/OiBib29sZWFuO1xuICBpc0Nocm9tZT86IGJvb2xlYW47XG4gIGlzQ2hyb21lV2ViPzogYm9vbGVhbjtcbiAgaXNTYWZhcmk/OiBib29sZWFuO1xuICBpc0FueVdlYj86IGJvb2xlYW47XG4gIGluY2x1ZGVkX3NlZ21lbnRzPzogc3RyaW5nW107XG4gIGV4Y2x1ZGVkX3NlZ21lbnRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfcGxheWVyX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2lvc190b2tlbnM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9hbmRyb2lkX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV93cF91cmlzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfd3Bfd25zX3VyaXM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9hbWF6b25fcmVnX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2Nocm9tZV9yZWdfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfY2hyb21lX3dlYl9yZWdfaWRzPzogc3RyaW5nW107XG4gIGFwcF9pZHM/OiBzdHJpbmdbXTtcbiAgdGFncz86IGFueVtdO1xuICBpb3NfYmFkZ2VUeXBlPzogc3RyaW5nO1xuICBpb3NfYmFkZ2VDb3VudD86IG51bWJlcjtcbiAgaW9zX3NvdW5kPzogc3RyaW5nO1xuICBhbmRyb2lkX3NvdW5kPzogc3RyaW5nO1xuICBhZG1fc291bmQ/OiBzdHJpbmc7XG4gIHdwX3NvdW5kPzogc3RyaW5nO1xuICB3cF93bnNfc291bmQ/OiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIGJ1dHRvbnM/OiBhbnk7XG4gIGNvbGxhcHNlX2lkPzogc3RyaW5nO1xuICBzbWFsbF9pY29uPzogc3RyaW5nO1xuICBsYXJnZV9pY29uPzogc3RyaW5nO1xuICBiaWdfcGljdHVyZT86IHN0cmluZztcbiAgYWRtX3NtYWxsX2ljb24/OiBzdHJpbmc7XG4gIGFkbV9sYXJnZV9pY29uPzogc3RyaW5nO1xuICBhZG1fYmlnX3BpY3R1cmU/OiBzdHJpbmc7XG4gIGNocm9tZV9pY29uPzogc3RyaW5nO1xuICBjaHJvbWVfYmlnX3BpY3R1cmU/OiBzdHJpbmc7XG4gIGNocm9tZV93ZWJfaWNvbj86IHN0cmluZztcbiAgZmlyZWZveF9pY29uPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIHNlbmRfYWZ0ZXI/OiBzdHJpbmc7XG4gIGRlbGF5ZWRfb3B0aW9uPzogc3RyaW5nO1xuICBkZWxpdmVyeV90aW1lX29mX2RheT86IHN0cmluZztcbiAgYW5kcm9pZF9sZWRfY29sb3I/OiBzdHJpbmc7XG4gIGFuZHJvaWRfYWNjZW50X2NvbG9yPzogc3RyaW5nO1xuICBhbmRyb2lkX3Zpc2liaWxpdHk/OiBudW1iZXI7XG4gIGNvbnRlbnRfYXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgYW1hem9uX2JhY2tncm91bmRfZGF0YT86IGJvb2xlYW47XG4gIHRlbXBsYXRlX2lkPzogc3RyaW5nO1xuICBhbmRyb2lkX2dyb3VwPzogc3RyaW5nO1xuICBhbmRyb2lkX2dyb3VwX21lc3NhZ2U/OiBhbnk7XG4gIGFkbV9ncm91cD86IHN0cmluZztcbiAgYWRtX2dyb3VwX21lc3NhZ2U/OiBhbnk7XG4gIHR0bD86IG51bWJlcjtcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG4gIGlvc19jYXRlZ29yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBTkRST0lEKiogLSBQcml2YWN5IHNldHRpbmcgZm9yIGhvdyB0aGUgbm90aWZpY2F0aW9uIHNob3VsZCBiZSBzaG93biBvbiB0aGUgbG9ja3NjcmVlbiBvZiBBbmRyb2lkIDUrIGRldmljZXMuXG4gKi9cbmV4cG9ydCBlbnVtIE9TTG9ja1NjcmVlblZpc2liaWxpdHkge1xuICAvKipcbiAgICogRnVsbHkgdmlzaWJsZSAoZGVmYXVsdClcbiAgICovXG4gIFB1YmxpYyA9IDEsXG4gIC8qKlxuICAgKiBDb250ZW50cyBhcmUgaGlkZGVuXG4gICAqL1xuICBQcml2YXRlID0gMCxcbiAgLyoqXG4gICAqIE5vdCBzaG93blxuICAgKi9cbiAgU2VjcmV0ID0gLTEsXG59XG5cbi8qKlxuICogSG93IHRoZSBub3RpZmljYXRpb24gd2FzIGRpc3BsYXllZCB0byB0aGUgdXNlci4gUGFydCBvZiBPU05vdGlmaWNhdGlvbi4gU2VlIGluRm9jdXNEaXNwbGF5aW5nIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0aGlzIGlzIHVzZWQuXG4gKi9cbmV4cG9ydCBlbnVtIE9TRGlzcGxheVR5cGUge1xuICAvKipcbiAgICogbm90aWZpY2F0aW9uIGlzIHNpbGVudCwgb3IgaW5Gb2N1c0Rpc3BsYXlpbmcgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBOb25lID0gMCxcbiAgLyoqXG4gICAqICgqKkRFRkFVTFQqKikgLSBuYXRpdmUgYWxlcnQgZGlhbG9nIGRpc3BsYXkuXG4gICAqL1xuICBJbkFwcEFsZXJ0ID0gMSxcbiAgLyoqXG4gICAqIG5hdGl2ZSBub3RpZmljYXRpb24gZGlzcGxheS5cbiAgICovXG4gIE5vdGlmaWNhdGlvbiA9IDIsXG59XG5cbi8qKlxuICogQ29udGVudHMgYW5kIHNldHRpbmdzIG9mIHRoZSBub3RpZmljYXRpb24gdGhlIHVzZXIgcmVjZWl2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NOb3RpZmljYXRpb25QYXlsb2FkIHtcbiAgLyoqXG4gICAqIE9uZVNpZ25hbCBub3RpZmljYXRpb24gVVVJRC5cbiAgICovXG4gIG5vdGlmaWNhdGlvbklEOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEJvZHkgb2YgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGJvZHk6IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBhZGRpdGlvbmFsIGRhdGEgdGhhdCB3YXMgc2VudCB3aXRoIHRoZSBub3RpZmljYXRpb24uIFNldCBvbiB0aGUgZGFzaGJvYXJkIHVuZGVyIE9wdGlvbnMgPiBBZGRpdGlvbmFsIERhdGFcbiAgICogb3Igd2l0aCB0aGUgJ2RhdGEnIGZpZWxkIG9uIHRoZSBSRVNUIEFQSS5cbiAgICovXG4gIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gU21hbGwgaWNvbiByZXNvdXJjZSBuYW1lIHNldCBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgc21hbGxJY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gTGFyZ2UgaWNvbiBzZXQgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGxhcmdlSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEJpZyBwaWN0dXJlIGltYWdlIHNldCBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYmlnUGljdHVyZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEFjY2VudCBjb2xvciBzaG93biBhcm91bmQgc21hbGwgbm90aWZpY2F0aW9uIGljb24gb24gQW5kcm9pZCA1KyBkZXZpY2VzLiBBUkdCIGZvcm1hdC5cbiAgICovXG4gIHNtYWxsSWNvbkFjY2VudENvbG9yPzogc3RyaW5nO1xuICAvKipcbiAgICogVVJMIHRvIG9wZW4gd2hlbiBvcGVuaW5nIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBsYXVuY2hVUkw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTb3VuZCByZXNvdXJjZSB0byBwbGF5IHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBpcyBzaG93bi5cbiAgICovXG4gIHNvdW5kOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBEZXZpY2VzIHRoYXQgaGF2ZSBhIG5vdGlmaWNhdGlvbiBMRUQgd2lsbCBibGluayBpbiB0aGlzIGNvbG9yLiBBUkdCIGZvcm1hdC5cbiAgICovXG4gIGxlZENvbG9yPzogc3RyaW5nO1xuICBsb2NrU2NyZWVuVmlzaWJpbGl0eT86IE9TTG9ja1NjcmVlblZpc2liaWxpdHk7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBOb3RpZmljYXRpb25zIHdpdGggdGhpcyBzYW1lIGtleSB3aWxsIGJlIGdyb3VwZWQgdG9nZXRoZXIgYXMgYSBzaW5nbGUgc3VtbWFyeSBub3RpZmljYXRpb24uXG4gICAqL1xuICBncm91cEtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIFN1bW1hcnkgdGV4dCBkaXNwbGF5ZWQgaW4gdGhlIHN1bW1hcnkgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgZ3JvdXBNZXNzYWdlPzogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiBhY3Rpb24gYnV0dG9ucyBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYWN0aW9uQnV0dG9uczogT1NBY3Rpb25CdXR0b25bXTtcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIFRoZSBHb29nbGUgcHJvamVjdCBudW1iZXIgdGhlIG5vdGlmaWNhdGlvbiB3YXMgc2VudCB1bmRlci5cbiAgICovXG4gIGZyb21Qcm9qZWN0TnVtYmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gSWYgYSBiYWNrZ3JvdW5kIGltYWdlIHdhcyBzZXQgdGhpcyBvYmplY3Qgd2lsbCBiZSBhdmFpbGFibGUuXG4gICAqL1xuICBiYWNrZ3JvdW5kSW1hZ2VMYXlvdXQ/OiBPU0JhY2tncm91bmRJbWFnZUxheW91dDtcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICByYXdQYXlsb2FkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGlzdCBvZiBhY3Rpb24gYnV0dG9ucyBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TQWN0aW9uQnV0dG9uIHtcbiAgLyoqXG4gICAqIElkIGFzc2lnbmVkIHRvIHRoZSBidXR0b24uXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dCBzaG93IG9uIHRoZSBidXR0b24gdG8gdGhlIHVzZXIuXG4gICAqL1xuICB0ZXh0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBJY29uIHNob3duIG9uIHRoZSBidXR0b24uXG4gICAqL1xuICBpY29uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT1NQZXJtaXNzaW9uU3RhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU1Blcm1pc3Npb25TdGF0ZSB7XG4gIC8qKlxuICAgKiBVc2VyIHdhcyBwcm9tcHRlZC5cbiAgICovXG4gIGhhc1Byb21wdGVkOiBib29sZWFuO1xuICAvKipcbiAgICogUGVybWlzc2lvbnMgU3RhdHVzIChpT1MgT25seSlcbiAgICovXG4gIHN0YXR1czogYW55O1xuICAvKipcbiAgICogUGVybWlzc2lvbnMgU3RhdGUgKEFuZHJvaWQgT25seSlcbiAgICovXG4gIHN0YXRlOiBhbnk7XG59XG5cbi8qKlxuICogT1NTdWJzY3JpcHRpb25TdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TU3Vic2NyaXB0aW9uU3RhdGUge1xuICBzdWJzY3JpYmVkOiBib29sZWFuO1xuICB1c2VyU3Vic2NyaXB0aW9uU2V0dGluZzogYW55O1xuICB1c2VySWQ6IGFueTtcbiAgcHVzaFRva2VuOiBhbnk7XG59XG5cbi8qKlxuICogU3Vic2NyaXB0aW9uIGFuZCBwZXJtaXNzaW9ucyBzdGF0dXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZSB7XG4gIC8qKlxuICAgKiBJZCBhc3NpZ25lZCB0byB0aGUgYnV0dG9uLlxuICAgKi9cbiAgcGVybWlzc2lvblN0YXR1czogT1NQZXJtaXNzaW9uU3RhdGU7XG4gIC8qKlxuICAgKiBUZXh0IHNob3cgb24gdGhlIGJ1dHRvbiB0byB0aGUgdXNlci5cbiAgICovXG4gIHN1YnNjcmlwdGlvblN0YXR1czogT1NTdWJzY3JpcHRpb25TdGF0ZTtcbn1cblxuLyoqXG4gKiBBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCwgdGhpcyBvYmplY3Qgd2lsbCBiZSBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXQge1xuICAvKipcbiAgICogSW1hZ2UgVVJMIG9yIG5hbWUgdXNlZCBhcyB0aGUgYmFja2dyb3VuZCBpbWFnZS5cbiAgICovXG4gIGltYWdlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGNvbG9yIG9mIHRoZSB0aXRsZSBvbiB0aGUgbm90aWZpY2F0aW9uLiBBUkdCIEZvcm1hdC5cbiAgICovXG4gIHRpdGxlVGV4dENvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGNvbG9yIG9mIHRoZSBib2R5IG9uIHRoZSBub3RpZmljYXRpb24uIEFSR0IgRm9ybWF0LlxuICAgKi9cbiAgYm9keVRleHRDb2xvcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiByZXR1cm5lZCBmcm9tIGEgbm90aWZpY2F0aW9uIHRoZSB1c2VyIHJlY2VpdmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0IHtcbiAgYWN0aW9uOiB7XG4gICAgLyoqXG4gICAgICogV2FzIHRoZSBub3RpZmljYXRpb24gb3BlbmVkIG5vcm1hbGx5IChgT3BlbmVkYCkgb3Igd2FzIGEgYnV0dG9uIHByZXNzZWQgb24gdGhlIG5vdGlmaWNhdGlvbiAoYEFjdGlvblRha2VuYCkuXG4gICAgICovXG4gICAgdHlwZTogT1NBY3Rpb25UeXBlO1xuICAgIC8qKlxuICAgICAqIElmIGB0eXBlYCA9PSBgQWN0aW9uVGFrZW5gIHRoZW4gdGhpcyB3aWxsIGNvbnRhaW4gdGhlIGlkIG9mIHRoZSBidXR0b24gcHJlc3NlZC5cbiAgICAgKi9cbiAgICBhY3Rpb25JRD86IHN0cmluZztcbiAgfTtcbiAgbm90aWZpY2F0aW9uOiBPU05vdGlmaWNhdGlvbjtcbn1cblxuZXhwb3J0IGVudW0gT1NBY3Rpb25UeXBlIHtcbiAgT3BlbmVkID0gMCxcbiAgQWN0aW9uVGFrZSA9IDEsXG59XG5cbi8qKlxuICogRGV0YWlscyBhYm91dCB0aGUgSW4tQXBwIE1lc3NhZ2UgYWN0aW9uIGVsZW1lbnQgKGJ1dHRvbiBvciBpbWFnZSkgdGhhdCB3YXMgdGFwcGVkIG9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TSW5BcHBNZXNzYWdlQWN0aW9uIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGNsaWNrIG5hbWUgZGVmaW5lZCBmb3IgdGhlIGFjdGlvbiBlbGVtZW50LiBudWxsIG9yIG5pbCAoaU9TKSBpZiBub3Qgc2V0LlxuICAgKi9cbiAgY2xpY2tfbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgVVJMIHRoYXQgb3BlbnMgd2hlbiB0aGUgYWN0aW9uIHRha2VzIHBsYWNlLiBudWxsIG9yIG5pbCAoaU9TKSBpZiBub3Qgc2V0LlxuICAgKi9cbiAgY2xpY2tfdXJsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgdXNlciBoYXMgcHJlc3NlZCBhbnkgYWN0aW9uIG9uIHRoZSBJbi1BcHAgTWVzc2FnZS5cbiAgICovXG4gIGZpcnN0X2NsaWNrOiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgSW4tQXBwIE1lc3NhZ2Ugd2lsbCBhbmltYXRlIG9mZiB0aGUgc2NyZWVuLiBJZiBgZmFsc2VgLCB0aGUgSW4tQXBwIE1lc3NhZ2Ugd2lsbCBzdGF5IG9uIHNjcmVlbiB1bnRpbCB0aGUgdXNlciBkaXNtaXNzZXMgaXQuXG4gICAqL1xuICBjbG9zZXNfbWVzc2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAbmFtZSBPbmVTaWduYWxcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIE9uZVNpZ25hbCBwbHVnaW4gaXMgYW4gY2xpZW50IGltcGxlbWVudGF0aW9uIGZvciB1c2luZyB0aGUgW09uZVNpZ25hbF0oaHR0cHM6Ly9vbmVzaWduYWwuY29tLykgU2VydmljZS5cbiAqIE9uZVNpZ25hbCBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3IgZGVsaXZlcmluZyBwdXNoIG5vdGlmaWNhdGlvbnMuXG4gKlxuICogUGxlYXNlIHZpZXcgdGhlIG9mZmljaWFsIFtPbmVTaWduYWwgSW9uaWMgU0RLIEluc3RhbGxhdGlvbl0oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9uZXNpZ25hbC5jb20vZG9jcy9pb25pYy1zZGstc2V0dXApIGd1aWRlXG4gKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMjIEljb25zXG4gKiBJZiB5b3Ugd2FudCB0byB1c2UgZ2VuZXJhdGVkIGljb25zIHdpdGggY29tbWFuZCBgaW9uaWMgY29yZG92YSByZXNvdXJjZXNgOlxuICpcbiAqIDEuIEFkZCBhIGZpbGUgdG8geW91ciBgaG9va3NgIGRpcmVjdG9yeSBjYWxsZWQgYGNvcHlfYW5kcm9pZF9ub3RpZmljYXRpb25faWNvbnMuanNgXG4gKlxuICogMi4gQ29uZmlndXJlIHRoZSBob29rIGluIHlvdXIgY29uZmlnLnhtbFxuICogYGBgXG4gKiAgICAgPHBsYXRmb3JtIG5hbWU9XCJhbmRyb2lkXCI+XG4gKiAgICAgICAgIDxob29rIHR5cGU9XCJhZnRlcl9wcmVwYXJlXCIgc3JjPVwiaG9va3MvY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc1wiIC8+XG4gKiAgICAgPC9wbGF0Zm9ybT5cbiAqIGBgYFxuICpcbiAqIDMuIFB1dCB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQ6XG4gKlxuICogYGBgXG4gKiAjIS91c3IvYmluL2VudiBub2RlXG4gKlxuICogdmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcbiAqIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuICpcbiAqIHZhciBmaWxlc3RvY29weSA9IFt7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLWhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLWhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS1tZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS1tZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0sIHtcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUteGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXhoZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0sIHtcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUteHhoZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS14eGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14eHhoZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS14eHhoZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0gXTtcbiAqXG4gKiBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAqXG4gKiAgICAgLy8gbm8gbmVlZCB0byBjb25maWd1cmUgYmVsb3dcbiAqICAgICB2YXIgcm9vdGRpciA9IGNvbnRleHQub3B0cy5wcm9qZWN0Um9vdDtcbiAqXG4gKiAgICAgZmlsZXN0b2NvcHkuZm9yRWFjaChmdW5jdGlvbihvYmopIHtcbiAqICAgICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICogICAgICAgICAgICAgdmFyIHZhbCA9IG9ialtrZXldO1xuICogICAgICAgICAgICAgdmFyIHNyY2ZpbGUgPSBwYXRoLmpvaW4ocm9vdGRpciwga2V5KTtcbiAqICAgICAgICAgICAgIHZhciBkZXN0ZmlsZSA9IHBhdGguam9pbihyb290ZGlyLCB2YWwpO1xuICogICAgICAgICAgICAgY29uc29sZS5sb2coXCJjb3B5aW5nIFwiK3NyY2ZpbGUrXCIgdG8gXCIrZGVzdGZpbGUpO1xuICogICAgICAgICAgICAgdmFyIGRlc3RkaXIgPSBwYXRoLmRpcm5hbWUoZGVzdGZpbGUpO1xuICogICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjZmlsZSkgJiYgZnMuZXhpc3RzU3luYyhkZXN0ZGlyKSkge1xuICogICAgICAgICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oc3JjZmlsZSkucGlwZShcbiAqICAgICAgICAgICAgICAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0oZGVzdGZpbGUpKTtcbiAqICAgICAgICAgICAgIH1cbiAqICAgICAgICAgfSk7XG4gKiAgICAgfSk7XG4gKlxuICogfTtcbiAqIGBgYFxuICpcbiAqIDMuIEZyb20gdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IG1ha2UgdGhlIGZpbGUgZXhlY3V0YWJsZTpcbiAqIGAkIGNobW9kICt4IGhvb2tzL2NvcHlfYW5kcm9pZF9ub3RpZmljYXRpb25faWNvbnMuanNgXG4gKiBAdXNhZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IE9uZVNpZ25hbCB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9vbmVzaWduYWwvbmd4JztcbiAqXG4gKiBjb25zdHJ1Y3Rvcihwcml2YXRlIG9uZVNpZ25hbDogT25lU2lnbmFsKSB7IH1cbiAqXG4gKiAuLi5cbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5zdGFydEluaXQoJ2IyZjdmOTY2LWQ4Y2MtMTFlNC1iZWQxLWRmOGYwNWJlNTViYScsICc3MDMzMjI3NDQyNjEnKTtcbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5pbkZvY3VzRGlzcGxheWluZyh0aGlzLm9uZVNpZ25hbC5PU0luRm9jdXNEaXNwbGF5T3B0aW9uLkluQXBwQWxlcnQpO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmhhbmRsZU5vdGlmaWNhdGlvblJlY2VpdmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAqICAvLyBkbyBzb21ldGhpbmcgd2hlbiBub3RpZmljYXRpb24gaXMgcmVjZWl2ZWRcbiAqIH0pO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmhhbmRsZU5vdGlmaWNhdGlvbk9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gKiAgIC8vIGRvIHNvbWV0aGluZyB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIG9wZW5lZFxuICogfSk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuZW5kSW5pdCgpO1xuICogYGBgXG4gKiBAaW50ZXJmYWNlc1xuICogT1NOb3RpZmljYXRpb25cbiAqIE9TTG9ja1NjcmVlblZpc2liaWxpdHlcbiAqIE9TRGlzcGxheVR5cGVcbiAqIE9TTm90aWZpY2F0aW9uUGF5bG9hZFxuICogT1NBY3Rpb25CdXR0b25cbiAqIE9TQmFja2dyb3VuZEltYWdlTGF5b3V0XG4gKiBPU05vdGlmaWNhdGlvbk9wZW5lZFJlc3VsdFxuICogT1NBY3Rpb25UeXBlXG4gKiBPU0luQXBwTWVzc2FnZUFjdGlvblxuICovXG5AUGx1Z2luKHtcbiAgcGx1Z2luTmFtZTogJ09uZVNpZ25hbCcsXG4gIHBsdWdpbjogJ29uZXNpZ25hbC1jb3Jkb3ZhLXBsdWdpbicsXG4gIHBsdWdpblJlZjogJ3BsdWdpbnMuT25lU2lnbmFsJyxcbiAgcmVwbzogJ2h0dHBzOi8vZ2l0aHViLmNvbS9PbmVTaWduYWwvT25lU2lnbmFsLUNvcmRvdmEtU0RLJyxcbiAgcGxhdGZvcm1zOiBbJ0FtYXpvbiBGaXJlIE9TJywgJ0FuZHJvaWQnLCAnaU9TJywgJ1dpbmRvd3MnXSxcbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lU2lnbmFsIGV4dGVuZHMgQXdlc29tZUNvcmRvdmFOYXRpdmVQbHVnaW4ge1xuICAvKipcbiAgICogY29uc3RhbnRzIHRvIHVzZSBpbiBpbkZvY3VzRGlzcGxheWluZygpXG4gICAqXG4gICAqIEBoaWRkZW5cbiAgICovXG4gIE9TSW5Gb2N1c0Rpc3BsYXlPcHRpb24gPSB7XG4gICAgTm9uZTogMCxcbiAgICBJbkFwcEFsZXJ0OiAxLFxuICAgIE5vdGlmaWNhdGlvbjogMixcbiAgfTtcblxuICAvKipcbiAgICogU3RhcnQgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuIE9uY2UgeW91IGFyZSBkb25lIGNvbmZpZ3VyaW5nIE9uZVNpZ25hbCwgY2FsbCB0aGUgYGVuZEluaXRgIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgWW91ciBPbmVTaWduYWwgYXBwIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBnb29nbGVQcm9qZWN0TnVtYmVyICoqQU5EUk9JRCoqIC0geW91ciBHb29nbGUgcHJvamVjdCBudW1iZXI7IG9ubHkgcmVxdWlyZWQgZm9yIEFuZHJvaWQgR0NNL0ZDTSBwdXNoZXMuXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc3RhcnRJbml0KGFwcElkOiBzdHJpbmcsIGdvb2dsZVByb2plY3ROdW1iZXI/OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBydW4gd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyByZWNlaXZlZCwgd2hldGhlciBpdCB3YXMgZGlzcGxheWVkIG9yIG5vdC5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T25lU2lnbmFsUmVjZWl2ZWROb3RpZmljYXRpb24+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGhhbmRsZU5vdGlmaWNhdGlvblJlY2VpdmVkKCk6IE9ic2VydmFibGU8T1NOb3RpZmljYXRpb24+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gcnVuIHdoZW4gYSBub3RpZmljYXRpb24gaXMgdGFwcGVkIG9uIGZyb20gdGhlIG5vdGlmaWNhdGlvbiBzaGFkZSAoKipBTkRST0lEKiopIG9yIG5vdGlmaWNhdGlvblxuICAgKiBjZW50ZXIgKCoqaU9TKiopLCBvciB3aGVuIGNsb3NpbmcgYW4gQWxlcnQgbm90aWZpY2F0aW9uIHNob3duIGluIHRoZSBhcHAgKGlmIEluQXBwQWxlcnQgaXMgZW5hYmxlZCBpblxuICAgKiBpbkZvY3VzRGlzcGxheWluZykuXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPE9uZVNpZ25hbE9wZW5lZE5vdGlmaWNhdGlvbj59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCk6IE9ic2VydmFibGU8T1NOb3RpZmljYXRpb25PcGVuZWRSZXN1bHQ+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRvIHByb2Nlc3MgYW4gSW4tQXBwIE1lc3NhZ2UgdGhlIHVzZXIganVzdCB0YXBwZWQgb24uXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPE9TSW5BcHBNZXNzYWdlQWN0aW9uPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBoYW5kbGVJbkFwcE1lc3NhZ2VDbGlja2VkKCk6IE9ic2VydmFibGU8T1NJbkFwcE1lc3NhZ2VBY3Rpb24+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogaU9TKiogLSBTZXR0aW5ncyBmb3IgaU9TIGFwcHNcbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzXG4gICAqICBrT1NTZXR0aW5nc0tleUF1dG9Qcm9tcHQ6IGJvb2xlYW4gPSB0cnVlXG4gICAqICBBdXRvIHByb21wdCB1c2VyIGZvciBub3RpZmljYXRpb24gcGVybWlzc2lvbnMuXG4gICAqXG4gICAqICBrT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMOiBib29sZWFuID0gZmFsc2VcbiAgICogIExhdW5jaCBub3RpZmljYXRpb25zIHdpdGggYSBsYXVuY2ggVVJMIGFzIGFuIGluIGFwcCB3ZWJ2aWV3LlxuICAgKiBAcGFyYW0gc2V0dGluZ3Mua09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0XG4gICAqIEBwYXJhbSBzZXR0aW5ncy5rT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgICBwbGF0Zm9ybXM6IFsnaU9TJ10sXG4gIH0pXG4gIGlPU1NldHRpbmdzKHNldHRpbmdzOiB7IGtPU1NldHRpbmdzS2V5QXV0b1Byb21wdDogYm9vbGVhbjsga09TU2V0dGluZ3NLZXlJbkFwcExhdW5jaFVSTDogYm9vbGVhbiB9KTogYW55IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0SW5pdGAgdG8gY29tcGxldGUgaW5pdGlhbGl6YXRpb24gb2YgT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuZEluaXQoKTogYW55IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBub3RpZmljYXRpb24gcGVybWlzc2lvbnMuIENhbGxiYWNrIGZpcmVzIGFzIHNvb24gYXMgdGhlIHVzZXIgYWNjZXB0cyBvciBkZWNsaW5lcyBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBwbGF0Zm9ybXM6IFsnaU9TJ10sXG4gIH0pXG4gIHByb21wdEZvclB1c2hOb3RpZmljYXRpb25zV2l0aFVzZXJSZXNwb25zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYSBsaXN0IG9mIHRhZ3MgdGhhdCBoYXZlIGJlZW4gc2V0IG9uIHRoZSB1c2VyIGZyb20gdGhlIE9uZVNpZ25hbCBzZXJ2ZXIuXG4gICAqXG4gICAqIFF1aXJrKio6IFlvdSBtdXN0IHdhaXQgZm9yIGBnZXRUYWdzYCB0byByZXNvbHZlIGJlZm9yZSBjYWxsaW5nIGl0IGFnYWluLCBhcyB0aGUgcGx1Z2luIHdpbGwgb25seSBwcm9jZXNzIHRoZSBsYXN0IG1ldGhvZCBjYWxsIGFuZCBkaXNjYXJkIGFueSBwcmV2aW91cyBvbmVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGFncyBhcmUgcmVjaWV2ZWQuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldFRhZ3MoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogTGV0cyB5b3UgcmV0cmlldmUgdGhlIE9uZVNpZ25hbCB1c2VyIGlkIGFuZCBkZXZpY2UgdG9rZW4uXG4gICAqIFlvdXIgaGFuZGxlciBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCB3aXRoIE9uZVNpZ25hbC5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyBpZiB0aGUgZGV2aWNlIHdhcyBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC5cbiAgICpcbiAgICogIHVzZXJJZCB7c3RyaW5nfSBPbmVTaWduYWwgdXNlcklkIGlzIGEgVVVJRCBmb3JtYXR0ZWQgc3RyaW5nLiAodW5pcXVlIHBlciBkZXZpY2UgcGVyIGFwcClcbiAgICpcbiAgICogIHB1c2hUb2tlbiB7c3RyaW5nfSBBIHB1c2ggdG9rZW4gaXMgYSBHb29nbGUvQXBwbGUgYXNzaWduZWQgaWRlbnRpZmllcih1bmlxdWUgcGVyIGRldmljZSBwZXIgYXBwKS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0SWRzKCk6IFByb21pc2U8eyB1c2VySWQ6IHN0cmluZzsgcHVzaFRva2VuOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWcgYSB1c2VyIGJhc2VkIG9uIGFuIGFwcCBldmVudCBvZiB5b3VyIGNob29zaW5nIHNvIGxhdGVyIHlvdSBjYW4gY3JlYXRlIHNlZ21lbnRzIG9uIFtvbmVzaWduYWwuY29tXShodHRwczovL29uZXNpZ25hbC5jb20vKSB0byB0YXJnZXQgdGhlc2UgdXNlcnMuXG4gICAqIFJlY29tbWVuZCB1c2luZyBzZW5kVGFncyBvdmVyIHNlbmRUYWcgaWYgeW91IG5lZWQgdG8gc2V0IG1vcmUgdGhhbiBvbmUgdGFnIG9uIGEgdXNlciBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBLZXkgb2YgeW91ciBjaG9vc2luZyB0byBjcmVhdGUgb3IgdXBkYXRlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gVmFsdWUgdG8gc2V0IG9uIHRoZSBrZXkuIE5PVEU6IFBhc3NpbmcgaW4gYSBibGFuayBTdHJpbmcgZGVsZXRlcyB0aGUga2V5LCB5b3UgY2FuIGFsc28gY2FsbCBkZWxldGVUYWcuXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc2VuZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge31cblxuICAvKipcbiAgICogVGFnIGEgdXNlciBiYXNlZCBvbiBhbiBhcHAgZXZlbnQgb2YgeW91ciBjaG9vc2luZyBzbyBsYXRlciB5b3UgY2FuIGNyZWF0ZSBzZWdtZW50cyBvbiBbb25lc2lnbmFsLmNvbV0oaHR0cHM6Ly9vbmVzaWduYWwuY29tLykgdG8gdGFyZ2V0IHRoZXNlIHVzZXJzLlxuICAgKiBSZWNvbW1lbmQgdXNpbmcgc2VuZFRhZ3Mgb3ZlciBzZW5kVGFnIGlmIHlvdSBuZWVkIHRvIHNldCBtb3JlIHRoYW4gb25lIHRhZyBvbiBhIHVzZXIgYXQgYSB0aW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gUGFzcyBhIGpzb24gb2JqZWN0IHdpdGgga2V5L3ZhbHVlIHBhaXJzIGxpa2U6IHtrZXk6IFwidmFsdWVcIiwga2V5MjogXCJ2YWx1ZTJcIn1cbiAgICogQHBhcmFtIGpzb25cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZW5kVGFncyhqc29uOiBhbnkpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSB0YWcgdGhhdCB3YXMgcHJldmlvdXNseSBzZXQgb24gYSB1c2VyIHdpdGggYHNlbmRUYWdgIG9yIGBzZW5kVGFnc2AuIFVzZSBgZGVsZXRlVGFnc2AgaWYgeW91IG5lZWQgdG8gZGVsZXRlIG1vcmUgdGhhbiBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBLZXkgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0ga2V5XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZGVsZXRlVGFnKGtleTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIHRhZ3MgdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2V0IG9uIGEgdXNlciB3aXRoIGBzZW5kVGFnYCBvciBgc2VuZFRhZ3NgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBLZXlzIHRvIHJlbW92ZS5cbiAgICogQHBhcmFtIGtleXNcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBkZWxldGVUYWdzKGtleXM6IHN0cmluZ1tdKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgd2hlbiB5b3Ugd291bGQgbGlrZSB0byBwcm9tcHQgYW4gaU9TIHVzZXIgdG8gYWNjZXB0IHB1c2ggbm90aWZpY2F0aW9ucyB3aXRoIHRoZSBkZWZhdWx0IHN5c3RlbSBwcm9tcHQuXG4gICAqIE9ubHkgd29ya3MgaWYgeW91IHNldCBga09TU2V0dGluZ3NBdXRvUHJvbXB0YCB0byBgZmFsc2VgIGluIGBpT1NTZXR0aW5nc2BcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICByZWdpc3RlckZvclB1c2hOb3RpZmljYXRpb25zKCk6IHZvaWQge31cblxuICAvKipcbiAgICogV2FybmluZzpcbiAgICogT25seSBhcHBsaWVzIHRvIEFuZHJvaWQgYW5kIEFtYXpvbi4gWW91IGNhbiBjYWxsIHRoaXMgZnJvbSB5b3VyIFVJIGZyb20gYSBidXR0b24gcHJlc3MgZm9yIGV4YW1wbGUgdG8gZ2l2ZSB5b3VyIHVzZXIncyBvcHRpb25zIGZvciB5b3VyIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQgT25lU2lnbmFsIGFsd2F5cyB2aWJyYXRlcyB0aGUgZGV2aWNlIHdoZW4gYSBub3RpZmljYXRpb24gaXMgZGlzcGxheWVkIHVubGVzcyB0aGUgZGV2aWNlIGlzIGluIGEgdG90YWwgc2lsZW50IG1vZGUuXG4gICAqIFBhc3NpbmcgZmFsc2UgbWVhbnMgdGhhdCB0aGUgZGV2aWNlIHdpbGwgb25seSB2aWJyYXRlIGxpZ2h0bHkgd2hlbiB0aGUgZGV2aWNlIGlzIGluIGl0J3MgdmlicmF0ZSBvbmx5IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmFsc2UgdG8gZGlzYWJsZSB2aWJyYXRlLCB0cnVlIHRvIHJlLWVuYWJsZSBpdC5cbiAgICogQHBhcmFtIGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuYWJsZVZpYnJhdGUoZW5hYmxlOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgcGxheXMgdGhlIHN5c3RlbSdzIGRlZmF1bHQgbm90aWZpY2F0aW9uIHNvdW5kIHdoZW4gdGhlIGRldmljZSdzIG5vdGlmaWNhdGlvbiBzeXN0ZW0gdm9sdW1lIGlzIHR1cm5lZCBvbi5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgc2V0IHRvIGEgdG90YWwgc2lsZW50IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmFsc2UgdG8gZGlzYWJsZSBzb3VuZCwgdHJ1ZSB0byByZS1lbmFibGUgaXQuXG4gICAqIEBwYXJhbSBlbmFibGVcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBlbmFibGVTb3VuZChlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqXG4gICAqIFNldHRpbmcgdG8gY29udHJvbCBob3cgT25lU2lnbmFsIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzaG93biB3aGVuIG9uZSBpcyByZWNlaXZlZCB3aGlsZSB5b3VyIGFwcCBpcyBpbiBmb2N1cy4gQnkgZGVmYXVsdCB0aGlzIGlzIHNldCB0byBpbkFwcEFsZXJ0LCB3aGljaCBjYW4gYmUgaGVscGZ1bCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlzcGxheVR5cGV9IGRpc3BsYXlPcHRpb25cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBpbkZvY3VzRGlzcGxheWluZyhkaXNwbGF5T3B0aW9uOiBPU0Rpc3BsYXlUeXBlKTogYW55IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogWW91IGNhbiBjYWxsIHRoaXMgbWV0aG9kIHdpdGggZmFsc2UgdG8gb3B0IHVzZXJzIG91dCBvZiByZWNlaXZpbmcgYWxsIG5vdGlmaWNhdGlvbnMgdGhyb3VnaCBPbmVTaWduYWwuXG4gICAqIFlvdSBjYW4gcGFzcyB0cnVlIGxhdGVyIHRvIG9wdCB1c2VycyBiYWNrIGludG8gbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRTdWJzY3JpcHRpb24oZW5hYmxlOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbm90aWZpY2F0aW9uIGFuZCBwZXJtaXNzaW9uIHN0YXRlLiBSZXR1cm5zIGEgT1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGUgdHlwZSBkZXNjcmliZWQgYmVsb3cuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlPn1cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0UGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlKCk6IFByb21pc2U8T1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGU+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtub3RpZmljYXRpb25PYmp9IFBhcmFtZXRlcnMgc2VlIFBPU1QgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jdW1lbnRhdGlvbi5vbmVzaWduYWwuY29tL3YyLjAvZG9jcy9ub3RpZmljYXRpb25zLWNyZWF0ZS1ub3RpZmljYXRpb24pXG4gICAqIEBwYXJhbSBub3RpZmljYXRpb25PYmpcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyBpZiB0aGUgbm90aWZpY2F0aW9uIHdhcyBzZW5kIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcG9zdE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25PYmo6IE9TTm90aWZpY2F0aW9uKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyBhIHNpbmdsZSBPbmVTaWduYWwgbm90aWZpY2F0aW9uIGJhc2VkIG9uIGl0cyBBbmRyb2lkIG5vdGlmaWNhdGlvbiBpbnRlZ2VyIGlkLiBVc2UgaW5zdGVhZCBvZiBOb3RpZmljYXRpb25NYW5hZ2VyLmNhbmNlbChpZCk7IG90aGVyd2lzZSB0aGUgbm90aWZpY2F0aW9uIHdpbGwgYmUgcmVzdG9yZWQgd2hlbiB5b3VyIGFwcCBpcyByZXN0YXJ0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBub3RpZmljYXRpb25JZCB7c3RyaW5nfVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZDogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBQcm9tcHRzIHRoZSB1c2VyIGZvciBsb2NhdGlvbiBwZXJtaXNzaW9uIHRvIGFsbG93IGdlb3RhZ2dpbmcgYmFzZWQgb24gdGhlIFwiTG9jYXRpb24gcmFkaXVzXCIgZmlsdGVyIG9uIHRoZSBPbmVTaWduYWwgZGFzaGJvYXJkLlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHByb21wdExvY2F0aW9uKCk6IHZvaWQge31cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGVtYWlsIHtzdHJpbmd9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc3luY0hhc2hlZEVtYWlsKGVtYWlsOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBsb2dnaW5nIHRvIGhlbHAgZGVidWcgaWYgeW91IHJ1biBpbnRvIGFuIGlzc3VlIHNldHRpbmcgdXAgT25lU2lnbmFsLlxuICAgKiBUaGUgbG9nZ2luZyBsZXZlbHMgYXJlIGFzIGZvbGxvd3M6IDAgPSBOb25lLCAxPSBGYXRhbCwgMiA9IEVycm9ycywgMyA9IFdhcm5pbmdzLCA0ID0gSW5mbywgNSA9IERlYnVnLCA2ID0gVmVyYm9zZVxuICAgKlxuICAgKiBUaGUgaGlnaGVyIHRoZSB2YWx1ZSB0aGUgbW9yZSBpbmZvcm1hdGlvbiBpcyBzaG93bi5cbiAgICpcbiAgICogQHBhcmFtIHtsb2dsZXZlbH0gY29udGFpbnMgdHdvIHByb3BlcnRpZXM6IGxvZ0xldmVsIChmb3IgY29uc29sZSBsb2dnaW5nKSBhbmQgdmlzdWFsTGV2ZWwgKGZvciBkaWFsb2cgbWVzc2FnZXMpXG4gICAqIEBwYXJhbSBsb2dMZXZlbFxuICAgKiBAcGFyYW0gbG9nTGV2ZWwubG9nTGV2ZWxcbiAgICogQHBhcmFtIGxvZ0xldmVsLnZpc3VhbExldmVsXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc2V0TG9nTGV2ZWwobG9nTGV2ZWw6IHsgbG9nTGV2ZWw6IG51bWJlcjsgdmlzdWFsTGV2ZWw6IG51bWJlciB9KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIG9yIGVuYWJsZSBsb2NhdGlvbiBjb2xsZWN0aW9uIChEZWZhdWx0cyB0byBlbmFibGVkKSBpZiB5b3VyIGFwcCBoYXMgbG9jYXRpb24gcGVybWlzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIHNoYXJlZCB7Ym9vbGVhbn1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRMb2NhdGlvblNoYXJlZChzaGFyZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzZWQgaW4gZnVuY3Rpb24gd2lsbCBiZSBmaXJlZCB3aGVuIGEgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gc2V0dGluZyBjaGFuZ2VzLlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIE5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHByb21wdCBzaG93blxuICAgKiAtIFRoZSB1c2VyIGFjY2VwdGluZyBvciBkZWNsaW5pbmcgdGhlIHBlcm1pc3Npb24gcHJvbXB0XG4gICAqIC0gRW5hYmxpbmcvZGlzYWJsaW5nIG5vdGlmaWNhdGlvbnMgZm9yIHlvdXIgYXBwIGluIHRoZSBkZXZpY2UgU2V0dGluZ3MgYWZ0ZXIgcmV0dXJuaW5nIHRvIHlvdXIgYXBwLlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZFBlcm1pc3Npb25PYnNlcnZlcigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFzc2VkIGluIGZ1bmN0aW9uIHdpbGwgYmUgZmlyZWQgd2hlbiBhIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24gcHJvcGVydHkgY2hhbmdlcy5cbiAgICogVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGV2ZW50czpcbiAgICogLSBHZXR0aW5nIGEgcHVzaCB0b2tlbiBmcm9tIEFwcGxlIC8gR29vZ2xlLlxuICAgKiAtIEdldHRpbmcgYSBwbGF5ZXIgLyB1c2VyIGlkIGZyb20gT25lU2lnbmFsXG4gICAqIC0gT25lU2lnbmFsLnNldFN1YnNjcmlwdGlvbiBpcyBjYWxsZWRcbiAgICogLSBVc2VyIGRpc2FibGVzIG9yIGVuYWJsZXMgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZFN1YnNjcmlwdGlvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgT25lU2lnbmFsIG5vdGlmaWNhdGlvbnNcbiAgICpcbiAgICogQHBhcmFtIGVtYWlsXG4gICAqIEBwYXJhbSBlbWFpbEF1dGhUb2tlblxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRFbWFpbChlbWFpbDogc3RyaW5nLCBlbWFpbEF1dGhUb2tlbj86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHlvdXIgYXBwIGltcGxlbWVudHMgbG9nb3V0IGZ1bmN0aW9uYWxpdHksIHlvdSBjYW4gY2FsbCBsb2dvdXRFbWFpbCB0byBkaXNzb2NpYXRlIHRoZSBlbWFpbCBmcm9tIHRoZSBkZXZpY2VcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgbG9nb3V0RW1haWwoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uIHByb3BlcnR5IGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gR2V0dGluZyBhIHB1c2ggdG9rZW4gZnJvbSBBcHBsZSAvIEdvb2dsZS5cbiAgICogLSBHZXR0aW5nIGEgcGxheWVyIC8gdXNlciBpZCBmcm9tIE9uZVNpZ25hbFxuICAgKiAtIE9uZVNpZ25hbC5zZXRTdWJzY3JpcHRpb24gaXMgY2FsbGVkXG4gICAqIC0gVXNlciBkaXNhYmxlcyBvciBlbmFibGVzIG5vdGlmaWNhdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8YW55Pn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBhZGRFbWFpbFN1YnNjcmlwdGlvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgT25lU2lnbmFsIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBjbGVhck9uZVNpZ25hbE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIGRlbGF5IHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgU0RLIHVudGlsIHRoZSB1c2VyIHByb3ZpZGVzIHByaXZhY3kgY29uc2VudC5cbiAgICogVGhlIFNESyB3aWxsIG5vdCBiZSBmdWxseSBpbml0aWFsaXplZCB1bnRpbCB0aGUgcHJvdmlkZVVzZXJDb25zZW50KHRydWUpIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVxdWlyZWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0UmVxdWlyZXNVc2VyUHJpdmFjeUNvbnNlbnQocmVxdWlyZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIElmIHlvdXIgYXBwbGljYXRpb24gaXMgc2V0IHRvIHJlcXVpcmUgdGhlIHVzZXIncyBwcml2YWN5IGNvbnNlbnQsIHlvdSBjYW4gcHJvdmlkZSB0aGlzIGNvbnNlbnQgdXNpbmcgdGhpcyBtZXRob2QuXG4gICAqIFVudGlsIHlvdSBjYWxsIHByb3ZpZGVVc2VyQ29uc2VudCh0cnVlKSwgdGhlIFNESyB3aWxsIG5vdCBmdWxseSBpbml0aWFsaXplIGFuZCB3aWxsIG5vdCBzZW5kIGFueSBkYXRhIHRvIE9uZVNpZ25hbC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBncmFudGVkXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHByb3ZpZGVVc2VyQ29uc2VudChncmFudGVkOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBY2NlcHRzIGEgY2FsbGJhY2ssIHdoaWNoIHJldHVybnMgYSBib29sZWFuIHZhcmlhYmxlIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaGFzIGdpdmVuIHByaXZhY3kgY29uc2VudCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHVzZXJQcm92aWRlZFByaXZhY3lDb25zZW50KGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge31cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB1c2UgeW91ciBvd24gc3lzdGVtJ3MgdXNlciBJRCdzIHRvIHNlbmQgcHVzaCBub3RpZmljYXRpb25zIHRvIHlvdXIgdXNlcnMuXG4gICAqIFRvIHRpZSBhIHVzZXIgdG8gYSBnaXZlbiB1c2VyIElELCB5b3UgY2FuIHVzZSB0aGlzIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dGVybmFsSWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0RXh0ZXJuYWxVc2VySWQoZXh0ZXJuYWxJZDogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHdoYXRldmVyIHdhcyBzZXQgYXMgdGhlIGN1cnJlbnQgdXNlcidzIGV4dGVybmFsIHVzZXIgSUQuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHJlbW92ZUV4dGVybmFsVXNlcklkKCk6IHZvaWQge31cblxuICAvKipcbiAgICogQWRkIGEgdHJpZ2dlci4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IE9iamVjdH0gdmFsdWUgVmFsdWUgZm9yIHRoZSB0cmlnZ2VyLiBTdHJpbmcgb3IgbnVtYmVyIHJlY29tbWVuZGVkLiBPYmplY3QgcGFzc2VkIGluIHdpbGwgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIGFkZFRyaWdnZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3QpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG1hcCBvZiB0cmlnZ2Vycy4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0Pn0gdHJpZ2dlcnMgQWxsb3dzIHlvdSB0byBzZXQgbXVsdGlwbGUgdHJpZ2dlciBrZXkvdmFsdWUgcGFpcnMgc2ltdWx0YW5lb3VzbHkuIFBhc3MgYSBqc29uIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBsaWtlOiBge1wia2V5XCI6IFwidmFsdWVcIiwgXCJrZXkyXCI6IFwidmFsdWUyXCJ9YC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICBhZGRUcmlnZ2Vycyh0cmlnZ2VyczogT2JqZWN0KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc2luZ2xlIHRyaWdnZXIgZm9yIHRoZSBnaXZlbiBrZXkuIE1heSBzaG93IGFuIEluLUFwcCBNZXNzYWdlIGlmIGl0cyB0cmlnZ2VyIGNvbmRpdGlvbnMgd2VyZSBtZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IGZvciB0cmlnZ2VyIHRvIHJlbW92ZS5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICByZW1vdmVUcmlnZ2VyRm9yS2V5KGtleTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgbGlzdCBvZiB0cmlnZ2VycyBiYXNlZCBvbiBhIGNvbGxlY3Rpb24gKGFycmF5KSBvZiBrZXlzLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBrZXlzIFJlbW92ZXMgYSBjb2xsZWN0aW9uIG9mIHRyaWdnZXJzIGZyb20gdGhlaXIga2V5cy4gUGFzcyBhbiBhcnJheSBvZiB0cmlnZ2VyIGtleXMgbGlrZTogYFtcImtleTFcIiwgXCJrZXkyXCIsIFwia2V5M1wiXWAuXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgcmVtb3ZlVHJpZ2dlcnNGb3JLZXlzKGtleXM6IHN0cmluZ1tdKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdHJpZ2dlciB2YWx1ZSBmb3IgYSBwcm92aWRlZCB0cmlnZ2VyIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRyaWdnZXIgdG8gZ2V0IHZhbHVlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+fSBSZXR1cm4gdmFsdWUgc2V0IHdpdGggYGFkZFRyaWdnZXJgLCBvciBgbnVsbGAvYG5pbGAgKGlPUykgaWYgbmV2ZXIgc2V0IG9yIHJlbW92ZWQuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldFRyaWdnZXJWYWx1ZUZvcktleShrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gdGVtcG9yYXJpbHkgcGF1c2UgYWxsIEluLUFwcCBNZXNzYWdlcy4gWW91IG1heSB3YW50IHRvIGRvIHRoaXMgd2hpbGUgdGhlIHVzZXIgaXMgZW5nYWdlZCBpbiBhbiBhY3Rpdml0eSB0aGF0IHlvdSBkb24ndCB3YW50IGEgbWVzc2FnZSB0byBpbnRlcnJ1cHQgKHN1Y2ggYXMgd2F0Y2hpbmcgYSB2aWRlbykuXG4gICAqIEFuIEluLUFwcCBNZXNzYWdlIHRoYXQgd291bGQgZGlzcGxheSBpZiBub3QgcGF1c2VkIHdpbGwgZGlzcGxheSByaWdodCBhZnRlciByZXN1bWUgaWYgaXRzIGNvbmRpdGlvbnMgdG8gZGlzcGxheSByZW1haW5zIHNhdGlzZmllZC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBwYXVzZSBUbyBwYXVzZSwgc2V0IGB0cnVlYC4gVG8gcmVzdW1lLCBzZXQgYGZhbHNlYC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICBwYXVzZUluQXBwTWVzc2FnZXMocGF1c2U6IGJvb2xlYW4pOiB2b2lkIHt9XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvb25lc2lnbmFsL25neC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sdUNBQStDLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUEwRmxDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksc0JBYVg7QUFiRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILHVFQUFVLENBQUE7SUFDVjs7T0FFRztJQUNILHlFQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHdFQUFXLENBQUE7QUFDYixDQUFDLEVBYlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQWFqQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFhWDtBQWJELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILGlEQUFRLENBQUE7SUFDUjs7T0FFRztJQUNILDZEQUFjLENBQUE7SUFDZDs7T0FFRztJQUNILGlFQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxhQUFhLEtBQWIsYUFBYSxRQWF4QjtBQThLRCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFVLENBQUE7SUFDViwyREFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjthQXVJWSxTQUFVLFNBQVEsMEJBQTBCO0lBQ3ZEOzs7O09BSUc7SUFDSCxzQkFBc0IsR0FBRztRQUN2QixJQUFJLEVBQUUsQ0FBQztRQUNQLFVBQVUsRUFBRSxDQUFDO1FBQ2IsWUFBWSxFQUFFLENBQUM7S0FDaEIsQ0FBQztJQVVGLFNBQVMsQ0FBQyxLQUFhLEVBQUUsbUJBQTRCO0lBWXJELDBCQUEwQjtJQWMxQix3QkFBd0I7SUFZeEIseUJBQXlCO0lBcUJ6QixXQUFXLENBQUMsUUFBc0Y7SUFVbEcsT0FBTztJQVlQLDBDQUEwQztJQVkxQyxPQUFPO0lBZVAsTUFBTTtJQWNOLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQVVsQyxRQUFRLENBQUMsSUFBUztJQVNsQixTQUFTLENBQUMsR0FBVztJQVNyQixVQUFVLENBQUMsSUFBYztJQU96Qiw0QkFBNEI7SUFhNUIsYUFBYSxDQUFDLE1BQWU7SUFhN0IsV0FBVyxDQUFDLE1BQWU7SUFVM0IsaUJBQWlCLENBQUMsYUFBNEI7SUFXOUMsZUFBZSxDQUFDLE1BQWU7SUFRL0IsOEJBQThCO0lBVzlCLGdCQUFnQixDQUFDLGVBQStCO0lBVWhELGtCQUFrQixDQUFDLGNBQXNCO0lBTXpDLGNBQWM7SUFPZCxlQUFlLENBQUMsS0FBYTtJQWM3QixXQUFXLENBQUMsUUFBbUQ7SUFRL0QsaUJBQWlCLENBQUMsTUFBZTtJQWNqQyxxQkFBcUI7SUFpQnJCLHVCQUF1QjtJQVd2QixRQUFRLENBQUMsS0FBYSxFQUFFLGNBQXVCO0lBUS9DLFdBQVc7SUFpQlgsNEJBQTRCO0lBUTVCLDJCQUEyQjtJQVMzQiw2QkFBNkIsQ0FBQyxRQUFpQjtJQVMvQyxrQkFBa0IsQ0FBQyxPQUFnQjtJQVFuQywwQkFBMEIsQ0FBQyxRQUFrQjtJQVM3QyxpQkFBaUIsQ0FBQyxVQUFrQjtJQU1wQyxvQkFBb0I7SUFXcEIsVUFBVSxDQUFDLEdBQVcsRUFBRSxLQUErQjtJQVV2RCxXQUFXLENBQUMsUUFBZ0I7SUFVNUIsbUJBQW1CLENBQUMsR0FBVztJQVUvQixxQkFBcUIsQ0FBQyxJQUFjO0lBU3BDLHFCQUFxQixDQUFDLEdBQVc7SUFhakMsa0JBQWtCLENBQUMsS0FBYzt3R0FuZHRCLFNBQVM7NEdBQVQsU0FBUzs7Ozs7Ozs0RkFBVCxTQUFTO2tCQURyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZG92YSwgQXdlc29tZUNvcmRvdmFOYXRpdmVQbHVnaW4sIFBsdWdpbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBXYXMgYXBwIGluIGZvY3VzLlxuICAgKi9cbiAgaXNBcHBJbkZvY3VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdhcyBub3RpZmljYXRpb24gc2hvd24gdG8gdGhlIHVzZXIuIFdpbGwgYmUgZmFsc2UgZm9yIHNpbGVudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgc2hvd24/OiBib29sZWFuO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQW5kcm9pZCBOb3RpZmljYXRpb24gYXNzaWduZWQgdG8gdGhlIG5vdGlmaWNhdGlvbi4gQ2FuIGJlIHVzZWQgdG8gY2FuY2VsIG9yIHJlcGxhY2UgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGFuZHJvaWROb3RpZmljYXRpb25JZD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBheWxvYWQgcmVjZWl2ZWQgZnJvbSBPbmVTaWduYWwuXG4gICAqL1xuICBwYXlsb2FkPzogT1NOb3RpZmljYXRpb25QYXlsb2FkO1xuICAvKipcbiAgICogSG93IHRoZSBub3RpZmljYXRpb24gd2FzIGRpc3BsYXllZCB0byB0aGUgdXNlci4gQ2FuIGJlIHNldCB0byBgTm90aWZpY2F0aW9uYCwgYEluQXBwQWxlcnRgLCBvciBgTm9uZWAgaWYgaXQgd2FzIG5vdCBkaXNwbGF5ZWQuXG4gICAqL1xuICBkaXNwbGF5VHlwZT86IE9TRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBOb3RpZmljYXRpb24gaXMgYSBzdW1tYXJ5IG5vdGlmaWNhdGlvbiBmb3IgYSBncm91cCB0aGlzIHdpbGwgY29udGFpbiBhbGwgbm90aWZpY2F0aW9uIHBheWxvYWRzIGl0IHdhcyBjcmVhdGVkIGZyb20uXG4gICAqL1xuICBncm91cGVkTm90aWZpY2F0aW9ucz86IE9TTm90aWZpY2F0aW9uUGF5bG9hZFtdO1xuICBhcHBfaWQ/OiBzdHJpbmc7XG4gIGNvbnRlbnRzPzogYW55O1xuICBoZWFkaW5ncz86IGFueTtcbiAgaXNJb3M/OiBib29sZWFuO1xuICBpc0FuZHJvaWQ/OiBib29sZWFuO1xuICBpc1dQPzogYm9vbGVhbjtcbiAgaXNXUF9XTlM/OiBib29sZWFuO1xuICBpc0FkbT86IGJvb2xlYW47XG4gIGlzQ2hyb21lPzogYm9vbGVhbjtcbiAgaXNDaHJvbWVXZWI/OiBib29sZWFuO1xuICBpc1NhZmFyaT86IGJvb2xlYW47XG4gIGlzQW55V2ViPzogYm9vbGVhbjtcbiAgaW5jbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgZXhjbHVkZWRfc2VnbWVudHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9wbGF5ZXJfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfaW9zX3Rva2Vucz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FuZHJvaWRfcmVnX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX3dwX3VyaXM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV93cF93bnNfdXJpcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2FtYXpvbl9yZWdfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfY2hyb21lX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9jaHJvbWVfd2ViX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgYXBwX2lkcz86IHN0cmluZ1tdO1xuICB0YWdzPzogYW55W107XG4gIGlvc19iYWRnZVR5cGU/OiBzdHJpbmc7XG4gIGlvc19iYWRnZUNvdW50PzogbnVtYmVyO1xuICBpb3Nfc291bmQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfc291bmQ/OiBzdHJpbmc7XG4gIGFkbV9zb3VuZD86IHN0cmluZztcbiAgd3Bfc291bmQ/OiBzdHJpbmc7XG4gIHdwX3duc19zb3VuZD86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgYnV0dG9ucz86IGFueTtcbiAgY29sbGFwc2VfaWQ/OiBzdHJpbmc7XG4gIHNtYWxsX2ljb24/OiBzdHJpbmc7XG4gIGxhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGJpZ19waWN0dXJlPzogc3RyaW5nO1xuICBhZG1fc21hbGxfaWNvbj86IHN0cmluZztcbiAgYWRtX2xhcmdlX2ljb24/OiBzdHJpbmc7XG4gIGFkbV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX2ljb24/OiBzdHJpbmc7XG4gIGNocm9tZV9iaWdfcGljdHVyZT86IHN0cmluZztcbiAgY2hyb21lX3dlYl9pY29uPzogc3RyaW5nO1xuICBmaXJlZm94X2ljb24/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgc2VuZF9hZnRlcj86IHN0cmluZztcbiAgZGVsYXllZF9vcHRpb24/OiBzdHJpbmc7XG4gIGRlbGl2ZXJ5X3RpbWVfb2ZfZGF5Pzogc3RyaW5nO1xuICBhbmRyb2lkX2xlZF9jb2xvcj86IHN0cmluZztcbiAgYW5kcm9pZF9hY2NlbnRfY29sb3I/OiBzdHJpbmc7XG4gIGFuZHJvaWRfdmlzaWJpbGl0eT86IG51bWJlcjtcbiAgY29udGVudF9hdmFpbGFibGU/OiBib29sZWFuO1xuICBhbWF6b25fYmFja2dyb3VuZF9kYXRhPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVfaWQ/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXA/OiBzdHJpbmc7XG4gIGFuZHJvaWRfZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgYWRtX2dyb3VwPzogc3RyaW5nO1xuICBhZG1fZ3JvdXBfbWVzc2FnZT86IGFueTtcbiAgdHRsPzogbnVtYmVyO1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgaW9zX2NhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIFByaXZhY3kgc2V0dGluZyBmb3IgaG93IHRoZSBub3RpZmljYXRpb24gc2hvdWxkIGJlIHNob3duIG9uIHRoZSBsb2Nrc2NyZWVuIG9mIEFuZHJvaWQgNSsgZGV2aWNlcy5cbiAqL1xuZXhwb3J0IGVudW0gT1NMb2NrU2NyZWVuVmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBGdWxseSB2aXNpYmxlIChkZWZhdWx0KVxuICAgKi9cbiAgUHVibGljID0gMSxcbiAgLyoqXG4gICAqIENvbnRlbnRzIGFyZSBoaWRkZW5cbiAgICovXG4gIFByaXZhdGUgPSAwLFxuICAvKipcbiAgICogTm90IHNob3duXG4gICAqL1xuICBTZWNyZXQgPSAtMSxcbn1cblxuLyoqXG4gKiBIb3cgdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBQYXJ0IG9mIE9TTm90aWZpY2F0aW9uLiBTZWUgaW5Gb2N1c0Rpc3BsYXlpbmcgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gT1NEaXNwbGF5VHlwZSB7XG4gIC8qKlxuICAgKiBub3RpZmljYXRpb24gaXMgc2lsZW50LCBvciBpbkZvY3VzRGlzcGxheWluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIE5vbmUgPSAwLFxuICAvKipcbiAgICogKCoqREVGQVVMVCoqKSAtIG5hdGl2ZSBhbGVydCBkaWFsb2cgZGlzcGxheS5cbiAgICovXG4gIEluQXBwQWxlcnQgPSAxLFxuICAvKipcbiAgICogbmF0aXZlIG5vdGlmaWNhdGlvbiBkaXNwbGF5LlxuICAgKi9cbiAgTm90aWZpY2F0aW9uID0gMixcbn1cblxuLyoqXG4gKiBDb250ZW50cyBhbmQgc2V0dGluZ3Mgb2YgdGhlIG5vdGlmaWNhdGlvbiB0aGUgdXNlciByZWNlaXZlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvblBheWxvYWQge1xuICAvKipcbiAgICogT25lU2lnbmFsIG5vdGlmaWNhdGlvbiBVVUlELlxuICAgKi9cbiAgbm90aWZpY2F0aW9uSUQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogQm9keSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGFkZGl0aW9uYWwgZGF0YSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIG5vdGlmaWNhdGlvbi4gU2V0IG9uIHRoZSBkYXNoYm9hcmQgdW5kZXIgT3B0aW9ucyA+IEFkZGl0aW9uYWwgRGF0YVxuICAgKiBvciB3aXRoIHRoZSAnZGF0YScgZmllbGQgb24gdGhlIFJFU1QgQVBJLlxuICAgKi9cbiAgYWRkaXRpb25hbERhdGE/OiBhbnk7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBTbWFsbCBpY29uIHJlc291cmNlIG5hbWUgc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBzbWFsbEljb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBMYXJnZSBpY29uIHNldCBvbiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgbGFyZ2VJY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQmlnIHBpY3R1cmUgaW1hZ2Ugc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBiaWdQaWN0dXJlPzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gQWNjZW50IGNvbG9yIHNob3duIGFyb3VuZCBzbWFsbCBub3RpZmljYXRpb24gaWNvbiBvbiBBbmRyb2lkIDUrIGRldmljZXMuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgc21hbGxJY29uQWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVUkwgdG8gb3BlbiB3aGVuIG9wZW5pbmcgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGxhdW5jaFVSTD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNvdW5kIHJlc291cmNlIHRvIHBsYXkgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIHNob3duLlxuICAgKi9cbiAgc291bmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIERldmljZXMgdGhhdCBoYXZlIGEgbm90aWZpY2F0aW9uIExFRCB3aWxsIGJsaW5rIGluIHRoaXMgY29sb3IuIEFSR0IgZm9ybWF0LlxuICAgKi9cbiAgbGVkQ29sb3I/OiBzdHJpbmc7XG4gIGxvY2tTY3JlZW5WaXNpYmlsaXR5PzogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eTtcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIE5vdGlmaWNhdGlvbnMgd2l0aCB0aGlzIHNhbWUga2V5IHdpbGwgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBhIHNpbmdsZSBzdW1tYXJ5IG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGdyb3VwS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gU3VtbWFyeSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgc3VtbWFyeSBub3RpZmljYXRpb24uXG4gICAqL1xuICBncm91cE1lc3NhZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBhY3Rpb25CdXR0b25zOiBPU0FjdGlvbkJ1dHRvbltdO1xuICAvKipcbiAgICogQU5EUk9JRCoqIC0gVGhlIEdvb2dsZSBwcm9qZWN0IG51bWJlciB0aGUgbm90aWZpY2F0aW9uIHdhcyBzZW50IHVuZGVyLlxuICAgKi9cbiAgZnJvbVByb2plY3ROdW1iZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIGJhY2tncm91bmRJbWFnZUxheW91dD86IE9TQmFja2dyb3VuZEltYWdlTGF5b3V0O1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGJ1dHRvbnMgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJhd1BheWxvYWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NBY3Rpb25CdXR0b24ge1xuICAvKipcbiAgICogSWQgYXNzaWduZWQgdG8gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IHNob3cgb24gdGhlIGJ1dHRvbiB0byB0aGUgdXNlci5cbiAgICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFORFJPSUQqKiAtIEljb24gc2hvd24gb24gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBPU1Blcm1pc3Npb25TdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN0YXRlIHtcbiAgLyoqXG4gICAqIFVzZXIgd2FzIHByb21wdGVkLlxuICAgKi9cbiAgaGFzUHJvbXB0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0dXMgKGlPUyBPbmx5KVxuICAgKi9cbiAgc3RhdHVzOiBhbnk7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBTdGF0ZSAoQW5kcm9pZCBPbmx5KVxuICAgKi9cbiAgc3RhdGU6IGFueTtcbn1cblxuLyoqXG4gKiBPU1N1YnNjcmlwdGlvblN0YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NTdWJzY3JpcHRpb25TdGF0ZSB7XG4gIHN1YnNjcmliZWQ6IGJvb2xlYW47XG4gIHVzZXJTdWJzY3JpcHRpb25TZXR0aW5nOiBhbnk7XG4gIHVzZXJJZDogYW55O1xuICBwdXNoVG9rZW46IGFueTtcbn1cblxuLyoqXG4gKiBTdWJzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zIHN0YXR1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlIHtcbiAgLyoqXG4gICAqIElkIGFzc2lnbmVkIHRvIHRoZSBidXR0b24uXG4gICAqL1xuICBwZXJtaXNzaW9uU3RhdHVzOiBPU1Blcm1pc3Npb25TdGF0ZTtcbiAgLyoqXG4gICAqIFRleHQgc2hvdyBvbiB0aGUgYnV0dG9uIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgc3Vic2NyaXB0aW9uU3RhdHVzOiBPU1N1YnNjcmlwdGlvblN0YXRlO1xufVxuXG4vKipcbiAqIEFORFJPSUQqKiAtIElmIGEgYmFja2dyb3VuZCBpbWFnZSB3YXMgc2V0LCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU0JhY2tncm91bmRJbWFnZUxheW91dCB7XG4gIC8qKlxuICAgKiBJbWFnZSBVUkwgb3IgbmFtZSB1c2VkIGFzIHRoZSBiYWNrZ3JvdW5kIGltYWdlLlxuICAgKi9cbiAgaW1hZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIHRpdGxlIG9uIHRoZSBub3RpZmljYXRpb24uIEFSR0IgRm9ybWF0LlxuICAgKi9cbiAgdGl0bGVUZXh0Q29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgY29sb3Igb2YgdGhlIGJvZHkgb24gdGhlIG5vdGlmaWNhdGlvbi4gQVJHQiBGb3JtYXQuXG4gICAqL1xuICBib2R5VGV4dENvbG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYSBub3RpZmljYXRpb24gdGhlIHVzZXIgcmVjZWl2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NOb3RpZmljYXRpb25PcGVuZWRSZXN1bHQge1xuICBhY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBXYXMgdGhlIG5vdGlmaWNhdGlvbiBvcGVuZWQgbm9ybWFsbHkgKGBPcGVuZWRgKSBvciB3YXMgYSBidXR0b24gcHJlc3NlZCBvbiB0aGUgbm90aWZpY2F0aW9uIChgQWN0aW9uVGFrZW5gKS5cbiAgICAgKi9cbiAgICB0eXBlOiBPU0FjdGlvblR5cGU7XG4gICAgLyoqXG4gICAgICogSWYgYHR5cGVgID09IGBBY3Rpb25UYWtlbmAgdGhlbiB0aGlzIHdpbGwgY29udGFpbiB0aGUgaWQgb2YgdGhlIGJ1dHRvbiBwcmVzc2VkLlxuICAgICAqL1xuICAgIGFjdGlvbklEPzogc3RyaW5nO1xuICB9O1xuICBub3RpZmljYXRpb246IE9TTm90aWZpY2F0aW9uO1xufVxuXG5leHBvcnQgZW51bSBPU0FjdGlvblR5cGUge1xuICBPcGVuZWQgPSAwLFxuICBBY3Rpb25UYWtlID0gMSxcbn1cblxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBJbi1BcHAgTWVzc2FnZSBhY3Rpb24gZWxlbWVudCAoYnV0dG9uIG9yIGltYWdlKSB0aGF0IHdhcyB0YXBwZWQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NJbkFwcE1lc3NhZ2VBY3Rpb24ge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY2xpY2sgbmFtZSBkZWZpbmVkIGZvciB0aGUgYWN0aW9uIGVsZW1lbnQuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja19uYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBVUkwgdGhhdCBvcGVucyB3aGVuIHRoZSBhY3Rpb24gdGFrZXMgcGxhY2UuIG51bGwgb3IgbmlsIChpT1MpIGlmIG5vdCBzZXQuXG4gICAqL1xuICBjbGlja191cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoZSB1c2VyIGhhcyBwcmVzc2VkIGFueSBhY3Rpb24gb24gdGhlIEluLUFwcCBNZXNzYWdlLlxuICAgKi9cbiAgZmlyc3RfY2xpY2s6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIGFuaW1hdGUgb2ZmIHRoZSBzY3JlZW4uIElmIGBmYWxzZWAsIHRoZSBJbi1BcHAgTWVzc2FnZSB3aWxsIHN0YXkgb24gc2NyZWVuIHVudGlsIHRoZSB1c2VyIGRpc21pc3NlcyBpdC5cbiAgICovXG4gIGNsb3Nlc19tZXNzYWdlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBuYW1lIE9uZVNpZ25hbFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgT25lU2lnbmFsIHBsdWdpbiBpcyBhbiBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIHVzaW5nIHRoZSBbT25lU2lnbmFsXShodHRwczovL29uZXNpZ25hbC5jb20vKSBTZXJ2aWNlLlxuICogT25lU2lnbmFsIGlzIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIGZvciBkZWxpdmVyaW5nIHB1c2ggbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBQbGVhc2UgdmlldyB0aGUgb2ZmaWNpYWwgW09uZVNpZ25hbCBJb25pYyBTREsgSW5zdGFsbGF0aW9uXShodHRwczovL2RvY3VtZW50YXRpb24ub25lc2lnbmFsLmNvbS9kb2NzL2lvbmljLXNkay1zZXR1cCkgZ3VpZGVcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqICMjIyMgSWNvbnNcbiAqIElmIHlvdSB3YW50IHRvIHVzZSBnZW5lcmF0ZWQgaWNvbnMgd2l0aCBjb21tYW5kIGBpb25pYyBjb3Jkb3ZhIHJlc291cmNlc2A6XG4gKlxuICogMS4gQWRkIGEgZmlsZSB0byB5b3VyIGBob29rc2AgZGlyZWN0b3J5IGNhbGxlZCBgY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqXG4gKiAyLiBDb25maWd1cmUgdGhlIGhvb2sgaW4geW91ciBjb25maWcueG1sXG4gKiBgYGBcbiAqICAgICA8cGxhdGZvcm0gbmFtZT1cImFuZHJvaWRcIj5cbiAqICAgICAgICAgPGhvb2sgdHlwZT1cImFmdGVyX3ByZXBhcmVcIiBzcmM9XCJob29rcy9jb3B5X2FuZHJvaWRfbm90aWZpY2F0aW9uX2ljb25zLmpzXCIgLz5cbiAqICAgICA8L3BsYXRmb3JtPlxuICogYGBgXG4gKlxuICogMy4gUHV0IHRoZSBmb2xsb3dpbmcgY29kZSBpbiBpdDpcbiAqXG4gKiBgYGBcbiAqICMhL3Vzci9iaW4vZW52IG5vZGVcbiAqXG4gKiB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuICogdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4gKlxuICogdmFyIGZpbGVzdG9jb3B5ID0gW3tcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUtaGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUtaGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLW1kcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLW1kcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14aGRwaS1pY29uLnBuZ1wiOlxuICogICAgICAgICBcInBsYXRmb3Jtcy9hbmRyb2lkL2FwcC9zcmMvbWFpbi9yZXMvZHJhd2FibGUteGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4aGRwaS9pY19zdGF0X29uZXNpZ25hbF9kZWZhdWx0LnBuZ1wiXG4gKiB9LCB7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLXh4eGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXh4eGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSBdO1xuICpcbiAqIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICpcbiAqICAgICAvLyBubyBuZWVkIHRvIGNvbmZpZ3VyZSBiZWxvd1xuICogICAgIHZhciByb290ZGlyID0gY29udGV4dC5vcHRzLnByb2plY3RSb290O1xuICpcbiAqICAgICBmaWxlc3RvY29weS5mb3JFYWNoKGZ1bmN0aW9uKG9iaikge1xuICogICAgICAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gKiAgICAgICAgICAgICB2YXIgdmFsID0gb2JqW2tleV07XG4gKiAgICAgICAgICAgICB2YXIgc3JjZmlsZSA9IHBhdGguam9pbihyb290ZGlyLCBrZXkpO1xuICogICAgICAgICAgICAgdmFyIGRlc3RmaWxlID0gcGF0aC5qb2luKHJvb3RkaXIsIHZhbCk7XG4gKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvcHlpbmcgXCIrc3JjZmlsZStcIiB0byBcIitkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICB2YXIgZGVzdGRpciA9IHBhdGguZGlybmFtZShkZXN0ZmlsZSk7XG4gKiAgICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzcmNmaWxlKSAmJiBmcy5leGlzdHNTeW5jKGRlc3RkaXIpKSB7XG4gKiAgICAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbShzcmNmaWxlKS5waXBlKFxuICogICAgICAgICAgICAgICAgICAgICBmcy5jcmVhdGVXcml0ZVN0cmVhbShkZXN0ZmlsZSkpO1xuICogICAgICAgICAgICAgfVxuICogICAgICAgICB9KTtcbiAqICAgICB9KTtcbiAqXG4gKiB9O1xuICogYGBgXG4gKlxuICogMy4gRnJvbSB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgbWFrZSB0aGUgZmlsZSBleGVjdXRhYmxlOlxuICogYCQgY2htb2QgK3ggaG9va3MvY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc2BcbiAqIEB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgT25lU2lnbmFsIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL29uZXNpZ25hbC9uZ3gnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgb25lU2lnbmFsOiBPbmVTaWduYWwpIHsgfVxuICpcbiAqIC4uLlxuICpcbiAqIHRoaXMub25lU2lnbmFsLnN0YXJ0SW5pdCgnYjJmN2Y5NjYtZDhjYy0xMWU0LWJlZDEtZGY4ZjA1YmU1NWJhJywgJzcwMzMyMjc0NDI2MScpO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmluRm9jdXNEaXNwbGF5aW5nKHRoaXMub25lU2lnbmFsLk9TSW5Gb2N1c0Rpc3BsYXlPcHRpb24uSW5BcHBBbGVydCk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICogIC8vIGRvIHNvbWV0aGluZyB3aGVuIG5vdGlmaWNhdGlvbiBpcyByZWNlaXZlZFxuICogfSk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAqICAgLy8gZG8gc29tZXRoaW5nIHdoZW4gYSBub3RpZmljYXRpb24gaXMgb3BlbmVkXG4gKiB9KTtcbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5lbmRJbml0KCk7XG4gKiBgYGBcbiAqIEBpbnRlcmZhY2VzXG4gKiBPU05vdGlmaWNhdGlvblxuICogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eVxuICogT1NEaXNwbGF5VHlwZVxuICogT1NOb3RpZmljYXRpb25QYXlsb2FkXG4gKiBPU0FjdGlvbkJ1dHRvblxuICogT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXRcbiAqIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0XG4gKiBPU0FjdGlvblR5cGVcbiAqIE9TSW5BcHBNZXNzYWdlQWN0aW9uXG4gKi9cbkBQbHVnaW4oe1xuICBwbHVnaW5OYW1lOiAnT25lU2lnbmFsJyxcbiAgcGx1Z2luOiAnb25lc2lnbmFsLWNvcmRvdmEtcGx1Z2luJyxcbiAgcGx1Z2luUmVmOiAncGx1Z2lucy5PbmVTaWduYWwnLFxuICByZXBvOiAnaHR0cHM6Ly9naXRodWIuY29tL09uZVNpZ25hbC9PbmVTaWduYWwtQ29yZG92YS1TREsnLFxuICBwbGF0Zm9ybXM6IFsnQW1hem9uIEZpcmUgT1MnLCAnQW5kcm9pZCcsICdpT1MnLCAnV2luZG93cyddLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVTaWduYWwgZXh0ZW5kcyBBd2Vzb21lQ29yZG92YU5hdGl2ZVBsdWdpbiB7XG4gIC8qKlxuICAgKiBjb25zdGFudHMgdG8gdXNlIGluIGluRm9jdXNEaXNwbGF5aW5nKClcbiAgICpcbiAgICogQGhpZGRlblxuICAgKi9cbiAgT1NJbkZvY3VzRGlzcGxheU9wdGlvbiA9IHtcbiAgICBOb25lOiAwLFxuICAgIEluQXBwQWxlcnQ6IDEsXG4gICAgTm90aWZpY2F0aW9uOiAyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gT25jZSB5b3UgYXJlIGRvbmUgY29uZmlndXJpbmcgT25lU2lnbmFsLCBjYWxsIHRoZSBgZW5kSW5pdGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCBZb3VyIE9uZVNpZ25hbCBhcHAgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdvb2dsZVByb2plY3ROdW1iZXIgKipBTkRST0lEKiogLSB5b3VyIEdvb2dsZSBwcm9qZWN0IG51bWJlcjsgb25seSByZXF1aXJlZCBmb3IgQW5kcm9pZCBHQ00vRkNNIHB1c2hlcy5cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzdGFydEluaXQoYXBwSWQ6IHN0cmluZywgZ29vZ2xlUHJvamVjdE51bWJlcj86IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIHJ1biB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB3aGV0aGVyIGl0IHdhcyBkaXNwbGF5ZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPbmVTaWduYWxSZWNlaXZlZE5vdGlmaWNhdGlvbj59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBydW4gd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyB0YXBwZWQgb24gZnJvbSB0aGUgbm90aWZpY2F0aW9uIHNoYWRlICgqKkFORFJPSUQqKikgb3Igbm90aWZpY2F0aW9uXG4gICAqIGNlbnRlciAoKippT1MqKiksIG9yIHdoZW4gY2xvc2luZyBhbiBBbGVydCBub3RpZmljYXRpb24gc2hvd24gaW4gdGhlIGFwcCAoaWYgSW5BcHBBbGVydCBpcyBlbmFibGVkIGluXG4gICAqIGluRm9jdXNEaXNwbGF5aW5nKS5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T25lU2lnbmFsT3BlbmVkTm90aWZpY2F0aW9uPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBoYW5kbGVOb3RpZmljYXRpb25PcGVuZWQoKTogT2JzZXJ2YWJsZTxPU05vdGlmaWNhdGlvbk9wZW5lZFJlc3VsdD4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdG8gcHJvY2VzcyBhbiBJbi1BcHAgTWVzc2FnZSB0aGUgdXNlciBqdXN0IHRhcHBlZCBvbi5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8T1NJbkFwcE1lc3NhZ2VBY3Rpb24+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGhhbmRsZUluQXBwTWVzc2FnZUNsaWNrZWQoKTogT2JzZXJ2YWJsZTxPU0luQXBwTWVzc2FnZUFjdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBpT1MqKiAtIFNldHRpbmdzIGZvciBpT1MgYXBwc1xuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3NcbiAgICogIGtPU1NldHRpbmdzS2V5QXV0b1Byb21wdDogYm9vbGVhbiA9IHRydWVcbiAgICogIEF1dG8gcHJvbXB0IHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogIGtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkw6IGJvb2xlYW4gPSBmYWxzZVxuICAgKiAgTGF1bmNoIG5vdGlmaWNhdGlvbnMgd2l0aCBhIGxhdW5jaCBVUkwgYXMgYW4gaW4gYXBwIHdlYnZpZXcuXG4gICAqIEBwYXJhbSBzZXR0aW5ncy5rT1NTZXR0aW5nc0tleUF1dG9Qcm9tcHRcbiAgICogQHBhcmFtIHNldHRpbmdzLmtPU1NldHRpbmdzS2V5SW5BcHBMYXVuY2hVUkxcbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgaU9TU2V0dGluZ3Moc2V0dGluZ3M6IHsga09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0OiBib29sZWFuOyBrT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMOiBib29sZWFuIH0pOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRJbml0YCB0byBjb21wbGV0ZSBpbml0aWFsaXphdGlvbiBvZiBPbmVTaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5kSW5pdCgpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy4gQ2FsbGJhY2sgZmlyZXMgYXMgc29vbiBhcyB0aGUgdXNlciBhY2NlcHRzIG9yIGRlY2xpbmVzIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgcHJvbXB0Rm9yUHVzaE5vdGlmaWNhdGlvbnNXaXRoVXNlclJlc3BvbnNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGFncyB0aGF0IGhhdmUgYmVlbiBzZXQgb24gdGhlIHVzZXIgZnJvbSB0aGUgT25lU2lnbmFsIHNlcnZlci5cbiAgICpcbiAgICogUXVpcmsqKjogWW91IG11c3Qgd2FpdCBmb3IgYGdldFRhZ3NgIHRvIHJlc29sdmUgYmVmb3JlIGNhbGxpbmcgaXQgYWdhaW4sIGFzIHRoZSBwbHVnaW4gd2lsbCBvbmx5IHByb2Nlc3MgdGhlIGxhc3QgbWV0aG9kIGNhbGwgYW5kIGRpc2NhcmQgYW55IHByZXZpb3VzIG9uZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0YWdzIGFyZSByZWNpZXZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VGFncygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXRzIHlvdSByZXRyaWV2ZSB0aGUgT25lU2lnbmFsIHVzZXIgaWQgYW5kIGRldmljZSB0b2tlbi5cbiAgICogWW91ciBoYW5kbGVyIGlzIGNhbGxlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHdpdGggT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBkZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLlxuICAgKlxuICAgKiAgdXNlcklkIHtzdHJpbmd9IE9uZVNpZ25hbCB1c2VySWQgaXMgYSBVVUlEIGZvcm1hdHRlZCBzdHJpbmcuICh1bmlxdWUgcGVyIGRldmljZSBwZXIgYXBwKVxuICAgKlxuICAgKiAgcHVzaFRva2VuIHtzdHJpbmd9IEEgcHVzaCB0b2tlbiBpcyBhIEdvb2dsZS9BcHBsZSBhc3NpZ25lZCBpZGVudGlmaWVyKHVuaXF1ZSBwZXIgZGV2aWNlIHBlciBhcHApLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRJZHMoKTogUHJvbWlzZTx7IHVzZXJJZDogc3RyaW5nOyBwdXNoVG9rZW46IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRhZyBhIHVzZXIgYmFzZWQgb24gYW4gYXBwIGV2ZW50IG9mIHlvdXIgY2hvb3Npbmcgc28gbGF0ZXIgeW91IGNhbiBjcmVhdGUgc2VnbWVudHMgb24gW29uZXNpZ25hbC5jb21dKGh0dHBzOi8vb25lc2lnbmFsLmNvbS8pIHRvIHRhcmdldCB0aGVzZSB1c2Vycy5cbiAgICogUmVjb21tZW5kIHVzaW5nIHNlbmRUYWdzIG92ZXIgc2VuZFRhZyBpZiB5b3UgbmVlZCB0byBzZXQgbW9yZSB0aGFuIG9uZSB0YWcgb24gYSB1c2VyIGF0IGEgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSBvZiB5b3VyIGNob29zaW5nIHRvIGNyZWF0ZSBvciB1cGRhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBWYWx1ZSB0byBzZXQgb24gdGhlIGtleS4gTk9URTogUGFzc2luZyBpbiBhIGJsYW5rIFN0cmluZyBkZWxldGVzIHRoZSBrZXksIHlvdSBjYW4gYWxzbyBjYWxsIGRlbGV0ZVRhZy5cbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZW5kVGFnKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBUYWcgYSB1c2VyIGJhc2VkIG9uIGFuIGFwcCBldmVudCBvZiB5b3VyIGNob29zaW5nIHNvIGxhdGVyIHlvdSBjYW4gY3JlYXRlIHNlZ21lbnRzIG9uIFtvbmVzaWduYWwuY29tXShodHRwczovL29uZXNpZ25hbC5jb20vKSB0byB0YXJnZXQgdGhlc2UgdXNlcnMuXG4gICAqIFJlY29tbWVuZCB1c2luZyBzZW5kVGFncyBvdmVyIHNlbmRUYWcgaWYgeW91IG5lZWQgdG8gc2V0IG1vcmUgdGhhbiBvbmUgdGFnIG9uIGEgdXNlciBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBQYXNzIGEganNvbiBvYmplY3Qgd2l0aCBrZXkvdmFsdWUgcGFpcnMgbGlrZToge2tleTogXCJ2YWx1ZVwiLCBrZXkyOiBcInZhbHVlMlwifVxuICAgKiBAcGFyYW0ganNvblxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNlbmRUYWdzKGpzb246IGFueSk6IHZvaWQge31cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHRhZyB0aGF0IHdhcyBwcmV2aW91c2x5IHNldCBvbiBhIHVzZXIgd2l0aCBgc2VuZFRhZ2Agb3IgYHNlbmRUYWdzYC4gVXNlIGBkZWxldGVUYWdzYCBpZiB5b3UgbmVlZCB0byBkZWxldGUgbW9yZSB0aGFuIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IEtleSB0byByZW1vdmUuXG4gICAqIEBwYXJhbSBrZXlcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBkZWxldGVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGFncyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXQgb24gYSB1c2VyIHdpdGggYHNlbmRUYWdgIG9yIGBzZW5kVGFnc2AuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IEtleXMgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0ga2V5c1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGRlbGV0ZVRhZ3Moa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhpcyB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIHByb21wdCBhbiBpT1MgdXNlciB0byBhY2NlcHQgcHVzaCBub3RpZmljYXRpb25zIHdpdGggdGhlIGRlZmF1bHQgc3lzdGVtIHByb21wdC5cbiAgICogT25seSB3b3JrcyBpZiB5b3Ugc2V0IGBrT1NTZXR0aW5nc0F1dG9Qcm9tcHRgIHRvIGBmYWxzZWAgaW4gYGlPU1NldHRpbmdzYFxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHJlZ2lzdGVyRm9yUHVzaE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgYWx3YXlzIHZpYnJhdGVzIHRoZSBkZXZpY2Ugd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBkaXNwbGF5ZWQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgaW4gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgbGlnaHRseSB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gaXQncyB2aWJyYXRlIG9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHZpYnJhdGUsIHRydWUgdG8gcmUtZW5hYmxlIGl0LlxuICAgKiBAcGFyYW0gZW5hYmxlXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5hYmxlVmlicmF0ZShlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFdhcm5pbmc6XG4gICAqIE9ubHkgYXBwbGllcyB0byBBbmRyb2lkIGFuZCBBbWF6b24uIFlvdSBjYW4gY2FsbCB0aGlzIGZyb20geW91ciBVSSBmcm9tIGEgYnV0dG9uIHByZXNzIGZvciBleGFtcGxlIHRvIGdpdmUgeW91ciB1c2VyJ3Mgb3B0aW9ucyBmb3IgeW91ciBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IE9uZVNpZ25hbCBwbGF5cyB0aGUgc3lzdGVtJ3MgZGVmYXVsdCBub3RpZmljYXRpb24gc291bmQgd2hlbiB0aGUgZGV2aWNlJ3Mgbm90aWZpY2F0aW9uIHN5c3RlbSB2b2x1bWUgaXMgdHVybmVkIG9uLlxuICAgKiBQYXNzaW5nIGZhbHNlIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG9ubHkgdmlicmF0ZSB1bmxlc3MgdGhlIGRldmljZSBpcyBzZXQgdG8gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHNvdW5kLCB0cnVlIHRvIHJlLWVuYWJsZSBpdC5cbiAgICogQHBhcmFtIGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuYWJsZVNvdW5kKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICpcbiAgICogU2V0dGluZyB0byBjb250cm9sIGhvdyBPbmVTaWduYWwgbm90aWZpY2F0aW9ucyB3aWxsIGJlIHNob3duIHdoZW4gb25lIGlzIHJlY2VpdmVkIHdoaWxlIHlvdXIgYXBwIGlzIGluIGZvY3VzLiBCeSBkZWZhdWx0IHRoaXMgaXMgc2V0IHRvIGluQXBwQWxlcnQsIHdoaWNoIGNhbiBiZSBoZWxwZnVsIGR1cmluZyBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtEaXNwbGF5VHlwZX0gZGlzcGxheU9wdGlvblxuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGluRm9jdXNEaXNwbGF5aW5nKGRpc3BsYXlPcHRpb246IE9TRGlzcGxheVR5cGUpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBmYWxzZSB0byBvcHQgdXNlcnMgb3V0IG9mIHJlY2VpdmluZyBhbGwgbm90aWZpY2F0aW9ucyB0aHJvdWdoIE9uZVNpZ25hbC5cbiAgICogWW91IGNhbiBwYXNzIHRydWUgbGF0ZXIgdG8gb3B0IHVzZXJzIGJhY2sgaW50byBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldFN1YnNjcmlwdGlvbihlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBub3RpZmljYXRpb24gYW5kIHBlcm1pc3Npb24gc3RhdGUuIFJldHVybnMgYSBPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZSB0eXBlIGRlc2NyaWJlZCBiZWxvdy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8T1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGU+fVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGUoKTogUHJvbWlzZTxPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge25vdGlmaWNhdGlvbk9ian0gUGFyYW1ldGVycyBzZWUgUE9TVCBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9uZXNpZ25hbC5jb20vdjIuMC9kb2NzL25vdGlmaWNhdGlvbnMtY3JlYXRlLW5vdGlmaWNhdGlvbilcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbk9ialxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBub3RpZmljYXRpb24gd2FzIHNlbmQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBwb3N0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk9iajogT1NOb3RpZmljYXRpb24pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGEgc2luZ2xlIE9uZVNpZ25hbCBub3RpZmljYXRpb24gYmFzZWQgb24gaXRzIEFuZHJvaWQgbm90aWZpY2F0aW9uIGludGVnZXIgaWQuIFVzZSBpbnN0ZWFkIG9mIE5vdGlmaWNhdGlvbk1hbmFnZXIuY2FuY2VsKGlkKTsgb3RoZXJ3aXNlIHRoZSBub3RpZmljYXRpb24gd2lsbCBiZSByZXN0b3JlZCB3aGVuIHlvdXIgYXBwIGlzIHJlc3RhcnRlZC5cbiAgICpcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkIHtzdHJpbmd9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgY2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFByb21wdHMgdGhlIHVzZXIgZm9yIGxvY2F0aW9uIHBlcm1pc3Npb24gdG8gYWxsb3cgZ2VvdGFnZ2luZyBiYXNlZCBvbiB0aGUgXCJMb2NhdGlvbiByYWRpdXNcIiBmaWx0ZXIgb24gdGhlIE9uZVNpZ25hbCBkYXNoYm9hcmQuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgcHJvbXB0TG9jYXRpb24oKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZW1haWwge3N0cmluZ31cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzeW5jSGFzaGVkRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQge31cblxuICAvKipcbiAgICogRW5hYmxlIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBpZiB5b3UgcnVuIGludG8gYW4gaXNzdWUgc2V0dGluZyB1cCBPbmVTaWduYWwuXG4gICAqIFRoZSBsb2dnaW5nIGxldmVscyBhcmUgYXMgZm9sbG93czogMCA9IE5vbmUsIDE9IEZhdGFsLCAyID0gRXJyb3JzLCAzID0gV2FybmluZ3MsIDQgPSBJbmZvLCA1ID0gRGVidWcsIDYgPSBWZXJib3NlXG4gICAqXG4gICAqIFRoZSBoaWdoZXIgdGhlIHZhbHVlIHRoZSBtb3JlIGluZm9ybWF0aW9uIGlzIHNob3duLlxuICAgKlxuICAgKiBAcGFyYW0ge2xvZ2xldmVsfSBjb250YWlucyB0d28gcHJvcGVydGllczogbG9nTGV2ZWwgKGZvciBjb25zb2xlIGxvZ2dpbmcpIGFuZCB2aXN1YWxMZXZlbCAoZm9yIGRpYWxvZyBtZXNzYWdlcylcbiAgICogQHBhcmFtIGxvZ0xldmVsXG4gICAqIEBwYXJhbSBsb2dMZXZlbC5sb2dMZXZlbFxuICAgKiBAcGFyYW0gbG9nTGV2ZWwudmlzdWFsTGV2ZWxcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRMb2dMZXZlbChsb2dMZXZlbDogeyBsb2dMZXZlbDogbnVtYmVyOyB2aXN1YWxMZXZlbDogbnVtYmVyIH0pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgb3IgZW5hYmxlIGxvY2F0aW9uIGNvbGxlY3Rpb24gKERlZmF1bHRzIHRvIGVuYWJsZWQpIGlmIHlvdXIgYXBwIGhhcyBsb2NhdGlvbiBwZXJtaXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcmVkIHtib29sZWFufVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldExvY2F0aW9uU2hhcmVkKHNoYXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gcGVybWlzc2lvbiBzZXR0aW5nIGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcHJvbXB0IHNob3duXG4gICAqIC0gVGhlIHVzZXIgYWNjZXB0aW5nIG9yIGRlY2xpbmluZyB0aGUgcGVybWlzc2lvbiBwcm9tcHRcbiAgICogLSBFbmFibGluZy9kaXNhYmxpbmcgbm90aWZpY2F0aW9ucyBmb3IgeW91ciBhcHAgaW4gdGhlIGRldmljZSBTZXR0aW5ncyBhZnRlciByZXR1cm5pbmcgdG8geW91ciBhcHAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkUGVybWlzc2lvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzZWQgaW4gZnVuY3Rpb24gd2lsbCBiZSBmaXJlZCB3aGVuIGEgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEdldHRpbmcgYSBwdXNoIHRva2VuIGZyb20gQXBwbGUgLyBHb29nbGUuXG4gICAqIC0gR2V0dGluZyBhIHBsYXllciAvIHVzZXIgaWQgZnJvbSBPbmVTaWduYWxcbiAgICogLSBPbmVTaWduYWwuc2V0U3Vic2NyaXB0aW9uIGlzIGNhbGxlZFxuICAgKiAtIFVzZXIgZGlzYWJsZXMgb3IgZW5hYmxlcyBub3RpZmljYXRpb25zXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgYWRkU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICogQHBhcmFtIGVtYWlsQXV0aFRva2VuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldEVtYWlsKGVtYWlsOiBzdHJpbmcsIGVtYWlsQXV0aFRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogSWYgeW91ciBhcHAgaW1wbGVtZW50cyBsb2dvdXQgZnVuY3Rpb25hbGl0eSwgeW91IGNhbiBjYWxsIGxvZ291dEVtYWlsIHRvIGRpc3NvY2lhdGUgdGhlIGVtYWlsIGZyb20gdGhlIGRldmljZVxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBsb2dvdXRFbWFpbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFzc2VkIGluIGZ1bmN0aW9uIHdpbGwgYmUgZmlyZWQgd2hlbiBhIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24gcHJvcGVydHkgY2hhbmdlcy5cbiAgICogVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGV2ZW50czpcbiAgICogLSBHZXR0aW5nIGEgcHVzaCB0b2tlbiBmcm9tIEFwcGxlIC8gR29vZ2xlLlxuICAgKiAtIEdldHRpbmcgYSBwbGF5ZXIgLyB1c2VyIGlkIGZyb20gT25lU2lnbmFsXG4gICAqIC0gT25lU2lnbmFsLnNldFN1YnNjcmlwdGlvbiBpcyBjYWxsZWRcbiAgICogLSBVc2VyIGRpc2FibGVzIG9yIGVuYWJsZXMgbm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZEVtYWlsU3Vic2NyaXB0aW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBPbmVTaWduYWwgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGNsZWFyT25lU2lnbmFsTm90aWZpY2F0aW9ucygpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gZGVsYXkgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBTREsgdW50aWwgdGhlIHVzZXIgcHJvdmlkZXMgcHJpdmFjeSBjb25zZW50LlxuICAgKiBUaGUgU0RLIHdpbGwgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkIHVudGlsIHRoZSBwcm92aWRlVXNlckNvbnNlbnQodHJ1ZSkgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByZXF1aXJlZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRSZXF1aXJlc1VzZXJQcml2YWN5Q29uc2VudChyZXF1aXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogSWYgeW91ciBhcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmVxdWlyZSB0aGUgdXNlcidzIHByaXZhY3kgY29uc2VudCwgeW91IGNhbiBwcm92aWRlIHRoaXMgY29uc2VudCB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICogVW50aWwgeW91IGNhbGwgcHJvdmlkZVVzZXJDb25zZW50KHRydWUpLCB0aGUgU0RLIHdpbGwgbm90IGZ1bGx5IGluaXRpYWxpemUgYW5kIHdpbGwgbm90IHNlbmQgYW55IGRhdGEgdG8gT25lU2lnbmFsLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyYW50ZWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcHJvdmlkZVVzZXJDb25zZW50KGdyYW50ZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSBjYWxsYmFjaywgd2hpY2ggcmV0dXJucyBhIGJvb2xlYW4gdmFyaWFibGUgaW5kaWNhdGluZyBpZiB0aGUgdXNlciBoYXMgZ2l2ZW4gcHJpdmFjeSBjb25zZW50IHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgdXNlclByb3ZpZGVkUHJpdmFjeUNvbnNlbnQoY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIHVzZSB5b3VyIG93biBzeXN0ZW0ncyB1c2VyIElEJ3MgdG8gc2VuZCBwdXNoIG5vdGlmaWNhdGlvbnMgdG8geW91ciB1c2Vycy5cbiAgICogVG8gdGllIGEgdXNlciB0byBhIGdpdmVuIHVzZXIgSUQsIHlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0ZXJuYWxJZFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRFeHRlcm5hbFVzZXJJZChleHRlcm5hbElkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgd2hhdGV2ZXIgd2FzIHNldCBhcyB0aGUgY3VycmVudCB1c2VyJ3MgZXh0ZXJuYWwgdXNlciBJRC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcmVtb3ZlRXh0ZXJuYWxVc2VySWQoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0cmlnZ2VyLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdGhlIHRyaWdnZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0fSB2YWx1ZSBWYWx1ZSBmb3IgdGhlIHRyaWdnZXIuIFN0cmluZyBvciBudW1iZXIgcmVjb21tZW5kZWQuIE9iamVjdCBwYXNzZWQgaW4gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcuXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgYWRkVHJpZ2dlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG9iamVjdCk6IHZvaWQge31cblxuICAvKipcbiAgICogQWRkIGEgbWFwIG9mIHRyaWdnZXJzLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdC48c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+fSB0cmlnZ2VycyBBbGxvd3MgeW91IHRvIHNldCBtdWx0aXBsZSB0cmlnZ2VyIGtleS92YWx1ZSBwYWlycyBzaW11bHRhbmVvdXNseS4gUGFzcyBhIGpzb24gb2JqZWN0IHdpdGgga2V5L3ZhbHVlIHBhaXJzIGxpa2U6IGB7XCJrZXlcIjogXCJ2YWx1ZVwiLCBcImtleTJcIjogXCJ2YWx1ZTJcIn1gLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIGFkZFRyaWdnZXJzKHRyaWdnZXJzOiBvYmplY3QpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzaW5nbGUgdHJpZ2dlciBmb3IgdGhlIGdpdmVuIGtleS4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRyaWdnZXIgdG8gcmVtb3ZlLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHJlbW92ZVRyaWdnZXJGb3JLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0IG9mIHRyaWdnZXJzIGJhc2VkIG9uIGEgY29sbGVjdGlvbiAoYXJyYXkpIG9mIGtleXMuIE1heSBzaG93IGFuIEluLUFwcCBNZXNzYWdlIGlmIGl0cyB0cmlnZ2VyIGNvbmRpdGlvbnMgd2VyZSBtZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGtleXMgUmVtb3ZlcyBhIGNvbGxlY3Rpb24gb2YgdHJpZ2dlcnMgZnJvbSB0aGVpciBrZXlzLiBQYXNzIGFuIGFycmF5IG9mIHRyaWdnZXIga2V5cyBsaWtlOiBgW1wia2V5MVwiLCBcImtleTJcIiwgXCJrZXkzXCJdYC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICByZW1vdmVUcmlnZ2Vyc0ZvcktleXMoa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB0cmlnZ2VyIHZhbHVlIGZvciBhIHByb3ZpZGVkIHRyaWdnZXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBmb3IgdHJpZ2dlciB0byBnZXQgdmFsdWUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IE9iamVjdD59IFJldHVybiB2YWx1ZSBzZXQgd2l0aCBgYWRkVHJpZ2dlcmAsIG9yIGBudWxsYC9gbmlsYCAoaU9TKSBpZiBuZXZlciBzZXQgb3IgcmVtb3ZlZC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0VHJpZ2dlclZhbHVlRm9yS2V5KGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3Q+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB0ZW1wb3JhcmlseSBwYXVzZSBhbGwgSW4tQXBwIE1lc3NhZ2VzLiBZb3UgbWF5IHdhbnQgdG8gZG8gdGhpcyB3aGlsZSB0aGUgdXNlciBpcyBlbmdhZ2VkIGluIGFuIGFjdGl2aXR5IHRoYXQgeW91IGRvbid0IHdhbnQgYSBtZXNzYWdlIHRvIGludGVycnVwdCAoc3VjaCBhcyB3YXRjaGluZyBhIHZpZGVvKS5cbiAgICogQW4gSW4tQXBwIE1lc3NhZ2UgdGhhdCB3b3VsZCBkaXNwbGF5IGlmIG5vdCBwYXVzZWQgd2lsbCBkaXNwbGF5IHJpZ2h0IGFmdGVyIHJlc3VtZSBpZiBpdHMgY29uZGl0aW9ucyB0byBkaXNwbGF5IHJlbWFpbnMgc2F0aXNmaWVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHBhdXNlIFRvIHBhdXNlLCBzZXQgYHRydWVgLiBUbyByZXN1bWUsIHNldCBgZmFsc2VgLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIHBhdXNlSW5BcHBNZXNzYWdlcyhwYXVzZTogYm9vbGVhbik6IHZvaWQge31cbn1cbiJdfQ==
package/ngx/package.json CHANGED
@@ -1 +1,33 @@
1
- {"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"index.js","module":"index.js","typings":"index.d.ts","author":"ionic","license":"MIT","repository":{"type":"git","url":"https://github.com/danielsogl/awesome-cordova-plugins.git"},"name":"@awesome-cordova-plugins/onesignal","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^8.0.2"},"version":"8.0.2"}
1
+ {
2
+ "description": "Awesome Cordova Plugins - Native plugins for ionic apps",
3
+ "type": "module",
4
+ "main": "./index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./index.d.ts",
10
+ "import": "./index.js",
11
+ "default": "./index.js"
12
+ },
13
+ "./ngx": {
14
+ "types": "./ngx/index.d.ts",
15
+ "import": "./ngx/index.js",
16
+ "default": "./ngx/index.js"
17
+ }
18
+ },
19
+ "sideEffects": false,
20
+ "author": "Daniel Sogl",
21
+ "license": "MIT",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/danielsogl/awesome-cordova-plugins.git"
25
+ },
26
+ "name": "@awesome-cordova-plugins/onesignal",
27
+ "dependencies": {},
28
+ "peerDependencies": {
29
+ "@awesome-cordova-plugins/core": "^9.0.1",
30
+ "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
31
+ },
32
+ "version": "9.0.1"
33
+ }
package/package.json CHANGED
@@ -1 +1,33 @@
1
- {"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"index.js","module":"index.js","typings":"index.d.ts","author":"ionic","license":"MIT","repository":{"type":"git","url":"https://github.com/danielsogl/awesome-cordova-plugins.git"},"name":"@awesome-cordova-plugins/onesignal","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^8.0.2"},"version":"8.0.2"}
1
+ {
2
+ "description": "Awesome Cordova Plugins - Native plugins for ionic apps",
3
+ "type": "module",
4
+ "main": "./index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./index.d.ts",
10
+ "import": "./index.js",
11
+ "default": "./index.js"
12
+ },
13
+ "./ngx": {
14
+ "types": "./ngx/index.d.ts",
15
+ "import": "./ngx/index.js",
16
+ "default": "./ngx/index.js"
17
+ }
18
+ },
19
+ "sideEffects": false,
20
+ "author": "Daniel Sogl",
21
+ "license": "MIT",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/danielsogl/awesome-cordova-plugins.git"
25
+ },
26
+ "name": "@awesome-cordova-plugins/onesignal",
27
+ "dependencies": {},
28
+ "peerDependencies": {
29
+ "@awesome-cordova-plugins/core": "^9.0.1",
30
+ "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
31
+ },
32
+ "version": "9.0.1"
33
+ }