ngx-agora
Version:
Angular wrapper for Agora RTC client (https://www.agora.io/en/)
233 lines • 21.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/data/models/stream-spec.model.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* A class defining the `spec` paramter in the
* [createStream](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#createstream) method.
*
* * \@remark
* - Do not set `video` and `screen` as `true` at the same time.
* - To enable screen-sharing on the Firefox browser, ensure that the `screen` property is
* set to `true`, and the `mediaSource` property has been set to specify a certain sharing mode.
*
* # Create a Stream
*
* You have two options to create an audio/video stream:
*
* ## Set the audio, video, and screen properties
* const stream = AgoraRTC.createStream({
* streamID: uid,
* audio:true,
* video:true,
* screen:false
* });
*
*
* ## Set the audioSource and videoSource properties
*
* Compared with the first option, the
* [audioSource](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#audiosource)
* and [videoSource](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#videosource)
* properties can specify the audio and video tracks for the stream. Use this option if you need to process the audio
* and video before creating the stream.
*
* Use the `mediaStream` method to get the audio and video tracks from `MediaStreamTrack`, and then set `audioSource` and `videoSource`:
*
* navigator.mediaDevices.getUserMedia(
* {video: true, audio: true}
* ).then(function(mediaStream){
* var videoSource = mediaStream.getVideoTracks()[0];
* var audioSource = mediaStream.getAudioTracks()[0];
* // After processing videoSource and audioSource
* var localStream = AgoraRTC.createStream({
* video: true,
* audio: true,
* videoSource: videoSource,
* audioSource: audioSource
* });
* localStream.init(function(){
* client.publish(localStream, function(e){
* //...
* });
* });
* });
*
* \@remark
* - `MediaStreamTrack` refers to the `MediaStreamTrack` object supported by the browser.
* - Currently this option only supports the Chrome brower.
*
* @see [MediaStreamTrack API](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack) for details.
*
*
* ### Enable Screen-sharing on the Chrome Web Browser
*
* const stream = AgoraRTC.createStream({
* streamID: uid,
* audio:false,
* video:false,
* screen:true,
* extensionId:"minllpmhdgpndnkomcoccfekfegnlikg"});
*
* ### Enable Screen-sharing on the Firefox Web Browser
*
* localStream = AgoraRTC.createStream({
* streamID: uid,
* audio: false,
* video: false,
* screen: true,
* mediaSource: "screen",
* });
*
* For a tutorial on screen-sharing on a website,
* @see [Share the Screen](https://docs.agora.io/en/Video/screensharing_web?platform=Web).
* @record
*/
export function StreamSpec() { }
if (false) {
/**
* Whether this stream contains an audio track.
* @type {?}
*/
StreamSpec.prototype.audio;
/**
* Whether to enable audio processing.
*
* \@param [AEC] Whether to enable acoustic echo cancellation.
* The default value is `true` (enable). If you wish not to enable the acoustic echo cancellation, set AEC as `false`.
* \@param [AGC] Whether to enable audio gain control.
* The default value is true (enable). If you wish not to enable the audio gain control, set AGC as false.
* \@param [ANS] Whether to enable automatic noise suppression.
* The default value is true (enable). If you wish not to enable automatic noise suppression, set ANS as false.
*
* \@remark
* - Safari does not support this setting.
* - Noise suppression is always enabled on Firefox. Setting `ANS` as `false` does not take effect on Firefox.
* @type {?|undefined}
*/
StreamSpec.prototype.audioProcessing;
/**
* Specifies the audio source of the stream.
* @type {?|undefined}
*/
StreamSpec.prototype.audioSource;
/**
* The camera device ID retrieved from the [getDevices](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#getdevices)
* method.
*
* The retrieved ID is ASCII characters, and the string length is greater than 0 and less than 256 bytes.
*
* When the string length is 0, this property is ignored.
* @type {?|undefined}
*/
StreamSpec.prototype.cameraId;
/**
* The extension ID of the Chrome screen-sharing extension.
*
* ASCII characters only, and the string length must be greater than 0 and less than 256 bytes.
* Set this property if you use the Chrome screen-sharing extension.
* @see [Chrome Extension for Screen Sharing](https://docs.agora.io/en/Video/chrome_screensharing_plugin?platform=Web) for details.
*
* \@remark
* Chrome 72 and later versions support screen sharing without the extension. You can leave extensionId as empty.
* If you set the `extensionId`, then you need to use the screen-sharing extension.
* @type {?|undefined}
*/
StreamSpec.prototype.extensionId;
/**
* Sets using the front or rear camera.
*
* You can set this parameter to use the front or rear camera on mobile devices:
* - `"user"`: The front camera
* - `"environment"`: The rear camera
* @type {?|undefined}
*/
StreamSpec.prototype.facingMode;
/**
* The screen-sharing mode on the Firefox browser.
*
* If you are using the Firefox browser, setting this property specifies the screen-sharing mode:
* - `"screen"`: (default) share the current screen
* - `"application"`: share all windows of an App
* - `"window"`: share a specified window of an App
*
* \@remark
* Firefox on Windows does not support the application mode.
*
* @see
* [Screen Sharing on Firefox](https://docs.agora.io/en/Video/screensharing_web?platform=Web#a-name-ff-a-screen-sharing-on-firefox)
* for details.
* @type {?|undefined}
*/
StreamSpec.prototype.mediaSource;
/**
* The microphone device ID retrieved from the
* [getDevices](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#getdevices) method.
*
* The retrieved ID is ASCII characters, and the string length is greater than 0 and less than 256 bytes.
*
* When the string length is 0, this property is ignored.
* @type {?|undefined}
*/
StreamSpec.prototype.microphoneId;
/**
* Marks whether to mirror the local video image of the publisher in the local preview.
*
* This setting does not take effect in screen-sharing streams.
* - `true`: (Default) Mirror the local video.
* - `false`: Do not mirror the local video.
*
* Agora recommends enabling this function when using the front camera, and disabling it when using the rear camera.
* @type {?|undefined}
*/
StreamSpec.prototype.mirror;
/**
* Whether this stream contains a screen-sharing track.
*
* @see [Share the Screen](https://docs.agora.io/en/Video/screensharing_web?platform=Web) for details.
* @type {?|undefined}
*/
StreamSpec.prototype.screen;
/**
* Marks whether to share the audio playback when sharing the screen.
*
* - `true`: Share the local audio playback when sharing the screen.
* - `false`: (Default) Do not share the local audio playback when sharing the screen.
*
* To share the local audio playback when sharing the screen, ensure that you set screen as `true`.
* We recommend also setting [audio](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#audio)
* as false. If both `screenAudio` and `audio` are set as `true`, the stream only contains the local audio playback.
*
* \@remark
* - This function supports only Chrome 73 or later on Windows.
* - For the audio sharing to take effect, the user must check **Share audio** in the pop-up window when sharing the screen.
*
* \@since 3.0.0
* @type {?|undefined}
*/
StreamSpec.prototype.screenAudio;
/**
* The stream ID.
*
* Please set the stream ID as the user ID, which can be retrieved from the callback of
* [Client.join](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.client.html#join).
* @type {?|undefined}
*/
StreamSpec.prototype.streamID;
/**
* Whether this stream contains a video track.
* @type {?}
*/
StreamSpec.prototype.video;
/**
* Specifies the video source of the stream.
*
* \@remark
* If you use a video source created by the Canvas API, re-draw on the canvas every one second
* when the drawing is still to keep the video publishing.
* @type {?|undefined}
*/
StreamSpec.prototype.videoSource;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLXNwZWMubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYWdvcmEvIiwic291cmNlcyI6WyJsaWIvZGF0YS9tb2RlbHMvc3RyZWFtLXNwZWMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRkEsZ0NBb0lDOzs7Ozs7SUFoSUMsMkJBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7SUFlZixxQ0FJRTs7Ozs7SUFJRixpQ0FBK0I7Ozs7Ozs7Ozs7SUFTL0IsOEJBQWtCOzs7Ozs7Ozs7Ozs7O0lBWWxCLGlDQUFxQjs7Ozs7Ozs7O0lBUXJCLGdDQUFvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQnBDLGlDQUFrRDs7Ozs7Ozs7OztJQVNsRCxrQ0FBc0I7Ozs7Ozs7Ozs7O0lBVXRCLDRCQUFpQjs7Ozs7OztJQU1qQiw0QkFBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWlCakIsaUNBQXNCOzs7Ozs7OztJQU90Qiw4QkFBMkI7Ozs7O0lBRTNCLDJCQUFlOzs7Ozs7Ozs7SUFRZixpQ0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYVN0cmVhbVRyYWNrIH0gZnJvbSAnLi9tZWRpYS1zdHJlYW0tdHJhY2subW9kZWwnO1xuXG4vKipcbiAqIEEgY2xhc3MgZGVmaW5pbmcgdGhlIGBzcGVjYCBwYXJhbXRlciBpbiB0aGVcbiAqIFtjcmVhdGVTdHJlYW1dKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNjcmVhdGVzdHJlYW0pIG1ldGhvZC5cbiAqXG4gKiAgKiBAcmVtYXJrXG4gKiAtIERvIG5vdCBzZXQgYHZpZGVvYCBhbmQgYHNjcmVlbmAgYXMgYHRydWVgIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiAtIFRvIGVuYWJsZSBzY3JlZW4tc2hhcmluZyBvbiB0aGUgRmlyZWZveCBicm93c2VyLCBlbnN1cmUgdGhhdCB0aGUgYHNjcmVlbmAgcHJvcGVydHkgaXNcbiAqIHNldCB0byBgdHJ1ZWAsIGFuZCB0aGUgYG1lZGlhU291cmNlYCBwcm9wZXJ0eSBoYXMgYmVlbiBzZXQgdG8gc3BlY2lmeSBhIGNlcnRhaW4gc2hhcmluZyBtb2RlLlxuICpcbiAqICMgQ3JlYXRlIGEgU3RyZWFtXG4gKlxuICogWW91IGhhdmUgdHdvIG9wdGlvbnMgdG8gY3JlYXRlIGFuIGF1ZGlvL3ZpZGVvIHN0cmVhbTpcbiAqXG4gKiAgIyMgU2V0IHRoZSBhdWRpbywgdmlkZW8sIGFuZCBzY3JlZW4gcHJvcGVydGllc1xuICogIGNvbnN0IHN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgIGF1ZGlvOnRydWUsXG4gKiAgIHZpZGVvOnRydWUsXG4gKiAgIHNjcmVlbjpmYWxzZVxuICogIH0pO1xuICpcbiAqXG4gKiAjIyBTZXQgdGhlIGF1ZGlvU291cmNlIGFuZCB2aWRlb1NvdXJjZSBwcm9wZXJ0aWVzXG4gKlxuICogQ29tcGFyZWQgd2l0aCB0aGUgZmlyc3Qgb3B0aW9uLCB0aGVcbiAqIFthdWRpb1NvdXJjZV0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL0FQSSUyMFJlZmVyZW5jZS93ZWIvaW50ZXJmYWNlcy9hZ29yYXJ0Yy5zdHJlYW1zcGVjLmh0bWwjYXVkaW9zb3VyY2UpXG4gKiBhbmQgW3ZpZGVvU291cmNlXShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vQVBJJTIwUmVmZXJlbmNlL3dlYi9pbnRlcmZhY2VzL2Fnb3JhcnRjLnN0cmVhbXNwZWMuaHRtbCN2aWRlb3NvdXJjZSlcbiAqIHByb3BlcnRpZXMgY2FuIHNwZWNpZnkgdGhlIGF1ZGlvIGFuZCB2aWRlbyB0cmFja3MgZm9yIHRoZSBzdHJlYW0uIFVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgbmVlZCB0byBwcm9jZXNzIHRoZSBhdWRpb1xuICogYW5kIHZpZGVvIGJlZm9yZSBjcmVhdGluZyB0aGUgc3RyZWFtLlxuICpcbiAqIFVzZSB0aGUgYG1lZGlhU3RyZWFtYCBtZXRob2QgdG8gZ2V0IHRoZSBhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGZyb20gYE1lZGlhU3RyZWFtVHJhY2tgLCBhbmQgdGhlbiBzZXQgYGF1ZGlvU291cmNlYCBhbmQgYHZpZGVvU291cmNlYDpcbiAqXG4gKiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShcbiAqICAgICB7dmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlfVxuICogKS50aGVuKGZ1bmN0aW9uKG1lZGlhU3RyZWFtKXtcbiAqICAgICB2YXIgdmlkZW9Tb3VyY2UgPSBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdO1xuICogICAgIHZhciBhdWRpb1NvdXJjZSA9IG1lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07XG4gKiAgICAgLy8gQWZ0ZXIgcHJvY2Vzc2luZyB2aWRlb1NvdXJjZSBhbmQgYXVkaW9Tb3VyY2VcbiAqICAgICB2YXIgbG9jYWxTdHJlYW0gPSBBZ29yYVJUQy5jcmVhdGVTdHJlYW0oe1xuICogICAgICAgICB2aWRlbzogdHJ1ZSxcbiAqICAgICAgICAgYXVkaW86IHRydWUsXG4gKiAgICAgICAgIHZpZGVvU291cmNlOiB2aWRlb1NvdXJjZSxcbiAqICAgICAgICAgYXVkaW9Tb3VyY2U6IGF1ZGlvU291cmNlXG4gKiAgICAgfSk7XG4gKiAgICAgbG9jYWxTdHJlYW0uaW5pdChmdW5jdGlvbigpe1xuICogICAgICAgICBjbGllbnQucHVibGlzaChsb2NhbFN0cmVhbSwgZnVuY3Rpb24oZSl7XG4gKiAgICAgICAgICAgICAvLy4uLlxuICogICAgICAgICB9KTtcbiAqICAgICB9KTtcbiAqIH0pO1xuICpcbiAqIEByZW1hcmtcbiAqIC0gYE1lZGlhU3RyZWFtVHJhY2tgIHJlZmVycyB0byB0aGUgYE1lZGlhU3RyZWFtVHJhY2tgIG9iamVjdCBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXIuXG4gKiAtIEN1cnJlbnRseSB0aGlzIG9wdGlvbiBvbmx5IHN1cHBvcnRzIHRoZSBDaHJvbWUgYnJvd2VyLlxuICpcbiAqIEBzZWUgW01lZGlhU3RyZWFtVHJhY2sgQVBJXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTWVkaWFTdHJlYW1UcmFjaykgZm9yIGRldGFpbHMuXG4gKlxuICpcbiAqICMjIyBFbmFibGUgU2NyZWVuLXNoYXJpbmcgb24gdGhlIENocm9tZSBXZWIgQnJvd3NlclxuICpcbiAqIGNvbnN0IHN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgIGF1ZGlvOmZhbHNlLFxuICogICB2aWRlbzpmYWxzZSxcbiAqICAgc2NyZWVuOnRydWUsXG4gKiAgIGV4dGVuc2lvbklkOlwibWlubGxwbWhkZ3BuZG5rb21jb2NjZmVrZmVnbmxpa2dcIn0pO1xuICpcbiAqICMjIyBFbmFibGUgU2NyZWVuLXNoYXJpbmcgb24gdGhlIEZpcmVmb3ggV2ViIEJyb3dzZXJcbiAqXG4gKiBsb2NhbFN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgICAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgICAgIGF1ZGlvOiBmYWxzZSxcbiAqICAgICAgdmlkZW86IGZhbHNlLFxuICogICAgICBzY3JlZW46IHRydWUsXG4gKiAgICAgIG1lZGlhU291cmNlOiBcInNjcmVlblwiLFxuICogICAgfSk7XG4gKlxuICogRm9yIGEgdHV0b3JpYWwgb24gc2NyZWVuLXNoYXJpbmcgb24gYSB3ZWJzaXRlLFxuICogQHNlZSBbU2hhcmUgdGhlIFNjcmVlbl0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL3NjcmVlbnNoYXJpbmdfd2ViP3BsYXRmb3JtPVdlYikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWFtU3BlYyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RyZWFtIGNvbnRhaW5zIGFuIGF1ZGlvIHRyYWNrLlxuICAgKi9cbiAgYXVkaW86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhdWRpbyBwcm9jZXNzaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gW0FFQ10gV2hldGhlciB0byBlbmFibGUgYWNvdXN0aWMgZWNobyBjYW5jZWxsYXRpb24uXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGB0cnVlYCAoZW5hYmxlKS4gSWYgeW91IHdpc2ggbm90IHRvIGVuYWJsZSB0aGUgYWNvdXN0aWMgZWNobyBjYW5jZWxsYXRpb24sIHNldCBBRUMgYXMgYGZhbHNlYC5cbiAgICogQHBhcmFtIFtBR0NdIFdoZXRoZXIgdG8gZW5hYmxlIGF1ZGlvIGdhaW4gY29udHJvbC5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHJ1ZSAoZW5hYmxlKS4gSWYgeW91IHdpc2ggbm90IHRvIGVuYWJsZSB0aGUgYXVkaW8gZ2FpbiBjb250cm9sLCBzZXQgQUdDIGFzIGZhbHNlLlxuICAgKiBAcGFyYW0gW0FOU10gV2hldGhlciB0byBlbmFibGUgYXV0b21hdGljIG5vaXNlIHN1cHByZXNzaW9uLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0cnVlIChlbmFibGUpLiBJZiB5b3Ugd2lzaCBub3QgdG8gZW5hYmxlIGF1dG9tYXRpYyBub2lzZSBzdXBwcmVzc2lvbiwgc2V0IEFOUyBhcyBmYWxzZS5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiAtIFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgc2V0dGluZy5cbiAgICogLSBOb2lzZSBzdXBwcmVzc2lvbiBpcyBhbHdheXMgZW5hYmxlZCBvbiBGaXJlZm94LiBTZXR0aW5nIGBBTlNgIGFzIGBmYWxzZWAgZG9lcyBub3QgdGFrZSBlZmZlY3Qgb24gRmlyZWZveC5cbiAgICovXG4gIGF1ZGlvUHJvY2Vzc2luZz86IHtcbiAgICBBRUM/OiBib29sZWFuO1xuICAgIEFHQz86IGJvb2xlYW47XG4gICAgQU5TPzogYm9vbGVhbjtcbiAgfTtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYXVkaW8gc291cmNlIG9mIHRoZSBzdHJlYW0uXG4gICAqL1xuICBhdWRpb1NvdXJjZT86IE1lZGlhU3RyZWFtVHJhY2s7XG4gIC8qKlxuICAgKiBUaGUgY2FtZXJhIGRldmljZSBJRCByZXRyaWV2ZWQgZnJvbSB0aGUgW2dldERldmljZXNdKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNnZXRkZXZpY2VzKVxuICAgKiBtZXRob2QuXG4gICAqXG4gICAqIFRoZSByZXRyaWV2ZWQgSUQgaXMgQVNDSUkgY2hhcmFjdGVycywgYW5kIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gMjU2IGJ5dGVzLlxuICAgKlxuICAgKiBXaGVuIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIDAsIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZC5cbiAgICovXG4gIGNhbWVyYUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiBJRCBvZiB0aGUgQ2hyb21lIHNjcmVlbi1zaGFyaW5nIGV4dGVuc2lvbi5cbiAgICpcbiAgICogQVNDSUkgY2hhcmFjdGVycyBvbmx5LCBhbmQgdGhlIHN0cmluZyBsZW5ndGggbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIDI1NiBieXRlcy5cbiAgICogU2V0IHRoaXMgcHJvcGVydHkgaWYgeW91IHVzZSB0aGUgQ2hyb21lIHNjcmVlbi1zaGFyaW5nIGV4dGVuc2lvbi5cbiAgICogQHNlZSBbQ2hyb21lIEV4dGVuc2lvbiBmb3IgU2NyZWVuIFNoYXJpbmddKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9jaHJvbWVfc2NyZWVuc2hhcmluZ19wbHVnaW4/cGxhdGZvcm09V2ViKSBmb3IgZGV0YWlscy5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiBDaHJvbWUgNzIgYW5kIGxhdGVyIHZlcnNpb25zIHN1cHBvcnQgc2NyZWVuIHNoYXJpbmcgd2l0aG91dCB0aGUgZXh0ZW5zaW9uLiBZb3UgY2FuIGxlYXZlIGV4dGVuc2lvbklkIGFzIGVtcHR5LlxuICAgKiBJZiB5b3Ugc2V0IHRoZSBgZXh0ZW5zaW9uSWRgLCB0aGVuIHlvdSBuZWVkIHRvIHVzZSB0aGUgc2NyZWVuLXNoYXJpbmcgZXh0ZW5zaW9uLlxuICAgKi9cbiAgZXh0ZW5zaW9uSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIHVzaW5nIHRoZSBmcm9udCBvciByZWFyIGNhbWVyYS5cbiAgICpcbiAgICogWW91IGNhbiBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gdXNlIHRoZSBmcm9udCBvciByZWFyIGNhbWVyYSBvbiBtb2JpbGUgZGV2aWNlczpcbiAgICogLSBgXCJ1c2VyXCJgOiBUaGUgZnJvbnQgY2FtZXJhXG4gICAqIC0gYFwiZW52aXJvbm1lbnRcImA6IFRoZSByZWFyIGNhbWVyYVxuICAgKi9cbiAgZmFjaW5nTW9kZT86ICd1c2VyJyB8ICdlbnZpcm9ubWVudCc7XG4gIC8qKlxuICAgKiBUaGUgc2NyZWVuLXNoYXJpbmcgbW9kZSBvbiB0aGUgRmlyZWZveCBicm93c2VyLlxuICAgKlxuICAgKiBJZiB5b3UgYXJlIHVzaW5nIHRoZSBGaXJlZm94IGJyb3dzZXIsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIHNjcmVlbi1zaGFyaW5nIG1vZGU6XG4gICAqIC0gYFwic2NyZWVuXCJgOiAoZGVmYXVsdCkgc2hhcmUgdGhlIGN1cnJlbnQgc2NyZWVuXG4gICAqIC0gYFwiYXBwbGljYXRpb25cImA6IHNoYXJlIGFsbCB3aW5kb3dzIG9mIGFuIEFwcFxuICAgKiAtIGBcIndpbmRvd1wiYDogc2hhcmUgYSBzcGVjaWZpZWQgd2luZG93IG9mIGFuIEFwcFxuICAgKlxuICAgKiBAcmVtYXJrXG4gICAqIEZpcmVmb3ggb24gV2luZG93cyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhcHBsaWNhdGlvbiBtb2RlLlxuICAgKlxuICAgKiBAc2VlXG4gICAqIFtTY3JlZW4gU2hhcmluZyBvbiBGaXJlZm94XShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vc2NyZWVuc2hhcmluZ193ZWI/cGxhdGZvcm09V2ViI2EtbmFtZS1mZi1hLXNjcmVlbi1zaGFyaW5nLW9uLWZpcmVmb3gpXG4gICAqIGZvciBkZXRhaWxzLlxuICAgKi9cbiAgbWVkaWFTb3VyY2U/OiAnc2NyZWVuJyB8ICdhcHBsaWNhdGlvbicgfCAnd2luZG93JztcbiAgLyoqXG4gICAqIFRoZSBtaWNyb3Bob25lIGRldmljZSBJRCByZXRyaWV2ZWQgZnJvbSB0aGVcbiAgICogW2dldERldmljZXNdKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNnZXRkZXZpY2VzKSBtZXRob2QuXG4gICAqXG4gICAqIFRoZSByZXRyaWV2ZWQgSUQgaXMgQVNDSUkgY2hhcmFjdGVycywgYW5kIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gMjU2IGJ5dGVzLlxuICAgKlxuICAgKiBXaGVuIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIDAsIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZC5cbiAgICovXG4gIG1pY3JvcGhvbmVJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE1hcmtzIHdoZXRoZXIgdG8gbWlycm9yIHRoZSBsb2NhbCB2aWRlbyBpbWFnZSBvZiB0aGUgcHVibGlzaGVyIGluIHRoZSBsb2NhbCBwcmV2aWV3LlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgZG9lcyBub3QgdGFrZSBlZmZlY3QgaW4gc2NyZWVuLXNoYXJpbmcgc3RyZWFtcy5cbiAgICogLSBgdHJ1ZWA6IChEZWZhdWx0KSBNaXJyb3IgdGhlIGxvY2FsIHZpZGVvLlxuICAgKiAtIGBmYWxzZWA6IERvIG5vdCBtaXJyb3IgdGhlIGxvY2FsIHZpZGVvLlxuICAgKlxuICAgKiBBZ29yYSByZWNvbW1lbmRzIGVuYWJsaW5nIHRoaXMgZnVuY3Rpb24gd2hlbiB1c2luZyB0aGUgZnJvbnQgY2FtZXJhLCBhbmQgZGlzYWJsaW5nIGl0IHdoZW4gdXNpbmcgdGhlIHJlYXIgY2FtZXJhLlxuICAgKi9cbiAgbWlycm9yPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdHJlYW0gY29udGFpbnMgYSBzY3JlZW4tc2hhcmluZyB0cmFjay5cbiAgICpcbiAgICogQHNlZSBbU2hhcmUgdGhlIFNjcmVlbl0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL3NjcmVlbnNoYXJpbmdfd2ViP3BsYXRmb3JtPVdlYikgZm9yIGRldGFpbHMuXG4gICAqL1xuICBzY3JlZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogTWFya3Mgd2hldGhlciB0byBzaGFyZSB0aGUgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqXG4gICAqIC0gYHRydWVgOiBTaGFyZSB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqIC0gYGZhbHNlYDogKERlZmF1bHQpIERvIG5vdCBzaGFyZSB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqXG4gICAqIFRvIHNoYXJlIHRoZSBsb2NhbCBhdWRpbyBwbGF5YmFjayB3aGVuIHNoYXJpbmcgdGhlIHNjcmVlbiwgZW5zdXJlIHRoYXQgeW91IHNldCBzY3JlZW4gYXMgYHRydWVgLlxuICAgKiBXZSByZWNvbW1lbmQgYWxzbyBzZXR0aW5nIFthdWRpb10oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL0FQSSUyMFJlZmVyZW5jZS93ZWIvaW50ZXJmYWNlcy9hZ29yYXJ0Yy5zdHJlYW1zcGVjLmh0bWwjYXVkaW8pXG4gICAqIGFzIGZhbHNlLiBJZiBib3RoIGBzY3JlZW5BdWRpb2AgYW5kIGBhdWRpb2AgYXJlIHNldCBhcyBgdHJ1ZWAsIHRoZSBzdHJlYW0gb25seSBjb250YWlucyB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2suXG4gICAqXG4gICAqIEByZW1hcmtcbiAgICogLSBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIG9ubHkgQ2hyb21lIDczIG9yIGxhdGVyIG9uIFdpbmRvd3MuXG4gICAqIC0gRm9yIHRoZSBhdWRpbyBzaGFyaW5nIHRvIHRha2UgZWZmZWN0LCB0aGUgdXNlciBtdXN0IGNoZWNrICoqU2hhcmUgYXVkaW8qKiBpbiB0aGUgcG9wLXVwIHdpbmRvdyB3aGVuIHNoYXJpbmcgdGhlIHNjcmVlbi5cbiAgICpcbiAgICogQHNpbmNlIDMuMC4wXG4gICAqL1xuICBzY3JlZW5BdWRpbz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIElELlxuICAgKlxuICAgKiBQbGVhc2Ugc2V0IHRoZSBzdHJlYW0gSUQgYXMgdGhlIHVzZXIgSUQsIHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgY2FsbGJhY2sgb2ZcbiAgICogW0NsaWVudC5qb2luXShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vQVBJJTIwUmVmZXJlbmNlL3dlYi9pbnRlcmZhY2VzL2Fnb3JhcnRjLmNsaWVudC5odG1sI2pvaW4pLlxuICAgKi9cbiAgc3RyZWFtSUQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoaXMgc3RyZWFtIGNvbnRhaW5zIGEgdmlkZW8gdHJhY2suICovXG4gIHZpZGVvOiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB2aWRlbyBzb3VyY2Ugb2YgdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiBJZiB5b3UgdXNlIGEgdmlkZW8gc291cmNlIGNyZWF0ZWQgYnkgdGhlIENhbnZhcyBBUEksIHJlLWRyYXcgb24gdGhlIGNhbnZhcyBldmVyeSBvbmUgc2Vjb25kXG4gICAqIHdoZW4gdGhlIGRyYXdpbmcgaXMgc3RpbGwgdG8ga2VlcCB0aGUgdmlkZW8gcHVibGlzaGluZy5cbiAgICovXG4gIHZpZGVvU291cmNlPzogTWVkaWFTdHJlYW1UcmFjaztcbn1cbiJdfQ==