UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

154 lines (153 loc) 15.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * <p style="text-indent: 2em;"> * A <code>ng</code> service interface having main responsibilities on <code>application</code> notification <code>UI</code> logics. * Please note that this class does NOT directly involve with server-side push notification logics. It's only a client-side * API providing the way to interact with notification <code>UI</code> components. A [[Notification]] can be <code>pinned</code> * on the screen --you can do this via [[pinNotification]] method. This will make it not to be removed from the screen when * display timeout is reached unless the user clicks on the close button. All <code>unread</code> notifications --those which * automatically removed when display timeout is reached-- will be displayed as a badge notification showing the number of * <code>unread</code> items. You can also retrieve the list of <code>unread</code> items by using [[getUnreadNotifications]] * method. * </p> * * @author shiorin, tee4cute * @see [[Notification]] * @record */ export function INotificationManager() { } function INotificationManager_tsickle_Closure_declarations() { /** * <p style="text-indent: 1em;"> * Notify user by displaying the given <code><b>notification</b></code> message on the screen. * </p> * @type {?} */ INotificationManager.prototype.notify; /** * <p style="text-indent: 1em;"> * Remove the given <code><b>notification</b></code> from the <code>UI</code>. This also remove the notification message * from <code>unread</code> and <code>pinned</code> items list. * </p> * @type {?} */ INotificationManager.prototype.clear; /** * <p style="text-indent: 1em;"> * Remove all notifications which matches the given <code><b>notificationType</b></code> and <code><b>name</b></code>. This * method also remove the notifications from <code>unread</code> and <code>pinned</code> items list. * </p> * * \@param notificationType A notification's type ([[Notification.type]]) to be cleared. Passing <code>null</code> means not to * apply the filter on this field. * \@param name A notification's name ([[Notification.name]]) to be cleared. Passing <code>null</code> means not to * apply the filter on this field. * @type {?} */ INotificationManager.prototype.clearBy; /** * <p style="text-indent: 1em;"> * Clear all notifications from the <code>UI</code>. This also remove all notification messages from <code>unread</code> and * <code>pinned</code> items list. * </p> * @type {?} */ INotificationManager.prototype.clearAll; /** * <p style="text-indent: 1em;"> * Get all notifications in the <code>UI</code>. * </p> * @type {?} */ INotificationManager.prototype.getNotifications; /** * <p style="text-indent: 1em;"> * Get all notifications in the <code>UI</code> by the given <code><b>notificationType</b></code> and <code><b>name</b></code>. * </p> * * \@param notificationType A notification's type ([[Notification.type]]) to filter. Passing <code>null</code> means not to apply the filter * on this field. * \@param name A notification's name ([[Notification.name]]) to filter. Passing <code>null</code> means not to apply the filter on this field. * @type {?} */ INotificationManager.prototype.getNotificationsBy; /** * <p style="text-indent: 1em;"> * Get all notifications being shown in the <code>UI</code>. * </p> * @type {?} */ INotificationManager.prototype.getShowingNotifications; /** * <p style="text-indent: 1em;"> * Get all notifications being shown in the <code>UI</code> by the given <code><b>notificationType</b></code> and <code><b>name</b></code>. * </p> * * \@param notificationType A notification's type ([[Notification.type]]) to filter. Passing <code>null</code> means not to apply the filter * on this field. * \@param name A notification's name ([[Notification.name]]) to filter. Passing <code>null</code> means not to apply the filter on this field. * @type {?} */ INotificationManager.prototype.getShowingNotificationsBy; /** * <p style="text-indent: 1em;"> * Get all <code>unread</code> notifications in the <code>UI</code>. * </p> * @type {?} */ INotificationManager.prototype.getUnreadNotifications; /** * <p style="text-indent: 1em;"> * Get all <code>unread</code> notifications in the <code>UI</code> by the given <code><b>notificationType</b></code> and <code><b>name</b></code>. * </p> * * \@param notificationType A notification's type ([[Notification.type]]) to filter. Passing <code>null</code> means not to apply the filter * on this field. * \@param name A notification's name ([[Notification.name]]) to filter. Passing <code>null</code> means not to apply the filter on this field. * @type {?} */ INotificationManager.prototype.getUnreadNotificationsBy; /** * <p style="text-indent: 1em;"> * Mark the given <code>notification</code> as <code>read</code>. * </p> * @type {?} */ INotificationManager.prototype.markAsRead; /** * <p style="text-indent: 1em;"> * Mark <code>notification</code>s as <code>read</code> by the given <code><b>notificationType</b></code> and <code><b>name</b></code>. * </p> * * \@param notificationType A notification's type ([[Notification.type]]) to filter. Passing <code>null</code> means not to apply the filter * on this field. * \@param name A notification's name ([[Notification.name]]) to filter. Passing <code>null</code> means not to apply the filter on this field. * @type {?} */ INotificationManager.prototype.markAsReadBy; /** * <p style="text-indent: 1em;"> * Mark all <code>notification</code>s as <code>read</code>. * </p> * @type {?} */ INotificationManager.prototype.markAsReadAll; /** * <p style="text-indent: 1em;"> * Pin the given <code>notification</code> on the screen. * </p> * @type {?} */ INotificationManager.prototype.pinNotification; /** * <p style="text-indent: 1em;"> * Unpin the given <code>notification</code> off the screen. * </p> * @type {?} */ INotificationManager.prototype.unpinNotification; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU5vdGlmaWNhdGlvbk1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9JTm90aWZpY2F0aW9uTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9tb2RlbC9Ob3RpZmljYXRpb24nO1xuXG4vKipcbiAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDJlbTtcIj5cbiAqIEEgPGNvZGU+bmc8L2NvZGU+IHNlcnZpY2UgaW50ZXJmYWNlIGhhdmluZyBtYWluIHJlc3BvbnNpYmlsaXRpZXMgb24gPGNvZGU+YXBwbGljYXRpb248L2NvZGU+IG5vdGlmaWNhdGlvbiA8Y29kZT5VSTwvY29kZT4gbG9naWNzLlxuICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGNsYXNzIGRvZXMgTk9UIGRpcmVjdGx5IGludm9sdmUgd2l0aCBzZXJ2ZXItc2lkZSBwdXNoIG5vdGlmaWNhdGlvbiBsb2dpY3MuIEl0J3Mgb25seSBhIGNsaWVudC1zaWRlIFxuICogQVBJIHByb3ZpZGluZyB0aGUgd2F5IHRvIGludGVyYWN0IHdpdGggbm90aWZpY2F0aW9uIDxjb2RlPlVJPC9jb2RlPiBjb21wb25lbnRzLiBBIFtbTm90aWZpY2F0aW9uXV0gY2FuIGJlIDxjb2RlPnBpbm5lZDwvY29kZT4gXG4gKiBvbiB0aGUgc2NyZWVuIC0teW91IGNhbiBkbyB0aGlzIHZpYSBbW3Bpbk5vdGlmaWNhdGlvbl1dIG1ldGhvZC4gVGhpcyB3aWxsIG1ha2UgaXQgbm90IHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc2NyZWVuIHdoZW4gXG4gKiBkaXNwbGF5IHRpbWVvdXQgaXMgcmVhY2hlZCB1bmxlc3MgdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBjbG9zZSBidXR0b24uIEFsbCA8Y29kZT51bnJlYWQ8L2NvZGU+IG5vdGlmaWNhdGlvbnMgLS10aG9zZSB3aGljaCBcbiAqIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aGVuIGRpc3BsYXkgdGltZW91dCBpcyByZWFjaGVkLS0gd2lsbCBiZSBkaXNwbGF5ZWQgYXMgYSBiYWRnZSBub3RpZmljYXRpb24gc2hvd2luZyB0aGUgbnVtYmVyIG9mIFxuICogPGNvZGU+dW5yZWFkPC9jb2RlPiBpdGVtcy4gWW91IGNhbiBhbHNvIHJldHJpZXZlIHRoZSBsaXN0IG9mIDxjb2RlPnVucmVhZDwvY29kZT4gaXRlbXMgYnkgdXNpbmcgW1tnZXRVbnJlYWROb3RpZmljYXRpb25zXV0gXG4gKiBtZXRob2QuIFxuICogPC9wPlxuICpcbiAqIEBhdXRob3Igc2hpb3JpbiwgdGVlNGN1dGVcbiAqIEBzZWUgW1tOb3RpZmljYXRpb25dXVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElOb3RpZmljYXRpb25NYW5hZ2VyIHtcblxuICAgIC8qKlxuICAgICAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDFlbTtcIj5cbiAgICAgKiBOb3RpZnkgdXNlciBieSBkaXNwbGF5aW5nIHRoZSBnaXZlbiA8Y29kZT48Yj5ub3RpZmljYXRpb248L2I+PC9jb2RlPiBtZXNzYWdlIG9uIHRoZSBzY3JlZW4uXG4gICAgICogPC9wPlxuICAgICAqL1xuICAgIG5vdGlmeShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQ7XG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gPGNvZGU+PGI+bm90aWZpY2F0aW9uPC9iPjwvY29kZT4gZnJvbSB0aGUgPGNvZGU+VUk8L2NvZGU+LiBUaGlzIGFsc28gcmVtb3ZlIHRoZSBub3RpZmljYXRpb24gbWVzc2FnZSBcbiAgICAgKiBmcm9tIDxjb2RlPnVucmVhZDwvY29kZT4gYW5kIDxjb2RlPnBpbm5lZDwvY29kZT4gaXRlbXMgbGlzdC5cbiAgICAgKiA8L3A+XG4gICAgICovXG4gICAgY2xlYXIobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pIDogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDFlbTtcIj5cbiAgICAgKiBSZW1vdmUgYWxsIG5vdGlmaWNhdGlvbnMgd2hpY2ggbWF0Y2hlcyB0aGUgZ2l2ZW4gPGNvZGU+PGI+bm90aWZpY2F0aW9uVHlwZTwvYj48L2NvZGU+IGFuZCA8Y29kZT48Yj5uYW1lPC9iPjwvY29kZT4uIFRoaXMgXG4gICAgICogbWV0aG9kIGFsc28gcmVtb3ZlIHRoZSBub3RpZmljYXRpb25zIGZyb20gPGNvZGU+dW5yZWFkPC9jb2RlPiBhbmQgPGNvZGU+cGlubmVkPC9jb2RlPiBpdGVtcyBsaXN0LlxuICAgICAqIDwvcD5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub3RpZmljYXRpb25UeXBlIEEgbm90aWZpY2F0aW9uJ3MgdHlwZSAoW1tOb3RpZmljYXRpb24udHlwZV1dKSB0byBiZSBjbGVhcmVkLiBQYXNzaW5nIDxjb2RlPm51bGw8L2NvZGU+IG1lYW5zIG5vdCB0byBcbiAgICAgKiBhcHBseSB0aGUgZmlsdGVyIG9uIHRoaXMgZmllbGQuXG4gICAgICogQHBhcmFtIG5hbWUgQSBub3RpZmljYXRpb24ncyBuYW1lIChbW05vdGlmaWNhdGlvbi5uYW1lXV0pIHRvIGJlIGNsZWFyZWQuIFBhc3NpbmcgPGNvZGU+bnVsbDwvY29kZT4gbWVhbnMgbm90IHRvIFxuICAgICAqIGFwcGx5IHRoZSBmaWx0ZXIgb24gdGhpcyBmaWVsZC5cbiAgICAgKi9cbiAgICBjbGVhckJ5KG5vdGlmaWNhdGlvblR5cGU6IHN0cmluZywgbmFtZTogc3RyaW5nKSA6IHZvaWQ7IC8vIENhbmNlbCBhIHByZXZpb3VzbHkgc2hvd24gbm90aWZpY2F0aW9uXG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIENsZWFyIGFsbCBub3RpZmljYXRpb25zIGZyb20gdGhlIDxjb2RlPlVJPC9jb2RlPi4gVGhpcyBhbHNvIHJlbW92ZSBhbGwgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGZyb20gPGNvZGU+dW5yZWFkPC9jb2RlPiBhbmQgXG4gICAgICogPGNvZGU+cGlubmVkPC9jb2RlPiBpdGVtcyBsaXN0LlxuICAgICAqIDwvcD5cbiAgICAgKi9cbiAgICBjbGVhckFsbCgpIDogdm9pZDtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogR2V0IGFsbCBub3RpZmljYXRpb25zIGluIHRoZSA8Y29kZT5VSTwvY29kZT4uXG4gICAgICogPC9wPlxuICAgICAqL1xuICAgIGdldE5vdGlmaWNhdGlvbnMoKTogTm90aWZpY2F0aW9uW107XG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIEdldCBhbGwgbm90aWZpY2F0aW9ucyBpbiB0aGUgPGNvZGU+VUk8L2NvZGU+IGJ5IHRoZSBnaXZlbiA8Y29kZT48Yj5ub3RpZmljYXRpb25UeXBlPC9iPjwvY29kZT4gYW5kIDxjb2RlPjxiPm5hbWU8L2I+PC9jb2RlPi5cbiAgICAgKiA8L3A+XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uVHlwZSBBIG5vdGlmaWNhdGlvbidzIHR5cGUgKFtbTm90aWZpY2F0aW9uLnR5cGVdXSkgdG8gZmlsdGVyLiBQYXNzaW5nIDxjb2RlPm51bGw8L2NvZGU+IG1lYW5zIG5vdCB0byBhcHBseSB0aGUgZmlsdGVyIFxuICAgICAqIG9uIHRoaXMgZmllbGQuXG4gICAgICogQHBhcmFtIG5hbWUgQSBub3RpZmljYXRpb24ncyBuYW1lIChbW05vdGlmaWNhdGlvbi5uYW1lXV0pIHRvIGZpbHRlci4gUGFzc2luZyA8Y29kZT5udWxsPC9jb2RlPiBtZWFucyBub3QgdG8gYXBwbHkgdGhlIGZpbHRlciBvbiB0aGlzIGZpZWxkLlxuICAgICAqL1xuICAgIGdldE5vdGlmaWNhdGlvbnNCeShub3RpZmljYXRpb25UeXBlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IE5vdGlmaWNhdGlvbltdO1xuICAgIFxuICAgIC8qKlxuICAgICAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDFlbTtcIj5cbiAgICAgKiBHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYmVpbmcgc2hvd24gaW4gdGhlIDxjb2RlPlVJPC9jb2RlPi5cbiAgICAgKiA8L3A+XG4gICAgICovXG4gICAgZ2V0U2hvd2luZ05vdGlmaWNhdGlvbnMoKTogTm90aWZpY2F0aW9uW107XG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIEdldCBhbGwgbm90aWZpY2F0aW9ucyBiZWluZyBzaG93biBpbiB0aGUgPGNvZGU+VUk8L2NvZGU+IGJ5IHRoZSBnaXZlbiA8Y29kZT48Yj5ub3RpZmljYXRpb25UeXBlPC9iPjwvY29kZT4gYW5kIDxjb2RlPjxiPm5hbWU8L2I+PC9jb2RlPi5cbiAgICAgKiA8L3A+XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uVHlwZSBBIG5vdGlmaWNhdGlvbidzIHR5cGUgKFtbTm90aWZpY2F0aW9uLnR5cGVdXSkgdG8gZmlsdGVyLiBQYXNzaW5nIDxjb2RlPm51bGw8L2NvZGU+IG1lYW5zIG5vdCB0byBhcHBseSB0aGUgZmlsdGVyIFxuICAgICAqIG9uIHRoaXMgZmllbGQuXG4gICAgICogQHBhcmFtIG5hbWUgQSBub3RpZmljYXRpb24ncyBuYW1lIChbW05vdGlmaWNhdGlvbi5uYW1lXV0pIHRvIGZpbHRlci4gUGFzc2luZyA8Y29kZT5udWxsPC9jb2RlPiBtZWFucyBub3QgdG8gYXBwbHkgdGhlIGZpbHRlciBvbiB0aGlzIGZpZWxkLlxuICAgICAqL1xuICAgIGdldFNob3dpbmdOb3RpZmljYXRpb25zQnkobm90aWZpY2F0aW9uVHlwZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBOb3RpZmljYXRpb25bXTtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogR2V0IGFsbCA8Y29kZT51bnJlYWQ8L2NvZGU+IG5vdGlmaWNhdGlvbnMgaW4gdGhlIDxjb2RlPlVJPC9jb2RlPi5cbiAgICAgKiA8L3A+XG4gICAgICovXG4gICAgZ2V0VW5yZWFkTm90aWZpY2F0aW9ucygpOiBOb3RpZmljYXRpb25bXTtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogR2V0IGFsbCA8Y29kZT51bnJlYWQ8L2NvZGU+IG5vdGlmaWNhdGlvbnMgaW4gdGhlIDxjb2RlPlVJPC9jb2RlPiBieSB0aGUgZ2l2ZW4gPGNvZGU+PGI+bm90aWZpY2F0aW9uVHlwZTwvYj48L2NvZGU+IGFuZCA8Y29kZT48Yj5uYW1lPC9iPjwvY29kZT4uXG4gICAgICogPC9wPlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvblR5cGUgQSBub3RpZmljYXRpb24ncyB0eXBlIChbW05vdGlmaWNhdGlvbi50eXBlXV0pIHRvIGZpbHRlci4gUGFzc2luZyA8Y29kZT5udWxsPC9jb2RlPiBtZWFucyBub3QgdG8gYXBwbHkgdGhlIGZpbHRlciBcbiAgICAgKiBvbiB0aGlzIGZpZWxkLlxuICAgICAqIEBwYXJhbSBuYW1lIEEgbm90aWZpY2F0aW9uJ3MgbmFtZSAoW1tOb3RpZmljYXRpb24ubmFtZV1dKSB0byBmaWx0ZXIuIFBhc3NpbmcgPGNvZGU+bnVsbDwvY29kZT4gbWVhbnMgbm90IHRvIGFwcGx5IHRoZSBmaWx0ZXIgb24gdGhpcyBmaWVsZC5cbiAgICAgKi9cbiAgICBnZXRVbnJlYWROb3RpZmljYXRpb25zQnkobm90aWZpY2F0aW9uVHlwZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBOb3RpZmljYXRpb25bXTtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogTWFyayB0aGUgZ2l2ZW4gPGNvZGU+bm90aWZpY2F0aW9uPC9jb2RlPiBhcyA8Y29kZT5yZWFkPC9jb2RlPi5cbiAgICAgKiA8L3A+XG4gICAgICovXG4gICAgbWFya0FzUmVhZChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQ7XG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIE1hcmsgPGNvZGU+bm90aWZpY2F0aW9uPC9jb2RlPnMgYXMgPGNvZGU+cmVhZDwvY29kZT4gYnkgdGhlIGdpdmVuIDxjb2RlPjxiPm5vdGlmaWNhdGlvblR5cGU8L2I+PC9jb2RlPiBhbmQgPGNvZGU+PGI+bmFtZTwvYj48L2NvZGU+LlxuICAgICAqIDwvcD5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub3RpZmljYXRpb25UeXBlIEEgbm90aWZpY2F0aW9uJ3MgdHlwZSAoW1tOb3RpZmljYXRpb24udHlwZV1dKSB0byBmaWx0ZXIuIFBhc3NpbmcgPGNvZGU+bnVsbDwvY29kZT4gbWVhbnMgbm90IHRvIGFwcGx5IHRoZSBmaWx0ZXIgXG4gICAgICogb24gdGhpcyBmaWVsZC5cbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5vdGlmaWNhdGlvbidzIG5hbWUgKFtbTm90aWZpY2F0aW9uLm5hbWVdXSkgdG8gZmlsdGVyLiBQYXNzaW5nIDxjb2RlPm51bGw8L2NvZGU+IG1lYW5zIG5vdCB0byBhcHBseSB0aGUgZmlsdGVyIG9uIHRoaXMgZmllbGQuXG4gICAgICovXG4gICAgbWFya0FzUmVhZEJ5KG5vdGlmaWNhdGlvblR5cGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogdm9pZDtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogTWFyayBhbGwgPGNvZGU+bm90aWZpY2F0aW9uPC9jb2RlPnMgYXMgPGNvZGU+cmVhZDwvY29kZT4uXG4gICAgICogPC9wPlxuICAgICAqL1xuICAgIG1hcmtBc1JlYWRBbGwoKTogdm9pZDtcbiAgICBcbiAgICAvKipcbiAgICAgKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAxZW07XCI+XG4gICAgICogUGluIHRoZSBnaXZlbiA8Y29kZT5ub3RpZmljYXRpb248L2NvZGU+IG9uIHRoZSBzY3JlZW4uXG4gICAgICogPC9wPlxuICAgICAqL1xuICAgIHBpbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQ7XG4gICAgXG4gICAgLyoqXG4gICAgICogPHAgc3R5bGU9XCJ0ZXh0LWluZGVudDogMWVtO1wiPlxuICAgICAqIFVucGluIHRoZSBnaXZlbiA8Y29kZT5ub3RpZmljYXRpb248L2NvZGU+IG9mZiB0aGUgc2NyZWVuLlxuICAgICAqIDwvcD5cbiAgICAgKi9cbiAgICB1bnBpbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQ7XG59Il19