@flowplayer/player 3.11.2-rc.0 → 3.11.2-rc.2
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/core.js +1 -1
- package/default.js +1 -1
- package/embed.js +2 -2
- package/index.d.ts +14 -68
- package/package.json +1 -2
- package/plugins/ads.d.ts +14 -70
- package/plugins/ads.js +1 -1
- package/plugins/airplay.d.ts +14 -70
- package/plugins/analytics.js +1 -1
- package/plugins/asel.d.ts +13 -69
- package/plugins/audio.d.ts +13 -79
- package/plugins/chapters.d.ts +13 -69
- package/plugins/chromecast.d.ts +14 -70
- package/plugins/consent.d.ts +13 -81
- package/plugins/cuepoints.d.ts +13 -81
- package/plugins/dash.d.ts +122 -15
- package/plugins/drm.d.ts +43 -4
- package/plugins/endscreen.d.ts +14 -70
- package/plugins/fas.d.ts +13 -69
- package/plugins/float-on-scroll.d.ts +18 -103
- package/plugins/ga4.d.ts +14 -70
- package/plugins/gemius.d.ts +13 -79
- package/plugins/google-analytics.d.ts +14 -70
- package/plugins/health.d.ts +14 -92
- package/plugins/health.js +1 -1
- package/plugins/iframe.d.ts +13 -91
- package/plugins/ovp.d.ts +14 -82
- package/plugins/playlist.d.ts +14 -82
- package/plugins/qsel.d.ts +13 -81
- package/plugins/share.d.ts +14 -80
- package/plugins/speed.d.ts +13 -91
- package/plugins/ssai.d.ts +13 -79
- package/plugins/ssai.js +1 -1
- package/plugins/subtitles.d.ts +23 -85
- package/plugins/thumbnails.d.ts +14 -81
- package/plugins/thumbnails.js +1 -1
- package/plugins/tizen.d.ts +13 -69
- package/plugins/vtsel.d.ts +13 -79
- package/plugins/webos.d.ts +13 -69
- package/util/loader.d.ts +14 -92
- package/plugins/acl.js +0 -1
package/index.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ export declare type AnyPlugin<PluginOwnConfig extends KeyValue> = Plugin_2<Plugi
|
|
|
5
5
|
|
|
6
6
|
declare type ArrayToIntersection<T extends Array<unknown>> = T extends [infer Current, ...infer Remaining] ? Current & ArrayToIntersection<Remaining> : unknown;
|
|
7
7
|
|
|
8
|
+
declare enum AutoplayOpts {
|
|
9
|
+
OFF = 0,
|
|
10
|
+
ON = 1,
|
|
11
|
+
AUDIO_REQUIRED = 2
|
|
12
|
+
}
|
|
13
|
+
|
|
8
14
|
declare type BitOpts = number;
|
|
9
15
|
|
|
10
16
|
declare type Component = {
|
|
@@ -114,49 +120,6 @@ export declare type DRMVendorImplementation = {
|
|
|
114
120
|
}, cb: (license_data: Uint8Array) => void) => void;
|
|
115
121
|
};
|
|
116
122
|
|
|
117
|
-
export declare namespace Flowplayer {
|
|
118
|
-
export type SourceStr = Sources.SourceStr;
|
|
119
|
-
export type DRM_KEYSYSTEM = Sources.DRM_KEYSYSTEM;
|
|
120
|
-
export type SourceObj = Sources.SourceObj;
|
|
121
|
-
export type DRMSourceConfiguration = Sources.DRMSourceConfiguration;
|
|
122
|
-
export type SourceWith<T> = Sources.SourceWith<T>;
|
|
123
|
-
export type UnsafeSource = Sources.UnsafeSource;
|
|
124
|
-
export type SourceList = Sources.SourceList;
|
|
125
|
-
export type DRMConfiguration = Sources.DRMConfiguration;
|
|
126
|
-
export type DRMVendorImplementation = Sources.DRMVendorImplementation;
|
|
127
|
-
export type BitOpts = Configs.BitOpts;
|
|
128
|
-
export type FlowplayerCustomElementRegistry = Configs.FlowplayerCustomElementRegistry;
|
|
129
|
-
export interface Config extends Configs.Config {
|
|
130
|
-
}
|
|
131
|
-
export type CustomConfig<T> = Configs.CustomConfig<T>;
|
|
132
|
-
export type PluginConfig<T> = Configs.PluginConfig<T>;
|
|
133
|
-
export interface VideoTrack extends Players.VideoTrack {
|
|
134
|
-
}
|
|
135
|
-
export interface FPEvent<T> extends Players.FPEvent<T> {
|
|
136
|
-
}
|
|
137
|
-
export type DeviceId = Players.DeviceId;
|
|
138
|
-
export type JSONPlayer = Players.JSONPlayer;
|
|
139
|
-
export type PlayerRoot = Players.PlayerRoot;
|
|
140
|
-
export interface Player extends Players.Player {
|
|
141
|
-
}
|
|
142
|
-
export type PlayerState = Players.PlayerState;
|
|
143
|
-
export interface FlowplayerUMD extends FlowplayerUMDs.FlowplayerUMD {
|
|
144
|
-
}
|
|
145
|
-
export interface Components extends FlowplayerUMDs.Components {
|
|
146
|
-
}
|
|
147
|
-
export type Component = FlowplayerUMDs.Component;
|
|
148
|
-
export enum AutoplayOpts {
|
|
149
|
-
OFF,
|
|
150
|
-
ON,
|
|
151
|
-
AUDIO_REQUIRED
|
|
152
|
-
}
|
|
153
|
-
export enum QualityOpts {
|
|
154
|
-
LOW,
|
|
155
|
-
MEDIUM,
|
|
156
|
-
HIGH
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
123
|
export declare type FlowplayerCustomElementRegistry = Map<string, string>;
|
|
161
124
|
|
|
162
125
|
export declare interface FlowplayerUMD extends FlowplayerUMDBase {
|
|
@@ -175,27 +138,18 @@ declare interface FlowplayerUMDBase {
|
|
|
175
138
|
events: Record<string, string>;
|
|
176
139
|
};
|
|
177
140
|
states: Record<string, string>;
|
|
178
|
-
quality: typeof
|
|
141
|
+
quality: typeof QualityOpts;
|
|
179
142
|
commit: string;
|
|
180
143
|
version: string;
|
|
181
144
|
customElements: FlowplayerCustomElementRegistry;
|
|
182
145
|
defaultElements: Record<string, string>;
|
|
183
146
|
components: Components;
|
|
184
147
|
support: any;
|
|
185
|
-
autoplay: typeof
|
|
148
|
+
autoplay: typeof AutoplayOpts;
|
|
186
149
|
jwt: any;
|
|
187
150
|
loaders: any;
|
|
188
151
|
}
|
|
189
152
|
|
|
190
|
-
declare namespace FlowplayerUMDs {
|
|
191
|
-
export {
|
|
192
|
-
FlowplayerUMD,
|
|
193
|
-
FlowplayerUMDWithPlugins,
|
|
194
|
-
Components,
|
|
195
|
-
Component
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
153
|
export declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
|
|
200
154
|
(selector: string, config?: ConfigWithPlugins): Player;
|
|
201
155
|
(element: HTMLElement, config?: ConfigWithPlugins): Player;
|
|
@@ -317,6 +271,12 @@ export declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue>
|
|
|
317
271
|
|
|
318
272
|
export declare type QualityChangeEvent = HLSQualityChange | DashQualityChange;
|
|
319
273
|
|
|
274
|
+
declare enum QualityOpts {
|
|
275
|
+
LOW = 1,
|
|
276
|
+
MEDIUM = 2,
|
|
277
|
+
HIGH = 4
|
|
278
|
+
}
|
|
279
|
+
|
|
320
280
|
export declare type SourceList = Array<SourceObj>;
|
|
321
281
|
|
|
322
282
|
export declare type SourceObj = {
|
|
@@ -325,20 +285,6 @@ export declare type SourceObj = {
|
|
|
325
285
|
drm?: DRMSourceConfiguration;
|
|
326
286
|
};
|
|
327
287
|
|
|
328
|
-
declare namespace Sources {
|
|
329
|
-
export {
|
|
330
|
-
SourceStr,
|
|
331
|
-
DRM_KEYSYSTEM,
|
|
332
|
-
SourceObj,
|
|
333
|
-
DRMSourceConfiguration,
|
|
334
|
-
SourceWith,
|
|
335
|
-
UnsafeSource,
|
|
336
|
-
SourceList,
|
|
337
|
-
DRMConfiguration,
|
|
338
|
-
DRMVendorImplementation
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
288
|
export declare type SourceStr = string;
|
|
343
289
|
|
|
344
290
|
export declare type SourceWith<T> = SourceObj & T;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowplayer/player",
|
|
3
|
-
"version": "3.11.2-rc.
|
|
3
|
+
"version": "3.11.2-rc.2",
|
|
4
4
|
"description": "video player for the future",
|
|
5
5
|
"license": "https://flowplayer.com/commercial-license",
|
|
6
6
|
"main": "default.js",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"core/events.js",
|
|
15
15
|
"default.js",
|
|
16
16
|
"embed.js",
|
|
17
|
-
"plugins/acl.js",
|
|
18
17
|
"plugins/ads.js",
|
|
19
18
|
"plugins/airplay.js",
|
|
20
19
|
"plugins/analytics.js",
|
package/plugins/ads.d.ts
CHANGED
|
@@ -276,6 +276,12 @@ declare type AnyPlugin<PluginOwnConfig extends KeyValue> = Plugin_2<PluginOwnCon
|
|
|
276
276
|
|
|
277
277
|
declare type ArrayToIntersection<T extends Array<unknown>> = T extends [infer Current, ...infer Remaining] ? Current & ArrayToIntersection<Remaining> : unknown;
|
|
278
278
|
|
|
279
|
+
declare enum AutoplayOpts {
|
|
280
|
+
OFF = 0,
|
|
281
|
+
ON = 1,
|
|
282
|
+
AUDIO_REQUIRED = 2
|
|
283
|
+
}
|
|
284
|
+
|
|
279
285
|
declare type BaseAdObj = {
|
|
280
286
|
adTag: string | LazyAdTag;
|
|
281
287
|
outstream?: boolean;
|
|
@@ -421,49 +427,6 @@ declare namespace Flags_2 {
|
|
|
421
427
|
}
|
|
422
428
|
}
|
|
423
429
|
|
|
424
|
-
declare namespace Flowplayer {
|
|
425
|
-
type SourceStr = Sources.SourceStr;
|
|
426
|
-
type DRM_KEYSYSTEM = Sources.DRM_KEYSYSTEM;
|
|
427
|
-
type SourceObj = Sources.SourceObj;
|
|
428
|
-
type DRMSourceConfiguration = Sources.DRMSourceConfiguration;
|
|
429
|
-
type SourceWith<T> = Sources.SourceWith<T>;
|
|
430
|
-
type UnsafeSource = Sources.UnsafeSource;
|
|
431
|
-
type SourceList = Sources.SourceList;
|
|
432
|
-
type DRMConfiguration = Sources.DRMConfiguration;
|
|
433
|
-
type DRMVendorImplementation = Sources.DRMVendorImplementation;
|
|
434
|
-
type BitOpts = Configs.BitOpts;
|
|
435
|
-
type FlowplayerCustomElementRegistry = Configs.FlowplayerCustomElementRegistry;
|
|
436
|
-
interface Config extends Configs.Config {
|
|
437
|
-
}
|
|
438
|
-
type CustomConfig<T> = Configs.CustomConfig<T>;
|
|
439
|
-
type PluginConfig<T> = Configs.PluginConfig<T>;
|
|
440
|
-
interface VideoTrack extends Players.VideoTrack {
|
|
441
|
-
}
|
|
442
|
-
interface FPEvent<T> extends Players.FPEvent<T> {
|
|
443
|
-
}
|
|
444
|
-
type DeviceId = Players.DeviceId;
|
|
445
|
-
type JSONPlayer = Players.JSONPlayer;
|
|
446
|
-
type PlayerRoot = Players.PlayerRoot;
|
|
447
|
-
interface Player extends Players.Player {
|
|
448
|
-
}
|
|
449
|
-
type PlayerState = Players.PlayerState;
|
|
450
|
-
interface FlowplayerUMD extends FlowplayerUMDs.FlowplayerUMD {
|
|
451
|
-
}
|
|
452
|
-
interface Components extends FlowplayerUMDs.Components {
|
|
453
|
-
}
|
|
454
|
-
type Component = FlowplayerUMDs.Component;
|
|
455
|
-
enum AutoplayOpts {
|
|
456
|
-
OFF,
|
|
457
|
-
ON,
|
|
458
|
-
AUDIO_REQUIRED
|
|
459
|
-
}
|
|
460
|
-
enum QualityOpts {
|
|
461
|
-
LOW,
|
|
462
|
-
MEDIUM,
|
|
463
|
-
HIGH
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
|
|
467
430
|
declare type FlowplayerCustomElementRegistry = Map<string, string>;
|
|
468
431
|
|
|
469
432
|
declare interface FlowplayerUMD extends FlowplayerUMDBase {
|
|
@@ -482,27 +445,18 @@ declare interface FlowplayerUMDBase {
|
|
|
482
445
|
events: Record<string, string>;
|
|
483
446
|
};
|
|
484
447
|
states: Record<string, string>;
|
|
485
|
-
quality: typeof
|
|
448
|
+
quality: typeof QualityOpts;
|
|
486
449
|
commit: string;
|
|
487
450
|
version: string;
|
|
488
451
|
customElements: FlowplayerCustomElementRegistry;
|
|
489
452
|
defaultElements: Record<string, string>;
|
|
490
453
|
components: Components;
|
|
491
454
|
support: any;
|
|
492
|
-
autoplay: typeof
|
|
455
|
+
autoplay: typeof AutoplayOpts;
|
|
493
456
|
jwt: any;
|
|
494
457
|
loaders: any;
|
|
495
458
|
}
|
|
496
459
|
|
|
497
|
-
declare namespace FlowplayerUMDs {
|
|
498
|
-
export {
|
|
499
|
-
FlowplayerUMD,
|
|
500
|
-
FlowplayerUMDWithPlugins,
|
|
501
|
-
Components,
|
|
502
|
-
Component
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
|
|
506
460
|
declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
|
|
507
461
|
(selector: string, config?: ConfigWithPlugins): Player;
|
|
508
462
|
(element: HTMLElement, config?: ConfigWithPlugins): Player;
|
|
@@ -651,6 +605,12 @@ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
|
|
|
651
605
|
new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
|
|
652
606
|
}
|
|
653
607
|
|
|
608
|
+
declare enum QualityOpts {
|
|
609
|
+
LOW = 1,
|
|
610
|
+
MEDIUM = 2,
|
|
611
|
+
HIGH = 4
|
|
612
|
+
}
|
|
613
|
+
|
|
654
614
|
declare const RELOAD_AD_REQUESTED = "reload-ad-requested";
|
|
655
615
|
|
|
656
616
|
declare const REMAINING_TIME: number;
|
|
@@ -712,28 +672,12 @@ declare const SINGLE_VPAID_20_LINEAR = "https://pubads.g.doubleclick.net/gampad/
|
|
|
712
672
|
|
|
713
673
|
declare const SINGLE_VPAID_20_NON_LINEAR = "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=";
|
|
714
674
|
|
|
715
|
-
declare type SourceList = Array<SourceObj>;
|
|
716
|
-
|
|
717
675
|
declare type SourceObj = {
|
|
718
676
|
src?: SourceStr;
|
|
719
677
|
type?: string;
|
|
720
678
|
drm?: DRMSourceConfiguration;
|
|
721
679
|
};
|
|
722
680
|
|
|
723
|
-
declare namespace Sources {
|
|
724
|
-
export {
|
|
725
|
-
SourceStr,
|
|
726
|
-
DRM_KEYSYSTEM,
|
|
727
|
-
SourceObj,
|
|
728
|
-
DRMSourceConfiguration,
|
|
729
|
-
SourceWith,
|
|
730
|
-
UnsafeSource,
|
|
731
|
-
SourceList,
|
|
732
|
-
DRMConfiguration,
|
|
733
|
-
DRMVendorImplementation
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
|
|
737
681
|
declare type SourceStr = string;
|
|
738
682
|
|
|
739
683
|
declare type SourceWith<T> = SourceObj & T;
|
package/plugins/ads.js
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* https://github.com/lancedikson/bowser
|
|
5
5
|
* MIT License | (c) Dustin Diaz 2012-2015
|
|
6
6
|
* MIT License | (c) Denis Demchenko 2015-2019
|
|
7
|
-
*/const ge=class Bowser{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Parser(e,t)}static parse(e){return new Parser(e).getResult()}static get BROWSER_MAP(){return ae}static get ENGINE_MAP(){return de}static get OS_MAP(){return oe}static get PLATFORMS_MAP(){return ne}}.parse(window.navigator.userAgent),{platform:me,os:_e,browser:fe}=ge,ye=e=>e&&e.toLowerCase();var ve={rnd:Math.random().toString(36).substr(2,32),os:ye(_e.name+(_e.versionName?" "+_e.versionName:"")),device:ye(me.type),browser:ye(fe.name),browser_version:(fe&&fe.version?fe.version:"unknown").split(".").shift(),plugin_version:"3.11.2-rc.0"};const Ae="https://fp-eu-w1-aai.flowplayer.com/in",we="POST",be=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],Ee=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Se=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Le=v("ads/analytics"),Te=RequestQueue.of(),Oe=(...e)=>Object.assign({},...e);class Analytics{constructor(e,t={}){this.emitter=e,this.metadata=Oe(ve,t.metadata||{}),this.emitter=e,this.events=t.events||[],this.required_keys=t.required_keys||[],this.optional_keys=t.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Le(this),this.wireup()}static of(e,t){return new Analytics(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(e,t){return((e,...t)=>Object.keys(e).filter(e=>~t.indexOf(e)).reduce((t,s)=>Object.assign(t,{[s]:e[s]}),{}))(t,...e.valid_keys)}static mergeMetadata(e,t={}){return e.metadata=Analytics.pluck_valid_keys(e,Oe(e.metadata,t,{player_version:"3.11.2-rc.0"})),e}wireup(){this.events.forEach(e=>{this.emitter.on(e,t=>{const s=t.detail,i=Oe(this.metadata,{event_type:e},s),r=Analytics.pluck_valid_keys(this,i),a=Analytics.ensure_required_keys(this,r);if(Le(`Event[${e}]`,{payload:r,observation:s}),a.length)return Le(`Analytics.validate_metadata() failed for\n Event[${e}]\n missing keys: ${a}`,r);RequestQueue.rpush(Te,[Ae,we,r])})})}destroy(){this.emitter=this.metadata=this.events=this.required_keys=this.optional_keys=this.valid_keys=void 0}}const Re=v("ads/controller"),Me={show_all_ads_on_seek:!1,timeout:5e3,preload_advance:10};class AdsController extends class EventBus{constructor(e=document.createElement("div"),t=[]){this._bus=e,this._listeners=t}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(e,t){const s=new CustomEvent(e,{detail:t||{}});this._bus.dispatchEvent(s)}on(e,t){this._listeners.push([e,t]),this._bus.addEventListener(e,t,{passive:!0})}once(e,t){this._bus.addEventListener(e,t,{once:!0})}removeListener(e,t){this._bus.removeEventListener(e,t)}}{constructor(e={}){var t;super(),this.adapter=function(e,t){return e.adapter?new e.adapter(t):new IMA(t)}(e,this),this.opts=Object.assign(Object.assign({},Me),e),this.analytics=(t=this,Analytics.of(t,{required_keys:Ee,optional_keys:Se,events:be})),this._state=AdsState.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new Macros(e.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy();this.analytics=void 0,this.opts=void 0,this.adapter=void 0,this._state=void 0,this._schedule=void 0,this._lastAd=void 0,this._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){const e=()=>{var e;const t=new CustomEvent("ad/playing");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.PLAYING,!0)};this.on("ad-play-requested",e),this.on("ad-started",e),this.on("ad-resumed",e);const t=()=>{var e;if(!this.adPlaying)return;const t=new CustomEvent("ad/paused");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.PLAYING,!1)};this.on("ad-break-completed",t),this.on("ad-teardown",t),this.on("ad-playback-error",t),this.on("ad-request-error",t),this.on("ad-paused",t),this.on("ad-skipped",t),this.on("ad-completed",t),this.on("ad-break-completed",()=>{requestAnimationFrame(()=>{var e;const t=new CustomEvent("ad/complete");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.BREAK_ACTIVE,!1)})}),this.on("ad-adapter-init-failed",()=>{console.error("Adapter init failed"),t(),this._state.toggleState(te.FATAL_ERROR,!0)}),this.on("reload-ad-requested",async e=>{if(Re("Ads.on(RELOAD_AD_REQUESTED)",e),this._schedule){if(t(),e)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(te.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(te.AD_AVAILABLE,!1))}})}async initialize(e,t={},s){return Re("Ads.initialize():",e,t,s),this._state.toggleState(te.INITIALIZING,!0),Object.assign(this.opts,t),Array.isArray(e)&&this.setSchedule(e),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},t.parameters||{},{autoplay:t.autoplay,muted:t.muted})),this.adapter.isReady()&&await this.adapterInitialized(s),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(e){Re("Ads.setVideoTag():",e),await this.adapter.setVideoTag(e),this.trigger("ad-videotag-attached",e),this.adapter.isReady()&&await this.adapterInitialized(),e.on("request/ad/pause",()=>this.adapter.pause()),e.on("request/ad/play",()=>this.adapter.resume()),e.on("request/ad/muteunmute",()=>e.toggleMute()),e.on("volumechange",()=>{this.adapter.volume(e.muted?0:0==e.volume?.1:e.volume)}),e.on("src",()=>e.hasState("ad-playing")||e.hasState("ad-paused")?(this.stop(),this.adapter.isLinearAd()?(this.setIsContentProcessingNewSrc(!0),void this.once("ad-break-completed",()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})):this.onContentNewSrc()):this.onContentNewSrc())}waitForVideoTag(){return new Promise(e=>{const t=this.adapter.getVideoTag();if(t)return e(t);this.on("ad-videotag-attached",t=>{this.once(g,()=>e(t))})})}async adapterInitialized(e){Re("Ads.adapterInitialized()"),this._state.toggleState(te.INITIALIZING,!1),this._state.toggleState(te.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,e),this.checkIfBreakComplete(),this.adapter.isAdPod()||e&&!this.opts.autoplay||this.trigger("ad-teardown")}async fetchNextAd(e,t=0){var s,i;if(!this._schedule)return;if(!this.adapter.isReady())return;if(t>50)throw this._state.toggleState(te.FATAL_ERROR,!0),this._state.toggleState(te.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");const r=(null===(s=this._schedule)||void 0===s?void 0:s.getNextAd())||(null===(i=this._schedule)||void 0===i?void 0:i.getPostroll());if(!r||this.adapter.canDismissNonLinear()||-1===e)if(this._schedule.waitForLoad(e,r,this.opts.preload_ads))this._state.toggleState(te.FETCHING_AD,!1);else if(r===this._schedule.getPostroll()&&this._schedule.setPostrollActive(),this._schedule.isDrained()||this._schedule.increment(),r){Re("Ads.fetchNextAd",r),this._state.toggleState(te.FETCHING_AD,!0);try{return await this.requestAd(r),this._state.toggleState(te.AD_AVAILABLE,!0),void this._state.toggleState(te.FETCHING_AD,!1)}catch(s){if(Re("Ads.fetchNextAd(err: %o, ad: %o)",s,r),this.setLastAd(r),r!==this._schedule.getPostroll())return await this.fetchNextAd(e,++t)}}else this._state.toggleState(te.FETCHING_AD,!1)}skipAdsOnSeek(e){if(!this._schedule)return;let t=this._schedule.getNextAd();for(;t&&t.time<e;)this._schedule.increment(),t=this._schedule.getNextAd()}async setCurrentTime(e,t=!1,s=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(te.FETCHING_AD))return;if(this._state.hasAny(te.PLAYING)&&this.adapter.isLinearAd())return;const i=0===e&&0===this._schedule.getNextIndex();try{if(s&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(e),this._state.hasAny(te.AD_AVAILABLE)||await this.fetchNextAd(e),!this._state.hasAny(te.AD_AVAILABLE)||!this.shallPlayAd(e)||t)return;await this.playAd(),await this.setCurrentTime(e),this.checkIfBreakComplete()}catch(e){Re("setCurrentTime: Error(from: setCurrentTime, message: %s)",e.message)}finally{i&&this.trigger("ad-preroll-finished")}}async playAd(){var e;if(!this._state.hasAny(te.AD_AVAILABLE))return;this._state.toggleState(te.AD_AVAILABLE,!1),this._state.toggleState(te.BREAK_ACTIVE,!0);const t=null===(e=this._schedule)||void 0===e?void 0:e.getCurrentAd();try{await this.adapter.playAd()}catch(e){console.error("Ads.playAd: error",e)}finally{t&&this.setLastAd(t)}}checkIfBreakComplete(){if(!this._state.hasAny(te.BREAK_ACTIVE))return Re("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Re("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(te.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger("ad-break-completed")}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(e,t){if(t&&!isNaN(t)&&this._schedule&&this._schedule.updateContentDuration(t),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(e);this._schedule=new Schedule(e,{preload_advance:this.opts.preload_advance,content_duration:t?0:t})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(e,t={}){var s;if(!this.adapter.getVideoTag())return;if(!this._state)return;if("ad-break-completed"===e&&this._state.hasAny(te.BREAK_ACTIVE)&&!this.adapter.isAdPod())return Re("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(null===(i=t)||"object"!=typeof i||X(i)!==J)return this.dispatch(e,t);var i;const r=Object.assign({},this.adapter.getOpts()||{},(null===(s=this._schedule)||void 0===s?void 0:s.getCurrentAd())||{},{ad_type:this.ad_type},t);return this.dispatch(e,r)}dispatch(e,t){const s=this.adapter.getVideoTag();if(s){Re(":dispatch",e,t);try{const i={event:"ads/"+e,detail:{outstream:t.outstream,ad_type:t.ad_type,ad_break_time:t.time,ad_remaining_seconds:t.remaining,ad_muted:t.muted,ad_duration_seconds:t.duration,ad_error_reason:t.reason,ad_vast_error:t.vast_error,ad_vast_error_type:t.vast_error_type,ad_request_load_type:t.request_load_time}};s.dispatchEvent(new CustomEvent("health:record",{detail:i}))}catch(e){Re(":error",e)}se(s,e,t),this.emit(e,t)}}get ad_type(){return this._schedule&&this._schedule.getCurrentType()}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;const e=this.getLastAd();return!e||!e.outstream&&!1!==e.restart}async finished(e){if(this._schedule&&(Re("Ads.finished"),!(this.adapter.isSharedVideoTag()&&this._state.hasAny(te.PLAYING)&&this.adapter.isLinearAd()))){Re("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Re("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(te.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(e){Re("Ads.finished: postroll failed:",e)}finally{this.trigger("ad-postroll-finished"),this.checkIfBreakComplete(),"function"==typeof e&&e()}}}hasPreroll(){return this._schedule&&Schedule.hasPreroll(this._schedule.getAds())}shallPlayAd(e){var t;return(!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(te.FATAL_ERROR))&&!!(null===(t=this._schedule)||void 0===t?void 0:t.shallPlayAd(e)))}setLastAd(e){return this._lastAd=e,this}setIsContentProcessingNewSrc(e){this.content_processing_src=e}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(e={}){return this._macros=this._macros.fork(Object.assign({},e)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(e){this.adapter&&this.adapter.onResize(e)}async requestAd(e,t=0,s=this.opts.timeout){if(!this._state)return;Re("Ads.requestAd(ad: %o)",{ad:e,timeout:s,idx:t});const i=await async function e(t){if("function"==typeof t)return[await Z(t)];if("string"==typeof t)return[await Z(t)];if(Array.isArray(t)){const e=t;return await Promise.all(e.map(Z))}if("object"==typeof t&&t&&t.adTag)return await e(t.adTag);throw new Error(`\n unhandled ads type ${typeof t}:\n ${JSON.stringify(t)}\n can be:\n | Array<string>\n | string\n | function\n | {adTag: Array<string>|string|function}\n `)}(e);if(void 0===i[t])return Promise.reject(new Error("Ad failed, no fallbacks left"));if(!i[t])return await this.requestAd(i,t+1,s);this.trigger("ad-requested",e);const r=this._macros.compile(i[t],K(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(r,s)}catch(e){return Re(`Ads.requestAd(:fallback, idx: ${t}, length: ${i.length}, adTag: ${i[t]})\nError `,{adTag:i,err:e}),this.requestAd(i,t+1,s)}}resetSchedule(e){this._schedule&&this._schedule.reset(e)}get adPlaying(){return this._state&&this._state.hasAny(te.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(te.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(te.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var De=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),Ie=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function Pe(e){return Object.assign({muted:!1,timeout:250,inline:!1},e)}function ke(e,t){var s=e.muted,i=e.timeout,r=e.inline,a=t(),n=a.element,o=a.source,d=void 0,l=void 0,c=void 0;return n.muted=s,!0===s&&n.setAttribute("muted","muted"),!0===r&&n.setAttribute("playsinline","playsinline"),n.src=o,new Promise((function(e){d=n.play(),l=setTimeout((function(){c(!1,new Error("Timeout "+i+" ms has been reached"))}),i),c=function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;n.remove(),n.srcObject=null,clearTimeout(l),e({result:t,error:s})},void 0!==d?d.then((function(){return c(!0)})).catch((function(e){return c(!1,e)})):c(!0)}))}var Ce={audio:function(e){return ke(e=Pe(e),(function(){return{element:document.createElement("audio"),source:URL.createObjectURL(De)}}))},video:function(e){return ke(e=Pe(e),(function(){return{element:document.createElement("video"),source:URL.createObjectURL(Ie)}}))}};let Ne=void 0;async function Ue(e=!0){return Ne||(Ne=await Ce.video({timeout:500,muted:e}),Ne)}const xe=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Fe=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});function qe(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}const Be=["progress","duration","remaining"],je=v("ads/ui");class AdUI extends HTMLElement{constructor(e,t=document.createElement("div")){super(),this.player=e,this.adContainer=t,this.render(),e.addEventListener("ad/playing",e=>this.updateState(e.type)),e.addEventListener("ad/paused",e=>this.updateState(e.type)),e.addEventListener("ad/complete",e=>this.updateState(e.type)),e.on("ad-progress",e=>{const{remaining:t}=e.detail;this.setAttribute("remaining",t+"")}),e.on("ad/hide-first-frame",e=>{const{root:t}=e.detail;je("hideFirstFrame"),t.classList.toggle("ad-hide-first-frame",!0)}),e.on("ad/show-first-frame",e=>{const{root:t}=e.detail;je("showFirstFrame"),t.classList.toggle("ad-hide-first-frame",!1)}),e.on("ad/resize",e=>{const{opts:t}=e.detail,s=this.style;t.linear?t.width&&(s.width=t.width+"px"):t.width?this.adContainer.style.width=t.width+"px":s.removeProperty("width"),t.height?s.height=t.height+"px":s.removeProperty("height")}),e.on("ad/set-ui-flags",e=>{let{ui_flags:t}=e.detail;if(t=t||0,this.classList.toggle("is-ad-controls-sticky",(1&t)>0),this.classList.toggle("no-fullscreen",(2&t)>0),this.classList.toggle("no-indicator",(4&t)>0),(8&t)>0){const e=document.createElement("div");e.classList.add("ad-attribution"),e.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.adContainer.append(e)}if(this.classList.toggle("no-volume-bar",0==(64&t)),(32&t)>0&&this.controls&&(this.remaining=document.createElement("div"),this.remaining.classList.add("fp-ad-remaining","fp-color-text"),this.controls.prepend(this.remaining)),(16&t)>0&&this.controls){this.classList.toggle("is-ad-choices",!0);const e=document.createElement("div");e.classList.add("fp-ad-choices"),e.textContent=this.player.i18n("ads.adchoices","AdChoices"),e.addEventListener("click",e=>{e.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),this.controls.append(e)}})}static get observedAttributes(){return Be}updateState(e){["ad/paused","ad/playing"].forEach(t=>{const s=t.replace("/","-"),i=e===t;this.player.setState(s,i),this.classList.toggle(s,i)})}attributeChangedCallback(e,t,s){switch(e){case"duration":return this.onDurationChange(parseFloat(s));case"progress":return this.onProgress(parseFloat(t),parseFloat(s));case"remaining":return this.onRemaining(s)}}onDurationChange(e){}onProgress(e,t){}onRemaining(e){this.remaining&&(this.remaining.textContent=function(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const s=Math.floor(e/3600);let i=Math.floor(e/60);return e-=60*i,s>=1?(i-=60*s,t+s+":"+qe(i)+":"+qe(e)):t+qe(i)+":"+qe(e)}(parseFloat(e)))}render(){this.adContainer.classList.add("fp-ad-container"),this.append(this.adContainer),this.controls=A(this.player,"flowplayer-ad-controls");const e=A(this.player,"flowplayer-ad-countdown");this.append(this.controls,e)}}const Ve=v("fpads:native:outstream"),ze={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var He,Ge;!function(e){e.OUTSTREAM_VISIBLE="ads-outstream-visible",e.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",e.OUTSTREAM_TEARDOWN="ads-outstream-teardown",e.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"}(He||(He={})),function(e){e[e.None=0]="None",e[e.Booting=1]="Booting",e[e.Ready=2]="Ready",e[e.Disposed=3]="Disposed"}(Ge||(Ge={}));class Outstream{constructor({ads:e,root:t,content:s,ima:i}){this.state=Ge.None,Ve("creating Outstream instance"),this.content=s,this.ads=e,this.root=t,this.ima=i,this.aspectRatio=s.videoHeight/s.videoWidth,this.dimensions=function(e){if(e.clientWidth>0||e.clientHeight)return h(e);const t={height:e.style.height};p(e,"opacity",0),p(e,"display","absolute"),p(e,"display","inline-block"),p(e,"height","auto");const s=h(e);return p(e,"height",t.height),p(e,"opacity",1),s}(this.root),this.adUi=new AdUI(s),this.adContainer=this.adUi.adContainer,this.initialVolumeState={},t.classList.add(ze.OUTSTREAM),t.append(this.adUi),this.hide(),this.ads.on("ad-pause-content",e=>{var t;if(this.state==Ge.Disposed)return;const s=!!(null===(t=e.detail)||void 0===t?void 0:t.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:s}))}),s.on("resize",e=>{if(this.state==Ge.Disposed)return;const t=e.detail;t&&(this.dimensions={width:t.contentRect.width,height:t.contentRect.height},this.ads.resize(this.dimensions))});let r=1,a=!0;s.on("intersectionchange",e=>{if(this.state==Ge.Disposed)return;const t=e.detail;if(t)switch(this.state){case Ge.Booting:return Ve(":boot skipping intersectionchange");case Ge.None:return this.state=Ge.Booting,this.begin_life_cycle();case Ge.Ready:if(r=t.ratio,t.ratio>=.5&&this.ads.adPlaying)return;t.ratio>=.5&&a&&this.ads.resume(),t.ratio<.5&&this.ads.pause()}}),this.content.on("ad-paused",()=>a=r<.5),this.setup(),setTimeout(()=>(this.state=Ge.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Ve(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(Outstream.CLASS.HIDDEN),this.root.classList.add(Outstream.CLASS.SHOWING),this.adUi.classList.add("linear","on")}async begin_life_cycle(){var e;this.state=Ge.Ready;const{error:t,result:s}=await Ue(!1),{result:i}=await Ue(!0);this.content.emit("ad/set-ui-flags",{ui_flags:null===(e=this.content.opts.ads)||void 0===e?void 0:e.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!s&&!i),muted:!s},Ve("Outstream.show() :autoplay >> sound="+s),t&&this.content&&!s&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await T({ads:this.ads,content:this.content,adContainer:this.adContainer,ima:this.ima,state:{listening:!1},config:this.content.opts}),I({content:this.content,ads:this.ads}),this.state=Ge.Ready}attach_ad_listeners(){const e=this.ads;e.once("ad-pause-content",()=>{this.show(),this.ads.adPlaying&&this.ads.pause()}),this.ima.always_show_controls||e.on("vpaid-init",()=>this.adUi.classList.add("is-vpaid"));const t=()=>{S.forEach(e=>this.ads.removeListener(e,t));const e=new CustomEvent(He.OUTSTREAM_TEARDOWN);Ve("Outstream(:teardown)",e),this.content.dispatchEvent(e)};S.forEach(e=>this.ads.once(e,t)),this.content.once(He.OUTSTREAM_TEARDOWN,e=>{setTimeout(()=>{if(e.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),M({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adContainer,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(xe)})}setup(){this.root.classList.add(Outstream.CLASS.OUTSTREAM),this.root.classList.add(Outstream.CLASS.HIDDEN),this.empty_src()}reset_ui(){const e=this.root;e.classList.remove(Outstream.CLASS.SHOWING),e.classList.remove(Outstream.CLASS.OUTSTREAM),this.adUi.classList.remove("on")}dispose(){if(this.state==Ge.Disposed)return;const e=this.root,t=this.content;this.reset_ui(),e.classList.add(Outstream.CLASS.OUTSTREAM),e.classList.add(Outstream.CLASS.DONE);this.video=this.container=this.ads=0,this.state=Ge.Disposed,t.destroy(),e.innerHTML=""}}function Qe(e){return e&&"number"==typeof e.time}function We(e){return e&&"number"==typeof e.percentage&&"number"!=typeof e.time}Outstream.CLASS=ze;const $e=v("ads/ima/sdk");var Ke;async function Ye(e,t){var s;const i=null===(s=null===window||void 0===window?void 0:window.google)||void 0===s?void 0:s.ima;if(t?null==i?void 0:i.dai:i)return void $e(":noop");const r=t?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":e._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(e){return new Promise((t,s)=>{let i=document.querySelector(`script[src='${e}']`);if(i)return Ze(i,t,s);i=document.createElement("script"),i.setAttribute("state",Ke.LOADING),Ze(i,t,s),i.src=e,document.head.appendChild(i)})}(r),void $e(":loaded")}catch(e){$e(":error "+e.message,e)}}function Ze(e,t,s){const i=e.getAttribute("state");if(i&&[Ke.ERROR,Ke.LOADED].includes(i))return t(void 0);e.addEventListener("load",()=>{e.setAttribute("state",Ke.LOADED),t(void 0)},{once:!0}),["error","abort"].forEach(t=>{e.addEventListener(t,()=>{e.setAttribute("state",Ke.ERROR),s("script failed to load")},{once:!0})})}!function(e){e.LOADING="loading",e.LOADED="loaded",e.ERROR="error"}(Ke||(Ke={}));const Je=v("ads/index");async function Xe(e,t,s){let i;if(s.on("config",()=>{void 0===i&&e.autoplay&&!s.currentSrc&&(i=e.autoplay,e.autoplay=0),s.ads&&o()}),s.once("loadstart",()=>{setTimeout(()=>{var t;if(!Array.isArray(null===(t=null==e?void 0:e.ima)||void 0===t?void 0:t.ads)&&void 0!==i){if(e.autoplay=i,s.setState("is-autoplay",!0),!s.hasState(f))return s.once("viewenter",()=>s.togglePlay(!0));s.togglePlay(!0)}},0)}),await Ye(s),!("google"in window))return console.warn("google.ima unavailable");let r=!1;const a=s.ads=new AdsController,n=a.analytics;function o(){const o=e.ima;if(!o||!Array.isArray(o.ads))return;const d=e.duration||s.duration;if(o.ads=function(e,t){return Array.isArray(e)?e.filter(e=>Qe(e)||We(e)).reduce((e,s)=>{if(Qe(s))return e.push(s),e;if(s.lazy)return e.push(s),e;if(We(s)){const i=Object.assign({},s),r=s.percentage?s.percentage*t:0;return isNaN(r)||(i.time=r<0||r===t?-1:r),e.push(i),e}return e},[]):(console.warn("AdSchedule was not an Array"),[])}(o.ads,d),a.setSchedule(o.ads,d),e.metadata&&Analytics.mergeMetadata(n,e.metadata),e.metadata&&a.mergeMacros(e.metadata),e.metadata&&o.parameters&&(o.parameters=Object.assign(Object.assign({},o.parameters),e.metadata)),Analytics.mergeMetadata(n,{muted:e.muted||!1,autoplay:e.autoplay||!1}),!r){if(r=!0,e.lang&&!o.Locale&&(o.Locale=e.lang),Schedule.isOutstream(o.ads))return Je("is outstream, returning"),new Outstream({root:t,content:s,ads:a,ima:o});L({config:Object.assign(Object.assign({},e),{autoplay:i}),root:t,content:s,ads:a,ima:o})}}a.resize(h(t)),_&&(s.on(["fullscreenenter","fullscreenexit","webkitendfullscreen"],e=>{var t;const i="fullscreenenter"===e.type;null===(t=null==s?void 0:s.ads)||void 0===t||t.adapter.setIOSPlaysInline(!i)}),a.on("ad-postroll-finished",()=>{a.adapter.isSharedVideoTag()&&a.once("ad-break-completed",()=>{s.src=s.original_src,s.once("canplay",()=>{s.togglePlay(!1)}),s.webkitExitFullscreen()})})),s.on("reap",(function(){a&&a.destroy()})),o()}class AdControls extends HTMLElement{constructor(e){super(),this.player=e,this.render()}render(){this.classList.add("fp-ad-controls");const e=A(this.player,"flowplayer-ad-indicator"),t=document.createElement("div");t.classList.add("ad-playback-controls");const s=A(this.player,"flowplayer-small-play-icon"),i=A(this.player,"flowplayer-small-pause-icon");s.addEventListener("click",()=>{this.player.emit("request/ad/play"),setTimeout((function(){i.focus&&i.focus()}),100)}),i.addEventListener("click",()=>{this.player.emit("request/ad/pause"),setTimeout((function(){s.focus&&s.focus()}),100)}),t.append(s,i);const r=A(this.player,"flowplayer-volume-icon");r.addEventListener("click",()=>this.player.emit("request/ad/muteunmute"));const a=A(this.player,"flowplayer-volume-bar"),n=A(this.player,"flowplayer-header-right-zone");this.append(e,t,r,a,n)}}class AdCountdown extends HTMLElement{constructor(e){super(),this.player=e,e.on("ad-progress",e=>{const{duration:t,remaining:s}=e.detail;this.setAttribute("duration",t+""),this.setAttribute("remaining",s+"")}),e.on("ad-started",e=>{e.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{const e=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",e)})}static get observedAttributes(){return["remaining"]}attributeChangedCallback(e,t,s){switch(e){case"remaining":return this.onRemaining(s)}}onRemaining(e){const t=parseFloat(this.getAttribute("duration")||"0");e||(e=t+"");const s=parseFloat(e),i=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",i),this.classList.remove("go");const r=((t-s)/t*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",r),this.classList.add("go")})}}class AdIndicator extends HTMLElement{constructor(e){super(),this.player=e,this.render(),e.on("ad-started",e=>{const{position:t,totals:s}=e.detail.ad;this.setAttribute("position",t+""),this.setAttribute("totals",s+"")})}static get observedAttributes(){return["position","totals"]}attributeChangedCallback(e,t){switch(e){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;const e=parseFloat(this.getAttribute("position")||"0"),t=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${e} / ${t}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var et=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});const{samsung_tv:tt}=u();class Ads{constructor(e){this.umd=e,w(e,b,AdUI),w(e,"flowplayer-ad-controls",AdControls),w(e,"flowplayer-ad-countdown",AdCountdown),w(e,"flowplayer-ad-indicator",AdIndicator)}init(e,t,s){if(c.from_token(e.token||"").is_granted(c.permissions.ADS)&&!tt)return Xe(e,t,s)}}return Ads.events=m,Ads.ui=Fe,Ads.tags=et,function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const s=e.flowplayer;"function"==typeof s?s(t):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(t)||s.extensions.push(t))}(window,Ads),Ads}));
|
|
7
|
+
*/const ge=class Bowser{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Parser(e,t)}static parse(e){return new Parser(e).getResult()}static get BROWSER_MAP(){return ae}static get ENGINE_MAP(){return de}static get OS_MAP(){return oe}static get PLATFORMS_MAP(){return ne}}.parse(window.navigator.userAgent),{platform:me,os:_e,browser:fe}=ge,ye=e=>e&&e.toLowerCase();var ve={rnd:Math.random().toString(36).substr(2,32),os:ye(_e.name+(_e.versionName?" "+_e.versionName:"")),device:ye(me.type),browser:ye(fe.name),browser_version:(fe&&fe.version?fe.version:"unknown").split(".").shift(),plugin_version:"3.11.2-rc.2"};const Ae="https://fp-eu-w1-aai.flowplayer.com/in",we="POST",be=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],Ee=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Se=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Le=v("ads/analytics"),Te=RequestQueue.of(),Oe=(...e)=>Object.assign({},...e);class Analytics{constructor(e,t={}){this.emitter=e,this.metadata=Oe(ve,t.metadata||{}),this.emitter=e,this.events=t.events||[],this.required_keys=t.required_keys||[],this.optional_keys=t.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Le(this),this.wireup()}static of(e,t){return new Analytics(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(e,t){return((e,...t)=>Object.keys(e).filter(e=>~t.indexOf(e)).reduce((t,s)=>Object.assign(t,{[s]:e[s]}),{}))(t,...e.valid_keys)}static mergeMetadata(e,t={}){return e.metadata=Analytics.pluck_valid_keys(e,Oe(e.metadata,t,{player_version:"3.11.2-rc.2"})),e}wireup(){this.events.forEach(e=>{this.emitter.on(e,t=>{const s=t.detail,i=Oe(this.metadata,{event_type:e},s),r=Analytics.pluck_valid_keys(this,i),a=Analytics.ensure_required_keys(this,r);if(Le(`Event[${e}]`,{payload:r,observation:s}),a.length)return Le(`Analytics.validate_metadata() failed for\n Event[${e}]\n missing keys: ${a}`,r);RequestQueue.rpush(Te,[Ae,we,r])})})}destroy(){this.emitter=this.metadata=this.events=this.required_keys=this.optional_keys=this.valid_keys=void 0}}const Re=v("ads/controller"),Me={show_all_ads_on_seek:!1,timeout:5e3,preload_advance:10};class AdsController extends class EventBus{constructor(e=document.createElement("div"),t=[]){this._bus=e,this._listeners=t}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(e,t){const s=new CustomEvent(e,{detail:t||{}});this._bus.dispatchEvent(s)}on(e,t){this._listeners.push([e,t]),this._bus.addEventListener(e,t,{passive:!0})}once(e,t){this._bus.addEventListener(e,t,{once:!0})}removeListener(e,t){this._bus.removeEventListener(e,t)}}{constructor(e={}){var t;super(),this.adapter=function(e,t){return e.adapter?new e.adapter(t):new IMA(t)}(e,this),this.opts=Object.assign(Object.assign({},Me),e),this.analytics=(t=this,Analytics.of(t,{required_keys:Ee,optional_keys:Se,events:be})),this._state=AdsState.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new Macros(e.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy();this.analytics=void 0,this.opts=void 0,this.adapter=void 0,this._state=void 0,this._schedule=void 0,this._lastAd=void 0,this._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){const e=()=>{var e;const t=new CustomEvent("ad/playing");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.PLAYING,!0)};this.on("ad-play-requested",e),this.on("ad-started",e),this.on("ad-resumed",e);const t=()=>{var e;if(!this.adPlaying)return;const t=new CustomEvent("ad/paused");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.PLAYING,!1)};this.on("ad-break-completed",t),this.on("ad-teardown",t),this.on("ad-playback-error",t),this.on("ad-request-error",t),this.on("ad-paused",t),this.on("ad-skipped",t),this.on("ad-completed",t),this.on("ad-break-completed",()=>{requestAnimationFrame(()=>{var e;const t=new CustomEvent("ad/complete");null===(e=this.videoTag)||void 0===e||e.dispatchEvent(t),this._state.toggleState(te.BREAK_ACTIVE,!1)})}),this.on("ad-adapter-init-failed",()=>{console.error("Adapter init failed"),t(),this._state.toggleState(te.FATAL_ERROR,!0)}),this.on("reload-ad-requested",async e=>{if(Re("Ads.on(RELOAD_AD_REQUESTED)",e),this._schedule){if(t(),e)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(te.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(te.AD_AVAILABLE,!1))}})}async initialize(e,t={},s){return Re("Ads.initialize():",e,t,s),this._state.toggleState(te.INITIALIZING,!0),Object.assign(this.opts,t),Array.isArray(e)&&this.setSchedule(e),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},t.parameters||{},{autoplay:t.autoplay,muted:t.muted})),this.adapter.isReady()&&await this.adapterInitialized(s),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(e){Re("Ads.setVideoTag():",e),await this.adapter.setVideoTag(e),this.trigger("ad-videotag-attached",e),this.adapter.isReady()&&await this.adapterInitialized(),e.on("request/ad/pause",()=>this.adapter.pause()),e.on("request/ad/play",()=>this.adapter.resume()),e.on("request/ad/muteunmute",()=>e.toggleMute()),e.on("volumechange",()=>{this.adapter.volume(e.muted?0:0==e.volume?.1:e.volume)}),e.on("src",()=>e.hasState("ad-playing")||e.hasState("ad-paused")?(this.stop(),this.adapter.isLinearAd()?(this.setIsContentProcessingNewSrc(!0),void this.once("ad-break-completed",()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})):this.onContentNewSrc()):this.onContentNewSrc())}waitForVideoTag(){return new Promise(e=>{const t=this.adapter.getVideoTag();if(t)return e(t);this.on("ad-videotag-attached",t=>{this.once(g,()=>e(t))})})}async adapterInitialized(e){Re("Ads.adapterInitialized()"),this._state.toggleState(te.INITIALIZING,!1),this._state.toggleState(te.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,e),this.checkIfBreakComplete(),this.adapter.isAdPod()||e&&!this.opts.autoplay||this.trigger("ad-teardown")}async fetchNextAd(e,t=0){var s,i;if(!this._schedule)return;if(!this.adapter.isReady())return;if(t>50)throw this._state.toggleState(te.FATAL_ERROR,!0),this._state.toggleState(te.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");const r=(null===(s=this._schedule)||void 0===s?void 0:s.getNextAd())||(null===(i=this._schedule)||void 0===i?void 0:i.getPostroll());if(!r||this.adapter.canDismissNonLinear()||-1===e)if(this._schedule.waitForLoad(e,r,this.opts.preload_ads))this._state.toggleState(te.FETCHING_AD,!1);else if(r===this._schedule.getPostroll()&&this._schedule.setPostrollActive(),this._schedule.isDrained()||this._schedule.increment(),r){Re("Ads.fetchNextAd",r),this._state.toggleState(te.FETCHING_AD,!0);try{return await this.requestAd(r),this._state.toggleState(te.AD_AVAILABLE,!0),void this._state.toggleState(te.FETCHING_AD,!1)}catch(s){if(Re("Ads.fetchNextAd(err: %o, ad: %o)",s,r),this.setLastAd(r),r!==this._schedule.getPostroll())return await this.fetchNextAd(e,++t)}}else this._state.toggleState(te.FETCHING_AD,!1)}skipAdsOnSeek(e){if(!this._schedule)return;let t=this._schedule.getNextAd();for(;t&&t.time<e;)this._schedule.increment(),t=this._schedule.getNextAd()}async setCurrentTime(e,t=!1,s=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(te.FETCHING_AD))return;if(this._state.hasAny(te.PLAYING)&&this.adapter.isLinearAd())return;const i=0===e&&0===this._schedule.getNextIndex();try{if(s&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(e),this._state.hasAny(te.AD_AVAILABLE)||await this.fetchNextAd(e),!this._state.hasAny(te.AD_AVAILABLE)||!this.shallPlayAd(e)||t)return;await this.playAd(),await this.setCurrentTime(e),this.checkIfBreakComplete()}catch(e){Re("setCurrentTime: Error(from: setCurrentTime, message: %s)",e.message)}finally{i&&this.trigger("ad-preroll-finished")}}async playAd(){var e;if(!this._state.hasAny(te.AD_AVAILABLE))return;this._state.toggleState(te.AD_AVAILABLE,!1),this._state.toggleState(te.BREAK_ACTIVE,!0);const t=null===(e=this._schedule)||void 0===e?void 0:e.getCurrentAd();try{await this.adapter.playAd()}catch(e){console.error("Ads.playAd: error",e)}finally{t&&this.setLastAd(t)}}checkIfBreakComplete(){if(!this._state.hasAny(te.BREAK_ACTIVE))return Re("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Re("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(te.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger("ad-break-completed")}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(e,t){if(t&&!isNaN(t)&&this._schedule&&this._schedule.updateContentDuration(t),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(e);this._schedule=new Schedule(e,{preload_advance:this.opts.preload_advance,content_duration:t?0:t})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(e,t={}){var s;if(!this.adapter.getVideoTag())return;if(!this._state)return;if("ad-break-completed"===e&&this._state.hasAny(te.BREAK_ACTIVE)&&!this.adapter.isAdPod())return Re("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(null===(i=t)||"object"!=typeof i||X(i)!==J)return this.dispatch(e,t);var i;const r=Object.assign({},this.adapter.getOpts()||{},(null===(s=this._schedule)||void 0===s?void 0:s.getCurrentAd())||{},{ad_type:this.ad_type},t);return this.dispatch(e,r)}dispatch(e,t){const s=this.adapter.getVideoTag();if(s){Re(":dispatch",e,t);try{const i={event:"ads/"+e,detail:{outstream:t.outstream,ad_type:t.ad_type,ad_break_time:t.time,ad_remaining_seconds:t.remaining,ad_muted:t.muted,ad_duration_seconds:t.duration,ad_error_reason:t.reason,ad_vast_error:t.vast_error,ad_vast_error_type:t.vast_error_type,ad_request_load_type:t.request_load_time}};s.dispatchEvent(new CustomEvent("health:record",{detail:i}))}catch(e){Re(":error",e)}se(s,e,t),this.emit(e,t)}}get ad_type(){return this._schedule&&this._schedule.getCurrentType()}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;const e=this.getLastAd();return!e||!e.outstream&&!1!==e.restart}async finished(e){if(this._schedule&&(Re("Ads.finished"),!(this.adapter.isSharedVideoTag()&&this._state.hasAny(te.PLAYING)&&this.adapter.isLinearAd()))){Re("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Re("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(te.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(e){Re("Ads.finished: postroll failed:",e)}finally{this.trigger("ad-postroll-finished"),this.checkIfBreakComplete(),"function"==typeof e&&e()}}}hasPreroll(){return this._schedule&&Schedule.hasPreroll(this._schedule.getAds())}shallPlayAd(e){var t;return(!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(te.FATAL_ERROR))&&!!(null===(t=this._schedule)||void 0===t?void 0:t.shallPlayAd(e)))}setLastAd(e){return this._lastAd=e,this}setIsContentProcessingNewSrc(e){this.content_processing_src=e}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(e={}){return this._macros=this._macros.fork(Object.assign({},e)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(e){this.adapter&&this.adapter.onResize(e)}async requestAd(e,t=0,s=this.opts.timeout){if(!this._state)return;Re("Ads.requestAd(ad: %o)",{ad:e,timeout:s,idx:t});const i=await async function e(t){if("function"==typeof t)return[await Z(t)];if("string"==typeof t)return[await Z(t)];if(Array.isArray(t)){const e=t;return await Promise.all(e.map(Z))}if("object"==typeof t&&t&&t.adTag)return await e(t.adTag);throw new Error(`\n unhandled ads type ${typeof t}:\n ${JSON.stringify(t)}\n can be:\n | Array<string>\n | string\n | function\n | {adTag: Array<string>|string|function}\n `)}(e);if(void 0===i[t])return Promise.reject(new Error("Ad failed, no fallbacks left"));if(!i[t])return await this.requestAd(i,t+1,s);this.trigger("ad-requested",e);const r=this._macros.compile(i[t],K(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(r,s)}catch(e){return Re(`Ads.requestAd(:fallback, idx: ${t}, length: ${i.length}, adTag: ${i[t]})\nError `,{adTag:i,err:e}),this.requestAd(i,t+1,s)}}resetSchedule(e){this._schedule&&this._schedule.reset(e)}get adPlaying(){return this._state&&this._state.hasAny(te.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(te.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(te.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var De=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),Ie=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function Pe(e){return Object.assign({muted:!1,timeout:250,inline:!1},e)}function ke(e,t){var s=e.muted,i=e.timeout,r=e.inline,a=t(),n=a.element,o=a.source,d=void 0,l=void 0,c=void 0;return n.muted=s,!0===s&&n.setAttribute("muted","muted"),!0===r&&n.setAttribute("playsinline","playsinline"),n.src=o,new Promise((function(e){d=n.play(),l=setTimeout((function(){c(!1,new Error("Timeout "+i+" ms has been reached"))}),i),c=function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;n.remove(),n.srcObject=null,clearTimeout(l),e({result:t,error:s})},void 0!==d?d.then((function(){return c(!0)})).catch((function(e){return c(!1,e)})):c(!0)}))}var Ce={audio:function(e){return ke(e=Pe(e),(function(){return{element:document.createElement("audio"),source:URL.createObjectURL(De)}}))},video:function(e){return ke(e=Pe(e),(function(){return{element:document.createElement("video"),source:URL.createObjectURL(Ie)}}))}};let Ne=void 0;async function Ue(e=!0){return Ne||(Ne=await Ce.video({timeout:500,muted:e}),Ne)}const xe=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Fe=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});function qe(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}const Be=["progress","duration","remaining"],je=v("ads/ui");class AdUI extends HTMLElement{constructor(e,t=document.createElement("div")){super(),this.player=e,this.adContainer=t,this.render(),e.addEventListener("ad/playing",e=>this.updateState(e.type)),e.addEventListener("ad/paused",e=>this.updateState(e.type)),e.addEventListener("ad/complete",e=>this.updateState(e.type)),e.on("ad-progress",e=>{const{remaining:t}=e.detail;this.setAttribute("remaining",t+"")}),e.on("ad/hide-first-frame",e=>{const{root:t}=e.detail;je("hideFirstFrame"),t.classList.toggle("ad-hide-first-frame",!0)}),e.on("ad/show-first-frame",e=>{const{root:t}=e.detail;je("showFirstFrame"),t.classList.toggle("ad-hide-first-frame",!1)}),e.on("ad/resize",e=>{const{opts:t}=e.detail,s=this.style;t.linear?t.width&&(s.width=t.width+"px"):t.width?this.adContainer.style.width=t.width+"px":s.removeProperty("width"),t.height?s.height=t.height+"px":s.removeProperty("height")}),e.on("ad/set-ui-flags",e=>{let{ui_flags:t}=e.detail;if(t=t||0,this.classList.toggle("is-ad-controls-sticky",(1&t)>0),this.classList.toggle("no-fullscreen",(2&t)>0),this.classList.toggle("no-indicator",(4&t)>0),(8&t)>0){const e=document.createElement("div");e.classList.add("ad-attribution"),e.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.adContainer.append(e)}if(this.classList.toggle("no-volume-bar",0==(64&t)),(32&t)>0&&this.controls&&(this.remaining=document.createElement("div"),this.remaining.classList.add("fp-ad-remaining","fp-color-text"),this.controls.prepend(this.remaining)),(16&t)>0&&this.controls){this.classList.toggle("is-ad-choices",!0);const e=document.createElement("div");e.classList.add("fp-ad-choices"),e.textContent=this.player.i18n("ads.adchoices","AdChoices"),e.addEventListener("click",e=>{e.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),this.controls.append(e)}})}static get observedAttributes(){return Be}updateState(e){["ad/paused","ad/playing"].forEach(t=>{const s=t.replace("/","-"),i=e===t;this.player.setState(s,i),this.classList.toggle(s,i)})}attributeChangedCallback(e,t,s){switch(e){case"duration":return this.onDurationChange(parseFloat(s));case"progress":return this.onProgress(parseFloat(t),parseFloat(s));case"remaining":return this.onRemaining(s)}}onDurationChange(e){}onProgress(e,t){}onRemaining(e){this.remaining&&(this.remaining.textContent=function(e){if(isNaN(e)||e>=Number.MAX_SAFE_INTEGER)return"";const t=e<0?"-":"";e=Math.round(Math.abs(e));const s=Math.floor(e/3600);let i=Math.floor(e/60);return e-=60*i,s>=1?(i-=60*s,t+s+":"+qe(i)+":"+qe(e)):t+qe(i)+":"+qe(e)}(parseFloat(e)))}render(){this.adContainer.classList.add("fp-ad-container"),this.append(this.adContainer),this.controls=A(this.player,"flowplayer-ad-controls");const e=A(this.player,"flowplayer-ad-countdown");this.append(this.controls,e)}}const Ve=v("fpads:native:outstream"),ze={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var He,Ge;!function(e){e.OUTSTREAM_VISIBLE="ads-outstream-visible",e.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",e.OUTSTREAM_TEARDOWN="ads-outstream-teardown",e.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"}(He||(He={})),function(e){e[e.None=0]="None",e[e.Booting=1]="Booting",e[e.Ready=2]="Ready",e[e.Disposed=3]="Disposed"}(Ge||(Ge={}));class Outstream{constructor({ads:e,root:t,content:s,ima:i}){this.state=Ge.None,Ve("creating Outstream instance"),this.content=s,this.ads=e,this.root=t,this.ima=i,this.aspectRatio=s.videoHeight/s.videoWidth,this.dimensions=function(e){if(e.clientWidth>0||e.clientHeight)return h(e);const t={height:e.style.height};p(e,"opacity",0),p(e,"display","absolute"),p(e,"display","inline-block"),p(e,"height","auto");const s=h(e);return p(e,"height",t.height),p(e,"opacity",1),s}(this.root),this.adUi=new AdUI(s),this.adContainer=this.adUi.adContainer,this.initialVolumeState={},t.classList.add(ze.OUTSTREAM),t.append(this.adUi),this.hide(),this.ads.on("ad-pause-content",e=>{var t;if(this.state==Ge.Disposed)return;const s=!!(null===(t=e.detail)||void 0===t?void 0:t.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:s}))}),s.on("resize",e=>{if(this.state==Ge.Disposed)return;const t=e.detail;t&&(this.dimensions={width:t.contentRect.width,height:t.contentRect.height},this.ads.resize(this.dimensions))});let r=1,a=!0;s.on("intersectionchange",e=>{if(this.state==Ge.Disposed)return;const t=e.detail;if(t)switch(this.state){case Ge.Booting:return Ve(":boot skipping intersectionchange");case Ge.None:return this.state=Ge.Booting,this.begin_life_cycle();case Ge.Ready:if(r=t.ratio,t.ratio>=.5&&this.ads.adPlaying)return;t.ratio>=.5&&a&&this.ads.resume(),t.ratio<.5&&this.ads.pause()}}),this.content.on("ad-paused",()=>a=r<.5),this.setup(),setTimeout(()=>(this.state=Ge.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Ve(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(Outstream.CLASS.HIDDEN),this.root.classList.add(Outstream.CLASS.SHOWING),this.adUi.classList.add("linear","on")}async begin_life_cycle(){var e;this.state=Ge.Ready;const{error:t,result:s}=await Ue(!1),{result:i}=await Ue(!0);this.content.emit("ad/set-ui-flags",{ui_flags:null===(e=this.content.opts.ads)||void 0===e?void 0:e.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!s&&!i),muted:!s},Ve("Outstream.show() :autoplay >> sound="+s),t&&this.content&&!s&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await T({ads:this.ads,content:this.content,adContainer:this.adContainer,ima:this.ima,state:{listening:!1},config:this.content.opts}),I({content:this.content,ads:this.ads}),this.state=Ge.Ready}attach_ad_listeners(){const e=this.ads;e.once("ad-pause-content",()=>{this.show(),this.ads.adPlaying&&this.ads.pause()}),this.ima.always_show_controls||e.on("vpaid-init",()=>this.adUi.classList.add("is-vpaid"));const t=()=>{S.forEach(e=>this.ads.removeListener(e,t));const e=new CustomEvent(He.OUTSTREAM_TEARDOWN);Ve("Outstream(:teardown)",e),this.content.dispatchEvent(e)};S.forEach(e=>this.ads.once(e,t)),this.content.once(He.OUTSTREAM_TEARDOWN,e=>{setTimeout(()=>{if(e.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),M({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adContainer,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(xe)})}setup(){this.root.classList.add(Outstream.CLASS.OUTSTREAM),this.root.classList.add(Outstream.CLASS.HIDDEN),this.empty_src()}reset_ui(){const e=this.root;e.classList.remove(Outstream.CLASS.SHOWING),e.classList.remove(Outstream.CLASS.OUTSTREAM),this.adUi.classList.remove("on")}dispose(){if(this.state==Ge.Disposed)return;const e=this.root,t=this.content;this.reset_ui(),e.classList.add(Outstream.CLASS.OUTSTREAM),e.classList.add(Outstream.CLASS.DONE);this.video=this.container=this.ads=0,this.state=Ge.Disposed,t.destroy(),e.innerHTML=""}}function Qe(e){return e&&"number"==typeof e.time}function We(e){return e&&"number"==typeof e.percentage&&"number"!=typeof e.time}Outstream.CLASS=ze;const $e=v("ads/ima/sdk");var Ke;async function Ye(e,t){var s;const i=null===(s=null===window||void 0===window?void 0:window.google)||void 0===s?void 0:s.ima;if(t?null==i?void 0:i.dai:i)return void $e(":noop");const r=t?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":e._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(e){return new Promise((t,s)=>{let i=document.querySelector(`script[src='${e}']`);if(i)return Ze(i,t,s);i=document.createElement("script"),i.setAttribute("state",Ke.LOADING),Ze(i,t,s),i.src=e,document.head.appendChild(i)})}(r),void $e(":loaded")}catch(e){$e(":error "+e.message,e)}}function Ze(e,t,s){const i=e.getAttribute("state");if(i&&[Ke.ERROR,Ke.LOADED].includes(i))return t(void 0);e.addEventListener("load",()=>{e.setAttribute("state",Ke.LOADED),t(void 0)},{once:!0}),["error","abort"].forEach(t=>{e.addEventListener(t,()=>{e.setAttribute("state",Ke.ERROR),s("script failed to load")},{once:!0})})}!function(e){e.LOADING="loading",e.LOADED="loaded",e.ERROR="error"}(Ke||(Ke={}));const Je=v("ads/index");async function Xe(e,t,s){let i;if(s.on("config",()=>{void 0===i&&e.autoplay&&!s.currentSrc&&(i=e.autoplay,e.autoplay=0),s.ads&&o()}),s.once("loadstart",()=>{setTimeout(()=>{var t;if(!Array.isArray(null===(t=null==e?void 0:e.ima)||void 0===t?void 0:t.ads)&&void 0!==i){if(e.autoplay=i,s.setState("is-autoplay",!0),!s.hasState(f))return s.once("viewenter",()=>s.togglePlay(!0));s.togglePlay(!0)}},0)}),await Ye(s),!("google"in window))return console.warn("google.ima unavailable");let r=!1;const a=s.ads=new AdsController,n=a.analytics;function o(){const o=e.ima;if(!o||!Array.isArray(o.ads))return;const d=e.duration||s.duration;if(o.ads=function(e,t){return Array.isArray(e)?e.filter(e=>Qe(e)||We(e)).reduce((e,s)=>{if(Qe(s))return e.push(s),e;if(s.lazy)return e.push(s),e;if(We(s)){const i=Object.assign({},s),r=s.percentage?s.percentage*t:0;return isNaN(r)||(i.time=r<0||r===t?-1:r),e.push(i),e}return e},[]):(console.warn("AdSchedule was not an Array"),[])}(o.ads,d),a.setSchedule(o.ads,d),e.metadata&&Analytics.mergeMetadata(n,e.metadata),e.metadata&&a.mergeMacros(e.metadata),e.metadata&&o.parameters&&(o.parameters=Object.assign(Object.assign({},o.parameters),e.metadata)),Analytics.mergeMetadata(n,{muted:e.muted||!1,autoplay:e.autoplay||!1}),!r){if(r=!0,e.lang&&!o.Locale&&(o.Locale=e.lang),Schedule.isOutstream(o.ads))return Je("is outstream, returning"),new Outstream({root:t,content:s,ads:a,ima:o});L({config:Object.assign(Object.assign({},e),{autoplay:i}),root:t,content:s,ads:a,ima:o})}}a.resize(h(t)),_&&(s.on(["fullscreenenter","fullscreenexit","webkitendfullscreen"],e=>{var t;const i="fullscreenenter"===e.type;null===(t=null==s?void 0:s.ads)||void 0===t||t.adapter.setIOSPlaysInline(!i)}),a.on("ad-postroll-finished",()=>{a.adapter.isSharedVideoTag()&&a.once("ad-break-completed",()=>{s.src=s.original_src,s.once("canplay",()=>{s.togglePlay(!1)}),s.webkitExitFullscreen()})})),s.on("reap",(function(){a&&a.destroy()})),o()}class AdControls extends HTMLElement{constructor(e){super(),this.player=e,this.render()}render(){this.classList.add("fp-ad-controls");const e=A(this.player,"flowplayer-ad-indicator"),t=document.createElement("div");t.classList.add("ad-playback-controls");const s=A(this.player,"flowplayer-small-play-icon"),i=A(this.player,"flowplayer-small-pause-icon");s.addEventListener("click",()=>{this.player.emit("request/ad/play"),setTimeout((function(){i.focus&&i.focus()}),100)}),i.addEventListener("click",()=>{this.player.emit("request/ad/pause"),setTimeout((function(){s.focus&&s.focus()}),100)}),t.append(s,i);const r=A(this.player,"flowplayer-volume-icon");r.addEventListener("click",()=>this.player.emit("request/ad/muteunmute"));const a=A(this.player,"flowplayer-volume-bar"),n=A(this.player,"flowplayer-header-right-zone");this.append(e,t,r,a,n)}}class AdCountdown extends HTMLElement{constructor(e){super(),this.player=e,e.on("ad-progress",e=>{const{duration:t,remaining:s}=e.detail;this.setAttribute("duration",t+""),this.setAttribute("remaining",s+"")}),e.on("ad-started",e=>{e.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{const e=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",e)})}static get observedAttributes(){return["remaining"]}attributeChangedCallback(e,t,s){switch(e){case"remaining":return this.onRemaining(s)}}onRemaining(e){const t=parseFloat(this.getAttribute("duration")||"0");e||(e=t+"");const s=parseFloat(e),i=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",i),this.classList.remove("go");const r=((t-s)/t*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",r),this.classList.add("go")})}}class AdIndicator extends HTMLElement{constructor(e){super(),this.player=e,this.render(),e.on("ad-started",e=>{const{position:t,totals:s}=e.detail.ad;this.setAttribute("position",t+""),this.setAttribute("totals",s+"")})}static get observedAttributes(){return["position","totals"]}attributeChangedCallback(e,t){switch(e){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;const e=parseFloat(this.getAttribute("position")||"0"),t=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${e} / ${t}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var et=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});const{samsung_tv:tt}=u();class Ads{constructor(e){this.umd=e,w(e,b,AdUI),w(e,"flowplayer-ad-controls",AdControls),w(e,"flowplayer-ad-countdown",AdCountdown),w(e,"flowplayer-ad-indicator",AdIndicator)}init(e,t,s){if(c.from_token(e.token||"").is_granted(c.permissions.ADS)&&!tt)return Xe(e,t,s)}}return Ads.events=m,Ads.ui=Fe,Ads.tags=et,function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const s=e.flowplayer;"function"==typeof s?s(t):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(t)||s.extensions.push(t))}(window,Ads),Ads}));
|
package/plugins/airplay.d.ts
CHANGED
|
@@ -28,6 +28,12 @@ declare type AnyPlugin<PluginOwnConfig extends KeyValue> = Plugin_2<PluginOwnCon
|
|
|
28
28
|
|
|
29
29
|
declare type ArrayToIntersection<T extends Array<unknown>> = T extends [infer Current, ...infer Remaining] ? Current & ArrayToIntersection<Remaining> : unknown;
|
|
30
30
|
|
|
31
|
+
declare enum AutoplayOpts {
|
|
32
|
+
OFF = 0,
|
|
33
|
+
ON = 1,
|
|
34
|
+
AUDIO_REQUIRED = 2
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
declare type BitOpts = number;
|
|
32
38
|
|
|
33
39
|
declare type Component = {
|
|
@@ -130,49 +136,6 @@ declare type DRMVendorImplementation = {
|
|
|
130
136
|
}, cb: (license_data: Uint8Array) => void) => void;
|
|
131
137
|
};
|
|
132
138
|
|
|
133
|
-
declare namespace Flowplayer {
|
|
134
|
-
type SourceStr = Sources.SourceStr;
|
|
135
|
-
type DRM_KEYSYSTEM = Sources.DRM_KEYSYSTEM;
|
|
136
|
-
type SourceObj = Sources.SourceObj;
|
|
137
|
-
type DRMSourceConfiguration = Sources.DRMSourceConfiguration;
|
|
138
|
-
type SourceWith<T> = Sources.SourceWith<T>;
|
|
139
|
-
type UnsafeSource = Sources.UnsafeSource;
|
|
140
|
-
type SourceList = Sources.SourceList;
|
|
141
|
-
type DRMConfiguration = Sources.DRMConfiguration;
|
|
142
|
-
type DRMVendorImplementation = Sources.DRMVendorImplementation;
|
|
143
|
-
type BitOpts = Configs.BitOpts;
|
|
144
|
-
type FlowplayerCustomElementRegistry = Configs.FlowplayerCustomElementRegistry;
|
|
145
|
-
interface Config extends Configs.Config {
|
|
146
|
-
}
|
|
147
|
-
type CustomConfig<T> = Configs.CustomConfig<T>;
|
|
148
|
-
type PluginConfig<T> = Configs.PluginConfig<T>;
|
|
149
|
-
interface VideoTrack extends Players.VideoTrack {
|
|
150
|
-
}
|
|
151
|
-
interface FPEvent<T> extends Players.FPEvent<T> {
|
|
152
|
-
}
|
|
153
|
-
type DeviceId = Players.DeviceId;
|
|
154
|
-
type JSONPlayer = Players.JSONPlayer;
|
|
155
|
-
type PlayerRoot = Players.PlayerRoot;
|
|
156
|
-
interface Player extends Players.Player {
|
|
157
|
-
}
|
|
158
|
-
type PlayerState = Players.PlayerState;
|
|
159
|
-
interface FlowplayerUMD extends FlowplayerUMDs.FlowplayerUMD {
|
|
160
|
-
}
|
|
161
|
-
interface Components extends FlowplayerUMDs.Components {
|
|
162
|
-
}
|
|
163
|
-
type Component = FlowplayerUMDs.Component;
|
|
164
|
-
enum AutoplayOpts {
|
|
165
|
-
OFF,
|
|
166
|
-
ON,
|
|
167
|
-
AUDIO_REQUIRED
|
|
168
|
-
}
|
|
169
|
-
enum QualityOpts {
|
|
170
|
-
LOW,
|
|
171
|
-
MEDIUM,
|
|
172
|
-
HIGH
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
139
|
declare type FlowplayerCustomElementRegistry = Map<string, string>;
|
|
177
140
|
|
|
178
141
|
declare interface FlowplayerUMD extends FlowplayerUMDBase {
|
|
@@ -191,27 +154,18 @@ declare interface FlowplayerUMDBase {
|
|
|
191
154
|
events: Record<string, string>;
|
|
192
155
|
};
|
|
193
156
|
states: Record<string, string>;
|
|
194
|
-
quality: typeof
|
|
157
|
+
quality: typeof QualityOpts;
|
|
195
158
|
commit: string;
|
|
196
159
|
version: string;
|
|
197
160
|
customElements: FlowplayerCustomElementRegistry;
|
|
198
161
|
defaultElements: Record<string, string>;
|
|
199
162
|
components: Components;
|
|
200
163
|
support: any;
|
|
201
|
-
autoplay: typeof
|
|
164
|
+
autoplay: typeof AutoplayOpts;
|
|
202
165
|
jwt: any;
|
|
203
166
|
loaders: any;
|
|
204
167
|
}
|
|
205
168
|
|
|
206
|
-
declare namespace FlowplayerUMDs {
|
|
207
|
-
export {
|
|
208
|
-
FlowplayerUMD,
|
|
209
|
-
FlowplayerUMDWithPlugins,
|
|
210
|
-
Components,
|
|
211
|
-
Component
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
169
|
declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
|
|
216
170
|
(selector: string, config?: ConfigWithPlugins): Player;
|
|
217
171
|
(element: HTMLElement, config?: ConfigWithPlugins): Player;
|
|
@@ -330,6 +284,12 @@ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
|
|
|
330
284
|
new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
|
|
331
285
|
}
|
|
332
286
|
|
|
287
|
+
declare enum QualityOpts {
|
|
288
|
+
LOW = 1,
|
|
289
|
+
MEDIUM = 2,
|
|
290
|
+
HIGH = 4
|
|
291
|
+
}
|
|
292
|
+
|
|
333
293
|
declare type SafariCustomAirplayEnabledPlayer = PlayerWith<{
|
|
334
294
|
webkitCurrentPlaybackTargetIsWireless: boolean;
|
|
335
295
|
webkitShowPlaybackTargetPicker: () => void;
|
|
@@ -339,28 +299,12 @@ declare type SafariCustomWebkitAvailabilityEvent = Event & {
|
|
|
339
299
|
availability: string;
|
|
340
300
|
};
|
|
341
301
|
|
|
342
|
-
declare type SourceList = Array<SourceObj>;
|
|
343
|
-
|
|
344
302
|
declare type SourceObj = {
|
|
345
303
|
src?: SourceStr;
|
|
346
304
|
type?: string;
|
|
347
305
|
drm?: DRMSourceConfiguration;
|
|
348
306
|
};
|
|
349
307
|
|
|
350
|
-
declare namespace Sources {
|
|
351
|
-
export {
|
|
352
|
-
SourceStr,
|
|
353
|
-
DRM_KEYSYSTEM,
|
|
354
|
-
SourceObj,
|
|
355
|
-
DRMSourceConfiguration,
|
|
356
|
-
SourceWith,
|
|
357
|
-
UnsafeSource,
|
|
358
|
-
SourceList,
|
|
359
|
-
DRMConfiguration,
|
|
360
|
-
DRMVendorImplementation
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
308
|
declare type SourceStr = string;
|
|
365
309
|
|
|
366
310
|
declare type SourceWith<T> = SourceObj & T;
|