├── Crunchyroll_Premium
├── background.js
├── content.css
├── content.js
├── icon.png
├── interceptor.js
├── logo.png
├── manifest.json
├── popup.html
└── popup.js
├── README.md
├── assets
├── css
│ ├── download_dialog.css
│ └── player.css
├── font
│ ├── SFProDisplay-Regular.eot
│ ├── SFProDisplay-Regular.svg
│ ├── SFProDisplay-Regular.ttf
│ ├── SFProDisplay-Regular.woff
│ ├── SFProDisplay-Regular.woff2
│ ├── SFProDisplay-Semibold.eot
│ ├── SFProDisplay-Semibold.svg
│ ├── SFProDisplay-Semibold.ttf
│ ├── SFProDisplay-Semibold.woff
│ └── SFProDisplay-Semibold.woff2
├── icon
│ ├── download_icon.svg
│ ├── fetching-icon.svg
│ ├── forward-30s.svg
│ ├── loading-icon.svg
│ ├── replay-10s.svg
│ ├── update_icon.svg
│ └── webvideocaster_icon.png
└── js
│ ├── jwplayer.js
│ ├── player.js
│ └── search.js
└── index.html
/Crunchyroll_Premium/background.js:
--------------------------------------------------------------------------------
1 | browser.webRequest.onHeadersReceived.addListener(
2 | function(acso) {
3 | var responseHeaders = acso.responseHeaders.concat([{name: 'Access-Control-Allow-Origin', value: '*'}]);
4 | return { responseHeaders };
5 | },
6 | {
7 | urls: ["*://rgern100.github.io/*", "*://*.crunchyroll.com/*", "*://localhost/*", "*://*.vrv.co/*"],
8 | types : ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
9 | },
10 | ["blocking","responseHeaders"]
11 | );
12 | browser.webRequest.onHeadersReceived.addListener(
13 | function(csp) {
14 | var responseHeaders = csp.responseHeaders.concat([{name: 'content-security-policy', value: "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: *.betrad.com 8f2bfa24-f12a-458a-89ac-391b91f711e3.redfastlabs.com accounts.crunchyroll.com api-manga.crunchyroll.com api.amplitude.com api.crunchyroll.com api.segment.io bam.nr-data.net beta-api.crunchyroll.com beta.crunchyroll.com boards-api.greenhouse.io cdimg1.crunchyroll.com cdimg2.crunchyroll.com cdimg3.crunchyroll.com cdn.amplitude.com cdn.cookielaw.org cdn.segment.com cdn.segment.io cdn.shopify.com cdnjs.cloudflare.com cms.crunchyroll.com conduit.redfast.com cr-eec.etp-prod.com crunchyroll.com crunchyroll.surveymonkey.com crunchyroll.zendesk.com customer.iad-03.braze.com eec.crunchyroll.com ekr.zdassets.com fy.v.vrv.co geolocation.onetrust.com img1.ak.crunchyroll.com img1.cdn.crunchyroll.com img1.crunchyroll.com img1.lln.crunchyroll.com img2.ak.crunchyroll.com img2.cdn.crunchyroll.com img2.lln.crunchyroll.com img3.ak.crunchyroll.com img3.cdn.crunchyroll.com img3.lln.crunchyroll.com js-agent.newrelic.com ll.v.vrv.co pl.crunchyroll.com privacyportal-eu.onetrust.com sa.crunchyroll.com sa.etp-prod.com sa.etp-proto0.com secure.crunchyroll.com static.ak.crunchyroll.com static.crunchyroll.com static.cx-proto0.com static.vrv.co static.zdassets.com store.crunchyroll.com v.vrv.co widget.surveymonkey.com wiki.crunchyroll.com www.crunchyroll.com www.google.com www.gstatic.com www.riddle.com www.surveymonkey.com www.zendesk.com *.deviantart.com *.fanpop.com *.fastpic.ru *.fls.doubleclick.net *.gfycat.com *.giphy.com *.imageshack.us *.imgbox.com *.imgflip.com *.imgur.com *.narvii.com *.photobucket.com *.photomania.com *.pinimg.com *.servimg.com *.static.flickr.com *.tenor.com *.tinypic.com *.tumblr.com *.twimg.com *.wikia.nocookie.net 1f2e7.v.fwmrm.net 5fd74.v.fwmrm.net 965432598.privacysandbox.googleadservices.com 982007020.privacysandbox.googleadservices.com ad.doubleclick.net ads.stickyadstv.com ads.yahoo.com ag.gbc.criteo.com ams01-event.spotxchange.com ams01-search.spotxchange.com analytics.tiktok.com analytics.twitter.com api.realytics.io apiservices.krxd.net bea4.v.fwmrm.net beacon.krxd.net bid.g.doubleclick.net cdn-eu.realytics.net cdn.krxd.net cdn.polyfill.io cl.qualaroo.com cm.g.doubleclick.net connect.facebook.net consumer.krxd.net crfeaturesbiz.wpcomstaging.com criteo-partners.tremorhub.com csm.da.us.criteo.net csm.va.us.criteo.net dntcl.qualaroo.com eq97f.publishers.tremorhub.com event.spotxchange.com fonts.googleapis.com fonts.gstatic.com gem.gbc.criteo.com googleads.g.doubleclick.net googleads4.g.doubleclick.net graph.instagram.com gum.criteo.com i.cdn.turner.com i.realytics.io iad02-event.spotxchange.com iad02-search.spotxchange.com insight.adsrvr.org instagram.com js.adsrvr.org jslog.krxd.net mssl.fwmrm.net pixel.advertising.com platform.twitter.com player.vimeo.com quiz.tryinteract.com r.casalemedia.com sb.scorecardresearch.com search.spotxchange.com sp.analytics.yahoo.com ssl.google-analytics.com sslwidget.criteo.com static.ads-twitter.com static.criteo.net static.doubleclick.net stats.g.doubleclick.net sync.search.spotxchange.com syndication.twitter.com t.co tp.realytics.io ups.analytics.yahoo.com usermatch.krxd.net vimeo.com widget.us.criteo.com www.facebook.com www.google-analytics.com www.googleadservices.com www.googletagmanager.com www.instagram.com www.youtube.com wvc-x-callback:"}]);
15 | return { responseHeaders };
16 | },
17 | {
18 | urls: ["*://*.crunchyroll.com/*"],
19 | types : ["main_frame", "sub_frame"]
20 | },
21 | ["blocking","responseHeaders"]
22 | )
--------------------------------------------------------------------------------
/Crunchyroll_Premium/content.css:
--------------------------------------------------------------------------------
1 | #showmedia_video_player{
2 | display: none;
3 | }
--------------------------------------------------------------------------------
/Crunchyroll_Premium/content.js:
--------------------------------------------------------------------------------
1 | const query = qry => document.body.querySelector(qry)
2 | var preservedState = null
3 |
4 | //function que pega algo dentro dentro do html.
5 | function pegaString(str, first_character, last_character) {
6 | if (str.match(first_character + "(.*)" + last_character) == null) {
7 | return null;
8 | } else {
9 | new_str = str.match(first_character + "(.*)" + last_character)[1].trim()
10 | return new_str;
11 | }
12 | }
13 |
14 | //function para remover elementos da página
15 | function remove(element, name, untilRemoved = false, callback = () => { }) {
16 | let tries = 0;
17 | if (untilRemoved) {
18 | const finishRemove = setInterval(() => {
19 | if (query(element) != null) {
20 | clearInterval(finishRemove)
21 | console.log(`[CR Premium] Removendo ${name}...`);
22 | const closeBtn = query(element + ' > .close-button')
23 | if (closeBtn) closeBtn.click()
24 | else query(element).style.display = 'none';
25 |
26 | callback()
27 | }
28 | else if (tries > 250) clearInterval(finishRemove)
29 | else tries++
30 | }, 20)
31 | } else if (query(element) != null) {
32 | console.log(`[CR Premium] Removendo ${name}...`);
33 | query(element).style.display = 'none';
34 | }
35 | }
36 |
37 | //function que mudar o player para um mais simples.
38 | function importPlayer() {
39 | var HTML = document.documentElement.innerHTML;
40 | console.log("[CR Old] Removendo player da Crunchyroll...");
41 | var elem = document.getElementById('showmedia_video_player');
42 | elem.parentNode.removeChild(elem);
43 |
44 | console.log("[CR Old] Pegando dados da stream...");
45 | var video_config_media = JSON.parse(pegaString(HTML, "vilos.config.media = ", ";"));
46 |
47 | //Remove Nota do topo sobre experimentar o premium
48 | //Remove avisos q o video nn pode ser visto
49 | //Remove sugestão de inscrever-se para o trial gratuito
50 | remove(".freetrial-note", "Free Trial Note")
51 | remove(".showmedia-trailer-notice", "Trailer Notice")
52 | remove("#showmedia_free_trial_signup", "Free Trial Signup")
53 |
54 | // Simular interação do usuário para deixar em fullscreen automaticamente
55 | // var element = document.getElementById("template_scroller");
56 | // if (element) element.click();
57 |
58 | const appendTo = query("#showmedia_video_box") || query("#showmedia_video_box_wide")
59 | const series = document.querySelector('meta[property="og:title"]');
60 | const up_next = document.querySelector('link[rel=next]');
61 |
62 | var message = {
63 | 'video_config_media': [JSON.stringify(video_config_media)],
64 | 'lang': [pegaString(HTML, 'LOCALE = "', '",')],
65 | 'series': series ? series.content : undefined,
66 | 'up_next': up_next ? up_next.href : undefined,
67 | }
68 |
69 | console.log("[CR Old] Adicionando o jwplayer...");
70 | addPlayer(appendTo, message)
71 | }
72 |
73 | //renderiza player na versão beta
74 | function importBetaPlayer(ready = false) {
75 | var videoPlayer = query('.video-player') || query('#frame');
76 | if (!ready) {
77 | setTimeout(() => importBetaPlayer(!!videoPlayer), 100);
78 | return;
79 | }
80 |
81 | var lastWatchedPlayer = query('#frame');
82 | if (query('.video-player') && lastWatchedPlayer)
83 | lastWatchedPlayer.parentNode.removeChild(lastWatchedPlayer);
84 |
85 | var titleLink = query('.show-title-link')
86 | if (titleLink) titleLink.style.zIndex = "2";
87 |
88 | console.log("[CR Beta] Removendo player da Crunchyroll...");
89 | remove('.video-player-placeholder', 'Video Placeholder');
90 | remove('.video-player', 'Video Player', true);
91 | remove('.blocked-stream-overlay', 'Blocked Overlay', true);
92 | videoPlayer.src = '';
93 | const appendTo = videoPlayer.parentNode;
94 |
95 | console.log("[CR Beta] Pegando dados da stream...");
96 | var external_lang = preservedState.localization.locale.toLowerCase()
97 | var ep_lang = preservedState.localization.locale.replace('-', '')
98 | var ep_id = preservedState.watch.id
99 | var ep = preservedState.content.media.byId[ep_id]
100 | if (!ep) { window.location.reload(); return; }
101 | var series_slug = ep.parentSlug
102 | var external_id = getExternalId(ep.id).substr(4)
103 | var old_url = `https://www.crunchyroll.com/${external_lang}/${series_slug}/episode-${external_id}`
104 | var up_next = document.querySelector('[data-t="next-episode"] > a')
105 | var playback = ep.playback
106 | var series = document.querySelector('.show-title-link > h4')?.innerText;
107 |
108 | var message = {
109 | 'playback': playback,
110 | 'old_url': old_url,
111 | 'lang': ep_lang,
112 | 'up_next': up_next ? up_next.href : undefined,
113 | 'series': series ? series : undefined,
114 | }
115 |
116 | console.log("[CR Beta] Adicionando o jwplayer...");
117 | console.log("[CR Beta] Antiga URL:", old_url);
118 | addPlayer(appendTo, message, true)
119 | }
120 |
121 | function addPlayer(element, playerInfo, beta = false) {
122 | console.log("[CR Premium] Adicionando o jwplayer...");
123 | var ifrm = document.createElement("iframe");
124 | ifrm.setAttribute("id", "frame");
125 | ifrm.setAttribute("src", "https://rgern100.github.io/crp-iframe-player-Firefox/");
126 | ifrm.setAttribute("width", "100%");
127 | ifrm.setAttribute("height", "100%");
128 | ifrm.setAttribute("frameborder", "0");
129 | ifrm.setAttribute("scrolling", "no");
130 | ifrm.setAttribute("allowfullscreen", "allowfullscreen");
131 | ifrm.setAttribute("allow", "autoplay; encrypted-media *");
132 |
133 | element.appendChild(ifrm)
134 |
135 | browser.storage.sync.get(['forcemp4', 'aseguir', 'cooldown', 'webvideocaster'], function (items) {
136 | ifrm.onload = function () {
137 | playerInfo['webvideocaster'] = items.webvideocaster === undefined ? false : items.webvideocaster;
138 | playerInfo['up_next_cooldown'] = items.cooldown === undefined ? 5 : items.cooldown;
139 | playerInfo['up_next_enable'] = items.aseguir === undefined ? true : items.aseguir;
140 | playerInfo['force_mp4'] = items.forcemp4 === undefined ? false : items.forcemp4;
141 | playerInfo['version'] = '1.3.0a';
142 | playerInfo['noproxy'] = true;
143 | playerInfo['beta'] = beta;
144 | ifrm.contentWindow.postMessage(playerInfo, "*");
145 | };
146 | });
147 | }
148 |
149 | //function ao carregar pagina.
150 | function onloadfunction() {
151 | var HTML = document.documentElement.innerHTML;
152 | if (pegaString(HTML, "vilos.config.media = ", ";") != null) {
153 | importPlayer(); // old CR
154 | } else if (preservedState != null) {
155 | importBetaPlayer(); // beta CR
156 | remove(".erc-modal-portal > .overlay > .content-wrapper", "Free Trial Modal", true, () => document.body.classList = [])
157 | remove(".erc-watch-premium-upsell", "Premium Sidebar", true)
158 | registerChangeEpisode();
159 | }
160 | }
161 |
162 | // function pra atualizar pagina quando mudar de episodio pela UI beta
163 | var currentURL = window.location.href;
164 |
165 | function registerChangeEpisode() {
166 | setInterval(async () => {
167 | if (currentURL !== window.location.href) {
168 |
169 | currentURL = window.location.href
170 | if (currentURL.includes("/watch/")) {
171 | remove(".erc-watch-premium-upsell", "New Premium Sidebar", true)
172 | const HTML = await fetch(currentURL)
173 | console.log("[CR Beta] Searching for new INITIAL_STATE")
174 | preservedState = JSON.parse(pegaString(HTML, "__INITIAL_STATE__ = ", ";"))
175 | importBetaPlayer(false)
176 | }
177 | }
178 |
179 | }, 50)
180 | }
181 |
182 | document.addEventListener("DOMContentLoaded", onloadfunction, false);
183 | document.onreadystatechange = function () {
184 | if (document.readyState === "interactive") {
185 | console.log("[CR Beta] Searching for INITIAL_STATE")
186 | const HTML = document.documentElement.innerHTML
187 | preservedState = JSON.parse(pegaString(HTML, "__INITIAL_STATE__ = ", ";"))
188 | }
189 |
190 | const crBetaStyle = document.createElement('style');
191 | crBetaStyle.innerHTML = `.video-player-wrapper {
192 | margin-top: 2rem;
193 | margin-bottom: calc(-3vh - 7vw);
194 | height: 57.25vw !important;
195 | max-height: 82vh !important;
196 | }`;
197 | document.head.appendChild(crBetaStyle);
198 | }
199 |
200 | function fetch(url) {
201 | return new Promise(async (resolve, reject) => {
202 | var xhr = new XMLHttpRequest();
203 | xhr.open('GET', url, true);
204 | xhr.withCredentials = true;
205 | xhr.onreadystatechange = () => {
206 | if (xhr.readyState == 4)
207 | if (xhr.status == 200) resolve(xhr.responseText)
208 | else reject(xhr.statusText)
209 | }
210 | xhr.send();
211 | })
212 | }
213 |
214 | function getExternalId(id) {
215 | return JSON.parse(localStorage.getItem('externalIds'))[id];
216 | }
217 |
218 | var s = document.createElement('script');
219 | s.src = browser.runtime.getURL('interceptor.js');
220 | s.onload = function () { this.remove(); };
221 | (document.head || document.documentElement).appendChild(s);
--------------------------------------------------------------------------------
/Crunchyroll_Premium/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/Crunchyroll_Premium/icon.png
--------------------------------------------------------------------------------
/Crunchyroll_Premium/interceptor.js:
--------------------------------------------------------------------------------
1 | window.evidon_dg = {}
2 |
3 | Object.defineProperty(window.evidon_dg, "evidonCriticalDomains", {
4 | get: function () { return ['wvc-x-callback:']; },
5 | });
6 | Object.defineProperty(window.evidon_dg, "productNames", {
7 | get: function () { return {}; },
8 | });
9 | Object.defineProperty(window.evidon_dg, "loadedProducts", {
10 | get: function () { return []; },
11 | });
12 | Object.defineProperty(window.evidon_dg, "productIds", {
13 | get: function () { return []; },
14 | });
15 |
16 | console.log("[CR XHR] Configurando interceptor...")
17 | var rawOpen = XMLHttpRequest.prototype.open;
18 |
19 | XMLHttpRequest.prototype.open = function () {
20 | if (!this._hooked) {
21 | this._hooked = true;
22 | setupHook(this);
23 | }
24 | rawOpen.apply(this, arguments);
25 | }
26 |
27 | function setupHook(xhr) {
28 | let toggle = false;
29 | function getter() {
30 | delete xhr.responseText;
31 | var ret = xhr.responseText;
32 | try {
33 | if (toggle = !toggle) handleIntercept(JSON.parse(ret));
34 | } catch (e) { }
35 | setup();
36 | return ret;
37 | }
38 |
39 | function setup() {
40 | Object.defineProperty(xhr, 'responseText', {
41 | get: getter,
42 | configurable: true
43 | });
44 | }
45 | setup();
46 | }
47 |
48 | const verbose = false;
49 | // Intercepta response das requests (network)
50 | function handleIntercept(jsonResponse) {
51 | if (verbose) console.log("[CR XHR]", jsonResponse);
52 |
53 | // Salva IDs externos dos panels no localStorage
54 | if (jsonResponse.items) jsonResponse.items.forEach(item => {
55 | if (item.id && item.external_id) {
56 | console.log("[CR XHR] Panel found:", item);
57 | storeExternalId(item.id, item.external_id)
58 | }
59 | })
60 | }
61 |
62 | function storeExternalId(id, external_id) {
63 | let externalIds = localStorage.getItem('externalIds');
64 | if (externalIds) externalIds = JSON.parse(externalIds)
65 | else externalIds = {};
66 | externalIds[id] = external_id;
67 | localStorage.setItem('externalIds', JSON.stringify(externalIds));
68 | }
69 |
--------------------------------------------------------------------------------
/Crunchyroll_Premium/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/Crunchyroll_Premium/logo.png
--------------------------------------------------------------------------------
/Crunchyroll_Premium/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Crunchyroll iFrame Player",
3 | "version": "1.3.0a",
4 | "description": "Permite ver todos os vídeos do crunchyroll gratuitamente.",
5 | "author": "itallolegal",
6 | "icons": {
7 | "48": "icon.png"
8 | },
9 | "browser_action": {
10 | "default_title": "Crunchyroll iFrame Player",
11 | "default_popup": "popup.html",
12 | "default_icon": "icon.png"
13 | },
14 | "browser_specific_settings": {
15 | "gecko": {
16 | "id": "asdhawuodhcauowchauohwoaduji9hfjdaopi@gmail.com"
17 | }
18 | },
19 | "permissions": ["webRequest", "webRequestBlocking", "storage", "*://*.crunchyroll.com/*", "*://localhost/*", "*://rgern100.github.io/*", "*://*.vrv.co/*"],
20 | "content_scripts": [{
21 | "matches": ["*://*.crunchyroll.com/*"],
22 | "css": ["content.css"],
23 | "js": ["content.js"],
24 | "run_at": "document_start"
25 | }
26 | ],
27 | "background": {
28 | "scripts": ["background.js"]
29 | },
30 | "web_accessible_resources": [
31 | "interceptor.js"
32 | ],
33 | "manifest_version": 2
34 | }
35 |
--------------------------------------------------------------------------------
/Crunchyroll_Premium/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Crunchyroll iFrame Player
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |

