@awesome-cordova-plugins/urbanairship 6.4.0 → 6.5.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/ngx/bundle.js +3 -3
- package/ngx/index.js +3 -3
- package/ngx/package.json +1 -1
- package/package.json +1 -1
package/ngx/bundle.js
CHANGED
|
@@ -145,8 +145,8 @@ var UrbanAirShip = /** @class */ (function (_super) {
|
|
|
145
145
|
UrbanAirShip.prototype.setCurrentLocale = function (locale) { return core.cordova(this, "setCurrentLocale", {}, arguments); };
|
|
146
146
|
UrbanAirShip.prototype.getCurrentLocale = function () { return core.cordova(this, "getCurrentLocale", {}, arguments); };
|
|
147
147
|
UrbanAirShip.prototype.clearLocale = function () { return core.cordova(this, "clearLocale", {}, arguments); };
|
|
148
|
-
UrbanAirShip.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
149
|
-
UrbanAirShip.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
148
|
+
UrbanAirShip.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: UrbanAirShip, deps: null, target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
149
|
+
UrbanAirShip.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: UrbanAirShip });
|
|
150
150
|
UrbanAirShip.pluginName = "UrbanAirShip";
|
|
151
151
|
UrbanAirShip.plugin = "urbanairship-cordova";
|
|
152
152
|
UrbanAirShip.pluginRef = "window.UAirship";
|
|
@@ -156,7 +156,7 @@ var UrbanAirShip = /** @class */ (function (_super) {
|
|
|
156
156
|
UrbanAirShip = tslib.__decorate([], UrbanAirShip);
|
|
157
157
|
return UrbanAirShip;
|
|
158
158
|
}(core.AwesomeCordovaNativePlugin));
|
|
159
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
159
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: UrbanAirShip, decorators: [{
|
|
160
160
|
type: i0.Injectable
|
|
161
161
|
}], propDecorators: { onDeepLink: [], onRegistration: [], onInboxUpdated: [], onShowInbox: [], onPushReceived: [], onNotificationOpened: [], onNotificationOptInStatus: [], reattach: [], takeOff: [], setAndroidNotificationConfig: [], setAutoLaunchDefaultMessageCenter: [], setUserNotificationsEnabled: [], isUserNotificationsEnabled: [], isAppNotificationsEnabled: [], getChannelID: [], getLaunchNotification: [], getDeepLink: [], getTags: [], setTags: [], getAlias: [], setAlias: [], isQuietTimeEnabled: [], setQuietTimeEnabled: [], isInQuietTime: [], getQuietTime: [], setQuietTime: [], setAnalyticsEnabled: [], isAnalyticsEnabled: [], getNamedUser: [], setNamedUser: [], runAction: [], editNamedUserTagGroups: [], editChannelTagGroups: [], editChannelAttributes: [], editNamedUserAttributes: [], editChannelSubscriptionLists: [], editContactSubscriptionLists: [], getChannelSubscriptionLists: [], getContactSubscriptionLists: [], setAssociatedIdentifier: [], setLocationEnabled: [], isLocationEnabled: [], setBackgroundLocationEnabled: [], isBackgroundLocationEnabled: [], displayMessageCenter: [], dismissMessageCenter: [], dismissInboxMessage: [], dismissOverlayInboxMessage: [], getInboxMessages: [], markInboxMessageRead: [], deleteInboxMessage: [], displayInboxMessage: [], refreshInbox: [], overlayInboxMessage: [], clearNotification: [], clearNotifications: [], getActiveNotifications: [], setAutobadgeEnabled: [], setBadgeNumber: [], getBadgeNumber: [], resetBadge: [], setNotificationTypes: [], setPresentationOptions: [], isSoundEnabled: [], setSoundEnabled: [], isVibrateEnabled: [], setVibrateEnabled: [], addCustomEvent: [], trackScreen: [], enableFeature: [], disableFeature: [], getEnabledFeatures: [], isFeatureEnabled: [], getPreferenceCenterConfig: [], openPreferenceCenter: [], setCurrentLocale: [], getCurrentLocale: [], clearLocale: [] } });
|
|
162
162
|
|
package/ngx/index.js
CHANGED
|
@@ -124,8 +124,8 @@ var UrbanAirShip = /** @class */ (function (_super) {
|
|
|
124
124
|
UrbanAirShip.prototype.setCurrentLocale = function (locale) { return cordova(this, "setCurrentLocale", {}, arguments); };
|
|
125
125
|
UrbanAirShip.prototype.getCurrentLocale = function () { return cordova(this, "getCurrentLocale", {}, arguments); };
|
|
126
126
|
UrbanAirShip.prototype.clearLocale = function () { return cordova(this, "clearLocale", {}, arguments); };
|
|
127
|
-
UrbanAirShip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
128
|
-
UrbanAirShip.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
127
|
+
UrbanAirShip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UrbanAirShip, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
128
|
+
UrbanAirShip.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UrbanAirShip });
|
|
129
129
|
UrbanAirShip.pluginName = "UrbanAirShip";
|
|
130
130
|
UrbanAirShip.plugin = "urbanairship-cordova";
|
|
131
131
|
UrbanAirShip.pluginRef = "window.UAirship";
|
|
@@ -136,7 +136,7 @@ var UrbanAirShip = /** @class */ (function (_super) {
|
|
|
136
136
|
return UrbanAirShip;
|
|
137
137
|
}(AwesomeCordovaNativePlugin));
|
|
138
138
|
export { UrbanAirShip };
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UrbanAirShip, decorators: [{
|
|
140
140
|
type: Injectable
|
|
141
141
|
}], propDecorators: { onDeepLink: [], onRegistration: [], onInboxUpdated: [], onShowInbox: [], onPushReceived: [], onNotificationOpened: [], onNotificationOptInStatus: [], reattach: [], takeOff: [], setAndroidNotificationConfig: [], setAutoLaunchDefaultMessageCenter: [], setUserNotificationsEnabled: [], isUserNotificationsEnabled: [], isAppNotificationsEnabled: [], getChannelID: [], getLaunchNotification: [], getDeepLink: [], getTags: [], setTags: [], getAlias: [], setAlias: [], isQuietTimeEnabled: [], setQuietTimeEnabled: [], isInQuietTime: [], getQuietTime: [], setQuietTime: [], setAnalyticsEnabled: [], isAnalyticsEnabled: [], getNamedUser: [], setNamedUser: [], runAction: [], editNamedUserTagGroups: [], editChannelTagGroups: [], editChannelAttributes: [], editNamedUserAttributes: [], editChannelSubscriptionLists: [], editContactSubscriptionLists: [], getChannelSubscriptionLists: [], getContactSubscriptionLists: [], setAssociatedIdentifier: [], setLocationEnabled: [], isLocationEnabled: [], setBackgroundLocationEnabled: [], isBackgroundLocationEnabled: [], displayMessageCenter: [], dismissMessageCenter: [], dismissInboxMessage: [], dismissOverlayInboxMessage: [], getInboxMessages: [], markInboxMessageRead: [], deleteInboxMessage: [], displayInboxMessage: [], refreshInbox: [], overlayInboxMessage: [], clearNotification: [], clearNotifications: [], getActiveNotifications: [], setAutobadgeEnabled: [], setBadgeNumber: [], getBadgeNumber: [], resetBadge: [], setNotificationTypes: [], setPresentationOptions: [], isSoundEnabled: [], setSoundEnabled: [], isVibrateEnabled: [], setVibrateEnabled: [], addCustomEvent: [], trackScreen: [], enableFeature: [], disableFeature: [], getEnabledFeatures: [], isFeatureEnabled: [], getPreferenceCenterConfig: [], openPreferenceCenter: [], setCurrentLocale: [], getCurrentLocale: [], clearLocale: [] } });
|
|
142
142
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3BsdWdpbnMvdXJiYW5haXJzaGlwL25neC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLHVDQUErQyxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBd0NsQzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsdURBQVEsQ0FBQTtJQUNSLHlEQUFTLENBQUE7SUFDVCx5REFBUyxDQUFBO0lBQ1QseURBQVMsQ0FBQTtBQUNYLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLDZEQUFRLENBQUE7SUFDUiwrREFBUyxDQUFBO0lBQ1QsK0RBQVMsQ0FBQTtJQUNULCtEQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5Qjs7SUErQmlDLGdDQUEwQjs7OztJQWExRCxpQ0FBVTtJQWtCVixxQ0FBYztJQWNkLHFDQUFjO0lBaUJkLGtDQUFXO0lBc0JYLHFDQUFjO0lBcUJkLDJDQUFvQjtJQXVCcEIsZ0RBQXlCO0lBVXpCLCtCQUFRO0lBc0JSLDhCQUFPLGFBQUMsTUFBVztJQWFuQixtREFBNEIsYUFBQyxNQUFXO0lBY3hDLHdEQUFpQyxhQUFDLE9BQWdCO0lBYWxELGtEQUEyQixhQUFDLE9BQWdCO0lBYTVDLGlEQUEwQjtJQWMxQixnREFBeUI7SUFhekIsbUNBQVk7SUFpQlosNENBQXFCLGFBQUMsS0FBYztJQWNwQyxrQ0FBVyxhQUFDLEtBQWM7SUFhMUIsOEJBQU87SUFhUCw4QkFBTyxhQUFDLElBQWM7SUFjdEIsK0JBQVE7SUFjUiwrQkFBUSxhQUFDLEtBQWE7SUFhdEIseUNBQWtCO0lBYWxCLDBDQUFtQixhQUFDLE9BQWdCO0lBYXBDLG9DQUFhO0lBa0JiLG1DQUFZO0lBZ0JaLG1DQUFZLGFBQUMsU0FBaUIsRUFBRSxXQUFtQixFQUFFLE9BQWUsRUFBRSxTQUFpQjtJQWtCdkYsMENBQW1CLGFBQUMsT0FBZ0I7SUFhcEMseUNBQWtCO0lBYWxCLG1DQUFZO0lBYVosbUNBQVksYUFBQyxTQUFpQjtJQWU5QixnQ0FBUyxhQUFDLFVBQWtCLEVBQUUsV0FBZ0I7SUFROUMsNkNBQXNCO0lBUXRCLDJDQUFvQjtJQVFwQiw0Q0FBcUI7SUFRckIsOENBQXVCO0lBV3ZCLG1EQUE0QjtJQVc1QixtREFBNEI7SUFnQjVCLGtEQUEyQjtJQWdCM0Isa0RBQTJCO0lBYzNCLDhDQUF1QixhQUFDLEdBQVcsRUFBRSxVQUFrQjtJQWV2RCx5Q0FBa0IsYUFBQyxPQUFnQjtJQWNuQyx3Q0FBaUI7SUFjakIsbURBQTRCLGFBQUMsT0FBZ0I7SUFjN0Msa0RBQTJCO0lBWTNCLDJDQUFvQjtJQVlwQiwyQ0FBb0I7SUFZcEIsMENBQW1CO0lBYW5CLGlEQUEwQjtJQW1CMUIsdUNBQWdCO0lBYWhCLDJDQUFvQixhQUFDLFNBQWlCO0lBYXRDLHlDQUFrQixhQUFDLFNBQWlCO0lBYXBDLDBDQUFtQixhQUFDLFNBQWlCO0lBZXJDLG1DQUFZO0lBY1osMENBQW1CLGFBQUMsU0FBaUI7SUFZckMsd0NBQWlCLGFBQUMsVUFBa0I7SUFZcEMseUNBQWtCO0lBYWxCLDZDQUFzQjtJQWV0QiwwQ0FBbUIsYUFBQyxPQUFnQjtJQWFwQyxxQ0FBYyxhQUFDLEtBQWE7SUFhNUIscUNBQWM7SUFZZCxpQ0FBVTtJQWNWLDJDQUFvQixhQUFDLEtBQXVCO0lBYzVDLDZDQUFzQixhQUFDLE9BQTRCO0lBZW5ELHFDQUFjO0lBYWQsc0NBQWUsYUFBQyxPQUFnQjtJQWFoQyx1Q0FBZ0I7SUFhaEIsd0NBQWlCLGFBQUMsT0FBZ0I7SUFpQmxDLHFDQUFjLGFBQUMsS0FBYTtJQWlCNUIsa0NBQVcsYUFBQyxNQUFjO0lBaUIxQixvQ0FBYSxhQUFDLFFBQWtCO0lBaUJoQyxxQ0FBYyxhQUFDLFFBQWtCO0lBSWpDOzs7Ozs7OztPQVFHO0lBQ0gseUNBQWtCLEdBQWxCLFVBQW1CLFFBQWtCO1FBQ25DLE9BQU87SUFDVCxDQUFDO0lBY0QseUNBQWtCO0lBaUJsQix1Q0FBZ0IsYUFBQyxRQUFrQjtJQWlCbkMsZ0RBQXlCLGFBQUMsa0JBQTBCO0lBaUJwRCwyQ0FBb0IsYUFBQyxtQkFBMkI7SUFjaEQsdUNBQWdCLGFBQUMsTUFBYztJQWMvQix1Q0FBZ0I7SUFhaEIsa0NBQVc7OEdBcG1DQSxZQUFZO2tIQUFaLFlBQVk7Ozs7Ozs7SUFBWixZQUFZLGtCQUFaLFlBQVk7dUJBakd6QjtFQWlHa0MsMEJBQTBCO1NBQS9DLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVTs4QkFjVCxVQUFVLE1Ba0JWLGNBQWMsTUFjZCxjQUFjLE1BaUJkLFdBQVcsTUFzQlgsY0FBYyxNQXFCZCxvQkFBb0IsTUF1QnBCLHlCQUF5QixNQVV6QixRQUFRLE1Bc0JSLE9BQU8sTUFhUCw0QkFBNEIsTUFjNUIsaUNBQWlDLE1BYWpDLDJCQUEyQixNQWEzQiwwQkFBMEIsTUFjMUIseUJBQXlCLE1BYXpCLFlBQVksTUFpQloscUJBQXFCLE1BY3JCLFdBQVcsTUFhWCxPQUFPLE1BYVAsT0FBTyxNQWNQLFFBQVEsTUFjUixRQUFRLE1BYVIsa0JBQWtCLE1BYWxCLG1CQUFtQixNQWFuQixhQUFhLE1Ba0JiLFlBQVksTUFnQlosWUFBWSxNQWtCWixtQkFBbUIsTUFhbkIsa0JBQWtCLE1BYWxCLFlBQVksTUFhWixZQUFZLE1BZVosU0FBUyxNQVFULHNCQUFzQixNQVF0QixvQkFBb0IsTUFRcEIscUJBQXFCLE1BUXJCLHVCQUF1QixNQVd2Qiw0QkFBNEIsTUFXNUIsNEJBQTRCLE1BZ0I1QiwyQkFBMkIsTUFnQjNCLDJCQUEyQixNQWMzQix1QkFBdUIsTUFldkIsa0JBQWtCLE1BY2xCLGlCQUFpQixNQWNqQiw0QkFBNEIsTUFjNUIsMkJBQTJCLE1BWTNCLG9CQUFvQixNQVlwQixvQkFBb0IsTUFZcEIsbUJBQW1CLE1BYW5CLDBCQUEwQixNQW1CMUIsZ0JBQWdCLE1BYWhCLG9CQUFvQixNQWFwQixrQkFBa0IsTUFhbEIsbUJBQW1CLE1BZW5CLFlBQVksTUFjWixtQkFBbUIsTUFZbkIsaUJBQWlCLE1BWWpCLGtCQUFrQixNQWFsQixzQkFBc0IsTUFldEIsbUJBQW1CLE1BYW5CLGNBQWMsTUFhZCxjQUFjLE1BWWQsVUFBVSxNQWNWLG9CQUFvQixNQWNwQixzQkFBc0IsTUFldEIsY0FBYyxNQWFkLGVBQWUsTUFhZixnQkFBZ0IsTUFhaEIsaUJBQWlCLE1BaUJqQixjQUFjLE1BaUJkLFdBQVcsTUFpQlgsYUFBYSxNQWlCYixjQUFjLE1BNkJkLGtCQUFrQixNQWlCbEIsZ0JBQWdCLE1BaUJoQix5QkFBeUIsTUFpQnpCLG9CQUFvQixNQWNwQixnQkFBZ0IsTUFjaEIsZ0JBQWdCLE1BYWhCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbHVnaW4sIENvcmRvdmEsIEF3ZXNvbWVDb3Jkb3ZhTmF0aXZlUGx1Z2luIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgVUFpcnNoaXAgVGFnIEVkaXRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ0dyb3VwRWRpdG9yIHtcbiAgYWRkVGFncyh0YWdHcm91cDogc3RyaW5nLCB0YWdzOiBzdHJpbmdbXSk6IFRhZ0dyb3VwRWRpdG9yO1xuICByZW1vdmVUYWdzKHRhZ0dyb3VwOiBzdHJpbmcsIHRhZ3M6IHN0cmluZ1tdKTogVGFnR3JvdXBFZGl0b3I7XG4gIGFwcGx5KHN1Y2Nlc3M6ICgpID0+IHZvaWQsIGZhaWx1cmU6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpOiBUYWdHcm91cEVkaXRvcjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIFVBaXJzaGlwIEF0dHJpYnV0ZXMgRWRpdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlc0VkaXRvciB7XG4gIHNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSk6IEF0dHJpYnV0ZXNFZGl0b3I7XG4gIHJlbW92ZUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpOiBBdHRyaWJ1dGVzRWRpdG9yO1xuICBhcHBseShzdWNjZXNzOiAoKSA9PiB2b2lkLCBmYWlsdXJlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKTogQXR0cmlidXRlc0VkaXRvcjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIFVBaXJzaGlwIENoYW5uZWxTdWJzY3JpcHRpb25MaXN0IEVkaXRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxTdWJzY3JpcHRpb25MaXN0RWRpdG9yIHtcbiAgc3Vic2NyaWJlKHN1YnNjcmlwdGlvbkxpc3RJRDogc3RyaW5nKTogQ2hhbm5lbFN1YnNjcmlwdGlvbkxpc3RFZGl0b3I7XG4gIHVuc3Vic2NyaWJlKHN1YnNjcmlwdGlvbkxpc3RJRDogc3RyaW5nKTogQ2hhbm5lbFN1YnNjcmlwdGlvbkxpc3RFZGl0b3I7XG4gIGFwcGx5KHN1Y2Nlc3M6ICgpID0+IHZvaWQsIGZhaWx1cmU6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpOiBDaGFubmVsU3Vic2NyaXB0aW9uTGlzdEVkaXRvcjtcbn1cblxuZXhwb3J0IHR5cGUgQ29udGFjdFN1YnNjcmlwdGlvblNjb3BlID0gJ2FwcCcgfCAnZW1haWwnIHwgJ3B1c2gnIHwgJ3Ntcyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBVQWlyc2hpcCBDb250YWN0U3Vic2NyaXB0aW9uTGlzdCBFZGl0b3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWN0U3Vic2NyaXB0aW9uTGlzdEVkaXRvciB7XG4gIHN1YnNjcmliZShzdWJzY3JpcHRpb25MaXN0SUQ6IHN0cmluZywgY29udGFjdFNjb3BlOiBDb250YWN0U3Vic2NyaXB0aW9uU2NvcGUpOiBDb250YWN0U3Vic2NyaXB0aW9uTGlzdEVkaXRvcjtcbiAgdW5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uTGlzdElEOiBzdHJpbmcsIGNvbnRhY3RTY29wZTogQ29udGFjdFN1YnNjcmlwdGlvblNjb3BlKTogQ29udGFjdFN1YnNjcmlwdGlvbkxpc3RFZGl0b3I7XG4gIGFwcGx5KHN1Y2Nlc3M6ICgpID0+IHZvaWQsIGZhaWx1cmU6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpOiBDb250YWN0U3Vic2NyaXB0aW9uTGlzdEVkaXRvcjtcbn1cblxuLyoqXG4gKiBFbnVtIGZvciBub3RpZmljYXRpb24gdHlwZXMuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25UeXBlIHtcbiAgbm9uZSA9IDAsXG4gIGJhZGdlID0gMSxcbiAgc291bmQgPSAyLFxuICBhbGVydCA9IDQsXG59XG5cbi8qKlxuICogRW51bSBmb3IgcHJlc2VudGF0aW9uIG9wdGlvbnMuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgZW51bSBQcmVzZW50YXRpb25PcHRpb25zIHtcbiAgbm9uZSA9IDAsXG4gIGJhZGdlID0gMSxcbiAgc291bmQgPSAyLFxuICBhbGVydCA9IDQsXG59XG5cbi8qKlxuICogQG5hbWUgVXJiYW5BaXJTaGlwXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoaXMgcGx1Z2luIGRvZXMgc29tZXRoaW5nXG4gKiBAdXNhZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IFVyYmFuQWlyU2hpcCB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy91cmJhbmFpcnNoaXAvbmd4JztcbiAqXG4gKlxuICogY29uc3RydWN0b3IocHJpdmF0ZSB1cmJhbkFpclNoaXA6IFVyYmFuQWlyU2hpcCkgeyB9XG4gKlxuICogLi4uXG4gKlxuICpcbiAqIHRoaXMudXJiYW5BaXJTaGlwLnRha2VPZmYoY29uZmlnKVxuICogICAudGhlbigocmVzOiBhbnkpID0+IGNvbnNvbGUubG9nKHJlcykpXG4gKiAgIC5jYXRjaCgoZXJyb3I6IGFueSkgPT4gY29uc29sZS5lcnJvcihlcnJvcikpO1xuICpcbiAqIGBgYFxuICovXG5AUGx1Z2luKHtcbiAgcGx1Z2luTmFtZTogJ1VyYmFuQWlyU2hpcCcsXG4gIHBsdWdpbjogJ3VyYmFuYWlyc2hpcC1jb3Jkb3ZhJyxcbiAgcGx1Z2luUmVmOiAnd2luZG93LlVBaXJzaGlwJyxcbiAgcmVwbzogJ2h0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3VyYmFuYWlyc2hpcC1jb3Jkb3ZhJyxcbiAgaW5zdGFsbDogJ2lvbmljIGNvcmRvdmEgcGx1Z2luIGFkZCB1cmJhbmFpcnNoaXAtY29yZG92YScsXG4gIHBsYXRmb3JtczogWydBbmRyb2lkJywgJ2lPUyddLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcmJhbkFpclNoaXAgZXh0ZW5kcyBBd2Vzb21lQ29yZG92YU5hdGl2ZVBsdWdpbiB7XG4gIC8qKlxuICAgKiBFdmVudCBmaXJlZCB3aGVuIGEgbmV3IGRlZXAgbGluayBpcyByZWNlaXZlZC5cbiAgICpcbiAgICogQGV2ZW50IGRlZXBfbGlua1xuICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2RlZXBMaW5rXSBUaGUgZGVlcCBsaW5rLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIGV2ZW50T2JzZXJ2YWJsZTogdHJ1ZSxcbiAgICBldmVudDogJ3VyYmFuYWlyc2hpcC5kZWVwX2xpbmsnLFxuICAgIGVsZW1lbnQ6ICdkb2N1bWVudCcsXG4gIH0pXG4gIG9uRGVlcExpbmsoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZmlyZWQgd2hlbiBhIGNoYW5uZWwgcmVnaXN0cmF0aW9uIG9jY3Vycy5cbiAgICpcbiAgICogQGV2ZW50IHJlZ2lzdHJhdGlvblxuICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYW5uZWxJRF0gVGhlIGNoYW5uZWwgSUQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcmVnaXN0cmF0aW9uVG9rZW5dIFRoZSBkZXZpY2VUb2tlbiBvbiBpT1MsIGFuZCB0aGUgRkNNL0FETSB0b2tlbiBvbiBBbmRyb2lkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2Vycm9yXSBFcnJvciBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3VycmVkLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIGV2ZW50T2JzZXJ2YWJsZTogdHJ1ZSxcbiAgICBldmVudDogJ3VyYmFuYWlyc2hpcC5yZWdpc3RyYXRpb24nLFxuICAgIGVsZW1lbnQ6ICdkb2N1bWVudCcsXG4gIH0pXG4gIG9uUmVnaXN0cmF0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIGluYm94IGlzIHVwZGF0ZWQuXG4gICAqXG4gICAqIEBldmVudCBpbmJveF91cGRhdGVkXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgZXZlbnRPYnNlcnZhYmxlOiB0cnVlLFxuICAgIGV2ZW50OiAndXJiYW5haXJzaGlwLmluYm94X3VwZGF0ZWQnLFxuICAgIGVsZW1lbnQ6ICdkb2N1bWVudCcsXG4gIH0pXG4gIG9uSW5ib3hVcGRhdGVkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIGluYm94IG5lZWRzIHRvIGJlIGRpc3BsYXllZC4gVGhpcyBldmVudCBpcyBvbmx5IGVtaXR0ZWQgaWYgYXV0b1xuICAgKiBsYXVuY2ggbWVzc2FnZSBjZW50ZXIgaXMgZGlzYWJsZWQuXG4gICAqXG4gICAqIEBldmVudCBzaG93X2luYm94XG4gICAqIEB0eXBlIHtvYmplY3R9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZUlkXSBUaGUgb3B0aW9uYWwgbWVzc2FnZSBJRC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBldmVudE9ic2VydmFibGU6IHRydWUsXG4gICAgZXZlbnQ6ICd1cmJhbmFpcnNoaXAuc2hvd19pbmJveCcsXG4gICAgZWxlbWVudDogJ2RvY3VtZW50JyxcbiAgfSlcbiAgb25TaG93SW5ib3goKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZmlyZWQgd2hlbiBhIHB1c2ggaXMgcmVjZWl2ZWQuXG4gICAqXG4gICAqIEBldmVudCBwdXNoXG4gICAqIEB0eXBlIHtvYmplY3R9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIFRoZSBwdXNoIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSBUaGUgcHVzaCB0aXRsZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YnRpdGxlIFRoZSBwdXNoIHN1YnRpdGxlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gZXh0cmFzIEFueSBwdXNoIGV4dHJhcy5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFwcyBUaGUgcmF3IGFwcyBkaWN0aW9uYXJ5IChpT1Mgb25seSlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtub3RpZmljYXRpb25faWRdIFRoZSBBbmRyb2lkIG5vdGlmaWNhdGlvbiBJRC4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiBub3RpZmljYXRpb25JZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtub3RpZmljYXRpb25JZF0gVGhlIG5vdGlmaWNhdGlvbiBJRC5cbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBldmVudE9ic2VydmFibGU6IHRydWUsXG4gICAgZXZlbnQ6ICd1cmJhbmFpcnNoaXAucHVzaCcsXG4gICAgZWxlbWVudDogJ2RvY3VtZW50JyxcbiAgfSlcbiAgb25QdXNoUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZmlyZWQgd2hlbiBub3RpZmljYXRpb24gb3BlbmVkLlxuICAgKlxuICAgKiBAZXZlbnQgbm90aWZpY2F0aW9uX29wZW5lZFxuICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgcHVzaCBhbGVydCBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gZXh0cmFzIEFueSBwdXNoIGV4dHJhcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtub3RpZmljYXRpb25faWRdIFRoZSBBbmRyb2lkIG5vdGlmaWNhdGlvbiBJRC4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiBub3RpZmljYXRpb25JZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtub3RpZmljYXRpb25JZF0gVGhlIG5vdGlmaWNhdGlvbiBJRC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthY3Rpb25JRF0gVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gYWN0aW9uIGJ1dHRvbiBpZiBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNGb3JlZ3JvdW5kIFdpbGwgYWx3YXlzIGJlIHRydWUgaWYgdGhlIHVzZXIgdGFwcyB0aGUgbWFpbiBub3RpZmljYXRpb24uIE90aGVyd2lzZSBpdHMgZGVmaW5lZCBieSB0aGUgbm90aWZpY2F0aW9uIGFjdGlvbiBidXR0b24uXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgZXZlbnRPYnNlcnZhYmxlOiB0cnVlLFxuICAgIGV2ZW50OiAndXJiYW5haXJzaGlwLm5vdGlmaWNhdGlvbl9vcGVuZWQnLFxuICAgIGVsZW1lbnQ6ICdkb2N1bWVudCcsXG4gIH0pXG4gIG9uTm90aWZpY2F0aW9uT3BlbmVkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIHVzZXIgbm90aWZpY2F0aW9uIG9wdC1pbiBzdGF0dXMgY2hhbmdlcy5cbiAgICpcbiAgICogQGV2ZW50IG5vdGlmaWNhdGlvbl9vcHRfaW5fc3RhdHVzXG4gICAqIEB0eXBlIHtvYmplY3R9XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0SW4gSWYgdGhlIHVzZXIgaXMgb3B0ZWQgaW4gb3Igbm90IHRvIHVzZXIgbm90aWZpY2F0aW9ucy5cbiAgICogQHBhcmFtIHtvYmplY3R9IFthdXRob3JpemVkTm90aWZpY2F0aW9uU2V0dGluZ3NdIGlPUyBvbmx5LiBBIG1hcCBvZiBhdXRob3JpemVkIHNldHRpbmdzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGF1dGhvcml6ZWROb3RpZmljYXRpb25TZXR0aW5ncy5hbGVydCBJZiBhbGVydHMgYXJlIGF1dGhvcml6ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXV0aG9yaXplZE5vdGlmaWNhdGlvblNldHRpbmdzLnNvdW5kIElmIHNvdW5kcyBhcmUgYXV0aG9yaXplZC5cbiAgICogQHBhcmFtIHtib29sZWFufSBhdXRob3JpemVkTm90aWZpY2F0aW9uU2V0dGluZ3MuYmFkZ2UgSWYgYmFkZ2VzIGFyZSBhdXRob3JpemVkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGF1dGhvcml6ZWROb3RpZmljYXRpb25TZXR0aW5ncy5jYXJQbGF5IElmIGNhciBwbGF5IGlzIGF1dGhvcml6ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXV0aG9yaXplZE5vdGlmaWNhdGlvblNldHRpbmdzLmxvY2tTY3JlZW4gSWYgdGhlIGxvY2sgc2NyZWVuIGlzIGF1dGhvcml6ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXV0aG9yaXplZE5vdGlmaWNhdGlvblNldHRpbmdzLm5vdGlmaWNhdGlvbkNlbnRlciBJZiB0aGUgbm90aWZpY2F0aW9uIGNlbnRlciBpcyBhdXRob3JpemVkLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIGV2ZW50T2JzZXJ2YWJsZTogdHJ1ZSxcbiAgICBldmVudDogJ3VyYmFuYWlyc2hpcC5ub3RpZmljYXRpb25fb3B0X2luX3N0YXR1cycsXG4gICAgZWxlbWVudDogJ2RvY3VtZW50JyxcbiAgfSlcbiAgb25Ob3RpZmljYXRpb25PcHRJblN0YXR1cygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1hdHRhY2hlcyBkb2N1bWVudCBldmVudCBsaXN0ZW5lcnMgaW4gdGhpcyB3ZWJ2aWV3XG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3luYzogdHJ1ZSxcbiAgfSlcbiAgcmVhdHRhY2goKTogdm9pZCB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRhaWxpemVzIFVyYmFuIEFpcnNoaXAuXG4gICAqXG4gICAqIFRoZSBwbHVnaW4gd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgdGFrZU9mZiBkdXJpbmcgdGhlIG5leHQgYXBwIGluaXQgaW5cbiAgICogb3JkZXIgdG8gcHJvcGVybHkgaGFuZGxlIGluY29taW5nIHB1c2guIElmIHRha2VPZmYgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzXG4gICAqIGluIGEgc2Vzc2lvbiwgb3IgaWYgdGhlIGNvbmZpZyBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgcHJldmlvdXMgc2Vzc3Npb24sIHRoZVxuICAgKiBuZXcgY29uZmlnIHdpbGwgbm90IGJlIHVzZWQgdW50aWwgdGhlIG5leHQgYXBwIHN0YXJ0LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gIGNvbmZpZyBUaGUgVXJiYW4gQWlyc2hpcCBjb25maWcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgY29uZmlnLnNpdGUgU2V0cyB0aGUgY2xvdWQgc2l0ZSwgbXVzdCBiZSBlaXRoZXIgRVUgb3IgVVMuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSAgY29uZmlnLmRldmVsb3BtZW50IFRoZSBVcmJhbiBBaXJzaGlwIGRldmVsb3BtZW50IGNvbmZpZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9ICBjb25maWcuZGV2ZWxvcG1lbnQuYXBwS2V5IFRoZSBkZXZlbG9wbWVudCBhcHBLZXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgY29uZmlnLmRldmVsb3BtZW50LmFwcFNlY3JldCBUaGUgZGV2ZWxvcG1lbnQgYXBwU2VjcmV0LlxuICAgKiBAcGFyYW0ge29iamVjdH0gIGNvbmZpZy5wcm9kdWN0aW9uIFRoZSBVcmJhbiBBaXJzaGlwIHByb2R1Y3Rpb24gY29uZmlnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gIGNvbmZpZy5wcm9kdWN0aW9uLmFwcEtleSBUaGUgcHJvZHVjdGlvbiBhcHBLZXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgY29uZmlnLnByb2R1Y3Rpb24uYXBwU2VjcmV0IFRoZSBwcm9kdWN0aW9uIGFwcFNlY3JldC5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgdGFrZU9mZihjb25maWc6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIEFuZHJvaWQgbm90aWZpY2F0aW9uIGNvbmZpZy4gVmFsdWVzIG5vdCBzZXQgd2lsbCBmYWxsYmFjayB0byBhbnkgdmFsdWVzIHNldCBpbiB0aGUgY29uZmlnLnhtbC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9ICBjb25maWcgVGhlIG5vdGlmaWNhdGlvbiBjb25maWcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgW2NvbmZpZy5pY29uXSBUaGUgbmFtZSBvZiB0aGUgZHJhd2FibGUgcmVzb3VyY2UgdG8gdXNlIGFzIHRoZSBub3RpZmljYXRpb24gaWNvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9ICBbY29uZmlnLmxhcmdlSWNvbl0gVGhlIG5hbWUgb2YgdGhlIGRyYXdhYmxlIHJlc291cmNlIHRvIHVzZSBhcyB0aGUgbm90aWZpY2F0aW9uIGxhcmdlIGljb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgW2NvbmZpZy5hY2NlbnRDb2xvcl0gVGhlIG5vdGlmaWNhdGlvbiBhY2NlbnQgY29sb3IuIEZvcm1hdCBpcyAjQUFSUkdHQkIuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldEFuZHJvaWROb3RpZmljYXRpb25Db25maWcoY29uZmlnOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIHdoZW4gdGhlIG1lc3NhZ2UgY2VudGVyIGlzIGxhdW5jaGVkIGZyb20gYSBwdXNoXG4gICAqIG5vdGlmaWNhdGlvbi4gSWYgc2V0IHRvIGZhbHNlIHRoZSBtZXNzYWdlIGNlbnRlciBtdXN0IGJlIG1hbnVhbGx5IGxhdW5jaGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgdHJ1ZSB0byBhdXRvbWF0aWNhbGx5IGxhdW5jaCB0aGUgZGVmYXVsdCBtZXNzYWdlIGNlbnRlciwgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRBdXRvTGF1bmNoRGVmYXVsdE1lc3NhZ2VDZW50ZXIoZW5hYmxlZDogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdXNlciBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgdHJ1ZSB0byBlbmFibGUgbm90aWZpY2F0aW9ucywgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRVc2VyTm90aWZpY2F0aW9uc0VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB1c2VyIG5vdGlmaWNhdGlvbnMgYXJlIGVuYWJsZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGVuYWJsZWQpfSBzdWNjZXNzIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VjY2Vzcy5lbmFibGVkIEZsYWcgaW5kaWNhdGluZyBpZiB1c2VyIG5vdGlmaWNhdGlvbnMgaXMgZW5hYmxlZCBvciBub3QuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc1VzZXJOb3RpZmljYXRpb25zRW5hYmxlZCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYXBwIG5vdGlmaWNhdGlvbnMgYXJlIGVuYWJsZWQgb3Igbm90LiBJdHMgcG9zc2libGUgdG8gaGF2ZSBgdXNlck5vdGlmaWNhdGlvbnNFbmFibGVkYFxuICAgKiBidXQgYXBwIG5vdGlmaWNhdGlvbnMgYmVpbmcgZGlzYWJsZWQgaWYgdGhlIHVzZXIgb3B0ZWQgb3V0IG9mIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oZW5hYmxlZCl9IHN1Y2Nlc3MgU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtib29sZWFufSBzdWNjZXNzLmVuYWJsZWQgRmxhZyBpbmRpY2F0aW5nIGlmIGFwcCBub3RpZmljYXRpb25zIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgaXNBcHBOb3RpZmljYXRpb25zRW5hYmxlZCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjaGFubmVsIElELlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKElEKX0gc3VjY2VzcyBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBzdWNjZXNzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3VjY2Vzcy5JRCBUaGUgY2hhbm5lbCBJRCBzdHJpbmdcbiAgICogQHBhcmFtIHtmYWlsdXJlQ2FsbGJhY2t9IFtmYWlsdXJlXSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBmYWlsdXJlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRDaGFubmVsSUQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCBub3RpZmljYXRpb24gdGhhdCBsYXVuY2hlZCB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2xlYXIgdHJ1ZSB0byBjbGVhciB0aGUgbm90aWZpY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHB1c2gpfSBzdWNjZXNzIFRoZSBmdW5jdGlvbiB0byBjYWxsIG9uIHN1Y2Nlc3MuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdWNjZXNzLnB1c2ggVGhlIHB1c2ggbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHB1c2ggbm90aWZpY2F0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3VjY2Vzcy5wdXNoLm1lc3NhZ2UgVGhlIHB1c2ggYWxlcnQgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IHN1Y2Nlc3MucHVzaC5leHRyYXMgQW55IHB1c2ggZXh0cmFzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N1Y2Nlc3MucHVzaC5ub3RpZmljYXRpb25faWRdIFRoZSBBbmRyb2lkIG5vdGlmaWNhdGlvbiBJRC5cbiAgICogQHBhcmFtIHtmYWlsdXJlQ2FsbGJhY2t9IFtmYWlsdXJlXSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBmYWlsdXJlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRMYXVuY2hOb3RpZmljYXRpb24oY2xlYXI6IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsYXN0IHJlY2VpdmVkIGRlZXAgbGluay5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBjbGVhciB0cnVlIHRvIGNsZWFyIHRoZSBkZWVwIGxpbmsuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24ocHVzaCl9IHN1Y2Nlc3MgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgb24gc3VjY2Vzcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1Y2Nlc3MuZGVlcExpbmsgVGhlIGRlZXAgbGluay5cbiAgICogQHBhcmFtIHtmYWlsdXJlQ2FsbGJhY2t9IFtmYWlsdXJlXSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBmYWlsdXJlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXREZWVwTGluayhjbGVhcjogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRhZ3MgYXMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24odGFncyl9IHN1Y2Nlc3MgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgb24gc3VjY2Vzcy5cbiAgICogQHBhcmFtIHtBcnJheX0gc3VjY2Vzcy50YWdzIFRoZSB0YWdzIGFzIGFuIGFycmF5LlxuICAgKiBAcGFyYW0ge2ZhaWx1cmVDYWxsYmFja30gW2ZhaWx1cmVdIFRoZSBmdW5jdGlvbiB0byBjYWxsIG9uIGZhaWx1cmUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldFRhZ3MoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGFncy5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheX0gdGFncyBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldFRhZ3ModGFnczogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhbGlhcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBzaW5jZSA2LjcuMCAtIHRvIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgcGx1Z2luIC0gcGxlYXNlIHVzZSBnZXROYW1lZFVzZXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbihjdXJyZW50QWxpYXMpfSBzdWNjZXNzIFRoZSBmdW5jdGlvbiB0byBjYWxsIG9uIHN1Y2Nlc3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdWNjZXNzLmN1cnJlbnRBbGlhcyBUaGUgYWxpYXMgYXMgYSBzdHJpbmcuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRBbGlhcygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhbGlhcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBzaW5jZSA2LjcuMCAgLSB0byBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgdGhlIHBsdWdpbiAtIHBsZWFzZSB1c2Ugc2V0TmFtZWRVc2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGlhcyBzdHJpbmdcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRBbGlhcyhhbGlhczogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHF1aWV0IHRpbWUgaXMgZW5hYmxlZCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oZW5hYmxlZCl9IHN1Y2Nlc3MgU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtib29sZWFufSBzdWNjZXNzLmVuYWJsZWQgRmxhZyBpbmRpY2F0aW5nIGlmIHF1aWV0IHRpbWUgaXMgZW5hYmxlZCBvciBub3QuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc1F1aWV0VGltZUVuYWJsZWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBxdWlldCB0aW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgdHJ1ZSB0byBlbmFibGUgcXVpZXQgdGltZSwgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRRdWlldFRpbWVFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgaW4gcXVpZXQgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbihpblF1aWV0VGltZSl9IHN1Y2Nlc3MgU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtib29sZWFufSBzdWNjZXNzLmluUXVpZXRUaW1lIEZsYWcgaW5kaWNhdGluZyBpZiBxdWlldCB0aW1lIGlzIGN1cnJlbnRseSBpbiBlZmZlY3QuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc0luUXVpZXRUaW1lKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHF1aWV0IHRpbWUgYXMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZzpcbiAgICogXCJzdGFydEhvdXJcIjogTnVtYmVyLFxuICAgKiBcInN0YXJ0TWludXRlXCI6IE51bWJlcixcbiAgICogXCJlbmRIb3VyXCI6IE51bWJlcixcbiAgICogXCJlbmRNaW51dGVcIjogTnVtYmVyXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24ocXVpZXRUaW1lKX0gc3VjY2VzcyBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBzdWNjZXNzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gc3VjY2Vzcy5xdWlldFRpbWUgVGhlIHF1aWV0VGltZSBvYmplY3QgcmVwcmVzZW50cyBhIHRpbWVzcGFuIGR1cmluZ1xuICAgKiAgICAgICAgd2hpY2ggbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2lsZW5jZWQuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRRdWlldFRpbWUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcXVpZXQgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0SG91ciBmb3IgcXVpZXQgdGltZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0TWludXRlIGZvciBxdWlldCB0aW1lLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZW5kSG91ciBmb3IgcXVpZXQgdGltZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGVuZE1pbnV0ZSBmb3IgcXVpZXQgdGltZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRRdWlldFRpbWUoc3RhcnRIb3VyOiBudW1iZXIsIHN0YXJ0TWludXRlOiBudW1iZXIsIGVuZEhvdXI6IG51bWJlciwgZW5kTWludXRlOiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGFuYWx5dGljcy5cbiAgICpcbiAgICogRGlzYWJsaW5nIGFuYWx5dGljcyB3aWxsIGRlbGV0ZSBhbnkgbG9jYWxseSBzdG9yZWQgZXZlbnRzXG4gICAqIGFuZCBwcmV2ZW50IGFueSBldmVudHMgZnJvbSB1cGxvYWRpbmcuIEZlYXR1cmVzIHRoYXQgZGVwZW5kIG9uIGFuYWx5dGljcyBiZWluZ1xuICAgKiBlbmFibGVkIG1heSBub3Qgd29yayBwcm9wZXJseSBpZiBpdCdzIGRpc2FibGVkIChyZXBvcnRzLCByZWdpb24gdHJpZ2dlcnMsXG4gICAqIGxvY2F0aW9uIHNlZ21lbnRhdGlvbiwgcHVzaCB0byBsb2NhbCB0aW1lKS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkIHRydWUgdG8gZW5hYmxlIGFuYWx5dGljcywgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRBbmFseXRpY3NFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW5hbHl0aWNzIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGVuYWJsZWQpfSBzdWNjZXNzIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VjY2Vzcy5lbmFibGVkIEZsYWcgaW5kaWNhdGluZyBpZiBhbmFseXRpY3MgaXMgZW5hYmxlZCBvciBub3QuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc0FuYWx5dGljc0VuYWJsZWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmFtZWQgdXNlciBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbihuYW1lZFVzZXIpfSBzdWNjZXNzIFRoZSBmdW5jdGlvbiB0byBjYWxsIG9uIHN1Y2Nlc3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdWNjZXNzLm5hbWVkVXNlciBUaGUgbmFtZWQgdXNlciBJRCBhcyBhIHN0cmluZy5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldE5hbWVkVXNlcigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBuYW1lZCB1c2VyIElELlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZWRVc2VyIGlkZW50aWZpZXIgc3RyaW5nLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldE5hbWVkVXNlcihuYW1lZFVzZXI6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYW4gVXJiYW4gQWlyc2hpcCBhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb25OYW1lIGFjdGlvbiBhcyBhIHN0cmluZy5cbiAgICogQHBhcmFtIHsqfSBhY3Rpb25WYWx1ZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHJlc3VsdCl9IFtzdWNjZXNzXSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBzdWNjZXNzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gc3VjY2Vzcy5yZXN1bHQgVGhlIHJlc3VsdCdzIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgcnVuQWN0aW9uKGFjdGlvbk5hbWU6IHN0cmluZywgYWN0aW9uVmFsdWU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZWRpdG9yIHRvIG1vZGlmeSB0aGUgbmFtZWQgdXNlciB0YWcgZ3JvdXBzLlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVkaXROYW1lZFVzZXJUYWdHcm91cHMoKTogVGFnR3JvdXBFZGl0b3Ige1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGVkaXRvciB0byBtb2RpZnkgdGhlIGNoYW5uZWwgdGFnIGdyb3Vwcy5cbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBlZGl0Q2hhbm5lbFRhZ0dyb3VwcygpOiBUYWdHcm91cEVkaXRvciB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZWRpdG9yIHRvIG1vZGlmeSB0aGUgY2hhbm5lbCBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVkaXRDaGFubmVsQXR0cmlidXRlcygpOiBBdHRyaWJ1dGVzRWRpdG9yIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlZGl0b3IgdG8gbW9kaWZ5IHRoZSBuYW1lZCB1c2VyIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBAQ29yZG92YSh7IHN5bmM6IHRydWUgfSlcbiAgZWRpdE5hbWVkVXNlckF0dHJpYnV0ZXMoKTogQXR0cmlidXRlc0VkaXRvciB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZWRpdG9yIHRvIG1vZGlmeSB0aGUgY2hhbm5lbCBzdWJzY3JpcHRpb24gbGlzdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtDaGFubmVsU3Vic2NyaXB0aW9uTGlzdEVkaXRvcn0gQSBzdWJzY3JpcHRpb24gbGlzdCBlZGl0b3IgaW5zdGFuY2UuXG4gICAqIEBzaW5jZSAxMy4zLjBcbiAgICovXG4gIEBDb3Jkb3ZhKHsgc3luYzogdHJ1ZSB9KVxuICBlZGl0Q2hhbm5lbFN1YnNjcmlwdGlvbkxpc3RzKCk6IENoYW5uZWxTdWJzY3JpcHRpb25MaXN0RWRpdG9yIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlZGl0b3IgdG8gbW9kaWZ5IHRoZSBjb250YWN0IHN1YnNjcmlwdGlvbiBsaXN0cy5cbiAgICpcbiAgICogQHJldHVybnMge0NvbnRhY3RTdWJzY3JpcHRpb25MaXN0RWRpdG9yfSBBIHN1YnNjcmlwdGlvbiBsaXN0IGVkaXRvciBpbnN0YW5jZS5cbiAgICogQHNpbmNlIDEzLjMuMFxuICAgKi9cbiAgQENvcmRvdmEoeyBzeW5jOiB0cnVlIH0pXG4gIGVkaXRDb250YWN0U3Vic2NyaXB0aW9uTGlzdHMoKTogQ29udGFjdFN1YnNjcmlwdGlvbkxpc3RFZGl0b3Ige1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNldCBvZiBzdWJzY3JpcHRpb24gbGlzdHMgZm9yIHRoZSBjdXJyZW50IGNoYW5uZWwsXG4gICAqIG9wdGlvbmFsbHkgYXBwbHlpbmcgcGVuZGluZyBzdWJzY3JpcHRpb24gbGlzdCBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgbmV4dCBjaGFubmVsIHVwZGF0ZS5cbiAgICogQW4gZW1wdHkgc2V0IGluZGljYXRlcyB0aGF0IHRoaXMgY29udGFjdCBpcyBub3Qgc3Vic2NyaWJlZCB0byBhbnkgbGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN1Y2Nlc3NJbmRleDogMCxcbiAgICBlcnJvckluZGV4OiAxLFxuICB9KVxuICBnZXRDaGFubmVsU3Vic2NyaXB0aW9uTGlzdHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNldCBvZiBzdWJzY3JpcHRpb24gbGlzdHMgZm9yIHRoZSBjdXJyZW50IGNvbnRhY3QsXG4gICAqIG9wdGlvbmFsbHkgYXBwbHlpbmcgcGVuZGluZyBzdWJzY3JpcHRpb24gbGlzdCBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgbmV4dCBjb250YWN0IHVwZGF0ZS5cbiAgICogQW4gZW1wdHkgc2V0IGluZGljYXRlcyB0aGF0IHRoaXMgY29udGFjdCBpcyBub3Qgc3Vic2NyaWJlZCB0byBhbnkgbGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN1Y2Nlc3NJbmRleDogMCxcbiAgICBlcnJvckluZGV4OiAxLFxuICB9KVxuICBnZXRDb250YWN0U3Vic2NyaXB0aW9uTGlzdHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFuIGFzc29jaWF0ZWQgaWRlbnRpZmllciBmb3IgdGhlIENvbm5lY3QgZGF0YSBzdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQ3VzdG9tIGtleSBmb3IgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIGlkZW50aWZpZXIgVGhlIGlkZW50aWZpZXIgdmFsdWUuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0QXNzb2NpYXRlZElkZW50aWZpZXIoa2V5OiBzdHJpbmcsIGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIExvY2F0aW9uXG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgVXJiYW4gQWlyc2hpcCBsb2NhdGlvbiBzZXJ2aWNlcy5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkIHRydWUgdG8gZW5hYmxlIGxvY2F0aW9uLCBmYWxzZSB0byBkaXNhYmxlLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldExvY2F0aW9uRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGxvY2F0aW9uIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGVuYWJsZWQpfSBzdWNjZXNzIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VjY2Vzcy5lbmFibGVkIEZsYWcgaW5kaWNhdGluZyBpZiBsb2NhdGlvbiBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqIEBkZXByZWNhdGVkIHJlbW92ZWQgaW4gdmVyc2lvbiA4LjBcbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgaXNMb2NhdGlvbkVuYWJsZWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBiYWNrZ3JvdW5kIGxvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgdHJ1ZSB0byBlbmFibGUgYmFja2dyb3VuZCBsb2NhdGlvbiwgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKiBAZGVwcmVjYXRlZCByZW1vdmVkIGluIHZlcnNpb24gOC4wXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldEJhY2tncm91bmRMb2NhdGlvbkVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBiYWNrZ3JvdW5kIGxvY2F0aW9uIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGVuYWJsZWQpfSBzdWNjZXNzIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VjY2Vzcy5lbmFibGVkIEZsYWcgaW5kaWNhdGluZyBpZiBiYWNrZ3JvdW5kIGxvY2F0aW9uIHVwZGF0ZXMgYXJlIGVuYWJsZWQgb3Igbm90LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZlZCBpbiB2ZXJzaW9uIDguMFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc0JhY2tncm91bmRMb2NhdGlvbkVuYWJsZWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIG1lc3NhZ2UgY2VudGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGRpc3BsYXlNZXNzYWdlQ2VudGVyKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3MgdGhlIG1lc3NhZ2UgY2VudGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGRpc21pc3NNZXNzYWdlQ2VudGVyKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3MgdGhlIGluYm94IG1lc3NhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZGlzbWlzc0luYm94TWVzc2FnZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNtaXNzIHRoZSBpbmJveCBtZXNzYWdlIGluIHRoZSBvdmVybGF5LlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqIEBkZXByZWNhdGVkIHJlbW92ZWQgaW4gdmVyc2lvbiAxMC4wXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGRpc21pc3NPdmVybGF5SW5ib3hNZXNzYWdlKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFycmF5IG9mIGluYm94IG1lc3NhZ2VzLiBFYWNoIG1lc3NhZ2Ugd2lsbCBoYXZlIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogXCJpZFwiOiBzdHJpbmcgLSBUaGUgbWVzc2FnZXMgSUQuIE5lZWRlZCB0byBkaXNwbGF5LCBtYXJrIGFzIHJlYWQsIG9yIGRlbGV0ZSB0aGUgbWVzc2FnZS5cbiAgICogXCJ0aXRsZVwiOiBzdHJpbmcgLSBUaGUgbWVzc2FnZSB0aXRsZS5cbiAgICogXCJzZW50RGF0ZVwiOiBudW1iZXIgLSBUaGUgbWVzc2FnZSBzZW50IGRhdGUgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBcImxpc3RJY29uVXJsXCI6IHN0cmluZywgb3B0aW9uYWwgLSBUaGUgaWNvbiB1cmwgZm9yIHRoZSBtZXNzYWdlLlxuICAgKiBcImlzUmVhZFwiOiBib29sZWFuIC0gVGhlIHVucmVhZC9yZWFkIHN0YXR1cyBvZiB0aGUgbWVzc2FnZS5cbiAgICogXCJleHRyYXNcIjogb2JqZWN0IC0gU3RyaW5nIHRvIFN0cmluZyBtYXAgb2YgYW55IG1lc3NhZ2UgZXh0cmFzLlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2VzKX0gc3VjY2VzcyBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBzdWNjZXNzLlxuICAgKiBAcGFyYW0ge0FycmF5fSBzdWNjZXNzLm1lc3NhZ2VzIFRoZSBhcnJheSBvZiBpbmJveCBtZXNzYWdlcy5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGdldEluYm94TWVzc2FnZXMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgYW4gaW5ib3ggbWVzc2FnZSByZWFkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZUlkIFRoZSBJRCBvZiB0aGUgbWVzc2FnZSB0byBtYXJrIGFzIHJlYWQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgbWFya0luYm94TWVzc2FnZVJlYWQobWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGFuIGluYm94IG1lc3NhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlSWQgVGhlIElEIG9mIHRoZSBtZXNzYWdlIHRvIGRlbGV0ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBkZWxldGVJbmJveE1lc3NhZ2UobWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgaW5ib3ggbWVzc2FnZSB1c2luZyBhIGZ1bGwgc2NyZWVuIHZpZXcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlSWQgVGhlIElEIG9mIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZGlzcGxheUluYm94TWVzc2FnZShtZXNzYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyB0aGUgaW5ib3ggdG8gcmVmcmVzaC4gVGhpcyBpcyBub3JtYWxseSBub3QgbmVlZGVkIGFzIHRoZSBpbmJveFxuICAgKiB3aWxsIGF1dG9tYXRpY2FsbHkgcmVmcmVzaCBvbiBmb3JlZ3JvdW5kIG9yIHdoZW4gYSBwdXNoIGFycml2ZXMgdGhhdHNcbiAgICogYXNzb2NpYXRlZCB3aXRoIGEgbWVzc2FnZSwgYnV0IGl0IGNhbiBiZSB1c2VmdWwgd2hlbiBwcm92aWRpbmcgYSByZWZyZXNoXG4gICAqIGJ1dHRvbiBmb3IgdGhlIG1lc3NhZ2UgbGlzdGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICByZWZyZXNoSW5ib3goKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGluYm94IG1lc3NhZ2UgdXNpbmcgYW4gb3ZlcmxheSBkaXNwbGF5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZUlkIFRoZSBJRCBvZiB0aGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqIEBkZXByZWNhdGVkIHJlbW92ZWQgaW4gdmVyc2lvbiAxMC4wXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIG92ZXJsYXlJbmJveE1lc3NhZ2UobWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYSBub3RpZmljYXRpb24gYnkgaWRlbnRpZmllci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkZW50aWZpZXIgVGhlIG5vdGlmaWNhdGlvbiBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGNsZWFyTm90aWZpY2F0aW9uKGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgbm90aWZpY2F0aW9ucyBwb3N0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGNsZWFyTm90aWZpY2F0aW9ucygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGN1cnJlbnRseSBhY3RpdmUgbm90aWZpY2F0aW9ucy5cbiAgICpcbiAgICogTm90ZTogT24gQW5kcm9pZCB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgb25seSBzdXBwb3J0ZWQgb24gQW5kcm9pZCBNIG9yIGhpZ2hlci5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlcyl9IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgZ2V0QWN0aXZlTm90aWZpY2F0aW9ucygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGlPUyBvbmx5XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0byBiYWRnZS4gRGVmYXVsdHMgdG8gYE5PYC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkIHRydWUgdG8gZW5hYmxlIGF1dG8gYmFkZ2UsIGZhbHNlIHRvIGRpc2FibGUuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0QXV0b2JhZGdlRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYmFkZ2UgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gY291bnQgbnVtYmVyIHNwZWNpZmllZCBiYWRnZSB0byBzZXQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgc2V0QmFkZ2VOdW1iZXIoY291bnQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYmFkZ2UgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGJhZGdlTnVtYmVyKX0gc3VjY2VzcyBUaGUgZnVuY3Rpb24gdG8gY2FsbCBvbiBzdWNjZXNzLlxuICAgKiBAcGFyYW0ge2ludH0gc3VjY2Vzcy5iYWRnZU51bWJlciBUaGUgY3VycmVudCBhcHBsaWNhdGlvbiBiYWRnZSBudW1iZXIuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRCYWRnZU51bWJlcigpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGJhZGdlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHJlc2V0QmFkZ2UoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaU9TIG5vdGlmaWNhdGlvbiB0eXBlcy4gU3BlY2lmeSB0aGUgY29tYmluYXRpb24gb2ZcbiAgICogYmFkZ2VzLCBzb3VuZCBhbmQgYWxlcnRzIHRoYXQgYXJlIGRlc2lyZWQuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlcyBzcGVjaWZpZWQgbm90aWZpY2F0aW9uIHR5cGVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldE5vdGlmaWNhdGlvblR5cGVzKHR5cGVzOiBOb3RpZmljYXRpb25UeXBlKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaU9TIHByZXNlbnRhdGlvbiBvcHRpb25zLiBTcGVjaWZ5IHRoZSBjb21iaW5hdGlvbiBvZlxuICAgKiBiYWRnZXMsIHNvdW5kIGFuZCBhbGVydHMgdGhhdCBhcmUgZGVzaXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgdHlwZXMgc3BlY2lmaWVkIHByZXNlbnRhdGlvbiBvcHRpb25zLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIHNldFByZXNlbnRhdGlvbk9wdGlvbnMob3B0aW9uczogUHJlc2VudGF0aW9uT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQW5kcm9pZCBvbmx5XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBub3RpZmljYXRpb24gc291bmQgaXMgZW5hYmxlZCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oZW5hYmxlZCl9IHN1Y2Nlc3MgU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtib29sZWFufSBzdWNjZXNzLmVuYWJsZWQgRmxhZyBpbmRpY2F0aW5nIGlmIHNvdW5kIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBDb3Jkb3ZhKClcbiAgaXNTb3VuZEVuYWJsZWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBub3RpZmljYXRpb24gc291bmQuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlZCB0cnVlIHRvIGVuYWJsZSBzb3VuZCwgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRTb3VuZEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBub3RpZmljYXRpb24gdmlicmF0aW9uIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGVuYWJsZWQpfSBzdWNjZXNzIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VjY2Vzcy5lbmFibGVkIEZsYWcgaW5kaWNhdGluZyBpZiB2aWJyYXRpb24gaXMgZW5hYmxlZCBvciBub3QuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBpc1ZpYnJhdGVFbmFibGVkKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgbm90aWZpY2F0aW9uIHZpYnJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkIHRydWUgdG8gZW5hYmxlIHZpYnJhdGlvbiwgZmFsc2UgdG8gZGlzYWJsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRWaWJyYXRlRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGV2ZW50IFRoZSBjdXN0b20gZXZlbnQgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnQubmFtZSBUaGUgZXZlbnQncyBuYW1lLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2V2ZW50LnZhbHVlXSBUaGUgZXZlbnQncyB2YWx1ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtldmVudC50cmFuc2FjdGlvbklkXSBUaGUgZXZlbnQncyB0cmFuc2FjdGlvbiBJRC5cbiAgICogQHBhcmFtIHtvYmplY3R9IFtldmVudC5wcm9wZXJ0aWVzXSBUaGUgZXZlbnQncyBwcm9wZXJ0aWVzLiBPbmx5IG51bWJlcnMsIGJvb2xlYW5zLCBzdHJpbmdzLCBhbmQgYXJyYXkgb2Ygc3RyaW5ncyBhcmUgc3VwcG9ydGVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAQ29yZG92YSgpXG4gIGFkZEN1c3RvbUV2ZW50KGV2ZW50OiBvYmplY3QpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgc2NyZWVuIHRyYWNraW5nIGZvciBhIHNwZWNpZmljIGFwcCBzY3JlZW4sIG11c3QgYmUgY2FsbGVkIG9uY2UgcGVyIHRyYWNrZWQgc2NyZWVuLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NyZWVuIFRoZSBzY3JlZW4ncyBzdHJpbmcgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKiBAc2luY2UgMTEuMC4wXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3VjY2Vzc0luZGV4OiAxLFxuICAgIGVycm9ySW5kZXg6IDIsXG4gIH0pXG4gIHRyYWNrU2NyZWVuKHNjcmVlbjogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBmZWF0dXJlcywgYWRkaW5nIHRoZW0gdG8gdGhlIHNldCBvZiBjdXJyZW50bHkgZW5hYmxlZCBmZWF0dXJlcy5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBmZWF0dXJlcyBUaGUgZmVhdHVyZXMgdG8gZW5hYmxlLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqIEBzaW5jZSAxMy4wLjBcbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzdWNjZXNzSW5kZXg6IDEsXG4gICAgZXJyb3JJbmRleDogMixcbiAgfSlcbiAgZW5hYmxlRmVhdHVyZShmZWF0dXJlczogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBmZWF0dXJlcywgcmVtb3ZpbmcgdGhlbSBmcm9tIHRoZSBzZXQgb2YgY3VycmVudGx5IGVuYWJsZWQgZmVhdHVyZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gZmVhdHVyZXMgVGhlIGZlYXR1cmVzIHRvIGRpc2FibGUuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQHNpbmNlIDEzLjAuMFxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN1Y2Nlc3NJbmRleDogMSxcbiAgICBlcnJvckluZGV4OiAyLFxuICB9KVxuICBkaXNhYmxlRmVhdHVyZShmZWF0dXJlczogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjdXJyZW50IGVuYWJsZWQgZmVhdHVyZXMsIHJlcGxhY2luZyBhbnkgY3VycmVudGx5IGVuYWJsZWQgZmVhdHVyZXMgd2l0aCB0aGUgZ2l2ZW4gc2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IGZlYXR1cmVzIFRoZSBmZWF0dXJlcyB0byBzZXQgYXMgZW5hYmxlZC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKiBAc2luY2UgMTMuMC4wXG4gICAqL1xuICBzZXRFbmFibGVkRmVhdHVyZXMoZmVhdHVyZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBlbmFibGVkIGZlYXR1cmVzLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbc3VjY2Vzc10gU3VjY2VzcyBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtmdW5jdGlvbihtZXNzYWdlKX0gW2ZhaWx1cmVdIEZhaWx1cmUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWlsdXJlLm1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqIEBzaW5jZSAxMy4wLjBcbiAgICovXG4gIEBDb3Jkb3ZhKHtcbiAgICBzdWNjZXNzSW5kZXg6IDAsXG4gICAgZXJyb3JJbmRleDogMSxcbiAgfSlcbiAgZ2V0RW5hYmxlZEZlYXR1cmVzKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbGwgb2YgdGhlIGdpdmVuIGZlYXR1cmVzIGFyZSBlbmFibGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IGZlYXR1cmVzIFRoZSBmZWF0dXJlcyB0byBjaGVjay5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKiBAc2luY2UgMTMuMC4wXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3VjY2Vzc0luZGV4OiAxLFxuICAgIGVycm9ySW5kZXg6IDIsXG4gIH0pXG4gIGlzRmVhdHVyZUVuYWJsZWQoZmVhdHVyZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgUHJlZmVyZW5jZSBDZW50ZXIgd2l0aCB0aGUgZ2l2ZW4gSUQgdHJvdWdoIGEgY2FsbGJhY2sgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlZmVyZW5jZUNlbnRlcklkIFRoZSBwcmVmZXJlbmNlIGNlbnRlciBJRC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obWVzc2FnZSl9IFtmYWlsdXJlXSBGYWlsdXJlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFpbHVyZS5tZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKiBAc2luY2UgMTMuMy4wXG4gICAqL1xuICBAQ29yZG92YSh7XG4gICAgc3VjY2Vzc0luZGV4OiAxLFxuICAgIGVycm9ySW5kZXg6IDIsXG4gIH0pXG4gIGdldFByZWZlcmVuY2VDZW50ZXJDb25maWcocHJlZmVyZW5jZUNlbnRlcklkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgUHJlZmVyZW5jZSBDZW50ZXIgd2l0aCB0aGUgZ2l2ZW4gcHJlZmVyZW5jZUNlbnRlcklkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlbmZlcmVuY2VDZW50ZXJJZCBUaGUgcHJlZmVyZW5jZSBjZW50ZXIgSUQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQHNpbmNlIDEzLjAuMFxuICAgKi9cbiAgQENvcmRvdmEoe1xuICAgIHN1Y2Nlc3NJbmRleDogMSxcbiAgICBlcnJvckluZGV4OiAyLFxuICB9KVxuICBvcGVuUHJlZmVyZW5jZUNlbnRlcihwcmVuZmVyZW5jZUNlbnRlcklkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGxvY2FsZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxlIGxhbmd1YWdlIGFuZCBvcHRpb25hbCBjb3VudHJ5IGNvZGUuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQHNpbmNlIDE0LjMuMFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBzZXRDdXJyZW50TG9jYWxlKGxvY2FsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IHNldCBsb2NhbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24obG9jYWxlKX0gW3N1Y2Nlc3NdIFN1Y2Nlc3MgY2FsbGJhY2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdWNjZXNzLmxvY2FsZSBUaGUgbG9jYWxlIGFzIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQHNpbmNlIDE0LjMuMFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBnZXRDdXJyZW50TG9jYWxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgY3VycmVudCBsb2NhbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtzdWNjZXNzXSBTdWNjZXNzIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG1lc3NhZ2UpfSBbZmFpbHVyZV0gRmFpbHVyZSBjYWxsYmFjay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhaWx1cmUubWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICogQHNpbmNlIDE0LjMuMFxuICAgKi9cbiAgQENvcmRvdmEoKVxuICBjbGVhckxvY2FsZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxufVxuIl19
|
package/ngx/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"bundle.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/urbanairship","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^6.0.1"},"version":"6.
|
|
1
|
+
{"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"bundle.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/urbanairship","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^6.0.1"},"version":"6.5.0"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"bundle.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/urbanairship","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^6.0.1"},"version":"6.
|
|
1
|
+
{"description":"Awesome Cordova Plugins - Native plugins for ionic apps","main":"bundle.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/urbanairship","dependencies":{"@types/cordova":"latest"},"peerDependencies":{"rxjs":"^5.5.0 || ^6.5.0 || ^7.3.0","@awesome-cordova-plugins/core":"^6.0.1"},"version":"6.5.0"}
|