@awesome-cordova-plugins/onesignal 5.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -0
- package/index.d.ts +724 -0
- package/index.js +123 -0
- package/ngx/bundle.js +119 -0
- package/ngx/index.d.ts +722 -0
- package/ngx/index.js +114 -0
- package/ngx/index.metadata.json +1 -0
- package/ngx/package.json +1 -0
- package/package.json +1 -0
package/index.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
extendStatics(d, b);
|
|
10
|
+
function __() { this.constructor = d; }
|
|
11
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
|
+
};
|
|
13
|
+
})();
|
|
14
|
+
import { AwesomeCordovaNativePlugin, cordova } from '@awesome-cordova-plugins/core';
|
|
15
|
+
import { Observable } from 'rxjs';
|
|
16
|
+
/**
|
|
17
|
+
* **ANDROID** - Privacy setting for how the notification should be shown on the lockscreen of Android 5+ devices.
|
|
18
|
+
*/
|
|
19
|
+
export var OSLockScreenVisibility;
|
|
20
|
+
(function (OSLockScreenVisibility) {
|
|
21
|
+
/**
|
|
22
|
+
* Fully visible (default)
|
|
23
|
+
*/
|
|
24
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Public"] = 1] = "Public";
|
|
25
|
+
/**
|
|
26
|
+
* Contents are hidden
|
|
27
|
+
*/
|
|
28
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Private"] = 0] = "Private";
|
|
29
|
+
/**
|
|
30
|
+
* Not shown
|
|
31
|
+
*/
|
|
32
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Secret"] = -1] = "Secret";
|
|
33
|
+
})(OSLockScreenVisibility || (OSLockScreenVisibility = {}));
|
|
34
|
+
/**
|
|
35
|
+
* How the notification was displayed to the user. Part of OSNotification. See inFocusDisplaying for more information on how this is used.
|
|
36
|
+
*/
|
|
37
|
+
export var OSDisplayType;
|
|
38
|
+
(function (OSDisplayType) {
|
|
39
|
+
/**
|
|
40
|
+
* notification is silent, or inFocusDisplaying is disabled.
|
|
41
|
+
*/
|
|
42
|
+
OSDisplayType[OSDisplayType["None"] = 0] = "None";
|
|
43
|
+
/**
|
|
44
|
+
* (**DEFAULT**) - native alert dialog display.
|
|
45
|
+
*/
|
|
46
|
+
OSDisplayType[OSDisplayType["InAppAlert"] = 1] = "InAppAlert";
|
|
47
|
+
/**
|
|
48
|
+
* native notification display.
|
|
49
|
+
*/
|
|
50
|
+
OSDisplayType[OSDisplayType["Notification"] = 2] = "Notification";
|
|
51
|
+
})(OSDisplayType || (OSDisplayType = {}));
|
|
52
|
+
export var OSActionType;
|
|
53
|
+
(function (OSActionType) {
|
|
54
|
+
OSActionType[OSActionType["Opened"] = 0] = "Opened";
|
|
55
|
+
OSActionType[OSActionType["ActionTake"] = 1] = "ActionTake";
|
|
56
|
+
})(OSActionType || (OSActionType = {}));
|
|
57
|
+
var OneSignalOriginal = /** @class */ (function (_super) {
|
|
58
|
+
__extends(OneSignalOriginal, _super);
|
|
59
|
+
function OneSignalOriginal() {
|
|
60
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
61
|
+
/**
|
|
62
|
+
* constants to use in inFocusDisplaying()
|
|
63
|
+
* @hidden
|
|
64
|
+
*/
|
|
65
|
+
_this.OSInFocusDisplayOption = {
|
|
66
|
+
None: 0,
|
|
67
|
+
InAppAlert: 1,
|
|
68
|
+
Notification: 2,
|
|
69
|
+
};
|
|
70
|
+
return _this;
|
|
71
|
+
}
|
|
72
|
+
OneSignalOriginal.prototype.startInit = function (appId, googleProjectNumber) { return cordova(this, "startInit", { "sync": true }, arguments); };
|
|
73
|
+
OneSignalOriginal.prototype.handleNotificationReceived = function () { return cordova(this, "handleNotificationReceived", { "observable": true }, arguments); };
|
|
74
|
+
OneSignalOriginal.prototype.handleNotificationOpened = function () { return cordova(this, "handleNotificationOpened", { "observable": true }, arguments); };
|
|
75
|
+
OneSignalOriginal.prototype.handleInAppMessageClicked = function () { return cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); };
|
|
76
|
+
OneSignalOriginal.prototype.iOSSettings = function (settings) { return cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); };
|
|
77
|
+
OneSignalOriginal.prototype.endInit = function () { return cordova(this, "endInit", { "sync": true }, arguments); };
|
|
78
|
+
OneSignalOriginal.prototype.promptForPushNotificationsWithUserResponse = function () { return cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); };
|
|
79
|
+
OneSignalOriginal.prototype.getTags = function () { return cordova(this, "getTags", {}, arguments); };
|
|
80
|
+
OneSignalOriginal.prototype.getIds = function () { return cordova(this, "getIds", {}, arguments); };
|
|
81
|
+
OneSignalOriginal.prototype.sendTag = function (key, value) { return cordova(this, "sendTag", { "sync": true }, arguments); };
|
|
82
|
+
OneSignalOriginal.prototype.sendTags = function (json) { return cordova(this, "sendTags", { "sync": true }, arguments); };
|
|
83
|
+
OneSignalOriginal.prototype.deleteTag = function (key) { return cordova(this, "deleteTag", { "sync": true }, arguments); };
|
|
84
|
+
OneSignalOriginal.prototype.deleteTags = function (keys) { return cordova(this, "deleteTags", { "sync": true }, arguments); };
|
|
85
|
+
OneSignalOriginal.prototype.registerForPushNotifications = function () { return cordova(this, "registerForPushNotifications", { "sync": true }, arguments); };
|
|
86
|
+
OneSignalOriginal.prototype.enableVibrate = function (enable) { return cordova(this, "enableVibrate", { "sync": true }, arguments); };
|
|
87
|
+
OneSignalOriginal.prototype.enableSound = function (enable) { return cordova(this, "enableSound", { "sync": true }, arguments); };
|
|
88
|
+
OneSignalOriginal.prototype.inFocusDisplaying = function (displayOption) { return cordova(this, "inFocusDisplaying", { "sync": true }, arguments); };
|
|
89
|
+
OneSignalOriginal.prototype.setSubscription = function (enable) { return cordova(this, "setSubscription", { "sync": true }, arguments); };
|
|
90
|
+
OneSignalOriginal.prototype.getPermissionSubscriptionState = function () { return cordova(this, "getPermissionSubscriptionState", {}, arguments); };
|
|
91
|
+
OneSignalOriginal.prototype.postNotification = function (notificationObj) { return cordova(this, "postNotification", {}, arguments); };
|
|
92
|
+
OneSignalOriginal.prototype.cancelNotification = function (notificationId) { return cordova(this, "cancelNotification", { "sync": true }, arguments); };
|
|
93
|
+
OneSignalOriginal.prototype.promptLocation = function () { return cordova(this, "promptLocation", { "sync": true }, arguments); };
|
|
94
|
+
OneSignalOriginal.prototype.syncHashedEmail = function (email) { return cordova(this, "syncHashedEmail", { "sync": true }, arguments); };
|
|
95
|
+
OneSignalOriginal.prototype.setLogLevel = function (logLevel) { return cordova(this, "setLogLevel", { "sync": true }, arguments); };
|
|
96
|
+
OneSignalOriginal.prototype.setLocationShared = function (shared) { return cordova(this, "setLocationShared", { "sync": true }, arguments); };
|
|
97
|
+
OneSignalOriginal.prototype.addPermissionObserver = function () { return cordova(this, "addPermissionObserver", { "observable": true }, arguments); };
|
|
98
|
+
OneSignalOriginal.prototype.addSubscriptionObserver = function () { return cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); };
|
|
99
|
+
OneSignalOriginal.prototype.setEmail = function (email, emailAuthToken) { return cordova(this, "setEmail", {}, arguments); };
|
|
100
|
+
OneSignalOriginal.prototype.logoutEmail = function () { return cordova(this, "logoutEmail", {}, arguments); };
|
|
101
|
+
OneSignalOriginal.prototype.addEmailSubscriptionObserver = function () { return cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); };
|
|
102
|
+
OneSignalOriginal.prototype.clearOneSignalNotifications = function () { return cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); };
|
|
103
|
+
OneSignalOriginal.prototype.setRequiresUserPrivacyConsent = function (required) { return cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); };
|
|
104
|
+
OneSignalOriginal.prototype.provideUserConsent = function (granted) { return cordova(this, "provideUserConsent", {}, arguments); };
|
|
105
|
+
OneSignalOriginal.prototype.userProvidedPrivacyConsent = function (callback) { return cordova(this, "userProvidedPrivacyConsent", {}, arguments); };
|
|
106
|
+
OneSignalOriginal.prototype.setExternalUserId = function (externalId) { return cordova(this, "setExternalUserId", {}, arguments); };
|
|
107
|
+
OneSignalOriginal.prototype.removeExternalUserId = function () { return cordova(this, "removeExternalUserId", {}, arguments); };
|
|
108
|
+
OneSignalOriginal.prototype.addTrigger = function (key, value) { return cordova(this, "addTrigger", { "sync": true }, arguments); };
|
|
109
|
+
OneSignalOriginal.prototype.addTriggers = function (triggers) { return cordova(this, "addTriggers", { "sync": true }, arguments); };
|
|
110
|
+
OneSignalOriginal.prototype.removeTriggerForKey = function (key) { return cordova(this, "removeTriggerForKey", { "sync": true }, arguments); };
|
|
111
|
+
OneSignalOriginal.prototype.removeTriggersForKeys = function (keys) { return cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); };
|
|
112
|
+
OneSignalOriginal.prototype.getTriggerValueForKey = function (key) { return cordova(this, "getTriggerValueForKey", {}, arguments); };
|
|
113
|
+
OneSignalOriginal.prototype.pauseInAppMessages = function (pause) { return cordova(this, "pauseInAppMessages", { "sync": true }, arguments); };
|
|
114
|
+
OneSignalOriginal.pluginName = "OneSignal";
|
|
115
|
+
OneSignalOriginal.plugin = "onesignal-cordova-plugin";
|
|
116
|
+
OneSignalOriginal.pluginRef = "plugins.OneSignal";
|
|
117
|
+
OneSignalOriginal.repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
|
|
118
|
+
OneSignalOriginal.platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
|
|
119
|
+
return OneSignalOriginal;
|
|
120
|
+
}(AwesomeCordovaNativePlugin));
|
|
121
|
+
var OneSignal = new OneSignalOriginal();
|
|
122
|
+
export { OneSignal };
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvb25lc2lnbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLHVDQUErQyxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUEwRmxDOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksc0JBYVg7QUFiRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILHVFQUFVLENBQUE7SUFDVjs7T0FFRztJQUNILHlFQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHdFQUFXLENBQUE7QUFDYixDQUFDLEVBYlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQWFqQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFhWDtBQWJELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILGlEQUFRLENBQUE7SUFDUjs7T0FFRztJQUNILDZEQUFjLENBQUE7SUFDZDs7T0FFRztJQUNILGlFQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxhQUFhLEtBQWIsYUFBYSxRQWF4QjtBQThLRCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFVLENBQUE7SUFDViwyREFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2Qjs7SUF5SThCLDZCQUEwQjs7O1FBQ3ZEOzs7V0FHRztRQUNILDRCQUFzQixHQUFHO1lBQ3ZCLElBQUksRUFBRSxDQUFDO1lBQ1AsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDOzs7SUFVRiw2QkFBUyxhQUFDLEtBQWEsRUFBRSxtQkFBNEI7SUFZckQsOENBQTBCO0lBYzFCLDRDQUF3QjtJQVl4Qiw2Q0FBeUI7SUFtQnpCLCtCQUFXLGFBQUMsUUFBc0Y7SUFVbEcsMkJBQU87SUFXUCw4REFBMEM7SUFZMUMsMkJBQU87SUFlUCwwQkFBTTtJQVlOLDJCQUFPLGFBQUMsR0FBVyxFQUFFLEtBQWE7SUFTbEMsNEJBQVEsYUFBQyxJQUFTO0lBUWxCLDZCQUFTLGFBQUMsR0FBVztJQVFyQiw4QkFBVSxhQUFDLElBQWM7SUFPekIsZ0RBQTRCO0lBWTVCLGlDQUFhLGFBQUMsTUFBZTtJQVk3QiwrQkFBVyxhQUFDLE1BQWU7SUFVM0IscUNBQWlCLGFBQUMsYUFBNEI7SUFXOUMsbUNBQWUsYUFBQyxNQUFlO0lBUS9CLGtEQUE4QjtJQVU5QixvQ0FBZ0IsYUFBQyxlQUErQjtJQVNoRCxzQ0FBa0IsYUFBQyxjQUFzQjtJQU16QyxrQ0FBYztJQU9kLG1DQUFlLGFBQUMsS0FBYTtJQVc3QiwrQkFBVyxhQUFDLFFBQW1EO0lBTy9ELHFDQUFpQixhQUFDLE1BQWU7SUFhakMseUNBQXFCO0lBZ0JyQiwyQ0FBdUI7SUFRdkIsNEJBQVEsYUFBQyxLQUFhLEVBQUUsY0FBdUI7SUFRL0MsK0JBQVc7SUFnQlgsZ0RBQTRCO0lBUTVCLCtDQUEyQjtJQVEzQixpREFBNkIsYUFBQyxRQUFpQjtJQVEvQyxzQ0FBa0IsYUFBQyxPQUFnQjtJQU9uQyw4Q0FBMEIsYUFBQyxRQUFrQjtJQVE3QyxxQ0FBaUIsYUFBQyxVQUFrQjtJQU1wQyx3Q0FBb0I7SUFXcEIsOEJBQVUsYUFBQyxHQUFXLEVBQUUsS0FBK0I7SUFVdkQsK0JBQVcsYUFBQyxRQUFnQjtJQVU1Qix1Q0FBbUIsYUFBQyxHQUFXO0lBVS9CLHlDQUFxQixhQUFDLElBQWM7SUFTcEMseUNBQXFCLGFBQUMsR0FBVztJQWFqQyxzQ0FBa0IsYUFBQyxLQUFjOzs7Ozs7b0JBaDNCbkM7RUF3YitCLDBCQUEwQjtTQUE1QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZG92YSwgQXdlc29tZUNvcmRvdmFOYXRpdmVQbHVnaW4sIFBsdWdpbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBXYXMgYXBwIGluIGZvY3VzLlxuICAgKi9cbiAgaXNBcHBJbkZvY3VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdhcyBub3RpZmljYXRpb24gc2hvd24gdG8gdGhlIHVzZXIuIFdpbGwgYmUgZmFsc2UgZm9yIHNpbGVudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgc2hvd24/OiBib29sZWFuO1xuICAvKipcbiAgICogKipBTkRST0lEKiogLSBBbmRyb2lkIE5vdGlmaWNhdGlvbiBhc3NpZ25lZCB0byB0aGUgbm90aWZpY2F0aW9uLiBDYW4gYmUgdXNlZCB0byBjYW5jZWwgb3IgcmVwbGFjZSB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYW5kcm9pZE5vdGlmaWNhdGlvbklkPzogbnVtYmVyO1xuICAvKipcbiAgICogUGF5bG9hZCByZWNlaXZlZCBmcm9tIE9uZVNpZ25hbC5cbiAgICovXG4gIHBheWxvYWQ/OiBPU05vdGlmaWNhdGlvblBheWxvYWQ7XG4gIC8qKlxuICAgKiBIb3cgdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBDYW4gYmUgc2V0IHRvIGBOb3RpZmljYXRpb25gLCBgSW5BcHBBbGVydGAsIG9yIGBOb25lYCBpZiBpdCB3YXMgbm90IGRpc3BsYXllZC5cbiAgICovXG4gIGRpc3BsYXlUeXBlPzogT1NEaXNwbGF5VHlwZTtcbiAgLyoqXG4gICAqICoqQU5EUk9JRCoqIC0gTm90aWZpY2F0aW9uIGlzIGEgc3VtbWFyeSBub3RpZmljYXRpb24gZm9yIGEgZ3JvdXAgdGhpcyB3aWxsIGNvbnRhaW4gYWxsIG5vdGlmaWNhdGlvbiBwYXlsb2FkcyBpdCB3YXMgY3JlYXRlZCBmcm9tLlxuICAgKi9cbiAgZ3JvdXBlZE5vdGlmaWNhdGlvbnM/OiBPU05vdGlmaWNhdGlvblBheWxvYWRbXTtcbiAgYXBwX2lkPzogc3RyaW5nO1xuICBjb250ZW50cz86IGFueTtcbiAgaGVhZGluZ3M/OiBhbnk7XG4gIGlzSW9zPzogYm9vbGVhbjtcbiAgaXNBbmRyb2lkPzogYm9vbGVhbjtcbiAgaXNXUD86IGJvb2xlYW47XG4gIGlzV1BfV05TPzogYm9vbGVhbjtcbiAgaXNBZG0/OiBib29sZWFuO1xuICBpc0Nocm9tZT86IGJvb2xlYW47XG4gIGlzQ2hyb21lV2ViPzogYm9vbGVhbjtcbiAgaXNTYWZhcmk/OiBib29sZWFuO1xuICBpc0FueVdlYj86IGJvb2xlYW47XG4gIGluY2x1ZGVkX3NlZ21lbnRzPzogc3RyaW5nW107XG4gIGV4Y2x1ZGVkX3NlZ21lbnRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfcGxheWVyX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2lvc190b2tlbnM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9hbmRyb2lkX3JlZ19pZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV93cF91cmlzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfd3Bfd25zX3VyaXM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZV9hbWF6b25fcmVnX2lkcz86IHN0cmluZ1tdO1xuICBpbmNsdWRlX2Nocm9tZV9yZWdfaWRzPzogc3RyaW5nW107XG4gIGluY2x1ZGVfY2hyb21lX3dlYl9yZWdfaWRzPzogc3RyaW5nW107XG4gIGFwcF9pZHM/OiBzdHJpbmdbXTtcbiAgdGFncz86IGFueVtdO1xuICBpb3NfYmFkZ2VUeXBlPzogc3RyaW5nO1xuICBpb3NfYmFkZ2VDb3VudD86IG51bWJlcjtcbiAgaW9zX3NvdW5kPzogc3RyaW5nO1xuICBhbmRyb2lkX3NvdW5kPzogc3RyaW5nO1xuICBhZG1fc291bmQ/OiBzdHJpbmc7XG4gIHdwX3NvdW5kPzogc3RyaW5nO1xuICB3cF93bnNfc291bmQ/OiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIGJ1dHRvbnM/OiBhbnk7XG4gIGNvbGxhcHNlX2lkPzogc3RyaW5nO1xuICBzbWFsbF9pY29uPzogc3RyaW5nO1xuICBsYXJnZV9pY29uPzogc3RyaW5nO1xuICBiaWdfcGljdHVyZT86IHN0cmluZztcbiAgYWRtX3NtYWxsX2ljb24/OiBzdHJpbmc7XG4gIGFkbV9sYXJnZV9pY29uPzogc3RyaW5nO1xuICBhZG1fYmlnX3BpY3R1cmU/OiBzdHJpbmc7XG4gIGNocm9tZV9pY29uPzogc3RyaW5nO1xuICBjaHJvbWVfYmlnX3BpY3R1cmU/OiBzdHJpbmc7XG4gIGNocm9tZV93ZWJfaWNvbj86IHN0cmluZztcbiAgZmlyZWZveF9pY29uPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIHNlbmRfYWZ0ZXI/OiBzdHJpbmc7XG4gIGRlbGF5ZWRfb3B0aW9uPzogc3RyaW5nO1xuICBkZWxpdmVyeV90aW1lX29mX2RheT86IHN0cmluZztcbiAgYW5kcm9pZF9sZWRfY29sb3I/OiBzdHJpbmc7XG4gIGFuZHJvaWRfYWNjZW50X2NvbG9yPzogc3RyaW5nO1xuICBhbmRyb2lkX3Zpc2liaWxpdHk/OiBudW1iZXI7XG4gIGNvbnRlbnRfYXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgYW1hem9uX2JhY2tncm91bmRfZGF0YT86IGJvb2xlYW47XG4gIHRlbXBsYXRlX2lkPzogc3RyaW5nO1xuICBhbmRyb2lkX2dyb3VwPzogc3RyaW5nO1xuICBhbmRyb2lkX2dyb3VwX21lc3NhZ2U/OiBhbnk7XG4gIGFkbV9ncm91cD86IHN0cmluZztcbiAgYWRtX2dyb3VwX21lc3NhZ2U/OiBhbnk7XG4gIHR0bD86IG51bWJlcjtcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG4gIGlvc19jYXRlZ29yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiAqKkFORFJPSUQqKiAtIFByaXZhY3kgc2V0dGluZyBmb3IgaG93IHRoZSBub3RpZmljYXRpb24gc2hvdWxkIGJlIHNob3duIG9uIHRoZSBsb2Nrc2NyZWVuIG9mIEFuZHJvaWQgNSsgZGV2aWNlcy5cbiAqL1xuZXhwb3J0IGVudW0gT1NMb2NrU2NyZWVuVmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBGdWxseSB2aXNpYmxlIChkZWZhdWx0KVxuICAgKi9cbiAgUHVibGljID0gMSxcbiAgLyoqXG4gICAqIENvbnRlbnRzIGFyZSBoaWRkZW5cbiAgICovXG4gIFByaXZhdGUgPSAwLFxuICAvKipcbiAgICogTm90IHNob3duXG4gICAqL1xuICBTZWNyZXQgPSAtMSxcbn1cblxuLyoqXG4gKiBIb3cgdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBQYXJ0IG9mIE9TTm90aWZpY2F0aW9uLiBTZWUgaW5Gb2N1c0Rpc3BsYXlpbmcgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gT1NEaXNwbGF5VHlwZSB7XG4gIC8qKlxuICAgKiBub3RpZmljYXRpb24gaXMgc2lsZW50LCBvciBpbkZvY3VzRGlzcGxheWluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIE5vbmUgPSAwLFxuICAvKipcbiAgICogKCoqREVGQVVMVCoqKSAtIG5hdGl2ZSBhbGVydCBkaWFsb2cgZGlzcGxheS5cbiAgICovXG4gIEluQXBwQWxlcnQgPSAxLFxuICAvKipcbiAgICogbmF0aXZlIG5vdGlmaWNhdGlvbiBkaXNwbGF5LlxuICAgKi9cbiAgTm90aWZpY2F0aW9uID0gMixcbn1cblxuLyoqXG4gKiBDb250ZW50cyBhbmQgc2V0dGluZ3Mgb2YgdGhlIG5vdGlmaWNhdGlvbiB0aGUgdXNlciByZWNlaXZlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU05vdGlmaWNhdGlvblBheWxvYWQge1xuICAvKipcbiAgICogT25lU2lnbmFsIG5vdGlmaWNhdGlvbiBVVUlELlxuICAgKi9cbiAgbm90aWZpY2F0aW9uSUQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogQm9keSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGFkZGl0aW9uYWwgZGF0YSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIG5vdGlmaWNhdGlvbi4gU2V0IG9uIHRoZSBkYXNoYm9hcmQgdW5kZXIgT3B0aW9ucyA+IEFkZGl0aW9uYWwgRGF0YVxuICAgKiBvciB3aXRoIHRoZSAnZGF0YScgZmllbGQgb24gdGhlIFJFU1QgQVBJLlxuICAgKi9cbiAgYWRkaXRpb25hbERhdGE/OiBhbnk7XG4gIC8qKlxuICAgKiAqKkFORFJPSUQqKiAtIFNtYWxsIGljb24gcmVzb3VyY2UgbmFtZSBzZXQgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHNtYWxsSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqICoqQU5EUk9JRCoqIC0gTGFyZ2UgaWNvbiBzZXQgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGxhcmdlSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqICoqQU5EUk9JRCoqIC0gQmlnIHBpY3R1cmUgaW1hZ2Ugc2V0IG9uIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBiaWdQaWN0dXJlPzogc3RyaW5nO1xuICAvKipcbiAgICogKipBTkRST0lEKiogLSBBY2NlbnQgY29sb3Igc2hvd24gYXJvdW5kIHNtYWxsIG5vdGlmaWNhdGlvbiBpY29uIG9uIEFuZHJvaWQgNSsgZGV2aWNlcy4gQVJHQiBmb3JtYXQuXG4gICAqL1xuICBzbWFsbEljb25BY2NlbnRDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVSTCB0byBvcGVuIHdoZW4gb3BlbmluZyB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgbGF1bmNoVVJMPzogc3RyaW5nO1xuICAvKipcbiAgICogU291bmQgcmVzb3VyY2UgdG8gcGxheSB3aGVuIHRoZSBub3RpZmljYXRpb24gaXMgc2hvd24uXG4gICAqL1xuICBzb3VuZDogc3RyaW5nO1xuICAvKipcbiAgICogKipBTkRST0lEKiogLSBEZXZpY2VzIHRoYXQgaGF2ZSBhIG5vdGlmaWNhdGlvbiBMRUQgd2lsbCBibGluayBpbiB0aGlzIGNvbG9yLiBBUkdCIGZvcm1hdC5cbiAgICovXG4gIGxlZENvbG9yPzogc3RyaW5nO1xuICBsb2NrU2NyZWVuVmlzaWJpbGl0eT86IE9TTG9ja1NjcmVlblZpc2liaWxpdHk7XG4gIC8qKlxuICAgKiAqKkFORFJPSUQqKiAtIE5vdGlmaWNhdGlvbnMgd2l0aCB0aGlzIHNhbWUga2V5IHdpbGwgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBhIHNpbmdsZSBzdW1tYXJ5IG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGdyb3VwS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKipBTkRST0lEKiogLSBTdW1tYXJ5IHRleHQgZGlzcGxheWVkIGluIHRoZSBzdW1tYXJ5IG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGdyb3VwTWVzc2FnZT86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGJ1dHRvbnMgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGFjdGlvbkJ1dHRvbnM6IE9TQWN0aW9uQnV0dG9uW107XG4gIC8qKlxuICAgKiAqKkFORFJPSUQqKiAtIFRoZSBHb29nbGUgcHJvamVjdCBudW1iZXIgdGhlIG5vdGlmaWNhdGlvbiB3YXMgc2VudCB1bmRlci5cbiAgICovXG4gIGZyb21Qcm9qZWN0TnVtYmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogKipBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCB0aGlzIG9iamVjdCB3aWxsIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIGJhY2tncm91bmRJbWFnZUxheW91dD86IE9TQmFja2dyb3VuZEltYWdlTGF5b3V0O1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYWN0aW9uIGJ1dHRvbnMgb24gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJhd1BheWxvYWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIGFjdGlvbiBidXR0b25zIG9uIHRoZSBub3RpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NBY3Rpb25CdXR0b24ge1xuICAvKipcbiAgICogSWQgYXNzaWduZWQgdG8gdGhlIGJ1dHRvbi5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IHNob3cgb24gdGhlIGJ1dHRvbiB0byB0aGUgdXNlci5cbiAgICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqICoqQU5EUk9JRCoqIC0gSWNvbiBzaG93biBvbiB0aGUgYnV0dG9uLlxuICAgKi9cbiAgaWNvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9TUGVybWlzc2lvblN0YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NQZXJtaXNzaW9uU3RhdGUge1xuICAvKipcbiAgICogVXNlciB3YXMgcHJvbXB0ZWQuXG4gICAqL1xuICBoYXNQcm9tcHRlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIFN0YXR1cyAoaU9TIE9ubHkpXG4gICAqL1xuICBzdGF0dXM6IGFueTtcbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIFN0YXRlIChBbmRyb2lkIE9ubHkpXG4gICAqL1xuICBzdGF0ZTogYW55O1xufVxuXG4vKipcbiAqIE9TU3Vic2NyaXB0aW9uU3RhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU1N1YnNjcmlwdGlvblN0YXRlIHtcbiAgc3Vic2NyaWJlZDogYm9vbGVhbjtcbiAgdXNlclN1YnNjcmlwdGlvblNldHRpbmc6IGFueTtcbiAgdXNlcklkOiBhbnk7XG4gIHB1c2hUb2tlbjogYW55O1xufVxuXG4vKipcbiAqIFN1YnNjcmlwdGlvbiBhbmQgcGVybWlzc2lvbnMgc3RhdHVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NQZXJtaXNzaW9uU3Vic2NyaXB0aW9uU3RhdGUge1xuICAvKipcbiAgICogSWQgYXNzaWduZWQgdG8gdGhlIGJ1dHRvbi5cbiAgICovXG4gIHBlcm1pc3Npb25TdGF0dXM6IE9TUGVybWlzc2lvblN0YXRlO1xuICAvKipcbiAgICogVGV4dCBzaG93IG9uIHRoZSBidXR0b24gdG8gdGhlIHVzZXIuXG4gICAqL1xuICBzdWJzY3JpcHRpb25TdGF0dXM6IE9TU3Vic2NyaXB0aW9uU3RhdGU7XG59XG5cbi8qKlxuICogKipBTkRST0lEKiogLSBJZiBhIGJhY2tncm91bmQgaW1hZ2Ugd2FzIHNldCwgdGhpcyBvYmplY3Qgd2lsbCBiZSBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXQge1xuICAvKipcbiAgICogSW1hZ2UgVVJMIG9yIG5hbWUgdXNlZCBhcyB0aGUgYmFja2dyb3VuZCBpbWFnZS5cbiAgICovXG4gIGltYWdlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGNvbG9yIG9mIHRoZSB0aXRsZSBvbiB0aGUgbm90aWZpY2F0aW9uLiBBUkdCIEZvcm1hdC5cbiAgICovXG4gIHRpdGxlVGV4dENvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGNvbG9yIG9mIHRoZSBib2R5IG9uIHRoZSBub3RpZmljYXRpb24uIEFSR0IgRm9ybWF0LlxuICAgKi9cbiAgYm9keVRleHRDb2xvcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiByZXR1cm5lZCBmcm9tIGEgbm90aWZpY2F0aW9uIHRoZSB1c2VyIHJlY2VpdmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0IHtcbiAgYWN0aW9uOiB7XG4gICAgLyoqXG4gICAgICogV2FzIHRoZSBub3RpZmljYXRpb24gb3BlbmVkIG5vcm1hbGx5IChgT3BlbmVkYCkgb3Igd2FzIGEgYnV0dG9uIHByZXNzZWQgb24gdGhlIG5vdGlmaWNhdGlvbiAoYEFjdGlvblRha2VuYCkuXG4gICAgICovXG4gICAgdHlwZTogT1NBY3Rpb25UeXBlO1xuICAgIC8qKlxuICAgICAqIElmIGB0eXBlYCA9PSBgQWN0aW9uVGFrZW5gIHRoZW4gdGhpcyB3aWxsIGNvbnRhaW4gdGhlIGlkIG9mIHRoZSBidXR0b24gcHJlc3NlZC5cbiAgICAgKi9cbiAgICBhY3Rpb25JRD86IHN0cmluZztcbiAgfTtcbiAgbm90aWZpY2F0aW9uOiBPU05vdGlmaWNhdGlvbjtcbn1cblxuZXhwb3J0IGVudW0gT1NBY3Rpb25UeXBlIHtcbiAgT3BlbmVkID0gMCxcbiAgQWN0aW9uVGFrZSA9IDEsXG59XG5cbi8qKlxuICogRGV0YWlscyBhYm91dCB0aGUgSW4tQXBwIE1lc3NhZ2UgYWN0aW9uIGVsZW1lbnQgKGJ1dHRvbiBvciBpbWFnZSkgdGhhdCB3YXMgdGFwcGVkIG9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9TSW5BcHBNZXNzYWdlQWN0aW9uIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGNsaWNrIG5hbWUgZGVmaW5lZCBmb3IgdGhlIGFjdGlvbiBlbGVtZW50LiBudWxsIG9yIG5pbCAoaU9TKSBpZiBub3Qgc2V0LlxuICAgKi9cbiAgY2xpY2tfbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgVVJMIHRoYXQgb3BlbnMgd2hlbiB0aGUgYWN0aW9uIHRha2VzIHBsYWNlLiBudWxsIG9yIG5pbCAoaU9TKSBpZiBub3Qgc2V0LlxuICAgKi9cbiAgY2xpY2tfdXJsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgdXNlciBoYXMgcHJlc3NlZCBhbnkgYWN0aW9uIG9uIHRoZSBJbi1BcHAgTWVzc2FnZS5cbiAgICovXG4gIGZpcnN0X2NsaWNrOiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgSW4tQXBwIE1lc3NhZ2Ugd2lsbCBhbmltYXRlIG9mZiB0aGUgc2NyZWVuLiBJZiBgZmFsc2VgLCB0aGUgSW4tQXBwIE1lc3NhZ2Ugd2lsbCBzdGF5IG9uIHNjcmVlbiB1bnRpbCB0aGUgdXNlciBkaXNtaXNzZXMgaXQuXG4gICAqL1xuICBjbG9zZXNfbWVzc2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAbmFtZSBPbmVTaWduYWxcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIE9uZVNpZ25hbCBwbHVnaW4gaXMgYW4gY2xpZW50IGltcGxlbWVudGF0aW9uIGZvciB1c2luZyB0aGUgW09uZVNpZ25hbF0oaHR0cHM6Ly9vbmVzaWduYWwuY29tLykgU2VydmljZS5cbiAqIE9uZVNpZ25hbCBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3IgZGVsaXZlcmluZyBwdXNoIG5vdGlmaWNhdGlvbnMuXG4gKlxuICogUGxlYXNlIHZpZXcgdGhlIG9mZmljaWFsIFtPbmVTaWduYWwgSW9uaWMgU0RLIEluc3RhbGxhdGlvbl0oaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9uZXNpZ25hbC5jb20vZG9jcy9pb25pYy1zZGstc2V0dXApIGd1aWRlXG4gKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMjIEljb25zXG4gKiBJZiB5b3Ugd2FudCB0byB1c2UgZ2VuZXJhdGVkIGljb25zIHdpdGggY29tbWFuZCBgaW9uaWMgY29yZG92YSByZXNvdXJjZXNgOlxuICpcbiAqIDEuIEFkZCBhIGZpbGUgdG8geW91ciBgaG9va3NgIGRpcmVjdG9yeSBjYWxsZWQgYGNvcHlfYW5kcm9pZF9ub3RpZmljYXRpb25faWNvbnMuanNgXG4gKlxuICogMi4gQ29uZmlndXJlIHRoZSBob29rIGluIHlvdXIgY29uZmlnLnhtbFxuICogYGBgXG4gKiAgICAgPHBsYXRmb3JtIG5hbWU9XCJhbmRyb2lkXCI+XG4gKiAgICAgICAgIDxob29rIHR5cGU9XCJhZnRlcl9wcmVwYXJlXCIgc3JjPVwiaG9va3MvY29weV9hbmRyb2lkX25vdGlmaWNhdGlvbl9pY29ucy5qc1wiIC8+XG4gKiAgICAgPC9wbGF0Zm9ybT5cbiAqIGBgYFxuICpcbiAqIDMuIFB1dCB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQ6XG4gKlxuICogYGBgXG4gKiAjIS91c3IvYmluL2VudiBub2RlXG4gKlxuICogdmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcbiAqIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuICpcbiAqIHZhciBmaWxlc3RvY29weSA9IFt7XG4gKiAgICAgXCJyZXNvdXJjZXMvYW5kcm9pZC9pY29uL2RyYXdhYmxlLWhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLWhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS1tZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS1tZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0sIHtcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUteGhkcGktaWNvbi5wbmdcIjpcbiAqICAgICAgICAgXCJwbGF0Zm9ybXMvYW5kcm9pZC9hcHAvc3JjL21haW4vcmVzL2RyYXdhYmxlLXhoZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0sIHtcbiAqICAgICBcInJlc291cmNlcy9hbmRyb2lkL2ljb24vZHJhd2FibGUteHhoZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS14eGhkcGkvaWNfc3RhdF9vbmVzaWduYWxfZGVmYXVsdC5wbmdcIlxuICogfSwge1xuICogICAgIFwicmVzb3VyY2VzL2FuZHJvaWQvaWNvbi9kcmF3YWJsZS14eHhoZHBpLWljb24ucG5nXCI6XG4gKiAgICAgICAgIFwicGxhdGZvcm1zL2FuZHJvaWQvYXBwL3NyYy9tYWluL3Jlcy9kcmF3YWJsZS14eHhoZHBpL2ljX3N0YXRfb25lc2lnbmFsX2RlZmF1bHQucG5nXCJcbiAqIH0gXTtcbiAqXG4gKiBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAqXG4gKiAgICAgLy8gbm8gbmVlZCB0byBjb25maWd1cmUgYmVsb3dcbiAqICAgICB2YXIgcm9vdGRpciA9IGNvbnRleHQub3B0cy5wcm9qZWN0Um9vdDtcbiAqXG4gKiAgICAgZmlsZXN0b2NvcHkuZm9yRWFjaChmdW5jdGlvbihvYmopIHtcbiAqICAgICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICogICAgICAgICAgICAgdmFyIHZhbCA9IG9ialtrZXldO1xuICogICAgICAgICAgICAgdmFyIHNyY2ZpbGUgPSBwYXRoLmpvaW4ocm9vdGRpciwga2V5KTtcbiAqICAgICAgICAgICAgIHZhciBkZXN0ZmlsZSA9IHBhdGguam9pbihyb290ZGlyLCB2YWwpO1xuICogICAgICAgICAgICAgY29uc29sZS5sb2coXCJjb3B5aW5nIFwiK3NyY2ZpbGUrXCIgdG8gXCIrZGVzdGZpbGUpO1xuICogICAgICAgICAgICAgdmFyIGRlc3RkaXIgPSBwYXRoLmRpcm5hbWUoZGVzdGZpbGUpO1xuICogICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjZmlsZSkgJiYgZnMuZXhpc3RzU3luYyhkZXN0ZGlyKSkge1xuICogICAgICAgICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oc3JjZmlsZSkucGlwZShcbiAqICAgICAgICAgICAgICAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0oZGVzdGZpbGUpKTtcbiAqICAgICAgICAgICAgIH1cbiAqICAgICAgICAgfSk7XG4gKiAgICAgfSk7XG4gKlxuICogfTtcbiAqIGBgYFxuICpcbiAqIDMuIEZyb20gdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IG1ha2UgdGhlIGZpbGUgZXhlY3V0YWJsZTpcbiAqIGAkIGNobW9kICt4IGhvb2tzL2NvcHlfYW5kcm9pZF9ub3RpZmljYXRpb25faWNvbnMuanNgXG4gKlxuICpcbiAqIEB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgT25lU2lnbmFsIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL29uZXNpZ25hbC9uZ3gnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgb25lU2lnbmFsOiBPbmVTaWduYWwpIHsgfVxuICpcbiAqIC4uLlxuICpcbiAqIHRoaXMub25lU2lnbmFsLnN0YXJ0SW5pdCgnYjJmN2Y5NjYtZDhjYy0xMWU0LWJlZDEtZGY4ZjA1YmU1NWJhJywgJzcwMzMyMjc0NDI2MScpO1xuICpcbiAqIHRoaXMub25lU2lnbmFsLmluRm9jdXNEaXNwbGF5aW5nKHRoaXMub25lU2lnbmFsLk9TSW5Gb2N1c0Rpc3BsYXlPcHRpb24uSW5BcHBBbGVydCk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uUmVjZWl2ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICogIC8vIGRvIHNvbWV0aGluZyB3aGVuIG5vdGlmaWNhdGlvbiBpcyByZWNlaXZlZFxuICogfSk7XG4gKlxuICogdGhpcy5vbmVTaWduYWwuaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAqICAgLy8gZG8gc29tZXRoaW5nIHdoZW4gYSBub3RpZmljYXRpb24gaXMgb3BlbmVkXG4gKiB9KTtcbiAqXG4gKiB0aGlzLm9uZVNpZ25hbC5lbmRJbml0KCk7XG4gKiBgYGBcbiAqIEBpbnRlcmZhY2VzXG4gKiBPU05vdGlmaWNhdGlvblxuICogT1NMb2NrU2NyZWVuVmlzaWJpbGl0eVxuICogT1NEaXNwbGF5VHlwZVxuICogT1NOb3RpZmljYXRpb25QYXlsb2FkXG4gKiBPU0FjdGlvbkJ1dHRvblxuICogT1NCYWNrZ3JvdW5kSW1hZ2VMYXlvdXRcbiAqIE9TTm90aWZpY2F0aW9uT3BlbmVkUmVzdWx0XG4gKiBPU0FjdGlvblR5cGVcbiAqIE9TSW5BcHBNZXNzYWdlQWN0aW9uXG4gKi9cbkBQbHVnaW4oe1xuICBwbHVnaW5OYW1lOiAnT25lU2lnbmFsJyxcbiAgcGx1Z2luOiAnb25lc2lnbmFsLWNvcmRvdmEtcGx1Z2luJyxcbiAgcGx1Z2luUmVmOiAncGx1Z2lucy5PbmVTaWduYWwnLFxuICByZXBvOiAnaHR0cHM6Ly9naXRodWIuY29tL09uZVNpZ25hbC9PbmVTaWduYWwtQ29yZG92YS1TREsnLFxuICBwbGF0Zm9ybXM6IFsnQW1hem9uIEZpcmUgT1MnLCAnQW5kcm9pZCcsICdpT1MnLCAnV2luZG93cyddLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVTaWduYWwgZXh0ZW5kcyBBd2Vzb21lQ29yZG92YU5hdGl2ZVBsdWdpbiB7XG4gIC8qKlxuICAgKiBjb25zdGFudHMgdG8gdXNlIGluIGluRm9jdXNEaXNwbGF5aW5nKClcbiAgICogQGhpZGRlblxuICAgKi9cbiAgT1NJbkZvY3VzRGlzcGxheU9wdGlvbiA9IHtcbiAgICBOb25lOiAwLFxuICAgIEluQXBwQWxlcnQ6IDEsXG4gICAgTm90aWZpY2F0aW9uOiAyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gT25jZSB5b3UgYXJlIGRvbmUgY29uZmlndXJpbmcgT25lU2lnbmFsLCBjYWxsIHRoZSBgZW5kSW5pdGAgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCBZb3VyIE9uZVNpZ25hbCBhcHAgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdvb2dsZVByb2plY3ROdW1iZXIgKipBTkRST0lEKiogLSB5b3VyIEdvb2dsZSBwcm9qZWN0IG51bWJlcjsgb25seSByZXF1aXJlZCBmb3IgQW5kcm9pZCBHQ00vRkNNIHB1c2hlcy5cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzdGFydEluaXQoYXBwSWQ6IHN0cmluZywgZ29vZ2xlUHJvamVjdE51bWJlcj86IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIHJ1biB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB3aGV0aGVyIGl0IHdhcyBkaXNwbGF5ZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9uZVNpZ25hbFJlY2VpdmVkTm90aWZpY2F0aW9uPn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBoYW5kbGVOb3RpZmljYXRpb25SZWNlaXZlZCgpOiBPYnNlcnZhYmxlPE9TTm90aWZpY2F0aW9uPiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIHJ1biB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHRhcHBlZCBvbiBmcm9tIHRoZSBub3RpZmljYXRpb24gc2hhZGUgKCoqQU5EUk9JRCoqKSBvciBub3RpZmljYXRpb25cbiAgICogY2VudGVyICgqKmlPUyoqKSwgb3Igd2hlbiBjbG9zaW5nIGFuIEFsZXJ0IG5vdGlmaWNhdGlvbiBzaG93biBpbiB0aGUgYXBwIChpZiBJbkFwcEFsZXJ0IGlzIGVuYWJsZWQgaW5cbiAgICogaW5Gb2N1c0Rpc3BsYXlpbmcpLlxuICAgKlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9uZVNpZ25hbE9wZW5lZE5vdGlmaWNhdGlvbj59XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgb2JzZXJ2YWJsZTogdHJ1ZSxcbiAgfSlcbiAgaGFuZGxlTm90aWZpY2F0aW9uT3BlbmVkKCk6IE9ic2VydmFibGU8T1NOb3RpZmljYXRpb25PcGVuZWRSZXN1bHQ+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRvIHByb2Nlc3MgYW4gSW4tQXBwIE1lc3NhZ2UgdGhlIHVzZXIganVzdCB0YXBwZWQgb24uXG4gICAqXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T1NJbkFwcE1lc3NhZ2VBY3Rpb24+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGhhbmRsZUluQXBwTWVzc2FnZUNsaWNrZWQoKTogT2JzZXJ2YWJsZTxPU0luQXBwTWVzc2FnZUFjdGlvbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiAqKmlPUyoqIC0gU2V0dGluZ3MgZm9yIGlPUyBhcHBzXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5nc1xuICAgKiAga09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0OiBib29sZWFuID0gdHJ1ZVxuICAgKiAgQXV0byBwcm9tcHQgdXNlciBmb3Igbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiAga09TU2V0dGluZ3NLZXlJbkFwcExhdW5jaFVSTDogYm9vbGVhbiA9IGZhbHNlXG4gICAqICBMYXVuY2ggbm90aWZpY2F0aW9ucyB3aXRoIGEgbGF1bmNoIFVSTCBhcyBhbiBpbiBhcHAgd2Vidmlldy5cbiAgICogQHJldHVybnMge2FueX1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgaU9TU2V0dGluZ3Moc2V0dGluZ3M6IHsga09TU2V0dGluZ3NLZXlBdXRvUHJvbXB0OiBib29sZWFuOyBrT1NTZXR0aW5nc0tleUluQXBwTGF1bmNoVVJMOiBib29sZWFuIH0pOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRJbml0YCB0byBjb21wbGV0ZSBpbml0aWFsaXphdGlvbiBvZiBPbmVTaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5kSW5pdCgpOiBhbnkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucy4gQ2FsbGJhY2sgZmlyZXMgYXMgc29vbiBhcyB0aGUgdXNlciBhY2NlcHRzIG9yIGRlY2xpbmVzIG5vdGlmaWNhdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHBsYXRmb3JtczogWydpT1MnXSxcbiAgfSlcbiAgcHJvbXB0Rm9yUHVzaE5vdGlmaWNhdGlvbnNXaXRoVXNlclJlc3BvbnNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGFncyB0aGF0IGhhdmUgYmVlbiBzZXQgb24gdGhlIHVzZXIgZnJvbSB0aGUgT25lU2lnbmFsIHNlcnZlci5cbiAgICpcbiAgICogKipRdWlyayoqOiBZb3UgbXVzdCB3YWl0IGZvciBgZ2V0VGFnc2AgdG8gcmVzb2x2ZSBiZWZvcmUgY2FsbGluZyBpdCBhZ2FpbiwgYXMgdGhlIHBsdWdpbiB3aWxsIG9ubHkgcHJvY2VzcyB0aGUgbGFzdCBtZXRob2QgY2FsbCBhbmQgZGlzY2FyZCBhbnkgcHJldmlvdXMgb25lcy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRhZ3MgYXJlIHJlY2lldmVkLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRUYWdzKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgeW91IHJldHJpZXZlIHRoZSBPbmVTaWduYWwgdXNlciBpZCBhbmQgZGV2aWNlIHRva2VuLlxuICAgKiBZb3VyIGhhbmRsZXIgaXMgY2FsbGVkIGFmdGVyIHRoZSBkZXZpY2UgaXMgc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQgd2l0aCBPbmVTaWduYWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgaWYgdGhlIGRldmljZSB3YXMgc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQuXG4gICAqXG4gICAqICB1c2VySWQge3N0cmluZ30gT25lU2lnbmFsIHVzZXJJZCBpcyBhIFVVSUQgZm9ybWF0dGVkIHN0cmluZy4gKHVuaXF1ZSBwZXIgZGV2aWNlIHBlciBhcHApXG4gICAqXG4gICAqICBwdXNoVG9rZW4ge3N0cmluZ30gQSBwdXNoIHRva2VuIGlzIGEgR29vZ2xlL0FwcGxlIGFzc2lnbmVkIGlkZW50aWZpZXIodW5pcXVlIHBlciBkZXZpY2UgcGVyIGFwcCkuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldElkcygpOiBQcm9taXNlPHsgdXNlcklkOiBzdHJpbmc7IHB1c2hUb2tlbjogc3RyaW5nIH0+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGFnIGEgdXNlciBiYXNlZCBvbiBhbiBhcHAgZXZlbnQgb2YgeW91ciBjaG9vc2luZyBzbyBsYXRlciB5b3UgY2FuIGNyZWF0ZSBzZWdtZW50cyBvbiBbb25lc2lnbmFsLmNvbV0oaHR0cHM6Ly9vbmVzaWduYWwuY29tLykgdG8gdGFyZ2V0IHRoZXNlIHVzZXJzLlxuICAgKiBSZWNvbW1lbmQgdXNpbmcgc2VuZFRhZ3Mgb3ZlciBzZW5kVGFnIGlmIHlvdSBuZWVkIHRvIHNldCBtb3JlIHRoYW4gb25lIHRhZyBvbiBhIHVzZXIgYXQgYSB0aW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gS2V5IG9mIHlvdXIgY2hvb3NpbmcgdG8gY3JlYXRlIG9yIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFZhbHVlIHRvIHNldCBvbiB0aGUga2V5LiBOT1RFOiBQYXNzaW5nIGluIGEgYmxhbmsgU3RyaW5nIGRlbGV0ZXMgdGhlIGtleSwgeW91IGNhbiBhbHNvIGNhbGwgZGVsZXRlVGFnLlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNlbmRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFRhZyBhIHVzZXIgYmFzZWQgb24gYW4gYXBwIGV2ZW50IG9mIHlvdXIgY2hvb3Npbmcgc28gbGF0ZXIgeW91IGNhbiBjcmVhdGUgc2VnbWVudHMgb24gW29uZXNpZ25hbC5jb21dKGh0dHBzOi8vb25lc2lnbmFsLmNvbS8pIHRvIHRhcmdldCB0aGVzZSB1c2Vycy5cbiAgICogUmVjb21tZW5kIHVzaW5nIHNlbmRUYWdzIG92ZXIgc2VuZFRhZyBpZiB5b3UgbmVlZCB0byBzZXQgbW9yZSB0aGFuIG9uZSB0YWcgb24gYSB1c2VyIGF0IGEgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFBhc3MgYSBqc29uIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBsaWtlOiB7a2V5OiBcInZhbHVlXCIsIGtleTI6IFwidmFsdWUyXCJ9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc2VuZFRhZ3MoanNvbjogYW55KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgdGFnIHRoYXQgd2FzIHByZXZpb3VzbHkgc2V0IG9uIGEgdXNlciB3aXRoIGBzZW5kVGFnYCBvciBgc2VuZFRhZ3NgLiBVc2UgYGRlbGV0ZVRhZ3NgIGlmIHlvdSBuZWVkIHRvIGRlbGV0ZSBtb3JlIHRoYW4gb25lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gS2V5IHRvIHJlbW92ZS5cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBkZWxldGVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGFncyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXQgb24gYSB1c2VyIHdpdGggYHNlbmRUYWdgIG9yIGBzZW5kVGFnc2AuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IEtleXMgdG8gcmVtb3ZlLlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGRlbGV0ZVRhZ3Moa2V5czogc3RyaW5nW10pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhpcyB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIHByb21wdCBhbiBpT1MgdXNlciB0byBhY2NlcHQgcHVzaCBub3RpZmljYXRpb25zIHdpdGggdGhlIGRlZmF1bHQgc3lzdGVtIHByb21wdC5cbiAgICogT25seSB3b3JrcyBpZiB5b3Ugc2V0IGBrT1NTZXR0aW5nc0F1dG9Qcm9tcHRgIHRvIGBmYWxzZWAgaW4gYGlPU1NldHRpbmdzYFxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHJlZ2lzdGVyRm9yUHVzaE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgYWx3YXlzIHZpYnJhdGVzIHRoZSBkZXZpY2Ugd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBkaXNwbGF5ZWQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgaW4gYSB0b3RhbCBzaWxlbnQgbW9kZS5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgbGlnaHRseSB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gaXQncyB2aWJyYXRlIG9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBmYWxzZSB0byBkaXNhYmxlIHZpYnJhdGUsIHRydWUgdG8gcmUtZW5hYmxlIGl0LlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVuYWJsZVZpYnJhdGUoZW5hYmxlOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBXYXJuaW5nOlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gQW5kcm9pZCBhbmQgQW1hem9uLiBZb3UgY2FuIGNhbGwgdGhpcyBmcm9tIHlvdXIgVUkgZnJvbSBhIGJ1dHRvbiBwcmVzcyBmb3IgZXhhbXBsZSB0byBnaXZlIHlvdXIgdXNlcidzIG9wdGlvbnMgZm9yIHlvdXIgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBPbmVTaWduYWwgcGxheXMgdGhlIHN5c3RlbSdzIGRlZmF1bHQgbm90aWZpY2F0aW9uIHNvdW5kIHdoZW4gdGhlIGRldmljZSdzIG5vdGlmaWNhdGlvbiBzeXN0ZW0gdm9sdW1lIGlzIHR1cm5lZCBvbi5cbiAgICogUGFzc2luZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBvbmx5IHZpYnJhdGUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgc2V0IHRvIGEgdG90YWwgc2lsZW50IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmFsc2UgdG8gZGlzYWJsZSBzb3VuZCwgdHJ1ZSB0byByZS1lbmFibGUgaXQuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZW5hYmxlU291bmQoZW5hYmxlOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBTZXR0aW5nIHRvIGNvbnRyb2wgaG93IE9uZVNpZ25hbCBub3RpZmljYXRpb25zIHdpbGwgYmUgc2hvd24gd2hlbiBvbmUgaXMgcmVjZWl2ZWQgd2hpbGUgeW91ciBhcHAgaXMgaW4gZm9jdXMuIEJ5IGRlZmF1bHQgdGhpcyBpcyBzZXQgdG8gaW5BcHBBbGVydCwgd2hpY2ggY2FuIGJlIGhlbHBmdWwgZHVyaW5nIGRldmVsb3BtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0Rpc3BsYXlUeXBlfSBkaXNwbGF5T3B0aW9uXG4gICAqIEByZXR1cm5zIHthbnl9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgaW5Gb2N1c0Rpc3BsYXlpbmcoZGlzcGxheU9wdGlvbjogT1NEaXNwbGF5VHlwZSk6IGFueSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGZhbHNlIHRvIG9wdCB1c2VycyBvdXQgb2YgcmVjZWl2aW5nIGFsbCBub3RpZmljYXRpb25zIHRocm91Z2ggT25lU2lnbmFsLlxuICAgKiBZb3UgY2FuIHBhc3MgdHJ1ZSBsYXRlciB0byBvcHQgdXNlcnMgYmFjayBpbnRvIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgc2V0U3Vic2NyaXB0aW9uKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IG5vdGlmaWNhdGlvbiBhbmQgcGVybWlzc2lvbiBzdGF0ZS4gUmV0dXJucyBhIE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlIHR5cGUgZGVzY3JpYmVkIGJlbG93LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPU1Blcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZT59XG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldFBlcm1pc3Npb25TdWJzY3JpcHRpb25TdGF0ZSgpOiBQcm9taXNlPE9TUGVybWlzc2lvblN1YnNjcmlwdGlvblN0YXRlPiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7bm90aWZpY2F0aW9uT2JqfSBQYXJhbWV0ZXJzIHNlZSBQT1NUIFtkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3VtZW50YXRpb24ub25lc2lnbmFsLmNvbS92Mi4wL2RvY3Mvbm90aWZpY2F0aW9ucy1jcmVhdGUtbm90aWZpY2F0aW9uKVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGlmIHRoZSBub3RpZmljYXRpb24gd2FzIHNlbmQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBwb3N0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk9iajogT1NOb3RpZmljYXRpb24pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGEgc2luZ2xlIE9uZVNpZ25hbCBub3RpZmljYXRpb24gYmFzZWQgb24gaXRzIEFuZHJvaWQgbm90aWZpY2F0aW9uIGludGVnZXIgaWQuIFVzZSBpbnN0ZWFkIG9mIE5vdGlmaWNhdGlvbk1hbmFnZXIuY2FuY2VsKGlkKTsgb3RoZXJ3aXNlIHRoZSBub3RpZmljYXRpb24gd2lsbCBiZSByZXN0b3JlZCB3aGVuIHlvdXIgYXBwIGlzIHJlc3RhcnRlZC5cbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkIHtzdHJpbmd9XG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgY2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIFByb21wdHMgdGhlIHVzZXIgZm9yIGxvY2F0aW9uIHBlcm1pc3Npb24gdG8gYWxsb3cgZ2VvdGFnZ2luZyBiYXNlZCBvbiB0aGUgXCJMb2NhdGlvbiByYWRpdXNcIiBmaWx0ZXIgb24gdGhlIE9uZVNpZ25hbCBkYXNoYm9hcmQuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgcHJvbXB0TG9jYXRpb24oKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZW1haWwge3N0cmluZ31cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzeW5jSGFzaGVkRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQge31cblxuICAvKipcbiAgICogRW5hYmxlIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBpZiB5b3UgcnVuIGludG8gYW4gaXNzdWUgc2V0dGluZyB1cCBPbmVTaWduYWwuXG4gICAqIFRoZSBsb2dnaW5nIGxldmVscyBhcmUgYXMgZm9sbG93czogMCA9IE5vbmUsIDE9IEZhdGFsLCAyID0gRXJyb3JzLCAzID0gV2FybmluZ3MsIDQgPSBJbmZvLCA1ID0gRGVidWcsIDYgPSBWZXJib3NlXG4gICAqXG4gICAqIFRoZSBoaWdoZXIgdGhlIHZhbHVlIHRoZSBtb3JlIGluZm9ybWF0aW9uIGlzIHNob3duLlxuICAgKlxuICAgKiBAcGFyYW0ge2xvZ2xldmVsfSBjb250YWlucyB0d28gcHJvcGVydGllczogbG9nTGV2ZWwgKGZvciBjb25zb2xlIGxvZ2dpbmcpIGFuZCB2aXN1YWxMZXZlbCAoZm9yIGRpYWxvZyBtZXNzYWdlcylcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBzZXRMb2dMZXZlbChsb2dMZXZlbDogeyBsb2dMZXZlbDogbnVtYmVyOyB2aXN1YWxMZXZlbDogbnVtYmVyIH0pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgb3IgZW5hYmxlIGxvY2F0aW9uIGNvbGxlY3Rpb24gKERlZmF1bHRzIHRvIGVuYWJsZWQpIGlmIHlvdXIgYXBwIGhhcyBsb2NhdGlvbiBwZXJtaXNzaW9uLlxuICAgKiBAcGFyYW0gc2hhcmVkIHtib29sZWFufVxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIHNldExvY2F0aW9uU2hhcmVkKHNoYXJlZDogYm9vbGVhbik6IHZvaWQge31cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gcGVybWlzc2lvbiBzZXR0aW5nIGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcHJvbXB0IHNob3duXG4gICAqIC0gVGhlIHVzZXIgYWNjZXB0aW5nIG9yIGRlY2xpbmluZyB0aGUgcGVybWlzc2lvbiBwcm9tcHRcbiAgICogLSBFbmFibGluZy9kaXNhYmxpbmcgbm90aWZpY2F0aW9ucyBmb3IgeW91ciBhcHAgaW4gdGhlIGRldmljZSBTZXR0aW5ncyBhZnRlciByZXR1cm5pbmcgdG8geW91ciBhcHAuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBhZGRQZXJtaXNzaW9uT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBhc3NlZCBpbiBmdW5jdGlvbiB3aWxsIGJlIGZpcmVkIHdoZW4gYSBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uIHByb3BlcnR5IGNoYW5nZXMuXG4gICAqIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gR2V0dGluZyBhIHB1c2ggdG9rZW4gZnJvbSBBcHBsZSAvIEdvb2dsZS5cbiAgICogLSBHZXR0aW5nIGEgcGxheWVyIC8gdXNlciBpZCBmcm9tIE9uZVNpZ25hbFxuICAgKiAtIE9uZVNpZ25hbC5zZXRTdWJzY3JpcHRpb24gaXMgY2FsbGVkXG4gICAqIC0gVXNlciBkaXNhYmxlcyBvciBlbmFibGVzIG5vdGlmaWNhdGlvbnNcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIG9ic2VydmFibGU6IHRydWUsXG4gIH0pXG4gIGFkZFN1YnNjcmlwdGlvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgT25lU2lnbmFsIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0RW1haWwoZW1haWw6IHN0cmluZywgZW1haWxBdXRoVG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB5b3VyIGFwcCBpbXBsZW1lbnRzIGxvZ291dCBmdW5jdGlvbmFsaXR5LCB5b3UgY2FuIGNhbGwgbG9nb3V0RW1haWwgdG8gZGlzc29jaWF0ZSB0aGUgZW1haWwgZnJvbSB0aGUgZGV2aWNlXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGxvZ291dEVtYWlsKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzZWQgaW4gZnVuY3Rpb24gd2lsbCBiZSBmaXJlZCB3aGVuIGEgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEdldHRpbmcgYSBwdXNoIHRva2VuIGZyb20gQXBwbGUgLyBHb29nbGUuXG4gICAqIC0gR2V0dGluZyBhIHBsYXllciAvIHVzZXIgaWQgZnJvbSBPbmVTaWduYWxcbiAgICogLSBPbmVTaWduYWwuc2V0U3Vic2NyaXB0aW9uIGlzIGNhbGxlZFxuICAgKiAtIFVzZXIgZGlzYWJsZXMgb3IgZW5hYmxlcyBub3RpZmljYXRpb25zXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBvYnNlcnZhYmxlOiB0cnVlLFxuICB9KVxuICBhZGRFbWFpbFN1YnNjcmlwdGlvbk9ic2VydmVyKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgT25lU2lnbmFsIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBjbGVhck9uZVNpZ25hbE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIGRlbGF5IHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgU0RLIHVudGlsIHRoZSB1c2VyIHByb3ZpZGVzIHByaXZhY3kgY29uc2VudC5cbiAgICogVGhlIFNESyB3aWxsIG5vdCBiZSBmdWxseSBpbml0aWFsaXplZCB1bnRpbCB0aGUgcHJvdmlkZVVzZXJDb25zZW50KHRydWUpIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVxdWlyZWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0UmVxdWlyZXNVc2VyUHJpdmFjeUNvbnNlbnQocmVxdWlyZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIElmIHlvdXIgYXBwbGljYXRpb24gaXMgc2V0IHRvIHJlcXVpcmUgdGhlIHVzZXIncyBwcml2YWN5IGNvbnNlbnQsIHlvdSBjYW4gcHJvdmlkZSB0aGlzIGNvbnNlbnQgdXNpbmcgdGhpcyBtZXRob2QuXG4gICAqIFVudGlsIHlvdSBjYWxsIHByb3ZpZGVVc2VyQ29uc2VudCh0cnVlKSwgdGhlIFNESyB3aWxsIG5vdCBmdWxseSBpbml0aWFsaXplIGFuZCB3aWxsIG5vdCBzZW5kIGFueSBkYXRhIHRvIE9uZVNpZ25hbC5cbiAgICogQHBhcmFtIHtib29sZWFufSBncmFudGVkXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHByb3ZpZGVVc2VyQ29uc2VudChncmFudGVkOiBib29sZWFuKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBY2NlcHRzIGEgY2FsbGJhY2ssIHdoaWNoIHJldHVybnMgYSBib29sZWFuIHZhcmlhYmxlIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaGFzIGdpdmVuIHByaXZhY3kgY29uc2VudCB5ZXQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHVzZXJQcm92aWRlZFByaXZhY3lDb25zZW50KGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge31cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB1c2UgeW91ciBvd24gc3lzdGVtJ3MgdXNlciBJRCdzIHRvIHNlbmQgcHVzaCBub3RpZmljYXRpb25zIHRvIHlvdXIgdXNlcnMuXG4gICAqIFRvIHRpZSBhIHVzZXIgdG8gYSBnaXZlbiB1c2VyIElELCB5b3UgY2FuIHVzZSB0aGlzIG1ldGhvZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dGVybmFsSWRcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0RXh0ZXJuYWxVc2VySWQoZXh0ZXJuYWxJZDogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHdoYXRldmVyIHdhcyBzZXQgYXMgdGhlIGN1cnJlbnQgdXNlcidzIGV4dGVybmFsIHVzZXIgSUQuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHJlbW92ZUV4dGVybmFsVXNlcklkKCk6IHZvaWQge31cblxuICAvKipcbiAgICogQWRkIGEgdHJpZ2dlci4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IE9iamVjdH0gdmFsdWUgVmFsdWUgZm9yIHRoZSB0cmlnZ2VyLiBTdHJpbmcgb3IgbnVtYmVyIHJlY29tbWVuZGVkLiBPYmplY3QgcGFzc2VkIGluIHdpbGwgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN5bmM6IHRydWUsXG4gIH0pXG4gIGFkZFRyaWdnZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3QpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG1hcCBvZiB0cmlnZ2Vycy4gTWF5IHNob3cgYW4gSW4tQXBwIE1lc3NhZ2UgaWYgaXRzIHRyaWdnZXIgY29uZGl0aW9ucyB3ZXJlIG1ldC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0Pn0gdHJpZ2dlcnMgQWxsb3dzIHlvdSB0byBzZXQgbXVsdGlwbGUgdHJpZ2dlciBrZXkvdmFsdWUgcGFpcnMgc2ltdWx0YW5lb3VzbHkuIFBhc3MgYSBqc29uIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBsaWtlOiBge1wia2V5XCI6IFwidmFsdWVcIiwgXCJrZXkyXCI6IFwidmFsdWUyXCJ9YC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICBhZGRUcmlnZ2Vycyh0cmlnZ2VyczogT2JqZWN0KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc2luZ2xlIHRyaWdnZXIgZm9yIHRoZSBnaXZlbiBrZXkuIE1heSBzaG93IGFuIEluLUFwcCBNZXNzYWdlIGlmIGl0cyB0cmlnZ2VyIGNvbmRpdGlvbnMgd2VyZSBtZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IGZvciB0cmlnZ2VyIHRvIHJlbW92ZS5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICByZW1vdmVUcmlnZ2VyRm9yS2V5KGtleTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgbGlzdCBvZiB0cmlnZ2VycyBiYXNlZCBvbiBhIGNvbGxlY3Rpb24gKGFycmF5KSBvZiBrZXlzLiBNYXkgc2hvdyBhbiBJbi1BcHAgTWVzc2FnZSBpZiBpdHMgdHJpZ2dlciBjb25kaXRpb25zIHdlcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBrZXlzIFJlbW92ZXMgYSBjb2xsZWN0aW9uIG9mIHRyaWdnZXJzIGZyb20gdGhlaXIga2V5cy4gUGFzcyBhbiBhcnJheSBvZiB0cmlnZ2VyIGtleXMgbGlrZTogYFtcImtleTFcIiwgXCJrZXkyXCIsIFwia2V5M1wiXWAuXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgcmVtb3ZlVHJpZ2dlcnNGb3JLZXlzKGtleXM6IHN0cmluZ1tdKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdHJpZ2dlciB2YWx1ZSBmb3IgYSBwcm92aWRlZCB0cmlnZ2VyIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgZm9yIHRyaWdnZXIgdG8gZ2V0IHZhbHVlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBPYmplY3Q+fSBSZXR1cm4gdmFsdWUgc2V0IHdpdGggYGFkZFRyaWdnZXJgLCBvciBgbnVsbGAvYG5pbGAgKGlPUykgaWYgbmV2ZXIgc2V0IG9yIHJlbW92ZWQuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldFRyaWdnZXJWYWx1ZUZvcktleShrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgT2JqZWN0PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gdGVtcG9yYXJpbHkgcGF1c2UgYWxsIEluLUFwcCBNZXNzYWdlcy4gWW91IG1heSB3YW50IHRvIGRvIHRoaXMgd2hpbGUgdGhlIHVzZXIgaXMgZW5nYWdlZCBpbiBhbiBhY3Rpdml0eSB0aGF0IHlvdSBkb24ndCB3YW50IGEgbWVzc2FnZSB0byBpbnRlcnJ1cHQgKHN1Y2ggYXMgd2F0Y2hpbmcgYSB2aWRlbykuXG4gICAqIEFuIEluLUFwcCBNZXNzYWdlIHRoYXQgd291bGQgZGlzcGxheSBpZiBub3QgcGF1c2VkIHdpbGwgZGlzcGxheSByaWdodCBhZnRlciByZXN1bWUgaWYgaXRzIGNvbmRpdGlvbnMgdG8gZGlzcGxheSByZW1haW5zIHNhdGlzZmllZC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBwYXVzZSBUbyBwYXVzZSwgc2V0IGB0cnVlYC4gVG8gcmVzdW1lLCBzZXQgYGZhbHNlYC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzeW5jOiB0cnVlLFxuICB9KVxuICBwYXVzZUluQXBwTWVzc2FnZXMocGF1c2U6IGJvb2xlYW4pOiB2b2lkIHt9XG59XG4iXX0=
|
package/ngx/bundle.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var core$1 = require('@angular/core');
|
|
7
|
+
var core = require('@awesome-cordova-plugins/core');
|
|
8
|
+
require('rxjs');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* **ANDROID** - Privacy setting for how the notification should be shown on the lockscreen of Android 5+ devices.
|
|
12
|
+
*/
|
|
13
|
+
exports.OSLockScreenVisibility = void 0;
|
|
14
|
+
(function (OSLockScreenVisibility) {
|
|
15
|
+
/**
|
|
16
|
+
* Fully visible (default)
|
|
17
|
+
*/
|
|
18
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Public"] = 1] = "Public";
|
|
19
|
+
/**
|
|
20
|
+
* Contents are hidden
|
|
21
|
+
*/
|
|
22
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Private"] = 0] = "Private";
|
|
23
|
+
/**
|
|
24
|
+
* Not shown
|
|
25
|
+
*/
|
|
26
|
+
OSLockScreenVisibility[OSLockScreenVisibility["Secret"] = -1] = "Secret";
|
|
27
|
+
})(exports.OSLockScreenVisibility || (exports.OSLockScreenVisibility = {}));
|
|
28
|
+
/**
|
|
29
|
+
* How the notification was displayed to the user. Part of OSNotification. See inFocusDisplaying for more information on how this is used.
|
|
30
|
+
*/
|
|
31
|
+
exports.OSDisplayType = void 0;
|
|
32
|
+
(function (OSDisplayType) {
|
|
33
|
+
/**
|
|
34
|
+
* notification is silent, or inFocusDisplaying is disabled.
|
|
35
|
+
*/
|
|
36
|
+
OSDisplayType[OSDisplayType["None"] = 0] = "None";
|
|
37
|
+
/**
|
|
38
|
+
* (**DEFAULT**) - native alert dialog display.
|
|
39
|
+
*/
|
|
40
|
+
OSDisplayType[OSDisplayType["InAppAlert"] = 1] = "InAppAlert";
|
|
41
|
+
/**
|
|
42
|
+
* native notification display.
|
|
43
|
+
*/
|
|
44
|
+
OSDisplayType[OSDisplayType["Notification"] = 2] = "Notification";
|
|
45
|
+
})(exports.OSDisplayType || (exports.OSDisplayType = {}));
|
|
46
|
+
exports.OSActionType = void 0;
|
|
47
|
+
(function (OSActionType) {
|
|
48
|
+
OSActionType[OSActionType["Opened"] = 0] = "Opened";
|
|
49
|
+
OSActionType[OSActionType["ActionTake"] = 1] = "ActionTake";
|
|
50
|
+
})(exports.OSActionType || (exports.OSActionType = {}));
|
|
51
|
+
var OneSignal = /** @class */ (function (_super) {
|
|
52
|
+
tslib.__extends(OneSignal, _super);
|
|
53
|
+
function OneSignal() {
|
|
54
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
55
|
+
/**
|
|
56
|
+
* constants to use in inFocusDisplaying()
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
_this.OSInFocusDisplayOption = {
|
|
60
|
+
None: 0,
|
|
61
|
+
InAppAlert: 1,
|
|
62
|
+
Notification: 2,
|
|
63
|
+
};
|
|
64
|
+
return _this;
|
|
65
|
+
}
|
|
66
|
+
OneSignal.prototype.startInit = function (appId, googleProjectNumber) { return core.cordova(this, "startInit", { "sync": true }, arguments); };
|
|
67
|
+
OneSignal.prototype.handleNotificationReceived = function () { return core.cordova(this, "handleNotificationReceived", { "observable": true }, arguments); };
|
|
68
|
+
OneSignal.prototype.handleNotificationOpened = function () { return core.cordova(this, "handleNotificationOpened", { "observable": true }, arguments); };
|
|
69
|
+
OneSignal.prototype.handleInAppMessageClicked = function () { return core.cordova(this, "handleInAppMessageClicked", { "observable": true }, arguments); };
|
|
70
|
+
OneSignal.prototype.iOSSettings = function (settings) { return core.cordova(this, "iOSSettings", { "sync": true, "platforms": ["iOS"] }, arguments); };
|
|
71
|
+
OneSignal.prototype.endInit = function () { return core.cordova(this, "endInit", { "sync": true }, arguments); };
|
|
72
|
+
OneSignal.prototype.promptForPushNotificationsWithUserResponse = function () { return core.cordova(this, "promptForPushNotificationsWithUserResponse", { "platforms": ["iOS"] }, arguments); };
|
|
73
|
+
OneSignal.prototype.getTags = function () { return core.cordova(this, "getTags", {}, arguments); };
|
|
74
|
+
OneSignal.prototype.getIds = function () { return core.cordova(this, "getIds", {}, arguments); };
|
|
75
|
+
OneSignal.prototype.sendTag = function (key, value) { return core.cordova(this, "sendTag", { "sync": true }, arguments); };
|
|
76
|
+
OneSignal.prototype.sendTags = function (json) { return core.cordova(this, "sendTags", { "sync": true }, arguments); };
|
|
77
|
+
OneSignal.prototype.deleteTag = function (key) { return core.cordova(this, "deleteTag", { "sync": true }, arguments); };
|
|
78
|
+
OneSignal.prototype.deleteTags = function (keys) { return core.cordova(this, "deleteTags", { "sync": true }, arguments); };
|
|
79
|
+
OneSignal.prototype.registerForPushNotifications = function () { return core.cordova(this, "registerForPushNotifications", { "sync": true }, arguments); };
|
|
80
|
+
OneSignal.prototype.enableVibrate = function (enable) { return core.cordova(this, "enableVibrate", { "sync": true }, arguments); };
|
|
81
|
+
OneSignal.prototype.enableSound = function (enable) { return core.cordova(this, "enableSound", { "sync": true }, arguments); };
|
|
82
|
+
OneSignal.prototype.inFocusDisplaying = function (displayOption) { return core.cordova(this, "inFocusDisplaying", { "sync": true }, arguments); };
|
|
83
|
+
OneSignal.prototype.setSubscription = function (enable) { return core.cordova(this, "setSubscription", { "sync": true }, arguments); };
|
|
84
|
+
OneSignal.prototype.getPermissionSubscriptionState = function () { return core.cordova(this, "getPermissionSubscriptionState", {}, arguments); };
|
|
85
|
+
OneSignal.prototype.postNotification = function (notificationObj) { return core.cordova(this, "postNotification", {}, arguments); };
|
|
86
|
+
OneSignal.prototype.cancelNotification = function (notificationId) { return core.cordova(this, "cancelNotification", { "sync": true }, arguments); };
|
|
87
|
+
OneSignal.prototype.promptLocation = function () { return core.cordova(this, "promptLocation", { "sync": true }, arguments); };
|
|
88
|
+
OneSignal.prototype.syncHashedEmail = function (email) { return core.cordova(this, "syncHashedEmail", { "sync": true }, arguments); };
|
|
89
|
+
OneSignal.prototype.setLogLevel = function (logLevel) { return core.cordova(this, "setLogLevel", { "sync": true }, arguments); };
|
|
90
|
+
OneSignal.prototype.setLocationShared = function (shared) { return core.cordova(this, "setLocationShared", { "sync": true }, arguments); };
|
|
91
|
+
OneSignal.prototype.addPermissionObserver = function () { return core.cordova(this, "addPermissionObserver", { "observable": true }, arguments); };
|
|
92
|
+
OneSignal.prototype.addSubscriptionObserver = function () { return core.cordova(this, "addSubscriptionObserver", { "observable": true }, arguments); };
|
|
93
|
+
OneSignal.prototype.setEmail = function (email, emailAuthToken) { return core.cordova(this, "setEmail", {}, arguments); };
|
|
94
|
+
OneSignal.prototype.logoutEmail = function () { return core.cordova(this, "logoutEmail", {}, arguments); };
|
|
95
|
+
OneSignal.prototype.addEmailSubscriptionObserver = function () { return core.cordova(this, "addEmailSubscriptionObserver", { "observable": true }, arguments); };
|
|
96
|
+
OneSignal.prototype.clearOneSignalNotifications = function () { return core.cordova(this, "clearOneSignalNotifications", { "sync": true }, arguments); };
|
|
97
|
+
OneSignal.prototype.setRequiresUserPrivacyConsent = function (required) { return core.cordova(this, "setRequiresUserPrivacyConsent", {}, arguments); };
|
|
98
|
+
OneSignal.prototype.provideUserConsent = function (granted) { return core.cordova(this, "provideUserConsent", {}, arguments); };
|
|
99
|
+
OneSignal.prototype.userProvidedPrivacyConsent = function (callback) { return core.cordova(this, "userProvidedPrivacyConsent", {}, arguments); };
|
|
100
|
+
OneSignal.prototype.setExternalUserId = function (externalId) { return core.cordova(this, "setExternalUserId", {}, arguments); };
|
|
101
|
+
OneSignal.prototype.removeExternalUserId = function () { return core.cordova(this, "removeExternalUserId", {}, arguments); };
|
|
102
|
+
OneSignal.prototype.addTrigger = function (key, value) { return core.cordova(this, "addTrigger", { "sync": true }, arguments); };
|
|
103
|
+
OneSignal.prototype.addTriggers = function (triggers) { return core.cordova(this, "addTriggers", { "sync": true }, arguments); };
|
|
104
|
+
OneSignal.prototype.removeTriggerForKey = function (key) { return core.cordova(this, "removeTriggerForKey", { "sync": true }, arguments); };
|
|
105
|
+
OneSignal.prototype.removeTriggersForKeys = function (keys) { return core.cordova(this, "removeTriggersForKeys", { "sync": true }, arguments); };
|
|
106
|
+
OneSignal.prototype.getTriggerValueForKey = function (key) { return core.cordova(this, "getTriggerValueForKey", {}, arguments); };
|
|
107
|
+
OneSignal.prototype.pauseInAppMessages = function (pause) { return core.cordova(this, "pauseInAppMessages", { "sync": true }, arguments); };
|
|
108
|
+
OneSignal.pluginName = "OneSignal";
|
|
109
|
+
OneSignal.plugin = "onesignal-cordova-plugin";
|
|
110
|
+
OneSignal.pluginRef = "plugins.OneSignal";
|
|
111
|
+
OneSignal.repo = "https://github.com/OneSignal/OneSignal-Cordova-SDK";
|
|
112
|
+
OneSignal.platforms = ["Amazon Fire OS", "Android", "iOS", "Windows"];
|
|
113
|
+
OneSignal.decorators = [
|
|
114
|
+
{ type: core$1.Injectable }
|
|
115
|
+
];
|
|
116
|
+
return OneSignal;
|
|
117
|
+
}(core.AwesomeCordovaNativePlugin));
|
|
118
|
+
|
|
119
|
+
exports.OneSignal = OneSignal;
|