15 |
16 |
Crunchyroll
iFrame Player
17 |
Projeto open-source, sinta-se livre para consultar o código fonte.
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | Exibir faltando
segundos.
33 |
34 | Baixe o WebVideoCaster
aqui.
35 |
36 |
37 |
38 |
42 | |
43 |
44 |
45 | |
46 |
47 |
48 | |
49 |
50 |
51 |
52 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
199 |
--------------------------------------------------------------------------------
/Crunchyroll_Premium/popup.js:
--------------------------------------------------------------------------------
1 | const globalDefault = { 'webvideocaster': false, 'cooldown': 5, 'aseguir': true, 'forcemp4': false }
2 | const globalVariables = Object.keys(globalDefault)
3 |
4 | chrome.storage.sync.get(globalVariables, function (items) {
5 | globalVariables.forEach(popupElement => {
6 | const value = items[popupElement] === undefined ? globalDefault[popupElement] : items[popupElement]
7 | setValue(popupElement, value)
8 | })
9 | })
10 |
11 | globalVariables.forEach(popupElement => {
12 | document.getElementById(popupElement).addEventListener("input", () => {
13 | let syncValue = {}
14 | syncValue[popupElement] = getValue(popupElement)
15 |
16 | chrome.storage.sync.set(syncValue);
17 | })
18 | })
19 |
20 | function getValue(id) {
21 | const element = document.getElementById(id)
22 | if (element.type === 'checkbox') return element.checked
23 | else return element.value
24 | }
25 |
26 | function setValue(id, value) {
27 | const element = document.getElementById(id)
28 | if (element.type === 'checkbox') element.checked = value
29 | else element.value = value
30 | }
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Crunchyroll iFrame Player [](https://github.com/Rgern100/crp-iframe-player-Firefox/releases/latest) [](https://github.com/Rgern100/crp-iframe-player-Firefox/releases/latest) [](https://github.com/Rgern100/crp-iframe-player-Firefox/releases/latest)
2 |
3 | Essa é uma extensão da comunidade que permite assistir todo conteúdo da Crunchyroll.
4 | Originalmente criada por [itallolegal](https://github.com/itallolegal) (desativado) e [Hyper1025](https://github.com/Hyper1025), atualmente mantida por [Mateus7G](https://github.com/Mateus7G).
5 | Um agradecimento especial a todos os colaboradores.
6 |
7 | Obrigado por utilizar. :)
8 |
9 | ## Download
10 | Você pode encontrar a última versão fazendo download do diretório ou em [releases.](https://github.com/Rgern100/crp-iframe-player-Firefox/releases/latest)
11 |
12 | Deve ter bastante bugs, não sou o melhor com essas coisas, mas em testes está funcionando maior parte.
13 |
14 | Fique a vontade para melhorar o código.
15 |
16 |
17 |
18 |
19 | ## 📝 Aviso Crunchyroll Beta
20 | O novo site do Crunchyroll **quebra completamente** a extensão: [26#issuecomment-1006569041](https://github.com/Mateus7G/crp-iframe-player/issues/26#issuecomment-1006569041)
21 |
22 | As novas versões (v1.1.0+) **ainda** são compatível pois ao acessar o novo site, seu navegador puxa os dados do vídeo do site antigo.
23 | Isso quer dizer que, se a versão antiga do Crunchyroll for **completamente substituída** a extensão irá parar de funcionar permanentemente.
24 |
--------------------------------------------------------------------------------
/assets/css/download_dialog.css:
--------------------------------------------------------------------------------
1 | @font-face {font-family: "SFProDisplay-Regular";
2 | src: url("../../assets/font/SFProDisplay-Regular.eot"); /* IE9*/
3 | src: url("../../assets/font/SFProDisplay-Regular.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
4 | url("../../assets/font/SFProDisplay-Regular.woff2") format("woff2"), /* chrome firefox */
5 | url("../../assets/font/SFProDisplay-Regular.woff") format("woff"), /* chrome firefox */
6 | url("../../assets/font/SFProDisplay-Regular.ttf") format("truetype"), /* chrome firefox opera Safari, Android, iOS 4.2+*/
7 | url("../../assets/font/SFProDisplay-Regular.svg#SFProDisplay-Regular") format("svg"); /* iOS 4.1- */
8 | }
9 | @font-face {font-family: "SFProDisplay-Semibold";
10 | src: url("../../assets/font/SFProDisplay-Semibold.eot"); /* IE9*/
11 | src: url("../../assets/font/SFProDisplay-Semibold.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
12 | url("../../assets/font/SFProDisplay-Semibold.woff2") format("woff2"), /* chrome firefox */
13 | url("../../assets/font/SFProDisplay-Semibold.woff") format("woff"), /* chrome firefox */
14 | url("../../assets/font/SFProDisplay-Semibold.ttf") format("truetype"), /* chrome firefox opera Safari, Android, iOS 4.2+*/
15 | url("../../assets/font/SFProDisplay-Semibold.svg#SFProDisplay-Semibold") format("svg"); /* iOS 4.1- */
16 | }
17 |
18 | .modal::-webkit-scrollbar {
19 | width: 8px!important;
20 | }
21 | .modal::-webkit-scrollbar-thumb {
22 | background: #888!important;
23 | }
24 | .modal::-webkit-scrollbar-track {
25 | background: #a7a7a7!important;
26 | }
27 | .modal {
28 | background: #3f3f3f;
29 | text-align: center;
30 | width: 230px;
31 | height: 270px;
32 | z-index: 2147483647;
33 | position: absolute;
34 | top: 0;
35 | left: 0;
36 | bottom: 0;
37 | right: 0;
38 | border-radius: 3px;
39 | margin: auto;
40 | padding: 20px;
41 | -webkit-transform: translate3d(0, -900%, 0);
42 | transform: translate3d(0, -900%, 0);
43 | }
44 | .close-modal {
45 | background: none;
46 | border: none;
47 | position: absolute;
48 | font-size: 20px;
49 | cursor: pointer;
50 | right: 10px;
51 | top: 10px;
52 | color: #eee;
53 | outline: none;
54 | }
55 | .download-item {
56 | display: table;
57 | vertical-align: middle;
58 | height: 55px;
59 | width: 100%;
60 | }
61 | .partdditem {
62 | display: table-cell;
63 | vertical-align: middle;
64 | margin: 6%;
65 | }
66 | .not-copyable {
67 | -webkit-touch-callout: none;
68 | -webkit-user-select: none;
69 | -khtml-user-select: none;
70 | -moz-user-select: none;
71 | -ms-user-select: none;
72 | user-select: none;
73 | }
74 |
75 | .size {
76 | color: #eee;
77 | font-family: SFProDisplay-Regular;
78 | font-size: 15px;
79 | text-align: left;
80 | width: 14%;
81 | opacity: .7;
82 | }
83 |
84 | .size > img {
85 | position: relative;
86 | top: 4px;
87 | min-width: 15px;
88 | width: 15px;
89 | max-width: 15px;
90 | }
91 |
92 | .quality {
93 | color: #eee;
94 | font-family: SFProDisplay-Semibold;
95 | font-size: 15px;
96 | width: 13%;
97 | text-align: left;
98 | padding-left: 20px;
99 | }
100 |
101 | .quality > sup {
102 | font-family: 'Roboto', sans-serif;
103 | color: rgb(244, 117, 33);
104 | font-size: 10px;
105 | }
106 | .down-icon {
107 | transition: filter 0.08s ease;
108 | -moz-transition: filter 0.08s ease;
109 | -ms-transition: filter 0.08s ease;
110 | -o-transition: filter 0.08s ease;
111 | -webkit-transition: filter 0.08s ease;
112 | background-image: url(https://fonts.gstatic.com/s/i/materialicons/get_app/v5/24px.svg?download=true);
113 | -webkit-filter: invert(98%) sepia(1%) saturate(99%) hue-rotate(314deg) brightness(117%) contrast(87%);
114 | filter: invert(98%) sepia(1%) saturate(99%) hue-rotate(314deg) brightness(117%) contrast(87%);
115 | cursor: pointer;
116 | width: 12%;
117 | background-position: center;
118 | background-repeat: no-repeat;
119 | }
120 | .down-icon:hover {
121 | -webkit-filter: invert(49%) sepia(98%) saturate(1501%) hue-rotate(348deg) brightness(99%) contrast(92%);;
122 | filter: invert(49%) sepia(98%) saturate(1501%) hue-rotate(348deg) brightness(99%) contrast(92%);
123 | }
124 |
--------------------------------------------------------------------------------
/assets/css/player.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0px;
3 | padding: 0;
4 | width: 100%;
5 | height: 100%;
6 | border: none;
7 | }
8 |
9 | video {
10 | outline: none;
11 | }
12 |
13 | #player_div {
14 | height: 100%!important;
15 | }
16 |
17 | #player_div.beta-layout {
18 | height: 80vh !important;
19 | }
20 |
21 | #player_div .jw-button-color.jw-toggle:not(.jw-icon-cast),
22 | #player_div .jw-button-color:hover:not(.jw-icon-cast),
23 | #player_div .jw-button-color:focus:not(.jw-icon-cast),
24 | #player_div .jw-button-color.jw-toggle.jw-off:hover:not(.jw-icon-cast) {
25 | color: rgb(244, 117, 33)!important;
26 | }
27 |
28 | #player_div .jw-option.jw-active-option,
29 | #player_div .jw-option:not(.jw-active-option):hover,
30 | #player_div .jw-option:not(.jw-active-option):focus,
31 | #player_div .jw-settings-content-item:hover,
32 | #player_div .jw-nextup-tooltip:hover,
33 | #player_div .jw-nextup-tooltip:focus,
34 | #player_div .jw-nextup-close:hover {
35 | color: rgb(244, 117, 33)!important;
36 | }
37 |
38 | .jw-progress {
39 | background-color: rgb(244, 117, 33)!important;
40 | }
41 |
42 | .loading_container {
43 | background-color: #000;
44 | border-radius: 2px;
45 | -webkit-border-radius: 2px;
46 | -moz-border-radius: 2px;
47 | display: flex;
48 | flex-direction: row;
49 | -webkit-flex-direction: row;
50 | -moz-flex-direction: row;
51 | align-items: stretch;
52 | -webkit-align-items: stretch;
53 | padding: 20px;
54 | top: 50%;
55 | left: 50%;
56 | position: absolute;
57 | transform: translate(-50%, -50%);
58 | -webkit-transform: translate(-50%, -50%);
59 | -ms-transform: translate(-50%, -50%);
60 | -moz-transform: translate(-50%, -50%);
61 | -o-transform: translate(-50%, -50%);
62 | }
63 |
64 | .loading_icon {
65 | height: 30px;
66 | width: 30px;
67 | margin-right: 20px;
68 | flex: 0 0 auto;
69 | -webkit-flex: 0 0 auto;
70 | -ms-flex: 0 0 auto;
71 | -moz-flex: 0 0 auto;
72 | align-self: center;
73 | -webkit-align-self: center;
74 | }
75 |
76 | .loading_text_container {
77 | display: flex;
78 | flex: 1 1 auto;
79 | flex-flow: column;
80 | margin: 0;
81 | overflow-y: auto;
82 | padding: 0;
83 | }
84 |
85 | .loading_text {
86 | text-align: start;
87 | color: #FFF;
88 | font: 14px/1.35 Arial, Helvetica, sans-serif;
89 | }
90 |
91 | .corta_linha {
92 | display: block;
93 | }
94 |
95 | .creator-message span {
96 | font-size: 13px;
97 | color: white;
98 | }
99 |
100 | .creator-message {
101 | display: none;
102 | font-family: 'Roboto', sans-serif;
103 | background-color: #323232;
104 | padding: 12px 12px;
105 | align-items: center;
106 | -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2);
107 | box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2);
108 | }
109 |
110 | .jw-button-color:hover:not(.jw-icon-cast) .jw-button-image {
111 | filter: brightness(0) saturate(100%) invert(65%) sepia(69%) saturate(4314%) hue-rotate(348deg) brightness(100%) contrast(129%);
112 | }
113 |
114 | [button="webvideocaster-video-button"] .jw-button-image {
115 | filter: saturate(0%) !important;
116 | }
117 |
118 | [button="webvideocaster-video-button"]:hover .jw-button-image {
119 | filter: none !important;
120 | }
121 |
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Regular.eot
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Regular.ttf
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Regular.woff
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Regular.woff2
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Semibold.eot
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Semibold.ttf
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Semibold.woff
--------------------------------------------------------------------------------
/assets/font/SFProDisplay-Semibold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/font/SFProDisplay-Semibold.woff2
--------------------------------------------------------------------------------
/assets/icon/download_icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/assets/icon/fetching-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icon/forward-30s.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icon/loading-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icon/replay-10s.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icon/update_icon.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icon/webvideocaster_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rgern100/crp-iframe-player-Firefox/9e00fbe24f97dd16edcd2f6985ebcf451174714d/assets/icon/webvideocaster_icon.png
--------------------------------------------------------------------------------
/assets/js/jwplayer.js:
--------------------------------------------------------------------------------
1 | window.jwplayer=function(t){function e(e){for(var n,i,o=e[0],u=e[1],a=0,s=[];a2;if(null==t&&(t=[]),p&&t.reduce===p)return r&&(e=$(e,r)),i?t.reduce(e,n):t.reduce(e);if(k(t,function(t,o,u){i?n=e.call(r,n,t,o,u):(n=t,i=!0)}),!i)throw new TypeError("Reduce of empty array with no initial value");return n},T=S,E=S,A=function(t,e,n){var r;return N(t,function(t,i,o){if(e.call(n,t,i,o))return r=t,!0}),r},_=A,F=function(t,e,n){var r=[];return null==t?r:v&&t.filter===v?t.filter(e,n):(k(t,function(t,i,o){e.call(n,t,i,o)&&r.push(t)}),r)},I=F,M=function(t,e,n){e||(e=Ct);var r=!0;return null==t?r:g&&t.every===g?t.every(e,n):(k(t,function(t,o,u){if(!(r=r&&e.call(n,t,o,u)))return i}),!!r)},L=M,N=function(t,e,n){e||(e=Ct);var r=!1;return null==t?r:m&&t.some===m?t.some(e,n):(k(t,function(t,o,u){if(r||(r=e.call(n,t,o,u)))return i}),!!r)},R=N,D=function(t){return null==t?0:t.length===+t.length?t.length:ot(t).length},B=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},z=function(t){return null==t?Ct:gt(t)?t:Pt(t)},q=function(t){return function(e,n,r){var i={};return n=z(n),k(e,function(o,u){var a=n.call(r,o,u,e);t(i,a,o)}),i}},V=q(function(t,e,n){kt(t,e)?t[e].push(n):t[e]=[n]}),H=q(function(t,e,n){t[e]=n}),Q=function(t,e,n,r){for(var i=(n=z(n)).call(r,e),o=0,u=t.length;o>>1;n.call(r,t[a])=0)},U=W,X=function(t,e){return F(t,St(e))},Y=function(t,e){return A(t,St(e))},J=function(t){var e=s.apply(o,c.call(arguments,1));return F(t,function(t){return!W(e,t)})},K=function(t,e,n){if(null==t)return-1;var r=0,i=t.length;if(n){if("number"!=typeof n)return t[r=Q(t,e)]===e?r:-1;r=n<0?Math.max(0,i+n):n}if(b&&t.indexOf===b)return t.indexOf(e,n);for(;ri&&(r=t,i=a)}),r},memoize:et,now:Tt,omit:function(t){var e={},n=s.apply(o,c.call(arguments,1));for(var r in t)W(n,r)||(e[r]=t[r]);return e},once:tt,partial:G,pick:lt,pluck:function(t,e){return x(t,Pt(e))},property:Pt,propertyOf:function(t){return null==t?function(){}:function(e){return t[e]}},reduce:S,reject:function(t,e,n){return F(t,function(t,r,i){return!e.call(n,t,r,i)},n)},result:function(t,e){if(null!=t){var n=t[e];return gt(n)?n.call(t):n}},select:I,size:D,some:R,sortedIndex:Q,throttle:it,where:X,without:function(t){return J(t,c.call(arguments,1))}}},function(t,e,n){"use strict";n.d(e,"y",function(){return i}),n.d(e,"x",function(){return o}),n.d(e,"w",function(){return u}),n.d(e,"t",function(){return a}),n.d(e,"u",function(){return c}),n.d(e,"a",function(){return s}),n.d(e,"c",function(){return l}),n.d(e,"v",function(){return f}),n.d(e,"d",function(){return d}),n.d(e,"h",function(){return p}),n.d(e,"e",function(){return h}),n.d(e,"k",function(){return v}),n.d(e,"i",function(){return g}),n.d(e,"j",function(){return m}),n.d(e,"b",function(){return b}),n.d(e,"f",function(){return y}),n.d(e,"g",function(){return j}),n.d(e,"o",function(){return w}),n.d(e,"l",function(){return O}),n.d(e,"m",function(){return k}),n.d(e,"n",function(){return C}),n.d(e,"p",function(){return x}),n.d(e,"q",function(){return P}),n.d(e,"r",function(){return S}),n.d(e,"s",function(){return T}),n.d(e,"A",function(){return E}),n.d(e,"z",function(){return A}),n.d(e,"B",function(){return _});var r=n(0),i=1e5,o=100001,u=100002,a=101e3,c=102e3,s=200001,l=202e3,f=104e3,d=203e3,p=203640,h=204e3,v=210001,g=21e4,m=214e3,b=306e3,y=308e3,j=308640,w="cantPlayVideo",O="badConnection",k="cantLoadPlayer",C="cantPlayInBrowser",x="liveStreamDown",P="protectedContent",S="technicalError",T=function(){function t(t,e,n){this.code=Object(r.z)(e)?e:0,this.sourceError=n||null,t&&(this.key=t)}return t.logMessage=function(t){var e=t%1e3,n=Math.floor((t-e)/1e3),r=t.toString();return e>=400&&e<600&&(r=n+"400-"+n+"599"),"JW Player "+(t>299999&&t<4e5?"Warning":"Error")+" "+t+". For more information see https://developer.jwplayer.com/jw-player/docs/developer-guide/api/errors-reference#"+r},t}();function E(t,e,n){return n instanceof T&&n.code?n:new T(t,e,n)}function A(t,e){var n=E(S,e,t);return n.code=(t&&t instanceof T&&t.code||0)+e,n}function _(t){var e=t.name,n=t.message;switch(e){case"AbortError":return/pause/.test(n)?303213:/load/.test(n)?303212:303210;case"NotAllowedError":return 303220;case"NotSupportedError":return 303230;default:return 303200}}},function(t,e,n){"use strict";n.d(e,"i",function(){return o}),n.d(e,"e",function(){return u}),n.d(e,"j",function(){return a}),n.d(e,"a",function(){return c}),n.d(e,"b",function(){return s}),n.d(e,"g",function(){return l}),n.d(e,"d",function(){return f}),n.d(e,"f",function(){return d}),n.d(e,"h",function(){return p}),n.d(e,"c",function(){return h});var r=n(0),i=window.parseFloat;function o(t){return t.replace(/^\s+|\s+$/g,"")}function u(t,e,n){for(t=""+t,n=n||"0";t.length-1?t.substr(t.lastIndexOf(".")+1,t.length).toLowerCase():""}function s(t){var e=(t/60|0)%60,n=t%60;return u((t/3600|0).toString(),2)+":"+u(e.toString(),2)+":"+u(n.toFixed(3),6)}function l(t,e){if(!t)return 0;if(Object(r.z)(t))return t;var n=t.replace(",","."),o=n.slice(-1),u=n.split(":"),a=u.length,c=0;if("s"===o)c=i(n);else if("m"===o)c=60*i(n);else if("h"===o)c=3600*i(n);else if(a>1){var s=a-1;4===a&&(e&&(c=i(u[s])/e),s-=1),c+=i(u[s]),c+=60*i(u[s-1]),a>=3&&(c+=3600*i(u[s-2]))}else c=i(n);return Object(r.z)(c)?c:0}function f(t,e,n){if(Object(r.x)(t)&&"%"===t.slice(-1)){var o=i(t);return e&&Object(r.z)(e)&&Object(r.z)(o)?e*o/100:null}return l(t,n)}function d(t,e){return t.map(function(t){return e+t})}function p(t,e){return t.map(function(t){return t+e})}function h(t){return!!t&&Object(r.x)(t)&&"%"===t.slice(-1)}},function(t,e,n){"use strict";n.d(e,"kb",function(){return r}),n.d(e,"nb",function(){return i}),n.d(e,"lb",function(){return o}),n.d(e,"pb",function(){return u}),n.d(e,"qb",function(){return a}),n.d(e,"mb",function(){return c}),n.d(e,"ob",function(){return s}),n.d(e,"rb",function(){return l}),n.d(e,"s",function(){return f}),n.d(e,"u",function(){return d}),n.d(e,"t",function(){return p}),n.d(e,"n",function(){return h}),n.d(e,"q",function(){return v}),n.d(e,"sb",function(){return g}),n.d(e,"r",function(){return m}),n.d(e,"Z",function(){return b}),n.d(e,"W",function(){return y}),n.d(e,"v",function(){return j}),n.d(e,"Y",function(){return w}),n.d(e,"w",function(){return O}),n.d(e,"ub",function(){return k}),n.d(e,"a",function(){return C}),n.d(e,"b",function(){return x}),n.d(e,"c",function(){return P}),n.d(e,"d",function(){return S}),n.d(e,"e",function(){return T}),n.d(e,"h",function(){return E}),n.d(e,"F",function(){return A}),n.d(e,"hb",function(){return _}),n.d(e,"Q",function(){return F}),n.d(e,"C",function(){return I}),n.d(e,"B",function(){return M}),n.d(e,"E",function(){return L}),n.d(e,"p",function(){return N}),n.d(e,"cb",function(){return R}),n.d(e,"m",function(){return D}),n.d(e,"G",function(){return B}),n.d(e,"H",function(){return z}),n.d(e,"N",function(){return q}),n.d(e,"O",function(){return V}),n.d(e,"R",function(){return H}),n.d(e,"jb",function(){return Q}),n.d(e,"bb",function(){return W}),n.d(e,"D",function(){return U}),n.d(e,"S",function(){return X}),n.d(e,"P",function(){return Y}),n.d(e,"T",function(){return J}),n.d(e,"V",function(){return K}),n.d(e,"M",function(){return Z}),n.d(e,"L",function(){return $}),n.d(e,"K",function(){return G}),n.d(e,"I",function(){return tt}),n.d(e,"J",function(){return et}),n.d(e,"U",function(){return nt}),n.d(e,"o",function(){return rt}),n.d(e,"y",function(){return it}),n.d(e,"ib",function(){return ot}),n.d(e,"db",function(){return ut}),n.d(e,"eb",function(){return at}),n.d(e,"f",function(){return ct}),n.d(e,"g",function(){return st}),n.d(e,"ab",function(){return lt}),n.d(e,"A",function(){return ft}),n.d(e,"l",function(){return dt}),n.d(e,"k",function(){return pt}),n.d(e,"fb",function(){return ht}),n.d(e,"gb",function(){return vt}),n.d(e,"tb",function(){return gt}),n.d(e,"z",function(){return mt}),n.d(e,"j",function(){return bt}),n.d(e,"X",function(){return yt}),n.d(e,"i",function(){return jt}),n.d(e,"x",function(){return wt});var r="buffering",i="idle",o="complete",u="paused",a="playing",c="error",s="loading",l="stalled",f="drag",d="dragStart",p="dragEnd",h="click",v="doubleClick",g="tap",m="doubleTap",b="over",y="move",j="enter",w="out",O=c,k="warning",C="adClick",x="adPause",P="adPlay",S="adSkipped",T="adTime",E="autostartNotAllowed",A=o,_="ready",F="seek",I="beforePlay",M="beforeComplete",L="bufferFull",N="displayClick",R="playlistComplete",D="cast",B="mediaError",z="firstFrame",q="playAttempt",V="playAttemptFailed",H="seeked",Q="setupError",W="state",U="bufferChange",X="time",Y="ratechange",J="mediaType",K="volume",Z="mute",$="metadataCueParsed",G="meta",tt="levels",et="levelsChanged",nt="visualQuality",rt="controls",it="fullscreen",ot="resize",ut="playlistItem",at="playlist",ct="audioTracks",st="audioTrackChanged",lt="playbackRateChanged",ft="logoClick",dt="captionsList",pt="captionsChanged",ht="providerChanged",vt="providerFirstFrame",gt="userAction",mt="instreamClick",bt="breakpoint",yt="fullscreenchange",jt="bandwidthEstimate",wt="float"},function(t,e,n){"use strict";n.d(e,"b",function(){return i}),n.d(e,"d",function(){return o}),n.d(e,"a",function(){return u}),n.d(e,"c",function(){return a});var r=n(2);function i(t){var e="";return t&&(t.localName?e=t.localName:t.baseName&&(e=t.baseName)),e}function o(t){var e="";return t&&(t.textContent?e=Object(r.i)(t.textContent):t.text&&(e=Object(r.i)(t.text))),e}function u(t,e){return t.childNodes[e]}function a(t){return t.childNodes?t.childNodes.length:0}},function(t,e,n){"use strict";n.r(e);var r=n(7);function i(t,e){var n;return t&&t.length>e&&(n=t[e]),n}var o=n(0);n.d(e,"Browser",function(){return c}),n.d(e,"OS",function(){return s}),n.d(e,"Features",function(){return l});var u=navigator.userAgent,a=function(){},c={},s={},l={};Object.defineProperties(c,{androidNative:{get:Object(o.C)(r.c),enumerable:!0},chrome:{get:Object(o.C)(r.d),enumerable:!0},edge:{get:Object(o.C)(r.e),enumerable:!0},facebook:{get:Object(o.C)(r.g),enumerable:!0},firefox:{get:Object(o.C)(r.f),enumerable:!0},ie:{get:Object(o.C)(r.i),enumerable:!0},msie:{get:Object(o.C)(r.n),enumerable:!0},safari:{get:Object(o.C)(r.q),enumerable:!0},version:{get:Object(o.C)(function(t,e){var n,r,i,o;return t.chrome?n=-1!==e.indexOf("Chrome")?e.substring(e.indexOf("Chrome")+7):e.substring(e.indexOf("CriOS")+6):t.safari?n=e.substring(e.indexOf("Version")+8):t.firefox?n=e.substring(e.indexOf("Firefox")+8):t.edge?n=e.substring(e.indexOf("Edge")+5):t.ie&&(-1!==e.indexOf("rv:")?n=e.substring(e.indexOf("rv:")+3):-1!==e.indexOf("MSIE")&&(n=e.substring(e.indexOf("MSIE")+5))),n&&(-1!==(o=n.indexOf(";"))&&(n=n.substring(0,o)),-1!==(o=n.indexOf(" "))&&(n=n.substring(0,o)),-1!==(o=n.indexOf(")"))&&(n=n.substring(0,o)),r=parseInt(n,10),i=parseInt(n.split(".")[1],10)),{version:n,major:r,minor:i}}.bind(void 0,c,u)),enumerable:!0}}),Object.defineProperties(s,{android:{get:Object(o.C)(r.b),enumerable:!0},iOS:{get:Object(o.C)(r.j),enumerable:!0},mobile:{get:Object(o.C)(r.o),enumerable:!0},mac:{get:Object(o.C)(r.p),enumerable:!0},iPad:{get:Object(o.C)(r.k),enumerable:!0},iPhone:{get:Object(o.C)(r.l),enumerable:!0},windows:{get:Object(o.C)(function(){return u.indexOf("Windows")>-1}),enumerable:!0},tizen:{get:Object(o.C)(r.r),enumerable:!0},version:{get:Object(o.C)(function(t,e){var n,r,o;if(t.windows)switch(n=i(/Windows(?: NT|)? ([._\d]+)/.exec(e),1)){case"6.1":n="7.0";break;case"6.2":n="8.0";break;case"6.3":n="8.1"}else t.android?n=i(/Android ([._\d]+)/.exec(e),1):t.iOS?n=i(/OS ([._\d]+)/.exec(e),1):t.mac?n=i(/Mac OS X (10[._\d]+)/.exec(e),1):t.tizen&&(n=i(/Tizen ([._\d]+)/.exec(e),1));if(n){r=parseInt(n,10);var u=n.split(/[._]/);u&&(o=parseInt(u[1],10))}return{version:n,major:r,minor:o}}.bind(void 0,s,u)),enumerable:!0}}),Object.defineProperties(l,{flash:{get:Object(o.C)(r.h),enumerable:!0},flashVersion:{get:Object(o.C)(r.a),enumerable:!0},iframe:{get:Object(o.C)(r.m),enumerable:!0},passiveEvents:{get:Object(o.C)(function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){return t=!0}});window.addEventListener("testPassive",a,e),window.removeEventListener("testPassive",a,e)}catch(t){}return t}),enumerable:!0},backgroundLoading:{get:Object(o.C)(function(){return!(s.iOS||c.safari||s.tizen)}),enumerable:!0}})},function(t,e,n){"use strict";n.d(e,"i",function(){return s}),n.d(e,"e",function(){return l}),n.d(e,"q",function(){return f}),n.d(e,"j",function(){return d}),n.d(e,"s",function(){return p}),n.d(e,"r",function(){return h}),n.d(e,"u",function(){return v}),n.d(e,"d",function(){return b}),n.d(e,"a",function(){return y}),n.d(e,"o",function(){return j}),n.d(e,"p",function(){return w}),n.d(e,"v",function(){return O}),n.d(e,"t",function(){return k}),n.d(e,"h",function(){return C}),n.d(e,"b",function(){return x}),n.d(e,"g",function(){return P}),n.d(e,"c",function(){return S}),n.d(e,"m",function(){return T}),n.d(e,"k",function(){return E}),n.d(e,"n",function(){return A}),n.d(e,"l",function(){return _}),n.d(e,"f",function(){return F});var r,i=n(0),o=n(2),u=n(5),a=window.DOMParser,c=!0;function s(t,e){return t.classList.contains(e)}function l(t){return d(t).firstChild}function f(t,e){C(t),function(t,e){if(e){for(var n=document.createDocumentFragment(),r=d(e).childNodes,i=0;i-1?e.documentElement.innerHTML=t:e.body.innerHTML=t,e.body}(t);p(e);for(var n=e.querySelectorAll("*"),i=n.length;i--;)h(n[i]);return e}function p(t){for(var e=t.querySelectorAll("script,object,iframe"),n=e.length;n--;){var r=e[n];r.parentNode.removeChild(r)}return t}function h(t){for(var e=t.attributes,n=e.length;n--;){var r=e[n].name;if(/^on/.test(r)&&t.removeAttribute(r),/href/.test(r)){var i=e[n].value;/javascript:|javascript:/.test(i)&&t.removeAttribute(r)}}return t}function v(t){return t+(t.toString().indexOf("%")>0?"":"px")}function g(t){return Object(i.x)(t.className)?t.className.split(" "):[]}function m(t,e){e=Object(o.i)(e),t.className!==e&&(t.className=e)}function b(t){return t.classList?t.classList:g(t)}function y(t,e){var n=g(t);(Array.isArray(e)?e:e.split(" ")).forEach(function(t){Object(i.e)(n,t)||n.push(t)}),m(t,n.join(" "))}function j(t,e){var n=g(t),r=Array.isArray(e)?e:e.split(" ");m(t,Object(i.h)(n,r).join(" "))}function w(t,e,n){var r=t.className||"";e.test(r)?r=r.replace(e,n):n&&(r+=" "+n),m(t,r)}function O(t,e,n){var r=s(t,e);(n=Object(i.r)(n)?n:!r)!==r&&(n?y(t,e):j(t,e))}function k(t,e,n){t.setAttribute(e,n)}function C(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function x(t){var e=document.createElement("link");e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function P(t){t&&C(t)}function S(t){var e={left:0,right:0,width:0,height:0,top:0,bottom:0};if(!t||!document.body.contains(t))return e;var n=t.getBoundingClientRect(),r=window.pageYOffset,i=window.pageXOffset;return n.width||n.height||n.left||n.top?(e.left=n.left+i,e.right=n.right+i,e.top=n.top+r,e.bottom=n.bottom+r,e.width=n.right-n.left,e.height=n.bottom-n.top,e):e}function T(t,e){t.insertBefore(e,t.firstChild)}function E(t){return t.nextElementSibling}function A(t){return t.previousElementSibling}function _(t,e,n){void 0===n&&(n={});var r=document.createElement("a");r.href=t,r.target=e,r=Object(i.j)(r,n),u.Browser.firefox?r.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})):r.click()}function F(){var t=window.screen.orientation;return!!t&&("landscape-primary"===t.type||"landscape-secondary"===t.type)||90===window.orientation||-90===window.orientation}},function(t,e,n){"use strict";n.d(e,"h",function(){return u}),n.d(e,"f",function(){return c}),n.d(e,"l",function(){return l}),n.d(e,"k",function(){return f}),n.d(e,"p",function(){return d}),n.d(e,"g",function(){return p}),n.d(e,"e",function(){return h}),n.d(e,"n",function(){return v}),n.d(e,"r",function(){return g}),n.d(e,"d",function(){return m}),n.d(e,"i",function(){return b}),n.d(e,"q",function(){return y}),n.d(e,"j",function(){return j}),n.d(e,"c",function(){return w}),n.d(e,"b",function(){return O}),n.d(e,"o",function(){return k}),n.d(e,"m",function(){return C}),n.d(e,"a",function(){return x});var r=navigator.userAgent;function i(t){return null!==r.match(t)}function o(t){return function(){return i(t)}}function u(){var t=x();return!!(t&&t>=18)}var a=function(){return"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1},c=o(/gecko\//i),s=o(/trident\/.+rv:\s*11/i),l=o(/iP(hone|od)/i),f=function(){return i(/iPad/i)||a()},d=function(){return i(/Macintosh/i)&&!a()},p=o(/FBAV/i);function h(){return i(/\sEdge\/\d+/i)}function v(){return i(/msie/i)}function g(){return i(/SMART-TV/)}function m(){return i(/\s(?:(?:Headless)?Chrome|CriOS)\//i)&&!h()&&!i(/UCBrowser/i)&&!g()}function b(){return h()||s()||v()}function y(){return i(/safari/i)&&!i(/(?:Chrome|CriOS|chromium|android|phantom)/i)||g()}function j(){return i(/iP(hone|ad|od)/i)||a()}function w(){return!(i(/chrome\/[123456789]/i)&&!i(/chrome\/18/i)&&!c())&&O()}function O(){return i(/Android/i)&&!i(/Windows Phone/i)}function k(){return j()||O()||i(/Windows Phone/i)}function C(){try{return window.self!==window.top}catch(t){return!0}}function x(){if(O())return 0;var t,e=navigator.plugins;if(e&&(t=e.namedItem("Shockwave Flash"))&&t.description)return parseFloat(t.description.replace(/\D+(\d+\.?\d*).*/,"$1"));if(void 0!==window.ActiveXObject){try{if(t=new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return parseFloat(t.GetVariable("$version").split(" ")[1].replace(/\s*,\s*/,"."))}catch(t){return 0}return t}return 0}},function(t,e,n){"use strict";n.r(e),n.d(e,"exists",function(){return i}),n.d(e,"isHTTPS",function(){return o}),n.d(e,"isFileProtocol",function(){return u}),n.d(e,"isRtmp",function(){return a}),n.d(e,"isYouTube",function(){return c}),n.d(e,"typeOf",function(){return s}),n.d(e,"isDeepKeyCompliant",function(){return l});var r=window.location.protocol;function i(t){switch(typeof t){case"string":return t.length>0;case"object":return null!==t;case"undefined":return!1;default:return!0}}function o(){return"https:"===r}function u(){return"file:"===r}function a(t,e){return 0===t.indexOf("rtmp:")||"rtmp"===e}function c(t,e){return"youtube"===e||/^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(t)}function s(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.isArray(t)?"array":e}function l(t,e,n){var r=Object.keys(t);return Object.keys(e).length>=r.length&&r.every(function(r){var i=t[r],o=e[r];return i&&"object"==typeof i?!(!o||"object"!=typeof o)&&l(i,o,n):n(r,t)})}},function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"c",function(){return i}),n.d(e,"d",function(){return o}),n.d(e,"b",function(){return u}),n.d(e,"e",function(){return a}),n.d(e,"f",function(){return c});var r=function(){function t(){}var e=t.prototype;return e.on=function(t,e,n){if(!l(this,"on",t,[e,n])||!e)return this;var r=this._events||(this._events={});return(r[t]||(r[t]=[])).push({callback:e,context:n}),this},e.once=function(t,e,n){if(!l(this,"once",t,[e,n])||!e)return this;var r=0,i=this,o=function n(){r++||(i.off(t,n),e.apply(this,arguments))};return o._callback=e,this.on(t,o,n)},e.off=function(t,e,n){if(!this._events||!l(this,"off",t,[e,n]))return this;if(!t&&!e&&!n)return delete this._events,this;for(var r=t?[t]:Object.keys(this._events),i=0,o=r.length;i1?e-1:0),r=1;r1?e-1:0),r=1;r-1?t:parseInt(t.replace("px",""),10)}function l(t,e){if(Object(i.u)(t)&&(t=parseInt(t.toString())),Object(i.u)(t)||!isFinite(t)||t<=0&&!e)return"00:00";var n=t<0?"-":"";t=Math.abs(t);var r=Math.floor(t/3600),o=Math.floor((t-3600*r)/60),u=Math.floor(t%60);return n+(r?r+":":"")+(o<10?"0":"")+o+":"+(u<10?"0":"")+u}},function(t,e,n){"use strict";n.d(e,"a",function(){return a});var r=n(33),i=n(17),o=n(60),u=n(0);function a(t){var e=t.getName().name;if(!r.a[e]){if(!Object(u.l)(i.a,Object(u.B)({name:e}))){if(!Object(u.t)(t.supports))throw new Error("Tried to register a provider with an invalid object");i.a.unshift({name:e,supports:t.supports})}Object(u.g)(t.prototype,o.a),r.a[e]=t}}},function(t,e,n){"use strict";n.d(e,"j",function(){return p}),n.d(e,"d",function(){return h}),n.d(e,"b",function(){return v}),n.d(e,"e",function(){return m}),n.d(e,"g",function(){return y}),n.d(e,"h",function(){return j}),n.d(e,"c",function(){return w}),n.d(e,"f",function(){return k}),n.d(e,"i",function(){return C}),n.d(e,"a",function(){return x});var r=n(0),i=n(7),o=n(29),u=n(8),a=n(42),c={},s={zh:"Chinese",nl:"Dutch",en:"English",fr:"French",de:"German",it:"Italian",ja:"Japanese",pt:"Portuguese",ru:"Russian",es:"Spanish",el:"Greek",fi:"Finnish",id:"Indonesian",ko:"Korean",th:"Thai",vi:"Vietnamese"},l=Object(r.q)(s);function f(t){var e=d(t),n=e.indexOf("_");return-1===n?e:e.substring(0,n)}function d(t){return t.toLowerCase().replace("-","_")}function p(t){return t?Object.keys(t).reduce(function(e,n){return e[d(n)]=t[n],e},{}):{}}function h(t){if(t)return 3===t.length?t:s[f(t)]||t}function v(t){return l[t]||""}function g(t){var e=t.querySelector("html");return e?e.getAttribute("lang"):null}function m(){var t=g(document);if(!t&&Object(i.m)())try{t=g(window.top.document)}catch(t){}return t||navigator.language||"en"}var b=["ar","da","de","el","es","fi","fr","he","id","it","ja","ko","nl","no","oc","pt","ro","ru","sl","sv","th","tr","vi","zh"];function y(t){return 8207===t.charCodeAt(0)||/^[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(t)}function j(t){return b.indexOf(f(t))>=0}function w(t,e,n){return Object(r.j)({},function(t){var e=t.advertising,n=t.related,i=t.sharing,o=t.abouttext,u=Object(r.j)({},t.localization);e&&(u.advertising=u.advertising||{},O(u.advertising,e,"admessage"),O(u.advertising,e,"cuetext"),O(u.advertising,e,"loadingAd"),O(u.advertising,e,"podmessage"),O(u.advertising,e,"skipmessage"),O(u.advertising,e,"skiptext")),"string"==typeof u.related?u.related={heading:u.related}:u.related=u.related||{},n&&O(u.related,n,"autoplaymessage"),i&&(u.sharing=u.sharing||{},O(u.sharing,i,"heading"),O(u.sharing,i,"copied")),o&&O(u,t,"abouttext");var a=u.close||u.nextUpClose;return a&&(u.close=a),u}(t),e[f(n)],e[d(n)])}function O(t,e,n){var r=t[n]||e[n];r&&(t[n]=r)}function k(t){return Object(u.isDeepKeyCompliant)(a.a,t,function(t,e){return"string"==typeof e[t]})}function C(t,e){var n=c[e];if(!n){var r=t+"translations/"+f(e)+".json";c[e]=n=new Promise(function(t,n){Object(o.b)({url:r,oncomplete:t,onerror:function(t,r,i,o){c[e]=null,n(o)},responseType:"json"})})}return n}function x(t,e){var n=Object(r.j)({},t,e);return P(n,"errors",t,e),P(n,"related",t,e),P(n,"sharing",t,e),P(n,"advertising",t,e),P(n,"shortcuts",t,e),P(n,"captionsStyles",t,e),n}function P(t,e,n,i){t[e]=Object(r.j)({},n[e],i[e])}},function(t,e,n){"use strict";e.a=[]},function(t,e,n){"use strict";e.a={debug:!1}},function(t,e,n){"use strict";var r=n(28),i=n(5),o=n(23),u=n(0),a=n(8),c=n(36),s=Object(u.l)(r.a,Object(u.B)({name:"html5"})),l=s.supports;function f(t){var e=window.MediaSource;return Object(u.a)(t,function(t){return!!e&&!!e.isTypeSupported&&e.isTypeSupported(t)})}function d(t){if(t.drm)return!1;var e=t.file.indexOf(".m3u8")>-1,n="hls"===t.type||"m3u8"===t.type;if(!e&&!n)return!1;var r=i.Browser.chrome||i.Browser.firefox||i.Browser.edge||i.Browser.ie&&11===i.Browser.version.major,o=i.OS.android&&!1===t.hlsjsdefault,u=i.Browser.safari&&!!t.safarihlsjs;return f(t.mediaTypes||['video/mp4;codecs="avc1.4d400d,mp4a.40.2"'])&&(r||u)&&!o}s.supports=function(t,e){var n=l.apply(this,arguments);if(n&&t.drm&&"hls"===t.type){var r=Object(o.a)(e)("drm");if(r&&t.drm.fairplay){var i=window.WebKitMediaKeys;return i&&i.isTypeSupported&&i.isTypeSupported("com.apple.fps.1_0","video/mp4")}return r}return n},r.a.push({name:"shaka",supports:function(t){return!(t.drm&&!Object(c.a)(t.drm))&&!(!window.HTMLVideoElement||!window.MediaSource)&&f(t.mediaTypes)&&("dash"===t.type||"mpd"===t.type||(t.file||"").indexOf("mpd-time-csf")>-1)}}),r.a.unshift({name:"hlsjs",supports:function(t){return d(t)}}),r.a.unshift({name:"hlsjsProgressive",supports:function(t){return t._hlsjsProgressive&&d(t)}}),r.a.push({name:"flash",supports:function(t){if(!i.Features.flash||t.drm)return!1;var e=t.type;return"hls"===e||"m3u8"===e||!Object(a.isRtmp)(t.file,e)&&["flv","f4v","mov","m4a","m4v","mp4","aac","f4a","mp3","mpeg","smil"].indexOf(e)>-1}}),e.a=r.a},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=Date.now||function(){return(new Date).getTime()}},function(t,e,n){"use strict";n.r(e),n.d(e,"getScriptPath",function(){return o}),n.d(e,"repo",function(){return u}),n.d(e,"versionCheck",function(){return a}),n.d(e,"loadFrom",function(){return c});var r=n(31),i=n(8),o=function(t){for(var e=document.getElementsByTagName("script"),n=0;n=0)return r.substr(0,i+1)}}return""},u=function(){return(Object(i.isFileProtocol)()?"https:":"")+"//ssl.p.jwpcdn.com/player/v/8.15.1/"},a=function(t){var e=("0"+t).split(/\W/),n=r.a.split(/\W/),i=parseFloat(e[0]),o=parseFloat(n[0]);return!(i>o||i===o&&parseFloat("0"+e[1])>parseFloat(n[1]))},c=function(){return u()}},function(t,e,n){"use strict";n.d(e,"a",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"b",function(){return u});var r=n(39),i=r.a,o=r.c;function u(t){var e=Object(r.b)(t);if(!t)return e;switch(Object(r.c)(t)){case"jwpsrv":e=305001;break;case"googima":e=305002;break;case"vast":e=305003;break;case"freewheel":e=305004;break;case"dai":e=305005;break;case"gapro":e=305006;break;case"bidding":e=305007}return e}},,,function(t,e,n){"use strict";function r(t){var e={setup:["free","starter","business","premium","enterprise","developer","ads","unlimited","trial","platinum"],drm:["enterprise","developer","ads","unlimited","trial"],ads:["ads","unlimited","trial","platinum","enterprise","developer","business"],jwpsrv:["free","starter","business","premium","enterprise","developer","ads","trial","platinum","invalid"],discovery:["ads","enterprise","developer","trial","unlimited"]};return function(n){return e[n]&&e[n].indexOf(t)>-1}}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";var r=n(0),i={none:!0,metadata:!0,auto:!0};function o(t,e){return i[t]?t:i[e]?e:"metadata"}var u=n(30),a=n(34),c=n(44),s=n(1);function l(t,e,n){var i=Object(r.j)({},n);return delete i.playlist,t.map(function(t){return d(e,t,i)}).filter(function(t){return!!t})}function f(t){if(!Array.isArray(t)||0===t.length)throw new s.s(s.o,630)}function d(t,e,n){var i=t.getProviders(),u=t.get("preload"),a=Object(r.j)({},e);if(a.preload=o(e.preload,u),a.allSources=v(e,t),a.sources=g(a.allSources,i),a.sources.length)return a.file=a.sources[0].file,a.feedData=n,function(t){var e=t.sources[0].liveSyncDuration;return t.dvrSeekLimit=t.liveSyncDuration=e,t}(a)}function p(t,e){var n=(parseInt(t,10)||0)%e;return n<0&&(n+=e),n}n.d(e,"b",function(){return l}),n.d(e,"e",function(){return f}),n.d(e,"d",function(){return d}),n.d(e,"f",function(){return p}),n.d(e,"c",function(){return h});var h=function(t,e){return g(v(t,e),e.getProviders())};function v(t,e){var n=e.attributes,r=t.sources,i=t.allSources,u=t.preload,c=t.drm,s=m(t.withCredentials,n.withCredentials);return(i||r).map(function(e){if(e!==Object(e))return null;b(e,n,"androidhls"),b(e,n,"hlsjsdefault"),b(e,n,"safarihlsjs"),function(t,e,n){t.liveSyncDuration||b(t,e.liveSyncDuration?e:n,"liveSyncDuration")}(e,t,n),b(e,n,"_hlsjsProgressive"),e.preload=o(e.preload,u);var r=e.drm||c||n.drm;r&&(e.drm=r);var i=m(e.withCredentials,s);return void 0!==i&&(e.withCredentials=i),Object(a.a)(e)}).filter(function(t){return!!t})}function g(t,e){e&&e.choose||(e=new c.a);var n=function(t,e){for(var n=0;n2){n=a[1];var c=parseInt(a[2]);c>0&&(u=new Date).setTime(c)}}catch(t){e="invalid"}this.edition=function(){return e},this.token=function(){return n},this.expiration=function(){return u},this.duration=function(){return u?u.getTime()-(new Date).getTime():0},this.error=function(){}}},function(t,e,n){"use strict";n.d(e,"b",function(){return c});var r=n(68),i=n(8),o=n(41),u={aac:"audio/mp4",mp4:"video/mp4",f4v:"video/mp4",m4v:"video/mp4",mov:"video/mp4",mp3:"audio/mpeg",mpeg:"audio/mpeg",ogv:"video/ogg",ogg:"video/ogg",oga:"video/ogg",vorbis:"video/ogg",webm:"video/webm",f4a:"video/aac",m3u8:"application/vnd.apple.mpegurl",m3u:"application/vnd.apple.mpegurl",hls:"application/vnd.apple.mpegurl"},a=[{name:"html5",supports:c}];function c(t){if(!1===Object(r.a)(t))return!1;if(!o.a.canPlayType)return!1;var e=t.file,n=t.type;if(Object(i.isRtmp)(e,n))return!1;var a=t.mimeType||u[n];if(!a)return!1;var c=t.mediaTypes;return c&&c.length&&(a=[a].concat(c.slice()).join("; ")),!!o.a.canPlayType(a)}e.a=a},function(t,e,n){"use strict";n.d(e,"b",function(){return c}),n.d(e,"a",function(){return s});var r=n(0),i=n(12),o=n(8),u=n(1),a=function(){};function c(t,e,n,d){var p;t===Object(t)&&(t=(d=t).url);var h=Object(r.j)({xhr:null,url:t,withCredentials:!1,retryWithoutCredentials:!1,timeout:6e4,timeoutId:-1,oncomplete:e||a,onerror:n||a,mimeType:d&&!d.responseType?"text/xml":"",requireValidXML:!1,responseType:d&&d.plainText?"text":"",useDomParser:!1,requestFilter:null},d),v=function(t,e){return function(t,n){var i=t.currentTarget||e.xhr;if(clearTimeout(e.timeoutId),e.retryWithoutCredentials&&e.xhr.withCredentials)return s(i),void c(Object(r.j)({},e,{xhr:null,withCredentials:!1,retryWithoutCredentials:!1}));!n&&i.status>=400&&i.status<600&&(n=i.status),l(e,n?u.o:u.r,n||6,t)}}(0,h);if("XMLHttpRequest"in window){if(p=h.xhr=h.xhr||new window.XMLHttpRequest,"function"==typeof h.requestFilter){var g;try{g=h.requestFilter({url:t,xhr:p})}catch(t){return v(t,5),p}g&&"open"in g&&"send"in g&&(p=h.xhr=g)}p.onreadystatechange=function(t){return function(e){var n=e.currentTarget||t.xhr;if(4===n.readyState){clearTimeout(t.timeoutId);var a=n.status;if(a>=400)return void l(t,u.o,a<600?a:6);if(200===a)return function(t){return function(e){var n=e.currentTarget||t.xhr;if(clearTimeout(t.timeoutId),t.responseType){if("json"===t.responseType)return function(t,e){if(!t.response||"string"==typeof t.response&&'"'!==t.responseText.substr(1))try{t=Object(r.j)({},t,{response:JSON.parse(t.responseText)})}catch(t){return void l(e,u.o,611,t)}return e.oncomplete(t)}(n,t)}else{var o,a=n.responseXML;if(a)try{o=a.firstChild}catch(t){}if(a&&o)return f(n,a,t);if(t.useDomParser&&n.responseText&&!a&&(a=Object(i.parseXML)(n.responseText))&&a.firstChild)return f(n,a,t);if(t.requireValidXML)return void l(t,u.o,602)}t.oncomplete(n)}}(t)(e);0===a&&Object(o.isFileProtocol)()&&!/^[a-z][a-z0-9+.-]*:/.test(t.url)&&l(t,u.o,7)}}}(h),p.onerror=v,"overrideMimeType"in p?h.mimeType&&p.overrideMimeType(h.mimeType):h.useDomParser=!0;try{t=t.replace(/#.*$/,""),p.open("GET",t,!0)}catch(t){return v(t,3),p}if(h.responseType)try{p.responseType=h.responseType}catch(t){}h.timeout&&(h.timeoutId=setTimeout(function(){s(p),l(h,u.r,1)},h.timeout),p.onabort=function(){clearTimeout(h.timeoutId)});try{h.withCredentials&&"withCredentials"in p&&(p.withCredentials=!0),p.send()}catch(t){v(t,4)}return p}l(h,u.r,2)}function s(t){t.onload=null,t.onprogress=null,t.onreadystatechange=null,t.onerror=null,"abort"in t&&t.abort()}function l(t,e,n,r){t.onerror(e,t.url,t.xhr,new u.s(e,n,r))}function f(t,e,n){var i=e.documentElement;if(!n.requireValidXML||"parsererror"!==i.nodeName&&!i.getElementsByTagName("parsererror").length)return t.responseXML||(t=Object(r.j)({},t,{responseXML:e})),n.oncomplete(t);l(n,u.o,601)}},function(t,e,n){"use strict";var r=n(0),i=n(34),o=["captions","metadata","thumbnails","chapters"],u=function(t){if(t&&t.file){var e,n=Object(r.j)({},{kind:"captions",default:!1},t);return n.kind=(e=n.kind,-1!==o.indexOf(e)?n.kind:"captions"),n.default=!!n.default,n}},a=Array.isArray;e.a=function(t){a((t=t||{}).tracks)||delete t.tracks;var e=Object(r.j)({},{sources:[],tracks:[],minDvrWindow:120,dvrSeekLimit:25},t);e.sources!==Object(e.sources)||a(e.sources)||(e.sources=[Object(i.a)(e.sources)]),a(e.sources)&&0!==e.sources.length||(t.levels?e.sources=t.levels:e.sources=[Object(i.a)(t)]);for(var n=0;n36&&(x(t,u.u,e),t.dragged=!0,x(t,u.s,e))}n||"touchmove"!==e.type||S(e)},h=function(n){if(clearTimeout(r),t.el)if(k(t),O(t,"window"),t.dragged)t.dragged=!1,x(t,u.t,n);else if(-1===n.type.indexOf("cancel")&&e.contains(n.target)){if(Object(c.a)()-t.lastStart>500)return;var i="pointerup"===n.type||"pointercancel"===n.type,o="mouseup"===n.type||i&&"mouse"===n.pointerType;!function(t,e,n){if(t.enableDoubleTap)if(Object(c.a)()-t.lastClick<300){x(t,n?u.q:u.r,e),t.lastClick=0}else t.lastClick=Object(c.a)()}(t,n,o),o?x(t,u.n,n):(x(t,u.sb,n),"touchend"!==n.type||p||S(n))}};f?w(t,"init","pointerdown",a,o):(d&&w(t,"init","mousedown",a,o),w(t,"init","touchstart",a,o)),i||(i=new v(document).on("interaction")),w(t,"init","blur",function(){Object(s.o)(e,"jw-tab-focus")}),w(t,"init","focus",function(){i.event&&"keydown"===i.event.type&&Object(s.a)(e,"jw-tab-focus")})}}var y={drag:function(t){b(t)},dragStart:function(t){b(t)},dragEnd:function(t){b(t)},click:function(t){b(t)},tap:function(t){if(o.OS.iOS&&o.OS.version.major<11){var e=document.body;e&&(e.ontouchstart=e.ontouchstart||function(){})}b(t)},doubleTap:function(t){t.enableDoubleTap=!0,b(t)},doubleClick:function(t){t.enableDoubleTap=!0,b(t)},longPress:function(t){if(o.OS.iOS){var e=function(){clearTimeout(r)};w(t,"longPress","touchstart",function(n){e(),r=setTimeout(function(){x(t,"longPress",n)},500)}),w(t,"longPress","touchmove",e),w(t,"longPress","touchcancel",e),w(t,"longPress","touchend",e)}else t.el.oncontextmenu=function(e){return x(t,"longPress",e),!1}},focus:function(t){w(t,"focus","focus",function(e){C(t,"focus",e)})},blur:function(t){w(t,"blur","blur",function(e){C(t,"blur",e)})},over:function(t){(f||d)&&w(t,u.Z,f?"pointerover":"mouseover",function(e){"touch"!==e.pointerType&&x(t,u.Z,e)})},out:function(t){if(f){var e=t.el;w(t,u.Y,"pointerout",function(n){if("touch"!==n.pointerType&&"x"in n){var r=document.elementFromPoint(n.x,n.y);e.contains(r)||x(t,u.Y,n)}})}else d&&w(t,u.Y,"mouseout",function(e){x(t,u.Y,e)})},move:function(t){(f||d)&&w(t,u.W,f?"pointermove":"mousemove",function(e){"touch"!==e.pointerType&&x(t,u.W,e)})},enter:function(t){w(t,u.v,"keydown",function(e){"Enter"!==e.key&&13!==e.keyCode||(e.stopPropagation(),C(t,u.v,e))})},keydown:function(t){w(t,"keydown","keydown",function(e){C(t,"keydown",e)},!1)},gesture:function(t){var e=function(e){return x(t,"gesture",e)};w(t,"gesture","click",e),w(t,"gesture","keydown",e)},interaction:function(t){var e=function(e){t.event=e};w(t,"interaction","mousedown",e,!0),w(t,"interaction","keydown",e,!0)}};function j(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||window}function w(t,e,n,r,i){void 0===i&&(i=h);var o=t.handlers[e],u=t.options[e];if(o||(o=t.handlers[e]={},u=t.options[e]={}),o[n])throw new Error(e+" "+n+" already registered");o[n]=r,u[n]=i;var a=t.el;("window"===e?j(a):a).addEventListener(n,r,i)}function O(t,e){var n=t.el,r=t.handlers,i=t.options,o="window"===e?j(n):n,u=r[e],a=i[e];u&&(Object.keys(u).forEach(function(t){var e=a[t];"boolean"==typeof e?o.removeEventListener(t,u[t],e):o.removeEventListener(t,u[t])}),r[e]=null,i[e]=null)}function k(t){var e=t.el;null!==t.pointerId&&(e.releasePointerCapture(t.pointerId),t.pointerId=null)}function C(t,e,n){var r=t.el,i=n.target;t.trigger(e,{type:e,sourceEvent:n,currentTarget:r,target:i})}function x(t,e,n){var r=function(t,e,n){var r,i=e.target,o=e.touches,u=e.changedTouches,a=e.pointerType;o||u?(r=o&&o.length?o[0]:u[0],a=a||"touch"):(r=e,a=a||"mouse");var c=r;return{type:t,pointerType:a,pageX:c.pageX,pageY:c.pageY,sourceEvent:e,currentTarget:n,target:i}}(e,n,t.el);t.trigger(e,r)}function P(t){return 0===t.type.indexOf("touch")?(t.originalEvent||t).changedTouches[0]:t}function S(t){t.preventDefault&&t.preventDefault()}},function(t,e,n){"use strict";n.d(e,"b",function(){return c}),n.d(e,"d",function(){return s}),n.d(e,"c",function(){return l}),n.d(e,"a",function(){return f});var r,i=n(23),o=[{configName:"clearkey",keyName:"org.w3.clearkey"},{configName:"widevine",keyName:"com.widevine.alpha"},{configName:"playready",keyName:"com.microsoft.playready"}],u=[],a={};function c(t){return t.some(function(t){return!!t.drm||t.sources.some(function(t){return!!t.drm})})}function s(t){return r||((navigator.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration||window.MSMediaKeys)&&Object(i.a)(t)("drm")?(o.forEach(function(t){var e,n,r=(e=t.keyName,n=[{initDataTypes:["cenc"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.4d401e"'}],audioCapabilities:[{contentType:'audio/mp4;codecs="mp4a.40.2"'}]}],navigator.requestMediaKeySystemAccess?navigator.requestMediaKeySystemAccess(e,n):new Promise(function(t,n){var r;try{r=new window.MSMediaKeys(e)}catch(t){return void n(t)}t(r)})).then(function(){a[t.configName]=!0}).catch(function(){a[t.configName]=!1});u.push(r)}),r=Promise.all(u)):Promise.resolve())}function l(t){return a[t]}function f(t){if(r)return Object.keys(t).some(function(t){return l(t)})}},,function(t,e,n){"use strict";var r=n(0),i=n(19),o=n(8),u=n(12),a=n(2),c=n(32),s=n(16);function l(t,e){this.name=t,this.message=e.message||e.toString(),this.error=e}var f=n(7),d=n(6),p=n(11),h=n(29),v=n(55),g=n(49),m=n(56),b=Object(r.j)({},u,o,i,{addClass:d.a,hasClass:d.i,removeClass:d.o,replaceClass:d.p,toggleClass:d.v,classList:d.d,styleDimension:d.u,createElement:d.e,emptyElement:d.h,addStyleSheet:d.b,bounds:d.c,openLink:d.l,replaceInnerHtml:d.q,css:p.b,clearCss:p.a,style:p.d,transform:p.e,getRgba:p.c,ajax:h.b,crossdomain:function(t){var e=document.createElement("a"),n=document.createElement("a");e.href=location.href;try{return n.href=t,n.href=n.href,e.protocol+"//"+e.host!=n.protocol+"//"+n.host}catch(t){}return!0},tryCatch:function(t,e,n){if(void 0===n&&(n=[]),s.a.debug)return t.apply(e||this,n);try{return t.apply(e||this,n)}catch(e){return new l(t.name,e)}},Error:l,Timer:c.a,log:g.a,genId:m.b,between:v.a,foreach:function(t,e){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])},flashVersion:f.a,isIframe:f.m,indexOf:r.p,trim:a.i,pad:a.e,extension:a.a,hms:a.b,seconds:a.g,prefix:a.f,suffix:a.h,noop:function(){}});e.a=b},function(t,e,n){"use strict";n.d(e,"c",function(){return i}),n.d(e,"b",function(){return o}),n.d(e,"a",function(){return u});var r=n(0),i=function(t){return t.replace(/^(.*\/)?([^-]*)-?.*\.(js)$/,"$2")};function o(t){return 305e3}function u(t,e,n){var i=t.name,o=document.createElement("div");o.id=n.id+"_"+i,o.className="jw-plugin jw-reset";var u=Object(r.j)({},e),a=t.getNewInstance(n,u,o);return n.addPlugin(i,a),a}},function(t,e,n){"use strict";n.d(e,"a",function(){return o}),n.d(e,"b",function(){return u});var r=n(10),i=null,o={};function u(){return i||(i=n.e(2).then(function(t){var e=n(21).default;return o.controls=e,e}.bind(null,n)).catch(function(){i=null,Object(r.c)(301130)()})),i}},function(t,e,n){"use strict";var r=document.createElement("video");e.a=r},function(t,e,n){"use strict";e.a={advertising:{admessage:"This ad will end in xx",cuetext:"Advertisement",displayHeading:"Advertisement",loadingAd:"Loading ad",podmessage:"Ad __AD_POD_CURRENT__ of __AD_POD_LENGTH__.",skipmessage:"Skip ad in xx",skiptext:"Skip"},airplay:"AirPlay",audioTracks:"Audio Tracks",auto:"Auto",buffer:"Loading",cast:"Chromecast",cc:"Closed Captions",close:"Close",errors:{badConnection:"This video cannot be played because of a problem with your internet connection.",cantLoadPlayer:"Sorry, the video player failed to load.",cantPlayInBrowser:"The video cannot be played in this browser.",cantPlayVideo:"This video file cannot be played.",errorCode:"Error Code",liveStreamDown:"The live stream is either down or has ended.",protectedContent:"There was a problem providing access to protected content.",technicalError:"This video cannot be played because of a technical error."},exitFullscreen:"Exit Fullscreen",fullscreen:"Fullscreen",hd:"Quality",liveBroadcast:"Live",logo:"Logo",mute:"Mute",next:"Next",nextUp:"Next Up",notLive:"Not Live",off:"Off",pause:"Pause",play:"Play",playback:"Play",playbackRates:"Playback Rates",player:"Video Player",poweredBy:"Powered by",prev:"Previous",related:{autoplaymessage:"Next up in xx",heading:"More Videos"},replay:"Replay",rewind:"Rewind 10 Seconds",settings:"Settings",sharing:{copied:"Copied",email:"Email",embed:"Embed",heading:"Share",link:"Link"},slider:"Seek",stop:"Stop",unmute:"Unmute",videoInfo:"About This Video",volume:"Volume",volumeSlider:"Volume",shortcuts:{playPause:"Play/Pause",volumeToggle:"Mute/Unmute",fullscreenToggle:"Fullscreen/Exit Fullscreen",seekPercent:"Seek %",keyboardShortcuts:"Keyboard Shortcuts",increaseVolume:"Increase Volume",decreaseVolume:"Decrease Volume",seekForward:"Seek Forward",seekBackward:"Seek Backward",spacebar:"SPACE",captionsToggle:"Captions On/Off"},captionsStyles:{subtitleSettings:"Subtitle Settings",color:"Font Color",fontOpacity:"Font Opacity",userFontScale:"Font Size",fontFamily:"Font Family",edgeStyle:"Character Edge",backgroundColor:"Background Color",backgroundOpacity:"Background Opacity",windowColor:"Window Color",windowOpacity:"Window Opacity",white:"White",black:"Black",red:"Red",green:"Green",blue:"Blue",yellow:"Yellow",magenta:"Magenta",cyan:"Cyan",none:"None",raised:"Raised",depressed:"Depressed",uniform:"Uniform",dropShadow:"Drop Shadow"},disabled:"Disabled",enabled:"Enabled",reset:"Reset"}},function(t,e){var n,r,i={},o={},u=(n=function(){return document.head||document.getElementsByTagName("head")[0]},function(){return void 0===r&&(r=n.apply(this,arguments)),r});function a(t){var e=document.createElement("style");return e.type="text/css",e.setAttribute("data-jwplayer-id",t),function(t){u().appendChild(t)}(e),e}function c(t,e){var n,r,i,u=o[t];u||(u=o[t]={element:a(t),counter:0});var c=u.counter++;return n=u.element,i=function(){f(n,c,"")},(r=function(t){f(n,c,t)})(e.css),function(t){if(t){if(t.css===e.css&&t.media===e.media)return;r((e=t).css)}else i()}}t.exports={style:function(t,e){!function(t,e){for(var n=0;n'+(e||"")+''+(r?("("+n+": "+r+")").replace(/\s+/g," "):"")+"
"}(t.get("id"),n,t.get("localization").errors.errorCode,o.toString()),a=t.get("width"),c=t.get("height"),s=Object(r.e)(u);return Object(i.d)(s,{width:a.toString().indexOf("%")>0?a:a+"px",height:c.toString().indexOf("%")>0?c:c+"px"}),s}n.d(e,"a",function(){return o})},function(t,e,n){"use strict";function r(t){return t.slice&&"px"===t.slice(-2)&&(t=t.slice(0,-2)),t}function i(t,e){if(-1===e.toString().indexOf("%"))return 0;if("string"!=typeof t||!t)return 0;if(/^\d*\.?\d+%$/.test(t))return t;var n=t.indexOf(":");if(-1===n)return 0;var r=parseFloat(t.substr(0,n)),i=parseFloat(t.substr(n+1));return r<=0||i<=0?0:i/r*100+"%"}n.d(e,"b",function(){return r}),n.d(e,"a",function(){return i})},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=window.atob},function(t,e,n){"use strict";var r=n(4),i=n(2);function o(t){var e={zh:"Chinese",nl:"Dutch",en:"English",fr:"French",de:"German",it:"Italian",ja:"Japanese",pt:"Portuguese",ru:"Russian",es:"Spanish"};return e[t]?e[t]:t}function u(t){for(var e=[],n=0;n