0% found this document useful (0 votes)
25K views231 pages

HLS.js Error Handling Guide

This document defines functions and objects for an HTML5 video player: 1. The HTML5Player function initializes properties and default values for a video player object, including URLs, flags, and event handlers. 2. The createRequestObject function creates an XMLHttpRequest object to make requests, falling back to ActiveXObject for older browsers. 3. The formatDuration function formats a time duration in seconds into a string like "1H 2min". 4. The deferUntiljQuery function delays executing a function until jQuery is loaded. 5. An immediately invoked function expression initializes the Hls.js library, which provides HLS support.

Uploaded by

thu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25K views231 pages

HLS.js Error Handling Guide

This document defines functions and objects for an HTML5 video player: 1. The HTML5Player function initializes properties and default values for a video player object, including URLs, flags, and event handlers. 2. The createRequestObject function creates an XMLHttpRequest object to make requests, falling back to ActiveXObject for older browsers. 3. The formatDuration function formats a time duration in seconds into a string like "1H 2min". 4. The deferUntiljQuery function delays executing a function until jQuery is loaded. 5. An immediately invoked function expression initializes the Hls.js library, which provides HLS support.

Uploaded by

thu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

/* Built on 2018-04-22 [Link] */

function createRequestObject() {
var e;
try {
e = new XMLHttpRequest
} catch (t) {
e = new ActiveXObject("[Link]")
}
return e
}

function HTML5Player(e, t) {
if (this.global_div = [Link](e), !this.global_div) return void
alert("Internal Error: Unable to find Video HTML Tag");
this.global_div.[Link] = "ltr";
[Link] = !1, [Link] = "", "undefined" == typeof [Link] &&
([Link] = {}, [Link] = function() {}), this.i18n =
[Link]("xvplayer"), this.id_video = t, this.video_title = !1,
this.url_low = "", this.url_high = "", this.url_hls = "", this.url_thumb = !1,
this.url_thumb169 = !1, this.thumb_slide = !1, this.thumb_slide_big = !1,
this.thumb_slide_min = !1, this.thumb_slide_type = HTML5Player.TYPE_SMALL,
this.touchseek_last_positions = [], this.touchseek_block_click = !1, this.id_cdn
= !1, this.id_cdn_hls = !1, this.fake_player = !1, this.desktop_view = !1,
this.related_array = [], [Link] = !1, this.uploader_name = !1,
this.is_smarttv = !1, this.force_lq = !1, this.pending_seek = 0,
this.seek_was_playing = !1, [Link] = !1, [Link] = !1,
[Link] = !1, [Link] = !1, [Link] = 5,
[Link] = !1, [Link] = !0, this.is_embed = !1,
this.video_url = "", [Link] = !1, [Link] = !1,
[Link] = !1, [Link] = !1,
this.display_inplayersquare = !1, this.send_device_speed = !1,
this.ads_active_fithteenpercentborder = !1, this.send_adclick_debug = !1,
this.http_protocol = "http", this.https_protocol = "http", this.static_domain =
"[Link]", this.page_referer = !1, this.is_premium_site = !1,
this.is_premium_video = !1, this.flashcode_available = !1, [Link] = !
1, this.adsquare_picture_loaded = !1, [Link] = !1, [Link]
= !1, [Link] = !1, [Link] = !1, [Link] = !1,
[Link] = 0, [Link], [Link] = !1,
[Link] = !1, [Link] = -1, this.bufferBlocked_timestamp = 0,
this.bufferBlocked_lastvalue = !1, this.bufferBlocked_nbtime = 0,
[Link] = 0, [Link] = !1, [Link]
= !1, this.global_div_OriginalParentNode = this.global_div.parentNode,
[Link] = 0, [Link] = 0,
[Link] = -1, [Link] = !1, [Link] = !0,
[Link] = !1, [Link] = !1, [Link] = !0,
this.doubleclick_ad_allowclick = !1, [Link] = !1, this.allow_showInfos
= !1, this.allow_showInfosTimer = !1, [Link] = !1, [Link]
= !1, [Link] = !0, [Link] = !1,
[Link] = !1, [Link] = !1, this.buffered_div_list
= [], [Link] = [], [Link] = !1, [Link] = 0,
[Link] = !1, this.PS4FirstSeekDone = !1,
this.forcenobuffer_playafterpause = !1, this.seek_bar_color = "#F00",
[Link] = !1, this.ad_loading_error = !1, this.total_video_played = 0,
this.report_video_played_sent = !1, this.debug_events = {},
this.use_browser_controls = !1, this.is_ios = !1, this.is_ipad = !1,
this.is_old_ios = !1, this.is_new_iphone = !1, this.is_safari = !1, this.is_ps4 = !
1, this.force_play_fullscreen = !1, this.support_native_hls = !1,
this.support_hlsjs = !1, this.need_doubleclick_ad = !1, this.allow_touchseek = !1,
this.is_touch_screen = "ontouchstart" in window || [Link],
this.use_hls = !1, this.use_native_hls = !1, this.use_parameter_menu = !0,
this.is_fakeplayer_displayed = !1, this.is_flashplayer_displayed = !1,
this.videoads_checked = !1, [Link] = !1, this.videoads_miss = !1,
this.block_popup = !1, [Link] = !1, this.player_init = !1,
[Link] = {}, [Link] = {}
}

function formatDuration(e) {
return e > 3600 ? [Link](e / 3600) + "H " + [Link](e % 3600 / 60) +
"min" : e > 300 ? [Link](e / 60) + "min" : e > 60 ? [Link](e / 60) + "min "
+ [Link](e % 60) + "sec" : [Link](e) + "sec"
}

function deferUntiljQuery(e) {
[Link] ? e() : setTimeout(function() {
deferUntiljQuery(e)
}, 50)
}! function(e, t) {
"object" == typeof exports && "object" == typeof module ? [Link] =
t() : "function" == typeof define && [Link] ? define([], t) : "object" ==
typeof exports ? [Link] = t() : [Link] = t()
}("undefined" != typeof self ? self : this, function() {
return function(e) {
function t(r) {
if (i[r]) return i[r].exports;
var s = i[r] = {
i: r,
l: !1,
exports: {}
};
return e[r].call([Link], s, [Link], t), s.l = !0, [Link]
}
var i = {};
return t.m = e, t.c = i, t.d = function(e, i, r) {
t.o(e, i) || [Link](e, i, {
configurable: !1,
enumerable: !0,
get: r
})
}, t.n = function(e) {
var i = e && e.__esModule ? function() {
return e["default"]
} : function() {
return e
};
return t.d(i, "a", i), i
}, t.o = function(e, t) {
return [Link](e, t)
}, t.p = "/dist/", t(t.s = 9)
}([function(e, t, i) {
"use strict";

function r() {}

function s(e, t) {
return t = "[" + e + "] > " + t
}

function o(e) {
var t = [Link][e];
return t ? function() {
for (var i = [Link], r = Array(i), o = 0; o < i; o++)
r[o] = arguments[o];
r[0] && (r[0] = s(e, r[0])), [Link]([Link], r)
} : r
}

function n(e) {
for (var t = [Link], i = Array(t > 1 ? t - 1 : 0), r = 1; r <
t; r++) i[r - 1] = arguments[r];
[Link](function(t) {
d[t] = e[t] ? e[t].bind(e) : o(t)
})
}
i.d(t, "a", function() {
return h
}), i.d(t, "b", function() {
return c
});
var a = "function" == typeof Symbol && "symbol" == typeof [Link] ?
function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && [Link] === Symbol
&& e !== [Link] ? "symbol" : typeof e
},
l = {
trace: r,
debug: r,
log: r,
warn: r,
info: r,
error: r
},
d = l,
h = function(e) {
if (!0 === e || "object" === (void 0 === e ? "undefined" : a(e))) {
n(e, "debug", "log", "info", "warn", "error");
try {
[Link]()
} catch (t) {
d = l
}
} else d = l
},
c = d
}, function(e, t, i) {
"use strict";
var r = {
MEDIA_ATTACHING: "hlsMediaAttaching",
MEDIA_ATTACHED: "hlsMediaAttached",
MEDIA_DETACHING: "hlsMediaDetaching",
MEDIA_DETACHED: "hlsMediaDetached",
BUFFER_RESET: "hlsBufferReset",
BUFFER_CODECS: "hlsBufferCodecs",
BUFFER_CREATED: "hlsBufferCreated",
BUFFER_APPENDING: "hlsBufferAppending",
BUFFER_APPENDED: "hlsBufferAppended",
BUFFER_EOS: "hlsBufferEos",
BUFFER_FLUSHING: "hlsBufferFlushing",
BUFFER_FLUSHED: "hlsBufferFlushed",
MANIFEST_LOADING: "hlsManifestLoading",
MANIFEST_LOADED: "hlsManifestLoaded",
MANIFEST_PARSED: "hlsManifestParsed",
LEVEL_SWITCHING: "hlsLevelSwitching",
LEVEL_SWITCHED: "hlsLevelSwitched",
LEVEL_LOADING: "hlsLevelLoading",
LEVEL_LOADED: "hlsLevelLoaded",
LEVEL_UPDATED: "hlsLevelUpdated",
LEVEL_PTS_UPDATED: "hlsLevelPtsUpdated",
AUDIO_TRACKS_UPDATED: "hlsAudioTracksUpdated",
AUDIO_TRACK_SWITCHING: "hlsAudioTrackSwitching",
AUDIO_TRACK_SWITCHED: "hlsAudioTrackSwitched",
AUDIO_TRACK_LOADING: "hlsAudioTrackLoading",
AUDIO_TRACK_LOADED: "hlsAudioTrackLoaded",
SUBTITLE_TRACKS_UPDATED: "hlsSubtitleTracksUpdated",
SUBTITLE_TRACK_SWITCH: "hlsSubtitleTrackSwitch",
SUBTITLE_TRACK_LOADING: "hlsSubtitleTrackLoading",
SUBTITLE_TRACK_LOADED: "hlsSubtitleTrackLoaded",
SUBTITLE_FRAG_PROCESSED: "hlsSubtitleFragProcessed",
INIT_PTS_FOUND: "hlsInitPtsFound",
FRAG_LOADING: "hlsFragLoading",
FRAG_LOAD_PROGRESS: "hlsFragLoadProgress",
FRAG_LOAD_EMERGENCY_ABORTED: "hlsFragLoadEmergencyAborted",
FRAG_LOADED: "hlsFragLoaded",
FRAG_DECRYPTED: "hlsFragDecrypted",
FRAG_PARSING_INIT_SEGMENT: "hlsFragParsingInitSegment",
FRAG_PARSING_USERDATA: "hlsFragParsingUserdata",
FRAG_PARSING_METADATA: "hlsFragParsingMetadata",
FRAG_PARSING_DATA: "hlsFragParsingData",
FRAG_PARSED: "hlsFragParsed",
FRAG_BUFFERED: "hlsFragBuffered",
FRAG_CHANGED: "hlsFragChanged",
FPS_DROP: "hlsFpsDrop",
FPS_DROP_LEVEL_CAPPING: "hlsFpsDropLevelCapping",
ERROR: "hlsError",
DESTROYING: "hlsDestroying",
KEY_LOADING: "hlsKeyLoading",
KEY_LOADED: "hlsKeyLoaded",
STREAM_STATE_TRANSITION: "hlsStreamStateTransition"
};
t.a = r
}, function(e, t, i) {
"use strict";
i.d(t, "b", function() {
return r
}), i.d(t, "a", function() {
return s
});
var r = {
NETWORK_ERROR: "networkError",
MEDIA_ERROR: "mediaError",
KEY_SYSTEM_ERROR: "keySystemError",
MUX_ERROR: "muxError",
OTHER_ERROR: "otherError"
},
s = {
KEY_SYSTEM_NO_KEYS: "keySystemNoKeys",
KEY_SYSTEM_NO_ACCESS: "keySystemNoAccess",
KEY_SYSTEM_NO_SESSION: "keySystemNoSession",
KEY_SYSTEM_LICENSE_REQUEST_FAILED: "keySystemLicenseRequestFailed",
MANIFEST_LOAD_ERROR: "manifestLoadError",
MANIFEST_LOAD_TIMEOUT: "manifestLoadTimeOut",
MANIFEST_PARSING_ERROR: "manifestParsingError",
MANIFEST_INCOMPATIBLE_CODECS_ERROR:
"manifestIncompatibleCodecsError",
LEVEL_LOAD_ERROR: "levelLoadError",
LEVEL_LOAD_TIMEOUT: "levelLoadTimeOut",
LEVEL_SWITCH_ERROR: "levelSwitchError",
AUDIO_TRACK_LOAD_ERROR: "audioTrackLoadError",
AUDIO_TRACK_LOAD_TIMEOUT: "audioTrackLoadTimeOut",
FRAG_LOAD_ERROR: "fragLoadError",
FRAG_LOAD_TIMEOUT: "fragLoadTimeOut",
FRAG_DECRYPT_ERROR: "fragDecryptError",
FRAG_PARSING_ERROR: "fragParsingError",
REMUX_ALLOC_ERROR: "remuxAllocError",
KEY_LOAD_ERROR: "keyLoadError",
KEY_LOAD_TIMEOUT: "keyLoadTimeOut",
BUFFER_ADD_CODEC_ERROR: "bufferAddCodecError",
BUFFER_APPEND_ERROR: "bufferAppendError",
BUFFER_APPENDING_ERROR: "bufferAppendingError",
BUFFER_STALLED_ERROR: "bufferStalledError",
BUFFER_FULL_ERROR: "bufferFullError",
BUFFER_SEEK_OVER_HOLE: "bufferSeekOverHole",
BUFFER_NUDGE_ON_STALL: "bufferNudgeOnStall",
INTERNAL_EXCEPTION: "internalException"
}
}, function(e, t, i) {
! function(t) {
var i = /^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?
(\?.*?)?(#.*?)?$/,
r = /^([^\/;?#]*)(.*)$/,
s = /(?:\/|^)\.(?=\/)/g,
o = /(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,
n = {
buildAbsoluteURL: function(e, t, i) {
if (i = i || {}, e = [Link](), !(t = [Link]())) {
if (![Link]) return e;
var s = [Link](e);
if (!s) throw new Error("Error trying to parse base
URL.");
return [Link] = [Link]([Link]),
[Link](s)
}
var o = [Link](t);
if (!o) throw new Error("Error trying to parse relative
URL.");
if ([Link]) return [Link] ? ([Link] =
[Link]([Link]), [Link](o)) : t;
var a = [Link](e);
if (!a) throw new Error("Error trying to parse base URL.");
if (![Link] && [Link] && "/" !== [Link][0]) {
var l = [Link]([Link]);
[Link] = l[1], [Link] = l[2]
}
[Link] && ![Link] && ([Link] = "/");
var d = {
scheme: [Link],
netLoc: [Link],
path: null,
params: [Link],
query: [Link],
fragment: [Link]
};
if (![Link] && ([Link] = [Link], "/" !== [Link][0]))
if ([Link]) {
var h = [Link],
c = [Link](0, [Link]("/") + 1) +
[Link];
[Link] = [Link](c)
} else [Link] = [Link], [Link] || ([Link] =
[Link], [Link] || ([Link] = [Link]));
return null === [Link] && ([Link] = [Link] ?
[Link]([Link]) : [Link]), [Link](d)
},
parseURL: function(e) {
var t = [Link](e);
return t ? {
scheme: t[1] || "",
netLoc: t[2] || "",
path: t[3] || "",
params: t[4] || "",
query: t[5] || "",
fragment: t[6] || ""
} : null
},
normalizePath: function(e) {
for (e = [Link]("").reverse().join("").replace(s, "");
[Link] !== (e = [Link](o, "")).length;);
return [Link]("").reverse().join("")
},
buildURLFromParts: function(e) {
return [Link] + [Link] + [Link] + [Link] + [Link] +
[Link]
}
};
[Link] = n
}()
}, function(e, t, i) {
"use strict";

function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}
i.d(t, "b", function() {
return o
});
var s = function() {
function e() {
r(this, e)
}
return [Link] = function(e, t) {
return t + 10 <= [Link] && 73 === e[t] && 68 === e[t + 1] &&
51 === e[t + 2] && e[t + 3] < 255 && e[t + 4] < 255 && e[t + 6] < 128 && e[t + 7] <
128 && e[t + 8] < 128 && e[t + 9] < 128
}, [Link] = function(e, t) {
return t + 10 <= [Link] && 51 === e[t] && 68 === e[t + 1] &&
73 === e[t + 2] && e[t + 3] < 255 && e[t + 4] < 255 && e[t + 6] < 128 && e[t + 7] <
128 && e[t + 8] < 128 && e[t + 9] < 128
}, e.getID3Data = function(t, i) {
for (var r = i, s = 0; [Link](t, i);) {
s += 10;
s += e._readSize(t, i + 6), [Link](t, i + 10) && (s +=
10), i += s
}
return s > 0 ? [Link](r, r + s) : undefined
}, e._readSize = function(e, t) {
var i = 0;
return i = (127 & e[t]) << 21, i |= (127 & e[t + 1]) << 14, i |
= (127 & e[t + 2]) << 7, i |= 127 & e[t + 3]
}, [Link] = function(t) {
for (var i = e.getID3Frames(t), r = 0; r < [Link]; r++) {
var s = i[r];
if ([Link](s)) return e._readTimeStamp(s)
}
return undefined
}, [Link] = function(e) {
return e && "PRIV" === [Link] &&
"[Link]" === [Link]
}, e._getFrameData = function(t) {
var i = [Link](t[0], t[1], t[2], t[3]),
r = e._readSize(t, 4);
return {
type: i,
size: r,
data: [Link](10, 10 + r)
}
}, e.getID3Frames = function(t) {
for (var i = 0, r = []; [Link](t, i);) {
var s = e._readSize(t, i + 6);
i += 10;
for (var o = i + s; i + 8 < o;) {
var n = e._getFrameData([Link](i)),
a = e._decodeFrame(n);
a && [Link](a), i += [Link] + 10
}
[Link](t, i) && (i += 10)
}
return r
}, e._decodeFrame = function(t) {
return "PRIV" === [Link] ? e._decodePrivFrame(t) : "T" ===
[Link][0] ? e._decodeTextFrame(t) : "W" === [Link][0] ? e._decodeURLFrame(t) :
undefined
}, e._readTimeStamp = function(e) {
if (8 === [Link]) {
var t = new Uint8Array([Link]),
i = 1 & t[3],
r = (t[4] << 23) + (t[5] << 15) + (t[6] << 7) + t[7];
return r /= 45, i && (r += 47721858.84), [Link](r)
}
return undefined
}, e._decodePrivFrame = function(t) {
if ([Link] < 2) return undefined;
var i = e._utf8ArrayToStr([Link], !0),
r = new Uint8Array([Link]([Link] + 1));
return {
key: [Link],
info: i,
data: [Link]
}
}, e._decodeTextFrame = function(t) {
if ([Link] < 2) return undefined;
if ("TXXX" === [Link]) {
var i = 1,
r = e._utf8ArrayToStr([Link](i));
i += [Link] + 1;
var s = e._utf8ArrayToStr([Link](i));
return {
key: [Link],
info: r,
data: s
}
}
var o = e._utf8ArrayToStr([Link](1));
return {
key: [Link],
data: o
}
}, e._decodeURLFrame = function(t) {
if ("WXXX" === [Link]) {
if ([Link] < 2) return undefined;
var i = 1,
r = e._utf8ArrayToStr([Link](i));
i += [Link] + 1;
var s = e._utf8ArrayToStr([Link](i));
return {
key: [Link],
info: r,
data: s
}
}
var o = e._utf8ArrayToStr([Link]);
return {
key: [Link],
data: o
}
}, e._utf8ArrayToStr = function(e) {
for (var t = [Link] > 1 && arguments[1] !== undefined
&& arguments[1], i = [Link], r = void 0, s = void 0, o = void 0, n = "", a = 0; a
< i;) {
if (0 === (r = e[a++]) && t) return n;
if (0 !== r && 3 !== r) switch (r >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
n += [Link](r);
break;
case 12:
case 13:
s = e[a++], n += [Link]((31 & r) << 6
| 63 & s);
break;
case 14:
s = e[a++], o = e[a++], n +=
[Link]((15 & r) << 12 | (63 & s) << 6 | (63 & o) << 0)
}
}
return n
}, e
}(),
o = s._utf8ArrayToStr;
t.a = s
}, function(e, t, i) {
"use strict";

function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function s(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function o(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function n(e) {
var t = [Link],
i = t && new DataView(e).getUint8(t - 1);
return i ? [Link](0, t - i) : e
}

function a(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}
var l = function() {
function e(t, i) {
r(this, e), [Link] = t, [Link] = i
}
return [Link] = function(e, t) {
return [Link]({
name: "AES-CBC",
iv: [Link]
}, t, e)
}, e
}(),
d = l,
h = function() {
function e(t, i) {
s(this, e), [Link] = t, [Link] = i
}
return [Link] = function() {
return [Link]("raw", [Link], {
name: "AES-CBC"
}, !1, ["encrypt", "decrypt"])
}, e
}(),
c = h,
u = function() {
function e() {
o(this, e), [Link] = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27,
54], [Link] = [new Uint32Array(256), new Uint32Array(256), new
Uint32Array(256), new Uint32Array(256)], [Link] = [new Uint32Array(256),
new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], [Link] = new
Uint32Array(256), [Link] = new Uint32Array(256), [Link] = new
Uint32Array(0), [Link]()
}
return [Link].uint8ArrayToUint32Array_ = function(e) {
for (var t = new DataView(e), i = new Uint32Array(4), r = 0; r
< 4; r++) i[r] = t.getUint32(4 * r);
return i
}, [Link] = function() {
var e = [Link],
t = [Link],
i = [Link],
r = i[0],
s = i[1],
o = i[2],
n = i[3],
a = [Link],
l = a[0],
d = a[1],
h = a[2],
c = a[3],
u = new Uint32Array(256),
p = 0,
f = 0,
v = 0;
for (v = 0; v < 256; v++) u[v] = v < 128 ? v << 1 : v << 1 ^
283;
for (v = 0; v < 256; v++) {
var g = f ^ f << 1 ^ f << 2 ^ f << 3 ^ f << 4;
g = g >>> 8 ^ 255 & g ^ 99, e[p] = g, t[g] = p;
var y = u[p],
m = u[y],
b = u[m],
_ = 257 * u[g] ^ 16843008 * g;
r[p] = _ << 24 | _ >>> 8, s[p] = _ << 16 | _ >>> 16, o[p] =
_ << 8 | _ >>> 24, n[p] = _, _ = 16843009 * b ^ 65537 * m ^ 257 * y ^ 16843008 * p,
l[g] = _ << 24 | _ >>> 8, d[g] = _ << 16 | _ >>> 16, h[g] = _ << 8 | _ >>> 24, c[g]
= _, p ? (p = y ^ u[u[u[b ^ y]]], f ^= u[u[f]]) : p = f = 1
}
}, [Link] = function(e) {
for (var t = this.uint8ArrayToUint32Array_(e), i = !0, r = 0; r
< [Link] && i;) i = t[r] === [Link][r], r++;
if (!i) {
[Link] = t;
var s = [Link] = [Link];
if (4 !== s && 6 !== s && 8 !== s) throw new Error("Invalid
aes key size=" + s);
var o = [Link] = 4 * (s + 6 + 1),
n = void 0,
a = void 0,
l = [Link] = new Uint32Array(o),
d = [Link] = new Uint32Array(o),
h = [Link],
c = [Link],
u = [Link],
p = u[0],
f = u[1],
v = u[2],
g = u[3],
y = void 0,
m = void 0;
for (n = 0; n < o; n++) n < s ? y = l[n] = t[n] : (m = y, n
% s == 0 ? (m = m << 8 | m >>> 24, m = h[m >>> 24] << 24 | h[m >>> 16 & 255] << 16
| h[m >>> 8 & 255] << 8 | h[255 & m], m ^= c[n / s | 0] << 24) : s > 6 && n % s ==
4 && (m = h[m >>> 24] << 24 | h[m >>> 16 & 255] << 16 | h[m >>> 8 & 255] << 8 |
h[255 & m]), l[n] = y = (l[n - s] ^ m) >>> 0);
for (a = 0; a < o; a++) n = o - a, m = 3 & a ? l[n] : l[n -
4], d[a] = a < 4 || n <= 4 ? m : p[h[m >>> 24]] ^ f[h[m >>> 16 & 255]] ^ v[h[m >>>
8 & 255]] ^ g[h[255 & m]], d[a] = d[a] >>> 0
}
}, [Link] = function(e) {
return e << 24 | (65280 & e) << 8 | (16711680 & e) >> 8 | e >>>
24
}, [Link] = function(e, t, i, r) {
for (var s = [Link] + 6, o = [Link], a =
[Link], l = [Link], d = l[0], h = l[1], c = l[2], u = l[3], p =
this.uint8ArrayToUint32Array_(i), f = p[0], v = p[1], g = p[2], y = p[3], m = new
Int32Array(e), b = new Int32Array([Link]), _ = void 0, E = void 0, w = void 0, k
= void 0, T = void 0, S = void 0, L = void 0, A = void 0, R = void 0, x = void 0, C
= void 0, P = void 0, D = void 0, I = void 0, O = [Link]; t <
[Link];) {
for (R = O(m[t]), x = O(m[t + 1]), C = O(m[t + 2]), P =
O(m[t + 3]), T = R ^ o[0], S = P ^ o[1], L = C ^ o[2], A = x ^ o[3], D = 4, I = 1;
I < s; I++) _ = d[T >>> 24] ^ h[S >> 16 & 255] ^ c[L >> 8 & 255] ^ u[255 & A] ^
o[D], E = d[S >>> 24] ^ h[L >> 16 & 255] ^ c[A >> 8 & 255] ^ u[255 & T] ^ o[D + 1],
w = d[L >>> 24] ^ h[A >> 16 & 255] ^ c[T >> 8 & 255] ^ u[255 & S] ^ o[D + 2], k =
d[A >>> 24] ^ h[T >> 16 & 255] ^ c[S >> 8 & 255] ^ u[255 & L] ^ o[D + 3], T = _, S
= E, L = w, A = k, D += 4;
_ = a[T >>> 24] << 24 ^ a[S >> 16 & 255] << 16 ^ a[L >> 8 &
255] << 8 ^ a[255 & A] ^ o[D], E = a[S >>> 24] << 24 ^ a[L >> 16 & 255] << 16 ^ a[A
>> 8 & 255] << 8 ^ a[255 & T] ^ o[D + 1], w = a[L >>> 24] << 24 ^ a[A >> 16 & 255]
<< 16 ^ a[T >> 8 & 255] << 8 ^ a[255 & S] ^ o[D + 2], k = a[A >>> 24] << 24 ^ a[T
>> 16 & 255] << 16 ^ a[S >> 8 & 255] << 8 ^ a[255 & L] ^ o[D + 3], D += 3, b[t] =
O(_ ^ f), b[t + 1] = O(k ^ v), b[t + 2] = O(w ^ g), b[t + 3] = O(E ^ y), f = R, v =
x, g = C, y = P, t += 4
}
return r ? n([Link]) : [Link]
}, [Link] = function() {
[Link] = undefined, [Link] = undefined, [Link] =
undefined, [Link] = undefined, [Link] = undefined, [Link] =
undefined, [Link] = undefined, [Link] = undefined,
[Link] = undefined, [Link] = undefined
}, e
}(),
p = u,
f = i(2),
v = i(0),
g = function() {
function e(t, i) {
var r = [Link] > 2 && arguments[2] !== undefined ?
arguments[2] : {},
s = r.removePKCS7Padding,
o = s === undefined || s;
if (a(this, e), [Link] = !0, [Link] = t,
[Link] = i, this.removePKCS7Padding = o, o) try {
var n = crypto || [Link];
[Link] = [Link] || [Link]
} catch (l) {}
[Link] = ![Link]
}
return [Link] = function() {
return [Link] && [Link]
}, [Link] = function(e, t, i, r) {
var s = this;
if ([Link] && [Link]) {
[Link] && ([Link]("JS AES decrypt"),
[Link] = !1);
var o = [Link];
o || ([Link] = o = new p), [Link](t),
r([Link](e, 0, i, this.removePKCS7Padding))
} else {
[Link] && ([Link]("WebCrypto AES decrypt"),
[Link] = !1);
var n = [Link];
[Link] !== t && ([Link] = t, [Link] = new c(n,
t)), [Link]().then(function(o) {
new d(n, i).decrypt(e, o)["catch"](function(o) {
[Link](o, e, t, i, r)
}).then(function(e) {
r(e)
})
})["catch"](function(o) {
[Link](o, e, t, i, r)
})
}
}, [Link] = function(e, t, i, r, s) {
[Link] ? ([Link]("WebCrypto Error,
disable WebCrypto API"), [Link] = !0, [Link] = !0,
[Link](t, i, r, s)) : ([Link]("decrypting error : " + [Link]),
[Link]([Link], {
type: f.b.MEDIA_ERROR,
details: f.a.FRAG_DECRYPT_ERROR,
fatal: !0,
reason: [Link]
}))
}, [Link] = function() {
var e = [Link];
e && ([Link](), [Link] = undefined)
}, e
}();
t.a = g
}, function(e, t) {
function i() {
this._events = this._events || {}, this._maxListeners =
this._maxListeners || undefined
}

function r(e) {
return "function" == typeof e
}

function s(e) {
return "number" == typeof e
}

function o(e) {
return "object" == typeof e && null !== e
}

function n(e) {
return void 0 === e
}
[Link] = i, [Link] = i, [Link]._events = undefined,
[Link]._maxListeners = undefined, [Link] = 10,
[Link] = function(e) {
if (!s(e) || e < 0 || isNaN(e)) throw TypeError("n must be a positive
number");
return this._maxListeners = e, this
}, [Link] = function(e) {
var t, i, s, a, l, d;
if (this._events || (this._events = {}), "error" === e && (!
this._events.error || o(this._events.error) && !this._events.[Link])) {
if ((t = arguments[1]) instanceof Error) throw t;
var h = new Error('Uncaught, unspecified "error" event. (' + t +
")");
throw [Link] = t, h
}
if (i = this._events[e], n(i)) return !1;
if (r(i)) switch ([Link]) {
case 1:
[Link](this);
break;
case 2:
[Link](this, arguments[1]);
break;
case 3:
[Link](this, arguments[1], arguments[2]);
break;
default:
a = [Link](arguments, 1), [Link](this, a)
} else if (o(i))
for (a = [Link](arguments, 1), d = [Link](), s
= [Link], l = 0; l < s; l++) d[l].apply(this, a);
return !0
}, [Link] = function(e, t) {
var s;
if (!r(t)) throw TypeError("listener must be a function");
return this._events || (this._events = {}), this._events.newListener &&
[Link]("newListener", e, r([Link]) ? [Link] : t), this._events[e] ?
o(this._events[e]) ? this._events[e].push(t) : this._events[e] = [this._events[e],
t] : this._events[e] = t, o(this._events[e]) && !this._events[e].warned && (s =
n(this._maxListeners) ? [Link] : this._maxListeners) && s > 0 &&
this._events[e].length > s && (this._events[e].warned = !0, [Link]("(node)
warning: possible EventEmitter memory leak detected. %d listeners added. Use
[Link]() to increase limit.", this._events[e].length), "function"
== typeof [Link] && [Link]()), this
}, [Link] = [Link], [Link] = function(e,
t) {
function i() {
[Link](e, i), s || (s = !0, [Link](this, arguments))
}
if (!r(t)) throw TypeError("listener must be a function");
var s = !1;
return [Link] = t, [Link](e, i), this
}, [Link] = function(e, t) {
var i, s, n, a;
if (!r(t)) throw TypeError("listener must be a function");
if (!this._events || !this._events[e]) return this;
if (i = this._events[e], n = [Link], s = -1, i === t || r([Link])
&& [Link] === t) delete this._events[e], this._events.removeListener &&
[Link]("removeListener", e, t);
else if (o(i)) {
for (a = n; a-- > 0;)
if (i[a] === t || i[a].listener && i[a].listener === t) {
s = a;
break
}
if (s < 0) return this;
1 === [Link] ? ([Link] = 0, delete this._events[e]) :
[Link](s, 1), this._events.removeListener && [Link]("removeListener", e, t)
}
return this
}, [Link] = function(e) {
var t, i;
if (!this._events) return this;
if (!this._events.removeListener) return 0 === [Link] ?
this._events = {} : this._events[e] && delete this._events[e], this;
if (0 === [Link]) {
for (t in this._events) "removeListener" !== t &&
[Link](t);
return [Link]("removeListener"), this._events =
{}, this
}
if (i = this._events[e], r(i)) [Link](e, i);
else if (i)
for (; [Link];) [Link](e, i[[Link] - 1]);
return delete this._events[e], this
}, [Link] = function(e) {
return this._events && this._events[e] ? r(this._events[e]) ?
[this._events[e]] : this._events[e].slice() : []
}, [Link] = function(e) {
if (this._events) {
var t = this._events[e];
if (r(t)) return 1;
if (t) return [Link]
}
return 0
}, [Link] = function(e, t) {
return [Link](t)
}
}, function(e, t, i) {
"use strict";
function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}
var s = i(0),
o = i(1),
n = [Link](2, 32) - 1,
a = function() {
function e(t, i) {
r(this, e), [Link] = t, [Link] = i
}
return [Link] = function(e) {
[Link] = e
}, [Link] = function(t, i, r, s) {
if (t && [Link]) {
var n = [Link] = [Link](t);
null == i && (i = "mp4a.40.5"), null == r && (r =
"avc1.42e01e");
var a = {};
[Link] && [Link] ? [Link] = {
container: "video/mp4",
codec: i + "," + r,
initSegment: s ? t : null
} : ([Link] && ([Link] = {
container: "audio/mp4",
codec: i,
initSegment: s ? t : null
}), [Link] && ([Link] = {
container: "video/mp4",
codec: r,
initSegment: s ? t : null
})), [Link](o.a.FRAG_PARSING_INIT_SEGMENT, {
tracks: a
})
} else i && ([Link] = i), r && ([Link] = r)
}, [Link] = function(t) {
return [Link]({
data: t,
start: 0,
end: [Link]([Link], 16384)
}, ["moof"]).length > 0
}, e.bin2str = function(e) {
return [Link](null, e)
}, e.readUint16 = function(e, t) {
[Link] && (t += [Link], e = [Link]);
var i = e[t] << 8 | e[t + 1];
return i < 0 ? 65536 + i : i
}, e.readUint32 = function(e, t) {
[Link] && (t += [Link], e = [Link]);
var i = e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3];
return i < 0 ? 4294967296 + i : i
}, e.writeUint32 = function(e, t, i) {
[Link] && (t += [Link], e = [Link]), e[t] = i >> 24, e[t + 1]
= i >> 16 & 255, e[t + 2] = i >> 8 & 255, e[t + 3] = 255 & i
}, [Link] = function(t, i) {
var r = [],
s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0,
d = void 0,
h = void 0;
if ([Link] ? (d = [Link], a = [Link], t = [Link]) : (d = 0, a =
[Link]), ![Link]) return null;
for (s = d; s < a;) o = e.readUint32(t, s), n =
e.bin2str([Link](s + 4, s + 8)), h = o > 1 ? s + o : a, n === i[0] && (1 ===
[Link] ? [Link]({
data: t,
start: s + 8,
end: h
}) : (l = [Link]({
data: t,
start: s + 8,
end: h
}, [Link](1)), [Link] && (r = [Link](l)))), s = h;
return r
}, [Link] = function(t) {
var i = [Link](t, ["moov"])[0],
r = i ? [Link] : null,
s = 0,
o = [Link](t, ["sidx"]),
n = void 0;
if (!o || !o[0]) return null;
n = [], o = o[0];
var a = [Link][0];
s = 0 === a ? 8 : 16;
var l = e.readUint32(o, s);
s += 4;
s += 0 === a ? 8 : 16, s += 2;
var d = [Link] + 0,
h = e.readUint16(o, s);
s += 2;
for (var c = 0; c < h; c++) {
var u = s,
p = e.readUint32(o, u);
u += 4;
var f = 2147483647 & p;
if (1 === (2147483648 & p) >>> 31) return void
[Link]("SIDX has hierarchical references (not supported)");
var v = e.readUint32(o, u);
u += 4, [Link]({
referenceSize: f,
subsegmentDuration: v,
info: {
duration: v / l,
start: d,
end: d + f - 1
}
}), d += f, u += 4, s = u
}
return {
earliestPresentationTime: 0,
timescale: l,
version: a,
referencesCount: h,
references: n,
moovEndOffset: r
}
}, [Link] = function(t) {
var i = [];
return [Link](t, ["moov", "trak"]).forEach(function(t) {
var r = [Link](t, ["tkhd"])[0];
if (r) {
var o = [Link][[Link]],
n = 0 === o ? 12 : 20,
a = e.readUint32(r, n),
l = [Link](t, ["mdia", "mdhd"])[0];
if (l) {
o = [Link][[Link]], n = 0 === o ? 12 : 20;
var d = e.readUint32(l, n),
h = [Link](t, ["mdia", "hdlr"])[0];
if (h) {
var c = e.bin2str([Link]([Link] + 8,
[Link] + 12)),
u = {
soun: "audio",
vide: "video"
}[c];
if (u) {
var p = [Link](t, ["mdia", "minf",
"stbl", "stsd"]);
if ([Link]) {
p = p[0];
var f =
e.bin2str([Link]([Link] + 12, [Link] + 16));
[Link]("MP4Demuxer:" + u + ":" + f + "
found")
}
i[a] = {
timescale: d,
type: u
}, i[u] = {
timescale: d,
id: a
}
}
}
}
}
}), i
}, [Link] = function(t, i) {
var r = void 0,
s = void 0,
o = void 0;
return r = [Link](i, ["moof", "traf"]), s =
[].[Link]([], [Link](function(i) {
return [Link](i, ["tfhd"]).map(function(r) {
var s = void 0,
o = void 0;
return s = e.readUint32(r, 4), o = t[s].timescale ||
9e4, [Link](i, ["tfdt"]).map(function(t) {
var i = void 0,
r = void 0;
return i = [Link][[Link]], r = e.readUint32(t, 4),
1 === i && (r *= [Link](2, 32), r += e.readUint32(t, 8)), r
})[0] / o
})
})), o = [Link](null, s), isFinite(o) ? o : 0
}, [Link] = function(t, i, r) {
[Link](i, ["moof", "traf"]).map(function(i) {
return [Link](i, ["tfhd"]).map(function(s) {
var o = e.readUint32(s, 4),
a = t[o].timescale || 9e4;
[Link](i, ["tfdt"]).map(function(t) {
var i = [Link][[Link]],
s = e.readUint32(t, 4);
if (0 === i) e.writeUint32(t, 4, s - r * a);
else {
s *= [Link](2, 32), s += e.readUint32(t, 8),
s -= r * a, s = [Link](s, 0);
var o = [Link](s / (n + 1)),
l = [Link](s % (n + 1));
e.writeUint32(t, 4, o), e.writeUint32(t, 8, l)
}
})
})
})
}, [Link] = function(t, i, r, s) {
var n = [Link];
n || ([Link](t, [Link],
[Link], !1), n = [Link]);
var a = void 0,
l = [Link];
if (l === undefined) {
var d = [Link](n, t);
[Link] = l = d - i,
[Link](o.a.INIT_PTS_FOUND, {
initPTS: l
})
}
[Link](n, t, l), a = [Link](n, t),
[Link]([Link], [Link], null, null, a, r, s, t)
}, [Link] = function() {}, e
}();
t.a = a
}, function(e, t, i) {
"use strict";

function r(e, t, i, r) {
var s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0,
d = [Link](),
h = r,
c = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3,
11025, 8e3, 7350];
return s = 1 + ((192 & t[i + 2]) >>> 6), (o = (60 & t[i + 2]) >>> 2) >
[Link] - 1 ? void [Link]([Link], {
type: T.b.MEDIA_ERROR,
details: T.a.FRAG_PARSING_ERROR,
fatal: !0,
reason: "invalid ADTS sampling index:" + o
}) : (a = (1 & t[i + 2]) << 2, a |= (192 & t[i + 3]) >>> 6,
[Link]("manifest codec:" + r + ",ADTS data:type:" + s + ",sampleingIndex:" + o +
"[" + c[o] + "Hz],channelConfig:" + a), /firefox/[Link](d) ? o >= 6 ? (s = 5, l =
new Array(4), n = o - 3) : (s = 2, l = new Array(2), n = o) : -1 !==
[Link]("android") ? (s = 2, l = new Array(2), n = o) : (s = 5, l = new Array(4),
r && (-1 !== [Link]("mp4a.40.29") || -1 !== [Link]("mp4a.40.5")) || !r && o
>= 6 ? n = o - 3 : ((r && -1 !== [Link]("mp4a.40.2") && (o >= 6 && 1 === a ||
/vivaldi/[Link](d)) || !r && 1 === a) && (s = 2, l = new Array(2)), n = o)), l[0] =
s << 3, l[0] |= (14 & o) >> 1, l[1] |= (1 & o) << 7, l[1] |= a << 3, 5 === s &&
(l[1] |= (14 & n) >> 1, l[2] = (1 & n) << 7, l[2] |= 8, l[3] = 0), {
config: l,
samplerate: c[o],
channelCount: a,
codec: "mp4a.40." + s,
manifestCodec: h
})
}

function s(e, t) {
return 255 === e[t] && 240 == (246 & e[t + 1])
}

function o(e, t) {
return 1 & e[t + 1] ? 7 : 9
}

function n(e, t) {
return (3 & e[t + 3]) << 11 | e[t + 4] << 3 | (224 & e[t + 5]) >>> 5
}

function a(e, t) {
return !!(t + 1 < [Link] && s(e, t))
}

function l(e, t) {
if (t + 1 < [Link] && s(e, t)) {
var i = o(e, t),
r = i;
t + 5 < [Link] && (r = n(e, t));
var a = t + r;
if (a === [Link] || a + 1 < [Link] && s(e, a)) return !0
}
return !1
}

function d(e, t, i, s, o) {
if (![Link]) {
var n = r(t, i, s, o);
[Link] = [Link], [Link] = [Link], [Link] =
[Link], [Link] = [Link], [Link] = [Link],
[Link]("parsed codec:" + [Link] + ",rate:" + [Link] + ",nb channel:" +
[Link])
}
}

function h(e) {
return 9216e4 / e
}

function c(e, t, i, r, s) {
var a = void 0,
l = void 0,
d = void 0,
h = [Link];
return a = o(e, t), l = n(e, t), l -= a, l > 0 && t + a + l <= h ? (d =
i + r * s, {
headerLength: a,
frameLength: l,
stamp: d
}) : undefined
}

function u(e, t, i, r, s) {
var o = h([Link]),
n = c(t, i, r, s, o);
if (n) {
var a = [Link],
l = [Link],
d = [Link],
u = {
unit: [Link](i + l, i + l + d),
pts: a,
dts: a
};
return [Link](u), [Link] += d, {
sample: u,
length: d + l
}
}
return undefined
}

function p(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function f(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function v(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function g(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function y(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function m(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function b(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function _(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function E(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function w(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}
var k = i(1),
T = i(2),
S = i(5),
L = i(0),
A = i(4),
R = function() {
function e(t, i, r) {
p(this, e), [Link] = t, [Link] = r, [Link] =
i
}
return [Link] = function(e, t, i, r) {
this._audioTrack = {
container: "audio/adts",
type: "audio",
id: 0,
sequenceNumber: 0,
isAAC: !0,
samples: [],
len: 0,
manifestCodec: t,
duration: r,
inputTimeScale: 9e4
}
}, [Link] = function() {}, [Link] =
function(e) {
if (!e) return !1;
for (var t = A.a.getID3Data(e, 0) || [], i = [Link], r =
[Link]; i < r; i++)
if (l(e, i)) return [Link]("ADTS sync word found !"), !0;
return !1
}, [Link] = function(e, t, i, r) {
for (var s = this._audioTrack, o = A.a.getID3Data(e, 0) || [],
n = [Link](o), l = n ? 90 * n : 9e4 * t, h = 0, c = l, p = [Link], f =
[Link], v = [{
pts: c,
dts: c,
data: o
}]; f < p - 1;)
if (a(e, f) && f + 5 < p) {
d(s, [Link], e, f, [Link]);
var g = u(s, e, f, l, h);
if (!g) {
[Link]("Unable to parse AAC frame");
break
}
f += [Link], c = [Link], h++
} else [Link](e, f) ? (o = A.a.getID3Data(e, f),
[Link]({
pts: c,
dts: c,
data: o
}), f += [Link]) : f++;
[Link](s, {
samples: []
}, {
samples: v,
inputTimeScale: 9e4
}, {
samples: []
}, t, i, r)
}, [Link] = function() {}, e
}(),
x = R,
C = i(7),
P = {
BitratesMap: [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32,
40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96,
112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112,
128, 144, 160],
SamplingRateMap: [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025,
12e3, 8e3],
SamplesCoefficients: [
[0, 72, 144, 12],
[0, 0, 0, 0],
[0, 72, 144, 12],
[0, 144, 144, 12]
],
BytesInSlot: [0, 1, 1, 4],
appendFrame: function(e, t, i, r, s) {
if (i + 24 > [Link]) return undefined;
var o = [Link](t, i);
if (o && i + [Link] <= [Link]) {
var n = 9e4 * [Link] / [Link],
a = r + s * n,
l = {
unit: [Link](i, i + [Link]),
pts: a,
dts: a
};
return [Link] = [], [Link] = [Link],
[Link] = [Link], [Link](l), [Link] += [Link], {
sample: l,
length: [Link]
}
}
return undefined
},
parseHeader: function(e, t) {
var i = e[t + 1] >> 3 & 3,
r = e[t + 1] >> 1 & 3,
s = e[t + 2] >> 4 & 15,
o = e[t + 2] >> 2 & 3,
n = e[t + 2] >> 1 & 1;
if (1 !== i && 0 !== s && 15 !== s && 3 !== o) {
var a = 3 === i ? 3 - r : 3 === r ? 3 : 4,
l = 1e3 * [Link][14 * a + s - 1],
d = 3 === i ? 0 : 2 === i ? 1 : 2,
h = [Link][3 * d + o],
c = e[t + 3] >> 6 == 3 ? 1 : 2,
u = [Link][i][r],
p = [Link][r],
f = 8 * u * p;
return {
sampleRate: h,
channelCount: c,
frameLength: parseInt(u * l / h + n, 10) * p,
samplesPerFrame: f
}
}
return undefined
},
isHeaderPattern: function(e, t) {
return 255 === e[t] && 224 == (224 & e[t + 1]) && 0 != (6 & e[t
+ 1])
},
isHeader: function(e, t) {
return !!(t + 1 < [Link] && [Link](e, t))
},
probe: function(e, t) {
if (t + 1 < [Link] && [Link](e, t)) {
var i = [Link](e, t),
r = 4;
i && [Link] && (r = [Link]);
var s = t + r;
if (s === [Link] || s + 1 < [Link] &&
[Link](e, s)) return !0
}
return !1
}
},
D = P,
I = function() {
function e(t) {
f(this, e), [Link] = t, [Link] = [Link],
[Link] = 0, [Link] = 0
}
return [Link] = function() {
var e = [Link],
t = [Link],
i = [Link] - t,
r = new Uint8Array(4),
s = [Link](4, t);
if (0 === s) throw new Error("no bytes available");
[Link]([Link](i, i + s)), [Link] = new
DataView([Link]).getUint32(0), [Link] = 8 * s, [Link] -=
s
}, [Link] = function(e) {
var t = void 0;
[Link] > e ? ([Link] <<= e, [Link]
-= e) : (e -= [Link], t = e >> 3, e -= t >> 3, [Link] -=
t, [Link](), [Link] <<= e, [Link] -= e)
}, [Link] = function(e) {
var t = [Link]([Link], e),
i = [Link] >>> 32 - t;
return e > 32 && [Link]("Cannot read more than 32 bits at a
time"), [Link] -= t, [Link] > 0 ? [Link] <<= t :
[Link] > 0 && [Link](), t = e - t, t > 0 &&
[Link] ? i << t | [Link](t) : i
}, [Link] = function() {
var e = void 0;
for (e = 0; e < [Link]; ++e)
if (0 != ([Link] & 2147483648 >>> e)) return [Link]
<<= e, [Link] -= e, e;
return [Link](), e + [Link]()
}, [Link] = function() {
[Link](1 + [Link]())
}, [Link] = function() {
[Link](1 + [Link]())
}, [Link] = function() {
var e = [Link]();
return [Link](e + 1) - 1
}, [Link] = function() {
var e = [Link]();
return 1 & e ? 1 + e >>> 1 : -1 * (e >>> 1)
}, [Link] = function() {
return 1 === [Link](1)
}, [Link] = function() {
return [Link](8)
}, [Link] = function() {
return [Link](16)
}, [Link] = function() {
return [Link](32)
}, [Link] = function(e) {
var t = 8,
i = 8,
r = void 0,
s = void 0;
for (r = 0; r < e; r++) 0 !== i && (s = [Link](), i = (t +
s + 256) % 256), t = 0 === i ? t : i
}, [Link] = function() {
var e = 0,
t = 0,
i = 0,
r = 0,
s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0,
d = void 0,
h = void 0,
c = [Link](this),
u = [Link](this),
p = [Link](this),
f = [Link](this),
v = [Link](this),
g = [Link](this),
y = [Link](this),
m = [Link](this);
if (c(), s = c(), u(5), v(3), c(), y(), 100 === s || 110 === s
|| 122 === s || 244 === s || 44 === s || 83 === s || 86 === s || 118 === s || 128
=== s) {
var b = p();
if (3 === b && v(1), y(), y(), v(1), f())
for (d = 3 !== b ? 8 : 12, h = 0; h < d; h++) f() &&
m(h < 6 ? 16 : 64)
}
y();
var _ = p();
if (0 === _) p();
else if (1 === _)
for (v(1), g(), g(), o = p(), h = 0; h < o; h++) g();
y(), v(1), n = p(), a = p(), l = u(1), 0 === l && v(1), v(1),
f() && (e = p(), t = p(), i = p(), r = p());
var E = [1, 1];
if (f() && f()) {
switch (c()) {
case 1:
E = [1, 1];
break;
case 2:
E = [12, 11];
break;
case 3:
E = [10, 11];
break;
case 4:
E = [16, 11];
break;
case 5:
E = [40, 33];
break;
case 6:
E = [24, 11];
break;
case 7:
E = [20, 11];
break;
case 8:
E = [32, 11];
break;
case 9:
E = [80, 33];
break;
case 10:
E = [18, 11];
break;
case 11:
E = [15, 11];
break;
case 12:
E = [64, 33];
break;
case 13:
E = [160, 99];
break;
case 14:
E = [4, 3];
break;
case 15:
E = [3, 2];
break;
case 16:
E = [2, 1];
break;
case 255:
E = [c() << 8 | c(), c() << 8 | c()]
}
}
return {
width: [Link](16 * (n + 1) - 2 * e - 2 * t),
height: (2 - l) * (a + 1) * 16 - (l ? 2 : 4) * (i + r),
pixelRatio: E
}
}, [Link] = function() {
return [Link](), [Link](), [Link]()
}, e
}(),
O = I,
M = function() {
function e(t, i, r, s) {
v(this, e), [Link] = r, [Link] = s,
[Link] = new S.a(t, i, {
removePKCS7Padding: !1
})
}
return [Link] = function(e, t) {
[Link](e, [Link],
[Link], t)
}, [Link] = function(e, t, i, r) {
var s = e[t].unit,
o = [Link](16, [Link] - [Link] % 16),
n = [Link]([Link], [Link] + [Link]),
a = this;
[Link](n, function(o) {
o = new Uint8Array(o), [Link](o, 16), r ||
[Link](e, t + 1, i)
})
}, [Link] = function(e, t, i) {
for (;; t++) {
if (t >= [Link]) return void i();
if (!(e[t].[Link] < 32)) {
var r = [Link]();
if ([Link](e, t, i, r), !r) return
}
}
}, [Link] = function(e) {
for (var t = 16 * [Link](([Link] - 48) / 160) + 16, i =
new Int8Array(t), r = 0, s = 32; s <= [Link] - 16; s += 160, r += 16)
[Link]([Link](s, s + 16), r);
return i
}, [Link] = function(e, t) {
t = new Uint8Array(t);
for (var i = 0, r = 32; r <= [Link] - 16; r += 160, i += 16)
[Link]([Link](i, i + 16), r);
return e
}, [Link] = function(e, t, i, r, s, o) {
var n = [Link]([Link]),
a = [Link](n),
l = this;
[Link]([Link], function(a) {
[Link] = [Link](n, a), o ||
[Link](e, t, i + 1, r)
})
}, [Link] = function(e, t, i, r) {
for (;; t++, i = 0) {
if (t >= [Link]) return void r();
for (var s = e[t].units; !(i >= [Link]); i++) {
var o = s[i];
if (!([Link] <= 48 || 1 !== [Link] && 5 !== [Link]))
{
var n = [Link]();
if ([Link](e, t, i, r, o, n), !n)
return
}
}
}
}, e
}(),
F = M,
N = {
video: 0,
audio: 1,
id3: 2,
text: 3
},
B = function() {
function e(t, i, r, s) {
g(this, e), [Link] = t, [Link] = r,
[Link] = s, [Link] = i, [Link] = null
}
return [Link] = function(e) {
null != e && null != [Link] && "SAMPLE-AES" === [Link] ?
[Link] = new F([Link], [Link], e, [Link]) :
[Link] = null
}, [Link] = function(t) {
var i = e._syncOffset(t);
return !(i < 0) && (i && [Link]("MPEG2-TS detected but first
sync word found @ offset " + i + ", junk ahead ?"), !0)
}, e._syncOffset = function(e) {
for (var t = [Link](1e3, [Link] - 564), i = 0; i < t;) {
if (71 === e[i] && 71 === e[i + 188] && 71 === e[i + 376])
return i;
i++
}
return -1
}, [Link] = function(e, t) {
return {
container: "video" === e || "audio" === e ? "video/mp2t" :
undefined,
type: e,
id: N[e],
pid: -1,
inputTimeScale: 9e4,
sequenceNumber: 0,
samples: [],
len: 0,
dropped: "video" === e ? 0 : undefined,
isAAC: "audio" === e || undefined,
duration: "audio" === e ? t : undefined
}
}, [Link] = function(t, i, r, s) {
[Link] = !1, this._pmtId = -1, this._avcTrack =
[Link]("video", s), this._audioTrack = [Link]("audio", s),
this._id3Track = [Link]("id3", s), this._txtTrack = [Link]("text",
s), [Link] = null, [Link] = null, [Link] = null,
[Link] = i, [Link] = r, this._duration = s
}, [Link] = function() {}, [Link] =
function(t, i, r, s) {
var o = void 0,
n = [Link],
a = void 0,
l = void 0,
d = void 0,
h = void 0,
c = !1;
[Link] = r;
var u = [Link],
p = this._avcTrack,
f = this._audioTrack,
v = this._id3Track,
g = [Link],
y = [Link],
m = [Link],
b = this._pmtId,
_ = [Link],
E = [Link],
w = [Link],
S = this._parsePAT,
A = this._parsePMT,
R = this._parsePES,
x = this._parseAVCPES.bind(this),
C = this._parseAACPES.bind(this),
P = this._parseMPEGPES.bind(this),
D = this._parseID3PES.bind(this),
I = e._syncOffset(t);
for (n -= (n + I) % 188, o = I; o < n; o += 188)
if (71 === t[o]) {
if (a = !!(64 & t[o + 1]), l = ((31 & t[o + 1]) << 8) +
t[o + 2], (48 & t[o + 3]) >> 4 > 1) {
if ((d = o + 5 + t[o + 4]) === o + 188) continue
} else d = o + 4;
switch (l) {
case g:
a && (_ && (h = R(_)) && [Link] !== undefined &&
x(h, !1), _ = {
data: [],
size: 0
}), _ && (_.[Link]([Link](d, o + 188)),
_.size += o + 188 - d);
break;
case y:
a && (E && (h = R(E)) && [Link] !== undefined &&
([Link] ? C(h) : P(h)), E = {
data: [],
size: 0
}), E && ([Link]([Link](d, o + 188)),
[Link] += o + 188 - d);
break;
case m:
a && (w && (h = R(w)) && [Link] !== undefined &&
D(h), w = {
data: [],
size: 0
}), w && ([Link]([Link](d, o + 188)),
[Link] += o + 188 - d);
break;
case 0:
a && (d += t[d] + 1), b = this._pmtId = S(t,
d);
break;
case b:
a && (d += t[d] + 1);
var O = A(t, d, !0 === [Link]
|| !0 === [Link].mp3, null != [Link]);
g = [Link], g > 0 && ([Link] = g), y = [Link], y
> 0 && ([Link] = y, [Link] = [Link]), m = O.id3, m > 0 && ([Link] = m), c && !u &&
([Link]("reparse from beginning"), c = !1, o = I - 188), u = [Link] = !0;
break;
case 17:
case 8191:
break;
default:
c = !0
}
} else [Link]([Link], {
type: T.b.MEDIA_ERROR,
details: T.a.FRAG_PARSING_ERROR,
fatal: !1,
reason: "TS packet did not start with 0x47"
});
_ && (h = R(_)) && [Link] !== undefined ? (x(h, !0), [Link] =
null) : [Link] = _, E && (h = R(E)) && [Link] !== undefined ? ([Link] ? C(h) :
P(h), [Link] = null) : (E && [Link] && [Link]("last AAC PES packet
truncated,might overlap between fragments"), [Link] = E), w && (h = R(w)) &&
[Link] !== undefined ? (D(h), [Link] = null) : [Link] = w, null ==
[Link] ? [Link](f, p, v, this._txtTrack, i, r, s) :
[Link](f, p, v, this._txtTrack, i, r, s)
}, [Link] = function(e, t, i, r, s, o, n) {
if ([Link] && [Link]) {
var a = this;
[Link]([Link], 0, function() {
[Link](e, t, i, r, s, o, n)
})
} else [Link](e, t, i, r, s, o, n)
}, [Link] = function(e, t, i, r, s, o, n) {
if ([Link]) {
var a = this;
[Link]([Link], 0, 0,
function() {
[Link](e, t, i, r, s, o, n)
})
} else [Link](e, t, i, r, s, o, n)
}, [Link] = function() {
this._initPTS = this._initDTS = undefined, this._duration = 0
}, [Link]._parsePAT = function(e, t) {
return (31 & e[t + 10]) << 8 | e[t + 11]
}, [Link]._parsePMT = function(e, t, i, r) {
var s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = {
audio: -1,
avc: -1,
id3: -1,
isAAC: !0
};
for (s = (15 & e[t + 1]) << 8 | e[t + 2], o = t + 3 + s - 4, n
= (15 & e[t + 10]) << 8 | e[t + 11], t += 12 + n; t < o;) {
switch (a = (31 & e[t + 1]) << 8 | e[t + 2], e[t]) {
case 207:
if (!r) {
[Link]("unkown stream type:" + e[t]);
break
}
case 15:
-1 === [Link] && ([Link] = a);
break;
case 21:
-1 === l.id3 && (l.id3 = a);
break;
case 219:
if (!r) {
[Link]("unkown stream type:" + e[t]);
break
}
case 27:
-1 === [Link] && ([Link] = a);
break;
case 3:
case 4:
i ? -1 === [Link] && ([Link] = a, [Link] = !1) :
[Link]("MPEG audio found, not supported in this browser for now");
break;
case 36:
[Link]("HEVC stream type found, not supported for
now");
break;
default:
[Link]("unkown stream type:" + e[t])
}
t += 5 + ((15 & e[t + 3]) << 8 | e[t + 4])
}
return l
}, [Link]._parsePES = function(e) {
var t = 0,
i = void 0,
r = void 0,
s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0,
d = void 0,
h = [Link];
if (!e || 0 === [Link]) return null;
for (; h[0].length < 19 && [Link] > 1;) {
var c = new Uint8Array(h[0].length + h[1].length);
[Link](h[0]), [Link](h[1], h[0].length), h[0] = c,
[Link](1, 1)
}
if (i = h[0], 1 === (i[0] << 16) + (i[1] << 8) + i[2]) {
if ((s = (i[4] << 8) + i[5]) && s > [Link] - 6) return
null;
r = i[7], 192 & r && (a = 536870912 * (14 & i[9]) + 4194304
* (255 & i[10]) + 16384 * (254 & i[11]) + 128 * (255 & i[12]) + (254 & i[13]) / 2,
a > 4294967295 && (a -= 8589934592), 64 & r ? (l = 536870912 * (14 & i[14]) +
4194304 * (255 & i[15]) + 16384 * (254 & i[16]) + 128 * (255 & i[17]) + (254 &
i[18]) / 2, l > 4294967295 && (l -= 8589934592), a - l > 54e5 &&
([Link]([Link]((a - l) / 9e4) + "s delta between PTS and DTS, align them"), a
= l)) : l = a), o = i[8], d = o + 9, [Link] -= d, n = new Uint8Array([Link]);
for (var u = 0, p = [Link]; u < p; u++) {
i = h[u];
var f = [Link];
if (d) {
if (d > f) {
d -= f;
continue
}
i = [Link](d), f -= d, d = 0
}
[Link](i, t), t += f
}
return s && (s -= o + 3), {
data: n,
pts: a,
dts: l,
len: s
}
}
return null
}, [Link] = function(e, t) {
if ([Link] && [Link]) {
var i = [Link],
r = [Link];
![Link] || !0 === [Link]
|| [Link] && (r || [Link]) ? ([Link] = r, [Link](e)) : [Link]++
}
[Link] && [Link]([Link] + "/" + [Link] + ":" + [Link])
}, [Link]._parseAVCPES = function(e, t) {
var i = this,
r = this._avcTrack,
s = this._parseAVCNALu([Link]),
o = void 0,
n = [Link],
a = void 0,
l = !1,
d = void 0,
h = [Link](this),
c = function(e, t, i, r) {
return {
key: e,
pts: t,
dts: i,
units: [],
debug: r
}
};
[Link] = null, n && [Link] && ![Link] && (h(n, r), n =
[Link] = c(!1, [Link], [Link], "")), [Link](function(t) {
switch ([Link]) {
case 1:
a = !0, n || (n = [Link] = c(!0, [Link], [Link],
"")), [Link] = !0;
var s = [Link];
if (l && [Link] > 4) {
var u = new O(s).readSliceType();
2 !== u && 4 !== u && 7 !== u && 9 !== u ||
([Link] = !0)
}
break;
case 5:
a = !0, n || (n = [Link] = c(!0, [Link], [Link],
"")), [Link] = !0, [Link] = !0;
break;
case 6:
a = !0, o = new O([Link]([Link])),
[Link]();
for (var p = 0, f = 0, v = !1, g = 0; !v &&
[Link] > 1;) {
p = 0;
do {
g = [Link](), p += g
} while (255 === g);
f = 0;
do {
g = [Link](), f += g
} while (255 === g);
if (4 === p && 0 !== [Link]) {
v = !0;
if (181 === [Link]()) {
if (49 === [Link]()) {
if (1195456820 === [Link]()) {
if (3 === [Link]()) {
var y = [Link](),
m = [Link](),
b = 31 & y,
_ = [y, m];
for (d = 0; d < b; d++)
_.push([Link]()), _.push([Link]()), _.push([Link]());

i._insertSampleInOrder(i._txtTrack.samples, {
type: 3,
pts: [Link],
bytes: _
})
}
}
}
}
} else if (f < [Link])
for (d = 0; d < f; d++) [Link]()
}
break;
case 7:
if (a = !0, l = !0, ![Link]) {
o = new O([Link]);
var E = [Link]();
[Link] = [Link], [Link] = [Link],
[Link] = [Link], [Link] = [[Link]], [Link] = i._duration;
var w = [Link](1, 4),
k = "avc1.";
for (d = 0; d < 3; d++) {
var T = w[d].toString(16);
[Link] < 2 && (T = "0" + T), k += T
}
[Link] = k
}
break;
case 8:
a = !0, [Link] || ([Link] = [[Link]]);
break;
case 9:
a = !1, [Link] = !0, n && h(n, r), n =
[Link] = c(!1, [Link], [Link], "");
break;
case 12:
a = !1;
break;
default:
a = !1, n && ([Link] += "unknown NAL " + [Link] +
" ")
}
if (n && a) {
[Link](t)
}
}), t && n && (h(n, r), [Link] = null)
}, [Link]._insertSampleInOrder = function(e, t) {
var i = [Link];
if (i > 0) {
if ([Link] >= e[i - 1].pts) [Link](t);
else
for (var r = i - 1; r >= 0; r--)
if ([Link] < e[r].pts) {
[Link](r, 0, t);
break
}
} else [Link](t)
}, [Link]._getLastNalUnit = function() {
var e = [Link],
t = void 0;
if (!e || 0 === [Link]) {
var i = this._avcTrack,
r = [Link];
e = r[[Link] - 1]
}
if (e) {
var s = [Link];
t = s[[Link] - 1]
}
return t
}, [Link]._parseAVCNALu = function(e) {
var t = 0,
i = [Link],
r = void 0,
s = void 0,
o = this._avcTrack,
n = [Link] || 0,
a = n,
l = [],
d = void 0,
h = void 0,
c = -1,
u = void 0;
for (-1 === n && (c = 0, u = 31 & e[0], n = 0, t = 1); t < i;)
if (r = e[t++], n)
if (1 !== n)
if (r)
if (1 === r) {
if (c >= 0) d = {
data: [Link](c, t - n - 1),
type: u
}, [Link](d);
else {
var p = this._getLastNalUnit();
if (p && (a && t <= 4 - a && [Link] &&
([Link] = [Link](0, [Link] - a)), (s = t - n - 1) > 0)) {
var f = new
Uint8Array([Link] + s);
[Link]([Link], 0),
[Link]([Link](0, s), [Link]), [Link] = f
}
}
t < i ? (h = 31 & e[t], c = t, u = h, n =
0) : n = -1
} else n = 0;
else n = 3;
else n = r ? 0 : 2;
else n = r ? 0 : 1;
if (c >= 0 && n >= 0 && (d = {
data: [Link](c, i),
type: u,
state: n
}, [Link](d)), 0 === [Link]) {
var v = this._getLastNalUnit();
if (v) {
var g = new Uint8Array([Link] +
[Link]);
[Link]([Link], 0), [Link](e, [Link]), [Link] =
g
}
}
return [Link] = n, l
}, [Link] = function(e) {
for (var t = [Link], i = [], r = 1, s = void 0, o = void
0; r < t - 2;) 0 === e[r] && 0 === e[r + 1] && 3 === e[r + 2] ? ([Link](r + 2), r
+= 2) : r++;
if (0 === [Link]) return e;
s = t - [Link], o = new Uint8Array(s);
var n = 0;
for (r = 0; r < s; n++, r++) n === i[0] && (n++, [Link]()),
o[r] = e[n];
return o
}, [Link]._parseAACPES = function(e) {
var t = this._audioTrack,
i = [Link],
r = [Link],
s = [Link],
o = [Link],
n = void 0,
l = void 0,
c = void 0,
p = void 0,
f = void 0;
if (s) {
var v = new Uint8Array([Link] + [Link]);
[Link](s, 0), [Link](i, [Link]), i = v
}
for (c = 0, f = [Link]; c < f - 1 && !a(i, c); c++);
if (c) {
var g = void 0,
y = void 0;
if (c < f - 1 ? (g = "AAC PES did not start with ADTS
header,offset:" + c, y = !1) : (g = "no ADTS header found in AAC PES", y = !0),
[Link]("parsing error:" + g), [Link]([Link], {
type: T.b.MEDIA_ERROR,
details: T.a.FRAG_PARSING_ERROR,
fatal: y,
reason: g
}), y) return
}
if (d(t, [Link], i, c, [Link]), l = 0, n =
h([Link]), s && o) {
var m = o + n;
[Link](m - r) > 1 && ([Link]("AAC: align PTS for
overlapping frames by " + [Link]((m - r) / 90)), r = m)
}
for (; c < f;)
if (a(i, c) && c + 5 < f) {
var b = u(t, i, c, r, l);
if (!b) break;
c += [Link], p = [Link], l++
} else c++;
s = c < f ? [Link](c, f) : null, [Link] = s,
[Link] = p
}, [Link]._parseMPEGPES = function(e) {
for (var t = [Link], i = [Link], r = 0, s = 0, o = [Link]; s <
i;)
if ([Link](t, s)) {
var n = [Link](this._audioTrack, t, s, o, r);
if (!n) break;
s += [Link], r++
} else s++
}, [Link]._parseID3PES = function(e) {
this._id3Track.[Link](e)
}, e
}(),
U = B,
G = function() {
function e(t, i, r) {
y(this, e), [Link] = t, [Link] = r, [Link] =
i
}
return [Link] = function(e, t, i, r) {
this._audioTrack = {
container: "audio/mpeg",
type: "audio",
id: -1,
sequenceNumber: 0,
isAAC: !1,
samples: [],
len: 0,
manifestCodec: t,
duration: r,
inputTimeScale: 9e4
}
}, [Link] = function() {}, [Link] =
function(e) {
var t = void 0,
i = void 0,
r = A.a.getID3Data(e, 0);
if (r && [Link](r) !== undefined)
for (t = [Link], i = [Link]([Link] - 1, t + 100); t <
i; t++)
if ([Link](e, t)) return [Link]("MPEG Audio sync word
found !"), !0;
return !1
}, [Link] = function(e, t, i, r) {
for (var s = A.a.getID3Data(e, 0), o = [Link](s), n =
o ? 90 * o : 9e4 * t, a = [Link], l = [Link], d = 0, h = 0, c =
this._audioTrack, u = [{
pts: n,
dts: n,
data: s
}]; a < l;)
if ([Link](e, a)) {
var p = [Link](c, e, a, n, d);
if (!p) break;
a += [Link], h = [Link], d++
} else [Link](e, a) ? (s = A.a.getID3Data(e, a),
[Link]({
pts: h,
dts: h,
data: s
}), a += [Link]) : a++;
[Link](c, {
samples: []
}, {
samples: u,
inputTimeScale: 9e4
}, {
samples: []
}, t, i, r)
}, [Link] = function() {}, e
}(),
H = G,
V = function() {
function e() {
m(this, e)
}
return [Link] = function(e, t) {
switch (e) {
case "mp4a.40.2":
if (1 === t) return new Uint8Array([0, 200, 0, 128, 35,
128]);
if (2 === t) return new Uint8Array([33, 0, 73, 144, 2,
25, 0, 35, 128]);
if (3 === t) return new Uint8Array([0, 200, 0, 128, 32,
132, 1, 38, 64, 8, 100, 0, 142]);
if (4 === t) return new Uint8Array([0, 200, 0, 128, 32,
132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]);
if (5 === t) return new Uint8Array([0, 200, 0, 128, 32,
132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]);
if (6 === t) return new Uint8Array([0, 200, 0, 128, 32,
132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]);
break;
default:
if (1 === t) return new Uint8Array([1, 64, 34, 128,
163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
if (2 === t) return new Uint8Array([1, 64, 34, 128,
163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
if (3 === t) return new Uint8Array([1, 64, 34, 128,
163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94])
}
return null
}, e
}(),
j = V,
K = [Link](2, 32) - 1,
q = function() {
function e() {
b(this, e)
}
return [Link] = function() {
[Link] = {
avc1: [],
avcC: [],
btrt: [],
dinf: [],
dref: [],
esds: [],
ftyp: [],
hdlr: [],
mdat: [],
mdhd: [],
mdia: [],
mfhd: [],
minf: [],
moof: [],
moov: [],
mp4a: [],
".mp3": [],
mvex: [],
mvhd: [],
pasp: [],
sdtp: [],
stbl: [],
stco: [],
stsc: [],
stsd: [],
stsz: [],
stts: [],
tfdt: [],
tfhd: [],
traf: [],
trak: [],
trun: [],
trex: [],
tkhd: [],
vmhd: [],
smhd: []
};
var t = void 0;
for (t in [Link]) [Link](t) && ([Link][t] =
[[Link](0), [Link](1), [Link](2), [Link](3)]);
var i = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100,
101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100,
108, 101, 114, 0]),
r = new Uint8Array([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]);
e.HDLR_TYPES = {
video: i,
audio: r
};
var s = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12,
117, 114, 108, 32, 0, 0, 0, 1]),
o = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]);
[Link] = [Link] = [Link] = o, [Link] = new Uint8Array([0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0]), [Link] = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0]), [Link] = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), [Link] = new
Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]);
var n = new Uint8Array([105, 115, 111, 109]),
a = new Uint8Array([97, 118, 99, 49]),
l = new Uint8Array([0, 0, 0, 1]);
[Link] = [Link]([Link], n, l, n, a), [Link] =
[Link]([Link], [Link]([Link], s))
}, [Link] = function(e) {
for (var t = [Link](arguments, 1), i = 8, r
= [Link], s = r, o = void 0; r--;) i += t[r].byteLength;
for (o = new Uint8Array(i), o[0] = i >> 24 & 255, o[1] = i >>
16 & 255, o[2] = i >> 8 & 255, o[3] = 255 & i, [Link](e, 4), r = 0, i = 8; r < s; r+
+) [Link](t[r], i), i += t[r].byteLength;
return o
}, [Link] = function(t) {
return [Link]([Link], e.HDLR_TYPES[t])
}, [Link] = function(t) {
return [Link]([Link], t)
}, [Link] = function(t, i) {
i *= t;
var r = [Link](i / (K + 1)),
s = [Link](i % (K + 1));
return [Link]([Link], new Uint8Array([1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, t >> 24 & 255, t >> 16 & 255, t >> 8 & 255,
255 & t, r >> 24, r >> 16 & 255, r >> 8 & 255, 255 & r, s >> 24, s >> 16 & 255, s
>> 8 & 255, 255 & s, 85, 196, 0, 0]))
}, [Link] = function(t) {
return [Link]([Link], [Link]([Link], [Link]),
[Link]([Link]), [Link](t))
}, [Link] = function(t) {
return [Link]([Link], new Uint8Array([0, 0, 0, 0, t >> 24,
t >> 16 & 255, t >> 8 & 255, 255 & t]))
}, [Link] = function(t) {
return "audio" === [Link] ? [Link]([Link],
[Link]([Link], [Link]), [Link], [Link](t)) : [Link]([Link],
[Link]([Link], [Link]), [Link], [Link](t))
}, [Link] = function(t, i, r) {
return [Link]([Link], [Link](t), [Link](r, i))
}, [Link] = function(t) {
for (var i = [Link], r = []; i--;) r[i] = [Link](t[i]);
return [Link](null, [[Link], [Link](t[0].timescale,
t[0].duration)].concat(r).concat([Link](t)))
}, [Link] = function(t) {
for (var i = [Link], r = []; i--;) r[i] = [Link](t[i]);
return [Link](null, [[Link]].concat(r))
}, [Link] = function(t, i) {
i *= t;
var r = [Link](i / (K + 1)),
s = [Link](i % (K + 1)),
o = new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0, 3, t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, 255 & t, r >> 24,
r >> 16 & 255, r >> 8 & 255, 255 & r, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 &
s, 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, 255, 255, 255,
255]);
return [Link]([Link], o)
}, [Link] = function(t) {
var i = [Link] || [],
r = new Uint8Array(4 + [Link]),
s = void 0,
o = void 0;
for (o = 0; o < [Link]; o++) s = i[o].flags, r[o + 4] =
[Link] << 4 | [Link] << 2 | [Link];
return [Link]([Link], r)
}, [Link] = function(t) {
return [Link]([Link], [Link](t), [Link]([Link],
[Link]), [Link]([Link], [Link]), [Link]([Link], [Link]),
[Link]([Link], [Link]))
}, e.avc1 = function(t) {
var i = [],
r = [],
s = void 0,
o = void 0,
n = void 0;
for (s = 0; s < [Link]; s++) o = [Link][s], n =
[Link], [Link](n >>> 8 & 255), [Link](255 & n), i =
[Link]([Link](o));
for (s = 0; s < [Link]; s++) o = [Link][s], n =
[Link], [Link](n >>> 8 & 255), [Link](255 & n), r =
[Link]([Link](o));
var a = [Link]([Link], new Uint8Array([1, i[3], i[4],
i[5], 255, 224 | [Link]].concat(i).concat([[Link]]).concat(r))),
l = [Link],
d = [Link],
h = [Link][0],
c = [Link][1];
return [Link]([Link].avc1, new Uint8Array([0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, l >> 8 & 255, 255 & l, d >> 8 &
255, 255 & d, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 18, 100, 97, 105, 108,
121, 109, 111, 116, 105, 111, 110, 47, 104, 108, 115, 46, 106, 115, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), a, [Link]([Link], new Uint8Array([0,
28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192])), [Link]([Link], new
Uint8Array([h >> 24, h >> 16 & 255, h >> 8 & 255, 255 & h, c >> 24, c >> 16 & 255,
c >> 8 & 255, 255 & c])))
}, [Link] = function(e) {
var t = [Link];
return new Uint8Array([0, 0, 0, 0, 3, 23 + t, 0, 1, 0, 4, 15 +
t, 64, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5].concat([t]).concat([Link]).concat([6, 1, 2]))
}, e.mp4a = function(t) {
var i = [Link];
return [Link]([Link].mp4a, new Uint8Array([0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, [Link], 0, 16, 0, 0, 0, 0, i >> 8 & 255, 255
& i, 0, 0]), [Link]([Link], [Link](t)))
}, e.mp3 = function(t) {
var i = [Link];
return [Link]([Link][".mp3"], new Uint8Array([0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, [Link], 0, 16, 0, 0, 0, 0, i >> 8 & 255,
255 & i, 0, 0]))
}, [Link] = function(t) {
return "audio" === [Link] ? [Link] || "mp3" !== [Link] ?
[Link]([Link], [Link], e.mp4a(t)) : [Link]([Link], [Link], e.mp3(t)) :
[Link]([Link], [Link], e.avc1(t))
}, [Link] = function(t) {
var i = [Link],
r = [Link] * [Link],
s = [Link],
o = [Link],
n = [Link](r / (K + 1)),
a = [Link](r % (K + 1));
return [Link]([Link], new Uint8Array([1, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, i >> 24 & 255, i >> 16 & 255, i >> 8 & 255,
255 & i, 0, 0, 0, 0, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n, a >> 24, a >>
16 & 255, a >> 8 & 255, 255 & a, 0, 0, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 64, 0, 0, 0, s >> 8 & 255, 255 & s, 0, 0, o >> 8 & 255, 255 & o, 0, 0]))
}, [Link] = function(t, i) {
var r = [Link](t),
s = [Link],
o = [Link](i / (K + 1)),
n = [Link](i % (K + 1));
return [Link]([Link], [Link]([Link], new
Uint8Array([0, 0, 0, 0, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 & s])),
[Link]([Link], new Uint8Array([1, 0, 0, 0, o >> 24, o >> 16 & 255, o >> 8 &
255, 255 & o, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n])), [Link](t, [Link]
+ 16 + 20 + 8 + 16 + 8 + 8), r)
}, [Link] = function(t) {
return [Link] = [Link] || 4294967295,
[Link]([Link], [Link](t), [Link](t))
}, [Link] = function(t) {
var i = [Link];
return [Link]([Link], new Uint8Array([0, 0, 0, 0, i >> 24,
i >> 16 & 255, i >> 8 & 255, 255 & i, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1]))
}, [Link] = function(t, i) {
var r = [Link] || [],
s = [Link],
o = 12 + 16 * s,
n = new Uint8Array(o),
a = void 0,
l = void 0,
d = void 0,
h = void 0,
c = void 0,
u = void 0;
for (i += 8 + o, [Link]([0, 0, 15, 1, s >>> 24 & 255, s >>> 16 &
255, s >>> 8 & 255, 255 & s, i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, 255 &
i], 0), a = 0; a < s; a++) l = r[a], d = [Link], h = [Link], c = [Link], u =
[Link], [Link]([d >>> 24 & 255, d >>> 16 & 255, d >>> 8 & 255, 255 & d, h >>> 24 &
255, h >>> 16 & 255, h >>> 8 & 255, 255 & h, [Link] << 2 | [Link],
[Link] << 6 | [Link] << 4 | [Link] << 1 | [Link],
61440 & [Link], 15 & [Link], u >>> 24 & 255, u >>> 16 & 255, u >>> 8 &
255, 255 & u], 12 + 16 * a);
return [Link]([Link], n)
}, [Link] = function(t) {
[Link] || [Link]();
var i = [Link](t),
r = void 0;
return r = new Uint8Array([Link] + [Link]),
[Link]([Link]), [Link](i, [Link]), r
}, e
}(),
W = q,
Y = function() {
function e(t, i, r, s) {
_(this, e), [Link] = t, [Link] = i,
[Link] = r;
var o = [Link];
[Link] = s && [Link]("Apple") > -1 && o && !
[Link]("CriOS"), [Link] = !1
}
return [Link] = function() {},
[Link] = function(e) {
this._initPTS = this._initDTS = e
}, [Link] = function() {
[Link] = !1
}, [Link] = function(e, t, i, r, s, o, n) {
if ([Link] || [Link](e, t, s),
[Link]) {
var a = [Link],
l = [Link],
d = s,
h = s;
if (a && l) {
var c = ([Link][0].dts - [Link][0].dts) /
[Link];
d += [Link](0, c), h += [Link](0, -c)
}
if (a) {
[Link] || ([Link]("regenerate InitSegment as
audio detected"), [Link](e, t, s));
var u = [Link](e, d, o, n);
if (l) {
var p = void 0;
u && (p = [Link] - [Link]), [Link] ||
([Link]("regenerate InitSegment as video detected"), [Link](e, t, s)),
[Link](t, h, o, p, n)
}
} else if (l) {
var f = [Link](t, h, o, 0, n);
f && [Link] && [Link](e, d, o, f)
}
}
[Link] && this.remuxID3(i, s), [Link] &&
[Link](r, s), [Link](k.a.FRAG_PARSED)
}, [Link] = function(e, t, i) {
var r = [Link],
s = [Link],
o = [Link],
n = [Link],
a = "audio/mp4",
l = {},
d = {
tracks: l
},
h = this._initPTS === undefined,
c = void 0,
u = void 0;
if (h && (c = u = Infinity), [Link] && [Link] &&
([Link] = [Link], [Link]("audio sampling rate : " + [Link]),
[Link] || ([Link] ? (a = "audio/mpeg", [Link] = "") : n.mp3 && ([Link] =
"mp3")), [Link] = {
container: a,
codec: [Link],
initSegment: ![Link] && [Link] ? new Uint8Array :
[Link]([e]),
metadata: {
channelCount: [Link]
}
}, h && (c = u = s[0].pts - [Link] * i)), [Link]
&& [Link] && [Link]) {
var p = [Link];
[Link] = p, [Link] = {
container: "video/mp4",
codec: [Link],
initSegment: [Link]([t]),
metadata: {
width: [Link],
height: [Link]
}
}, h && (c = [Link](c, o[0].pts - p * i), u = [Link](u,
o[0].dts - p * i), [Link](k.a.INIT_PTS_FOUND, {
initPTS: c
}))
}
[Link](l).length ?
([Link](k.a.FRAG_PARSING_INIT_SEGMENT, d), [Link] = !0, h &&
(this._initPTS = c, this._initDTS = u)) : [Link]([Link], {
type: T.b.MEDIA_ERROR,
details: T.a.FRAG_PARSING_ERROR,
fatal: !1,
reason: "no audio/video samples found"
})
}, [Link] = function(e, t, i, r, s) {
var o = 8,
n = [Link],
a = void 0,
l = void 0,
d = void 0,
h = void 0,
c = void 0,
u = void 0,
p = void 0,
f = [Link],
v = [],
g = [Link],
y = this._PTSNormalize,
m = this._initDTS,
b = [Link],
_ = [Link];
if (0 !== g) {
_ && (i |= [Link] && b && (s && [Link](t - b / n) < .1
|| [Link](f[0].pts - b - m) < n / 5)), i || (b = t * n), [Link](function(e) {
[Link] = y([Link] - m, b), [Link] = y([Link] - m, b)
}), [Link](function(e, t) {
var i = [Link] - [Link],
r = [Link] - [Link];
return i || r || [Link] - [Link]
});
var E = [Link](function(e, t) {
return [Link]([Link](e, [Link] - [Link]), -18e3)
}, 0);
if (E < 0) {
[Link]("PTS < DTS detected in video samples, shifting
DTS by " + [Link](E / 90) + " ms to overcome this issue");
for (var w = 0; w < [Link]; w++) f[w].dts += E
}
var S = f[0];
c = [Link]([Link], 0), h = [Link]([Link], 0);
var A = [Link]((c - b) / 90);
i && A && (A > 1 ? [Link]("AVC:" + A + " ms hole between
fragments detected,filling it") : A < -1 && [Link]("AVC:" + -A + " ms overlapping
between fragments detected"), c = b, f[0].dts = c, h = [Link](h - A, b), f[0].pts
= h, [Link]("Video/PTS/DTS adjusted: " + [Link](h / 90) + "/" + [Link](c /
90) + ",delta:" + A + " ms")), c, S = f[[Link] - 1], p = [Link]([Link], 0), u =
[Link]([Link], 0, p), _ && (a = [Link]((p - c) / ([Link] - 1)));
for (var R = 0, x = 0, C = 0; C < g; C++) {
for (var P = f[C], D = [Link], I = [Link], O = 0, M
= 0; M < I; M++) O += D[M].[Link];
x += O, R += I, [Link] = O, [Link] = _ ? c + C * a :
[Link]([Link], c), [Link] = [Link]([Link], [Link])
}
var F = x + 4 * R + 8;
try {
l = new Uint8Array(F)
} catch (re) {
return void [Link]([Link], {
type: T.b.MUX_ERROR,
details: T.a.REMUX_ALLOC_ERROR,
fatal: !1,
bytes: F,
reason: "fail allocating video mdat " + F
})
}
var N = new DataView([Link]);
N.setUint32(0, F), [Link]([Link], 4);
for (var B = 0; B < g; B++) {
for (var U = f[B], G = [Link], H = 0, V = void 0, j =
0, K = [Link]; j < K; j++) {
var q = G[j],
Y = [Link],
z = [Link];
N.setUint32(o, z), o += 4, [Link](Y, o), o += z, H
+= 4 + z
}
if (_) V = [Link](0, a * [Link](([Link] - [Link]) /
a));
else {
if (B < g - 1) a = f[B + 1].dts - [Link];
else {
var X = [Link],
Q = [Link] - f[B > 0 ? B - 1 : B].dts;
if ([Link]) {
var J = [Link],
$ = [Link](J * n),
Z = (r ? h + r * n : [Link])
- [Link];
Z > $ ? (a = Z - Q, a < 0 && (a = Q),
[Link]("It is approximately " + Z / 90 + " ms to the next segment; using duration
" + a / 90 + " ms for the last video frame.")) : a = Q
} else a = Q
}
V = [Link]([Link] - [Link])
}
[Link]({
size: H,
duration: a,
cts: V,
flags: {
isLeading: 0,
isDependedOn: 0,
hasRedundancy: 0,
degradPrio: 0,
dependsOn: [Link] ? 2 : 1,
isNonSync: [Link] ? 0 : 1
}
})
}
[Link] = p + a;
var ee = [Link];
if ([Link] = 0, [Link] = 0, [Link] = 0, [Link] &&
[Link]().indexOf("chrome") > -1) {
var te = v[0].flags;
[Link] = 2, [Link] = 0
}
[Link] = v, d = [Link]([Link]++, c, e),
[Link] = [];
var ie = {
data1: d,
data2: l,
startPTS: h / n,
endPTS: (u + a) / n,
startDTS: c / n,
endDTS: [Link] / n,
type: "video",
hasAudio: !1,
hasVideo: !0,
nb: [Link],
dropped: ee
};
return [Link](k.a.FRAG_PARSING_DATA, ie), ie
}
}, [Link] = function(e, t, i, r) {
var s = [Link],
o = [Link],
n = s / o,
a = [Link] ? 1024 : 1152,
l = a * n,
d = this._PTSNormalize,
h = this._initDTS,
c = ![Link] && [Link],
u = void 0,
p = void 0,
f = void 0,
v = void 0,
g = void 0,
y = void 0,
m = void 0,
b = [Link],
_ = [],
E = [Link];
if (i |= [Link] && E && (r && [Link](t - E / s) < .1 ||
[Link](b[0].pts - E - h) < 20 * l), [Link](function(e) {
[Link] = [Link] = d([Link] - h, t * s)
}), b = [Link](function(e) {
return [Link] >= 0
}), 0 !== [Link]) {
if (i || (E = r ? t * s : b[0].pts), [Link])
for (var w = [Link], S = 0, A
= E; S < [Link];) {
var R, x = b[S],
C = [Link];
R = C - A;
var P = [Link](1e3 * R / s);
if (R <= -w * l) [Link]("Dropping 1 audio frame @
" + (A / s).toFixed(3) + "s due to " + [Link](P) + " ms overlap."), [Link](S,
1), [Link] -= [Link];
else if (R >= w * l && P < 1e4 && A) {
var D = [Link](R / l);
[Link]("Injecting " + D + " audio frame @ " +
(A / s).toFixed(3) + "s due to " + [Link](1e3 * R / s) + " ms gap.");
for (var I = 0; I < D; I++) {
var O = [Link](A, 0);
f = [Link]([Link] ||
[Link], [Link]), f || ([Link]("Unable to get silent frame for given audio
codec; duplicating last frame instead."), f = [Link]()), [Link](S, 0, {
unit: f,
pts: O,
dts: O
}), [Link] += [Link], A += l, S++
}
[Link] = [Link] = A, A += l, S++
} else [Link](R), [Link] = [Link] = A, A += l, S++
}
for (var M = 0, F = [Link]; M < F; M++) {
var N = b[M],
B = [Link],
U = [Link];
if (m !== undefined) [Link] = [Link]((U - m) /
n);
else {
var G = [Link](1e3 * (U - E) / s),
H = 0;
if (i && [Link] && G) {
if (G > 0 && G < 1e4) H = [Link]((U - E) /
l), [Link](G + " ms hole between AAC samples detected,filling it"), H > 0 && (f =
[Link]([Link] || [Link], [Link]), f || (f =
[Link]()), [Link] += H * [Link]);
else if (G < -12) {
[Link]("drop overlapping AAC sample,
expected/parsed/delta:" + (E / s).toFixed(3) + "s/" + (U / s).toFixed(3) + "s/" +
-G + "ms"), [Link] -= [Link];
continue
}
U = E
}
if (y = U, !([Link] > 0)) return;
var V = c ? [Link] : [Link] + 8;
u = c ? 0 : 8;
try {
v = new Uint8Array(V)
} catch ($) {
return void [Link]([Link], {
type: T.b.MUX_ERROR,
details: T.a.REMUX_ALLOC_ERROR,
fatal: !1,
bytes: V,
reason: "fail allocating audio mdat " + V
})
}
if (!c) {
new DataView([Link]).setUint32(0, V),
[Link]([Link], 4)
}
for (var K = 0; K < H; K++) f =
[Link]([Link] || [Link], [Link]), f || ([Link]("Unable
to get silent frame for given audio codec; duplicating this frame instead."), f =
[Link]()), [Link](f, u), u += [Link], p = {
size: [Link],
cts: 0,
duration: 1024,
flags: {
isLeading: 0,
isDependedOn: 0,
hasRedundancy: 0,
degradPrio: 0,
dependsOn: 1
}
}, _.push(p)
}
[Link](B, u);
var q = [Link];
u += q, p = {
size: q,
cts: 0,
duration: 0,
flags: {
isLeading: 0,
isDependedOn: 0,
hasRedundancy: 0,
degradPrio: 0,
dependsOn: 1
}
}, _.push(p), m = U
}
var Y = 0,
z = _.length;
if (z >= 2 && (Y = _[z - 2].duration, [Link] = Y), z) {
[Link] = E = m + n * Y, [Link] = 0, [Link]
= _, g = c ? new Uint8Array : [Link]([Link]++, y / n, e), [Link] = [];
var X = y / s,
Q = E / s,
J = {
data1: g,
data2: v,
startPTS: X,
endPTS: Q,
startDTS: X,
endDTS: Q,
type: "audio",
hasAudio: !0,
hasVideo: !1,
nb: z
};
return [Link](k.a.FRAG_PARSING_DATA, J),
J
}
return null
}
}, [Link] = function(e, t, i, r) {
var s = [Link],
o = [Link] ? [Link] : s,
n = s / o,
a = [Link],
l = (a !== undefined ? a : [Link] * s) + this._initDTS,
d = [Link] * s + this._initDTS,
h = 1024 * n,
c = [Link]((d - l) / h),
u = [Link]([Link] || [Link],
[Link]);
if ([Link]("remux empty Audio"), !u) return void
[Link]("Unable to remuxEmptyAudio since we were unable to get a silent frame for
given audio codec!");
for (var p = [], f = 0; f < c; f++) {
var v = l + f * h;
[Link]({
unit: u,
pts: v,
dts: v
}), [Link] += [Link]
}
[Link] = p, [Link](e, t, i)
}, [Link].remuxID3 = function(e, t) {
var i = [Link],
r = void 0,
s = [Link],
o = this._initPTS,
n = this._initDTS;
if (i) {
for (var a = 0; a < i; a++) r = [Link][a], [Link] =
([Link] - o) / s, [Link] = ([Link] - n) / s;
[Link](k.a.FRAG_PARSING_METADATA, {
samples: [Link]
})
}
[Link] = [], t = t
}, [Link] = function(e, t) {
[Link](function(e, t) {
return [Link] - [Link]
});
var i = [Link],
r = void 0,
s = [Link],
o = this._initPTS;
if (i) {
for (var n = 0; n < i; n++) r = [Link][n], [Link] =
([Link] - o) / s;
[Link](k.a.FRAG_PARSING_USERDATA, {
samples: [Link]
})
}
[Link] = [], t = t
}, [Link]._PTSNormalize = function(e, t) {
var i = void 0;
if (t === undefined) return e;
for (i = t < e ? -8589934592 : 8589934592; [Link](e - t) >
4294967296;) e += i;
return e
}, e
}(),
z = Y,
X = function() {
function e(t) {
E(this, e), [Link] = t
}
return [Link] = function() {},
[Link] = function() {}, [Link] =
function() {}, [Link] = function(e, t, i, r, s, o, n, a) {
var l = [Link],
d = "";
e && (d += "audio"), t && (d += "video"),
[Link](k.a.FRAG_PARSING_DATA, {
data1: a,
startPTS: s,
startDTS: s,
type: d,
hasAudio: !!e,
hasVideo: !!t,
nb: 1,
dropped: 0
}), [Link](k.a.FRAG_PARSED)
}, e
}(),
Q = X,
J = function() {
function e(t, i, r, s) {
w(this, e), [Link] = t, [Link] = i,
[Link] = r, [Link] = s
}
return [Link] = function() {
var e = [Link];
e && [Link]()
}, [Link] = function(e, t, i, r, s, o, n, a, l, d, h, c)
{
if ([Link] > 0 && null != t && null != [Link] && "AES-128"
=== [Link]) {
var u = [Link];
null == u && (u = [Link] = new S.a([Link],
[Link]));
var p = this,
f = void 0;
try {
f = [Link]()
} catch (v) {
f = [Link]()
}
[Link](e, [Link], [Link], function(e) {
var u = void 0;
try {
u = [Link]()
} catch (v) {
u = [Link]()
}
[Link](k.a.FRAG_DECRYPTED, {
stats: {
tstart: f,
tdecrypt: u
}
}), [Link](new Uint8Array(e), t, new
Uint8Array(i), r, s, o, n, a, l, d, h, c)
})
} else [Link](new Uint8Array(e), t, new
Uint8Array(i), r, s, o, n, a, l, d, h, c)
}, [Link] = function(e, t, i, r, s, o, n, a, l,
d, h, c) {
var u = [Link];
if (!u || (n || a) && ![Link](e)) {
for (var p = [Link], f = [Link], v =
[Link], g = [{
demux: U,
remux: z
}, {
demux: C.a,
remux: Q
}, {
demux: x,
remux: z
}, {
demux: H,
remux: z
}], y = 0, m = [Link]; y < m; y++) {
var b = g[y],
_ = [Link];
if (_(e)) {
var E = [Link] = new [Link](p, v, f,
[Link]);
u = new [Link](p, E, v, f), [Link] = _;
break
}
}
if (!u) return void [Link]([Link], {
type: T.b.MEDIA_ERROR,
details: T.a.FRAG_PARSING_ERROR,
fatal: !0,
reason: "no demux matching with content found"
});
[Link] = u
}
var w = [Link];
(n || a) && ([Link](i, r, s, d),
[Link]()), n && ([Link](c), [Link](c)), "function"
== typeof [Link] && [Link](t), [Link](e, o, l, h)
}, e
}();
t.a = J
}, function(e, t, i) {
"use strict";

function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function s(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function o(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function n(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function a(e, t) {
var i = at[t];
return !!i && !0 === i[[Link](0, 4)]
}

function l(e, t) {
return [Link]((t || "video") + '/mp4;codecs="' + e
+ '"')
}

function d(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function h(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function c(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function u(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function p(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function f(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function v(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function g(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function y(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function m(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function b() {
if ("undefined" != typeof window) return [Link] ||
[Link]
}

function _(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function E(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function w(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function k(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function T(e, t, i) {
var r = e[t],
s = e[i],
o = [Link];
isNaN(o) ? [Link] = i > t ? [Link] + [Link] : [Link]([Link] -
[Link], 0) : i > t ? ([Link] = o - [Link], [Link] < 0 &&
[Link]("negative duration computed for frag " + [Link] + ",level " + [Link] + ",
there should be some duration drift between playlist and fragment!")) : ([Link]
= [Link] - o, [Link] < 0 && [Link]("negative duration computed for frag " +
[Link] + ",level " + [Link] + ", there should be some duration drift between
playlist and fragment!"))
}

function S(e, t, i, r, s, o) {
var n = i;
if (!isNaN([Link])) {
var a = [Link]([Link] - i);
isNaN([Link]) ? [Link] = a : [Link] = [Link](a,
[Link]), n = [Link](i, [Link]), i = [Link](i, [Link]), r =
[Link](r, [Link]), s = [Link](s, [Link]), o = [Link](o, [Link])
}
var l = i - [Link];
[Link] = [Link] = i, [Link] = n, [Link] = r, [Link] =
s, [Link] = o, [Link] = r - i;
var d = [Link];
if (!e || d < [Link] || d > [Link]) return 0;
var h = void 0,
c = void 0,
u = void 0;
for (h = d - [Link], c = [Link], c[h] = t, u = h; u > 0; u--)
T(c, u, u - 1);
for (u = h; u < [Link] - 1; u++) T(c, u, u + 1);
return [Link] = !0, l
}

function L(e, t) {
var i = [Link]([Link], [Link]) - [Link],
r = [Link]([Link], [Link]) - [Link],
s = [Link] - [Link],
o = [Link],
n = [Link],
a = 0,
l = void 0;
if ([Link] && [Link] && ([Link] = [Link]),
r < i) return void([Link] = !1);
for (var d = i; d <= r; d++) {
var h = o[s + d],
c = n[d];
c && h && (a = [Link] - [Link], isNaN([Link]) || ([Link] =
[Link] = [Link], [Link] = [Link], [Link] = [Link],
[Link] = [Link], [Link] = [Link], l = c))
}
if (a)
for ([Link]("discontinuity sliding from playlist, take drift into
account"), d = 0; d < [Link]; d++) n[d].cc += a;
if (l) S(t, l, [Link], [Link], [Link], [Link]);
else if (s >= 0 && s < [Link]) {
var u = o[s].start;
for (d = 0; d < [Link]; d++) n[d].start += u
}
[Link] = [Link]
}

function A(e, t) {
for (var i = null, r = 0; r < [Link]; r += 1) {
var s = e[r];
if (s && [Link] === t) {
i = s;
break
}
}
return i
}

function R(e, t) {
return [Link](e, function(e) {
return [Link] < t ? 1 : [Link] > t ? -1 : 0
})
}

function x(e, t, i) {
var r = !1;
return t && [Link] && i && ([Link] > [Link] || e && [Link] <
[Link]) && (r = !0), r
}

function C(e, t) {
var i = [Link],
r = [Link];
if (![Link] || ![Link]) return void [Link]("No fragments to
align");
var s = A(i, r[0].cc);
return !s || s && ![Link] ? void [Link]("No frag in previous
level to align on") : s
}

function P(e, t) {
[Link](function(t) {
if (t) {
var i = [Link] + e;
[Link] = [Link] = i, [Link] = i + [Link]
}
}), [Link] = !0
}

function D(e, t, i) {
if (x(e, t, i)) {
var r = C([Link], i);
r && ([Link]("Adjusting PTS using last level due to CC increase
within current level"), P([Link], i))
}
if (!1 === [Link] && t && [Link] && [Link] &&
[Link]) {
var s = [Link],
o = [Link],
n = (o - s) / 1e3 + [Link][0].start;
isNaN(n) || ([Link]("adjusting PTS using programDateTime delta,
sliding:" + [Link](3)), P(n, i))
}
}

function I(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function O(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function M(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function F(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function N(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function B(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function U(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function G(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function H(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function V(e, t) {
var i = null;
try {
i = new [Link]("addtrack")
} catch (r) {
i = [Link]("Event"), [Link]("addtrack", !1, !1)
}
[Link] = e, [Link](i)
}

function j(e) {
if (e && [Link])
for (; [Link] > 0;) [Link]([Link][0])
}

function K(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function q(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function W(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function Y() {
var e = b(),
t = [Link] || [Link],
i = e && "function" == typeof [Link] &&
[Link]('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),
r = !t || [Link] && "function" == typeof
[Link] && "function" == typeof [Link];
return !!i && !!r
}

function z(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function X(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Q(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function J(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function $(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function Z(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function ee(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function te(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function ie(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function re(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function se(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function oe(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function ne(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function ae(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function le(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function de(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function he(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function ce(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function ue(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function pe(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function fe(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function ve() {
[Link] = window, [Link] = "INITIAL", [Link] = "",
[Link] = new wi, [Link] = []
}

function ge(e) {
function t(e, t, i, r) {
return 3600 * (0 | e) + 60 * (0 | t) + (0 | i) + (0 | r) / 1e3
}
var i = [Link](/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);
return i ? i[3] ? t(i[1], i[2], i[3].replace(":", ""), i[4]) : i[1] >
59 ? t(i[1], i[2], 0, i[4]) : t(0, i[1], i[2], i[4]) : null
}

function ye() {
[Link] = [Link](null)
}

function me(e, t, i, r) {
var s = r ? [Link](r) : [e];
for (var o in s)
if ("string" == typeof s[o]) {
var n = s[o].split(i);
if (2 === [Link]) {
var a = n[0],
l = n[1];
t(a, l)
}
}
}

function be(e, t, i) {
function r() {
var t = ge(e);
if (null === t) throw new Error("Malformed timestamp: " + o);
return e = [Link](/^[^\sa-zA-Z-]+/, ""), t
}

function s() {
e = [Link](/^\s+/, "")
}
var o = e;
if (s(), [Link] = r(), s(), "--\x3e" !== [Link](0, 3)) throw new
Error("Malformed time stamp (time stamps must be separated by '--\x3e'): " + o);
e = [Link](3), s(), [Link] = r(), s(),
function(e, t) {
var r = new ye;
me(e, function(e, t) {
switch (e) {
case "region":
for (var s = [Link] - 1; s >= 0; s--)
if (i[s].id === t) {
[Link](e, i[s].region);
break
}
break;
case "vertical":
[Link](e, t, ["rl", "lr"]);
break;
case "line":
var o = [Link](","),
n = o[0];
[Link](e, n), [Link](e, n) &&
[Link]("snapToLines", !1), [Link](e, n, ["auto"]), 2 === [Link] &&
[Link]("lineAlign", o[1], ["start", Ti, "end"]);
break;
case "position":
o = [Link](","), [Link](e, o[0]), 2 ===
[Link] && [Link]("positionAlign", o[1], ["start", Ti, "end", "line-left", "line-
right", "auto"]);
break;
case "size":
[Link](e, t);
break;
case "align":
[Link](e, t, ["start", Ti, "end", "left", "right"])
}
}, /:/, /\s/), [Link] = [Link]("region", null), [Link] =
[Link]("vertical", "");
var s = [Link]("line", "auto");
"auto" === s && -1 === [Link] && (s = -1), [Link] = s,
[Link] = [Link]("lineAlign", "start"), [Link] = [Link]("snapToLines", !
0), [Link] = [Link]("size", 100), [Link] = [Link]("align", Ti);
var o = [Link]("position", "auto");
"auto" === o && 50 === [Link] && (o = "start" === [Link]
|| "left" === [Link] ? 0 : "end" === [Link] || "right" === [Link] ? 100 : 50),
[Link] = o
}(e, t)
}

function _e(e) {
return [Link](/<br(?: \/)?>/gi, "\n")
}

function Ee(e, t, i, r) {
for (var s = void 0, o = void 0, n = void 0, a = void 0, l = void 0, d
= [Link] || [Link], h = 0; h < [Link]; h++)
if (s = [Link][h], n = !0, a = 0, l = "", ![Link]()) {
for (var c = 0; c < [Link]; c++)
[Link][c].[Link](/\s/) && n ? a++ : (l += [Link][c].uchar, n = !1);
[Link] = t, t === i && (i += 1e-4), o = new d(t, i,
_e([Link]())), a >= 16 ? a-- : a++, [Link](/Firefox\//) ? [Link]
= h + 1 : [Link] = h > 7 ? h - 2 : h + 1, [Link] = "left", [Link] =
[Link](0, [Link](100, a / 32 * 100 + ([Link](/Firefox\//) ?
50 : 0))), [Link](o)
}
}

function we(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function ke(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Te(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Se(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function Le(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function Ae(e, t) {
return e && [Link] === [Link] && !(e.textTrack1 || e.textTrack2)
}

function Re(e, t, i, r) {
return [Link](t, r) - [Link](e, i)
}

function xe(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Ce(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function Pe(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function De(e) {
for (var t = [], i = 0; i < [Link]; i++) "subtitles" === e[i].kind &&
[Link](e[i]);
return t
}

function Ie(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Oe(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function Me(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function Fe(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}

function Ne(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised -
super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}

function Be(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super
expression must either be null or a function, not " + typeof t);
[Link] = [Link](t && [Link], {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && ([Link] ? [Link](e, t) :
e.__proto__ = t)
}

function Ue(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a
function")
}
[Link](t, "__esModule", {
value: !0
});
var Ge = {};
i.d(Ge, "newCue", function() {
return Ee
});
var He = i(3),
Ve = i.n(He),
je = i(2),
Ke = i(1),
qe = i(0),
We = "function" == typeof Symbol && "symbol" == typeof
[Link] ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && [Link] === Symbol
&& e !== [Link] ? "symbol" : typeof e
},
Ye = new Set(["hlsEventGeneric", "hlsHandlerDestroying",
"hlsHandlerDestroyed"]),
ze = function() {
function e(t) {
r(this, e), [Link] = t, [Link] =
[Link](this);
for (var i = [Link], s = Array(i > 1 ? i - 1 : 0), o
= 1; o < i; o++) s[o - 1] = arguments[o];
[Link] = s, [Link] = !0,
[Link]()
}
return [Link] = function() {
[Link](), [Link](),
[Link]()
}, [Link] = function() {},
[Link] = function() {}, [Link] =
function() {
return "object" === We([Link]) &&
[Link] && "function" == typeof [Link]
}, [Link] = function() {
[Link]() && [Link](function(e)
{
if ([Link](e)) throw new Error("Forbidden event-name: " +
e);
[Link](e, [Link])
}, this)
}, [Link] = function() {
[Link]() && [Link](function(e)
{
[Link](e, [Link])
}, this)
}, [Link] = function(e, t) {
[Link](e, t)
}, [Link] = function(e, t) {
var i = function(e, t) {
var i = "on" + [Link]("hls", "");
if ("function" != typeof this[i]) throw new Error("Event "
+ e + " has no generic handler in this " + [Link] + " class (tried "
+ i + ")");
return this[i].bind(this, t)
};
try {
[Link](this, e, t).call()
} catch (r) {
[Link]("An internal error happened while handling event
" + e + '. Error message: "' + [Link] + '". Here is a stacktrace:', r),
[Link]([Link], {
type: je.b.OTHER_ERROR,
details: je.a.INTERNAL_EXCEPTION,
fatal: !1,
event: e,
err: r
})
}
}, e
}(),
Xe = ze,
Qe = i(7),
Je = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
$e = function() {
function e() {
s(this, e), [Link] = null, [Link] = null, [Link] =
null, this._uri = null
}
return Je(e, [{
key: "uri",
get: function() {
return !this._uri && [Link] && (this._uri =
[Link]([Link], [Link], {
alwaysNormalize: !0
})), this._uri
}
}]), e
}(),
Ze = $e,
et = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
tt = function() {
function e() {
var t;
o(this, e), this._url = null, this._byteRange = null,
this._decryptdata = null, [Link] = [], this._elementaryStreams = (t = {},
t[[Link]] = !1, t[[Link]] = !1, t)
}
return [Link] = function(e) {
this._elementaryStreams[e] = !0
}, [Link] = function(e) {
return !0 === this._elementaryStreams[e]
}, [Link] = function(e) {
for (var t = new Uint8Array(16), i = 12; i < 16; i++) t[i] = e
>> 8 * (15 - i) & 255;
return t
}, [Link] = function(e, t) {
var i = e;
return e && [Link] && [Link] && ![Link] && (i = new Ze, [Link]
= [Link], [Link] = [Link], [Link] = [Link], [Link] =
[Link](t)), i
}, et(e, [{
key: "url",
get: function() {
return !this._url && [Link] && (this._url =
[Link]([Link], [Link], {
alwaysNormalize: !0
})), this._url
},
set: function(e) {
this._url = e
}
}, {
key: "programDateTime",
get: function() {
return !this._programDateTime && [Link] &&
(this._programDateTime = new Date([Link]([Link]))),
this._programDateTime
}
}, {
key: "byteRange",
get: function() {
if (!this._byteRange && ![Link]) return [];
if (this._byteRange) return this._byteRange;
var e = [];
if ([Link]) {
var t = [Link]("@", 2);
if (1 === [Link]) {
var i = [Link];
e[0] = i || 0
} else e[0] = parseInt(t[1]);
e[1] = parseInt(t[0]) + e[0], this._byteRange = e
}
return e
}
}, {
key: "byteRangeStartOffset",
get: function() {
return [Link][0]
}
}, {
key: "byteRangeEndOffset",
get: function() {
return [Link][1]
}
}, {
key: "decryptdata",
get: function() {
return this._decryptdata || (this._decryptdata =
[Link]([Link], [Link])), this._decryptdata
}
}], [{
key: "ElementaryStreamTypes",
get: function() {
return {
AUDIO: "audio",
VIDEO: "video"
}
}
}]), e
}(),
it = tt,
rt = /^(\d+)x(\d+)$/,
st = /\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,
ot = function() {
function e(t) {
n(this, e), "string" == typeof t && (t = [Link](t));
for (var i in t) [Link](i) && (this[i] = t[i])
}
return [Link] = function(e) {
var t = parseInt(this[e], 10);
return t > Number.MAX_SAFE_INTEGER ? Infinity : t
}, [Link] = function(e) {
if (this[e]) {
var t = (this[e] || "0x").slice(2);
t = (1 & [Link] ? "0" : "") + t;
for (var i = new Uint8Array([Link] / 2), r = 0; r <
[Link] / 2; r++) i[r] = parseInt([Link](2 * r, 2 * r + 2), 16);
return i
}
return null
}, [Link] = function(e) {
var t = parseInt(this[e], 16);
return t > Number.MAX_SAFE_INTEGER ? Infinity : t
}, [Link] = function(e) {
return parseFloat(this[e])
}, [Link] = function(e) {
return this[e]
}, [Link] = function(e) {
var t = [Link](this[e]);
return null === t ? undefined : {
width: parseInt(t[1], 10),
height: parseInt(t[2], 10)
}
}, [Link] = function(e) {
var t = void 0,
i = {};
for ([Link] = 0; null !== (t = [Link](e));) {
var r = t[2];
0 === [Link]('"') && [Link]('"') === [Link] - 1
&& (r = [Link](1, -1)), i[t[1]] = r
}
return i
}, e
}(),
nt = ot,
at = {
audio: {
a3ds: !0,
"ac-3": !0,
"ac-4": !0,
alac: !0,
alaw: !0,
dra1: !0,
"dts+": !0,
"dts-": !0,
dtsc: !0,
dtse: !0,
dtsh: !0,
"ec-3": !0,
enca: !0,
g719: !0,
g726: !0,
m4ae: !0,
mha1: !0,
mha2: !0,
mhm1: !0,
mhm2: !0,
mlpa: !0,
mp4a: !0,
"raw ": !0,
Opus: !0,
samr: !0,
sawb: !0,
sawp: !0,
sevc: !0,
sqcp: !0,
ssmv: !0,
twos: !0,
ulaw: !0
},
video: {
avc1: !0,
avc2: !0,
avc3: !0,
avc4: !0,
avcp: !0,
drac: !0,
dvav: !0,
dvhe: !0,
encv: !0,
hev1: !0,
hvc1: !0,
mjp2: !0,
mp4v: !0,
mvc1: !0,
mvc2: !0,
mvc3: !0,
mvc4: !0,
resv: !0,
rv60: !0,
s263: !0,
svc1: !0,
svc2: !0,
"vc-1": !0,
vp08: !0,
vp09: !0
}
},
lt = /#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,
dt = /#EXT-X-MEDIA:(.*)/g,
ht = new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source, /|
(?!#)(\S+)/.source, /|#EXT-X-BYTERANGE:*(.+)/.source, /|#EXT-X-PROGRAM-DATE-TIME:(.
+)/.source, /|#.*/.source].join(""), "g"),
ct = /(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-
(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.
+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-
SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-
(MAP):(.+))|(?:(#)(.*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,
ut = function() {
function e() {
d(this, e)
}
return [Link] = function(e, t) {
if (!e) return null;
for (var i = null, r = 0; r < [Link]; r++) {
var s = e[r];
[Link] === t && (i = s)
}
return i
}, e.convertAVC1ToAVCOTI = function(e) {
var t = void 0,
i = [Link](".");
return [Link] > 2 ? (t = [Link]() + ".", t +=
parseInt([Link]()).toString(16), t += ("000" +
parseInt([Link]()).toString(16)).substr(-4)) : t = e, t
}, [Link] = function(e, t) {
return [Link](t, e, {
alwaysNormalize: !0
})
}, [Link] = function(t, i) {
var r = [],
s = void 0;
for ([Link] = 0; null != (s = [Link](t));) {
var o = {},
n = [Link] = new nt(s[1]);
[Link] = [Link](s[2], i);
var l = [Link]("RESOLUTION");
l && ([Link] = [Link], [Link] = [Link]), [Link] =
[Link]("AVERAGE-BANDWIDTH") || [Link]("BANDWIDTH"), [Link] =
[Link],
function(e, t) {
["video", "audio"].forEach(function(i) {
var r = [Link](function(e) {
return a(e, i)
});
if ([Link]) {
var s = [Link](function(e) {
return 0 === [Link]("avc1", 0)
|| 0 === [Link]("mp4a", 0)
});
t[i + "Codec"] = [Link] > 0 ? s[0] :
r[0], e = [Link](function(e) {
return -1 === [Link](e)
})
}
}), [Link] = e
}([].concat(([Link] || "").split(/[ ,]+/)), o),
[Link] && -1 !== [Link]("avc1") && ([Link] =
e.convertAVC1ToAVCOTI([Link])), [Link](o)
}
return r
}, [Link] = function(t, i, r) {
var s = [Link] > 3 && arguments[3] !== undefined ?
arguments[3] : [],
o = void 0,
n = [],
a = 0;
for ([Link] = 0; null !== (o = [Link](t));) {
var l = {},
d = new nt(o[1]);
if ([Link] === r) {
if ([Link] = d["GROUP-ID"], [Link] = [Link], [Link]
= r, l["default"] = "YES" === [Link], [Link] = "YES" === [Link],
[Link] = "YES" === [Link], [Link] && ([Link] = [Link]([Link], i)), [Link] =
[Link], [Link] || ([Link] = [Link]), [Link]) {
var h = [Link](s, [Link]);
[Link] = h ? [Link] : s[0].codec
}
[Link] = a++, [Link](l)
}
}
return n
}, [Link] = function(e, t, i, r) {
var s = 0,
o = 0,
n = {
type: null,
version: null,
url: t,
fragments: [],
live: !0,
startSN: 0
},
a = new Ze,
l = 0,
d = null,
h = new it,
c = void 0,
u = void 0;
for ([Link] = 0; null !== (c = [Link](e));) {
var p = c[1];
if (p) {
[Link] = parseFloat(p);
var f = (" " + c[2]).slice(1);
[Link] = f || null, [Link](f ? ["INF", p, f] :
["INF", p])
} else if (c[3]) {
if (!isNaN([Link])) {
var v = s++;
[Link] = r, [Link] = o, [Link] = a, [Link] = v,
[Link] = i, [Link] = l, [Link] = t, [Link] = (" " + c[3]).slice(1),
[Link] && (d ? [Link] ? [Link] =
[Link]([Link]) : [Link] = [Link] + 1e3 * [Link] : [Link] =
[Link]([Link]), [Link] = [Link] + 1e3 * [Link]),
[Link](h), d = h, o += [Link], h = new it
}
} else if (c[4]) {
if ([Link] = (" " + c[4]).slice(1), d) {
var g = [Link];
g && ([Link] = g)
}
} else if (c[5]) [Link] = (" " +
c[5]).slice(1), [Link](["PROGRAM-DATE-TIME", [Link]]),
[Link] === undefined && ([Link] = new Date(new
Date([Link](c[5])) - 1e3 * o));
else {
for (c = c[0].match(ct), u = 1; u < [Link] && c[u]
=== undefined; u++);
var y = (" " + c[u + 1]).slice(1),
m = (" " + c[u + 2]).slice(1);
switch (c[u]) {
case "#":
[Link](m ? [y, m] : [y]);
break;
case "PLAYLIST-TYPE":
[Link] = [Link]();
break;
case "MEDIA-SEQUENCE":
s = [Link] = parseInt(y);
break;
case "TARGETDURATION":
[Link] = parseFloat(y);
break;
case "VERSION":
[Link] = parseInt(y);
break;
case "EXTM3U":
break;
case "ENDLIST":
[Link] = !1;
break;
case "DIS":
l++, [Link](["DIS"]);
break;
case "DISCONTINUITY-SEQ":
l = parseInt(y);
break;
case "KEY":
var b = y,
_ = new nt(b),
E = _.enumeratedString("METHOD"),
w = _.URI,
k = _.hexadecimalInteger("IV");
E && (a = new Ze, w && ["AES-128", "SAMPLE-
AES", "SAMPLE-AES-CENC"].indexOf(E) >= 0 && ([Link] = E, [Link] = t, [Link]
= w, [Link] = null, [Link] = k));
break;
case "START":
var T = y,
S = new nt(T),
L = [Link]("TIME-OFFSET");
isNaN(L) || ([Link] = L);
break;
case "MAP":
var A = new nt(y);
[Link] = [Link], [Link] = [Link],
[Link] = t, [Link] = i, [Link] = r, [Link] = "initSegment", [Link] = h, h
= new it;
break;
default:
[Link]("line parsed but not handled: " + c)
}
}
}
return h = d, h && ![Link] && ([Link](), o -=
[Link]), [Link] = o, [Link] = o / [Link],
[Link] = s - 1, [Link] = [Link][0] ? [Link][0].cc : 0, [Link] = l, !
[Link] && [Link] && [Link](function(e) {
return [Link](".mp4")
}) && ([Link]("MP4 fragments found but no init segment
(probably no MAP, incomplete M3U8), trying to fetch SIDX"), h = new it, [Link] =
[Link][0].relurl, [Link] = t, [Link] = i, [Link] = r, [Link] =
"initSegment", [Link] = h, [Link] = !0), n
}, e
}(),
pt = ut,
ft = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
vt = {
MANIFEST: "manifest",
LEVEL: "level",
AUDIO_TRACK: "audioTrack",
SUBTITLE_TRACK: "subtitleTrack"
},
gt = {
MAIN: "main",
AUDIO: "audio",
SUBTITLE: "subtitle"
},
yt = function(e) {
function t(i) {
h(this, t);
var r = c(this, [Link](this, i, Ke.a.MANIFEST_LOADING,
Ke.a.LEVEL_LOADING, Ke.a.AUDIO_TRACK_LOADING, Ke.a.SUBTITLE_TRACK_LOADING));
return [Link] = {}, r
}
return u(t, e), [Link] = function(e) {
return e !== vt.AUDIO_TRACK && e !== vt.SUBTITLE_TRACK
}, [Link] = function(e) {
switch ([Link]) {
case vt.AUDIO_TRACK:
return [Link];
case vt.SUBTITLE_TRACK:
return [Link];
default:
return [Link]
}
}, [Link] = function(e, t) {
var i = [Link];
return i !== undefined && 0 !== [Link]("data:") || (i =
[Link]), i
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link],
s = i || r,
o = new s(t);
return [Link] = o, [Link][[Link]] = o, o
}, [Link] = function(e) {
return [Link][[Link]]
}, [Link] = function(e) {
[Link][e] && delete [Link][e]
}, [Link] = function() {
for (var e in [Link]) {
var t = [Link][e];
t && [Link](), [Link](e)
}
}, [Link] = function() {
[Link](), [Link](this)
}, [Link] = function(e) {
[Link]([Link], {
type: [Link]
})
}, [Link] = function(e) {
[Link]([Link], {
type: [Link],
level: [Link],
id: [Link]
})
}, [Link] = function(e) {
[Link]([Link], {
type: vt.AUDIO_TRACK,
id: [Link]
})
}, [Link] = function(e) {
[Link]([Link], {
type: vt.SUBTITLE_TRACK,
id: [Link]
})
}, [Link] = function(e, t) {
var i = [Link],
r = [Link](t);
if (r) {
var s = [Link];
if (s && [Link] === e) return [Link]("playlist request
ongoing"), !1;
[Link]("aborting previous loader for type: " + [Link]),
[Link]()
}
var o = void 0,
n = void 0,
a = void 0,
l = void 0;
switch ([Link]) {
case [Link]:
o = [Link], n =
[Link], a = [Link], l =
[Link];
break;
case [Link]:
o = 0, n = [Link];
break;
default:
o = [Link], n = [Link],
a = [Link], l = [Link], [Link]("Playlist
loader for " + [Link] + " " + ([Link] || [Link]))
}
r = [Link](t), [Link] = e, [Link] =
[Link] || "";
var d = void 0,
h = void 0;
return d = {
timeout: n,
maxRetry: o,
retryDelay: a,
maxRetryDelay: l
}, h = {
onSuccess: [Link](this),
onError: [Link](this),
onTimeout: [Link](this)
}, [Link](t, d, h), !0
}, [Link] = function(e, t, i) {
var r = [Link] > 3 && arguments[3] !== undefined ?
arguments[3] : null;
if ([Link]) return this._handleSidxRequest(e, i), void
this._handlePlaylistLoaded(e, t, i, r);
[Link]([Link]);
var s = [Link];
if ([Link] = [Link](), 0 !== [Link]("#EXTM3U"))
return void this._handleManifestParsingError(e, i, "no EXTM3U delimiter", r);
[Link]("#EXTINF:") > 0 || [Link]("#EXT-X-
TARGETDURATION:") > 0 ? this._handleTrackOrLevelPlaylist(e, t, i, r) :
this._handleMasterPlaylist(e, t, i, r)
}, [Link] = function(e, t) {
var i = [Link] > 2 && arguments[2] !== undefined ?
arguments[2] : null;
this._handleNetworkError(t, i)
}, [Link] = function(e, t) {
var i = [Link] > 2 && arguments[2] !== undefined ?
arguments[2] : null;
this._handleNetworkError(t, i, !0)
}, [Link]._handleMasterPlaylist = function(e, i, r, s) {
var o = [Link],
n = [Link],
a = [Link](e, r),
l = [Link](n, a);
if (![Link]) return void this._handleManifestParsingError(e,
r, "no level found in manifest", s);
var d = [Link](function(e) {
return {
id: [Link],
codec: [Link]
}
}),
h = [Link](n, a, "AUDIO", d),
c = [Link](n, a, "SUBTITLES");
if ([Link]) {
var u = !1;
[Link](function(e) {
[Link] || (u = !0)
}), !1 === u && l[0].audioCodec && !l[0].[Link] &&
([Link]("audio codec signaled in quality level, but no embedded audio track
signaled, create one"), [Link]({
type: "main",
name: "main"
}))
}
[Link](Ke.a.MANIFEST_LOADED, {
levels: l,
audioTracks: h,
subtitles: c,
url: a,
stats: i,
networkDetails: s
})
}, [Link]._handleTrackOrLevelPlaylist = function(e, i, r, s) {
var o = [Link],
n = [Link],
a = [Link],
l = [Link],
d = [Link](e, r),
h = isNaN(a) ? isNaN(n) ? 0 : n : a,
c = [Link](r),
u = [Link]([Link], d, h, c);
if ([Link] = [Link], l === [Link]) {
var p = {
url: d,
details: u
};
[Link](Ke.a.MANIFEST_LOADED, {
levels: [p],
audioTracks: [],
url: d,
stats: i,
networkDetails: s
})
}
if ([Link] = [Link](), [Link]) {
var f = [Link];
return void [Link](f, {
isSidxRequest: !0,
type: l,
level: a,
levelDetails: u,
id: n,
rangeStart: 0,
rangeEnd: 2048,
responseType: "arraybuffer"
})
}
[Link] = u, this._handlePlaylistLoaded(e, i, r, s)
}, [Link]._handleSidxRequest = function(e, t) {
var i = [Link](new Uint8Array([Link]));
[Link](function(e, i) {
var r = [Link],
s = [Link][i];
0 === [Link] && ([Link] = String(1 +
[Link] - [Link]) + "@" + String([Link]))
}), [Link] =
String([Link]) + "@0"
}, [Link]._handleManifestParsingError = function(e, t, i, r) {
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: je.a.MANIFEST_PARSING_ERROR,
fatal: !0,
url: [Link],
reason: i,
networkDetails: r
})
}, [Link]._handleNetworkError = function(e, t) {
var i = [Link] > 2 && arguments[2] !== undefined &&
arguments[2],
r = void 0,
s = void 0,
o = [Link](e);
switch ([Link]) {
case [Link]:
r = i ? je.a.MANIFEST_LOAD_TIMEOUT :
je.a.MANIFEST_LOAD_ERROR, s = !0;
break;
case [Link]:
r = i ? je.a.LEVEL_LOAD_TIMEOUT :
je.a.LEVEL_LOAD_ERROR, s = !1;
break;
case vt.AUDIO_TRACK:
r = i ? je.a.AUDIO_TRACK_LOAD_TIMEOUT :
je.a.AUDIO_TRACK_LOAD_ERROR, s = !1;
break;
default:
s = !1
}
o && ([Link](), [Link]([Link])),
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: r,
fatal: s,
url: [Link],
loader: o,
context: e,
networkDetails: t
})
}, [Link]._handlePlaylistLoaded = function(e, i, r, s) {
var o = [Link],
n = [Link],
a = [Link],
l = [Link];
if (![Link]) return void
this._handleManifestParsingError(e, r, "invalid target duration", s);
if ([Link]([Link]))
[Link](Ke.a.LEVEL_LOADED, {
details: l,
level: n || 0,
id: a || 0,
stats: i,
networkDetails: s
});
else switch (o) {
case vt.AUDIO_TRACK:
[Link](Ke.a.AUDIO_TRACK_LOADED, {
details: l,
id: a,
stats: i,
networkDetails: s
});
break;
case vt.SUBTITLE_TRACK:
[Link](Ke.a.SUBTITLE_TRACK_LOADED, {
details: l,
id: a,
stats: i,
networkDetails: s
})
}
}, ft(t, null, [{
key: "ContextType",
get: function() {
return vt
}
}, {
key: "LevelType",
get: function() {
return gt
}
}]), t
}(Xe),
mt = yt,
bt = function(e) {
function t(i) {
p(this, t);
var r = f(this, [Link](this, i, Ke.a.FRAG_LOADING));
return [Link] = {}, r
}
return v(t, e), [Link] = function() {
var t = [Link];
for (var i in t) {
var r = t[i];
r && [Link]()
}
[Link] = {}, [Link](this)
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link],
s = [Link],
o = [Link],
n = [Link];
[Link] = 0;
var a = r[i];
a && ([Link]("abort previous fragment loader for type: " +
i), [Link]()), a = r[i] = [Link] = [Link] ? new o(s) : new n(s);
var l = void 0,
d = void 0,
h = void 0;
l = {
url: [Link],
frag: t,
responseType: "arraybuffer",
progressData: !1
};
var c = [Link],
u = [Link];
isNaN(c) || isNaN(u) || ([Link] = c, [Link] = u), d =
{
timeout: [Link],
maxRetry: 0,
retryDelay: 0,
maxRetryDelay: [Link]
}, h = {
onSuccess: [Link](this),
onError: [Link](this),
onTimeout: [Link](this),
onProgress: [Link](this)
}, [Link](l, d, h)
}, [Link] = function(e, t, i) {
var r = [Link] > 3 && arguments[3] !== undefined ?
arguments[3] : null,
s = [Link],
o = [Link];
[Link] = undefined, [Link][[Link]] = undefined,
[Link](Ke.a.FRAG_LOADED, {
payload: s,
frag: o,
stats: t,
networkDetails: r
})
}, [Link] = function(e, t) {
var i = [Link] > 2 && arguments[2] !== undefined ?
arguments[2] : null,
r = [Link];
r && [Link](), [Link][[Link]] = undefined,
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: je.a.FRAG_LOAD_ERROR,
fatal: !1,
frag: [Link],
response: e,
networkDetails: i
})
}, [Link] = function(e, t) {
var i = [Link] > 2 && arguments[2] !== undefined ?
arguments[2] : null,
r = [Link];
r && [Link](), [Link][[Link]] = undefined,
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: je.a.FRAG_LOAD_TIMEOUT,
fatal: !1,
frag: [Link],
networkDetails: i
})
}, [Link] = function(e, t, i) {
var r = [Link] > 3 && arguments[3] !== undefined ?
arguments[3] : null,
s = [Link];
[Link] = [Link], [Link](Ke.a.FRAG_LOAD_PROGRESS,
{
frag: s,
stats: e,
networkDetails: r
})
}, t
}(Xe),
_t = bt,
Et = function(e) {
function t(i) {
g(this, t);
var r = y(this, [Link](this, i, Ke.a.KEY_LOADING));
return [Link] = {}, [Link] = null, [Link] =
null, r
}
return m(t, e), [Link] = function() {
for (var e in [Link]) {
var t = [Link][e];
t && [Link]()
}
[Link] = {}, [Link](this)
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link][i],
s = [Link],
o = [Link];
if (o !== [Link] || null === [Link]) {
var n = [Link];
r && ([Link]("abort previous key loader for type:" + i),
[Link]()), [Link] = [Link][i] = new [Link](n), [Link] = o,
[Link] = null;
var a = void 0,
l = void 0,
d = void 0;
a = {
url: o,
frag: t,
responseType: "arraybuffer"
}, l = {
timeout: [Link],
maxRetry: [Link],
retryDelay: [Link],
maxRetryDelay: [Link]
}, d = {
onSuccess: [Link](this),
onError: [Link](this),
onTimeout: [Link](this)
}, [Link](a, l, d)
} else [Link] && ([Link] = [Link],
[Link](Ke.a.KEY_LOADED, {
frag: t
}))
}, [Link] = function(e, t, i) {
var r = [Link];
[Link] = [Link] = new Uint8Array([Link]),
[Link] = undefined, [Link][[Link]] = undefined,
[Link](Ke.a.KEY_LOADED, {
frag: r
})
}, [Link] = function(e, t) {
var i = [Link],
r = [Link];
r && [Link](), [Link][[Link]] = undefined,
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: je.a.KEY_LOAD_ERROR,
fatal: !1,
frag: i,
response: e
})
}, [Link] = function(e, t) {
var i = [Link],
r = [Link];
r && [Link](), [Link][[Link]] = undefined,
[Link]([Link], {
type: je.b.NETWORK_ERROR,
details: je.a.KEY_LOAD_TIMEOUT,
fatal: !1,
frag: i
})
}, t
}(Xe),
wt = Et,
kt = {
search: function(e, t) {
for (var i = 0, r = [Link] - 1, s = null, o = null; i <= r;)
{
s = (i + r) / 2 | 0, o = e[s];
var n = t(o);
if (n > 0) i = s + 1;
else {
if (!(n < 0)) return o;
r = s - 1
}
}
return null
}
},
Tt = kt,
St = {
isBuffered: function(e, t) {
try {
if (e)
for (var i = [Link], r = 0; r < [Link]; r++)
if (t >= [Link](r) && t <= [Link](r)) return !0
} catch (s) {}
return !1
},
bufferInfo: function(e, t, i) {
try {
if (e) {
var r = [Link],
s = [],
o = void 0;
for (o = 0; o < [Link]; o++) [Link]({
start: [Link](o),
end: [Link](o)
});
return [Link](s, t, i)
}
} catch (n) {}
return {
len: 0,
start: t,
end: t,
nextStart: undefined
}
},
bufferedInfo: function(e, t, i) {
var r = [],
s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0;
for ([Link](function(e, t) {
var i = [Link] - [Link];
return i || [Link] - [Link]
}), l = 0; l < [Link]; l++) {
var d = [Link];
if (d) {
var h = r[d - 1].end;
e[l].start - h < i ? e[l].end > h && (r[d - 1].end =
e[l].end) : [Link](e[l])
} else [Link](e[l])
}
for (l = 0, s = 0, o = n = t; l < [Link]; l++) {
var c = r[l].start,
u = r[l].end;
if (t + i >= c && t < u) o = c, n = u, s = n - t;
else if (t + i < c) {
a = c;
break
}
}
return {
len: s,
start: o,
end: n,
nextStart: a
}
}
},
Lt =
St,
At =
i(8),
Rt =
i(6),
xt =
i.n(Rt),
Ct =
i(10),
Pt =
i.n(Ct),
Dt =
b(),
It =
function() {
function e(t, i) {
_(this, e), [Link] = t, [Link] = i;
var r = [Link] = new xt.a,
s = [Link];
[Link] = function(e) {
for (var t = [Link], i = Array(t > 1 ? t - 1 :
0), s = 1; s < t; s++) i[s - 1] = arguments[s];
[Link](r, [e, e].concat(i))
}, [Link] = function(e) {
for (var t = [Link], i = Array(t > 1 ? t - 1 :
0), s = 1; s < t; s++) i[s - 1] = arguments[s];
[Link](r, [e].concat(i))
};
var o = function(e, i) {
i = i || {}, [Link] = [Link], [Link] = [Link],
[Link](e, i)
}.bind(this);
[Link](Ke.a.FRAG_DECRYPTED, o),
[Link](Ke.a.FRAG_PARSING_INIT_SEGMENT, o), [Link](Ke.a.FRAG_PARSING_DATA, o),
[Link](Ke.a.FRAG_PARSED, o), [Link]([Link], o), [Link](Ke.a.FRAG_PARSING_METADATA,
o), [Link](Ke.a.FRAG_PARSING_USERDATA, o), [Link](Ke.a.INIT_PTS_FOUND, o);
var n = {
mp4: [Link]("video/mp4"),
mpeg: [Link]("audio/mpeg"),
mp3: [Link]('audio/mp4; codecs="mp3"')
},
a = [Link];
if ([Link] && "undefined" != typeof Worker) {
[Link]("demuxing in webworker");
var l = void 0;
try {
l = this.w = Pt()(11), [Link] =
[Link](this), [Link]("message", [Link]),
[Link] = function(e) {
[Link]([Link], {
type: je.b.OTHER_ERROR,
details: je.a.INTERNAL_EXCEPTION,
fatal: !0,
event: "demuxerWorker",
err: {
message: [Link] + " (" + [Link] +
":" + [Link] + ")"
}
})
}, [Link]({
cmd: "init",
typeSupported: n,
vendor: a,
id: i,
config: [Link](s)
})
} catch (d) {
[Link]("error while initializing DemuxerWorker,
fallback on DemuxerInline"), l && [Link]([Link]), [Link] =
new At.a(r, n, s, a), this.w = undefined
}
} else [Link] = new At.a(r, n, s, a)
}
return [Link] = function() {
var e = this.w;
if (e) [Link]("message", [Link]),
[Link](), this.w = null;
else {
var t = [Link];
t && ([Link](), [Link] = null)
}
var i = [Link];
i && ([Link](), [Link] = null)
}, [Link] = function(e, t, i, r, s, o, n, a) {
var l = this.w,
d = isNaN([Link]) ? [Link] : [Link],
h = [Link],
c = [Link],
u = !(c && [Link] === [Link]),
p = !(c && [Link] === [Link]),
f = c && [Link] === [Link] + 1,
v = !p && f;
if (u && [Link]([Link] + ":discontinuity detected"), p &&
[Link]([Link] + ":switch detected"), [Link] = s, l) [Link]({
cmd: "demux",
data: e,
decryptdata: h,
initSegment: t,
audioCodec: i,
videoCodec: r,
timeOffset: d,
discontinuity: u,
trackSwitch: p,
contiguous: v,
duration: o,
accurateTimeOffset: n,
defaultInitPTS: a
}, e instanceof ArrayBuffer ? [e] : []);
else {
var g = [Link];
g && [Link](e, h, t, i, r, d, u, p, v, o, n, a)
}
}, [Link] = function(e) {
var t = [Link],
i = [Link];
switch ([Link]) {
case "init":
[Link]([Link]);
break;
case Ke.a.FRAG_PARSING_DATA:
[Link].data1 = new Uint8Array(t.data1), t.data2 &&
([Link].data2 = new Uint8Array(t.data2));
default:
[Link] = [Link] || {}, [Link] = [Link],
[Link] = [Link], [Link]([Link], [Link])
}
}, e
}(),
Ot = It,
Mt = {
NOT_LOADED: "NOT_LOADED",
APPENDING: "APPENDING",
PARTIAL: "PARTIAL",
OK: "OK"
},
Ft = function(e) {
function t(i) {
E(this, t);
var r = w(this, [Link](this, i, Ke.a.BUFFER_APPENDED,
Ke.a.FRAG_BUFFERED, Ke.a.FRAG_LOADED));
return [Link] = .2, [Link] = [Link](null),
[Link] = [Link](null), [Link] = [Link], r
}
return k(t, e), [Link] = function() {
[Link] = null, [Link] = null, [Link] =
null, [Link](this), [Link](this)
}, [Link] = function(e, t) {
var i = [Link],
r = [Link](i).filter(function(r) {
var s = i[r];
if ([Link] !== t) return !1;
if (![Link]) return !1;
var o = [Link];
return [Link] <= e && e <= [Link]
});
if (0 === [Link]) return null;
var s = [Link]();
return i[s].body
}, [Link] = function(e, t) {
var i = this,
r = void 0,
s = void 0;
[Link]([Link]).forEach(function(o) {
var n = [Link][o];
if (!0 === [Link]) {
var a = [Link][e];
if (a) {
r = [Link];
for (var l = 0; l < [Link]; l++)
if (s = r[l], !1 ===
[Link]([Link], [Link], t)) {
[Link]([Link]);
break
}
}
}
})
}, [Link] = function(e) {
var t = this,
i = [Link](e),
r = [Link][i];
r && ([Link] = !0,
[Link]([Link]).forEach(function(i) {
if (!0 === [Link](i)) {
var s = [Link][i];
[Link][i] = [Link]([Link], [Link],
s)
}
}))
}, [Link] = function(e, t, i) {
for (var r = [], s = void 0, o = void 0, n = !1, a = 0; a <
[Link]; a++) {
if (s = [Link](a) - [Link], o = [Link](a) +
[Link], e >= s && t <= o) {
[Link]({
startPTS: [Link](e, [Link](a)),
endPTS: [Link](t, [Link](a))
});
break
}
if (e < o && t > s) [Link]({
startPTS: [Link](e, [Link](a)),
endPTS: [Link](t, [Link](a))
}), n = !0;
else if (t <= s) break
}
return {
time: r,
partial: n
}
}, [Link] = function(e) {
return [Link] + "_" + [Link] + "_" + [Link]
}, [Link] = function(e) {
var t = this,
i = void 0,
r = void 0,
s = void 0,
o = null,
n = 0;
return [Link]([Link]).forEach(function(a) {
var l = [Link][a];
[Link](l) && (r = [Link] - [Link], s
= [Link] + [Link], e >= r && e <= s && (i = [Link](e - r, s - e),
n <= i && (o = [Link], n = i)))
}), o
}, [Link] = function(e) {
var t = [Link](e),
i = [Link][t],
r = Mt.NOT_LOADED;
return i !== undefined && (r = [Link] ? !0 ===
[Link](i) ? [Link] : [Link] : [Link]), r
}, [Link] = function(e) {
return !0 === [Link] && ([Link] !== undefined && !0
=== [Link] || [Link] !== undefined && !0 ===
[Link])
}, [Link] = function(e, t, i) {
for (var r = void 0, s = void 0, o = 0; o < [Link]; o++) {
if (r = [Link](o) - [Link], s = [Link](o) +
[Link], e >= r && t <= s) return !0;
if (t <= r) return !1
}
return !1
}, [Link] = function(e) {
var t = [Link];
if (!isNaN([Link])) {
var i = [Link](t),
r = {
body: t,
range: [Link](null),
buffered: !1
};
[Link][i] = r
}
}, [Link] = function(e) {
var t = this;
[Link] = [Link],
[Link]([Link]).forEach(function(e) {
var i = [Link][e];
[Link](e, i)
})
}, [Link] = function(e) {
[Link]([Link])
}, [Link] = function(e) {
var t = [Link](e);
return [Link][t] !== undefined
}, [Link] = function(e) {
var t = [Link](e);
delete [Link][t]
}, [Link] = function() {
[Link] = [Link](null)
}, t
}(Xe),
Nt = {
toString: function(e) {
for (var t = "", i = [Link], r = 0; r < i; r++) t += "[" +
[Link](r).toFixed(3) + "," + [Link](r).toFixed(3) + "]";
return t
}
},
Bt = Nt,
Ut = function(e) {
function t(i) {
I(this, t);
for (var r = [Link], s = Array(r > 1 ? r - 1 : 0), o
= 1; o < r; o++) s[o - 1] = arguments[o];
var n = O(this, [Link](e, [this, i].concat(s)));
return n._tickInterval = null, n._tickCallCount = 0, n
}
return M(t, e), [Link] = function() {
[Link](), [Link](this)
}, [Link] = function() {
return null !== this._tickInterval
}, [Link] = function(e) {
function t(t) {
return [Link](this, arguments)
}
return [Link] = function() {
return [Link]()
}, t
}(function(e) {
return !this._tickInterval && (this._tickInterval =
setInterval([Link](this, !1), e), !0)
}), [Link] = function(e) {
function t() {
return [Link](this, arguments)
}
return [Link] = function() {
return [Link]()
}, t
}(function() {
return !!this._tickInterval &&
(clearInterval(this._tickInterval), this._tickInterval = null, !0)
}), [Link] = function() {
1 === ++this._tickCallCount && ([Link](),
this._tickCallCount > 1 && setTimeout([Link](this), 0), this._tickCallCount
= 0)
}, [Link] = function() {
throw new Error("TaskLoop is abstract and `doLoop` must be
implemented")
}, t
}(Xe),
Gt = Ut,
Ht = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
Vt = {
STOPPED: "STOPPED",
IDLE: "IDLE",
KEY_LOADING: "KEY_LOADING",
FRAG_LOADING: "FRAG_LOADING",
FRAG_LOADING_WAITING_RETRY: "FRAG_LOADING_WAITING_RETRY",
WAITING_LEVEL: "WAITING_LEVEL",
PARSING: "PARSING",
PARSED: "PARSED",
BUFFER_FLUSHING: "BUFFER_FLUSHING",
ENDED: "ENDED",
ERROR: "ERROR"
},
jt = function(e) {
function t(i, r) {
F(this, t);
var s = N(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
Ke.a.MEDIA_DETACHING, Ke.a.MANIFEST_LOADING, Ke.a.MANIFEST_PARSED,
Ke.a.LEVEL_LOADED, Ke.a.KEY_LOADED, Ke.a.FRAG_LOADED,
Ke.a.FRAG_LOAD_EMERGENCY_ABORTED, Ke.a.FRAG_PARSING_INIT_SEGMENT,
Ke.a.FRAG_PARSING_DATA, Ke.a.FRAG_PARSED, [Link], Ke.a.AUDIO_TRACK_SWITCHING,
Ke.a.AUDIO_TRACK_SWITCHED, Ke.a.BUFFER_CREATED, Ke.a.BUFFER_APPENDED,
Ke.a.BUFFER_FLUSHED));
return [Link] = r, [Link] = [Link],
[Link] = !1, s._state = [Link], s
}
return B(t, e), [Link] = function() {
[Link]()
}, [Link] = function() {
[Link] = [Link], [Link] = null
}, [Link] = function(e) {
if ([Link]) {
var t = [Link],
i = [Link];
if ([Link](), [Link](100), [Link] =
-1, [Link] = 0, ![Link]) {
var r = [Link]; - 1 === r && (r = 0,
[Link] = !0), [Link] = [Link] = r, [Link] = !1
}
t > 0 && -1 === e && ([Link]("override startPosition with
lastCurrentTime @" + [Link](3)), e = t), [Link] = [Link],
[Link] = [Link] = [Link] = e, [Link]()
} else [Link] = !0, [Link] = [Link]
}, [Link] = function() {
var e = [Link];
e && ([Link] && [Link](),
[Link](e), [Link] = null), [Link]
= null, [Link] && ([Link](), [Link] = null),
[Link](), [Link] = [Link], [Link] = !1
}, [Link] = function() {
switch ([Link]) {
case Vt.BUFFER_FLUSHING:
[Link] = 0;
break;
case [Link]:
this._doTickIdle();
break;
case Vt.WAITING_LEVEL:
var e = [Link][[Link]];
e && [Link] && ([Link] = [Link]);
break;
case Vt.FRAG_LOADING_WAITING_RETRY:
var t = [Link](),
i = [Link];
(!i || t >= i || [Link] && [Link]) &&
([Link]("mediaController: retryDate reached, switch back to IDLE state"),
[Link] = [Link]);
break;
case [Link]:
case [Link]:
case Vt.FRAG_LOADING:
case [Link]:
case [Link]:
case [Link]:
}
this._checkBuffer(), this._checkFragmentChanged()
}, [Link]._doTickIdle = function() {
var e = [Link],
t = [Link],
i = [Link];
if ([Link] !== undefined && (i || !
[Link] && [Link])) {
var r = void 0;
r = [Link] ? [Link] :
[Link];
var s = [Link],
o = [Link][s];
if (o) {
var n = [Link],
a = void 0;
a = n ? [Link](8 * [Link] / n,
[Link]) : [Link], a = [Link](a, [Link]);
var l = [Link]([Link] ?
[Link] : i, r, [Link]),
d = [Link];
if (!(d >= a)) {
[Link]("buffer length of " + [Link](3) + "
is below max of " + [Link](3) + ". checking for more payload ..."), [Link] =
[Link] = s;
var h = [Link];
if (h === undefined || !0 === [Link] &&
[Link] !== s) return void([Link] = Vt.WAITING_LEVEL);
var c = [Link];
if (![Link] && c && ![Link] && [Link] ===
[Link] && ![Link]) {
if ([Link]([Link], [Link] + [Link])
- [Link]([Link], [Link]) <= [Link](.2, [Link])) {
var u = {};
return [Link] && ([Link] = "video"),
[Link](Ke.a.BUFFER_EOS, u), void([Link] = [Link])
}
}
this._fetchPayloadOrEos(r, l, h)
}
}
}
}, [Link]._fetchPayloadOrEos = function(e, t, i) {
var r = [Link],
s = [Link],
o = [Link],
n = [Link];
if (0 !== n) {
var a = o[0].start,
l = o[n - 1].start + o[n - 1].duration,
d = [Link],
h = void 0;
if ([Link] && ![Link]) h =
[Link];
else if ([Link]) {
var c = [Link];
if (n < c) return void [Link]("Can not start
playback of a level, reason: not enough fragments " + n + " < " + c);
if (null === (h = this._ensureFragmentAtLivePoint(i, d,
a, l, r, o, n))) return
} else d < a && (h = o[0]);
h || (h = this._findFragment(a, r, n, o, d, l, i)), h &&
this._loadFragmentOrKey(h, s, i, e, d)
}
}, [Link]._ensureFragmentAtLivePoint = function(e, t, i, r, s,
o, n) {
var a = [Link],
l = [Link],
d = void 0,
h = [Link] !== undefined ?
[Link] : [Link] * [Link];
if (t < [Link](i - [Link], r - h)) {
var c = [Link] = [Link](i,
e);
[Link]("buffer end: " + [Link](3) + " is located too
far from the end of live sliding playlist, reset currentTime to : " +
[Link](3)), t = c, l && [Link] && [Link] > c && ([Link] = c),
[Link] = c
}
if ([Link] && t > r && l && [Link]) return null;
if ([Link] && ![Link]) {
if (s)
if ([Link]) d = this._findFragmentByPDT(o,
[Link] + 1);
else {
var u = [Link] + 1;
if (u >= [Link] && u <= [Link]) {
var p = o[u - [Link]];
[Link] === [Link] && (d = p, [Link]("live
playlist, switching playlist, load frag with next SN: " + [Link]))
}
d || (d = [Link](o, function(e) {
return [Link] - [Link]
})) && [Link]("live playlist, switching playlist,
load frag with same CC: " + [Link])
}
d || (d = o[[Link](n - 1, [Link](n / 2))],
[Link]("live playlist, switching playlist, unknown, load middle frag : " + [Link]))
}
return d
}, [Link]._findFragmentByPDT = function(e, t) {
if (!e || t === undefined) return null;
if (t < e[0].pdt) return null;
if (t >= e[[Link] - 1].endPdt) return null;
for (var i = 0; i < [Link]; ++i) {
var r = e[i];
if (t < [Link]) return r
}
return null
}, [Link]._findFragmentBySN = function(e, t, i, r) {
var s = [Link],
o = void 0,
n = [Link],
a = e ? t[[Link] - t[0].sn + 1] : undefined,
l = function(e) {
var t = [Link](n, [Link] + ([Link] ?
[Link] : 0));
return [Link] + [Link] - t <= i ? 1 : [Link] - t
> i && [Link] ? -1 : 0
};
return i < r && (i > r - n && (n = 0), o = a && !l(a) ? a :
[Link](t, l)), o
}, [Link]._findFragment = function(e, t, i, r, s, o, n) {
var a = [Link],
l = void 0,
d = void 0;
if (d = s < o ? [Link] ? this._findFragmentByPDT(r,
1e3 * s + ([Link] ? [Link]([Link]) : 0) - 1e3 * e) :
this._findFragmentBySN(t, r, s, o) : r[i - 1]) {
l = d;
var h = [Link] - [Link],
c = t && [Link] === [Link],
u = r[h - 1],
p = r[h + 1];
if (t && [Link] === [Link])
if (c && ![Link])
if ([Link] < [Link]) {
var f = [Link];
f && f > [Link] && [Link] && h ? (l
= u, [Link]("SN just loaded, with large PTS gap between audio and video, maybe
frag is not starting with a keyframe ? load previous one to try to overcome this"))
: (l = p, [Link]("SN just loaded, load next one: " + [Link]))
} else l = null;
else [Link] && (p && [Link] ?
([Link]("Already backtracked from fragment " + [Link] + ", will not backtrack to
fragment " + [Link] + ". Loading fragment " + [Link]), l = p) : ([Link]("Loaded
fragment with dropped frames, backtracking 1 segment to find a keyframe"),
[Link] = 0, u ? (l = u, [Link] = !0) : h && (l = null)))
}
return l
}, [Link]._loadFragmentOrKey = function(e, t, i, r, s) {
if ([Link] && null != [Link] && null ==
[Link]) [Link]("Loading key for " + [Link] + " of [" + [Link] + " ,"
+ [Link] + "],level " + t), [Link] = Vt.KEY_LOADING,
[Link](Ke.a.KEY_LOADING, {
frag: e
});
else {
[Link]("Loading " + [Link] + " of [" + [Link] + " ," +
[Link] + "],level " + t + ", currentTime:" + [Link](3) + ",bufferEnd:" +
[Link](3));
var o = [Link](e);
[Link] = e, [Link] = !0,
isNaN([Link]) || [Link] || ([Link] = [Link] + [Link]),
[Link] || o === Mt.NOT_LOADED ? ([Link] = [Link],
[Link] = [Link], [Link](Ke.a.FRAG_LOADING, {
frag: e
}), [Link] || ([Link] = new Ot([Link],
"main")), [Link] = Vt.FRAG_LOADING) : o === [Link] &&
this._reduceMaxBufferLength([Link]) && [Link](e)
}
}, [Link] = function(e) {
return [Link](e,
[Link])
}, [Link] = function(e) {
return e ? [Link]([Link] + .5) : null
}, [Link]._checkFragmentChanged = function() {
var e = void 0,
t = void 0,
i = [Link];
if (i && [Link] && !1 === [Link] && (t =
[Link], t > [Link] * [Link] && ([Link] =
t), [Link](i, t) ? e = [Link](t) : [Link](i, t + .1) &&
(e = [Link](t + .1)), e)) {
var r = e;
if (r !== [Link]) {
[Link](Ke.a.FRAG_CHANGED, {
frag: r
});
var s = [Link];
[Link] && [Link] === s ||
[Link](Ke.a.LEVEL_SWITCHED, {
level: s
}), [Link] = r
}
}
}, [Link] = function() {
if ([Link]("immediateLevelSwitch"), ![Link]) {
[Link] = !0;
var e = [Link],
t = void 0;
e ? (t = [Link], [Link]()) : t = !0,
[Link] = t
}
var i = [Link];
i && [Link] && [Link](), [Link] = null,
[Link](0, Number.POSITIVE_INFINITY)
}, [Link] = function() {
var e = [Link];
e && [Link] && ([Link] = !1,
[Link](e, [Link]) && ([Link] -= 1e-4), [Link]
|| [Link]())
}, [Link] = function() {
var e = [Link];
if (e && [Link]) {
var t = void 0,
i = void 0,
r = void 0;
if (i = [Link]([Link]), i &&
[Link] > 1 && [Link](0, [Link] - 1), [Link]) t = 0;
else {
var s = [Link],
o = [Link][s],
n = [Link];
t = n && [Link] ? [Link] *
[Link] / (1e3 * n) + 1 : 0
}
if ((r = [Link]([Link] + t)) && (r =
[Link](r))) {
var a = [Link];
a && [Link] && [Link](), [Link] =
null, [Link]([Link], Number.POSITIVE_INFINITY)
}
}
}, [Link] = function(e, t) {
[Link] = Vt.BUFFER_FLUSHING;
var i = {
startOffset: e,
endOffset: t
};
[Link] && ([Link] = "video"),
[Link](Ke.a.BUFFER_FLUSHING, i)
}, [Link] = function(e) {
var t = [Link] = [Link] = [Link];
[Link] = [Link](this),
[Link] = [Link](this), [Link] =
[Link](this), [Link]("seeking", [Link]),
[Link]("seeked", [Link]), [Link]("ended",
[Link]);
var i = [Link];
[Link] && [Link] &&
[Link]([Link])
}, [Link] = function() {
var e = [Link];
e && [Link] && ([Link]("MSE detaching and video ended, reset
startPosition"), [Link] = [Link] = 0);
var t = [Link];
t && [Link](function(e) {
[Link] && [Link](function(e) {
[Link] = undefined
})
}), e && ([Link]("seeking", [Link]),
[Link]("seeked", [Link]), [Link]("ended",
[Link]), [Link] = [Link] = [Link] = null),
[Link] = [Link] = null, [Link] = !1, [Link]()
}, [Link] = function() {
var e = [Link],
t = e ? [Link] : undefined,
i = [Link];
isNaN(t) || [Link]("media seeking to " + [Link](3));
var r = [Link] ? [Link] : e,
s = [Link](r, t, [Link]);
if ([Link] === Vt.FRAG_LOADING) {
var o = [Link];
if (0 === [Link] && o) {
var n = [Link],
a = [Link] - n,
l = [Link] + [Link] + n;
t < a || t > l ? ([Link] && ([Link]("seeking
outside of buffer while fragment load in progress, cancel fragment load"),
[Link]()), [Link] = null, [Link] = null, [Link] =
[Link]) : [Link]("seeking outside of buffer but within currently loaded fragment
range")
}
} else [Link] === [Link] && (0 === [Link] &&
([Link] = 0), [Link] = [Link]);
e && ([Link] = t), [Link] ||
([Link] = [Link] = t), [Link]()
}, [Link] = function() {
var e = [Link],
t = e ? [Link] : undefined;
isNaN(t) || [Link]("media seeked to " + [Link](3)),
[Link]()
}, [Link] = function() {
[Link]("media ended"), [Link] =
[Link] = 0
}, [Link] = function() {
[Link]("trigger BUFFER_RESET"),
[Link](Ke.a.BUFFER_RESET), [Link](),
[Link] = !1, [Link] = [Link] = 0
}, [Link] = function(e) {
var t = !1,
i = !1,
r = void 0;
[Link](function(e) {
(r = [Link]) && (-1 !== [Link]("mp4a.40.2") && (t
= !0), -1 !== [Link]("mp4a.40.5") && (i = !0))
}), [Link] = t && i, [Link] &&
[Link]("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),
[Link] = [Link], [Link] = !1;
var s = [Link];
([Link] || [Link]) &&
[Link]([Link])
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link][[Link]],
s = [Link][i],
o = [Link],
n = 0;
if ([Link]("level " + i + " loaded [" + [Link] + "," +
[Link] + "],duration:" + o), [Link]) {
var a = [Link];
a && [Link] > 0 ? (L(a, t), n =
[Link][0].start, [Link] = [Link](n, a),
[Link] && !isNaN(n) ? [Link]("live playlist sliding:" + [Link](3)) :
([Link]("live playlist - outdated PTS, unknown sliding"), D([Link], r,
t))) : ([Link]("live playlist - first load, unknown sliding"), [Link] = !1,
D([Link], r, t))
} else [Link] = !1;
if ([Link] = t, [Link] = i,
[Link](Ke.a.LEVEL_UPDATED, {
details: t,
level: i
}), !1 === [Link]) {
if (-1 === [Link] || -1 ===
[Link]) {
var l = [Link];
isNaN(l) ? [Link] ? ([Link] =
[Link](n, t), [Link]("configure startPosition to " +
[Link])) : [Link] = 0 : (l < 0 && ([Link]("negative start
time offset " + l + ", count from end of last fragment"), l = n + o + l),
[Link]("start time offset found in playlist, adjust startPosition to " + l),
[Link] = l), [Link] = [Link]
}
[Link] = [Link]
}
[Link] === Vt.WAITING_LEVEL && ([Link] = [Link]),
[Link]()
}, [Link] = function() {
[Link] === Vt.KEY_LOADING && ([Link] = [Link],
[Link]())
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if ([Link] === Vt.FRAG_LOADING && t && "main" === [Link] &&
[Link] === [Link] && [Link] === [Link]) {
var r = [Link],
s = [Link][[Link]],
o = [Link];
if ([Link]("Loaded " + [Link] + " of [" + [Link] + " ,"
+ [Link] + "],level " + [Link]), [Link] = !1, [Link] = r, !0 ===
[Link] && [Link]) [Link] = [Link],
[Link] = !1, [Link] = [Link] = [Link](),
[Link](Ke.a.FRAG_BUFFERED, {
stats: r,
frag: t,
id: "main"
}), [Link]();
else if ("initSegment" === [Link]) [Link] = [Link],
[Link] = [Link] = [Link](), [Link] = [Link],
[Link](Ke.a.FRAG_BUFFERED, {
stats: r,
frag: t,
id: "main"
}), [Link]();
else {
[Link] = [Link];
var n = [Link],
a = [Link],
l = [Link],
d = [Link] || [Link];
[Link] && ([Link]("swapping playlist
audio codec"), d === undefined && (d = [Link]), d && (d = -1 !==
[Link]("mp4a.40.5") ? "mp4a.40.2" : "mp4a.40.5")), [Link] = !0,
[Link] = !1, [Link]("Parsing " + l + " of [" + [Link] + " ," + [Link]
+ "],level " + a + ", cc " + [Link]);
var h = [Link];
h || (h = [Link] = new Ot([Link], "main"));
var c = [Link],
u = c && [Link],
p = !u && ([Link] || ![Link]),
f = [Link] ? [Link] : [];
[Link]([Link], f, d, [Link], t, n, p,
undefined)
}
}
[Link] = 0
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if (t && "main" === [Link] && [Link] === [Link] && [Link] ===
[Link] && [Link] === [Link]) {
var r = [Link],
s = void 0,
o = void 0;
if ([Link] && [Link] && delete [Link], o =
[Link]) {
var n = [Link][[Link]].audioCodec,
a = [Link]();
n && [Link] && ([Link]("swapping
playlist audio codec"), n = -1 !== [Link]("mp4a.40.5") ? "mp4a.40.2" :
"mp4a.40.5"), [Link] && 1 !== [Link] && -1 ===
[Link]("firefox") && (n = "mp4a.40.5"), -1 !== [Link]("android") &&
"audio/mpeg" !== [Link] && (n = "mp4a.40.2", [Link]("Android: force audio
codec to " + n)), [Link] = n, [Link] = [Link]
}
o = [Link], o && ([Link] =
[Link][[Link]].videoCodec, [Link] = [Link]),
[Link](Ke.a.BUFFER_CODECS, r);
for (s in r) {
o = r[s], [Link]("main track:" + s + ",container:" +
[Link] + ",codecs[level/parsed]=[" + [Link] + "/" + [Link] + "]");
var l = [Link];
l && ([Link] = !0, [Link] = !0,
[Link](Ke.a.BUFFER_APPENDING, {
type: s,
data: l,
parent: "main",
content: "initSegment"
}))
}
[Link]()
}
}, [Link] = function(e) {
var t = this,
i = [Link],
r = [Link];
if (i && "main" === [Link] && [Link] === [Link] && [Link] ===
[Link] && ("audio" !== [Link] || ![Link]) && [Link] === [Link]) {
var s = [Link][[Link]],
o = i;
if (isNaN([Link]) && ([Link] = [Link] + [Link],
[Link] = [Link] + [Link]), !0 === [Link] &&
[Link]([Link]), !0 === [Link] &&
[Link]([Link]), [Link]("Parsed " + [Link]
+ ",PTS:[" + [Link](3) + "," + [Link](3) + "],DTS:[" +
[Link](3) + "/" + [Link](3) + "],nb:" + [Link] + ",dropped:" +
([Link] || 0)), "video" === [Link])
if ([Link] = [Link], [Link])
if ([Link]) [Link]("Already backtracked
on this fragment, appending with the gap");
else {
var n = [Link];
if (!n || [Link] !== [Link]) return
[Link]("missing video frame(s), backtracking fragment"),
[Link](o), [Link] = !0, [Link] =
[Link], [Link] = [Link], [Link] = o, void [Link]();
[Link]("missing video frame(s) on first
frag, appending with gap")
}
else [Link] = !1;
var a = S([Link], o, [Link], [Link], [Link],
[Link]),
l = [Link];
[Link](Ke.a.LEVEL_PTS_UPDATED, {
details: [Link],
level: [Link],
drift: a,
type: [Link],
start: [Link],
end: [Link]
}), [e.data1, e.data2].forEach(function(i) {
i && [Link] && [Link] === [Link] && ([Link]
= !0, [Link] = !0, [Link](Ke.a.BUFFER_APPENDING, {
type: [Link],
data: i,
parent: "main",
content: "data"
}))
}), [Link]()
}
}, [Link] = function(e) {
var t = [Link],
i = [Link];
t && "main" === [Link] && [Link] === [Link] && [Link] === [Link] &&
[Link] === [Link] && ([Link] = [Link](), [Link] =
[Link], this._checkAppendedParsed())
}, [Link] = function(e) {
var t = !![Link],
i = [Link];
if (!t) {
if ([Link] !== [Link]) {
[Link]("switching on main audio, use [Link]
to schedule main fragment loading"), [Link] = [Link];
var r = [Link];
[Link] && ([Link]("switching to main audio track,
cancel main fragment load"), [Link]()), [Link] = null,
[Link] = null, [Link] && ([Link](), [Link] =
null), [Link] = [Link]
}
var s = [Link];
[Link](Ke.a.BUFFER_FLUSHING, {
startOffset: 0,
endOffset: Number.POSITIVE_INFINITY,
type: "audio"
}), [Link](Ke.a.AUDIO_TRACK_SWITCHED, {
id: i
}), [Link] = !1
}
}, [Link] = function(e) {
var t = [Link],
i = !![Link][t].url;
if (i) {
var r = [Link];
r && [Link] !== r && ([Link]("switching on
alternate audio, use [Link] to schedule main fragment loading"),
[Link] = r)
}
[Link] = i, [Link]()
}, [Link] = function(e) {
var t = [Link],
i = void 0,
r = void 0,
s = !1;
for (var o in t) {
var n = t[o];
"main" === [Link] ? (r = o, i = n, "video" === o &&
([Link] = t[o].buffer)) : s = !0
}
s && i ? ([Link]("alternate track found, use " + r +
".buffered to schedule main fragment loading"), [Link] = [Link]) :
[Link] = [Link]
}, [Link] = function(e) {
if ("main" === [Link]) {
var t = [Link];
t !== [Link] && t !== [Link] ||
([Link] = [Link] > 0, this._checkAppendedParsed())
}
}, [Link]._checkAppendedParsed = function() {
if (!([Link] !== [Link] || [Link] &&
[Link])) {
var e = [Link];
if (e) {
var t = [Link] ? [Link] :
[Link];
[Link]("main buffered : " + [Link]([Link])),
[Link] = e;
var i = [Link];
[Link] = [Link](), [Link] =
[Link](8 * [Link] / ([Link] - [Link])),
[Link](Ke.a.FRAG_BUFFERED, {
stats: i,
frag: e,
id: "main"
}), [Link] = [Link]
}
[Link]()
}
}, [Link] = function(e) {
var t = [Link] || [Link];
if (!t || "main" === [Link]) {
var i = !![Link] && [Link]([Link],
[Link]) && [Link]([Link], [Link] + .5);
switch ([Link]) {
case je.a.FRAG_LOAD_ERROR:
case je.a.FRAG_LOAD_TIMEOUT:
case je.a.KEY_LOAD_ERROR:
case je.a.KEY_LOAD_TIMEOUT:
if (![Link])
if ([Link] + 1 <=
[Link]) {
var r = [Link]([Link](2,
[Link]) * [Link],
[Link]);
[Link]("mediaController: frag loading
failed, retry in " + r + " ms"), [Link] = [Link]() + r,
[Link] || ([Link] = !1, [Link] =
[Link]), [Link]++, [Link] =
Vt.FRAG_LOADING_WAITING_RETRY
} else [Link]("mediaController: " +
[Link] + " reaches max retry, redispatch as fatal ..."), [Link] = !0,
[Link] = [Link];
break;
case je.a.LEVEL_LOAD_ERROR:
case je.a.LEVEL_LOAD_TIMEOUT:
[Link] !== [Link] && ([Link] ? ([Link] =
[Link], [Link]("streamController: " + [Link] + ",switch to " + [Link] +
" state ...")) : [Link] || [Link] !== Vt.WAITING_LEVEL || ([Link] =
[Link]));
break;
case je.a.BUFFER_FULL_ERROR:
"main" !== [Link] || [Link] !== [Link] &&
[Link] !== [Link] || (i ?
(this._reduceMaxBufferLength([Link]), [Link] = [Link]) :
([Link]("buffer full error also [Link] is not buffered, flush
everything"), [Link] = null, [Link](0,
Number.POSITIVE_INFINITY)))
}
}
}, [Link]._reduceMaxBufferLength = function(e) {
var t = [Link];
return [Link] >= e && ([Link] /= 2,
[Link]("main:reduce max buffer length to " + [Link] + "s"), !0)
}, [Link]._checkBuffer = function() {
var e = [Link],
t = [Link];
if (e && [Link]) {
var i = [Link],
r = [Link] ? [Link] : e,
s = [Link];
if (![Link] && [Link]) {
[Link] = !0;
var o = [Link] ? i : [Link];
i !== o && ([Link]("target start position not
buffered, seek to [Link](0) " + o + " from current time" + i + " "),
[Link] = o)
} else if ([Link])
[Link]();
else {
var n = [Link](e, i, [Link]),
a = !([Link] && [Link] > 1 || [Link] || 0
=== [Link]),
l = i !== [Link];
if (l) [Link] && ([Link]("playback not
stuck anymore @" + i + ", after " + [Link]([Link]() - [Link]) +
"ms"), [Link] = !1), [Link] = undefined, [Link] = 0;
else if (a) {
var d = [Link](),
h = [Link];
if ([Link]) {
var c = d - [Link],
u = [Link],
p = [Link] || 0,
f =
[Link](i);
if (null !== f)
for (var v = 0, g = 0; g <
[Link]; g++) {
var y = [Link](g);
if (i >= v && i < y) return
[Link] = [Link](y, [Link] + .1), [Link]("skipping hole,
adjusting currentTime from " + i + " to " + [Link]), [Link] =
undefined, void [Link]([Link], {
type: je.b.MEDIA_ERROR,
details:
je.a.BUFFER_SEEK_OVER_HOLE,
fatal: !1,
reason: "fragment loaded with
buffer holes, seeking from " + i + " to " + [Link],
frag: f
});
v = [Link](g)
}
if (u > .5 && c > 1e3 *
[Link])
if ([Link] ||
([Link] = !0, [Link]("playback stalling in high buffer @" + i),
[Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.BUFFER_STALLED_ERROR,
fatal: !1,
buffer: u
})), [Link] = undefined,
[Link] = ++p, p < [Link]) {
var m = [Link],
b = m + p * [Link];
[Link]("adjust currentTime from " + m
+ " to " + b), [Link] = b, [Link]([Link], {
type: je.b.MEDIA_ERROR,
details:
je.a.BUFFER_NUDGE_ON_STALL,
fatal: !1
})
} else [Link]("still stuck in high
buffer @" + i + " after " + [Link] + ", raise fatal error"),
[Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.BUFFER_STALLED_ERROR,
fatal: !0
})
} else [Link] = d, [Link] = !1
}
}
}
}, [Link] = function() {
[Link] = [Link], [Link] ||
([Link] = !1, [Link] = [Link]),
[Link]()
}, [Link] = function() {
var e = [Link] ? [Link] : [Link];

[Link]([Link],
[Link]), [Link] = [Link], [Link] = null
}, [Link] = function() {
[Link] = ![Link]
}, [Link] = function(e, t) {
var i = [Link] !== undefined ?
[Link] : [Link] *
[Link];
return e + [Link](0, [Link] - i)
}, Ht(t, [{
key: "state",
set: function(e) {
if ([Link] !== e) {
var t = [Link];
this._state = e, [Link]("main stream:" + t + "->" +
e), [Link](Ke.a.STREAM_STATE_TRANSITION, {
previousState: t,
nextState: e
})
}
},
get: function() {
return this._state
}
}, {
key: "currentLevel",
get: function() {
var e = [Link];
if (e) {
var t = [Link]([Link]);
if (t) return [Link]
}
return -1
}
}, {
key: "nextBufferedFrag",
get: function() {
var e = [Link];
return e ?
[Link]([Link]([Link])) : null
}
}, {
key: "nextLevel",
get: function() {
var e = [Link];
return e ? [Link] : -1
}
}, {
key: "liveSyncPosition",
get: function() {
return this._liveSyncPosition
},
set: function(e) {
this._liveSyncPosition = e
}
}]), t
}(Gt),
Kt = jt,
qt = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
Wt = function(e) {
function t(i) {
U(this, t);
var r = G(this, [Link](this, i, Ke.a.MANIFEST_LOADED,
Ke.a.LEVEL_LOADED, Ke.a.FRAG_LOADED, [Link]));
return [Link] = !1, [Link] = null,
[Link] = -1, [Link] = null, r
}
return H(t, e), [Link] = function() {
[Link](), [Link] = -1
}, [Link] = function() {
null !== [Link] && (clearTimeout([Link]), [Link] =
null)
}, [Link] = function() {
var e = this._levels;
[Link] = !0, [Link] = 0, e &&
[Link](function(e) {
[Link] = 0;
var t = [Link];
t && [Link] && ([Link] = undefined)
}), null !== [Link] && [Link]()
}, [Link] = function() {
[Link] = !1
}, [Link] = function(e) {
var t = [],
i = void 0,
r = {},
s = null,
o = !1,
n = !1,
a = /chrome|
firefox/.test([Link]()),
d = [];
if ([Link](function(e) {
[Link] = 0, [Link] = !1, o = o || !!
[Link], n = n || !![Link] || !(![Link] || ![Link]), !0 === a &&
[Link] && -1 !== [Link]("mp4a.40.34") && ([Link] =
undefined), s = r[[Link]], s === undefined ? ([Link] = [[Link]], [Link] = 0,
r[[Link]] = e, [Link](e)) : [Link]([Link])
}), !0 === o && !0 === n && (t = [Link](function(e) {
return !![Link]
})), t = [Link](function(e) {
var t = [Link],
i = [Link];
return (!t || l(t)) && (!i || l(i))
}), [Link] && (d = [Link](function(e)
{
return ![Link] || l([Link], "audio")
})), [Link] > 0) {
i = t[0].bitrate, [Link](function(e, t) {
return [Link] - [Link]
}), this._levels = t;
for (var h = 0; h < [Link]; h++)
if (t[h].bitrate === i) {
this._firstLevel = h, [Link]("manifest loaded," +
[Link] + " level(s) found, first bitrate:" + i);
break
}
[Link](Ke.a.MANIFEST_PARSED, {
levels: t,
audioTracks: d,
firstLevel: this._firstLevel,
stats: [Link],
audio: n,
video: o,
altAudio: [Link] > 0
})
} else [Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
fatal: !0,
url: [Link],
reason: "no level with compatible codecs found in manifest"
})
}, [Link] = function(e) {
var t = this._levels,
i = [Link];
if (e >= 0 && e < [Link]) {
if ([Link](), [Link] !== e) {
[Link]("switching to level " + e),
[Link] = e;
var r = t[e];
[Link] = e, [Link](Ke.a.LEVEL_SWITCHING, r)
}
var s = t[e],
o = [Link];
if (!o || !0 === [Link]) {
var n = [Link];
[Link](Ke.a.LEVEL_LOADING, {
url: [Link][n],
level: e,
id: n
})
}
} else [Link]([Link], {
type: je.b.OTHER_ERROR,
details: je.a.LEVEL_SWITCH_ERROR,
level: e,
fatal: !1,
reason: "invalid level idx"
})
}, [Link] = function(e) {
if (!0 === [Link]) return void([Link] === je.b.NETWORK_ERROR
&& [Link]());
var t = !1,
i = !1,
r = void 0;
switch ([Link]) {
case je.a.FRAG_LOAD_ERROR:
case je.a.FRAG_LOAD_TIMEOUT:
case je.a.KEY_LOAD_ERROR:
case je.a.KEY_LOAD_TIMEOUT:
r = [Link], i = !0;
break;
case je.a.LEVEL_LOAD_ERROR:
case je.a.LEVEL_LOAD_TIMEOUT:
r = [Link], t = !0;
break;
case je.a.REMUX_ALLOC_ERROR:
r = [Link], t = !0
}
r !== undefined && [Link](e, r, t, i)
}, [Link] = function(e, t, i, r) {
var s = this,
o = [Link],
n = [Link],
a = this._levels[t],
l = void 0,
d = void 0,
h = void 0;
if ([Link]++, [Link] = r, !0 === i) {
if (!([Link] + 1 <= [Link]))
return [Link]("level controller, cannot recover from " + n + " error"),
[Link] = null, [Link](), void([Link] = !0);
d = [Link]([Link](2, [Link]) *
[Link], [Link]), [Link] =
setTimeout(function() {
return [Link]()
}, d), [Link] = !0, [Link]++,
[Link]("level controller, " + n + ", retry in " + d + " ms, current retry count
is " + [Link])
}!0 !== i && !0 !== r || (l = [Link], l > 1 &&
[Link] < l ? ([Link]("level controller, " + n + " for level " + t + ":
switching to redundant stream id " + [Link]), [Link] = ([Link] + 1) % l,
[Link] = undefined) : -1 === [Link] ? (h = 0 === t ?
this._levels.length - 1 : t - 1, [Link]("level controller, " + n + ": switch to
" + h), [Link] = [Link] = h) : !0 === r &&
([Link]("level controller, " + n + ": reload a fragment"),
[Link] = null))
}, [Link] = function(e) {
var t = [Link];
if (t !== undefined && "main" === [Link]) {
var i = this._levels[[Link]];
i !== undefined && ([Link] = !1, [Link] = 0,
[Link] = 0)
}
}, [Link] = function(e) {
var t = this,
i = [Link];
if (i === [Link]) {
var r = this._levels[i];
!1 === [Link] && ([Link] = 0,
[Link] = 0);
var s = [Link];
if ([Link]) {
var o = 1e3 * ([Link] ?
[Link] : [Link]),
n = o,
a = [Link];
a && [Link] === [Link] && (n /= 2, [Link]("same
live playlist, reload twice faster")), n -= [Link]() - [Link], n
= [Link](o / 2, [Link](n)), [Link]("live playlist, reload in " +
[Link](n) + " ms"), [Link] = setTimeout(function() {
return [Link]()
}, n)
} else [Link]()
}
}, [Link] = function() {
var e = void 0,
t = void 0;
null !== [Link] && !0 === [Link] && (e =
this._levels[[Link]]) !== undefined && [Link] > 0 && (t =
[Link], [Link](Ke.a.LEVEL_LOADING, {
url: [Link][t],
level: [Link],
id: t
}))
}, qt(t, [{
key: "levels",
get: function() {
return this._levels
}
}, {
key: "level",
get: function() {
return [Link]
},
set: function(e) {
var t = this._levels;
t && (e = [Link](e, [Link] - 1), [Link]
=== e && t[e].details !== undefined || [Link](e))
}
}, {
key: "manualLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link] = e, this._startLevel === undefined
&& (this._startLevel = e), -1 !== e && ([Link] = e)
}
}, {
key: "firstLevel",
get: function() {
return this._firstLevel
},
set: function(e) {
this._firstLevel = e
}
}, {
key: "startLevel",
get: function() {
if (this._startLevel === undefined) {
var e = [Link];
return e !== undefined ? e : this._firstLevel
}
return this._startLevel
},
set: function(e) {
this._startLevel = e
}
}, {
key: "nextLoadLevel",
get: function() {
return -1 !== [Link] ? [Link]
: [Link]
},
set: function(e) {
[Link] = e, -1 === [Link] &&
([Link] = e)
}
}]), t
}(Xe),
Yt = Wt,
zt = i(4),
Xt = function(e) {
function t(i) {
K(this, t);
var r = q(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
Ke.a.MEDIA_DETACHING, Ke.a.FRAG_PARSING_METADATA));
return r.id3Track = undefined, [Link] = undefined, r
}
return W(t, e), [Link] = function() {
[Link](this)
}, [Link] = function(e) {
[Link] = [Link], [Link]
}, [Link] = function() {
j(this.id3Track), this.id3Track = undefined, [Link] =
undefined
}, [Link].getID3Track = function(e) {
for (var t = 0; t < [Link]; t++) {
var i = e[t];
if ("metadata" === [Link] && "id3" === [Link]) return V(i,
[Link]), i
}
return [Link]("metadata", "id3")
}, [Link] = function(e) {
var t = [Link],
i = [Link];
this.id3Track || (this.id3Track =
this.getID3Track([Link]), [Link] = "hidden");
for (var r = [Link] || [Link] ||
[Link], s = 0; s < [Link]; s++) {
var o = zt.a.getID3Frames(i[s].data);
if (o) {
var n = i[s].pts,
a = s < [Link] - 1 ? i[s + 1].pts : [Link];
n === a && (a += 1e-4);
for (var l = 0; l < [Link]; l++) {
var d = o[l];
if (![Link](d)) {
var h = new r(n, a, "");
[Link] = d, [Link](h)
}
}
}
}
}, t
}(Xe),
Qt = Xt,
Jt = function() {
function e(t) {
z(this, e), this.alpha_ = t ? [Link]([Link](.5) / t) : 0,
this.estimate_ = 0, this.totalWeight_ = 0
}
return [Link] = function(e, t) {
var i = [Link](this.alpha_, e);
this.estimate_ = t * (1 - i) + i * this.estimate_,
this.totalWeight_ += e
}, [Link] = function() {
return this.totalWeight_
}, [Link] = function() {
if (this.alpha_) {
var e = 1 - [Link](this.alpha_, this.totalWeight_);
return this.estimate_ / e
}
return this.estimate_
}, e
}(),
$t = Jt,
Zt = function() {
function e(t, i, r, s) {
X(this, e), [Link] = t, this.defaultEstimate_ = s,
this.minWeight_ = .001, this.minDelayMs_ = 50, this.slow_ = new $t(i), this.fast_ =
new $t(r)
}
return [Link] = function(e, t) {
e = [Link](e, this.minDelayMs_);
var i = 8e3 * t / e,
r = e / 1e3;
this.fast_.sample(r, i), this.slow_.sample(r, i)
}, [Link] = function() {
var e = this.fast_;
return e && [Link]() >= this.minWeight_
}, [Link] = function() {
return [Link]() ? [Link](this.fast_.getEstimate(),
this.slow_.getEstimate()) : this.defaultEstimate_
}, [Link] = function() {}, e
}(),
ei = Zt,
ti = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
ii = function(e) {
function t(i) {
Q(this, t);
var r = J(this, [Link](this, i, Ke.a.FRAG_LOADING,
Ke.a.FRAG_LOADED, Ke.a.FRAG_BUFFERED, [Link]));
return [Link] = 0, r._nextAutoLevel = -1, [Link]
= i, [Link] = null, r._bwEstimator = null, [Link] =
r._abandonRulesCheck.bind(r), r
}
return $(t, e), [Link] = function() {
[Link](), [Link](this)
}, [Link] = function(e) {
var t = [Link];
if ("main" === [Link]) {
if ([Link] || ([Link] = setInterval([Link],
100)), !this._bwEstimator) {
var i = [Link],
r = [Link],
s = [Link][r].[Link],
o = [Link],
n = void 0,
a = void 0;
s ? (n = [Link], a = [Link]) : (n
= [Link], a = [Link]), this._bwEstimator = new ei(i, a, n,
[Link])
}
[Link] = t
}
}, [Link]._abandonRulesCheck = function() {
var e = [Link],
t = [Link],
i = [Link],
r = [Link],
s = [Link];
if (!r || [Link] && [Link]) return [Link]("frag
loader destroy or aborted, disarm abandonRules"), [Link](),
void(this._nextAutoLevel = -1);
var o = [Link];
if (t && o && (![Link] && 0 !== [Link] || !
[Link]) && [Link] && [Link]) {
var n = [Link]() - [Link],
a = [Link]([Link]);
if (n > 500 * [Link] / a) {
var l = [Link],
d = [Link](1, [Link] ? [Link] / 8 : 1e3 * [Link] /
n),
h = l[[Link]],
c = [Link] ? [Link]([Link],
[Link]) : [Link],
u = [Link] ? [Link] : [Link]([Link],
[Link]([Link] * c / 8)),
p = [Link],
f = (u - [Link]) / d,
v = ([Link](t, p,
[Link]).end - p) / a;
if (v < 2 * [Link] / a && f > v) {
var g = void 0,
y = void 0;
for (y = [Link] - 1; y > s; y--) {
var m = l[y].realBitrate ?
[Link](l[y].realBitrate, l[y].bitrate) : l[y].bitrate;
if ((g = [Link] * m / (6.4 * d)) < v) break
}
g < f && ([Link]("loading too slow, abort
fragment loading and switch to level " + y + ":fragLoadedDelay[" + y +
"]<fragLoadedDelay[" + ([Link] - 1) + "];bufferStarvationDelay:" + [Link](1) +
"<" + [Link](1) + ":" + [Link](1)), [Link] = y,
this._bwEstimator.sample(n, [Link]), [Link](), [Link](),
[Link](Ke.a.FRAG_LOAD_EMERGENCY_ABORTED, {
frag: i,
stats: o
}))
}
}
}
}, [Link] = function(e) {
var t = [Link];
if ("main" === [Link] && !isNaN([Link])) {
if ([Link](), [Link] = [Link],
this._nextAutoLevel = -1, [Link]) {
var i = [Link][[Link]],
r = ([Link] ? [Link] : 0) +
[Link],
s = ([Link] ? [Link] : 0) +
[Link];
[Link] = {
bytes: r,
duration: s
}, [Link] = [Link](8 * r / s)
}
if ([Link]) {
var o = [Link];
[Link] = [Link] = [Link],
[Link](e)
}
}
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if (!(!0 === [Link] || "main" !== [Link] || isNaN([Link]) ||
[Link] && [Link] !== [Link])) {
var r = [Link] - [Link];
[Link]("latency/loading/parsing/append/kbps:" +
[Link]([Link] - [Link]) + "/" + [Link]([Link] - [Link]) + "/" +
[Link]([Link] - [Link]) + "/" + [Link]([Link] - [Link]) + "/" +
[Link](8 * [Link] / ([Link] - [Link]))), this._bwEstimator.sample(r,
[Link]), [Link] = this._bwEstimator.getEstimate(), [Link] ?
[Link] = r / 1e3 : [Link] = 0
}
}, [Link] = function(e) {
switch ([Link]) {
case je.a.FRAG_LOAD_ERROR:
case je.a.FRAG_LOAD_TIMEOUT:
[Link]()
}
}, [Link] = function() {
clearInterval([Link]), [Link] = null
}, [Link]._findBestLevel = function(e, t, i, r, s, o, n, a, l)
{
for (var d = s; d >= r; d--) {
var h = l[d],
c = [Link],
u = c ? [Link] / [Link] : t,
p = !!c && [Link],
f = void 0;
f = d <= e ? n * i : a * i;
var v = l[d].realBitrate ? [Link](l[d].realBitrate,
l[d].bitrate) : l[d].bitrate,
g = v * u / f;
if
([Link]("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "
+ d + "/" + [Link](f) + "/" + v + "/" + u + "/" + o + "/" + g), f > v && (!g ||
p && ![Link] || g < o)) return d
}
return -1
}, ti(t, [{
key: "nextAutoLevel",
get: function() {
var e = this._nextAutoLevel,
t = this._bwEstimator;
if (!(-1 === e || t && [Link]())) return e;
var i = this._nextABRAutoLevel;
return -1 !== e && (i = [Link](e, i)), i
},
set: function(e) {
this._nextAutoLevel = e
}
}, {
key: "_nextABRAutoLevel",
get: function() {
var e = [Link],
t = [Link],
i = [Link],
r = [Link],
s = [Link],
o = [Link],
n = [Link],
a = [Link] ? [Link] : 0,
l = o ? [Link] : 0,
d = o && 0 !== [Link] ?
[Link]([Link]) : 1,
h = this._bwEstimator ? this._bwEstimator.getEstimate()
: [Link],
c = ([Link](o, l, [Link]).end - l) / d,
u = this._findBestLevel(n, a, h, s, t, c,
[Link], [Link], i);
if (u >= 0) return u;
[Link]("rebuffering expected to happen, lets try to
find a quality level minimizing the rebuffering");
var p = a ? [Link](a, [Link]) :
[Link],
f = [Link],
v = [Link];
if (0 === c) {
var g = [Link];
if (g) {
p = (a ? [Link](a, [Link]) :
[Link]) - g, [Link]("bitrate test took " + [Link](1e3 * g) +
"ms, set first fragment max fetchDuration to " + [Link](1e3 * p) + " ms"), f =
v = 1
}
}
return u = this._findBestLevel(n, a, h, s, t, c + p, f, v,
i), [Link](u, 0)
}
}]), t
}(Xe),
ri = ii,
si = b(),
oi = function(e) {
function t(i) {
Z(this, t);
var r = ee(this, [Link](this, i, Ke.a.MEDIA_ATTACHING,
Ke.a.MEDIA_DETACHING, Ke.a.MANIFEST_PARSED, Ke.a.BUFFER_RESET,
Ke.a.BUFFER_APPENDING, Ke.a.BUFFER_CODECS, Ke.a.BUFFER_EOS, Ke.a.BUFFER_FLUSHING,
Ke.a.LEVEL_PTS_UPDATED, Ke.a.LEVEL_UPDATED));
return r._msDuration = null, r._levelDuration = null, r._live =
null, r._objectUrl = null, [Link] = [Link](r), [Link] =
[Link](r), [Link] = {}, [Link] = {}, r
}
return te(t, e), [Link] = function() {
[Link](this)
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if ("audio" === t && i && "audio/mpeg" === [Link]) {
var r = [Link];
if ([Link]([Link] - [Link]) > .1) {
var s = [Link];
try {
[Link]()
} catch (o) {
s = !0, [Link]("can not abort audio buffer: " +
o)
}
s ? [Link] = [Link] :
([Link]("change mpeg audio timestamp offset from " + [Link] + " to "
+ [Link]), [Link] = [Link])
}
}
}, [Link] = function(e) {
var t = [Link],
i = [Link] || [Link] && [Link],
r = 0;
[Link] && (t || i) && (r = (t ? 1 : 0) + (i ? 1 : 0),
[Link](r + " sourceBuffer(s) expected")), [Link] = r
}, [Link] = function(e) {
var t = [Link] = [Link];
if (t) {
var i = [Link] = new si;
[Link] = [Link](this), [Link]
= [Link](this), [Link] =
[Link](this), [Link]("sourceopen", [Link]),
[Link]("sourceended", [Link]), [Link]("sourceclose",
[Link]), [Link] = [Link](i), this._objectUrl = [Link]
}
}, [Link] = function() {
[Link]("media source detaching");
var e = [Link];
if (e) {
if ("open" === [Link]) try {
[Link]()
} catch (t) {
[Link]("onMediaDetaching:" + [Link] + " while
calling endOfStream")
}
[Link]("sourceopen", [Link]),
[Link]("sourceended", [Link]),
[Link]("sourceclose", [Link]), [Link] &&
([Link](this._objectUrl), [Link] === this._objectUrl ?
([Link]("src"), [Link]()) : [Link]("[Link] was
changed by a third party - skip cleanup")), [Link] = null, [Link] =
null, this._objectUrl = null, [Link] = {}, [Link] = {},
[Link] = {}, [Link] = [], [Link] = [], [Link] = 0
}
[Link] = [Link] = [Link] = null,
[Link](Ke.a.MEDIA_DETACHED)
}, [Link] = function() {
[Link]("media source opened"),
[Link](Ke.a.MEDIA_ATTACHED, {
media: [Link]
});
var e = [Link];
e && [Link]("sourceopen", [Link]),
[Link]()
}, [Link] = function() {
var e = [Link],
t = [Link](e).length;
t && ([Link] <= t || 0 === [Link]) &&
([Link](e), [Link] = {}, [Link]())
}, [Link] = function() {
[Link]("media source closed")
}, [Link] = function() {
[Link]("media source ended")
}, [Link] = function() {
if ([Link]) {
var e = [Link];
[Link]("change mpeg audio timestamp offset from " +
[Link] + " to " + [Link]), [Link] =
[Link], delete [Link]
}
this._needsFlush && [Link](), this._needsEos &&
[Link](), [Link] = !1;
var t = [Link],
i = [Link](function(e, i) {
return [Link] === t ? e + 1 : e
}, 0),
r = {},
s = [Link];
for (var o in s) r[o] = s[o].buffered;
[Link](Ke.a.BUFFER_APPENDED, {
parent: t,
pending: i,
timeRanges: r
}), this._needsFlush || [Link](),
[Link]()
}, [Link] = function(e) {
[Link]("sourceBuffer error:", e),
[Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.BUFFER_APPENDING_ERROR,
fatal: !1
})
}, [Link] = function() {
var e = [Link];
for (var t in e) {
var i = e[t];
try {
[Link](i),
[Link]("updateend", [Link]), [Link]("error",
[Link])
} catch (r) {}
}
[Link] = {}, [Link] = [], [Link] =
[], [Link] = 0
}, [Link] = function(e) {
if (0 === [Link]([Link]).length) {
for (var t in e) [Link][t] = e[t];
var i = [Link];
i && "open" === [Link] && [Link]()
}
}, [Link] = function(e) {
var t = [Link],
i = [Link];
for (var r in e)
if (!t[r]) {
var s = e[r],
o = [Link] || [Link],
n = [Link] + ";codecs=" + o;
[Link]("creating sourceBuffer(" + n + ")");
try {
var a = t[r] = [Link](n);
[Link]("updateend", [Link]),
[Link]("error", [Link]),
[Link][r] = {
codec: o,
container: [Link]
}, [Link] = a
} catch (l) {
[Link]("error while trying to add
sourceBuffer:" + [Link]), [Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.BUFFER_ADD_CODEC_ERROR,
fatal: !1,
err: l,
mimeType: n
})
}
}
[Link](Ke.a.BUFFER_CREATED, {
tracks: e
})
}, [Link] = function(e) {
this._needsFlush || ([Link] ? [Link](e) :
[Link] = [e], [Link]())
}, [Link] = function(e) {
[Link]("sourceBuffer error:", [Link]),
[Link]([Link], {
type: je.b.MEDIA_ERROR,
details: je.a.BUFFER_APPENDING_ERROR,
fatal: !1
})
}, [Link] = function(e) {
var t = [Link],
i = [Link];
for (var r in t) i && r !== i || t[r].ended || (t[r].ended = !
0, [Link](r + " sourceBuffer now EOS"));
[Link]()
}, [Link] = function() {
var e = [Link],
t = [Link];
if (!t || "open" !== [Link]) return void(this._needsEos =
!1);
for (var i in e) {
var r = e[i];
if (![Link]) return;
if ([Link]) return void(this._needsEos = !0)
}
[Link]("all media data available, signal endOfStream() to
MediaSource and stop loading fragment");
try {
[Link]()
} catch (s) {
[Link]("exception while calling
[Link]()")
}
this._needsEos = !1
}, [Link] = function(e) {
[Link]({
start: [Link],
end: [Link],
type: [Link]
}), [Link] = 0, [Link]()
}, [Link] = function(e) {
var t = [Link];
[Link] > 0 && (this._levelDuration =
[Link] + [Link][0].start, this._live = [Link],
[Link]())
}, [Link] = function() {
var e = [Link],
t = void 0;
if (null !== this._levelDuration && [Link] &&
[Link] && [Link] && 0 !== [Link] && "open" ===
[Link]) {
for (var i in [Link])
if (!0 === [Link][i].updating) return;
t = [Link], null === this._msDuration &&
(this._msDuration = [Link]), !0 === this._live && !0 ===
[Link] ? ([Link]("Media Source duration is set to Infinity"),
this._msDuration = [Link] = Infinity) : (this._levelDuration >
this._msDuration && this._levelDuration > t || t === Infinity || isNaN(t)) &&
([Link]("Updating Media Source duration to " + this._levelDuration.toFixed(3)),
this._msDuration = [Link] = this._levelDuration)
}
}, [Link] = function() {
for (; [Link];) {
var e = [Link][0];
if (![Link]([Link], [Link], [Link])) return
void(this._needsFlush = !0);
[Link](), [Link] = 0
}
if (0 === [Link]) {
this._needsFlush = !1;
var t = 0,
i = [Link];
try {
for (var r in i) t += i[r].[Link]
} catch (s) {
[Link]("error while accessing
[Link]")
}
[Link] = t, [Link](Ke.a.BUFFER_FLUSHED)
}
}, [Link] = function() {
var e = [Link],
t = [Link],
i = [Link];
if ([Link](t).length) {
if ([Link]) return [Link] = [], void
[Link]("trying to append although a media error occured, flush segment and
abort");
if ([Link]) return;
if (i && [Link]) {
var r = [Link]();
try {
var s = [Link],
o = t[s];
o ? [Link] ? [Link](r) : ([Link] = !1,
[Link] = [Link], [Link]([Link]), [Link] = 0,
[Link]++, [Link] = !0) : [Link]()
} catch (a) {
[Link]("error while trying to append buffer:" +
[Link]), [Link](r);
var n = {
type: je.b.MEDIA_ERROR,
parent: [Link]
};
22 !== [Link] ? ([Link] ?
[Link]++ : [Link] = 1, [Link] = je.a.BUFFER_APPEND_ERROR,
[Link] > [Link] ? ([Link]("fail " +
[Link] + " times to append segment in sourceBuffer"), i = [],
[Link] = !0, [Link]([Link], n)) : ([Link] = !1, [Link]([Link], n)))
: ([Link] = [], [Link] = je.a.BUFFER_FULL_ERROR, [Link] = !1,
[Link]([Link], n))
}
}
}
}, [Link] = function(e, t, i) {
var r = void 0,
s = void 0,
o = void 0,
n = void 0,
a = void 0,
l = void 0,
d = [Link];
if ([Link](d).length) {
if ([Link]("flushBuffer,pos/start/end: " +
[Link](3) + "/" + e + "/" + t), [Link] <
[Link]) {
for (var h in d)
if (!i || h === i) {
if (r = d[h], [Link] = !1, [Link]) return
[Link]("cannot flush, sb updating in progress"), !1;
try {
for (s = 0; s < [Link]; s++)
if (o = [Link](s), n =
[Link](s), -1 !== [Link]().indexOf("firefox") && t
=== Number.POSITIVE_INFINITY ? (a = e, l = t) : (a = [Link](o, e), l =
[Link](n, t)), [Link](l, n) - a > .5) return [Link]++,
[Link]("flush " + h + " [" + a + "," + l + "], of [" + o + "," + n + "], pos:" +
[Link]), [Link](a, l), !1
} catch (c) {
[Link]("exception while accessing
sourcebuffer, it might have been removed from MediaSource")
}
}
} else [Link]("abort flushing too many retries");
[Link]("buffer flushed")
}
return !0
}, t
}(Xe),
ni = oi,
ai = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
li = function(e) {
function t(i) {
return ie(this, t), re(this, [Link](this, i,
Ke.a.FPS_DROP_LEVEL_CAPPING, Ke.a.MEDIA_ATTACHING, Ke.a.MANIFEST_PARSED))
}
return se(t, e), [Link] = function() {
[Link] && ([Link] =
[Link] = null, [Link] = Number.POSITIVE_INFINITY,
[Link] && ([Link] = clearInterval([Link])))
}, [Link] = function(e) {
[Link]([Link], [Link]) &&
[Link]([Link])
}, [Link] = function(e) {
[Link] = [Link] instanceof HTMLVideoElement ? [Link] :
null
}, [Link] = function(e) {
var t = [Link];
[Link] = [], [Link] &&
([Link] = Number.POSITIVE_INFINITY, [Link] = [Link],
[Link] = [Link]([Link]), clearInterval([Link]),
[Link] = setInterval([Link](this), 1e3),
[Link]())
}, [Link] = function() {
if ([Link]) {
var e = [Link] ? [Link] : 0;
if (e) {
var t = [Link];
[Link] = [Link](e - 1),
[Link] > [Link] && [Link](),
[Link] = [Link]
}
}
}, [Link] = function(e) {
var i = this;
if (![Link]) return -1;
var r = [Link](function(r, s) {
return [Link](s, [Link]) && s <= e
});
return [Link](r, [Link],
[Link])
}, [Link] = function(e) {
return -1 === ([Link] > 1 && arguments[1] !==
undefined ? arguments[1] : []).indexOf(e)
}, [Link] = function(e, t, i) {
if (!e || e && ![Link]) return -1;
for (var r = [Link] - 1, s = 0; s < [Link]; s += 1) {
var o = e[s];
if (([Link] >= t || [Link] >= i) && function(e, t) {
return !t || ([Link] !== [Link] || [Link] !==
[Link])
}(o, e[s + 1])) {
r = s;
break
}
}
return r
}, ai(t, [{
key: "mediaWidth",
get: function() {
var e = void 0,
i = [Link];
return i && (e = [Link] || [Link] || [Link],
e *= [Link]), e
}
}, {
key: "mediaHeight",
get: function() {
var e = void 0,
i = [Link];
return i && (e = [Link] || [Link] ||
[Link], e *= [Link]), e
}
}], [{
key: "contentScaleFactor",
get: function() {
var e = 1;
try {
e = [Link]
} catch (t) {}
return e
}
}]), t
}(Xe),
di = li,
hi = function(e) {
function t(i) {
return oe(this, t), ne(this, [Link](this, i,
Ke.a.MEDIA_ATTACHING))
}
return ae(t, e), [Link] = function() {
[Link] && clearInterval([Link]),
[Link] = !1
}, [Link] = function(e) {
var t = [Link];
if ([Link]) {
"function" == typeof([Link] = [Link] instanceof
HTMLVideoElement ? [Link] : null).getVideoPlaybackQuality &&
([Link] = !0), clearInterval([Link]), [Link]
= setInterval([Link](this), [Link])
}
}, [Link] = function(e, t, i) {
var r = [Link]();
if (t) {
if ([Link]) {
var s = r - [Link],
o = i - [Link],
n = t - [Link],
a = 1e3 * o / s,
l = [Link];
if ([Link](Ke.a.FPS_DROP, {
currentDropped: o,
currentDecoded: n,
totalDroppedFrames: i
}), a > 0 && o >
[Link] * n) {
var d = [Link];
[Link]("drop FPS ratio greater than max allowed
value for currentLevel: " + d), d > 0 && (-1 === [Link] ||
[Link] >= d) && (d -= 1, [Link](Ke.a.FPS_DROP_LEVEL_CAPPING, {
level: d,
droppedLevel: [Link]
}), [Link] = d,
[Link]())
}
}
[Link] = r, [Link] = i,
[Link] = t
}
}, [Link] = function() {
var e = [Link];
if (e)
if ([Link]) {
var t = [Link]();
[Link](e, [Link],
[Link])
} else [Link](e, [Link],
[Link])
}, t
}(Xe),
ci = hi,
ui = function() {
function e(t) {
le(this, e), t && [Link] && ([Link] = [Link])
}
return [Link] = function() {
[Link](), [Link] = null
}, [Link] = function() {
var e = [Link];
e && 4 !== [Link] && ([Link] = !0,
[Link]()), [Link]([Link]), [Link] = null,
[Link]([Link]), [Link] = null
}, [Link] = function(e, t, i) {
[Link] = e, [Link] = t, [Link] = i,
[Link] = {
trequest: [Link](),
retry: 0
}, [Link] = [Link], [Link]()
}, [Link] = function() {
var e = void 0,
t = [Link];
e = [Link] = new XMLHttpRequest;
var i = [Link];
[Link] = 0, [Link] = 0;
var r = [Link];
try {
if (r) try {
r(e, [Link])
} catch (s) {
[Link]("GET", [Link], !0), r(e, [Link])
}
[Link] || [Link]("GET", [Link], !0)
} catch (s) {
return void [Link]({
code: [Link],
text: [Link]
}, t, e)
}
[Link] && [Link]("Range", "bytes=" +
[Link] + "-" + ([Link] - 1)), [Link] =
[Link](this), [Link] = [Link](this),
[Link] = [Link], [Link] =
[Link]([Link](this), [Link]), [Link]()
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link],
s = [Link],
o = [Link];
if (![Link] && i >= 2)
if ([Link]([Link]), 0 ===
[Link] && ([Link] = [Link]([Link](), [Link])), 4 === i) {
var n = [Link];
if (n >= 200 && n < 300) {
[Link] = [Link]([Link], [Link]());
var a = void 0,
l = void 0;
"arraybuffer" === [Link] ? (a = [Link],
l = [Link]) : (a = [Link], l = [Link]), [Link] = [Link] = l;
var d = {
url: [Link],
data: a
};
[Link](d, r, s, t)
} else [Link] >= [Link] || n >= 400 && n < 499 ?
([Link](n + " while loading " + [Link]), [Link]({
code: n,
text: [Link]
}, s, t)) : ([Link](n + " while loading " + [Link] +
", retrying in " + [Link] + "..."), [Link](), [Link] =
[Link]([Link](this), [Link]), [Link] =
[Link](2 * [Link], [Link]), [Link]++)
} else [Link] =
[Link]([Link](this), [Link])
}, [Link] = function() {
[Link]("timeout while loading " + [Link]),
[Link]([Link], [Link], null)
}, [Link] = function(e) {
var t = [Link],
i = [Link];
[Link] = [Link], [Link] && ([Link] = [Link]);
var r = [Link];
r && r(i, [Link], null, t)
}, e
}(),
pi = ui,
fi = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
vi = function(e) {
function t(i) {
de(this, t);
var r = he(this, [Link](this, i, Ke.a.MANIFEST_LOADING,
Ke.a.MANIFEST_PARSED, Ke.a.AUDIO_TRACK_LOADED, [Link]));
return [Link] = 0, [Link] = [Link](r), r
}
return ce(t, e), [Link] = function() {
[Link](), [Link](this)
}, [Link] = function() {
[Link] && (clearTimeout([Link]), [Link] = null)
}, [Link] = function() {
1 === ++[Link] && ([Link](), [Link] > 1 &&
setTimeout([Link], 1), [Link] = 0)
}, [Link] = function() {
[Link]([Link])
}, [Link] = function(e) {
[Link] && [Link] === je.b.NETWORK_ERROR && [Link]()
}, [Link] = function() {
[Link] = [], [Link] = -1
}, [Link] = function(e) {
var t = this,
i = [Link] || [],
r = !1;
[Link] = i, [Link](Ke.a.AUDIO_TRACKS_UPDATED, {
audioTracks: i
});
var s = 0;
[Link](function(e) {
if (e["default"] && !r) return [Link] = s, void(r = !
0);
s++
}), !1 === r && [Link] && ([Link]("no default audio track
defined, use first audio track as default"), [Link] = 0)
}, [Link] = function(e) {
[Link] < [Link] && ([Link]("audioTrack " + [Link] + "
loaded"), [Link][[Link]].details = [Link], [Link] && ![Link] &&
([Link] = setInterval([Link], 1e3 * [Link])), !
[Link] && [Link] && [Link]())
}, [Link] = function(e) {
if (e >= 0 && e < [Link]) {
[Link](), [Link] = e, [Link]("switching to
audioTrack " + e);
var t = [Link][e],
i = [Link],
r = [Link],
s = [Link],
o = {
id: e,
type: r,
url: s
};
[Link](Ke.a.AUDIO_TRACK_SWITCHING, o);
var n = [Link];
!s || n !== undefined && !0 !== [Link] ||
([Link]("(re)loading playlist for audioTrack " + e),
[Link](Ke.a.AUDIO_TRACK_LOADING, {
url: s,
id: e
}))
}
}, [Link] = function(e) {
if (e >= 0 && e < [Link]) {
[Link](), [Link] = e, [Link]("updating
audioTrack " + e);
var t = [Link][e],
i = [Link],
r = [Link];
!i || r !== undefined && !0 !== [Link] ||
([Link]("(re)loading playlist for audioTrack " + e),
[Link](Ke.a.AUDIO_TRACK_LOADING, {
url: i,
id: e
}))
}
}, fi(t, [{
key: "audioTracks",
get: function() {
return [Link]
}
}, {
key: "audioTrack",
get: function() {
return [Link]
},
set: function(e) {
[Link] === e && [Link][e].details !== undefined
|| [Link](e)
}
}]), t
}(Xe),
gi = vi,
yi = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
mi = {
STOPPED: "STOPPED",
STARTING: "STARTING",
IDLE: "IDLE",
PAUSED: "PAUSED",
KEY_LOADING: "KEY_LOADING",
FRAG_LOADING: "FRAG_LOADING",
FRAG_LOADING_WAITING_RETRY: "FRAG_LOADING_WAITING_RETRY",
WAITING_TRACK: "WAITING_TRACK",
PARSING: "PARSING",
PARSED: "PARSED",
BUFFER_FLUSHING: "BUFFER_FLUSHING",
ENDED: "ENDED",
ERROR: "ERROR",
WAITING_INIT_PTS: "WAITING_INIT_PTS"
},
bi = function(e) {
function t(i, r) {
ue(this, t);
var s = pe(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
Ke.a.MEDIA_DETACHING, Ke.a.AUDIO_TRACKS_UPDATED, Ke.a.AUDIO_TRACK_SWITCHING,
Ke.a.AUDIO_TRACK_LOADED, Ke.a.KEY_LOADED, Ke.a.FRAG_LOADED,
Ke.a.FRAG_PARSING_INIT_SEGMENT, Ke.a.FRAG_PARSING_DATA, Ke.a.FRAG_PARSED,
[Link], Ke.a.BUFFER_RESET, Ke.a.BUFFER_CREATED, Ke.a.BUFFER_APPENDED,
Ke.a.BUFFER_FLUSHED, Ke.a.INIT_PTS_FOUND));
return [Link] = r, [Link] = [Link],
[Link] = !1, s._state = [Link], [Link] = [], [Link] =
null, [Link] = null, s
}
return fe(t, e), [Link] = function() {
[Link]()
}, [Link] = function() {
[Link] = [Link], [Link] = null
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link];
"main" === t && ([Link][i] = r, [Link] = i,
[Link]("InitPTS for cc: " + i + " found from video track: " + r), [Link] ===
mi.WAITING_INIT_PTS && [Link]())
}, [Link] = function(e) {
if ([Link]) {
var t = [Link];
[Link](), [Link](100), [Link]
= 0, t > 0 && -1 === e ? ([Link]("audio:override startPosition with
lastCurrentTime @" + [Link](3)), [Link] = [Link]) : ([Link] =
[Link] ? [Link] : e, [Link] = [Link]),
[Link] = [Link] = [Link], [Link]()
} else [Link] = e, [Link] = [Link]
}, [Link] = function() {
var e = [Link];
e && ([Link] && [Link](),
[Link](e), [Link] = null), [Link]
= null, [Link] && ([Link](), [Link] = null), [Link] =
[Link]
}, [Link] = function() {
var e = void 0,
t = void 0,
i = void 0,
r = [Link],
s = [Link];
switch ([Link]) {
case [Link]:
case [Link]:
case mi.BUFFER_FLUSHING:
break;
case [Link]:
[Link] = mi.WAITING_TRACK, [Link] = !
1;
break;
case [Link]:
var o = [Link];
if (!o) break;
if (![Link] && ([Link] || !
[Link])) break;
if ([Link]) e = [Link];
else if ((e = [Link]) === undefined)
break;
var n = [Link] ? [Link] :
[Link],
a = [Link] ? [Link] :
[Link],
l = [Link](n, e, [Link]),
d = [Link](a, e, [Link]),
h = [Link],
c = [Link],
u = [Link],
p = [Link]([Link],
[Link]),
f = [Link](p, [Link]),
v = [Link],
g = [Link];
if ((h < f || v) && g < [Link]) {
if (void 0 === (i = o[g].details)) {
[Link] = mi.WAITING_TRACK;
break
}
if (!v && ![Link] && u && [Link] === [Link] && !
[Link] && (![Link] || [Link] - c < [Link] / 2)) {
[Link](Ke.a.BUFFER_EOS, {
type: "audio"
}), [Link] = [Link];
break
}
var y = [Link],
m = [Link],
b = y[0].start,
_ = y[m - 1].start + y[m - 1].duration,
E = void 0;
if (v)
if ([Link] && ![Link]) [Link]("switching
audiotrack, live stream, unknown PTS,load first fragment"), c = 0;
else if (c = e, [Link] && e < b) {
if (!([Link] > b || [Link])) return;
[Link]("alt audio track ahead of main track,
seek to start of alt audio track"), [Link] = b + .05
}
if ([Link] && ![Link]) E =
[Link];
else if (c <= b) {
if (E = y[0], null !== [Link] &&
[Link] !== [Link] && (E = R(y, [Link])), [Link] && [Link] &&
[Link] === [Link]) {
var w = [Link] ? [Link] : b;
return [Link]("no alt audio available
@currentTime:" + [Link] + ", seeking @" + (w + .05)),
void([Link] = w + .05)
}
} else {
var k = void 0,
T = [Link],
S = u ? y[[Link] - y[0].sn + 1] : undefined,
L = function(e) {
var t = [Link](T, [Link]);
return [Link] + [Link] - t <= c ?
1 : [Link] - t > c && [Link] ? -1 : 0
};
c < _ ? (c > _ - T && (T = 0), k = S && !L(S) ?
S : [Link](y, L)) : k = y[m - 1], k && (E = k, b = [Link], u && [Link] ===
[Link] && [Link] === [Link] && ([Link] < [Link] ? (E = y[[Link] + 1 - [Link]],
[Link]("SN just loaded, load next one: " + [Link])) : E = null))
}
E && ([Link] && null != [Link] &&
null == [Link] ? ([Link]("Loading key for " + [Link] + " of [" +
[Link] + " ," + [Link] + "],track " + g), [Link] = mi.KEY_LOADING,
[Link](Ke.a.KEY_LOADING, {
frag: E
})) : ([Link]("Loading " + [Link] + ", cc: " + [Link]
+ " of [" + [Link] + " ," + [Link] + "],track " + g + ", currentTime:" + e +
",bufferEnd:" + [Link](3)), [Link](E) === Mt.NOT_LOADED
&& ([Link] = E, [Link] = !0, isNaN([Link]) ||
([Link] = [Link] + [Link]), [Link](Ke.a.FRAG_LOADING, {
frag: E
}), [Link] = mi.FRAG_LOADING)))
}
break;
case mi.WAITING_TRACK:
t = [Link][[Link]], t && [Link] &&
([Link] = [Link]);
break;
case mi.FRAG_LOADING_WAITING_RETRY:
var A = [Link](),
x = [Link];
n = [Link];
var C = n && [Link];
(!x || A >= x || C) &&
([Link]("audioStreamController: retryDate reached, switch back to IDLE state"),
[Link] = [Link]);
break;
case mi.WAITING_INIT_PTS:
var P = [Link];
if ([Link][P] === undefined) break;
var D = [Link];
if (D) {
var I = [Link];
P !== I ? (t = [Link][[Link]], [Link]
&& [Link] && ([Link]("Waiting fragment CC (" + I + ") does not match
video track CC (" + P + ")"), [Link] = null, [Link] = [Link])) :
([Link] = mi.FRAG_LOADING, [Link]([Link]),
[Link] = null)
} else [Link] = [Link];
break;
case [Link]:
case mi.FRAG_LOADING:
case [Link]:
case [Link]:
case [Link]:
}
}, [Link] = function(e) {
var t = [Link] = [Link] = [Link];
[Link] = [Link](this), [Link]
= [Link](this), [Link]("seeking", [Link]),
[Link]("ended", [Link]);
var i = [Link];
[Link] && [Link] &&
[Link]([Link])
}, [Link] = function() {
var e = [Link];
e && [Link] && ([Link]("MSE detaching and video ended, reset
startPosition"), [Link] = [Link] = 0), e &&
([Link]("seeking", [Link]), [Link]("ended",
[Link]), [Link] = [Link] = [Link] = null),
[Link] = [Link] = [Link] = null, [Link] = !1,
[Link]()
}, [Link] = function() {
[Link] === [Link] && ([Link] = [Link]), [Link]
&& ([Link] = [Link]), [Link]()
}, [Link] = function() {
[Link] = [Link] = 0
}, [Link] = function(e) {
[Link]("audio tracks updated"), [Link] = [Link]
}, [Link] = function(e) {
var t = !![Link];
[Link] = [Link], [Link] = null, [Link] =
[Link], [Link] = null, t ? [Link](100) : [Link] &&
([Link](), [Link] = null), t && ([Link] = !0,
[Link] = [Link]), [Link]()
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link][i],
s = [Link],
o = 0;
if ([Link]("track " + i + " loaded [" + [Link] + "," +
[Link] + "],duration:" + s), [Link]) {
var n = [Link];
n && [Link] > 0 ? (L(n, t), o =
[Link][0].start, [Link] ? [Link]("live audio playlist sliding:" +
[Link](3)) : [Link]("live audio playlist - outdated PTS, unknown sliding")) :
([Link] = !1, [Link]("live audio playlist - first load, unknown sliding"))
} else [Link] = !1;
if ([Link] = t, ![Link]) {
if (-1 === [Link]) {
var a = [Link];
isNaN(a) ? [Link] = 0 : ([Link]("start
time offset found in playlist, adjust startPosition to " + a), [Link] =
a)
}
[Link] = [Link]
}
[Link] === mi.WAITING_TRACK && ([Link] = [Link]),
[Link]()
}, [Link] = function() {
[Link] === mi.KEY_LOADING && ([Link] = [Link],
[Link]())
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if ([Link] === mi.FRAG_LOADING && t && "audio" === [Link]
&& [Link] === [Link] && [Link] === [Link]) {
var r = [Link][[Link]],
s = [Link],
o = [Link],
n = [Link],
a = [Link],
l = [Link],
d = [Link] || [Link] ||
"mp4a.40.2",
h = [Link] = [Link];
if ("initSegment" === a) [Link] = [Link], [Link] =
[Link] = [Link](), [Link] = [Link],
[Link](Ke.a.FRAG_BUFFERED, {
stats: h,
frag: t,
id: "audio"
}), [Link]();
else {
[Link] = [Link], [Link] = !1,
[Link] || ([Link] = new Ot([Link], "audio"));
var c = [Link][l],
u = [Link] ? [Link] : [];
if ([Link] || c !== undefined) {
[Link] = !0, [Link]("Demuxing " +
a + " of [" + [Link] + " ," + [Link] + "],track " + n);
[Link]([Link], u, d, null, t, o, !1,
c)
} else [Link]("unknown video PTS for continuity
counter " + l + ", waiting for video PTS before demuxing audio frag " + a + " of ["
+ [Link] + " ," + [Link] + "],track " + n), [Link] = e,
[Link] = mi.WAITING_INIT_PTS
}
}
[Link] = 0
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if (t && "audio" === [Link] && [Link] === [Link] && [Link] ===
[Link] && [Link] === [Link]) {
var r = [Link],
s = void 0;
if ([Link] && delete [Link], s = [Link]) {
[Link] = [Link], [Link] = [Link],
[Link](Ke.a.BUFFER_CODECS, r), [Link]("audio track:audio,container:" +
[Link] + ",codecs[level/parsed]=[" + [Link] + "/" + [Link] + "]");
var o = [Link];
if (o) {
var n = {
type: "audio",
data: o,
parent: "audio",
content: "initSegment"
};
[Link] ? [Link] = [n] :
([Link] = !0, [Link] = !0,
[Link](Ke.a.BUFFER_APPENDING, n))
}
[Link]()
}
}
}, [Link] = function(e) {
var t = this,
i = [Link],
r = [Link];
if (i && "audio" === [Link] && "audio" === [Link] && [Link] ===
[Link] && [Link] === [Link] && [Link] === [Link]) {
var s = [Link],
o = [Link][s],
n = [Link];
isNaN([Link]) && ([Link] = [Link] + [Link],
[Link] = [Link] + [Link]),
[Link]([Link]), [Link]("parsed " + [Link]
+ ",PTS:[" + [Link](3) + "," + [Link](3) + "],DTS:[" +
[Link](3) + "/" + [Link](3) + "],nb:" + [Link]), S([Link],
i, [Link], [Link]);
var a = [Link],
l = [Link],
d = !1;
if (a && l)
if ([Link]) {
var h = [Link];
[Link]("switching audio track : currentTime:" +
h), h >= [Link] && ([Link]("switching audio track : flushing all audio"),
[Link] = mi.BUFFER_FLUSHING, [Link](Ke.a.BUFFER_FLUSHING, {
startOffset: 0,
endOffset: Number.POSITIVE_INFINITY,
type: "audio"
}), d = !0, [Link] = !1,
[Link](Ke.a.AUDIO_TRACK_SWITCHED, {
id: s
}))
} else [Link] = !1,
[Link](Ke.a.AUDIO_TRACK_SWITCHED, {
id: s
});
var c = [Link];
if (!c) return [Link]("Apparently attempt to enqueue
media payload without codec initialization data upfront"), void
[Link]([Link], {
type: je.b.MEDIA_ERROR,
details: null,
fatal: !0
});
[Link] || ([e.data1, e.data2].forEach(function(t)
{
t && [Link] && [Link]({
type: [Link],
data: t,
parent: "audio",
content: "data"
})
}), !d && [Link] && ([Link](function(e) {
[Link] === [Link] && ([Link] = !0,
[Link](Ke.a.BUFFER_APPENDING, e))
}), [Link] = [], [Link] = !0)),
[Link]()
}
}, [Link] = function(e) {
var t = [Link],
i = [Link];
t && "audio" === [Link] && [Link] === [Link] && [Link] === [Link]
&& [Link] === [Link] && ([Link] = [Link](), [Link]
= [Link], this._checkAppendedParsed())
}, [Link] = function() {
[Link] = [Link] = null, [Link]
= !1
}, [Link] = function(e) {
var t = [Link];
t && ([Link] = [Link], [Link] = !0),
[Link] && ([Link] = [Link])
}, [Link] = function(e) {
if ("audio" === [Link]) {
var t = [Link];
t !== [Link] && t !== [Link] ||
([Link] = [Link] > 0, this._checkAppendedParsed())
}
}, [Link]._checkAppendedParsed = function() {
if (!([Link] !== [Link] || [Link] &&
[Link])) {
var e = [Link],
t = [Link],
i = [Link];
if (e) {
[Link] = e, [Link] = [Link](),
[Link](Ke.a.FRAG_BUFFERED, {
stats: t,
frag: e,
id: "audio"
});
var r = [Link] ? [Link] :
[Link];
[Link]("audio buffered : " +
[Link]([Link])), [Link] && [Link] && ([Link]
= !1, [Link](Ke.a.AUDIO_TRACK_SWITCHED, {
id: [Link]
})), [Link] = [Link]
}
[Link]()
}
}, [Link] = function(e) {
var t = [Link];
if (!t || "audio" === [Link]) switch ([Link]) {
case je.a.FRAG_LOAD_ERROR:
case je.a.FRAG_LOAD_TIMEOUT:
if (![Link]) {
var i = [Link];
i ? i++ : i = 1;
var r = [Link];
if (i <= [Link]) {
[Link] = i;
var s = [Link]([Link](2, i - 1) *
[Link], [Link]);
[Link]("audioStreamController: frag loading
failed, retry in " + s + " ms"), [Link] = [Link]() + s, [Link]
= mi.FRAG_LOADING_WAITING_RETRY
} else [Link]("audioStreamController: " +
[Link] + " reaches max retry, redispatch as fatal ..."), [Link] = !0,
[Link] = [Link]
}
break;
case je.a.AUDIO_TRACK_LOAD_ERROR:
case je.a.AUDIO_TRACK_LOAD_TIMEOUT:
case je.a.KEY_LOAD_ERROR:
case je.a.KEY_LOAD_TIMEOUT:
[Link] !== [Link] && ([Link] = [Link] ?
[Link] : [Link], [Link]("audioStreamController: " + [Link] + " while
loading frag,switch to " + [Link] + " state ..."));
break;
case je.a.BUFFER_FULL_ERROR:
if ("audio" === [Link] && ([Link] === [Link]
|| [Link] === [Link])) {
var o = [Link],
n = [Link];
if (o && [Link](o, n) && [Link](o, n
+ .5)) {
var a = [Link];
[Link] >= [Link] &&
([Link] /= 2, [Link]("audio:reduce max buffer length to " +
[Link] + "s")), [Link] = [Link]
} else [Link]("buffer full error also
[Link] is not buffered, flush audio buffer"), [Link] = null,
[Link] = mi.BUFFER_FLUSHING, [Link](Ke.a.BUFFER_FLUSHING, {
startOffset: 0,
endOffset: Number.POSITIVE_INFINITY,
type: "audio"
})
}
}
}, [Link] = function() {
var e = this,
t = [Link];
t && [Link] ? ([Link]("appending pending audio data on
Buffer Flushed"), [Link](function(t) {
[Link](Ke.a.BUFFER_APPENDING, t)
}), [Link] = !0, [Link] = [], [Link] =
[Link]) : ([Link] = [Link], [Link] = null, [Link]())
}, yi(t, [{
key: "state",
set: function(e) {
if ([Link] !== e) {
var t = [Link];
this._state = e, [Link]("audio stream:" + t + "->" +
e)
}
},
get: function() {
return this._state
}
}]), t
}(Gt),
_i = bi,
Ei = function() {
function e(e) {
return "string" == typeof e && (!!o[[Link]()] &&
[Link]())
}

function t(e) {
return "string" == typeof e && (!!n[[Link]()] &&
[Link]())
}

function i(e) {
for (var t = 1; t < [Link]; t++) {
var i = arguments[t];
for (var r in i) e[r] = i[r]
}
return e
}

function r(r, o, n) {
var a = this,
l = function() {
if ("undefined" != typeof navigator) return
/MSIE\s8\.0/.test([Link])
}(),
d = {};
l ? a = [Link]("custom") : [Link] = !0,
[Link] = !1;
var h = "",
c = !1,
u = r,
p = o,
f = n,
v = null,
g = "",
y = !0,
m = "auto",
b = "start",
_ = 50,
E = "middle",
w = 50,
k = "middle";
if ([Link](a, "id", i({}, d, {
get: function() {
return h
},
set: function(e) {
h = "" + e
}
})), [Link](a, "pauseOnExit", i({}, d, {
get: function() {
return c
},
set: function(e) {
c = !!e
}
})), [Link](a, "startTime", i({}, d, {
get: function() {
return u
},
set: function(e) {
if ("number" != typeof e) throw new
TypeError("Start time must be set to a number.");
u = e, [Link] = !0
}
})), [Link](a, "endTime", i({}, d, {
get: function() {
return p
},
set: function(e) {
if ("number" != typeof e) throw new TypeError("End
time must be set to a number.");
p = e, [Link] = !0
}
})), [Link](a, "text", i({}, d, {
get: function() {
return f
},
set: function(e) {
f = "" + e, [Link] = !0
}
})), [Link](a, "region", i({}, d, {
get: function() {
return v
},
set: function(e) {
v = e, [Link] = !0
}
})), [Link](a, "vertical", i({}, d, {
get: function() {
return g
},
set: function(t) {
var i = e(t);
if (!1 === i) throw new SyntaxError("An invalid or
illegal string was specified.");
g = i, [Link] = !0
}
})), [Link](a, "snapToLines", i({}, d, {
get: function() {
return y
},
set: function(e) {
y = !!e, [Link] = !0
}
})), [Link](a, "line", i({}, d, {
get: function() {
return m
},
set: function(e) {
if ("number" != typeof e && e !== s) throw new
SyntaxError("An invalid number or illegal string was specified.");
m = e, [Link] = !0
}
})), [Link](a, "lineAlign", i({}, d, {
get: function() {
return b
},
set: function(e) {
var i = t(e);
if (!i) throw new SyntaxError("An invalid or
illegal string was specified.");
b = i, [Link] = !0
}
})), [Link](a, "position", i({}, d, {
get: function() {
return _
},
set: function(e) {
if (e < 0 || e > 100) throw new Error("Position
must be between 0 and 100.");
_ = e, [Link] = !0
}
})), [Link](a, "positionAlign", i({}, d, {
get: function() {
return E
},
set: function(e) {
var i = t(e);
if (!i) throw new SyntaxError("An invalid or
illegal string was specified.");
E = i, [Link] = !0
}
})), [Link](a, "size", i({}, d, {
get: function() {
return w
},
set: function(e) {
if (e < 0 || e > 100) throw new Error("Size must be
between 0 and 100.");
w = e, [Link] = !0
}
})), [Link](a, "align", i({}, d, {
get: function() {
return k
},
set: function(e) {
var i = t(e);
if (!i) throw new SyntaxError("An invalid or
illegal string was specified.");
k = i, [Link] = !0
}
})), [Link] = undefined, l) return a
}
if ("undefined" != typeof window && [Link]) return
[Link];
var s = "auto",
o = {
"": !0,
lr: !0,
rl: !0
},
n = {
start: !0,
middle: !0,
end: !0,
left: !0,
right: !0
};
return [Link] = function() {
return [Link](window, [Link])
}, r
}(),
wi = function() {
return {
decode: function(e) {
if (!e) return "";
if ("string" != typeof e) throw new Error("Error - expected
string data.");
return decodeURIComponent(encodeURIComponent(e))
}
}
};
[Link] = {
set: function(e, t) {
[Link](e) || "" === t || ([Link][e] = t)
},
get: function(e, t, i) {
return i ? [Link](e) ? [Link][e] : t[i] : [Link](e) ?
[Link][e] : t
},
has: function(e) {
return e in [Link]
},
alt: function(e, t, i) {
for (var r = 0; r < [Link]; ++r)
if (t === i[r]) {
[Link](e, t);
break
}
},
integer: function(e, t) {
/^-?\d+$/.test(t) && [Link](e, parseInt(t, 10))
},
percent: function(e, t) {
return !!([Link](/^([\d]{1,3})(\.[\d]*)?%$/) && (t =
parseFloat(t)) >= 0 && t <= 100) && ([Link](e, t), !0)
}
};
var ki = new Ei(0, 0, 0),
Ti = "middle" === [Link] ? "middle" : "center";
[Link] = {
parse: function(e) {
function t() {
var e = [Link],
t = 0;
for (e = _e(e); t < [Link] && "\r" !== e[t] && "\n" !==
e[t];) ++t;
var r = [Link](0, t);
return "\r" === e[t] && ++t, "\n" === e[t] && ++t, [Link] =
[Link](t), r
}
var i = this;
e && ([Link] += [Link](e, {
stream: !0
}));
try {
var r = void 0;
if ("INITIAL" === [Link]) {
if (!/\r\n|\n/.test([Link])) return this;
r = t();
var s = [Link](/^()?WEBVTT([ \t].*)?$/);
if (!s || !s[0]) throw new Error("Malformed WebVTT
signature.");
[Link] = "HEADER"
}
for (var o = !1; [Link];) {
if (!/\r\n|\n/.test([Link])) return this;
switch (o ? o = !1 : r = t(), [Link]) {
case "HEADER":
/:/.test(r) ? function(e) {
me(e, function(e, t) {
switch (e) {
case "Region":
[Link]("parse region", t)
}
}, /:/)
}(r) : r || ([Link] = "ID");
continue;
case "NOTE":
r || ([Link] = "ID");
continue;
case "ID":
if (/^NOTE($|[ \t])/.test(r)) {
[Link] = "NOTE";
break
}
if (!r) continue;
if ([Link] = new Ei(0, 0, ""), [Link] = "CUE", -1
=== [Link]("--\x3e")) {
[Link] = r;
continue
}
case "CUE":
try {
be(r, [Link], [Link])
} catch (a) {
[Link] = null, [Link] = "BADCUE";
continue
}
[Link] = "CUETEXT";
continue;
case "CUETEXT":
var n = -1 !== [Link]("--\x3e");
if (!r || n && (o = !0)) {
[Link] && [Link]([Link]), [Link] = null,
[Link] = "ID";
continue
}
[Link] && ([Link] += "\n"), [Link] +=
r;
continue;
case "BADCUE":
r || ([Link] = "ID");
continue
}
}
} catch (a) {
"CUETEXT" === [Link] && [Link] && [Link] && [Link]([Link]),
[Link] = null, [Link] = "INITIAL" === [Link] ? "BADWEBVTT" : "BADCUE"
}
return this
},
flush: function() {
var e = this;
try {
if ([Link] += [Link](), ([Link] || "HEADER" ===
[Link]) && ([Link] += "\n\n", [Link]()), "INITIAL" === [Link]) throw new
Error("Malformed WebVTT signature.")
} catch (t) {
throw t
}
return [Link] && [Link](), this
}
};
var Si = ve,
Li = {
42: 225,
92: 233,
94: 237,
95: 243,
96: 250,
123: 231,
124: 247,
125: 209,
126: 241,
127: 9608,
128: 174,
129: 176,
130: 189,
131: 191,
132: 8482,
133: 162,
134: 163,
135: 9834,
136: 224,
137: 32,
138: 232,
139: 226,
140: 234,
141: 238,
142: 244,
143: 251,
144: 193,
145: 201,
146: 211,
147: 218,
148: 220,
149: 252,
150: 8216,
151: 161,
152: 42,
153: 8217,
154: 9473,
155: 169,
156: 8480,
157: 8226,
158: 8220,
159: 8221,
160: 192,
161: 194,
162: 199,
163: 200,
164: 202,
165: 203,
166: 235,
167: 206,
168: 207,
169: 239,
170: 212,
171: 217,
172: 249,
173: 219,
174: 171,
175: 187,
176: 195,
177: 227,
178: 205,
179: 204,
180: 236,
181: 210,
182: 242,
183: 213,
184: 245,
185: 123,
186: 125,
187: 92,
188: 94,
189: 95,
190: 124,
191: 8764,
192: 196,
193: 228,
194: 214,
195: 246,
196: 223,
197: 165,
198: 164,
199: 9475,
200: 197,
201: 229,
202: 216,
203: 248,
204: 9487,
205: 9491,
206: 9495,
207: 9499
},
Ai = function(e) {
var t = e;
return [Link](e) && (t = Li[e]), [Link](t)
},
Ri = 15,
xi = 100,
Ci = {
17: 1,
18: 3,
21: 5,
22: 7,
23: 9,
16: 11,
19: 12,
20: 14
},
Pi = {
17: 2,
18: 4,
21: 6,
22: 8,
23: 10,
19: 13,
20: 15
},
Di = {
25: 1,
26: 3,
29: 5,
30: 7,
31: 9,
24: 11,
27: 12,
28: 14
},
Ii = {
25: 2,
26: 4,
29: 6,
30: 8,
31: 10,
27: 13,
28: 15
},
Oi = ["white", "green", "blue", "cyan", "red", "yellow", "magenta",
"black", "transparent"],
Mi = {
verboseFilter: {
DATA: 3,
DEBUG: 3,
INFO: 2,
WARNING: 2,
TEXT: 1,
ERROR: 0
},
time: null,
verboseLevel: 0,
setTime: function(e) {
[Link] = e
},
log: function(e, t) {
var i = [Link][e];
[Link] >= i && [Link]([Link] + " [" + e + "]
" + t)
}
},
Fi = function(e) {
for (var t = [], i = 0; i < [Link]; i++)
[Link](e[i].toString(16));
return t
},
Ni = function() {
function e(t, i, r, s, o) {
we(this, e), [Link] = t || "white", [Link] = i
|| !1, [Link] = r || !1, [Link] = s || "black", [Link] = o || !1
}
return [Link] = function() {
[Link] = "white", [Link] = !1, [Link]
= !1, [Link] = "black", [Link] = !1
}, [Link] = function(e) {
for (var t = ["foreground", "underline", "italics",
"background", "flash"], i = 0; i < [Link]; i++) {
var r = t[i];
[Link](r) && (this[r] = e[r])
}
}, [Link] = function() {
return "white" === [Link] && ![Link] && !
[Link] && "black" === [Link] && ![Link]
}, [Link] = function(e) {
return [Link] === [Link] && [Link] ===
[Link] && [Link] === [Link] && [Link] === [Link] &&
[Link] === [Link]
}, [Link] = function(e) {
[Link] = [Link], [Link] = [Link],
[Link] = [Link], [Link] = [Link], [Link] = [Link]
}, [Link] = function() {
return "color=" + [Link] + ", underline=" +
[Link] + ", italics=" + [Link] + ", background=" + [Link] +
", flash=" + [Link]
}, e
}(),
Bi = function() {
function e(t, i, r, s, o, n) {
we(this, e), [Link] = t || " ", [Link] = new Ni(i,
r, s, o, n)
}
return [Link] = function() {
[Link] = " ", [Link]()
}, [Link] = function(e, t) {
[Link] = e, [Link](t)
}, [Link] = function(e) {
[Link](e)
}, [Link] = function(e) {
return [Link] === [Link] &&
[Link]([Link])
}, [Link] = function(e) {
[Link] = [Link], [Link]([Link])
}, [Link] = function() {
return " " === [Link] && [Link]()
}, e
}(),
Ui = function() {
function e() {
we(this, e), [Link] = [];
for (var t = 0; t < xi; t++) [Link](new Bi);
[Link] = 0, [Link] = new Ni
}
return [Link] = function(e) {
for (var t = !0, i = 0; i < xi; i++)
if (![Link][i].equals([Link][i])) {
t = !1;
break
}
return t
}, [Link] = function(e) {
for (var t = 0; t < xi; t++) [Link][t].copy([Link][t])
}, [Link] = function() {
for (var e = !0, t = 0; t < xi; t++)
if (![Link][t].isEmpty()) {
e = !1;
break
}
return e
}, [Link] = function(e) {
[Link] !== e && ([Link] = e), [Link] < 0 ?
([Link]("ERROR", "Negative cursor position " + [Link]), [Link] = 0) : [Link]
> xi && ([Link]("ERROR", "Too large cursor position " + [Link]), [Link] = xi)
}, [Link] = function(e) {
var t = [Link] + e;
if (e > 1)
for (var i = [Link] + 1; i < t + 1; i++)
[Link][i].setPenState([Link]);
[Link](t)
}, [Link] = function() {
[Link](-1), [Link][[Link]].setChar(" ",
[Link])
}, [Link] = function(e) {
e >= 144 && [Link]();
var t = Ai(e);
if ([Link] >= xi) return void [Link]("ERROR", "Cannot insert
" + [Link](16) + " (" + t + ") at position " + [Link] + ". Skipping it!");
[Link][[Link]].setChar(t, [Link]),
[Link](1)
}, [Link] = function(e) {
var t = void 0;
for (t = e; t < xi; t++) [Link][t].reset()
}, [Link] = function() {
[Link](0), [Link] = 0, [Link]()
}, [Link] = function() {
[Link]([Link])
}, [Link] = function() {
for (var e = [], t = !0, i = 0; i < xi; i++) {
var r = [Link][i].uchar;
" " !== r && (t = !1), [Link](r)
}
return t ? "" : [Link]("")
}, [Link] = function(e) {
[Link](e),
[Link][[Link]].setPenState([Link])
}, e
}(),
Gi = function() {
function e() {
we(this, e), [Link] = [];
for (var t = 0; t < Ri; t++) [Link](new Ui);
[Link] = Ri - 1, [Link] = null, [Link]()
}
return [Link] = function() {
for (var e = 0; e < Ri; e++) [Link][e].clear();
[Link] = Ri - 1
}, [Link] = function(e) {
for (var t = !0, i = 0; i < Ri; i++)
if (![Link][i].equals([Link][i])) {
t = !1;
break
}
return t
}, [Link] = function(e) {
for (var t = 0; t < Ri; t++) [Link][t].copy([Link][t])
}, [Link] = function() {
for (var e = !0, t = 0; t < Ri; t++)
if (![Link][t].isEmpty()) {
e = !1;
break
}
return e
}, [Link] = function() {
[Link][[Link]].backSpace()
}, [Link] = function() {
[Link][[Link]].clearToEndOfRow()
}, [Link] = function(e) {
[Link][[Link]].insertChar(e)
}, [Link] = function(e) {
[Link][[Link]].setPenStyles(e)
}, [Link] = function(e) {
[Link][[Link]].moveCursor(e)
}, [Link] = function(e) {
[Link]("INFO", "setCursor: " + e),
[Link][[Link]].setCursor(e)
}, [Link] = function(e) {
[Link]("INFO", "pacData = " + [Link](e));
var t = [Link] - 1;
if ([Link] && t < [Link] - 1 && (t =
[Link] - 1), [Link] && [Link] !== t) {
for (var i = 0; i < Ri; i++) [Link][i].clear();
var r = [Link] + 1 - [Link],
s = [Link];
if (s) {
var o = [Link][r].cueStartTime;
if (o && o < [Link])
for (var n = 0; n < [Link]; n++)
[Link][t - [Link] + n + 1].copy([Link][r + n])
}
}
[Link] = t;
var a = [Link][[Link]];
if (null !== [Link]) {
var l = [Link],
d = [Link](l - 1, 0);
[Link]([Link]), [Link] =
[Link][d].[Link]
}
var h = {
foreground: [Link],
underline: [Link],
italics: [Link],
background: "black",
flash: !1
};
[Link](h)
}, [Link] = function(e) {
[Link]("INFO", "bkgData = " + [Link](e)),
[Link](), [Link](e), [Link](32)
}, [Link] = function(e) {
[Link] = e
}, [Link] = function() {
if (null === [Link]) return void [Link]("DEBUG",
"roll_up but nrRollUpRows not set yet");
[Link]("TEXT", [Link]());
var e = [Link] + 1 - [Link],
t = [Link](e, 1)[0];
[Link](), [Link]([Link], 0, t), [Link]("INFO",
"Rolling up")
}, [Link] = function(e) {
e = e || !1;
for (var t = [], i = "", r = -1, s = 0; s < Ri; s++) {
var o = [Link][s].getTextString();
o && (r = s + 1, e ? [Link]("Row " + r + ": '" + o + "'") :
[Link]([Link]()))
}
return [Link] > 0 && (i = e ? "[" + [Link](" | ") + "]" :
[Link]("\n")), i
}, [Link] = function() {
return [Link]
}, e
}(),
Hi = function() {
function e(t, i) {
we(this, e), [Link] = t, [Link] = i, [Link] =
null, [Link] = 0, [Link] = new Gi, [Link] =
new Gi, [Link] = new Gi, [Link] =
[Link][Ri - 1], [Link] = [Link],
[Link] = null, [Link] = null
}
return [Link] = function() {
[Link] = null, [Link](),
[Link](), [Link](), [Link]
= [Link][Ri - 1], [Link] = [Link],
[Link] = null, [Link] = null, [Link] = null
}, [Link] = function() {
return [Link]
}, [Link] = function(e) {
[Link] = e
}, [Link] = function(e) {
[Link](e)
}, [Link] = function(e) {
[Link](e)
}, [Link] = function(e) {
e !== [Link] && ([Link] = e, [Link]("INFO", "MODE=" + e),
"MODE_POP-ON" === [Link] ? [Link] = [Link] :
([Link] = [Link], [Link]()), "MODE_ROLL-UP"
!== [Link] && ([Link] = null,
[Link] = null), [Link] = e)
}, [Link] = function(e) {
for (var t = 0; t < [Link]; t++)
[Link](e[t]);
var i = [Link] === [Link] ? "DISP" :
"NON_DISP";
[Link]("INFO", i + ": " + [Link](!0)),
"MODE_PAINT-ON" !== [Link] && "MODE_ROLL-UP" !== [Link] || ([Link]("TEXT",
"DISPLAYED: " + [Link](!0)), [Link]())
}, [Link] = function() {
[Link]("INFO", "RCL - Resume Caption Loading"),
[Link]("MODE_POP-ON")
}, [Link] = function() {
[Link]("INFO", "BS - BackSpace"), "MODE_TEXT" !== [Link] &&
([Link](), [Link] === [Link] &&
[Link]())
}, [Link] = function() {}, [Link] =
function() {}, [Link] = function() {
[Link]("INFO", "DER- Delete to End of Row"),
[Link](), [Link]()
}, [Link] = function(e) {
[Link]("INFO", "RU(" + e + ") - Roll Up"), [Link] =
[Link], [Link]("MODE_ROLL-UP"),
[Link](e)
}, [Link] = function() {
[Link]("INFO", "FON - Flash On"), [Link]({
flash: !0
})
}, [Link] = function() {
[Link]("INFO", "RDC - Resume Direct Captioning"),
[Link]("MODE_PAINT-ON")
}, [Link] = function() {
[Link]("INFO", "TR"), [Link]("MODE_TEXT")
}, [Link] = function() {
[Link]("INFO", "RTD"), [Link]("MODE_TEXT")
}, [Link] = function() {
[Link]("INFO", "EDM - Erase Displayed Memory"),
[Link](), [Link](!0)
}, [Link] = function() {
[Link]("CR - Carriage Return"), [Link](),
[Link](!0)
}, [Link] = function() {
[Link]("INFO", "ENM - Erase Non-displayed Memory"),
[Link]()
}, [Link] = function() {
if ([Link]("INFO", "EOC - End Of Caption"), "MODE_POP-ON" ===
[Link]) {
var e = [Link];
[Link] = [Link],
[Link] = e, [Link] = [Link],
[Link]("TEXT", "DISP: " + [Link]())
}
[Link](!0)
}, [Link] = function(e) {
[Link]("INFO", "TO(" + e + ") - Tab Offset"),
[Link](e)
}, [Link] = function(e) {
var t = {
flash: !1
};
if ([Link] = e % 2 == 1, [Link] = e >= 46, [Link])
[Link] = "white";
else {
var i = [Link](e / 2) - 16,
r = ["white", "green", "blue", "cyan", "red", "yellow",
"magenta"];
[Link] = r[i]
}
[Link]("INFO", "MIDROW: " + [Link](t)),
[Link](t)
}, [Link] = function() {
var e = [Link] > 0 && arguments[0] !== undefined &&
arguments[0],
t = [Link];
null !== t && [Link] && (null !== [Link]
|| [Link]() ?
[Link]([Link]) || ([Link] &&
([Link]([Link], t, [Link]), !0 === e &&
[Link] && [Link]()),
[Link] = [Link]() ? null : t) : [Link]
= t, [Link]([Link]))
}, [Link] = function(e) {
[Link] && ([Link]() ||
([Link] && [Link]([Link], e,
[Link]), [Link] = e))
}, e
}(),
Vi = function() {
function e(t, i, r) {
we(this, e), [Link] = t || 1, [Link] = [i, r],
[Link] = [new Hi(1, i), new Hi(2, r)], [Link] = -1, [Link] =
null, [Link] = null, [Link] = [], [Link] = null,
[Link] = null, [Link] = {
padding: 0,
"char": 0,
cmd: 0,
other: 0
}
}
return [Link] = function(e) {
return [Link][e].getHandler()
}, [Link] = function(e, t) {
[Link][e].setHandler(t)
}, [Link] = function(e, t) {
var i = void 0,
r = void 0,
s = void 0,
o = !1;
[Link] = e, [Link](e);
for (var n = 0; n < [Link]; n += 2)
if (r = 127 & t[n], s = 127 & t[n + 1], 0 !== r || 0 !== s)
{
if ([Link]("DATA", "[" + Fi([t[n], t[n + 1]]) + "] ->
(" + Fi([r, s]) + ")"), i = [Link](r, s), i || (i = [Link](r, s)),
i || (i = [Link](r, s)), i || (i = [Link](r, s)), !i
&& (o = [Link](r, s)))
if ([Link] && [Link] >= 0) {
var a = [Link][[Link] - 1];
[Link](o)
} else [Link]("WARNING", "No channel found yet.
TEXT-MODE?");
i ? [Link] += 2 : o ?
[Link]["char"] += 2 : ([Link] += 2, [Link]("WARNING",
"Couldn't parse cleaned data " + Fi([r, s]) + " orig: " + Fi([t[n], t[n + 1]])))
} else [Link] += 2
}, [Link] = function(e, t) {
var i = null,
r = (20 === e || 28 === e) && t >= 32 && t <= 47,
s = (23 === e || 31 === e) && t >= 33 && t <= 35;
if (!r && !s) return !1;
if (e === [Link] && t === [Link]) return
[Link] = null, [Link] = null, [Link]("DEBUG", "Repeated command (" +
Fi([e, t]) + ") is dropped"), !0;
i = 20 === e || 23 === e ? 1 : 2;
var o = [Link][i - 1];
return 20 === e || 28 === e ? 32 === t ? [Link]() : 33 === t ?
[Link]() : 34 === t ? [Link]() : 35 === t ? [Link]() : 36 === t ? [Link]() : 37
=== t ? [Link](2) : 38 === t ? [Link](3) : 39 === t ? [Link](4) : 40 === t ?
[Link]() : 41 === t ? [Link]() : 42 === t ? [Link]() : 43 === t ? [Link]() : 44
=== t ? [Link]() : 45 === t ? [Link]() : 46 === t ? [Link]() : 47 === t &&
[Link]() : [Link](t - 32), [Link] = e, [Link] = t, [Link] =
i, !0
}, [Link] = function(e, t) {
var i = null;
if ((17 === e || 25 === e) && t >= 32 && t <= 47) {
if ((i = 17 === e ? 1 : 2) !== [Link]) return
[Link]("ERROR", "Mismatch channel in midrow parsing"), !1;
return [Link][i - 1].ccMIDROW(t), [Link]("DEBUG",
"MIDROW (" + Fi([e, t]) + ")"), !0
}
return !1
}, [Link] = function(e, t) {
var i = null,
r = null,
s = (e >= 17 && e <= 23 || e >= 25 && e <= 31) && t >= 64
&& t <= 127,
o = (16 === e || 24 === e) && t >= 64 && t <= 95;
if (!s && !o) return !1;
if (e === [Link] && t === [Link]) return
[Link] = null, [Link] = null, !0;
i = e <= 23 ? 1 : 2, r = t >= 64 && t <= 95 ? 1 === i ? Ci[e] :
Di[e] : 1 === i ? Pi[e] : Ii[e];
var n = [Link](r, t);
return [Link][i - 1].setPAC(n), [Link] = e,
[Link] = t, [Link] = i, !0
}, [Link] = function(e, t) {
var i = t,
r = {
color: null,
italics: !1,
indent: null,
underline: !1,
row: e
};
return i = t > 95 ? t - 96 : t - 64, [Link] = 1 == (1 &
i), i <= 13 ? [Link] = ["white", "green", "blue", "cyan", "red", "yellow",
"magenta", "white"][[Link](i / 2)] : i <= 15 ? ([Link] = !0, [Link] =
"white") : [Link] = 4 * [Link]((i - 16) / 2), r
}, [Link] = function(e, t) {
var i = null,
r = null,
s = null;
if (e >= 25 ? (i = 2, s = e - 8) : (i = 1, s = e), s >= 17 && s
<= 19) {
var o = t;
o = 17 === s ? t + 80 : 18 === s ? t + 112 : t + 144,
[Link]("INFO", "Special char '" + Ai(o) + "' in channel " + i), r = [o]
} else e >= 32 && e <= 127 && (r = 0 === t ? [e] : [e, t]);
if (r) {
var n = Fi(r);
[Link]("DEBUG", "Char codes = " + [Link](",")),
[Link] = null, [Link] = null
}
return r
}, [Link] = function(e, t) {
var i = void 0,
r = void 0,
s = void 0,
o = void 0,
n = (16 === e || 24 === e) && t >= 32 && t <= 47,
a = (23 === e || 31 === e) && t >= 45 && t <= 47;
return !(!n && !a) && (i = {}, 16 === e || 24 === e ? (r =
[Link]((t - 32) / 2), [Link] = Oi[r], t % 2 == 1 && ([Link] =
[Link] + "_semi")) : 45 === t ? [Link] = "transparent" : ([Link]
= "black", 47 === t && ([Link] = !0)), s = e < 24 ? 1 : 2, o = [Link][s
- 1], [Link](i), [Link] = null, [Link] = null, !0)
}, [Link] = function() {
for (var e = 0; e < [Link]; e++) [Link][e]
&& [Link][e].reset();
[Link] = null, [Link] = null
}, [Link] = function(e) {
for (var t = 0; t < [Link]; t++) [Link][t]
&& [Link][t].cueSplitAtTime(e)
}, e
}(),
ji = Vi,
Ki = function() {
function e(t, i) {
ke(this, e), [Link] = t, [Link] = i,
[Link] = null, [Link] = null, [Link] = null
}
return [Link] = function() {
null !== [Link] &&
([Link]("textTrack" + [Link], [Link],
[Link], [Link]), [Link] = null)
}, [Link] = function(e, t, i) {
(null === [Link] || [Link] > e) &&
([Link] = e), [Link] = t, [Link] = i,
[Link]([Link])
}, e
}(),
qi = Ki,
Wi = function(e, t, i) {
return [Link](i || 0, [Link]) === t
},
Yi = function(e) {
var t = parseInt([Link](-3)),
i = parseInt([Link](-6, 2)),
r = parseInt([Link](-9, 2)),
s = [Link] > 9 ? parseInt([Link](0, [Link](":"))) : 0;
return isNaN(t) || isNaN(i) || isNaN(r) || isNaN(s) ? -1 : (t +=
1e3 * i, t += 6e4 * r, t += 36e5 * s)
},
zi = function(e) {
for (var t = 5381, i = [Link]; i;) t = 33 * t ^ [Link](--
i);
return (t >>> 0).toString()
},
Xi = function(e, t, i) {
var r = e[t],
s = e[[Link]];
if (!s || !s["new"] && r["new"]) return [Link] =
[Link] = [Link], void(r["new"] = !1);
for (; s && s["new"];) [Link] += [Link] - [Link], r["new"]
= !1, r = s, s = e[[Link]];
[Link] = i
},
Qi = {
parse: function(e, t, i, r, s, o) {
var n = /\r\n|\n\r|\n|\r/g,
a = Object(zt.b)(new Uint8Array(e)).trim().replace(n,
"\n").split("\n"),
l = "00:00.000",
d = 0,
h = 0,
c = 0,
u = [],
p = void 0,
f = !0,
v = new Si;
[Link] = function(e) {
var t = i[r],
s = [Link];
t && t["new"] && (h !== undefined ? s = [Link] =
[Link] : Xi(i, r, c)), c && (s = c + [Link] - [Link]),
[Link] += s - h, [Link] += s - h, [Link] = zi([Link]()) +
zi([Link]()) + zi([Link]), [Link] =
decodeURIComponent(encodeURIComponent([Link])), [Link] > 0 && [Link](e)
}, [Link] = function(e) {
p = e
}, [Link] = function() {
if (p && o) return void o(p);
s(u)
}, [Link](function(e) {
if (f) {
if (Wi(e, "X-TIMESTAMP-MAP=")) {
f = !1, [Link](16).split(",").forEach(function(e)
{
Wi(e, "LOCAL:") ? l = [Link](6) : Wi(e,
"MPEGTS:") && (d = parseInt([Link](7)))
});
try {
t = t < 0 ? t + 8589934592 : t, d -= t, h =
Yi(l) / 1e3, c = d / 9e4, -1 === h && (p = new Error("Malformed X-TIMESTAMP-MAP: "
+ e))
} catch (i) {
p = new Error("Malformed X-TIMESTAMP-MAP: " +
e)
}
return
}
"" === e && (f = !1)
}
[Link](e + "\n")
}), [Link]()
}
},
Ji = Qi,
$i = function(e) {
function t(i) {
Te(this, t);
var r = Se(this, [Link](this, i, Ke.a.MEDIA_ATTACHING,
Ke.a.MEDIA_DETACHING, Ke.a.FRAG_PARSING_USERDATA, Ke.a.FRAG_DECRYPTED,
Ke.a.MANIFEST_LOADING, Ke.a.MANIFEST_LOADED, Ke.a.FRAG_LOADED,
Ke.a.LEVEL_SWITCHING, Ke.a.INIT_PTS_FOUND));
if ([Link] = i, [Link] = [Link], [Link] = !0, [Link] =
[Link], [Link] = [], [Link] = [], [Link] = [],
[Link] = undefined, [Link] = [], [Link].enableCEA708Captions) {
var s = new qi(r, 1),
o = new qi(r, 2);
r.cea608Parser = new ji(0, s, o)
}
return r
}
return Le(t, e), [Link] = function(e, t, i, r) {
for (var s = [Link], o = !1, n = [Link]; n--;) {
var a = s[n],
l = Re(a[0], a[1], t, i);
if (l >= 0 && (a[0] = [Link](a[0], t), a[1] =
[Link](a[1], i), o = !0, l / (i - t) > .5)) return
}
o || [Link]([t, i]), [Link](this[e], t, i, r)
}, [Link] = function(e) {
var t = this;
"undefined" == typeof [Link] && ([Link] =
[Link]), [Link] &&
([Link](function(e) {
[Link](e)
}), [Link] = [])
}, [Link] = function(e) {
var t = [Link];
if (t)
for (var i = 0; i < [Link]; i++) {
var r = [Link][i],
s = "textTrack" + e;
if (!0 === r[s]) return r
}
return null
}, [Link] = function(e) {
var t = "textTrack" + e;
if (!this[t]) {
var i = [Link](e);
if (i) this[t] = i, j(this[t]), V(this[t], [Link]);
else {
var r = [Link]("captions",
[Link]["captionsTextTrack" + e + "Label"], [Link]["captionsTextTrack" + e
+ "LanguageCode"]);
r && (r[t] = !0, this[t] = r)
}
}
}, [Link] = function(e, t, i) {
var r = [Link];
if (r) return [Link](e, t, i)
}, [Link] = function() {
[Link](this)
}, [Link] = function(e) {
[Link] = [Link], this._cleanTracks()
}, [Link] = function() {
j(this.textTrack1), j(this.textTrack2)
}, [Link] = function() {
[Link] = -1, [Link] = -1, [Link] = {
ccOffset: 0,
presentationOffset: 0
}, this._cleanTracks()
}, [Link]._cleanTracks = function() {
var e = [Link];
if (e) {
var t = [Link];
if (t)
for (var i = 0; i < [Link]; i++) j(t[i])
}
}, [Link] = function(e) {
var t = this;
if ([Link] = [], [Link] =
[Link] || [], [Link] = undefined, [Link] = [],
[Link]) {
[Link] = [Link] || [];
var i = [Link] ? [Link] : [];
[Link](function(e, r) {
var s = void 0;
if (r < [Link]) {
var o = i[r];
Ae(o, e) && (s = o)
}
s || (s = [Link]("subtitles", [Link],
[Link])), e["default"] ? [Link] = [Link] ? "showing" : "hidden" :
[Link] = "disabled", [Link](s)
})
}
}, [Link] = function() {
[Link] = "NONE" !== [Link]
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if ("main" === [Link]) {
var r = [Link];
if (r !== [Link] + 1) {
var s = this.cea608Parser;
s && [Link]()
}
[Link] = r
} else if ("subtitle" === [Link])
if ([Link]) {
if ("undefined" == typeof [Link]) return void
[Link](e);
var o = [Link];
null != o && null != [Link] && "AES-128" === [Link] ||
this._parseVTTs(t, i)
} else [Link](Ke.a.SUBTITLE_FRAG_PROCESSED, {
success: !1,
frag: t
})
}, [Link]._parseVTTs = function(e, t) {
var i = [Link];
i[[Link]] || (i[[Link]] = {
start: [Link],
prevCC: [Link],
"new": !0
}, [Link] = [Link]);
var r = [Link],
s = [Link];
[Link](t, [Link], i, [Link], function(t) {
var i = r[[Link]];
if ("disabled" === [Link]) return void
[Link](Ke.a.SUBTITLE_FRAG_PROCESSED, {
success: !1,
frag: e
});
[Link](function(e) {
if (![Link]([Link])) try {
[Link](e)
} catch (r) {
var t = new [Link]([Link],
[Link], [Link]);
[Link] = [Link], [Link](t)
}
}), [Link](Ke.a.SUBTITLE_FRAG_PROCESSED, {
success: !0,
frag: e
})
}, function(t) {
[Link]("Failed to parse VTT cue: " + t),
[Link](Ke.a.SUBTITLE_FRAG_PROCESSED, {
success: !1,
frag: e
})
})
}, [Link] = function(e) {
var t = [Link],
i = [Link];
if ("subtitle" === [Link]) {
if ("undefined" == typeof [Link]) return void
[Link](e);
this._parseVTTs(i, t)
}
}, [Link] = function(e) {
if ([Link] && [Link].enableCEA708Captions)
for (var t = 0; t < [Link]; t++) {
var i = this.extractCea608Data([Link][t].bytes);
[Link]([Link][t].pts, i)
}
}, [Link].extractCea608Data = function(e) {
for (var t = 31 & e[0], i = 2, r = void 0, s = void 0, o = void
0, n = void 0, a = void 0, l = [], d = 0; d < t; d++) r = e[i++], s = 127 & e[i++],
o = 127 & e[i++], n = 0 != (4 & r), a = 3 & r, 0 === s && 0 === o || n && 0 === a
&& ([Link](s), [Link](o));
return l
}, t
}(Xe),
Zi = $i,
er = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
tr = function(e) {
function t(i) {
xe(this, t);
var r = Ce(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
Ke.a.MEDIA_DETACHING, Ke.a.MANIFEST_LOADING, Ke.a.MANIFEST_LOADED,
Ke.a.SUBTITLE_TRACK_LOADED));
return [Link] = [], [Link] = -1, [Link] = undefined,
[Link] = !1, r
}
return Pe(t, e), [Link]._onTextTracksChanged = function() {
if ([Link]) {
for (var e = -1, t = De([Link]), i = 0; i <
[Link]; i++)
if ("hidden" === t[i].mode) e = i;
else if ("showing" === t[i].mode) {
e = i;
break
}
[Link] = e
}
}, [Link] = function() {
[Link](this)
}, [Link] = function(e) {
var t = this;
[Link] = [Link], [Link] && ([Link] !
== undefined && ([Link] = [Link], delete
[Link]), [Link] =
this._onTextTracksChanged.bind(this), [Link] = !
([Link] && "onchange" in [Link]),
[Link] ? [Link] = setInterval(function() {
[Link]()
}, 500) : [Link]("change",
[Link]))
}, [Link] = function() {
[Link] && ([Link] ?
clearInterval([Link]) :
[Link]("change", [Link]),
[Link] = undefined)
}, [Link] = function() {
[Link] = [], [Link] = -1
}, [Link] = function(e) {
var t = this,
i = [Link] || [];
[Link] = i, [Link] = -1,
[Link](Ke.a.SUBTITLE_TRACKS_UPDATED, {
subtitleTracks: i
}), [Link](function(e) {
e["default"] && ([Link] ? [Link] = [Link] :
[Link] = [Link])
})
}, [Link] = function() {
var e = [Link],
t = [Link][e];
if (t) {
var i = [Link];
i !== undefined && !0 !== [Link] || ([Link]("(re)loading
playlist for subtitle track " + e), [Link](Ke.a.SUBTITLE_TRACK_LOADING, {
url: [Link],
id: e
}))
}
}, [Link] = function(e) {
var t = this;
[Link] < [Link] && ([Link]("subtitle track " + [Link]
+ " loaded"), [Link][[Link]].details = [Link], [Link] && ![Link]
&& ([Link] = setInterval(function() {
[Link]()
}, 1e3 * [Link], this)), ![Link] &&
[Link] && (clearInterval([Link]), [Link] = null))
}, [Link] = function(e) {
if (!(e < -1 || e >= [Link])) {
[Link] && (clearInterval([Link]), [Link] =
null);
var t = De([Link]);
if (-1 !== [Link] && (t[[Link]].mode =
"disabled"), [Link] = e, [Link]("switching to subtitle track " + e),
[Link](Ke.a.SUBTITLE_TRACK_SWITCH, {
id: e
}), -1 !== e) {
var i = [Link][e];
e < [Link] && (t[e].mode = [Link] ?
"showing" : "hidden");
var r = [Link];
r !== undefined && !0 !== [Link] ||
([Link]("(re)loading playlist for subtitle track " + e),
[Link](Ke.a.SUBTITLE_TRACK_LOADING, {
url: [Link],
id: e
}))
}
}
}, er(t, [{
key: "subtitleTracks",
get: function() {
return [Link]
}
}, {
key: "subtitleTrack",
get: function() {
return [Link]
},
set: function(e) {
[Link] !== e && [Link](e)
}
}]), t
}(Xe),
ir = tr,
rr = i(5),
sr = {
STOPPED: "STOPPED",
IDLE: "IDLE",
KEY_LOADING: "KEY_LOADING",
FRAG_LOADING: "FRAG_LOADING"
},
or = function(e) {
function t(i) {
Ie(this, t);
var r = Oe(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
[Link], Ke.a.KEY_LOADED, Ke.a.FRAG_LOADED, Ke.a.SUBTITLE_TRACKS_UPDATED,
Ke.a.SUBTITLE_TRACK_SWITCH, Ke.a.SUBTITLE_TRACK_LOADED,
Ke.a.SUBTITLE_FRAG_PROCESSED));
return [Link] = [Link], [Link] = {},
[Link] = undefined, [Link] = null, [Link] = [Link],
[Link] = -1, [Link] = new rr.a([Link], [Link]), r
}
return Me(t, e), [Link] = function() {
[Link] = [Link]
}, [Link] = function() {
var e = this;
[Link] = {}, [Link](function(t) {
[Link][[Link]] = []
})
}, [Link] = function() {
if (null === [Link] && [Link] >
-1 && [Link][[Link]].length) {
var e = [Link] =
[Link][[Link]].shift();
[Link] = e, [Link](Ke.a.FRAG_LOADING, {
frag: e
}), [Link] = sr.FRAG_LOADING
}
}, [Link] = function(e) {
[Link] &&
[Link][[Link]].push([Link]), [Link]
= null, [Link] = [Link], [Link]()
}, [Link] = function() {
[Link] = [Link]
}, [Link] = function(e) {
var t = [Link];
t && "subtitle" !== [Link] || [Link] &&
([Link] = null, [Link]())
}, [Link] = function() {
var e = this;
switch ([Link]) {
case [Link]:
var t = [Link],
i = [Link],
r = [Link][i],
s = [Link][i],
o = [Link] ?
[Link] : -1,
n = function(e) {
return [Link]([Link]) > -1
},
a = function(e) {
return [Link](function(t) {
return [Link] === [Link]
})
};
if (!t) break;
var l;
if (i < [Link] && (l = t[i].details), void 0 === l)
break;
[Link](function(t) {
n(t) || [Link] === o || a(t) || ([Link] &&
null != [Link] && null == [Link] ? ([Link]("Loading key for
" + [Link]), [Link] = sr.KEY_LOADING, [Link](Ke.a.KEY_LOADING, {
frag: t
})) : ([Link] = i, [Link](t), [Link]()))
})
}
}, [Link] = function(e) {
var t = this;
[Link]("subtitle tracks updated"), [Link] =
[Link], [Link](), [Link] = {},
[Link](function(e) {
[Link][[Link]] = []
})
}, [Link] = function(e) {
if ([Link] = [Link], -1 !== [Link]) {
[Link][[Link]].details !== undefined &&
[Link]()
}
}, [Link] = function() {
[Link]()
}, [Link] = function() {
[Link] === sr.KEY_LOADING && ([Link] = [Link],
[Link]())
}, [Link] = function(e) {
var t = [Link],
i = [Link],
r = [Link],
s = [Link];
if ([Link] === sr.FRAG_LOADING && t && "subtitle" ===
[Link] && [Link] === [Link] && [Link] > 0 && null != i &&
null != [Link] && "AES-128" === [Link]) {
var o = void 0;
try {
o = [Link]()
} catch (n) {
o = [Link]()
}
[Link]([Link], [Link],
[Link], function(e) {
var t = void 0;
try {
t = [Link]()
} catch (n) {
t = [Link]()
}
[Link](Ke.a.FRAG_DECRYPTED, {
frag: r,
payload: e,
stats: {
tstart: o,
tdecrypt: t
}
})
})
}
}, t
}(Gt),
nr = or,
ar = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0,
"value" in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}(),
lr = {
WIDEVINE: "[Link]",
PLAYREADY: "[Link]"
},
dr = function(e, t, i) {
var r = {
videoCapabilities: []
};
return [Link](function(e) {
[Link]({
contentType: 'video/mp4; codecs="' + e + '"'
})
}), [r]
},
hr = function(e, t, i) {
switch (e) {
case [Link]:
return dr(0, i);
default:
throw Error("Unknown key-system: " + e)
}
},
cr = function(e) {
function t(i) {
Fe(this, t);
var r = Ne(this, [Link](this, i, Ke.a.MEDIA_ATTACHED,
Ke.a.MANIFEST_PARSED));
return r._widevineLicenseUrl = [Link],
r._licenseXhrSetup = [Link], r._emeEnabled = [Link],
r._requestMediaKeySystemAccess = [Link],
r._mediaKeysList = [], r._media = null, r._hasSetMediaKeys = !1,
r._isMediaEncrypted = !1, r._requestLicenseFailureCount = 0, r
}
return Be(t, e), [Link] = function(e) {
var t = void 0;
switch (e) {
case [Link]:
t = this._widevineLicenseUrl;
break;
default:
t = null
}
return t || ([Link]('No license server URL configured for
key-system "' + e + '"'), [Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
fatal: !0
})), t
}, [Link]._attemptKeySystemAccess = function(e, t, i) {
var r = this,
s = hr(e, 0, i);
if (!s) return void [Link]("Can not create config for key-
system (maybe because platform is not supported):", e);
[Link]("Requesting encrypted media key-system access"),
[Link](e, s).then(function(t) {
r._onMediaKeySystemAccessObtained(e, t)
})["catch"](function(t) {
[Link]('Failed to obtain key-system "' + e + '"
access:', t)
})
}, [Link]._onMediaKeySystemAccessObtained = function(e, t) {
var i = this;
[Link]('Access for key-system "' + e + '" obtained');
var r = {
mediaKeys: null,
mediaKeysSession: null,
mediaKeysSessionInitialized: !1,
mediaKeySystemAccess: t,
mediaKeySystemDomain: e
};
this._mediaKeysList.push(r),
[Link]().then(function(t) {
[Link] = t, [Link]('Media-keys created for key-
system "' + e + '"'), i._onMediaKeysCreated()
})["catch"](function(e) {
[Link]("Failed to create media-keys:", e)
})
}, [Link]._onMediaKeysCreated = function() {
var e = this;
this._mediaKeysList.forEach(function(t) {
[Link] || ([Link] =
[Link](), e._onNewMediaKeySession([Link]))
})
}, [Link]._onNewMediaKeySession = function(e) {
var t = this;
[Link]("New key-system session " + [Link]),
[Link]("message", function(i) {
t._onKeySessionMessage(e, [Link])
}, !1)
}, [Link]._onKeySessionMessage = function(e, t) {
[Link]("Got EME message event, creating license request"),
this._requestLicense(t, function(t) {
[Link]("Received license data, updating key-session"),
[Link](t)
})
}, [Link]._onMediaEncrypted = function(e, t) {
[Link]('Media is encrypted using "' + e + '" init data
type'), this._isMediaEncrypted = !0, this._mediaEncryptionInitDataType = e,
this._mediaEncryptionInitData = t, this._attemptSetMediaKeys(),
this._generateRequestWithPreferredKeySession()
}, [Link]._attemptSetMediaKeys = function() {
if (!this._hasSetMediaKeys) {
var e = this._mediaKeysList[0];
if (!e || ![Link]) return [Link]("Fatal: Media is
encrypted but no CDM access or no keys have been obtained yet"), void
[Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_NO_KEYS,
fatal: !0
});
[Link]("Setting keys for encrypted media"),
this._media.setMediaKeys([Link]), this._hasSetMediaKeys = !0
}
}, [Link]._generateRequestWithPreferredKeySession = function()
{
var e = this,
t = this._mediaKeysList[0];
if (!t) return [Link]("Fatal: Media is encrypted but not
any key-system access has been obtained yet"), void [Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_NO_ACCESS,
fatal: !0
});
if ([Link]) return void [Link]("Key-
Session already initialized but requested again");
var i = [Link];
i || ([Link]("Fatal: Media is encrypted but no key-session
existing"), [Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_NO_SESSION,
fatal: !0
}));
var r = this._mediaEncryptionInitDataType,
s = this._mediaEncryptionInitData;
[Link]('Generating key-session request for "' + r + '" init
data type'), [Link] = !0, [Link](r,
s).then(function() {
[Link]("Key-session generation succeeded")
})["catch"](function(t) {
[Link]("Error generating key-session request:", t),
[Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_NO_SESSION,
fatal: !1
})
})
}, [Link]._createLicenseXhr = function(e, t, i) {
var r = new XMLHttpRequest,
s = this._licenseXhrSetup;
try {
if (s) try {
s(r, e)
} catch (o) {
[Link]("POST", e, !0), s(r, e)
}
[Link] || [Link]("POST", e, !0)
} catch (o) {
return [Link]("Error setting up key-system license
XHR", o), void [Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
fatal: !0
})
}
return [Link] = "arraybuffer", [Link] =
this._onLicenseRequestReadyStageChange.bind(this, r, e, t, i), r
}, [Link]._onLicenseRequestReadyStageChange = function(e, t,
i, r) {
switch ([Link]) {
case 4:
if (200 === [Link]) this._requestLicenseFailureCount
= 0, [Link]("License request succeeded"), r([Link]);
else {
if ([Link]("License Request XHR failed (" + t +
"). Status: " + [Link] + " (" + [Link] + ")"), +
+this._requestLicenseFailureCount <= 3) {
var s = 3 - this._requestLicenseFailureCount +
1;
return [Link]("Retrying license request, " +
s + " attempts left"), void this._requestLicense(i, r)
}
[Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details:
je.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
fatal: !0
})
}
}
}, [Link]._generateLicenseRequestChallenge = function(e, t) {
var i = void 0;
return [Link] === [Link] ?
[Link]("PlayReady is not supported (yet)") : [Link] ===
[Link] ? i = t : [Link]("Unsupported key-system:",
[Link]), i
}, [Link]._requestLicense = function(e, t) {
[Link]("Requesting content license for key-system");
var i = this._mediaKeysList[0];
if (!i) return [Link]("Fatal error: Media is encrypted but
no key-system access has been obtained yet"), void [Link]([Link], {
type: je.b.KEY_SYSTEM_ERROR,
details: je.a.KEY_SYSTEM_NO_ACCESS,
fatal: !0
});
var r = [Link]([Link]),
s = this._createLicenseXhr(r, e, t);
[Link]("Sending license request to URL: " + r),
[Link](this._generateLicenseRequestChallenge(i, e))
}, [Link] = function(e) {
var t = this;
if (this._emeEnabled) {
var i = [Link];
this._media = i, [Link]("encrypted",
function(e) {
t._onMediaEncrypted([Link], [Link])
})
}
}, [Link] = function(e) {
if (this._emeEnabled) {
var t = [Link](function(e) {
return [Link]
}),
i = [Link](function(e) {
return [Link]
});
this._attemptKeySystemAccess([Link], t, i)
}
}, ar(t, [{
key: "requestMediaKeySystemAccess",
get: function() {
if (!this._requestMediaKeySystemAccess) throw new Error("No
requestMediaKeySystemAccess function configured");
return this._requestMediaKeySystemAccess
}
}]), t
}(Xe),
ur = cr,
pr = function() {
return [Link] &&
[Link] ?
[Link]([Link]) : null
}(),
fr = {
autoStartLoad: !0,
startPosition: -1,
defaultAudioCodec: undefined,
debug: !1,
capLevelOnFPSDrop: !1,
capLevelToPlayerSize: !1,
initialLiveManifestSize: 1,
maxBufferLength: 30,
maxBufferSize: 6e7,
maxBufferHole: .5,
lowBufferWatchdogPeriod: .5,
highBufferWatchdogPeriod: 3,
nudgeOffset: .1,
nudgeMaxRetry: 3,
maxFragLookUpTolerance: .25,
liveSyncDurationCount: 3,
liveMaxLatencyDurationCount: Infinity,
liveSyncDuration: undefined,
liveMaxLatencyDuration: undefined,
liveDurationInfinity: !1,
maxMaxBufferLength: 600,
enableWorker: !0,
enableSoftwareAES: !0,
manifestLoadingTimeOut: 1e4,
manifestLoadingMaxRetry: 1,
manifestLoadingRetryDelay: 1e3,
manifestLoadingMaxRetryTimeout: 64e3,
startLevel: undefined,
levelLoadingTimeOut: 1e4,
levelLoadingMaxRetry: 4,
levelLoadingRetryDelay: 1e3,
levelLoadingMaxRetryTimeout: 64e3,
fragLoadingTimeOut: 2e4,
fragLoadingMaxRetry: 6,
fragLoadingRetryDelay: 1e3,
fragLoadingMaxRetryTimeout: 64e3,
startFragPrefetch: !1,
fpsDroppedMonitoringPeriod: 5e3,
fpsDroppedMonitoringThreshold: .2,
appendErrorMaxRetry: 3,
loader: pi,
fLoader: undefined,
pLoader: undefined,
xhrSetup: undefined,
licenseXhrSetup: undefined,
abrController: ri,
bufferController: ni,
capLevelController: di,
fpsController: ci,
stretchShortVideoTrack: !1,
maxAudioFramesDrift: 1,
forceKeyFrameOnDiscontinuity: !0,
abrEwmaFastLive: 3,
abrEwmaSlowLive: 9,
abrEwmaFastVoD: 3,
abrEwmaSlowVoD: 9,
abrEwmaDefaultEstimate: 5e5,
abrBandWidthFactor: .95,
abrBandWidthUpFactor: .7,
abrMaxWithRealBitrate: !1,
maxStarvationDelay: 4,
maxLoadingDelay: 4,
minAutoBitrate: 0,
emeEnabled: !1,
widevineLicenseUrl: undefined,
requestMediaKeySystemAccessFunc: pr
};
[Link] = nr, [Link] = ir,
[Link] = Zi, [Link] = Ge, fr.enableCEA708Captions = !0,
[Link] = !0, fr.captionsTextTrack1Label = "English",
fr.captionsTextTrack1LanguageCode = "en", fr.captionsTextTrack2Label = "Spanish",
fr.captionsTextTrack2LanguageCode = "es", [Link] = _i,
[Link] = gi, [Link] = ur;
var vr = function() {
function e(e, t) {
for (var i = 0; i < [Link]; i++) {
var r = t[i];
[Link] = [Link] || !1, [Link] = !0, "value"
in r && ([Link] = !0), [Link](e, [Link], r)
}
}
return function(t, i, r) {
return i && e([Link], i), r && e(t, r), t
}
}();
i(12);
var gr = function() {
function e() {
var t = this,
i = [Link] > 0 && arguments[0] !== undefined ?
arguments[0] : {};
Ue(this, e);
var r = [Link];
if (([Link] || [Link]) &&
([Link] || [Link])) throw new Error("Illegal [Link]
config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and
liveSyncDuration/liveMaxLatencyDuration");
for (var s in r) s in i || (i[s] = r[s]);
if ([Link] !== undefined &&
[Link] <= [Link]) throw new Error('Illegal
[Link] config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');
if ([Link] !== undefined &&
([Link] <= [Link] || [Link] ===
undefined)) throw new Error('Illegal [Link] config: "liveMaxLatencyDuration" must
be gt "liveSyncDuration"');
Object(qe.a)([Link]), [Link] = i, this._autoLevelCapping =
-1;
var o = [Link] = new xt.a;
[Link] = function(e) {
for (var t = [Link], i = Array(t > 1 ? t - 1 : 0), r
= 1; r < t; r++) i[r - 1] = arguments[r];
[Link](o, [e, e].concat(i))
}, [Link] = function(e) {
for (var t = [Link], i = Array(t > 1 ? t - 1 : 0), r
= 1; r < t; r++) i[r - 1] = arguments[r];
[Link](o, [e].concat(i))
}, [Link] = [Link](o), [Link] = [Link](o), [Link] =
[Link](o);
var n = [Link] = new [Link](this),
a = new [Link](this),
l = new [Link](this),
d = new [Link](this),
h = new mt(this),
c = new _t(this),
u = new wt(this),
p = new Qt(this),
f = [Link] = new Yt(this),
v = new Ft(this),
g = [Link] = new Kt(this, v),
y = [f, g],
m = [Link];
m && [Link](new m(this, v)), [Link] = y;
var b = [h, c, u, n, a, l, d, p, v];
if (m = [Link]) {
var _ = new m(this);
[Link] = _, [Link](_)
}
if (m = [Link]) {
var E = new m(this);
[Link] = E, [Link](E)
}
if (m = [Link]) {
var w = new m(this);
[Link] = w, [Link](w)
}[[Link],
[Link]].forEach(function(e) {
e && [Link](new e(t))
}), [Link] = b
}
return [Link] = function() {
return Y()
}, vr(e, null, [{
key: "version",
get: function() {
return "0.9.1"
}
}, {
key: "Events",
get: function() {
return Ke.a
}
}, {
key: "ErrorTypes",
get: function() {
return je.b
}
}, {
key: "ErrorDetails",
get: function() {
return je.a
}
}, {
key: "DefaultConfig",
get: function() {
return [Link] ? [Link] : fr
},
set: function(t) {
[Link] = t
}
}]), [Link] = function() {
[Link]("destroy"), [Link]([Link]),
[Link](),
[Link]([Link]).forEach(function(e) {
[Link]()
}), [Link] = null, [Link](),
this._autoLevelCapping = -1
}, [Link] = function(e) {
[Link]("attachMedia"), [Link] = e,
[Link](Ke.a.MEDIA_ATTACHING, {
media: e
})
}, [Link] = function() {
[Link]("detachMedia"), [Link](Ke.a.MEDIA_DETACHING),
[Link] = null
}, [Link] = function(e) {
e = [Link]([Link], e, {
alwaysNormalize: !0
}), [Link]("loadSource:" + e), [Link] = e,
[Link](Ke.a.MANIFEST_LOADING, {
url: e
})
}, [Link] = function() {
var e = [Link] > 0 && arguments[0] !== undefined ?
arguments[0] : -1;
[Link]("startLoad(" + e + ")"),
[Link](function(t) {
[Link](e)
})
}, [Link] = function() {
[Link]("stopLoad"), [Link](function(e) {
[Link]()
})
}, [Link] = function() {
[Link]("swapAudioCodec"), [Link]()
}, [Link] = function() {
[Link]("recoverMediaError");
var e = [Link];
[Link](), [Link](e)
}, vr(e, [{
key: "levels",
get: function() {
return [Link]
}
}, {
key: "currentLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link]("set currentLevel:" + e), [Link] = e,
[Link]()
}
}, {
key: "nextLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link]("set nextLevel:" + e),
[Link] = e, [Link]()
}
}, {
key: "loadLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link]("set loadLevel:" + e),
[Link] = e
}
}, {
key: "nextLoadLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link] = e
}
}, {
key: "firstLevel",
get: function() {
return [Link]([Link],
[Link])
},
set: function(e) {
[Link]("set firstLevel:" + e),
[Link] = e
}
}, {
key: "startLevel",
get: function() {
return [Link]
},
set: function(e) {
[Link]("set startLevel:" + e);
var t = this; - 1 !== e && (e = [Link](e, [Link])),
[Link] = e
}
}, {
key: "autoLevelCapping",
get: function() {
return this._autoLevelCapping
},
set: function(e) {
[Link]("set autoLevelCapping:" + e), this._autoLevelCapping =
e
}
}, {
key: "autoLevelEnabled",
get: function() {
return -1 === [Link]
}
}, {
key: "manualLevel",
get: function() {
return [Link]
}
}, {
key: "minAutoLevel",
get: function() {
for (var e = this, t = [Link], i = [Link], r
= t ? [Link] : 0, s = 0; s < r; s++) {
if ((t[s].realBitrate ? [Link](t[s].realBitrate,
t[s].bitrate) : t[s].bitrate) > i) return s
}
return 0
}
}, {
key: "maxAutoLevel",
get: function() {
var e = this,
t = [Link],
i = [Link];
return -1 === i && t && [Link] ? [Link] - 1 : i
}
}, {
key: "nextAutoLevel",
get: function() {
var e = this;
return [Link]([Link]([Link],
[Link]), [Link])
},
set: function(e) {
var t = this;
[Link] = [Link]([Link], e)
}
}, {
key: "audioTracks",
get: function() {
var e = [Link];
return e ? [Link] : []
}
}, {
key: "audioTrack",
get: function() {
var e = [Link];
return e ? [Link] : -1
},
set: function(e) {
var t = [Link];
t && ([Link] = e)
}
}, {
key: "liveSyncPosition",
get: function() {
return [Link]
}
}, {
key: "subtitleTracks",
get: function() {
var e = [Link];
return e ? [Link] : []
}
}, {
key: "subtitleTrack",
get: function() {
var e = [Link];
return e ? [Link] : -1
},
set: function(e) {
var t = [Link];
t && ([Link] = e)
}
}, {
key: "subtitleDisplay",
get: function() {
var e = [Link];
return !!e && [Link]
},
set: function(e) {
var t = [Link];
t && ([Link] = e)
}
}]), e
}();
t["default"] = gr
}, function(e, t, i) {
function r(e) {
function t(r) {
if (i[r]) return i[r].exports;
var s = i[r] = {
i: r,
l: !1,
exports: {}
};
return e[r].call([Link], s, [Link], t), s.l = !0, [Link]
}
var i = {};
t.m = e, t.c = i, t.i = function(e) {
return e
}, t.d = function(e, i, r) {
t.o(e, i) || [Link](e, i, {
configurable: !1,
enumerable: !0,
get: r
})
}, t.r = function(e) {
[Link](e, "__esModule", {
value: !0
})
}, t.n = function(e) {
var i = e && e.__esModule ? function() {
return e["default"]
} : function() {
return e
};
return t.d(i, "a", i), i
}, t.o = function(e, t) {
return [Link](e, t)
}, t.p = "/", [Link] = function(e) {
throw [Link](e), e
};
var r = t(t.s = ENTRY_MODULE);
return r["default"] || r
}

function s(e) {
return (e + "").replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&")
}

function o(e, t, r) {
var o = {};
o[r] = [];
var n = [Link](),
a = [Link](/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);
if (!a) return o;
for (var h, c = a[1], u = new RegExp("(\\\\n|\\W)" + s(c) + d, "g"); h
= [Link](n);) "dll-reference" !== h[3] && o[r].push(h[3]);
for (u = new RegExp("\\(" + s(c) + '\\("(dll-reference\\s(' + l +
'))"\\)\\)' + d, "g"); h = [Link](n);) e[h[2]] || (o[r].push(h[1]), e[h[2]] =
i(h[1]).m), o[h[2]] = o[h[2]] || [], o[h[2]].push(h[4]);
return o
}

function n(e) {
return [Link](e).reduce(function(t, i) {
return t || e[i].length > 0
}, !1)
}

function a(e, t) {
for (var i = {
main: [t]
}, r = {
main: []
}, s = {
main: {}
}; n(i);)
for (var a = [Link](i), l = 0; l < [Link]; l++) {
var d = a[l],
h = i[d],
c = [Link]();
if (s[d] = s[d] || {}, !s[d][c] && e[d][c]) {
s[d][c] = !0, r[d] = r[d] || [], r[d].push(c);
for (var u = o(e, e[d][c], d), p = [Link](u), f = 0; f
< [Link]; f++) i[p[f]] = i[p[f]] || [], i[p[f]] = i[p[f]].concat(u[p[f]])
}
}
return r
}
var l = "[\\.|\\-|\\+|\\w|/|@]+",
d = "\\((/\\*.*?\\*/)?s?.*?(" + l + ").*?\\)";
[Link] = function(e, t) {
t = t || {};
var s = {
main: i.m
},
o = [Link] ? {
main: [Link](s)
} : a(s, e),
n = "";
[Link](o).filter(function(e) {
return "main" !== e
}).forEach(function(e) {
for (var t = 0; o[e][t];) t++;
o[e].push(t), s[e][t] = "(function(module, exports,
__webpack_require__) { [Link] = __webpack_require__; })", n = n + "var " +
e + " = (" + [Link]().replace("ENTRY_MODULE", [Link](t)) + ")({" +
o[e].map(function(t) {
return [Link](t) + ": " + s[e][t].toString()
}).join(",") + "});\n"
}), n = n + "(" + [Link]().replace("ENTRY_MODULE",
[Link](e)) + ")({" + [Link](function(e) {
return [Link](e) + ": " + [Link][e].toString()
}).join(",") + "})(self);";
var l = new [Link]([n], {
type: "text/javascript"
});
if ([Link]) return l;
var d = [Link] || [Link] || [Link] ||
[Link],
h = [Link](l),
c = new [Link](h);
return [Link] = h, c
}
}, function(e, t, i) {
"use strict";
[Link](t, "__esModule", {
value: !0
});
var r = i(8),
s = i(1),
o = i(0),
n = i(6),
a = i.n(n),
l = function(e) {
var t = new a.a;
[Link] = function(e) {
for (var i = [Link], r = Array(i > 1 ? i - 1 : 0), s
= 1; s < i; s++) r[s - 1] = arguments[s];
[Link](t, [e, e].concat(r))
}, [Link] = function(e) {
for (var i = [Link], r = Array(i > 1 ? i - 1 : 0), s
= 1; s < i; s++) r[s - 1] = arguments[s];
[Link](t, [e].concat(r))
};
var i = function(t, i) {
[Link]({
event: t,
data: i
})
};
[Link]("message", function(s) {
var n = [Link];
switch ([Link]) {
case "init":
var a = [Link]([Link]);
[Link] = new r.a(t, [Link], a, [Link]);
try {
Object(o.a)(!0 === [Link])
} catch (l) {
[Link]("demuxerWorker: unable to enable
logs")
}
i("init", null);
break;
case "demux":
[Link]([Link], [Link], [Link],
[Link], [Link], [Link], [Link], [Link],
[Link], [Link], [Link], [Link])
}
}), [Link](s.a.FRAG_DECRYPTED, i),
[Link](s.a.FRAG_PARSING_INIT_SEGMENT, i), [Link](s.a.FRAG_PARSED, i), [Link]([Link],
i), [Link](s.a.FRAG_PARSING_METADATA, i), [Link](s.a.FRAG_PARSING_USERDATA, i),
[Link](s.a.INIT_PTS_FOUND, i), [Link](s.a.FRAG_PARSING_DATA, function(t, i) {
var r = [],
s = {
event: t,
data: i
};
i.data1 && (s.data1 = [Link], [Link]([Link]),
delete i.data1), i.data2 && (s.data2 = [Link], [Link]([Link]),
delete i.data2), [Link](s, r)
})
};
t["default"] = l
}, function(e, t) {
[Link] || function() {
"use strict";
var e = function() {
try {
var e = {},
t = [Link],
i = t(e, e, e) && t
} catch (r) {}
return i
}(),
t = {}.toString,
i = function(e) {
if (null == this) throw TypeError();
var i = String(this);
if (e && "[object RegExp]" == [Link](e)) throw TypeError();
var r = [Link],
s = String(e),
o = [Link],
n = r;
if ([Link] > 1) {
var a = arguments[1];
a !== undefined && (n = a ? Number(a) : 0) != n && (n = 0)
}
var l = [Link]([Link](n, 0), r),
d = l - o;
if (d < 0) return !1;
for (var h = -1; ++h < o;)
if ([Link](d + h) != [Link](h)) return !1;
return !0
};
e ? e([Link], "endsWith", {
value: i,
configurable: !0,
writable: !0
}) : [Link] = i
}()
}])["default"]
}),
function() {
var e = function() {
this.http_protocol = !1, this.static_domain = !1, this.i18n = !1,
[Link] = {}, [Link] = {}
};
[Link] = {
setHttpProtocol: function(e) {
this.http_protocol = e
},
setStaticDomain: function(e) {
this.static_domain = e
},
setI18n: function(e) {
this.i18n = e
},
createElt: function(e, t, i, r) {
var s = [Link](e);
return t && ([Link] = t), i && ([Link] = i), r && ([Link] = r),
s
},
createInput: function(e, t, i, r, s) {
var o = [Link]("input", r, s);
return [Link] = t, [Link] = e, i && ([Link] = i), o
},
hideElt: function(e) {
[Link] = "none"
},
showElt: function(e, t) {
[Link] = t || ""
},
presetHide: function(e) {
if ("object" != typeof e) [Link][e] = !1;
else
for (var t in e) [Link][e[t]] = !1
},
presetShow: function(e) {
if ("object" != typeof e) [Link][e] = !0;
else
for (var t in e) [Link][e[t]] = !0
},
applyVisibitlity: function() {
for (var e in [Link])
[Link](e) && "undefined" == typeof this[e] ||
"undefined" != typeof [Link][e] && [Link][e] ===
[Link][e] || ([Link][e] = [Link][e],
[Link][e] ? ([Link](this[e]), "pausebt" === e &&
[Link](this.video_div, "paused")) : ([Link](this[e]), "pausebt" === e
&& [Link](this.video_div, "paused")));
[Link] = {}
},
createImgBtn: function(e, t, i) {
var r = [Link]("img");
return [Link] = this.http_protocol + "://" + this.static_domain +
"/v3/img/player/" + e, t && ([Link] = [Link](this.i18n.__(t, i))), r
},
unescape: function(e) {
var t = [Link]("div");
return [Link] = e, 0 === [Link] ? "" :
[Link][0].nodeValue
},
addClass: function(e, t) {
if (-1 === (" " + [Link] + " ").indexOf(" " + t + " ")) return
[Link] = [Link] + " " + t, e
},
removeClass: function(e, t) {
if (void 0 === t || 0 === [Link]) return [Link] = "", e;
for (var i = [Link](" "), r = [Link](" "), s = 0; s <
[Link]; s++)
if (t = r[s], 0 !== [Link])
for (var o = 0; o < [Link]; o++) i[o] === t && ([Link](o,
1), o--);
return i = [Link](" "), [Link] !== i ? ([Link] = i, e) : void
0
}
}, [Link] = {}, [Link] = e
}(),
function() {
var e = function(e, t, i, r, s, o, n) {
[Link](this), this.skip_time = 5, [Link]("new VideoAds",
e, t, i, r, s, o, n), this.view_callback = e, this.stats_callback = t,
this.video_url = i, this.click_url = r, [Link] = s, [Link] = o,
this.instant_skip = n, this.is_ios = !1, this.use_ios_fake_play = !1, [Link]
= !1, this.interval_update = !1, this.start_muted = !0, this.can_skip = !1,
this.desktop_view = !1, /iPad|iPhone|iPod/.test([Link]) && !
[Link] && (this.is_ios = !0, /OS [1-9]_/.test([Link]) &&
(this.use_ios_fake_play = !0))
};
[Link] = new [Link], [Link] = null,
[Link] = null, [Link] = function() {
this.start_muted = !1
}, [Link] = function(e) {
this.desktop_view = e
}, [Link] = function() {
return [Link] ? [Link] : [Link]
}, [Link] = function() {
return this.click_url
}, [Link] = function() {
var e = this;
return this.video_ad_div = [Link]("div", "videoad-base"),
this.video_ad_div.addEventListener("dblclick", function(e) {
[Link](), [Link]("DblClick catched")
}), this.video_ad_div.addEventListener("click", function(e) {
[Link](), [Link]("Click catched")
}), [Link] = [Link]("video", "videoad-video"), this.is_ios ?
this.use_ios_fake_play ? [Link]([Link], "videoad-nocontrol-ios") :
[Link]("playsinline", "") : [Link] = !1,
this.start_muted ? ([Link]("VideoAds: Start the video muted"),
[Link] = "muted") : [Link]("VideoAds: Start the video with sound"),
[Link] = "autoplay", [Link] = this.video_url,
this.video_ad_div.appendChild([Link]), [Link]("click",
function() {
[Link]("Click video ads")
}), [Link]("playing", function() {
[Link]("VideoAdEvent: Playing at " + [Link] + " /
" + [Link], "Player"), [Link] || ([Link] = !0,
[Link]()), [Link]()
}), [Link]("error", function() {
[Link]("VideoAdEvent: error at " + [Link] + " / "
+ [Link], "Player"), [Link]("error"), [Link]()
}), [Link]("ended", function() {
[Link]("VideoAdEvent: Ended at " + [Link] + " / "
+ [Link], "Player"), [Link]("full"), [Link]()
}), [Link]("timeupdate", function() {
e.video_status.innerHTML = [Link]([Link]) + " /
" + [Link]([Link]), [Link]()
}), this.video_click_div = [Link]("div", "videoad-click"),
this.video_click_div.addEventListener("click", function(t) {
[Link](), [Link] ? [Link]() : [Link]()
}), this.video_ad_div.appendChild(this.video_click_div),
this.use_ios_fake_play || ([Link] = [Link]("div", "progress-
bar-bg"), this.video_ad_div.appendChild([Link]), [Link] =
[Link]("div", "progress-bar"), [Link] = "100%",
this.video_ad_div.appendChild([Link]), [Link] =
[Link]("div", "progress-bar-cursor"),
[Link]([Link]), [Link] =
[Link]("div", "buttons-bar left"),
[Link]("touchstart", function(e) {
[Link]()
}), this.video_ad_div.appendChild([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Small Play Butt click"), [Link](),
[Link](), [Link]()
}, !1), [Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Small Pause Btt click"), [Link](),
[Link](), [Link]()
}, !1), [Link]([Link]), [Link]
= [Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link](), [Link] = "muted", [Link]()
}), [Link]([Link]), [Link]
= [Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link](), [Link] = !1, [Link]()
}), [Link]([Link]), this.video_status
= [Link]("div", "videoad-status"), this.video_status.[Link] = "100px",
[Link](this.video_status), [Link] =
[Link]("div", "buttons-bar right"),
this.video_ad_div.appendChild([Link]), this.is_ios ||
([Link] = [Link]("[Link]",
"[Link]"), [Link]("click", function(t) {
[Link]("Fullscreen click addEventListener"), [Link](),
[Link]()
}), [Link]([Link]))),
this.skip_button = [Link]("div", "videoad-skip"),
this.video_ad_div.appendChild(this.skip_button), this.skip_button_txt =
[Link]("div", "videoad-skip-txt"),
this.skip_button.appendChild(this.skip_button_txt), this.title_div =
[Link]("div", "videoad-title noselect"),
this.title_div.addEventListener("click", function(t) {
[Link](), [Link](), [Link](e.click_url,
"_blank")
}), this.title_txt = [Link]("div", "videoad-title-txt"), [Link]
? this.title_txt.innerHTML = [Link] : this.title_txt.innerHTML = [Link],
this.title_div.appendChild(this.title_txt), this.title_icon =
[Link]("[Link]", [Link]), this.title_icon.className =
"videoad-title-icon", this.title_div.appendChild(this.title_icon),
this.video_ad_div.appendChild(this.title_div), this.interval_update =
setInterval(function() {
return [Link] ? !e.instant_skip && [Link] < e.skip_time
? void(e.skip_button_txt.innerHTML = e.i18n.__("player.can_skip_in_sec", {
"%nb_secs%": [Link](e.skip_time - [Link] +
1).toString()
}, "Can skip in %nb_secs% sec")) : (clearInterval(e.interval_update),
e.skip_button_txt.innerHTML = e.i18n.__("player.skip_ad", null, "Skip ad") + "
<span class='icon-f icf-play-square-o'></span>",
e.skip_button.addEventListener("click", function(t) {
[Link](), [Link]("skip"), [Link]()
}), [Link](e.skip_button, "skippable"), void(e.can_skip = !0)) :
void(e.skip_button_txt.innerHTML = e.i18n.__("[Link]", null, "Loading..."))
}, 200), this.use_ios_fake_play ? this.ios_interval =
setInterval(function() {
if ([Link]) {
if ([Link] - .1 >= [Link]) return
[Link]("full"), void [Link]();
[Link] = !0, [Link] = [Link] + .033
}
}, 33) : [Link](), this.skip_timeout = setTimeout(function() {
[Link]("Skip timeout"), [Link] ||
([Link]("error"), [Link]()), e.can_skip || ([Link]("Wahou ..
skip can't skip after 15 sec"), [Link]("error"), [Link]())
}, 15e3), [Link](), this.redraw_internal = setInterval(function() {
[Link]()
}, 300), [Link]("VideoAds : div loaded", "Player"),
this.video_ad_div
}, [Link] = function() {
var e = (this.video_ad_div.offsetWidth, this.video_ad_div.offsetHeight,
[Link]()),
t = 1.4;
this.desktop_view && (t = .9);
var i = function(t, i, r) {
[Link] = [Link](i * e) + "px", r && ([Link] =
[Link](r * e) + "px")
},
r = function(t) {
for (var i = [], r = 1; r < [Link]; r++)
[Link]([Link](arguments[r] * e) + "px");
[Link] = [Link](" ")
},
s = function(e, t, s) {
i(e, t, s);
for (var o = [e], n = 3; n < [Link]; n++)
[Link](arguments[n]);
[Link](this, o)
},
o = 2.5;
if (this.desktop_view && (o = 3.5), [Link] =
[Link]([Link], [Link]) * o +
"px", [Link] && s([Link], 28 * t, 28 * t, 5 * t, 7 *
t), [Link] && (s([Link], 23 * t, 23 * t, 5 * t, 7 * t),
[Link] ? [Link] = "inline" :
[Link] = "none"), [Link] && (s([Link], 23 *
t, 23 * t, 5 * t, 7 * t), [Link] ? [Link] =
"none" : [Link] = "inline"), [Link] &&
(s([Link], 28 * t, 28 * t, 5 * t, 7 * t), [Link] ?
[Link] = "none" : [Link] =
"inline"), [Link] && (s([Link], 28 * t, 28 * t, 5 * t, 7 *
t), [Link] ? [Link] = "inline" :
[Link] = "none"), [Link])
if ([Link] = [Link] +
"px", [Link] = [Link](5 * e) + "px", [Link]
&& [Link]) {
var n = [Link]([Link] / [Link] *
100);
[Link] = n + "%"
} else [Link] = "0%";
[Link] && (this.skip_button.[Link] =
[Link] + [Link] + "px",
this.video_status.[Link] = [Link] / 1.5 + "px")
}, [Link] = function() {
clearInterval(this.interval_update), this.ios_interval &&
clearInterval(this.ios_interval), this.redraw_internal &&
clearInterval(this.redraw_internal), [Link](), delete [Link],
[Link]()
}, [Link] = function() {
if (this.view_callback) {
var e = createRequestObject();
[Link]("GET", this.view_callback, !0), [Link] = !0,
[Link] = function() {
4 === [Link] && 200 === [Link] && [Link]("View
callback done")
};
try {
[Link]()
} catch (t) {
return
}
}
}, [Link] = function(e) {
if (this.stats_callback) {
var t = this.stats_callback + e + "-" + [Link] + "-" +
[Link],
i = createRequestObject();
[Link]("GET", t, !0), [Link] = function() {
4 === [Link] && 200 === [Link] && [Link]("Stats
callback done")
};
try {
[Link]()
} catch (r) {
return
}
}
}, [Link] = function(e) {
var t = [Link](e / 60),
i = [Link](e - 60 * t);
return i < 10 && (i = "0" + i), t < 10 && (t = "0" + t), t + ":" + i
}, [Link] = function() {
var e = this.video_ad_div.offsetHeight;
return this.video_ad_div.offsetWidth < e && (e =
this.video_ad_div.offsetWidth), e
}, [Link] = function() {
var e = [Link]();
return [Link] ? [Link](.04 * e) : [Link](.06 * e)
}, [Link] = function() {
return this.desktop_view ? .8 : [Link]() / 400
}, [Link] = e
}(), [Link] = {
createElt: function(e, t, i, r) {
var s = [Link](e);
return t && ([Link] = t), i && ([Link] = i), r && ([Link] = r), s
},
createInput: function(e, t, i, r, s) {
var o = [Link]("input", r, s);
return [Link] = t, [Link] = e, i && ([Link] = i), o
},
hideElt: function(e) {
[Link] = "none"
},
showElt: function(e, t) {
[Link] = t || ""
},
presetHide: function(e) {
if ("object" != typeof e) [Link][e] = !1;
else
for (var t in e) [Link][e[t]] = !1
},
presetShow: function(e) {
if ("object" != typeof e) [Link][e] = !0;
else
for (var t in e) [Link][e[t]] = !0
},
applyVisibitlity: function() {
for (var e in [Link])
[Link](e) && "undefined" == typeof this[e] ||
"undefined" != typeof [Link][e] && [Link][e] ===
[Link][e] || ([Link][e] = [Link][e],
[Link][e] ? ([Link](this[e]), "pausebt" === e &&
[Link](this.video_div, "paused")) : ([Link](this[e]), "pausebt" === e
&& [Link](this.video_div, "paused")));
[Link] = {}
},
createImgBtn: function(e, t, i) {
var r = [Link]("img");
return [Link] = this.http_protocol + "://" + this.static_domain +
"/v3/img/player/" + e, t && ([Link] = [Link](this.i18n.__(t, i))), r
},
unescape: function(e) {
var t = [Link]("div");
return [Link] = e, 0 === [Link] ? "" :
[Link][0].nodeValue
},
addClass: function(e, t) {
if (-1 === (" " + [Link] + " ").indexOf(" " + t + " ")) return
[Link] = [Link] + " " + t, e
},
removeClass: function(e, t) {
if (void 0 === t || 0 === [Link]) return [Link] = "", e;
for (var i = [Link](" "), r = [Link](" "), s = 0; s < [Link];
s++)
if (t = r[s], 0 !== [Link])
for (var o = 0; o < [Link]; o++) i[o] === t && ([Link](o, 1),
o--);
return i = [Link](" "), [Link] !== i ? ([Link] = i, e) : void 0
},
appendToVideoDiv: function(e) {
this.video_div.appendChild(e), [Link]("touchstart", function(e)
{
[Link]()
})
},
setVideoTitle: function(e) {
this.video_title = e
},
setSponsors: function(e) {
[Link] = e
},
setVideoUrlLow: function(e) {
this.url_low = e
},
setVideoUrlHigh: function(e) {
this.url_high = e
},
setVideoHLS: function(e) {
this.url_hls = e
},
setThumbUrl: function(e) {
this.url_thumb = e
},
setRelated: function(e) {
this.related_array = e
},
setThumbSlide: function(e) {
this.thumb_slide = e
},
setThumbSlideBig: function(e) {
this.thumb_slide_big = e
},
setThumbSlideMinute: function(e) {
this.thumb_slide_min = e
},
setThumbUrl169: function(e) {
this.url_thumb169 = e
},
setIdCDN: function(e) {
this.id_cdn = e
},
setIdCdnHLS: function(e) {
this.id_cdn_hls = e
},
setFakePlayer: function(e) {
this.fake_player = e
},
setDesktopiew: function(e) {
this.desktop_view = e
},
setIsSmartTv: function(e) {
this.is_smarttv = e
},
forceNativeHls: function(e) {
[Link] = e
},
setUploaderName: function(e) {
this.uploader_name = e
},
forceDoubleClickAd: function(e) {
this.need_doubleclick_ad = e
},
setIsEmbed: function() {
this.is_embed = !0
},
setDisplayInPlayerSquare: function() {
this.display_inplayersquare = !0
},
setVideoURL: function(e) {
this.video_url = e
},
setSendDeviceSpeed: function(e) {
this.send_device_speed = e
},
setActivateFithteenPercentBorder: function() {
this.ads_active_fithteenpercentborder = !0
},
setSendAdClickDebug: function() {
this.send_adclick_debug = !0
},
setHttps: function() {
this.http_protocol = "https"
},
setCanUseHttps: function() {
this.https_protocol = "https"
},
setStaticDomain: function(e) {
e && (this.static_domain = e)
},
setSeekBarColor: function(e) {
[Link]("setSeekBarColor : " + e), this.seek_bar_color = e
},
setPageReferer: function(e) {
this.page_referer = e
},
setIsPremiumSite: function() {
this.is_premium_site = !0
},
setIsPremiumVideo: function() {
this.is_premium_video = !0
},
setFlashCodeAvailable: function() {
this.flashcode_available = !0
},
setPlaylist: function(e, t, i, r, s) {
if ([Link] && !([Link] <= 1)) {
[Link] = {
current: !1,
prev: !1,
next: !1,
idx: 0,
length: r || [Link]
};
var o;
for (o in i)
if (i[o].id == this.id_video) {
"string" == typeof o && (o = parseInt(o)),
[Link] = i[o], o > 0 && ([Link] = i[o - 1]), o <
[Link] - 1 && ([Link] = i[o + 1]);
break
}
if (![Link]) return void([Link] = !1);
[Link] && [Link] && ([Link]
= "visible", [Link] =
[Link](this.i18n.__("player.previous_pl_video", {
"%name%": '"' + [Link].title_full + '"'
}))), [Link] && [Link] &&
([Link] = "visible", [Link] =
[Link](this.i18n.__("player.next_pl_video", {
"%name%": '"' + [Link].title_full + '"'
}))), [Link] += '<br><span class="playlist"><span
class="label">' + this.i18n.__("[Link]") + ":</span> " + e + " (" +
this.i18n.__("player.video_pos_in_nb", {
"%current_video_index%": ((s || o) + 1).toString(),
"%nb_videos%": [Link]()
}) + ")</span>";
var n = this;
this.desktop_view && this.use_parameter_menu &&
[Link](-1, "playlistautoplay", this.i18n.__("[Link]"), !
0, function(e) {}, function(e) {
[Link]("Playlist autoplay"), [Link](),
[Link](![Link]), [Link] = [Link], [Link]()
}, function(e) {
[Link] ? [Link](!0) : [Link]("Init no
playlist autoplay")
}), [Link](), [Link](), !this.desktop_view ||
[Link] || ![Link] || "boolean" == typeof [Link]
&& [Link] || ([Link] ? (trigger =
[Link](), [Link]("onclick", trigger)) : (trigger
= [Link]("HTMLEvents"), [Link]("click", !0, !0),
[Link](trigger)), this.get_cookie("html5_plfullscreen") &&
[Link]())
}
},
initPlayer: function() {
if (!this.player_init) {
this.player_init = !0;
var e = this;
[Link]("Useragent:" + [Link]()), /iPad|
iPhone|iPod/.test([Link]) && ![Link] ?
(/iPad/.test([Link]) && ![Link] ? (this.is_ipad = !0,
[Link]("is iPad")) : (this.is_ios = !0, [Link]("is iOS")), /OS [1-
9]_/.test([Link]) ? (this.is_old_ios = !0, this.use_browser_controls =
!0) : (this.use_browser_controls = !0, !this.is_ipad && /OS 1[1-
3]_/.test([Link]) && ([Link]("iPhone iOS 11"),
this.allow_touchseek = !0, this.force_play_fullscreen = !0,
this.use_browser_controls = !1), this.is_new_iphone = !0)) : !/android 4.[2-
9]/.test([Link]()) || /chrome\/[4-
9]/.test([Link]()) ||
/firefox/.test([Link]()) || /ubuntu
/.test([Link]()) ? [Link]() ||
([Link]("Fullscreen not supported, use browser controls"),
this.use_browser_controls = !0) : ([Link]("Old browser detected"),
this.use_browser_controls = !0), (/android
4.4/.test([Link]()) || /android [5-
9]/.test([Link]())) && (/chrome\/[4-
9]/.test([Link]()) ||
/firefox/.test([Link]())) ? (this.allow_touchseek = !0,
[Link]("allow TouchSeek")) : this.desktop_view && ([Link]("Is a
desktop"), this.allow_touchseek = !0), this.support_hlsjs = [Link](),
(this.is_ios || this.is_ipad) && (this.support_hlsjs = !1, this.use_parameter_menu
= !1);
var t = [Link]("video");
if ("undefined" != typeof [Link] && "" !==
[Link]("application/[Link]") && ([Link]("Support Native
HLS"), this.support_native_hls = !0), this.desktop_view && -1 !=
[Link]("Safari") && -1 ==
[Link]("Chrome") && (this.support_native_hls &&
(this.is_safari = !0, this.support_hlsjs = !1, [Link]("Safari do not support
[Link]")), ![Link]())) return [Link]("Old safari browser,
switch to Flash"), void [Link]();
if (this.fake_player || "undefined" == typeof [Link])
return void [Link]();
if ("undefined" != typeof [Link] && "" ===
[Link]('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')) return
[Link]("This browser do not support MP4"), void [Link]();
if ([Link](), /playstation 4
/.test([Link]()) && ([Link]("Playstation 4
detected"), this.is_ps4 = !0), "" !== this.url_hls && (this.support_native_hls &&
(this.is_ios || this.is_ipad || this.is_safari || this.is_ps4 ||
[Link]) ? this.use_native_hls = !0 : this.support_hlsjs &&
(this.support_native_hls && [Link] ? this.use_native_hls = !0 :
this.use_hls = !0)), this.desktop_view)
if (this.is_smarttv) {
if (![Link]()) {
if ([Link]()) return this.is_flashplayer_displayed =
!0, void [Link]("SmartTV with flash. Displaying Flash");
if (!this.support_native_hls && !/tizen
/.test([Link]())) return void [Link]();
this.support_native_hls && "" !== this.url_hls &&
(this.use_native_hls = !0)
}
} else if (!this.use_hls && !this.use_native_hls &&
[Link]()) return [Link]("Old Desktop without HLS or native HLS.
Displaying Flash"), void(this.is_flashplayer_displayed = !0);
[Link](), [Link](), [Link](),
[Link](!0), [Link]("loadstart", function() {
[Link]("VideoEvent: loadstart"), [Link] && e.use_hls &&
[Link] && [Link](), [Link] = !1, [Link](),
[Link]()
}), [Link]("timeupdate", function() {
1 !== [Link] && 2 !== [Link] ||
([Link](), [Link]())
}), [Link]("progress", function() {
1 !== [Link] && 2 !== [Link] ||
([Link](), [Link]())
}), [Link]("play", function() {
[Link]("VideoEvent: play at " + [Link] + " / "
+ [Link], "Player"), e.use_hls && ![Link] &&
([Link]("VideoEvent play: play not clicked, force pause"), [Link]()),
[Link](), [Link](), e.is_ps4 && !e.PS4FirstSeekDone &&
(e.PS4FirstSeekDone = !0, [Link](.5))
}), [Link]("seeking", function() {
[Link]("VideoEvent: seeking at " + [Link] +
" / " + [Link], "Player"), [Link] = !1, [Link](),
[Link]()
}), [Link]("waiting", function() {
[Link]("VideoEvent: Waiting", "Player"), [Link](),
[Link]()
}), [Link]("suspend", function() {
[Link]("VideoEvent: Suspend at " + [Link] +
" / " + [Link], "Player"), [Link] = !0, [Link](),
[Link]()
}), [Link]("canplaythrough", function() {
[Link]("VideoEvent: Can Play Throught at " +
[Link] + " / " + [Link], "Player"), [Link] = !0,
[Link](), [Link](), [Link]()
}), [Link]("canplay", function() {
[Link]("VideoEvent: Can Play at " + [Link] + "
/ " + [Link], "Player"), [Link] = !0, [Link](),
[Link](), [Link]()
}), [Link]("playing", function() {
[Link]("VideoEvent: Playing at " + [Link] +
" / " + [Link], "Player"), [Link] = !0, [Link] &&
(clearTimeout([Link]), delete [Link]), [Link](),
[Link](), e.send_debug_event("playing")
}), [Link]("pause", function() {
[Link]("VideoEvent: Pause at " + [Link] + " /
" + [Link], "Player"), [Link] && [Link] && !
e.forcenobuffer_playafterpause && ([Link](), e.forcenobuffer_playafterpause = !0),
[Link](), [Link](), [Link]()
}), [Link]("error", function() {
[Link]("VideoEvent: error at " + [Link] + " /
" + [Link], "Player"), 3 === [Link] && [Link](),
[Link](), [Link]()
}), [Link]("ended", function() {
[Link]("VideoEvent: Ended at " + [Link] + " / " +
[Link]), [Link](), [Link]()
}), [Link]("abort", function() {
[Link]("VideoEvent: abort at " + [Link] + " /
" + [Link], "Player"), [Link](), [Link]()
}), [Link]("durationchange", function() {
[Link]("VideoEvent: Duration Change at " +
[Link] + " / " + [Link], "Player"), [Link](),
[Link]()
}), [Link]("loadeddata", function() {
[Link]("VideoEvent: Loaded Data", "Player"), [Link] = !
0, [Link](), [Link](), [Link]()
}), [Link]("loadedmetadata", function() {
[Link]("VideoEvent: Loadedmetadata", "Player"), [Link] =
!0, [Link](), [Link](), [Link] = [Link] /
[Link], [Link]("Video ratio", [Link])
}), [Link]("seeked", function() {
[Link]("VideoEvent: Seeked at " + [Link] + " /
" + [Link], "Player");
var t = ![Link];
[Link] = !0, [Link](), [Link](), t &&
[Link]()
}), [Link]("webkitfullscreenchange", function() {
[Link]("webkitfullscreenchange"), [Link]()
}), [Link]("mozfullscreenchange", function() {
[Link]("mozfullscreenchange"), [Link]()
}), [Link]("fullscreenchange", function() {
[Link]("fullscreenchange"), [Link]()
}), [Link]("MSFullscreenChange", function() {
[Link]("MSFullscreenChange"), [Link]()
})
}
},
showPlayer: function() {
this.global_div && ([Link]("HTML5: Show player"),
[Link](this.global_div))
},
drawFakePlayer: function() {
if (this.desktop_view && [Link]()) return
this.is_flashplayer_displayed = !0, [Link]("Desktop with flash. Displaying
Flash"), void [Link]("Use flash player for desktop", "Player");
this.is_fakeplayer_displayed = !0, this.global_div.innerHTML = "",
this.video_div = [Link]("div", "", "fakeplayer"),
this.video_div.[Link] = "relative", this.video_div.[Link] = "100%",
this.video_div.[Link] = "100%", this.video_div.[Link] = "center",
this.video_div.[Link] = "#000",
this.global_div.appendChild(this.video_div);
var e = this;
if ("undefined" != typeof setInterval) {
var t = 0,
i = 0;
this.interval_updated = setInterval(function() {
e.video_div.offsetWidth === t && e.video_div.offsetHeight === i ||
(t = e.video_div.offsetWidth, i = e.video_div.offsetHeight, [Link]())
}, 100)
}
[Link] = [Link]("a", "global-link"),
[Link] = "block", [Link] = "100%",
this.video_div.appendChild([Link]), [Link] =
[Link]("img", "video-bg-pic"), [Link] = "320px",
[Link] = "450px", [Link] = this.url_thumb,
[Link] = "0", [Link]([Link]),
[Link] = [Link]("img", "play-btn"), [Link] =
this.http_protocol + "://" + this.static_domain + "/v3/img/player/fakeplayer-icon-
[Link]", [Link] = "absolute", [Link] =
"128px", [Link] = "128px", [Link] = "0",
[Link]([Link]), [Link] = [Link]("div",
"play-links"), [Link] = "100%", [Link]
= "hidden", this.video_div.appendChild([Link]), [Link] =
[Link]("div", "play-link"), [Link]([Link]);
var r = [Link]("a");
if ([Link] = "block", [Link] = "center", [Link]
= "2px solid #333", [Link] = "2px", [Link] = "#aaa",
[Link] = "bold", [Link] = "1.5",
[Link](r), this.is_embed ? ([Link] = this.http_protocol +
"://[Link]" + this.video_url, [Link] = "_blank", [Link] =
this.i18n.__("player.more_on_site", {
"%site%": "[Link]"
})) : ([Link] = this.url_low, [Link] =
this.i18n.__("player.view_low_qual")), this.url_high.length > 0) {
[Link] = "50%", [Link]["float"] =
"left", [Link] = [Link]("div", "play-link"),
[Link]([Link]), [Link] =
"50%", [Link]["float"] = "right";
var s = [Link]("a");
[Link] = "block", [Link] = "center", [Link]
= "2px solid #333", [Link] = "2px", [Link] = "#aaa",
[Link] = "bold", [Link] = "1.5",
[Link](s), [Link] = this.url_high, [Link] =
this.i18n.__("player.view_high_qual");
var o = [Link]("div");
[Link] = "both", [Link](o)
}
if (this.display_inplayersquare) {
var n = [Link]("player");
n && ([Link] = "100%"), [Link] =
[Link]("div"), [Link] = "absolute",
[Link] = "235px", [Link]
= "338px", [Link] = "4px solid #000",
[Link] = "4px",
[Link] = "#FFF",
[Link] = "100", [Link] =
[Link]("div"), [Link] = "absolute",
[Link] = "4px", [Link] = "4px",
[Link] = "4px", [Link] = "4px",
[Link]([Link]), [Link] =
[Link]("div"), [Link] = "absolute";
var a = "10%";
this.ads_active_fithteenpercentborder && (a = "15%"),
[Link] = a, [Link] = a,
[Link] = a, [Link] = a,
[Link] = "hidden",
[Link]([Link]), [Link] =
[Link]("img"), [Link] = this.http_protocol + "://"
+ this.static_domain + "/v3/img/player/[Link]", [Link] =
[Link](this.i18n.__("player.close_ad")), [Link]
= "absolute", [Link] = "65px",
[Link] = "65px", [Link] = "-4px",
[Link]([Link]), [Link] =
[Link]("img"), [Link] = this.http_protocol +
"://" + this.static_domain + "/v3/img/player/[Link]",
[Link] = "absolute",
[Link] = "0px", [Link] =
"0px", [Link] = "0px",
[Link] = "0px", [Link] =
"100%", [Link] = "100%",
[Link] = "hidden",
[Link]([Link]), "undefined" != typeof
[Link] ?
([Link]("click", function(t) {
[Link]("Close ad 1"), [Link]()
}, !1), [Link]("click", function(t) {
[Link](t, !1)
}, !1), [Link]("click", function(t) {
[Link](t, !0)
}, !1), [Link]("click", function(t) {
[Link](t, !0)
}, !1)) : ([Link] = function() {
[Link]()
}, [Link] = function(t) {
[Link](t, !0)
}), this.video_div.appendChild([Link]),
[Link]()
} else [Link]();
this.send_debug_event("fakeplayerloaded"), [Link]("Fake player
drawed", "Player")
},
redrawFakePlayer: function() {
this.global_div.[Link] = [Link](this.video_div.offsetWidth /
1.7777 + 40) + "px";
var e = this.video_div.offsetHeight;
this.video_div.offsetWidth < e && (e = this.video_div.offsetWidth), e || (e
= 300);
var t = e / 400;
if ([Link] = [Link](30 * t) + "px",
"undefined" != typeof [Link] && ([Link] =
[Link](30 * t) + "px"), [Link] =
[Link](this.video_div.offsetWidth) + "px", [Link] =
[Link](this.video_div.offsetWidth / 1.333) + "px", "undefined" != typeof
[Link] && ([Link] =
[Link](this.video_div.offsetWidth) + "px", [Link] =
[Link](this.video_div.offsetWidth / 1.7777) + "px",
[Link] = "10px"), [Link] =
[Link](150 * t) + "px", [Link] = [Link](150 * t) + "px",
[Link] = [Link]([Link] / 2 - 75 * t) +
"px", [Link] = [Link](this.video_div.offsetWidth / 2 - 75 * t)
+ "px", this.display_inplayersquare && ([Link] =
[Link](85 * t) + "px", [Link] = [Link](85 * t) +
"px", [Link] = "-" +
[Link]([Link] + 35 * t) + "px",
[Link] = [Link](235 * t * 1.2 + 4) + "px",
[Link] = [Link](338 * t * 1.2 + 4) + "px",
[Link] = [Link](45 * t) + "px",
[Link] = [Link](this.video_div.offsetWidth / 2 -
[Link] / 2 - [Link] / 2 - 25
* t) + "px", "undefined" != typeof [Link]))
for (var i = [Link]("img"), r = 0; r <
[Link]; r++) i[r].[Link] = "100%", i[r].[Link] = "100%"
},
fakeplayerAdvertClick: function(e, t) {
if ("undefined" == typeof [Link]) return void [Link]("Ad: No link
found");
if (!this.adsquare_picture_loaded) return void [Link]("Ad picture not
loaded");
var i = this;
if ((t || this.need_doubleclick_ad) && "hidden" ===
[Link]) return
[Link] = "visible", setTimeout(function() {
[Link] = "hidden",
i.doubleclick_debug("dbclicktimeout", !1)
}, 3e3), void this.doubleclick_debug("firstdbclick", e);
[Link]([Link], "_blank"), [Link](), t ||
this.need_doubleclick_ad ? this.doubleclick_debug("secdbclick", e) :
this.doubleclick_debug("firstclick", e)
},
closeFakePlayerAd: function() {
var e = this.url_low;
this.url_high.length > 0 && (e = this.url_high), [Link] = e,
[Link] && ([Link] = "hidden",
[Link] = "hidden", [Link] =
"hidden", [Link] = "hidden"),
[Link] = "visible", (/iPad|iPhone|
iPod/.test([Link]) && ![Link] || /Symbian.3. Series60.5.[3-
5]/.test([Link]) || /UCBrowser/.test([Link]) ||
this.is_smarttv) && ([Link] = [Link]("video"),
[Link] = "controls", [Link] = "100%",
[Link] = "#000", [Link] =
[Link], [Link] = this.url_thumb, this.is_smarttv &&
([Link] = "true"), this.video_div.replaceChild([Link],
[Link]), [Link]([Link])), [Link]()
},
draw: function() {
var e = this;
if (this.send_debug_event("loaded"), this.load_start = (new
Date).getTime(), this.global_div.innerHTML = "", this.global_div.className =
"embed-responsive", this.desktop_view && (this.global_div.className += " desktop"),
this.video_div = [Link]("div", "embed-responsive-item", "hlsplayer"),
this.global_div.appendChild(this.video_div), [Link](),
[Link](), [Link](), this.use_browser_controls ?
([Link](), [Link](), this.uploader_name
&& ([Link]([Link]), [Link]
= "absolute", [Link] = "0",
[Link] = "0")) : ([Link](),
[Link](), [Link]()), this.use_parameter_menu ||
[Link](), this.is_embed && [Link](),
this.display_inplayersquare ? [Link]() : [Link](),
[Link](), [Link](), [Link]("Video initial draw done"),
this.use_hls ? [Link]("HTML5 Player drawed with [Link] : " + this.url_hls,
"Player") : this.use_native_hls ? [Link]("HTML5 Player drawed with native
Hls : " + this.url_hls, "Player") : [Link]("HTML5 Player drawed with MP4
support : " + this.url_high, "Player"), this.send_device_speed) {
var t = (new Date).getTime() - this.load_start;
this.send_debug_event("devicespeed", t), [Link]("HTML5 Player
device speed " + t + "ms", "Player")
}
if (this.desktop_view) {
if ("undefined" == typeof [Link] || "undefined" == typeof
[Link] || "undefined" == typeof [Link] || "boolean" != typeof
[Link] || ![Link]) {
! function() {
if (!e.is_premium_site) {
var t = [Link](/Chrome\/([0-9]+)\./);
if (t && t[1] >= 64) return void [Link]("Chrome >= 64
do not display popunder");
if (!e.block_popup) {
if (e.is_embed && ![Link]) {
var i = [Link]("script");
[Link] = "text/javascript", [Link] = !0, [Link] =
e.http_protocol + "://" + e.static_domain + "/v3/js/libs/[Link]";
var r = [Link]("body")[0];
[Link](i, r)
}
deferUntiljQuery(loadPopup)
}
}
}()
}
} else {
var i = [Link]("video-sponsor-links");
i && [Link](i), "object" == typeof xv && "object" == typeof
[Link] && ([Link].hide_sponsors = !0)
}
return [Link]() ? ([Link]("Storage available"),
[Link]("beforeunload", function(t) {
if ([Link] && e.total_video_played) {
var i = new Object;
i.cdn_id = e.id_cdn, (e.use_hls || e.use_native_hls) && (i.cdn_id =
e.id_cdn_hls), [Link] = e.total_video_played, [Link] = e.page_referer,
[Link]("videoduration_" + e.id_video, [Link](i))
}
}), setTimeout([Link], 1e3 * ([Link](10 *
[Link]()) + 10))) : [Link]("Storage not available"), [Link]
},
setupEvents: function() {
var e = this;
[Link]("resize", function() {
[Link]()
});
var t = 0,
i = 0;
this.interval_updated = setInterval(function() {
if ([Link](), e.use_hls && [Link])
if ([Link] && "100%" === [Link])
if (e.bufferBlocked_lastvalue) {
if ((new Date).getTime() - e.bufferBlocked_timestamp > 3e3)
{
var r = "Video obj: ";
[Link] ? r += "canPlay " : r += "not canPlay ",
[Link] ? r += ", seeking " : r += ", not seeking ", [Link] ? r +=
", paused " : r += ", not paused ", r += ", networkState = " +
[Link], e.bufferBlocked_nbtime++, e.bufferBlocked_lastvalue = !1,
[Link](r), [Link]("Buffer blocked detected " + ((new Date).getTime() -
e.bufferBlocked_timestamp) + " old (" + e.bufferBlocked_nbtime + " times)"),
[Link]("Buffer blocked detected", "Player"), 2 === e.bufferBlocked_nbtime
&& e.send_debug_event("buffer_blocked"), [Link](),
[Link](), [Link]()
}
} else e.bufferBlocked_lastvalue = [Link],
e.bufferBlocked_timestamp = (new Date).getTime(), [Link]("Buffering " +
[Link] + " detected");
else e.bufferBlocked_lastvalue = !1;
e.video_div.offsetWidth === t && e.video_div.offsetHeight === i || (t =
e.video_div.offsetWidth, i = e.video_div.offsetHeight, [Link]())
}, 100), this.video_event = function(t) {
if ([Link]("this.video_event", t), [Link] && ([Link](),
[Link]()), e.desktop_view) {
if ([Link] && ![Link])
if ([Link]) [Link]();
else if ([Link](), e.is_embed && [Link]) return void
[Link](e.https_protocol + "://[Link]" + e.video_url, "_blank");
[Link]()
} else if (e.allow_showInfos) {
if ([Link](), e.is_embed && [Link]) return [Link](),
void [Link](e.https_protocol + "://[Link]" + e.video_url, "_blank")
} else t && [Link](), [Link](!1)
}, this.video_event_click = function(t) {
[Link]("video_event_click(event) ", t);
var i = -1;
if ("boolean" == typeof [Link]) {
i = 0;
var r = [Link];
e.video_div.offsetHeight > 0 && (i = r / e.video_div.offsetHeight)
}
[Link]("video_event_click Click percent", i);
var s = !1;
if (e.desktop_view) {
if (i > .85) return
} else i < .75 && (s = !0);
e.video_event(s)
};
var r = 0;
this.video_div.addEventListener("touchstart", function(t) {
e.is_ios || ([Link]('this.video_div.addEventListener("touchstart",
'), r = (new Date).getTime(), setTimeout(function() {
r && ([Link]("No click event, generate video event"),
e.video_event(!0))
}, 200))
}), this.video_div.addEventListener("click", function(t) {
r = 0, e.video_event_click(t)
}), this.desktop_view && (this.video_div.addEventListener("mouseover",
function(t) {
[Link] = !0
}), this.video_div.addEventListener("mouseleave", function(t) {
[Link] = !1
}), this.video_div.addEventListener("mousemove", function(t) {
e.video_div.[Link] = "auto", [Link]()
}), this.video_div.addEventListener("dblclick", function(t) {
var i = [Link];
e.video_div.offsetHeight > 0 && i / e.video_div.offsetHeight > .85 ||
[Link]()
}), [Link]("keydown", function(t) {
if (!e.is_smarttv && [Link] && [Link] == [Link]) {
if (32 != [Link] && 75 != [Link] || ([Link](),
[Link] && ([Link] ? [Link]() : [Link]())), 38 == [Link]) {
if ([Link](), 1 == [Link]) return !1;
var i = [Link] + .1;
i > 1 && (i = 1), [Link](i), [Link] = !0,
[Link](), [Link](), [Link]()
}
if (40 == [Link]) {
if ([Link](), 0 == [Link]) return !1;
var i = [Link] - .1;
i < 0 && (i = 0), [Link](i), [Link] = !0,
[Link](), [Link](), [Link]()
}
if (37 == [Link] || 81 == [Link] || 65 == [Link]) {
if ([Link](), ![Link]) return !1;
[Link]([Link] - 10), [Link]()
}
if (39 == [Link] || 68 == [Link]) {
if ([Link](), ![Link]) return !1;
[Link]([Link] + 10), [Link]()
}
return 70 == [Link] && ([Link](), [Link]()), !1
}
}))
},
drawVideoDiv: function() {
var e = this;
[Link] = [Link]("video"), [Link] =
"auto", /firefox/.test([Link]()) && ([Link] =
"metadata"), this.use_browser_controls ? this.is_ios ? ([Link](),
[Link]("playsinline", "")) : [Link] = "controls" :
this.is_ios && !this.is_old_ios && ([Link](),
[Link]("playsinline", ""));
var t = [Link]("div", "video-bg-pic");
if ([Link]([Link]), !this.use_browser_controls) {
this.video_click_handler = [Link]("div", "video-click-
handler"), [Link](this.video_click_handler), window.__onGCastApiAvailable =
function(t, i) {
if (t) {
if ([Link]) {
var r = function() {
[Link]("ChromeCast: sessionListener")
},
s = function(t) {
[Link]("ChromeCast: receiverListener", t),
[Link](), t === [Link] ?
([Link] = !0, e.use_hls || [Link](e.video_click_handler)) :
([Link] = !1, [Link](e.video_click_handler)), [Link](),
[Link](), [Link]()
},
o = function() {
[Link]("ChromeCast: onInitSuccess")
},
n = function() {
[Link]("ChromeCast: onError")
},
a = new
[Link]([Link].DEFAULT_MEDIA_RECEIVER_APP_ID),
l = new [Link](a, r, s);
[Link](l, o, n)
}
} else [Link]("Google Chrome Cast loading error")
};
var i = [Link]("script");
[Link] = "[Link]
[Link] = !0, this.global_div.appendChild(i)
}
this.picture_div = [Link]("div", "video-pic");
var r = [Link]("img");
this.url_thumb169 ? [Link] = this.url_thumb169 : [Link] = this.url_thumb,
this.picture_div.appendChild(r), [Link](this.picture_div),
this.video_div.appendChild(t), [Link] = [Link]("p", "video-
title", "", this.video_title), this.video_div.appendChild([Link])
},
drawProgressBarBg: function() {
var e = this;
[Link] = [Link]("div", "progress-bar-bg"),
this.video_div.appendChild([Link]),
[Link]("click", function(e) {
[Link]("Progress Bar Click"), [Link]()
}), this.desktop_view && ([Link]("mouseenter",
function() {
[Link]()
}), [Link]("mouseleave", function() {
[Link]()
})), [Link]("dblclick", function(e) {
[Link]("Progress bar dblclick"), [Link]()
})
},
drawProgressBar: function() {
var e = this;
if ([Link] = [Link]("div", "progress-bar"),
[Link]("dblclick", function(e) {
[Link]()
}), [Link]([Link]),
[Link]("click", function(t) {
if ([Link]("progressbar seeking click"), [Link](),
e.touchseek_block_click) return void [Link]("Seek click blocked");
var i = e.compute_seekpercent(t),
r = [Link] * i;
[Link] && (r = [Link] * i), i
< .01 && r < 4 && (r = 0), [Link](r)
}, !1), this.desktop_view &&
([Link]("mouseenter", function() {
[Link]()
}), [Link]("mouseleave", function() {
[Link]()
})), [Link]("dblclick", function(e) {
[Link]("Progress bar dblclick"), [Link]()
}), [Link] = [Link]("div", "bufferdiv"),
this.desktop_view && [Link]("dblclick",
function(e) {
[Link]("progressbarbufferdiv dblclick"), [Link]()
}), [Link]([Link]),
[Link] = [Link]("div", "cursor"),
[Link]([Link]), this.desktop_view ||
([Link] = [Link]("div", "progress-text noselect"),
[Link]([Link])), this.allow_touchseek) {
if ([Link](), [Link]("Thumb Slide : " +
this.thumb_slide_type), [Link] = [Link]("div", "seek-
cursor"), [Link]([Link]),
[Link]([Link]), [Link]
= [Link]("div", "seek-thumb"),
[Link]([Link]),
this.thumb_slide_type == HTML5Player.TYPE_FULL) {
[Link] = "url('" +
this.thumb_slide_big + "')";
var t = new Image;
[Link] = function() {
[Link]("Thumb slide full don't seems to be available"),
e.thumb_slide_type = HTML5Player.TYPE_SMALL,
[Link] = "url('" + e.thumb_slide + "')"
}, [Link] = this.thumb_slide_big
} else this.thumb_slide_type == HTML5Player.TYPE_MINUTE ?
[Link] = "url('" + this.thumb_slide_min +
"[Link]')" : [Link] = "url('" +
this.thumb_slide + "')";
if (this.desktop_view &&
[Link]("mousemove", function(t) {
if (t && [Link] && "function" == typeof
[Link] && "seek-thumb" === [Link]) {
var i = [Link]();
if (!i) return void [Link]("Unable to get rect");
if (![Link] || ![Link]) return void [Link]("Unable to
get rect (2)");
return [Link](100 / [Link] *
(e.touch_getPositionY(t) - [Link])) < 20 ? ([Link](), void
[Link]()) : void 0
}
}), [Link] = [Link]("div", "seek-
text", "", "00:00"),
[Link]([Link]),
this.desktop_view) {
[Link] = [Link]("div",
"fake-cursor-desktop-container");
var i = [Link]("div", "fake-cursor-desktop");
[Link](i),
[Link]([Link]),
[Link]([Link])
} else {
var r = [Link]("div", "fake-cursor");
[Link](r)
}("ontouchstart" in window || [Link]) &&
([Link]("is a touch screen"), [Link]("touchstart",
function(t) {
e.touchseek_last_positions = [], [Link] ||
([Link]("touchstart"), [Link]([Link]), e.desktop_view &&
[Link]([Link]), [Link](t))
}, !1), [Link]("touchend", function(t) {
[Link]("touchend");
var i = -1;
if (-1 !== [Link] && (i = [Link],
[Link]("[Link]", [Link])),
e.touchseek_last_positions.length > 1 && (i =
e.touchseek_last_positions[e.touchseek_last_positions.length - 2],
[Link]("self.touchseek_last_positions", i)), -1 !== i) {
var r = [Link] * i;
[Link] && (r = [Link] *
i), i < .01 && r < 4 && (r = 0), [Link]("Seek End " + r),
e.touchseek_block_click = !0, setTimeout(function() {
e.touchseek_block_click = !1
}, 500), [Link](r)
}
[Link]()
}, !1), [Link]("touchcancel", function(t) {
[Link]("touchcancel"), [Link]()
}, !1), [Link]("touchleave", function(t) {
[Link]("touchleave"), [Link]()
}, !1), [Link]("touchmove", function(t) {
[Link](t)
}, !0)), this.desktop_view &&
([Link]("mouseenter", function() {
[Link]()
}), [Link]("mouseleave", function() {
[Link]()
}), [Link]("mouseover", function(t) {
[Link] || ([Link]([Link]),
e.desktop_view && [Link]([Link]),
[Link](t))
}, !0), [Link]("mousemove", function(t) {
[Link] || ([Link]([Link]),
e.desktop_view && [Link]([Link]),
[Link](t))
}, !1), [Link]("mouseleave", function(t) {
[Link]()
}, !0)), this.desktop_view && ([Link] =
[Link]("div", "pgbar-cursor-detect"),
[Link]([Link]))
}
},
drawAdvertisement: function() {
var e = this;
[Link] = [Link]("div", "sdabox"),
this.video_div.appendChild([Link]), [Link] =
[Link]("div", "sdacontainer"),
[Link]([Link]), [Link] =
[Link]("[Link]", "player.close_ad"),
[Link] = "dlg-close-btn",
[Link]("click", function(t) {
[Link]("Close Ad"), [Link](), [Link](), [Link]()
}, !1), [Link]([Link]);
var t = "sda10pc";
this.ads_active_fithteenpercentborder && (t = "sda15pc"),
[Link] = [Link]("div", "sdaclick " + t),
[Link]([Link]),
[Link]([Link]), [Link] =
[Link]("img", "sdadblclick"), [Link] =
this.http_protocol + "://" + this.static_domain + "/v3/img/player/sda-
[Link]", [Link]([Link]),
[Link]([Link]),
[Link]("click", function(t) {
[Link]("Advert div click"), [Link](),
[Link](t, !0)
}), [Link]("touchstart", function(e) {
[Link]()
}), [Link]("click", function(t) {
[Link](), [Link]("[Link](" +
[Link]), [Link](t, !1)
}, !1), [Link]("touchstart", function(e) {
[Link]()
}, !1), [Link]("touchstart", function(t) {
[Link](),
[Link]("[Link](" + [Link]),
e.doubleclick_ad_allowclick = !0, setTimeout(function() {
e.doubleclick_ad_allowclick = !1
}, 500)
}, !1), [Link]("click", function(t) {
[Link]("[Link](" + [Link]),
[Link](), [Link](t, !0)
}, !1)
},
drawBigButtons: function() {
var e = this;
[Link] = [Link]("div", "big-buttons"),
[Link]([Link]), this.bigbuttons_sub = [Link]("div",
"big-buttons-sub"), [Link] = [Link]("div", "big-button pl-btn"),
[Link] = "hidden",
[Link]([Link]), [Link]("click",
function(t) {
[Link]("Playlist Backward Butt click"), [Link](),
[Link] && [Link] && (e.write_cookie("html5_plfullscreen",
[Link] ? "1" : "0"), [Link] = [Link])
}, !1), [Link] = [Link]("[Link]",
"player.previous_pl_video", {
"%name%": ""
}), [Link]([Link]), [Link] =
[Link]("div", "big-button play"), [Link]([Link]),
[Link]("click", function(t) {
[Link]("Play click addEventListener"), [Link](), !
[Link] && e.use_hls && [Link] && [Link](), !
[Link] && e.desktop_view && ([Link](),
[Link](), [Link]()), [Link] && [Link](),
[Link] = !0, [Link](e.video_div, "play-clicked"), [Link]()
|| (e.use_browser_controls && [Link](), [Link](),
e.force_play_fullscreen && [Link](), [Link](), [Link](),
e.desktop_view && "function" == typeof [Link] && [Link]())
}), [Link] = [Link]("[Link]", "[Link]"),
[Link]([Link]),
[Link]([Link]("br")), [Link] =
[Link]("span"), [Link] = this.i18n.__("[Link]"),
[Link]([Link]), this.desktop_view || ([Link] =
[Link]("div", "big-button pause"),
[Link]([Link]), [Link]("click",
function(t) {
[Link]("Pause click addEventListener"), [Link](),
[Link]()
}), [Link] = [Link]("[Link]", "[Link]"),
[Link]([Link]), this.use_browser_controls &&
([Link] = [Link]("div", "big-button replay"),
[Link]([Link]), [Link]("click",
function(t) {
[Link]("Replay click addEventListener"), [Link](),
[Link]()
}), [Link] = [Link]("[Link]",
"[Link]"), [Link]([Link])), this.is_ios ||
this.is_ipad || ([Link] = [Link]("div", "big-button"),
this.bigbuttons_sub.appendChild([Link]),
[Link]("click", function(t) {
[Link]("Chromecast click addEventListener"), [Link](),
[Link]()
}), [Link] = [Link]("[Link]",
"[Link]"), [Link]([Link]),
[Link]([Link]("br")), [Link] =
[Link]("span"), [Link] =
this.i18n.__("[Link]"),
[Link]([Link]))), [Link] =
[Link]("div", "big-button pl-btn"), [Link] =
"hidden", [Link]([Link]),
[Link]("click", function(t) {
[Link]("Playlist Forward Butt click"), [Link](),
[Link] && [Link] && (e.write_cookie("html5_plfullscreen",
[Link] ? "1" : "0"), [Link] = [Link])
}, !1), [Link]("touchstart", function(e) {
[Link]()
}), [Link] = [Link]("[Link]",
"player.next_pl_video", {
"%name%": ""
}), [Link]([Link]),
[Link](this.bigbuttons_sub), [Link] =
[Link]("div", "video-loader"), this.video_div.appendChild([Link]),
[Link] = [Link]("div", "buffer"),
[Link]([Link]), [Link] =
[Link]("div", "label", this.i18n.__("[Link]")),
[Link]([Link])
},
setupButtonBarEvents: function(e, t, i) {
if (this.desktop_view) {
var r = this;
t && ([Link]("mouseenter", function() {
[Link]()
}), [Link]("mouseleave", function() {
[Link]()
})), i && [Link]("dblclick", function(e) {
[Link]()
})
}
},
drawButtonsBars: function() {
var e = this;
if ([Link] = [Link]("div", "buttons-bar left"),
[Link]("touchstart", function(e) {
[Link]()
}), [Link]("click", function(e) {
[Link]()
}), [Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Replay click addEventListener"), [Link](),
[Link]()
}), [Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Small Play Butt click"), [Link](), !
[Link] && e.use_hls && [Link] && [Link](),
[Link] = !0, [Link](e.video_div, "play-clicked"), [Link](),
[Link]() || (e.use_browser_controls && [Link](), [Link](),
e.desktop_view && "function" == typeof [Link] && [Link]())
}, !1), [Link]([Link], !0),
[Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Small Pause Btt click"), [Link](),
[Link]()
}, !1), [Link]([Link], !0),
[Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Sound on click addEventListener"),
[Link](), [Link](), [Link](!1), [Link]()
}), [Link]([Link], !1, !0),
[Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Sound off click addEventListener"),
[Link](), [Link](), [Link](!1), [Link]()
}), [Link]([Link], !1, !0),
[Link]([Link]), this.desktop_view &&
([Link] = [Link]("div", "volume-bar"),
[Link] = "url('" + this.http_protocol + "://" +
this.static_domain + "/v3/img/player/[Link]')",
[Link]("click", function(t) {
[Link]("Sound vol global click"), [Link]();
var i = e.touch_getPosition(t),
r = [Link]();
i -= r ? [Link] : [Link];
var s = i / [Link] * 100;
s > 90 ? s = 100 : s < 10 && (s = 0), [Link](s / 100)
}), [Link] = [Link]("div", "volume-bar-
fill"), [Link] = "url('" +
this.http_protocol + "://" + this.static_domain + "/v3/img/player/volume-
[Link]')", [Link]([Link], !1, !0),
[Link]([Link]),
[Link]([Link])), this.desktop_view &&
([Link] = [Link]("div", "progress-text noselect"),
[Link]("click", function(e) {
[Link]("Progress bar text click"), [Link]()
}), [Link]([Link], !1, !0),
[Link]([Link])), this.desktop_view &&
([Link] = [Link]("[Link]",
"player.previous_pl_video", {
"%name%": ""
}), [Link]("click", function(t) {
[Link]("Small Playlist Backward Butt click"),
[Link](), [Link] && [Link] &&
(e.write_cookie("html5_plfullscreen", [Link] ? "1" : "0"),
[Link] = [Link])
}, !1), [Link]([Link], !0),
[Link]([Link]), [Link] =
[Link]("[Link]", "player.next_pl_video", {
"%name%": ""
}), [Link]("click", function(t) {
[Link]("Small Playlist Forward Butt click"),
[Link](), [Link] && [Link] &&
(e.write_cookie("html5_plfullscreen", [Link] ? "1" : "0"),
[Link] = [Link])
}, !1), [Link]([Link], !0),
[Link]([Link])), [Link](),
this.uploader_name && [Link]([Link]),
[Link] = [Link]("div", "buttons-bar right"),
[Link]([Link]), this.use_parameter_menu) {
[Link] = [Link]("div", "settings-btn"),
[Link]([Link]);
var t = [Link]("[Link]", "[Link]");
[Link](t), [Link] =
[Link]("span", "video-hd-mark", "", "HD"),
[Link]([Link]),
[Link]("click", function(t) {
[Link]("parametersbt click"), [Link](),
[Link] = ![Link], [Link](!0)
}, !1), [Link]([Link], !0, !0),
[Link]()
}
[Link] = [Link]("[Link]",
"[Link]"), [Link]("click", function(t) {
[Link]("Download bar btt click"), [Link](),
[Link]()
}, !1), [Link]([Link], !0),
[Link]([Link]), this.desktop_view &&
(this.is_premium_site && [Link](), [Link] =
[Link]("[Link]", "player.double_player_size"),
[Link]("click", function(e) {
[Link](), [Link]("Expand click addEventListener"),
[Link]()
}, !1), [Link]([Link], !0),
[Link]([Link])), [Link] =
[Link]("[Link]", "[Link]"),
[Link]("click", function(t) {
[Link]("Fullscreen click addEventListener"), [Link](),
[Link]()
}), [Link]([Link], !0),
[Link]([Link])
},
drawSubscribeButton: function() {
if (this.uploader_name) {
var e = this;
[Link] = [Link]("div", "subscribe");
var t = [Link]("a");
[Link] = "video-subscribe", [Link] = "2px";
var i = [Link]("span");
[Link] = "sub-btn", [Link] = "0px";
var r = [Link]("img");
[Link] = this.http_protocol + "://" + this.static_domain +
"/v3/img/skins/default/[Link]", [Link] = "9px", [Link] = "2px",
[Link](r);
var s = [Link]("span");
[Link] = "label", [Link] = this.i18n.__("[Link]"),
[Link] = "middle", [Link](i), [Link](s),
[Link](t), [Link] = function() {
if (!e.is_embed && e.uploader_name) {
var t = createRequestObject();
[Link]("POST", "/profiles/" + e.uploader_name +
"/followers/check", !0), [Link]("Content-type", "application/x-www-
form-urlencoded"), [Link] = function() {
if (4 === [Link] && 200 === [Link]) {
try {
var i = [Link]([Link])
} catch (n) {
return void [Link](n)
}
if ([Link] && i.is_logged && !i.is_owner && !
i.is_follower) {
var r = [Link] || "",
o = !1;
[Link]("click",
function(t) {
if ([Link](), !o) {
o = !0, [Link]("subscribebarbt
click"), [Link] = [Link](e.i18n.__("player.in_progress"));
var i = createRequestObject();
[Link]("POST", "/profiles/" +
e.uploader_name + "/followers/subscribe", !0), [Link]("Content-type",
"application/x-www-form-urlencoded"), [Link] = function() {
if (4 === [Link] && 200 ===
[Link]) {
try {
var r =
[Link]([Link])
} catch (t) {
return [Link](t),
[Link] = [Link](e.i18n.__("player.error_please_retry")), void(o = !1)
}
if ([Link]) return
void([Link] = [Link](e.i18n.__("[Link]")) + ' <a href="/my-
subs/videos">' + [Link](e.i18n.__("player.view_activities")) + "</a>");
[Link] =
[Link](e.i18n.__("player.error_please_retry")), o = !1, [Link] &&
[Link]([Link])
}
}, [Link]("csrf=" + r)
}
}), [Link] = !0, [Link]()
}
}
}, [Link]()
}
}, [Link]("dblclick", function(e) {
[Link]()
})
}
},
drawParameters: function() {
var e = this;
[Link] = [Link]("ul", "settings-menu noselect"),
[Link]([Link]), [Link]([Link]),
[Link]("click", function(t) {
[Link]("parametersmenu click"), [Link](), [Link](!
0)
}), [Link]("dblclick", function(e) {
[Link]()
}), [Link]([Link], !0),
[Link] = [], this.use_hls ? [Link](-1,
"autobuffer", this.i18n.__("player.auto_buffer"), !0, function(e) {}, function(t) {
[Link]("Auto buffer click"), [Link](), [Link] ?
([Link](!1), [Link] = !0) : ([Link](!0),
[Link] = !1), [Link]()
}, function(t) {
[Link] ? [Link]("Init no auto buffer") :
[Link](!0)
}) : !this.use_native_hls && this.url_high && this.url_low &&
([Link](-1, "quality_hq", "360p", !1, function(t) {
e.force_lq ? [Link]() : [Link]()
}, function(t) {
[Link]("360p quality click"), [Link](), [Link]()
}, function(t) {
e.force_lq ? [Link]() : [Link]()
}), [Link](-1, "quality_lq", "250p", !1, function(t) {
e.force_lq ? [Link]() : [Link]()
}, function(t) {
[Link]("250p quality redraw click"), [Link](), [Link]()
}, function(t) {
e.force_lq ? [Link]() : [Link]()
})), this.desktop_view || [Link](-1, "externalplayer",
this.i18n.__("player.external_player"), !1, function(e) {}, function(t) {
[Link]("External player click"), [Link]()
}, function(e) {}), this.support_native_hls && this.support_hlsjs &&
(this.use_hls || this.use_native_hls) && [Link](-1,
"buildinplayer", this.i18n.__("player.builtin_player"), !0, function(e) {},
function(t) {
[Link]("Buildin player click"), [Link](), [Link] ?
([Link](!1), [Link] = !1) : ([Link](!0), [Link] = !
0), [Link](), alert("You need to reload the page to see the change")
}, function(t) {
[Link] && ([Link]("Init force native HLS"),
[Link](!0))
}), [Link](-1, "ratio",
this.i18n.__("player.ratio_auto"), !1, function(t) {
var i = e.video_div.offsetWidth / e.video_div.offsetHeight;
if ([Link] = [Link] / [Link], -1 ===
[Link] || -1 === [Link]) [Link] = "scaleX(1)";
else {
var r = [Link] / [Link],
s = 1;
i < 1 && (s = 1 / r), [Link] = "scale(" + r * s +
"," + 1 * s + ")"
}
}, function(t) {
-1 !== [Link] && [Link] !== NaN && (-1 === [Link] ?
([Link] = 1.3333, [Link]("4/3")) : 1.3333 === [Link] ? ([Link] = 1.7777,
[Link]("16/9")) : 1.7777 === [Link] ? ([Link] = .5625,
[Link](e.i18n.__("[Link]"))) :
([Link](e.i18n.__("player.ratio_auto")), [Link] = -1), [Link]())
}, function(e) {
[Link] = -1
}), this.allow_touchseek && [Link](-1, "previewimg",
this.i18n.__("player.preview_img"), !0, function(e) {}, function(t) {
[Link]("Buildin preview img"), [Link](), [Link] ?
([Link](!1), [Link] = !0) : ([Link](!0),
[Link] = !1), [Link]()
}, function(t) {
[Link] ? [Link]("Init no preview img") :
[Link](!0)
})
},
addParameterElement: function(e, t, i, r, s, o, n) {
var a = this,
l = [Link]("li", "setting", t);
r && ([Link] = [Link]("img", "setting-checkbox"),
[Link] = this.http_protocol + "://" + this.static_domain +
"/v3/img/player/[Link]", [Link]([Link]), [Link] = !1,
[Link] = function(e) {
[Link] = e, [Link] = e ? a.http_protocol + "://" +
a.static_domain + "/v3/img/player/[Link]" : a.http_protocol + "://" +
a.static_domain + "/v3/img/player/[Link]"
}, [Link]([Link]));
var d = [Link]("span", "", "", i);
if ([Link](d), [Link] = function() {
[Link] = "setting active"
}, [Link] = function() {
[Link] = "setting"
}, [Link] = function() {
[Link] = "setting forced"
}, [Link] = function(e) {
[Link] = e
}, [Link]("click", function() {
o(this)
}), [Link] = function() {
s(this)
}, n(l), -1 === e) return void [Link](l);
var h = [Link];
if (0 === [Link] || e >= [Link]) return void
[Link](l);
[Link](l, h[e])
},
redrawParamers: function() {
for (var e = [Link], t = 0; t < [Link]; t++)
e[t].onRedraw()
},
drawBrowserControlsButtons: function() {
var e = this;
[Link] = [Link]("[Link]",
"player.download_video"), [Link] = "browser-controls-dl-
btn", this.video_div.appendChild([Link]),
[Link]("click", function(t) {
[Link]("Download click addEventListener"), [Link](),
[Link]()
})
},
drawEmbedElements: function() {
[Link] = [Link]("div", "xv-logo"),
[Link]([Link]);
var e = [Link]("a");
[Link] = this.http_protocol + "://[Link]" + this.video_url,
[Link] = "_blank", [Link](e);
var t = [Link]("img");
[Link] = this.http_protocol + "://" + this.static_domain +
"/v3/img/player/logo_xvideos.png", [Link](t)
},
drawQualityButtons: function() {
var e = this;
[Link] = [Link]("div", "quality-btn quality-default",
"", "250p"), this.video_div.appendChild([Link]),
[Link]("click", function(t) {
[Link]("LQ click addEventListener"), [Link](),
[Link]()
}), [Link] = [Link]("div", "quality-btn quality-
default", "", "360p"), [Link]([Link]),
[Link]("click", function(t) {
[Link]("HQ click addEventListener"), [Link](),
[Link]()
})
},
displaySponsorlink: function() {
if ([Link] && 0 !== [Link] && ![Link]) {
var e = this;
[Link] = [Link]("div", "videoad-title videoad-title-
invideo noselect"), [Link]([Link], !0),
[Link]([Link]);
var t = [Link]([Link]() * [Link]),
i = [Link][t],
r = "<strong>" + [Link] + "</strong>",
s = [Link]("p", "", "", r);
[Link] = "videoad-title-txt", [Link]("click",
function() {
[Link]([Link], "_blank")
}), [Link](s), this.sponsorpopup_icon =
[Link]("[Link]", "Link"), this.sponsorpopup_icon.className =
"videoad-title-icon", [Link](this.sponsorpopup_icon),
[Link]("click", function() {
[Link]("Sponsor popup click"), [Link](), [Link]([Link],
"_blank"), [Link]()
}, !1)
}
},
displayLoadError: function() {
if ([Link]) return [Link]("errordlg"), void
this.video_div.appendChild([Link]);
var e = this;
[Link] = [Link]("div", "error-dialog"),
[Link]([Link]);
var t = [Link]("div", "error-content");
[Link](t);
var i = [Link]("p", "", "", "<b>" +
this.i18n.__("player.loading_error") + "</b>");
[Link](i);
var r = [Link]("button", "", "", this.i18n.__("[Link]"));
[Link] = "button", [Link](r), [Link]("click",
function(t) {
[Link]("Error button retry click addEventListener"),
[Link](), [Link](!0)
})
},
chromecastVideo: function() {
if (![Link]) return alert("Error: Chrome cast don't seems to be
supported"), [Link] = !1, [Link](), void
[Link]();
if (!this.url_hls) return void alert("Sorry. Chromecast is not available
for this video");
var e = this;
[Link](function(t) {
function i(t, i) {
[Link] = i, [Link](), [Link](function()
{
[Link](), [Link]()
}), [Link] = setInterval(function() {
[Link]()
}, 1e3), [Link](), [Link]()
}
[Link] = t;
var r = new [Link](e.url_hls),
s = new [Link](r);
[Link](s, [Link](this, "loadMedia"), function()
{
alert("Unable to start ChromeCast")
})
}, function(t) {
[Link]("Chrome Cast issue", t), [Link] = !1,
[Link] = !1, clearInterval([Link]), [Link](),
[Link]()
})
},
openMessageBox: function() {
var e = this;
if ([Link]) return void [Link]("messagediv");
[Link] = [Link]("div", "message-dialog"),
[Link]([Link]), [Link]("click",
function(e) {
[Link]("Message Div Click"), [Link]()
}), [Link] = [Link]("div", "message-content"),
[Link]([Link]), [Link] =
[Link]("[Link]", "[Link]"), [Link]
= "dlg-close-btn", [Link]("click", function(t) {
[Link]("Close message"), [Link](!1), [Link] = !1,
[Link](), [Link]()
}, !1), [Link]([Link])
},
advertClick: function(e, t) {
if ("undefined" == typeof [Link]) return void [Link]("Ad: No link
found");
if (!this.adsquare_picture_loaded) return void [Link]("Ad picture not
loaded");
var i = this;
if ((t || this.need_doubleclick_ad) && ![Link]) return
[Link] = !0, setTimeout(function() {
[Link] = !1, [Link](),
i.doubleclick_debug("dbclicktimeout", !1)
}, 3e3), [Link](), void
this.doubleclick_debug("firstdbclick", e);
"click" === [Link] && (this.need_doubleclick_ad && !
this.doubleclick_ad_allowclick || ([Link]([Link], "_blank"),
[Link](), [Link](), t || this.need_doubleclick_ad ?
this.doubleclick_debug("secdbclick", e) : this.doubleclick_debug("firstclick", e)))
},
touchSeekShow: function(e) {
[Link](), [Link] =
this.compute_seekpercent(e), this.touchseek_last_positions.length > 3 &&
(this.touchseek_last_positions = this.touchseek_last_positions.slice(1)),
this.touchseek_last_positions.push([Link]);
var t = [Link];
if (t < 0 && (t = 0), t > 1 && (t = 1), this.desktop_view) {
var i = [Link] * t -
[Link] / 2;
i < 0 && (i = 0), i > [Link] -
[Link] && (i =
[Link] - [Link]),
[Link] = i + "px",
[Link] =
[Link] * t -
[Link] / 2 + "px"
} else [Link] = [Link]
* t - [Link] / 2 + "px";
[Link] =
[Link]([Link] * t);
var r = [Link](30 * [Link] + 1);
r < 1 && (r = 1), r > 30 && (r = 30);
var s = [Link]((r - 1) / 6),
o = r - 1 - 6 * s,
n = [Link]([Link] * [Link]);
if (this.is_premium_video && (n -= 4), n < 0 && (n = 0),
this.thumb_slide_type == HTML5Player.TYPE_FULL) {
var t = n / [Link] * 100;
r = [Link](t + 1), r < 1 && (r = 1), r > 100 && (r = 100), s =
[Link]((r - 1) / 10), o = r - 1 - 10 * s
} else if (this.thumb_slide_type == HTML5Player.TYPE_MINUTE) {
var a = [Link](n / 60);
[Link] = "url('" +
this.thumb_slide_min + a + ".jpg')";
var r = [Link](n - 60 * a);
s = [Link](r / 10), o = r - 10 * s
}
[Link] = "-" + o *
[Link] + "px -" + s *
[Link] + "px", [Link](!0)
},
touchSeekHide: function() {
this.allow_touchseek && ([Link]([Link]),
this.desktop_view && [Link]([Link]),
[Link] = -1)
},
loadingAdError: function() {
this.ad_loading_error = !0
},
setPlayerAd: function(e) {
var t = this;
if ("NOAD" === e) return void(this.is_fakeplayer_displayed ?
[Link]() : ([Link](), [Link]()));
if (this.display_inplayersquare && [Link] && [Link]) {
if (![Link]) return void [Link]("Fatal: No advert div
found");
[Link] = [Link];
var i = [Link]("img");
[Link] = [Link], [Link] = "100%", [Link] = "100%",
this.need_doubleclick_ad || ([Link] = function() {
[Link]("Ad loaded"), t.adsquare_picture_loaded = !0,
[Link]([Link]), [Link] = ""
}), [Link](i), this.is_fakeplayer_displayed ||
([Link] = !0, [Link](), [Link]())
}
},
setNoSquareAd: function() {
[Link](!0)
},
nbView_getNbView: function() {
var e = [Link]("xv_nbview");
return e ? parseInt(e) : 0
},
nbView_increment: function() {
var e = this.nbView_getNbView(); - 1 != e && (e >= 3 || (e++,
[Link]("xv_nbview", e, 288e5, "/")))
},
nbView_setviewed: function() {
[Link]("xv_nbview", "-1", 288e5, "/")
},
displayVideosAds: function() {
var e = this;
if (!this.videoads_checked) {
if (this.videoads_checked = !0, this.nbView_increment(),
this.nbView_getNbView() < 2) return [Link]("displayVideosAds:
Not the 2nd play (or more). Bypass videosads display"), [Link] = null,
[Link](), !1;
if (![Link]) {
if ([Link]("displayVideosAds: No videoads to display"), 2 ==
this.nbView_getNbView() && this.videoads_miss) {
[Link]("displayVideosAds: 2nd play and no ads. Missed");
var t = createRequestObject();
[Link]("GET", this.videoads_miss, !0), [Link] =
function() {
4 === [Link] && [Link]
}, [Link]()
}
return !1
}
this.nbView_setviewed();
var i = [Link]();
return [Link] = !1, this.videoads_title_div =
[Link]("div", "videoad-title videoad-title-invideo noselect"),
this.videoads_title_div.addEventListener("click", function(t) {
[Link](), [Link](), [Link](i, "_blank")
}), this.videoads_title_txt = [Link]("div", "videoad-title-
txt"), this.videoads_title_txt.innerHTML = [Link](),
this.videoads_title_div.appendChild(this.videoads_title_txt),
this.videoads_title_icon = [Link]("[Link]", "Link"),
this.videoads_title_icon.className = "videoad-title-icon",
this.videoads_title_div.appendChild(this.videoads_title_icon), this.is_ipad &&
(this.videoads_title_div.[Link] = "60px"),
this.video_div.appendChild(this.videoads_title_div), [Link] =
function() {
[Link]()
}, [Link] = function() {
e.video_div.removeChild(e.videoads_div), [Link] = null,
e.use_browser_controls && [Link](), [Link]()
}, [Link] || ([Link]("VideoAds: Video not muted.
Starting with sound"), [Link]()), this.videoads_div =
[Link](), this.video_div.appendChild(this.videoads_div),
[Link]("displayVideosAds: Starting the video ad"), !0
}
},
createDebugVideoAds: function() {
[Link](), [Link] = new
[Link]("[Link] "[Link]
"[Link]
.mp4", "[Link] "Label", "[Link]"),
[Link](this.http_protocol),
[Link](this.static_domain),
[Link].setI18n(this.i18n), [Link](this.desktop_view)
},
checkVideoAds: function() {
var e = this;
return this.use_browser_controls && !this.is_new_iphone ? void
[Link]("VideoAds not compatible with browser control") :
this.is_fakeplayer_displayed || this.is_flashplayer_displayed ? void
[Link]("VideoAds not compatible with fake player") : -1 ===
this.nbView_getNbView() ? ([Link]("checkVideoAds() Video ads already viewed"),
this.block_popup = !0, void [Link]()) : void
[Link]("DOMContentLoaded", function() {
[Link] && require(["config/ads"], function(t) {
t = t();
var i = 0,
r = setInterval(function() {
i++, ([Link]("wpn_ad_cookie") || i > 10) &&
(clearInterval(r), [Link]([Link]))
}, 200)
})
})
},
callForVideoAds: function(e) {
var t = this;
[Link]("checkVideoAds() Trying to load videos ads");
var i = [Link]("wpn_ad_cookie");
i || (i = "");
var r = "";
"object" == typeof xv && "object" == typeof [Link] && "object" == typeof
[Link] && "string" == typeof [Link] &&
[Link] > 0 && (r = [Link]);
var s = createRequestObject();
[Link]("GET", "[Link]
+ i + "/" + [Link]() + "/xvideos/" + e + "//" + r + "/[Link]?
v=" + [Link](), !0), [Link] = !0, [Link] = function()
{
if (4 === [Link]) {
if (200 !== [Link]) return void [Link]("checkVideoAds() WPN
Call failed");
try {
var e = [Link]([Link])
} catch (o) {
return void [Link]("Video Ads bac JSON")
}
if (e.tracker_id && [Link]("wpn_ad_cookie",
e.tracker_id, 6048e5, "/"), ![Link])
if ([Link]) {
"undefined" != typeof [Link][0] && (t.videoads_miss =
[Link][0]);
for (var i = 0; i < [Link][0].length; i++) {
var r = [Link][0][i];
return t.block_popup = !0, [Link](), [Link] =
new [Link](r.view_callback, r.stats_callback, [Link], [Link], [Link],
[Link], r.instant_skip), [Link](t.http_protocol),
[Link](t.static_domain), [Link].setI18n(t.i18n), void
[Link](t.desktop_view)
}
} else;
}
};
try {
[Link]()
} catch (o) {
return void [Link]("checkVideoAds() WPN Call failed (2)")
}
},
initHls: function() {
if ("" === this.url_hls) return this.use_hls = !1, !1;
var e = this;
[Link]("Init HLS"), this.use_hls = !0;
var t = 5e7;
this.desktop_view && (t = 1e8);
var i = !0;
[Link] && (i = !1);
var r = !0,
s = 30;
this.is_premium_site && (r = !1, s = 200, [Link]("Activate premium
optimisation"));
var o = {
debug: !1,
autoStartLoad: i,
capLevelToPlayerSize: r,
maxBufferLength: s,
maxMaxBufferLength: s,
maxBufferSize: t,
maxBufferHole: .3,
maxSeekHole: 3,
liveSyncDurationCount: 3,
liveMaxLatencyDurationCount: 10,
enableWorker: !0,
enableSoftwareAES: !0,
manifestLoadingTimeOut: 1e4,
manifestLoadingMaxRetry: 3,
manifestLoadingRetryDelay: 500,
levelLoadingTimeOut: 1e4,
levelLoadingMaxRetry: 3,
levelLoadingRetryDelay: 500,
fragLoadingTimeOut: 3e4,
fragLoadingMaxRetry: 3,
fragLoadingRetryDelay: 500,
fpsDroppedMonitoringPeriod: 5e3,
fpsDroppedMonitoringThreshold: .2,
appendErrorMaxRetry: 3,
abrBandWidthFactor: .6,
abrBandWidthUpFactor: .5
};
return [Link] && [Link](), [Link] = new Hls(o),
[Link]([Link]), [Link]([Link].MEDIA_ATTACHED,
function() {
[Link]("[Link].MEDIA_ATTACHED")
}), [Link]([Link].MEDIA_DETACHED, function() {
[Link]("[Link].MEDIA_DETACHED")
}), [Link]([Link].FRAG_PARSING_INIT_SEGMENT, function(t, i) {
[Link]("[Link].FRAG_PARSING_INIT_SEGMENT " + t + " id = " +
[Link] + " level = " + [Link]), [Link]()
}), [Link]([Link].FRAG_PARSING_METADATA, function(e, t) {
[Link]("[Link].FRAG_PARSING_METADATA", e, t)
}), [Link]([Link].LEVEL_SWITCH, function(t, i) {
[Link]("[Link].LEVEL_SWITCH", t, [Link]), [Link]()
}), [Link]([Link].MANIFEST_LOADING, function(e, t) {
[Link]("[Link].MANIFEST_LOADING", e, [Link])
}), [Link]([Link].MANIFEST_LOADED, function(t, i) {
if ([Link]("[Link].MANIFEST_LOADED " + t + " nb levels " +
[Link]), ![Link]) {
[Link] = !0;
var r = [Link]("forcequality");
if (!1 !== r) return r >= [Link] && (r =
[Link] - 1), [Link] = r, [Link] = r,
[Link](), void [Link]();
var s = 0,
o = e.get_networkspeed();
if (o) {
for (var n = 0; n < [Link]; n++) 1.8 *
[Link][n].bitrate / 1e3 < o && (s = n);
[Link]("Best level", s, "for speed", o, "Kb/s"),
[Link]("[Link].LEVEL_LOADED Best level " + s + " for speed " + o + "
Kb/s", "Player")
} else s = 1, [Link]("No network speed history, using", s);
[Link] = s, [Link] = s,
[Link] = s, [Link] = -1, [Link]()
}
[Link]()
}), [Link]([Link].MANIFEST_PARSED, function(t, i) {
if ([Link]("[Link].MANIFEST_PARSED", t, i), "undefined" ==
typeof [Link]) return void [Link]("Hls levels do not exist");
if (![Link]) {
[Link] = !0, [Link](0, "levelauto",
e.i18n.__("player.auto_quality"), !1, function(t) {
[Link] ? [Link]() :
[Link]()
}, function(t) {
[Link]("Click on level auto"),
[Link]("forcequality", -1, 1), [Link] = -1,
[Link]()
}, function(e) {
[Link]()
});
for (var r = 0; r < [Link]; r++) [Link](1,
"level" + r, [Link][r].name, !1, function(t) {
[Link] ? [Link] ===
[Link] ? [Link]() : [Link]() : [Link] ===
[Link] ? [Link]() : [Link]()
}, function(t) {
[Link]("Click on level " + [Link]),
[Link]("forcequality", [Link], 86400), [Link] =
[Link], [Link]()
}, function(e) {
[Link] = r, [Link]()
});
[Link]()
}
}), [Link]([Link].LEVEL_LOADED, function(e, t) {
[Link]("[Link].LEVEL_LOADED", e, [Link])
}), [Link]([Link].FRAG_BUFFERED, function(t, i) {
[Link]("[Link].FRAG_BUFFERED " + t + " url = " + [Link]),
[Link]()
}), [Link]([Link].FRAG_CHANGED, function(t, i) {
[Link]("[Link].FRAG_CHANGED", t, "Level", [Link], "Url",
[Link]), [Link](), [Link]()
}), [Link]([Link], function(t, i) {
if ([Link]("[Link]", t, [Link], [Link]),
[Link]("[Link] " + [Link] + " " + [Link], "Player"), [Link]+
+, [Link] > 20 && e.send_debug_event("many_errors"), [Link]) switch ([Link])
{
case [Link].NETWORK_ERROR:
[Link]();
break;
case [Link].MEDIA_ERROR:
[Link] === [Link].BUFFER_STALLED_ERROR ?
(e.send_debug_event("buffer_blocked"), [Link](),
[Link]()) : [Link]();
break;
default:
[Link]()
}
}), [Link]([Link].FPS_DROP, function(e, t) {
[Link]("[Link].FPS_DROP", e, t)
}), [Link]([Link].FRAG_LOAD_PROGRESS, function(t, i) {
if ("object" != typeof [Link] || "undefined" == typeof [Link])
return void [Link]("Not an XMLProgress event");
if (![Link]) {
var r = [Link] + "-" + [Link];
if ("undefined" == typeof [Link][r]) {
var s = [];
s[0] = (new Date).getTime(), s[1] = [Link], s[2] = -1,
[Link][r] = s
} else if ([Link] === [Link] && -1 ===
[Link][r][2]) {
var o = ((new Date).getTime() - [Link][r][0]) / 1e3,
n = ([Link] - [Link][r][1]) / o / 1024 * 8;
[Link][r][2] = n, e.check_speed_stats()
}
}
var a = 100 / [Link] * [Link];
(a < 5 || a > 95) && [Link]("Progress " + [Link] + " " +
[Link] + " / " + [Link] + " : " + a + " % (Paused : " +
[Link] + ", Seeking : " + [Link] + ", ReadyState : " +
[Link] + ", CurrentTime " + [Link](100 * [Link]) / 100
+ "/" + [Link](100 * [Link]) / 100 + ")"), [Link](a)
}), [Link](this.url_hls), [Link] = 0, !0
},
streamVideo: function() {
if ([Link](), [Link](), "undefined" == typeof logged_user || !
logged_user) return void [Link]("stream");
[Link](this.i18n.__("download.use_external_app"),
this.url_high, this.url_low)
},
downloadVideo: function() {
if ([Link](), [Link](), "undefined" == typeof logged_user || !
logged_user) return void [Link]("download");
var e = [Link]("div", "pl-msg-box");
[Link]([Link]("h2", "", "",
this.i18n.__("[Link]")));
var t = [Link]("p", "", "", this.i18n.__("[Link]"));
[Link](t), [Link](), [Link] = "",
[Link](e), [Link] = !0, [Link](),
[Link]();
var i = this,
r = createRequestObject();
[Link]("get", "/video-download/" + this.id_video, !0), [Link]
= function() {
if (4 === [Link] && 200 === [Link]) {
var e = [Link]([Link]);
if ([Link])
if ("string" == typeof [Link]) [Link](t, "pl-error"),
[Link] = [Link];
else if ("string" != typeof [Link]) {
[Link](t, "pl-error"), [Link] = "";
var s = i.i18n.__("download.error_occured_retry").split("%here
%");
[Link]([Link]("span", "", "", [Link]()));
var o = [Link]("a", "", "", i.i18n.__("misc.here_u"));
[Link] = "#", [Link]("click", function(e) {
[Link](), [Link]()
}), [Link](o), [Link] > 0 &&
[Link]([Link]("span", "", "", [Link]()))
} else [Link](i.i18n.__("[Link]"), [Link],
e.URL_LOW);
else [Link]("download");
[Link]()
}
}, [Link](null)
},
drawnDownloadLinks: function(e, t, i) {
var r = [Link]("div", "pl-dl-box pl-msg-box");
[Link]([Link]("h2", "", "", e));
var s = !0;
i || (i = t, t = "", s = !1);
var o = [Link]("div", "pl-dl-btns " + (s ? "two-btns" : "single-
btn"));
[Link](o);
var n = [Link]("a", "low-qual", "",
this.i18n.__("download.low_qual"));
[Link] = i, [Link](n), s && (n = [Link]("a", "high-qual",
"", this.i18n.__("download.high_qual")), [Link] = t, [Link](n)),
[Link](), [Link] = "",
[Link](r), [Link] = !0, [Link](),
[Link]()
},
drawLoginForm: function(e) {
var t = this.i18n.__("form.*"),
i = {};
[Link] = [Link]("div", "pl-dl-form pl-msg-box"),
[Link]([Link]("h3", "", "", t.login_to_download_video ||
"Log into your account or create one to download this video.")), [Link] =
[Link]("div", "pl-error", "create_form_error"), [Link]([Link]),
[Link]([Link]);
var r = [Link]("form", "pl-login");
[Link] = "[Link] + [Link] + "/account/login/rpc",
[Link](r), [Link] = r, [Link]([Link]("text",
"email", [Link] || "Email")), [Link]([Link]("password",
"password", [Link] || "Password")), [Link] =
[Link]("button", "", "", [Link] || "Login"), [Link] =
"button", [Link]([Link]);
var s = [Link]("div", "pl-forgot-pwd");
[Link](s);
var o = [Link]("a", "", "", t.forgot_password || "Forgot your
password?");
[Link] = this.https_protocol + "://[Link]/account/lostpassword",
[Link] = "_blank", [Link](o);
var n = "//[Link]/legal/tos/",
a = "//[Link]/legal/privacy/"; - 1 !==
[Link]("[Link]") ? (n = "//[Link]/tos", a =
"//[Link]/privacy_policy") : -1 !==
[Link]("[Link]") && (n =
"//[Link]/tos", a = "//[Link]/privacy_policy");
var l = t.tos_pp || "By signing up, you agree to our %tos_link%Terms of
service%end_link% and our %pp_link%Privacy policy terms%end_link%.";
l = [Link]("%tos_link%", '<a href="' + [Link] + n + '"
target="_blank">').replace("%pp_link%", '<a href="' + [Link] + a
+ '" target="_blank">').replace("%end_link%", "</a>").replace("%end_link%",
"</a>");
var d = [Link]("div", "pl-tos"),
h = [Link]("label", "", "", l);
[Link] = "pl-create-account-tos-pp";
var c = [Link]("checkbox", "tos_pp", "", "", "pl-create-account-
tos-pp");
this.desktop_view || ([Link] = !0), [Link](c), [Link](h),
[Link](d);
var u = [Link]("form", "pl-create-account");
[Link](u), [Link] = u,
[Link]([Link]("p", "not-member", "", t.not_yet_xv_member || "Not yet
a XVideos member?")), [Link]([Link]("text", "profile",
t.profile_name || "Profile name")), [Link]([Link]("password",
"confirm", t.password_confirm || "Confirm password")), [Link] =
[Link]("button", "", "", t.create_account || "Create account"),
[Link] = "button", [Link]([Link]),
[Link]([Link]("p", "create-acct-slogan", "",
t.its_free_no_email_verif || "It's free, and you don't have to verify your email
now.")), [Link]([Link]("div", "pl-clear")),
[Link]([Link]("div", "pl-footer", "", t.no_mailing ||
"Please note that we do not run any mailing list so you will not receive any email
from us unless there is a good reason to."));
var p = this,
f = !0;
[Link](), [Link] = "",
[Link]([Link]), [Link] = !0,
[Link]("click", function() {
if ([Link]("createbuttoninput click"), f) return f = !1, void
[Link]([Link], "pl-create");
[Link](i, e)
}), [Link]("click", function() {
[Link]("loginbuttoninput click"), [Link](i, e)
}), [Link](), [Link]()
},
loginAccount: function(e, t) {
if ([Link] && "" !== [Link] && "" !==
[Link]) {
[Link]([Link]), [Link] =
this.i18n.__("form.please_wait", {}, "xvplayer"), [Link] = !0;
var i = this;
[Link]("Start login");
var r = createRequestObject(),
s = [Link];
"http:" === s && "https" === this.https_protocol && "boolean" == typeof
[Link] && (s = "https:", [Link] = !0), [Link]("POST", s +
"//" + [Link] + "/account/login/rpc", !0),
[Link]("Content-type", "application/x-www-form-urlencoded"),
[Link] = function() {
if (4 === [Link]) {
if ([Link] = i.i18n.__("[Link]"),
[Link] = !1, 200 !== [Link]) return [Link] =
i.i18n.__("form.unknown_error"), [Link]([Link]), void("object" == typeof xv
&& "object" == typeof [Link] && [Link]("Call failed for " + s + "//" +
[Link] + "/account/login/rpc", "Player login rpc", r));
var o = [Link]([Link]);
[Link] ? (logged_user = !0, [Link] = !1,
[Link](), "stream" === t ? [Link]() : [Link]()) :
"string" == typeof [Link] ? ([Link] = i.i18n.__("[Link]") + ":
" + [Link], [Link]([Link])) : ([Link] =
i.i18n.__("form.unknown_error"), [Link]([Link]))
}
}, [Link]("login=" + encodeURI([Link]) +
"&password=" + encodeURI([Link]))
}
},
createAccount: function(e, t) {
if ([Link]) {
[Link]([Link]), [Link] =
this.i18n.__("form.please_wait"), [Link] = !0;
var i = this;
[Link]("Start create account");
var r = createRequestObject(),
s = [Link];
"http:" === s && "https" === this.https_protocol && "boolean" == typeof
[Link] && (s = "https:", [Link] = !0), [Link]("POST", s +
"//" + [Link] + "/account/create/rpc", !0),
[Link]("Content-type", "application/x-www-form-urlencoded"),
[Link] = function() {
if (4 === [Link]) {
if ([Link] =
i.i18n.__("form.create_account"), [Link] = !1, 200 !==
[Link]) return [Link] = i.i18n.__("form.unknown_error"),
[Link]([Link]), void("object" == typeof xv && "object" == typeof [Link]
&& [Link]("Call failed for " + s + "//" + [Link] +
"/account/login/rpc", "Player login rpc", r));
var o = [Link]([Link]);
[Link] ? ([Link] = !1, logged_user = !0,
[Link](), "stream" === t ? [Link]() : [Link]()) :
"string" == typeof [Link] ? ([Link] = i.i18n.__("[Link]") + ":
" + [Link], [Link]([Link])) : ([Link] =
i.i18n.__("form.unknown_error"), [Link]([Link]))
}
}, [Link]("email=" + encodeURI([Link]) +
"&profile=" + encodeURI([Link]) + "&password=" +
encodeURI([Link]) + "&password_confirm=" +
encodeURI([Link]) + "&tos_pp=" +
([Link].tos_pp.checked ? "on" : ""))
}
},
drawRelated: function() {
if ([Link]) return void [Link]();
this.uploader_name && [Link]();
var e = this;
[Link] = [Link]("div", "related-vids"),
[Link]([Link]), [Link] =
[Link]("div", "related"),
[Link]([Link]);
var t = -1,
i = function(i) {
var r = e.touch_getPosition(i);
[Link]("start moving at " + r), t = r
},
r = function(i) {
var r = e.touch_getPosition(i);
if (-1 === t) return void(t = r);
var s = t - r;
t = r, [Link]("[Link] " +
[Link] + " [Link] " +
[Link]);
var o = [Link] - s;
[Link]("newposition " + o), o > 0 && (o = 0), o <
e.video_div.offsetWidth - [Link] && (o = e.video_div.offsetWidth
- [Link]), [Link] = o + "px",
[Link]("moving at " + r + " diff = " + s + " new position " + o)
},
s = function(e) {
t = -1
};
[Link]("touchstart", i),
[Link]("touchmove", r),
[Link]("touchend", s),
[Link]("touchcancel", s),
[Link]("touchleave", s);
var o = 0;
if ([Link] && [Link] > 0) {
var n = [Link]("div", "related-video"),
a = [Link]("div", "border"),
l = [Link]([Link]() * [Link]),
d = [Link][l],
h = [Link]("div", "sponsor", "", '<a href="' + [Link] + '"
target="_blank">' + [Link] + "</a>"),
c = [Link]("div", "sponsor-desc", "", [Link]);
[Link]("Sponsor selected", d), [Link]("click",
function() {
[Link]([Link], "_blank")
}), [Link](h), [Link](c), [Link](a),
[Link](n)
}
for (var l in this.related_array) {
o++;
var u = this.related_array[l],
n = [Link]("div", "related-video"),
p = [Link]("a");
[Link] = u.u, [Link](p);
var f = [Link]("div", "thumb"),
v = [Link]("div", "duration", "", u.d),
g = [Link]("img");
[Link] = u.i, [Link](g), [Link](v), [Link](f);
var y = [Link]("p", "", "", u.t);
if ([Link](y), [Link](n), this.desktop_view
&& o >= 27) break
}
var m = [Link]("div");
[Link] = "both", [Link](m), [Link]
= !0, [Link]()
},
drawNextPlaylist: function() {
if ([Link]) return [Link] || [Link] ||
[Link](), void [Link]();
var e = this;
[Link] = [Link]("div", "pl-next"),
[Link]("click", function(t) {
[Link](), [Link](), [Link] = 1,
[Link] = !0, [Link]()
}), this.video_div.appendChild([Link]), [Link] =
[Link]("img"), [Link] = "thumb";
var t, i = [Link]("THUMBNUM", 15),
r = this.video_div.offsetWidth;
t = r > 480 ? .5 * r : .8 * r, "number" == typeof [Link]
&& (t = [Link] * t), [Link](r, [Link], t),
t > 352 ? i = [Link]("thumbs/", "thumbslll/").replace("thumbs169/",
"thumbs169lll/").replace("thumbs169xnxx/", "thumbs169xnxxlll/") : t > 272 ? i =
[Link]("thumbs/", "thumbsll/").replace("thumbs169/",
"thumbs169ll/").replace("thumbs169xnxx/", "thumbs169xnxxll/") : t > 208 && (i =
[Link]("thumbs/", "thumbsl/").replace("thumbs169/",
"thumbs169l/").replace("thumbs169xnxx/", "thumbs169xnxxl/")), [Link]
= i, [Link]([Link]), [Link] =
[Link]("p"), [Link]([Link]),
[Link] = [Link]("[Link]"), [Link] =
"loader", [Link]([Link]),
[Link] = [Link]("div", "pl-timer", "", "5"),
[Link]([Link]), [Link] =
[Link]("[Link]", "player.close_ad"),
[Link] = "dlg-close-btn",
[Link]("click", function(t) {
[Link]("Close Playlist"), [Link](), [Link] = !
0, [Link](), [Link](), [Link](), [Link]()
}, !1), [Link]([Link]),
[Link](), [Link] = !0, [Link]()
},
startPlaylistCountdown: function() {
[Link](), [Link] = 6,
[Link]();
var e = this;
[Link] = setInterval(function() {
[Link]()
}, 1e3)
},
updatePlaylistCountdown: function() {
[Link] = [Link](0, [Link] - 1),
[Link] = [Link];
var e = {
"%nbsecs%": [Link](),
"%name%": '"' + [Link].title_listing + '"'
},
t = "player.loading_next_secs";
0 === [Link] ? t = "player.loading_next" : 1 === [Link]
&& (t = "player.loading_next_sec"), [Link] =
[Link](this.i18n.__(t, e)), 0 === [Link] &&
(this.write_cookie("html5_plfullscreen", [Link] ? "1" : "0"),
[Link] = [Link])
},
stopPlaylistCountdown: function() {
[Link] && (clearInterval([Link]), [Link] = !
1)
},
updateDuration: function() {
if ([Link]) {
if ([Link]) {
[Link] =
[Link]([Link]) + " / " +
[Link]([Link]);
var e = 100 / [Link] *
[Link];
[Link] && ([Link] = e +
"%")
}
for (i = 0; i < this.buffered_div_list.length; i++)
[Link](this.buffered_div_list[i])
} else {
if ("undefined" == typeof [Link]) return
void([Link] && ([Link] = ""));
var e = 100 / [Link] * [Link],
t = [Link],
r = 0;
for ([Link] && ([Link] = e +
"%"), i = [Link]; i < this.buffered_div_list.length; i++)
[Link](this.buffered_div_list[i]);
for (i = 0; i < [Link]; i++) {
var s = 100 / [Link] * [Link](i),
o = [Link](i);
o <= t && o > r ? r = o : [Link](i) <= t && o >=
t && (r = o);
var n = 100 / [Link] * o - s;
if ("undefined" == typeof this.buffered_div_list[i]) {
var a = [Link]("div", "buffer-elt");
[Link] = this.seek_bar_color,
this.buffered_div_list[i] = a, [Link] &&
[Link](a)
} else a = this.buffered_div_list[i];
[Link](a), [Link] = s + "%", [Link] = n + "%"
}
if ([Link] && ([Link] =
[Link]([Link]) + " / " +
[Link]([Link])), !this.use_hls) {
var e = 0;
r > t + 3 ? e = 100 : t + 3 - r < 6 && (e = 100 / 6 * (6 - (t + 3 -
r))), [Link](e)
}
}
},
updateBuffering: function(e) {
e || (e = 0), [Link] = [Link](e) + "%",
[Link] = [Link](e) + "%"
},
formatSeconds: function(e) {
if (e == Infinity) return "00:00";
if (!e) return "00:00";
if (e < 0) return "00:00";
var t = [Link](e / 60);
t < 10 && (t = "0" + t);
var i = [Link](e % 60);
return i < 10 && (i = "0" + i), t + ":" + i
},
setBuffering: function(e) {
if ([Link] !== e) {
if ([Link] = e, e) {
[Link]("setBuffering: is Buffering");
var t = this;
[Link] = (new Date).getTime(),
setTimeout(function() {
[Link](), [Link]()
}, 600), [Link] &&
clearTimeout([Link]), [Link] =
setTimeout(function() {
[Link] && ([Link]("Buffer timeout"),
t.send_debug_event("buffer_timeout"))
}, 1e4)
} else {
clearTimeout([Link]),
[Link] = !1;
var i = (new Date).getTime() - [Link];
[Link] && ([Link] = !0,
[Link]("setBuffering: is not Buffering in " + i + " ms"),
this.send_debug_event("buffer_duration", i))
}
[Link](), [Link]()
}
},
detectPlaying: function() {
if (this.use_hls && ![Link] && [Link]) return
[Link] = !1, [Link] = !0, void [Link](!1);
if ([Link]) return [Link] = !1, void
[Link](!0);
if (3 === [Link]) return [Link] = !1, void
[Link](!1);
if ([Link]) return [Link] && [Link] ?
[Link]() : [Link](), [Link] = !1, void
[Link](!1);
if ([Link] !== [Link]) [Link]
= !0, [Link](!1);
else if ([Link])
if ([Link]) [Link] = !1, [Link](!1);
else {
if ((new Date).getTime() - [Link] < 500) return;
[Link] = !1, [Link](!0)
}
else [Link] = !1, [Link](!0);
var e = [Link];
[Link] = (new Date).getTime(), [Link]
= [Link];
var t = [Link] - e;
t > 0 && t < 1 && (this.total_video_played += t, (this.total_video_played >
10 && this.total_video_played < 10.5 || this.total_video_played > 70 &&
this.total_video_played < 70.5) && [Link](),
this.report_video_played_sent || this.total_video_played > 10 && require &&
(this.report_video_played_sent = !0, require(["skins/common/video/tracking"],
function(e) {
[Link]()
})))
},
getDrawMinSize: function() {
var e = this.video_div.offsetHeight;
return this.video_div.offsetWidth < e && (e = this.video_div.offsetWidth),
e
},
getDrawButtonMargin: function() {
var e = [Link]();
return [Link] ? [Link](.04 * e) : [Link](.06 * e)
},
getDrawResizeCoef: function() {
return this.desktop_view ? .8 : this.is_new_iphone ? this.is_ipad ?
[Link]() / 500 : [Link]() / 300 : [Link]() /
400
},
redraw: function() {
var e = this.video_div.offsetWidth,
t = this.video_div.offsetHeight,
i = [Link](),
r = 1.4;
this.desktop_view && (r = .9), this.is_new_iphone && (r = 1.5);
var s = [Link](),
o = function(e, t, r) {
[Link] = [Link](t * i) + "px", r && ([Link] =
[Link](r * i) + "px")
},
n = function(e) {
for (var t = [], r = 1; r < [Link]; r++)
[Link]([Link](arguments[r] * i) + "px");
[Link] = [Link](" ")
},
a = function(e, t, i) {
o(e, t, i);
for (var r = [e], s = 3; s < [Link]; s++)
[Link](arguments[s]);
[Link](this, r)
},
l = function(e) {
for (var t = [], r = 1; r < [Link]; r++)
[Link]([Link](arguments[r] * i) + "px");
[Link] = [Link](" ")
},
d = 20,
h = 1;
if ([Link] ? (h = 2 / 3, d = 15) : this.desktop_view ? (h = .75, d
= 17) : this.use_browser_controls && !this.is_new_iphone ? h = .5 :
[Link] ? (h = 2 / 3, d = 15) : [Link] && (h = .75, d = 17), !
this.desktop_view) {
this.is_ios || this.is_ipad || ([Link] && !
[Link] && (h = .9, d = 19), n([Link], 5, 10),
a([Link], 45 * h, 45 * h, 7.5 * h),
[Link] = [Link](15 * i) + "px")
}
if ([Link]) {
var c = 5 + 20 * h;
n([Link], c, 10), a([Link], 60 * h, 60 * h, 10 * h),
n([Link], c, 10), a([Link], 60 * h, 60 * h, 10 * h)
}
if (n([Link], 5, 10), a([Link], 90 * h, 90 * h, 15 * h),
[Link] = [Link](d * i) + "px", this.desktop_view ||
(n([Link], 5, 10), a([Link], 90 * h, 90 * h, 15 * h),
this.use_browser_controls && (n([Link], 5, 10), a([Link], 40, 40,
5))), [Link](), this.use_browser_controls &&
(o([Link], 25, 25), n([Link], 5),
[Link] = s + "px", [Link] =
[Link](s / 2) + "px", this.uploader_name && l([Link], 5, 7)), !
this.use_browser_controls) {
a([Link], 23 * r, 23 * r, 5 * r, 7 * r), a([Link], 23
* r, 23 * r, 5 * r, 7 * r), a([Link], 28 * r, 28 * r, 5 * r, 7 * r),
a([Link], 28 * r, 28 * r, 5 * r, 7 * r), this.desktop_view &&
(o([Link], 75 * r, 23 * r), a([Link], 23 * r, 23 * r, 5 * r,
7 * r), a([Link], 23 * r, 23 * r, 5 * r, 7 * r)), a([Link], 25
* r, 25 * r, 5 * r, 7 * r), this.uploader_name && l([Link], 5 * r, 7 *
r), this.desktop_view && l([Link], 5 * r, 7 * r),
this.use_parameter_menu && (o([Link], 30 * r, 30 * r),
l([Link], 2.5, 4), [Link] = [Link](12 * i
* r) + "px"), a([Link], 25 * r, 25 * r, 5 * r, 7 * r),
this.desktop_view && a([Link], 26, 26, 5 * r, 7 * r),
a([Link], 28 * r, 28 * r, 5 * r, 7 * r);
var u = 2.5;
if (this.desktop_view && (u = 3.5), [Link] =
[Link]([Link], [Link]) * u +
"px", this.desktop_view ? ([Link]() ?
[Link] = [Link](35 * i * u) + "px" :
[Link] = [Link](2 * i) + "px",
[Link] ? [Link] = [Link](10 * i) +
"px" : [Link] = [Link](5 * i) + "px",
[Link] && ([Link] =
[Link](70 * i) + "px")) : [Link] = [Link](20 * i) +
"px", [Link] = [Link](7 * i) + "px",
this.allow_touchseek) {
[Link] = [Link](20 *
i) + "px";
var p = 208 * i,
f = 117 * i;
this.desktop_view && (p /= 1.2, f /= 1.2),
[Link] = [Link](p) + "px",
[Link] = [Link](f) + "px",
this.thumb_slide_type == HTML5Player.TYPE_FULL ?
[Link] = 10 * [Link](p) + "px " + 10 *
[Link](f) + "px" : this.thumb_slide_type == HTML5Player.TYPE_MINUTE ?
[Link] = 10 * [Link](p) + "px " + 6 *
[Link](f) + "px" : [Link] = 6 *
[Link](p) + "px " + 5 * [Link](f) + "px"
}
this.use_browser_controls || (this.desktop_view ?
([Link] = "2px", [Link] = "2px",
[Link]() ? [Link] =
[Link] / u + "px" : [Link] = "0px")
: ([Link] > 0 && ([Link] =
[Link](([Link] / u - [Link]) /
2) + "px"), [Link] = [Link] + 10 * i
+ "px", [Link] = [Link] + 10 * i +
"px", [Link] = [Link] + "px",
[Link] = [Link]([Link] /
1.3) + "px", e < 300 && ([Link] = "12px")))
}
if ([Link] && (o([Link], 55),
n([Link], 5), [Link] = "-" +
[Link]([Link] / 2) + "px",
[Link] = "-" + [Link] / 2 +
"px", [Link] = s + "px", [Link] =
[Link](20 * i) + "px", [Link] = [Link](t - 2 *
s) + "px"), this.display_inplayersquare && ([Link] =
[Link](338 * i + 4) + "px", [Link] =
[Link](235 * i + 4) + "px", [Link] = [Link](10 *
i) + "px", [Link] = [Link](e / 2 -
([Link] + [Link]) / 2) +
"px", o([Link], 60), n([Link], 7.5),
[Link] = "-" + [Link](60 * i + 8 + 7.5 * i * 3) +
"px"), o([Link], 90, 90), [Link] > 0 &&
([Link] = [Link](e / 2 - [Link] / 2) +
"px", [Link] = [Link](t / 2 -
[Link] / 1.8) + "px"), [Link] =
[Link](90 * i) + "px", [Link] = [Link](15 * i) +
"px", [Link] = s / 2 + "px", [Link] &&
([Link] = 3 * s + "px"), [Link] = s /
3 + "px", this.is_ipad && ([Link] = s / 2 + 20 + "px"),
[Link] = [Link](e - 3 * s) + "px",
[Link] = [Link](15 * i) + "px", this.videoads_div &&
(this.videoads_title_div.[Link] = [Link](15 * i) + "px",
this.videoads_title_div.[Link] = s / 3 + "px", this.use_browser_controls &&
(this.videoads_title_div.[Link] = s / 2 + 20 + "px")),
[Link] = [Link](20 * i) + "px",
[Link] = [Link](6 * i) + "px", [Link] &&
([Link] = [Link](15 * i) + "px",
[Link] = s / 3 + "px", this.use_browser_controls &&
([Link] = s / 2 + 20 + "px")), ![Link] &&
[Link]) {
if ([Link]) {
var v = [Link](t - [Link] - s / 2 -
([Link] ? [Link] / u :
[Link])),
g = [Link](130 * i);
this.desktop_view && (g = 180), [Link]
= [Link](s / 2 + [Link]) + "px",
[Link] = v + "px", [Link] = v
+ "px", [Link] = [Link](14 * i) + "px",
this.desktop_view && ([Link] = "13px");
for (var y = [Link]("related-
video"), m = 0; m < [Link]; m++) y[m].[Link] = g + "px", y[m].[Link] =
g + "px", y[m].[Link] = [Link](7 * i) + "px";
var b = [Link](v / (g + [Link](7 * i)));
this.desktop_view ? ([Link] = e + "px",
[Link] = [Link]((g + 4 + 7 * i) * b) + "px") :
[Link] = [Link](([Link]([Link] / b) + 1) * (g + 7 +
8 * i)) + "px"
}
if ([Link]) {
var _ = [Link],
E = [Link];
[Link] = [Link]((t - E) / 2) + "px",
o([Link], 60), n([Link], 7.5),
[Link] = "-" + [Link](37.5 * i) + "px",
[Link] = "-" + [Link](37.5 * i) + "px",
o([Link], 200), [Link] = [Link](E / 2 - 100 *
i) + "px", [Link] = [Link](_ / 2 - 100 * i) + "px",
[Link] = [Link](60 * i) + "px",
[Link] = [Link](E / 2 -
[Link] / 2) + "px", [Link] =
[Link](_ / 2 - [Link] / 2) + "px",
[Link] = [Link](s / 3) + "px", [Link]
= [Link](s / 3) + "px", [Link] = [Link](_ - s) +
"px", [Link] = [Link](15 * i) + "px",
[Link] = [Link](20 * i) + "px",
[Link] = [Link](6 * i) + "px"
}
}
if (this.use_parameter_menu) {
[Link] = [Link] / u
+ "px", [Link] = [Link] + "px",
[Link] = [Link](200 * i) + "px",
[Link] = [Link](15 * i) + "px";
for (var m in [Link]) o([Link][m], 15);
[Link]()
} else {
var w = [[Link], [Link]];
for (var m in w) a(w[m], 100, null, 7), w[m].[Link] =
[Link](17 * i) + "px", w[m].[Link] = s + "px";
[Link] = [Link](25 * i,
[Link]) + 5.3 * s + 7 + "px",
[Link] = 5 * s + 7 + "px"
}
this.is_embed && ([Link] =
(this.use_browser_controls ? 0 : [Link] / u) + s + "px",
[Link] = s + "px"), [Link](), e <= 340 || t <=
260 ? ([Link](this.video_div, "pl-mobile"), [Link](this.video_div,
"pl-mobile-small")) : e <= 480 ? ([Link](this.video_div, "pl-mobile"),
[Link](this.video_div, "pl-mobile-small")) :
([Link](this.video_div, "pl-mobile"), [Link](this.video_div,
"pl-mobile-small"))
},
positionBigButtons: function() {
0 == [Link] && 0 == [Link] ||
([Link] = [Link](this.video_div.offsetWidth / 2 -
[Link] / 2) + "px", [Link] || [Link] ?
[Link] = "0px" : this.use_browser_controls && !
this.is_new_iphone ? [Link] =
[Link](this.video_div.offsetHeight / 2 - 1.5 * [Link]) +
"px" : this.is_new_iphone ? [Link] =
[Link](this.video_div.offsetHeight / 2 - [Link] / 2.2) +
"px" : [Link] = [Link](this.video_div.offsetHeight / 2 -
[Link] / 1.8) + "px")
},
updateBtVisibity: function() {
return [Link](), [Link](["logoxvideos",
"videotitlediv", "loaderpic", "picture_div", "playbt", "pausebt", "chromecastbt",
"plprevbt", "plnextbt", "replaybt", "downloadbt", "streambt", "browserctrlsdlbt",
"highqualitybt", "lowqualitybt", "playbarbt", "pausebarbt", "replaybarbt",
"soundonbarbt", "soundoffbarbt", "soundvolglobal", "downloadbarbt", "expandbarbt",
"fullscreenbarbt", "paramsbarbt", "subscribebarbt", "plnextbarbt", "plprevbarbt",
"parametersmenu", "parameterbthd", "progressbar", "progressbarbg",
"progressbartext", "advertdivcontainer", "advertdoubleclick", "sponsorpopup",
"messagediv", "errordlg", "relateddivcontainer", "plnextcontainer",
"videoads_title_div"]), [Link] ? ([Link](), void
[Link]()) : [Link] && [Link] ?
([Link](["chromecastbt", "picture_div"]),
[Link](["progressbarbg", "soundvolglobal"]),
[Link](["progressbar", "progressbartext"]), "PLAYING" !==
[Link] ? [Link]("playbarbt") :
[Link]("pausebarbt"), void [Link]()) : (([Link]
|| [Link]) && ([Link]("picture_div"), [Link] &&
(this.picture_div.className = "video-pic picture-related")), [Link] ?
([Link](["playbt", "plprevbt", "plnextbt"]), !this.is_ios && !this.is_ipad
&& this.url_hls && [Link] && [Link](["chromecastbt"]),
this.display_inplayersquare && [Link] ?
([Link]("advertdivcontainer"), [Link] &&
[Link]("advertdoubleclick")) : this.desktop_view &&
[Link]("videotitlediv"), void [Link]()) :
[Link] ? ([Link]("messagediv"), void [Link]()) :
(this.is_embed && [Link]("logoxvideos"), this.use_browser_controls &&
this.is_new_iphone && ![Link] ? ([Link]("playbt"), void
[Link]()) : ([Link]() ?
([Link](["progressbarbg", "soundvolglobal"]), [Link] || 0 ===
[Link] ? [Link]("soundoffbarbt") :
[Link]("soundonbarbt"), this.is_embed && ![Link]() ||
(this.is_new_iphone ? this.is_new_iphone && [Link] &&
[Link]("fullscreenbarbt") : [Link]("fullscreenbarbt")),
this.is_embed || [Link] || [Link]("expandbarbt"),
this.desktop_view && ([Link] ? [Link]("playbarbt") :
[Link]("pausebarbt")), this.desktop_view &&
[Link]("downloadbarbt"), this.use_parameter_menu &&
([Link]("paramsbarbt"), this.use_hls && [Link] &&
[Link] > 2 && [Link]("parameterbthd"),
[Link] && [Link]("parametersmenu")), [Link]
&& (this.is_new_iphone ? [Link] && [Link](["progressbar",
"progressbartext"]) : [Link](["progressbar", "progressbartext"])),
[Link] && [Link](["pausebt", "plprevbt", "plnextbt"]),
[Link] && ([Link] && [Link]("plprevbarbt"),
[Link] && [Link]("plnextbarbt"))) : this.desktop_view && !
[Link] && [Link](["progressbarbg", "progressbar"]),
(this.allow_showInfos || [Link] || ![Link] || [Link]) &&
(this.desktop_view && [Link](["videotitlediv"]), [Link] &&
(this.videoads_title_div ? [Link](["videoads_title_div"]) :
[Link](["sponsorpopup"])), this.use_browser_controls && (this.is_ios ||
this.is_ipad || [Link](["browserctrlsdlbt", "plprevbt", "plnextbt"]),
(this.is_ios || this.is_old_ios) && !this.use_native_hls && this.url_high &&
([Link](["highqualitybt", "lowqualitybt"]), this.force_lq ?
([Link] = "quality-btn quality-forced",
[Link] = "quality-btn quality-default") :
([Link] = "quality-btn quality-default",
[Link] = "quality-btn quality-forced")))), ![Link] ||
[Link] ? ([Link](["highqualitybt", "lowqualitybt", "pausebt"]),
this.use_browser_controls || ([Link] ? [Link](["plprevbt",
"plnextbt"]) : [Link](["plprevbt", "plnextbt"])), this.is_ios ||
this.is_ipad || ((new Date).getTime() - [Link] > 500 ?
([Link]("Show buffer"), [Link]("loaderpic")) : [Link]
&& ![Link] && [Link](["playbt"])), void [Link]())
: [Link] ? ([Link] ? [Link]("plnextcontainer") :
[Link]("relateddivcontainer"), [Link](["replaybt", "replaybarbt",
"progressbarbg"]), this.desktop_view && [Link](["videotitlediv"]),
[Link] && [Link]("subscribebarbt"),
[Link](["logoxvideos", "progressbar", "playbarbt", "pausebarbt",
"downloadbarbt", "soundonbarbt", "soundoffbarbt", "soundvolglobal", "paramsbarbt",
"highqualitybt", "lowqualitybt", "progressbartext", "playbt", "pausebt",
"plprevbt", "plnextbt", "browserctrlsdlbt"]), this.is_embed && !
[Link]() || [Link]("fullscreenbarbt"), this.is_embed ||
[Link] || [Link]("expandbarbt"), [Link] &&
([Link] && [Link]("plprevbarbt"), [Link] &&
[Link]("plnextbarbt")), void [Link]()) :
[Link] ? ([Link](["pausebt"]), [Link](["plprevbt",
"plnextbt"]), [Link] || this.use_browser_controls ? (this.is_ios ||
this.is_ipad || [Link]("browserctrlsdlbt"), this.desktop_view &&
[Link](["videotitlediv"]), [Link]([Link])) :
this.desktop_view || [Link] && [Link](["chromecastbt"]),
this.use_browser_controls || (this.desktop_view && [Link] && !
this.allow_showInfos ? [Link](["logoxvideos", "progressbarbg",
"fullscreenbarbt", "expandbarbt", "videotitlediv", "progressbar", "playbarbt",
"pausebarbt", "downloadbarbt", "soundonbarbt", "soundoffbarbt", "soundvolglobal",
"paramsbarbt", "highqualitybt", "lowqualitybt", "progressbartext", "playbt",
"pausebt", "plprevbt", "plnextbt", "browserctrlsdlbt", "videoads_title_div",
"sponsorpopup"]) : [Link](["playbt"])), void [Link]()) :
void [Link]())))
},
showPause: function() {
if (!this.desktop_view) {
[Link]("show pause"), [Link] = !0,
this.showpausebt_timer && clearTimeout(this.showpausebt_timer);
var e = this;
this.showpausebt_timer = setTimeout(function() {
[Link]("Show pausebt end"), [Link] = !1,
[Link]()
}, 3e3), [Link](), [Link]()
}
},
showInfos: function(e) {
this.allow_showInfos = !0, this.allow_showInfosTimer &&
clearTimeout(this.allow_showInfosTimer);
var t = this;
this.allow_completHideSeekBar &&
(clearTimeout(this.allow_completHideSeekBar), delete
this.allow_completHideSeekBar), [Link] = !1,
this.allow_showInfosTimer = setTimeout(function() {
[Link]("Show Info end"), t.allow_showInfos = !1,
t.allow_showInfosTimer = !1, [Link] = !1, [Link] = !1,
[Link] || t.desktop_view || ([Link] = !1), [Link](),
[Link](), [Link](), t.desktop_view && (t.video_div.[Link] =
"none", t.allow_completHideSeekBar = setTimeout(function() {
[Link] = !0, [Link]()
}, 5e3))
}, 3e3), [Link](), e ? [Link]() :
[Link]()
},
hideInfos: function() {
this.allow_showInfos = !1, this.allow_showInfosTimer &&
clearTimeout(this.allow_showInfosTimer), this.allow_showInfosTimer = !1,
[Link] = !1, [Link] = !1, [Link](),
[Link]()
},
seek: function(e) {
if ([Link]) {
[Link]("[Link](" + [Link](2) + ") Chromecast");
var t = new [Link];
return [Link] = e, void [Link](t, function()
{
[Link]("Chromecast Seek ok")
})
}
[Link] && ([Link]("[Link](" + [Link](2) +
")"), [Link] = [Link](2), [Link] = !1)
},
play: function() {
[Link]("[Link]()"), [Link](), [Link] = !1,
[Link] = "", [Link] ? [Link]() :
[Link]()
},
replay: function() {
[Link] = !1, [Link](), [Link] = !1,
[Link] = 0, [Link]()
},
pause: function() {
[Link]("[Link]()"), [Link] ?
[Link]() : [Link]()
},
mute: function() {
[Link](), [Link] = !0, this.desktop_view &&
([Link] = "0%"), [Link]()
},
unmute: function() {
[Link](), [Link] = !1, this.desktop_view &&
([Link] = [Link](100 * [Link]) +
"%"), [Link]()
},
setVolume: function(e) {
[Link](), [Link] = !1, [Link] = e,
this.desktop_view && ([Link] = [Link](100 * e) +
"%"), [Link]()
},
setLQ: function() {
this.force_lq || ([Link](), this.force_lq = !0,
[Link](), [Link]())
},
setHQ: function() {
this.force_lq && ([Link](), this.force_lq = !1,
[Link](), [Link]())
},
fullscreen: function() {
if ([Link]("[Link]: " + [Link]),
[Link]()) [Link] ||
[Link] || [Link] ||
[Link] ? [Link] ?
[Link]() : [Link] ?
[Link]() : [Link] ?
[Link]() : [Link] &&
[Link]() : this.video_div.requestFullscreen ?
this.video_div.requestFullscreen() : this.video_div.mozRequestFullScreen ?
this.video_div.mozRequestFullScreen() : this.video_div.webkitRequestFullscreen ?
this.video_div.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT) :
this.video_div.msRequestFullscreen ? this.video_div.msRequestFullscreen() :
alert("Not supported"), [Link]();
else if ([Link]()) return void
[Link]()
},
hasFullscreenElement: function() {
return !![Link] || !!([Link] ||
[Link] || [Link] ||
[Link])
},
toggleFullscreen: function() {
var e = [Link]();
if (e !== [Link]) {
if (e && ![Link]) {
if (this.fullscreen_asked = (new Date).getTime(),
this.video_div.[Link] = "100%", [Link] = this.http_protocol
+ "://" + this.static_domain + "/v3/img/player/[Link]",
this.use_hls && !this.desktop_view && [Link] &&
[Link]) {
var t = [Link] / [Link];
[Link]("Video ratio", t), t > 1.3 &&
[Link]("landscape"), t < .9 &&
[Link]("portrait")
}
} else this.video_div.[Link] = "", [Link] =
this.http_protocol + "://" + this.static_domain + "/v3/img/player/icon-screen-
[Link]";
[Link] = e, [Link](), [Link](),
this.send_debug_event("fullscreen"), [Link] &&
clearTimeout([Link]);
var i = this;
[Link] = setTimeout(function() {
[Link] = !1, [Link]()
}, 100)
}
},
fullscreeniOSSupported: function() {
return !![Link]("video").webkitEnterFullscreen
},
fullscreenSupported: function() {
var e = [Link]("div");
return !![Link] || (!![Link] || (!!
[Link] || !![Link]))
},
fullscreenAllowed: function() {
return !!([Link] || [Link] ||
[Link] || [Link])
},
closeAd: function() {
if (![Link] && ![Link]) return void [Link]("closeAd() :
Ad already closed");
[Link]("closeAd() : Closing ad"), [Link] = !1, [Link] = !
1, this.use_browser_controls && !this.is_new_iphone && [Link](),
[Link](!0), [Link]()
},
hideSponsor: function(e) {
if ([Link]) return e ? ([Link] = !1, void
[Link]()) : void([Link] && ([Link] < .1
* [Link] || ([Link] = !1, [Link]())))
},
showVideoControls: function() {
[Link]("showVideoContols() : Showing controls"), [Link]
= "", [Link] = "controls", [Link] = !1
},
hideVideoControls: function() {
[Link]("hideVideoControls() : Hide controls"), [Link] =
"ios_player", [Link] = !1
},
loadVideoSrc: function() {
if ([Link](), this.use_hls) return void [Link]();
if (this.use_native_hls) return void([Link] = this.url_hls);
var e = this.url_high;
e || (e = this.url_low), this.force_lq && (e = this.url_low),
[Link] = e
},
saveNeedSeek: function() {
[Link] && (this.pending_seek = [Link],
[Link] || [Link] && ![Link] ? this.seek_was_playing
= !0 : this.seek_was_playing = !1, [Link]("saveNeedSeek at " +
this.pending_seek + " (was playing " + this.seek_was_playing + ")"))
},
checkNeedSeek: function() {
this.pending_seek && (this.seek_was_playing ? ([Link](),
[Link]("seekNeed detected to ", this.pending_seek, " and play needed")) :
([Link](), [Link]("seekNeed detected to ", this.pending_seek)),
[Link] = this.pending_seek.toFixed(2), this.pending_seek = 0)
},
cursorOverProgressBar: function() {
[Link] &&
(clearTimeout([Link]), [Link] = !
1), [Link] = !0, [Link]()
},
cursorLeaveProgressBar: function() {
var e = this;
[Link] || ([Link] =
setTimeout(function() {
[Link] = !1, [Link] = !1,
[Link](), [Link]()
}, 2e3))
},
showBigProgressBar: function() {
if (this.use_browser_controls) return !1;
if ([Link]) return !0;
if ([Link]) return !0;
if (this.desktop_view) {
if (this.allow_showInfos || [Link] || ![Link] ||
[Link]) return !0;
if (![Link]) return !0
} else if (this.allow_showInfos || [Link] || ![Link] ||
[Link]) return !0;
return !1
},
computeThumbSlideType: function() {
if (!this.thumb_slide_big) return void(this.thumb_slide_type =
HTML5Player.TYPE_SMALL);
if (this.use_native_hls) return this.thumb_slide_min ?
void(this.thumb_slide_type = HTML5Player.TYPE_MINUTE) : void(this.thumb_slide_type
= HTML5Player.TYPE_FULL);
if (!this.use_hls) return void(this.thumb_slide_type =
HTML5Player.TYPE_SMALL);
var e = this.get_networkspeed();
return e ? e < 2e3 ? void(this.thumb_slide_type = HTML5Player.TYPE_SMALL) :
this.desktop_view && this.thumb_slide_min ? e < 6e3 ? void(this.thumb_slide_type =
HTML5Player.TYPE_FULL) : void(this.thumb_slide_type = HTML5Player.TYPE_MINUTE) :
void(this.thumb_slide_type = HTML5Player.TYPE_FULL) : void(this.thumb_slide_type =
HTML5Player.TYPE_SMALL)
},
recoverError: function(e) {
if ([Link]("Error recovery", (new Date).getTime(),
[Link]), ![Link]) {
if (this.send_debug_event("playerror"), this.use_hls && 7 ==
this.id_cdn_hls && [Link](), !e && (new Date).getTime() -
[Link] < 18e5) return [Link]("Error recovery. Too fast."),
[Link] = !0, void [Link]();
[Link] = (new Date).getTime(), [Link]()
}
},
updateUrlRPC: function() {
var e = this;
[Link] = !0;
var t = this.id_cdn;
(this.use_hls || this.use_native_hls) && (t = this.id_cdn_hls),
[Link]("updateUrlRPC try to update URL after a fatal error", "Player");
var i = createRequestObject();
[Link]("GET", this.http_protocol +
"://[Link]/html5player/getvideo/" + this.id_video + "/" + t, !0),
[Link] = function() {
if (4 === [Link]) {
if ([Link] = !1, [Link] = !1,
[Link](), 200 !== [Link]) return [Link] = !0,
[Link](), void [Link]("updateUrlRPC error status", [Link]);
try {
var t = [Link]([Link])
} catch (r) {
return [Link] = !0, [Link](), void
[Link]("Url RPC Call bad json")
}
e.url_hls && [Link] && (e.url_hls = [Link], e.id_cdn_hls =
t.hls_idcdn, [Link]("updateUrlRPC update hls " + [Link], "Player")),
e.url_low && t.mp4_low && (e.url_low = t.mp4_low, e.id_cdn = t.mp4_idcdn,
[Link]("updateUrlRPC mp4 low " + t.mp4_low, "Player")), e.url_high &&
t.mp4_high && (e.url_high = t.mp4_high, e.id_cdn = t.mp4_idcdn,
[Link]("updateUrlRPC mp4 high " + t.mp4_high, "Player")), [Link]()
}
};
try {
[Link]()
} catch (r) {
[Link]("urlRPC Call error")
}
},
loadPreference: function() {
var e = this.get_cookie("html5_pref");
if (null !== e) {
var t = [Link](e);
void 0 !== t && (!0 === [Link] && (this.force_lq = !0), this.desktop_view
&& "undefined" != typeof [Link] && [Link] && ([Link] = [Link],
[Link] && ([Link] =
[Link](100 * [Link]) + "%")), !0 === [Link] && [Link] &&
([Link] = !0), !0 === [Link] && ([Link] = !
0), !0 === [Link] && ([Link] = !0), !0 ===
[Link] && ([Link] = !0), !0 === [Link] &&
([Link] = !0), "boolean" != typeof [Link] || [Link] ||
([Link] = !1))
}
},
savePreference: function() {
arr = {}, [Link] = this.force_lq, [Link] = [Link], [Link] =
[Link], [Link] = [Link],
[Link] = [Link], [Link] =
[Link], [Link] = [Link], [Link] =
[Link];
var e = [Link](arr);
this.write_cookie("html5_pref", e)
},
save_networkspeed: function(e) {
this.write_cookie("html5_networkspeed", e)
},
get_networkspeed: function() {
var e = this.get_cookie("html5_networkspeed");
return e || !1
},
write_cookie: function(e, t) {
var i = new Date;
[Link]([Link]());
var r = new Date([Link]() + 2592e6);
[Link] = e + "=" + escape(t) + ";expires=" + [Link]() +
";path=/"
},
get_cookie: function(e) {
var t, i, r, s = [Link](";");
for (t = 0; t < [Link]; t++)
if (i = s[t].substr(0, s[t].indexOf("=")), r =
s[t].substr(s[t].indexOf("=") + 1), (i = [Link](/^\s+|\s+$/g, "")) == e) return
unescape(r);
return null
},
doubleclick_debug: function(e, t) {
if (this.send_adclick_debug && !this.doubleclick_stats_send) {
var i = -1,
r = -1;
if (t && [Link]) {
var s = [Link]();
if (!s) return void [Link]("Unable to get rect");
if (![Link] || ![Link]) return void [Link]("Unable to get rect
(2)");
i = [Link](100 / [Link] *
(this.touch_getPosition(t) - [Link])), r = [Link](100 / [Link] *
(this.touch_getPositionY(t) - [Link])), i < 0 && (i = 0), i > 100 && (i = 100), r <
0 && (r = 0), r > 100 && (r = 100)
}
if ([Link]("doubleclick_debug , type = " + e + " , pos x = " + i +
", pox y = " + r), ("firstdbclick" !== e && "firstclick" !== e ||
(this.dbclick_first_x = i, this.dbclick_first_y = r, this.dbclick_start_date = (new
Date).getTime(), this.dbclick_sec_x = -1, this.dbclick_sec_y = -1, "firstdbclick" !
== e)) && -1 !== this.dbclick_first_x && -1 !== this.dbclick_first_y) {
var o = 0;
"secdbclick" === e && (this.dbclick_sec_x = i, this.dbclick_sec_y =
r, o = (new Date).getTime() - this.dbclick_start_date);
var n = 1; - 1 !== this.dbclick_sec_x && (n = 2);
var a = "d";
"firstclick" === e && (a = "s");
var l = "/dbckstats/" + a + "/" + n + "/" + this.dbclick_first_x +
"/" + this.dbclick_first_y;
n > 1 && (l += "/" + this.dbclick_sec_x + "/" + this.dbclick_sec_y
+ "/" + o), [Link]("Calling", l), this.doubleclick_stats_send = !0;
var d = createRequestObject();
[Link]("GET", l, !0), [Link] = function() {
4 === [Link] && [Link]
}, [Link]()
}
}
},
check_speed_stats: function() {
if (![Link]) {
var e = 0,
t = 0;
for (var i in [Link]) - 1 !== [Link][i][2] && (e++, t
+= [Link][i][2]);
if (e < 5) return void [Link]("Not enought stats");
var r = [Link](t / e);
[Link]("check_speed_stats Network speed " + r + " Kb/s",
"Player"), this.save_networkspeed(r), this.send_debug_event("network_speed", r),
[Link] = !0
}
},
send_debug_event: function(e, t) {
if (!this.is_embed) {
if ("loaded" === e) {
if (this.debug_events.loaded) return;
this.debug_events.loaded = !0
} else if ("playing" === e) {
if (this.debug_events.playing) return;
this.debug_events.playing = !0
} else if ("fullscreen" === e) {
if (this.debug_events.fullscreen) return;
this.debug_events.fullscreen = !0
} else if ("playerror" === e) {
if (this.debug_events.playerror) return;
this.debug_events.playerror = !0
} else if ("devicespeed" === e) {
if (this.debug_events.devicespeed) return;
if (this.debug_events.devicespeed = !0, [Link]() < .8) return
} else if ("network_speed" === e) {
if (this.debug_events.network_speed) return;
this.debug_events.network_speed = !0
} else if ("many_errors" === e) {
if (this.debug_events.many_errors) return;
this.debug_events.many_errors = !0
} else if ("fakeplayerloaded" === e) {
if (this.debug_events.fakeplayerloaded) return;
this.debug_events.fakeplayerloaded = !0
} else if ("buffer_blocked" === e) {
if (this.debug_events.buffer_blocked) return;
this.debug_events.buffer_blocked = !0
} else if ("buffer_timeout" === e) {
if (this.debug_events.buffer_timeout) return;
this.debug_events.buffer_timeout = !0
} else if ("buffer_duration" === e) {
if (this.debug_events.buffer_duration) return;
this.debug_events.buffer_duration = !0
}
var i = this.id_cdn;
if (this.use_hls && (e = "hls_" + e, i = this.id_cdn_hls),
this.use_native_hls && (e = "hlsnative_" + e, i = this.id_cdn_hls),
"hls_devicespeed" == e && (e = "devicespeed"), "hls_fullscreen" != e) {
[Link]("Send debug event '" + e + "'");
var r = createRequestObject();
[Link]("GET", "/html5player/" + e + "/" + this.id_video + "/" + i +
"/" + (t || ""), !0), [Link] = function() {
4 === [Link] && [Link]
}, [Link]()
}
}
},
storageAvailable: function() {
try {
var e = [Link],
t = "__storage_test__";
return [Link](t, t), [Link](t), !0
} catch (i) {
return !1
}
},
setLocalStorage: function(e, t, i) {
if (![Link]()) return !1;
var r = {
value: t,
expire: (new Date).getTime() / 1e3 + i
};
return [Link]("setLocalStorage", e, r), [Link](e,
[Link](r))
},
getLocalStorage: function(e) {
if (![Link]()) return !1;
var t = [Link](e);
if ([Link]("getLocalStorage", e, t), !t) return [Link]("Key", e,
"doesn't exist"), !1;
var i = [Link](t);
return !!i && ([Link] < (new Date).getTime() / 1e3 ? ([Link]("Key",
e, "expire"), [Link](e), !1) : [Link])
},
sendPendingDuration: function() {
[Link]("Send pending video duration");
var e = (new Date).getTime(),
t = [Link]("durationsend_lock");
if (t && e - t < 1e4) return void [Link]("Duration send locked", t,
e);
[Link]("durationsend_lock", e);
for (var i = 0; i < [Link]; i++) {
var r = [Link](i);
if ("videoduration_" == [Link](0, 14)) {
var s = [Link](14),
o = [Link](r);
[Link](r), i--;
var n = 0,
a = 0,
l = "";
try {
var d = [Link](o);
if (!d.cdn_id || ![Link]) {
[Link]("Duration send: Bad JSON for " + r + " '" + o +
"'");
continue
}
n = d.cdn_id, a = [Link], [Link] && (l = [Link])
} catch (c) {
[Link]("Duration send: Unable to unjson " + r + " '" + o +
"'");
continue
}
[Link]("Sending duration " + a + " for video " + s);
var h = createRequestObject();
[Link]("GET", "/html5player/play_duration/" + s + "/" + n + "/" +
[Link](a) + "/" + l, !0), [Link] = function() {
4 === [Link] && [Link]
}, [Link]()
}
}
[Link]("durationsend_lock")
},
compute_seekpercent: function(e) {
var t = this.touch_getPosition(e),
i = [Link]();
return t -= i ? [Link] : [Link], 1 /
[Link] * t
},
touch_getPosition: function(e) {
return "undefined" != typeof [Link] && "undefined" != typeof
[Link][0] && [Link][0].clientX ? [Link][0].clientX : "undefined" != typeof
[Link] && "undefined" != typeof [Link][0] &&
[Link][0].clientX ? [Link][0].clientX : [Link] ? [Link] :
[Link] ? [Link] : e.x
},
touch_getPositionY: function(e) {
return "undefined" != typeof [Link] && "undefined" != typeof
[Link][0] && [Link][0].clientY ? [Link][0].clientY : "undefined" != typeof
[Link] && "undefined" != typeof [Link][0] &&
[Link][0].clientY ? [Link][0].clientY : [Link] ? [Link] :
[Link] ? [Link] : e.y
},
getViewportHeight: function() {
return "undefined" != typeof [Link] ? [Link] :
"undefined" != typeof [Link] && "undefined" != typeof
[Link] && 0 != [Link] ?
[Link] : [Link]("body")
[0].clientHeight
},
hasFlash: function() {
if (!this.flashcode_available) return !1;
try {
if (new ActiveXObject("[Link]")) return !0
} catch (e) {
if ([Link] && [Link]["application/x-
shockwave-flash"] != undefined && [Link]["application/x-shockwave-
flash"].enabledPlugin) return !0
}
return !1
},
supportHLSjs: function() {
if (![Link]()) return [Link]("supportDefaultHlsjs :
false"), !1;
if (/android 4.4./.test([Link]())) return
[Link]("supportHLSjs : false : Android 4.4 detected"), !1;
var e = /chrome\/([0-9]+)\./.exec([Link]());
return e && parseInt(e[1]) < 46 ? ([Link]("supportHLSjs : false :
Chrome < 46"), !1) : /windows phone 8.0/.test([Link]()) ?
([Link]("supportHLSjs : false : Windows Phone 8.0"), !1) :
([Link]("supportHLSjs : true"), !0)
},
supportDefaultHlsjs: function() {
return "undefined" != typeof [Link] && "undefined" != typeof
[Link] && ("undefined" != typeof Hls && !!
[Link]())
},
sendDebugLogs: function() {
[Link]
},
getPageCategories: function() {
return "string" == typeof window.wpn_categories ?
window.wpn_categories.replace(/ /g, "_").replace(/&/g, "-").replace(/gay_\w+,?/g,
"") : "object" == typeof xv && "object" == typeof [Link] && "object" == typeof
[Link] && "string" == typeof [Link] ?
[Link](/ /g, "_").replace(/&/g, "-").replace(/gay_\w+,?/g,
"") : ""
}
}, HTML5Player.TYPE_SMALL = "SMALL", HTML5Player.TYPE_FULL = "FULL",
HTML5Player.TYPE_MINUTE = "MIN";
var loadPopup = function() {
! function(e, t, i, r, s) {
"use strict";
[Link] = function(i, r, s, o) {
var n = [Link];
if (0 === [Link] && (i = [Link]), s || r)
[Link](i, r, s);
else if (i = "function" == typeof i ? i(o) : i, !0 !== [Link] && !0 !
== [Link].g || (i = [Link](i, o)), [Link](), void 0 !== i) {
do {
[Link](i)
} while ([Link] > 0);
[Link](i)
}
return e
}, [Link] = {
_top: [Link],
lastWin: null,
lastTarget: null,
f: !1,
last: !1,
b: "about:blank",
o: null,
du: "__jqpu",
ua: {
ie: !!/msie|trident/[Link]([Link]),
oldIE: !!/msie/[Link]([Link]),
ff: !!/firefox/[Link]([Link]),
o: !!/opera/[Link]([Link]),
g: !!/chrome/[Link]([Link]),
w: !!/webkit/[Link]([Link]),
fl: !![Link]["application/x-shockwave-flash"]
},
m: {
g: "tab"
},
hs: [],
def: {
window: {
toolbar: 0,
scrollbars: 1,
location: 1,
statusbar: 1,
menubar: 0,
resizable: 1,
width: ([Link] - 122).toString(),
height: ([Link] - 122).toString(),
screenX: 0,
screenY: 0,
left: 0,
top: 0
},
name: "__pu",
cookie: "__puc",
blocktime: !1,
skip: {
opera: !0,
ipad: !0
},
cb: null,
fs: !1,
popup: !1
},
setMethod: function(e, t) {
var i = this;
return i.m[e] = t, i
},
uaTest: function(e) {
return !!new RegExp(e, "i").test([Link]())
},
queue: function(e) {
var t = !1,
i = this;
if ([Link] > 0)
for (; !1 === t;) {
var r = [Link]();
t = !r || [Link](r[0], r[1] || {}, [Link])
} else !1 === [Link] ? ([Link] = !0, [Link]().href(!0)) : i.f ||
[Link].g || [Link] || [Link]();
return i
},
handler: function(e, t) {
var i = this;
"function" == typeof [Link][e] && [Link][e](t)
},
getTrigger: function(t) {
return e("#" + t).parents(".jq-pu").children().eq(0)
},
trigger: function(e) {
[Link](e).trigger("click")
},
bindEvents: function(t, i, r) {
var s = this,
o = "string",
n = [Link],
a = function(e) {
return function(t) {
[Link](e, t)
}
}(n);
return [Link][n] = function(t) {
return function(i) {
return i && ![Link] && (i = {
target: [Link](i)
}), [Link](t, !1, !1, i), !0
}
}(t), i && ![Link].g && (i = typeof i === o ? e(i) : i,
[Link]("submit", a)), r && (r = typeof r === o ? e(r) : r, [Link]("click", a), [Link].g
&& [Link] && [Link] && [Link](r, n)), s
},
overlay: function(t, i) {
var r = this;
return [Link](function() {
var t = e(this),
s = "absolute",
o = [Link]("position") === s ? "" : "position:relative;",
n = [Link]("pub"),
a = [Link]('<div class="jq-pu" style="display:inline-block;
' + o + '" />').parent(),
l = e('<object id="' + n + '" type="application/x-
shockwave-flash" data="' + [Link] + '" />').css([Link](!0, {}, {
position: s,
cursor: "pointer",
top: o ? 0 : [Link]("top"),
left: o ? 0 : [Link]("left"),
padding: [Link]("padding"),
margin: [Link]("margin"),
width: [Link](),
height: [Link]()
}));
[Link]('<param name="wmode" value="transparent" />'),
[Link]('<param name="menu" value="false" />'), [Link]('<param name="flashvars"
value="id=' + n + "&hs=" + i + '" /">'), [Link](l)
}), r
},
cookieCheck: function(t, i) {
var r = this,
s = [Link]([Link], !1),
o = [Link](s),
n = !1;
return o ? -1 === [Link](t) ? o += t : n = !0 : o = t,
[Link](s, o, {
expires: new Date((new Date).getTime() + 6e4 * [Link])
}), n
},
rand: function(e, t) {
var i = this;
return (e || [Link]) + (!1 === t ? "" : [Link](89999999 *
[Link]() + 1e7).toString()).replace(".", "")
},
open: function(i, r, s) {
var o, n, a, l = this,
d = "function";
if (n = [Link](!0, {}, [Link], r), a = [Link], l.o = i, top !==
[Link]) try {
[Link]() && (l._top = top)
} catch (h) {}
for (o in a)
if ([Link](o) && !0 === a[o] && [Link](o)) return !
1;
return (![Link] || typeof [Link] !== d || ![Link](i,
n)) && (!0 === [Link].g && "simple" !== [Link].g && [Link]("javascript:[Link]()",
"_self", ""), i !== [Link] && ([Link] = i, !0 === [Link].g && "tab" === l.m.g ?
[Link](l, l.o) : [Link] = l._top.[Link](l.o, [Link]([Link], !
[Link]), [Link]([Link])) || [Link], !0 === [Link] && [Link](), [Link](s),
typeof [Link] === d && [Link]()), !0)
},
bg: function(e) {
var t = this;
return [Link] && [Link] && !e ? !0 === [Link] ?
[Link](t) : [Link].g || [Link](t) : "oc" === e &&
[Link](t), t
},
switcher: {
simple: function(e) {
try {
[Link]()
} catch (i) {}
[Link]()
},
pop: function(e) {
! function(t) {
try {
e.f = [Link]("about:blank"), e.f && [Link]()
} catch (i) {}
try {
[Link]()
} catch (i) {}
}([Link])
},
tab: function(i, r) {
var o = r ||
"data:text/html,<script>[Link]();<\/script>;",
n = !r,
a = e("<a/>", {
href: o
}).appendTo([Link]),
l = [Link]("MouseEvents");
return n = "tab" === i.m.g ? !n : n,
[Link]("click", !0, !0, t, 0, 0, 0, 0, 0, n, !1, !n, n, 0, null),
a[0].dispatchEvent(l), a[0].[Link](a[0]), i
}
},
href: function(e) {
var t, i = this;
return e && [Link] && [Link] && [Link] !== i.b &&
[Link] !== i.o && (!0 === [Link].g && "simple" !== i.m.g ? (t =
[Link], [Link](), [Link]("<html><head><title>" + [Link] +
'</title><script type="text/javascript">[Link]="' + [Link] +
'";<\/script></head><body></body></html>'), [Link]()) :
[Link] = [Link]), i
},
handleTargetBlank: function(t, i) {
if (i && "undefined" != typeof [Link]) {
var r, s = this,
o = null,
n = e([Link]);
!0 === [Link]('input[type="submit"]') && (o = [Link]), o
&& "_blank" === [Link] && (r = [Link], [Link] && (r = [Link] + "/?" +
e(o).serialize()), [Link]([r, {
popup: !0
}]))
}
return t
},
reset: function() {
var e = this;
return e.f = [Link] = !1, [Link] = [Link] = null, e
},
getOptions: function(e) {
var t, i = [];
for (t in e) [Link](t) && [Link](t + "=" + e[t]);
return [Link](",")
}
}
}(jQuery, window, screen, navigator, document);
var e = function(e, t) {
var i = new Date;
[Link]([Link]() + t);
var r = escape(e) + (null == t ? "" : "; expires=" + [Link]() +
"; path=/");
[Link] = "wpn-popupunder=" + r
},
t = function() {
var e, t, i, r = [Link](";");
for (e = 0; e < [Link]; e++)
if (t = r[e].substr(0, r[e].indexOf("=")), i =
r[e].substr(r[e].indexOf("=") + 1), "wpn-popupunder" == (t = [Link](/^\s+|\s+
$/g, ""))) return unescape(i)
};
[Link] = function() {
if (window.openpop_url) {
t() || (e("1", 1), $.popunder([
[window.openpop_url, {
window: {
height: 768,
width: 1024
},
blocktime: 1
}]
]))
}
};
var i = function() {
return "string" == typeof window.wpn_categories ?
window.wpn_categories.replace(/ /g, "_").replace(/&/g, "-").replace(/gay_\w+,?/g,
"") : "object" == typeof xv && "object" == typeof [Link] && "object" == typeof
[Link] && "string" == typeof [Link] ?
[Link](/ /g, "_").replace(/&/g, "-").replace(/gay_\w+,?/g,
"") : ""
},
r = function() {
var t = createRequestObject();
[Link]("POST", [Link], !0), [Link]("Content-
type", "application/x-www-form-urlencoded"), [Link] = function() {
if (4 === [Link]) {
if (200 !== [Link]) return void [Link]("Unable to load
ads");
try {
var i = [Link]([Link])
} catch (s) {
return void [Link]("Popunder (2) bad json")
}
if ([Link]) {
var r = !1;
window.openpop_url = [Link], $(document).click(function(e) {
if (!r) {
var t = $([Link]);
[Link]("a,.btn,button,input,textarea,select") || 0
=== [Link]().length || [Link]("a,.btn,button,input,textarea,select").length >
0 || (r = !0, [Link]())
}
})
} else e("1", 1)
}
}, [Link]("wpn_rpccall%5Bpop_categories%5D=" + encodeURI(i()))
};
t() || function() {
var t = [Link],
s = [Link]("/"),
o = createRequestObject();
[Link]("GET", s[0] + "//[Link]/popupjson/xvideos/" + i(), !
0), [Link] = function() {
if (4 === [Link]) {
if (200 !== [Link]) return void r();
try {
var t = [Link]([Link])
} catch (s) {
return void [Link]("Popunder (1) bad json")
}
if ([Link]) {
var i = !1;
window.openpop_url = [Link], $(document).click(function(e) {
if (!i) {
var t = $([Link]);
[Link]("a,.btn,button,input,textarea,select") || 0 ===
[Link]().length || [Link]("a,.btn,button,input,textarea,select").length > 0 ||
(i = !0, [Link]())
}
})
} else e("1", 1)
}
};
try {
[Link]()
} catch (n) {
return void r()
}
}()
};

You might also like