From a0748817c66f09795b8e2a40e208fc1d8758ebce Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Tue, 1 Aug 2017 04:42:58 +0000 Subject: [PATCH] Media: Upgrade MediaElement.js from 2.22.0 to 4.2.3. Props rafa8626, grosbouff, westonruter, azaozz, Plastikschnitzer for testing. See #39686. git-svn-id: https://develop.svn.wordpress.org/trunk@41198 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/about.php | 3 + src/wp-admin/includes/ajax-actions.php | 4 +- .../themes/twentyfourteen/inc/widgets.php | 1 + src/wp-includes/js/media-audiovideo.js | 7 +- .../js/media/views/media-details.js | 7 +- .../js/mediaelement/background.png | Bin 166 -> 0 bytes src/wp-includes/js/mediaelement/bigplay.png | Bin 3001 -> 0 bytes src/wp-includes/js/mediaelement/bigplay.svg | 14 - src/wp-includes/js/mediaelement/controls.png | Bin 1892 -> 0 bytes src/wp-includes/js/mediaelement/controls.svg | 1 - .../js/mediaelement/flashmediaelement.swf | Bin 130054 -> 0 bytes .../js/mediaelement/froogaloop.min.js | 4 - .../js/mediaelement/jumpforward.png | Bin 1563 -> 0 bytes src/wp-includes/js/mediaelement/lang/ca.js | 89 + src/wp-includes/js/mediaelement/lang/cs.js | 90 + src/wp-includes/js/mediaelement/lang/de.js | 90 + src/wp-includes/js/mediaelement/lang/es.js | 90 + src/wp-includes/js/mediaelement/lang/fa.js | 90 + src/wp-includes/js/mediaelement/lang/fr.js | 91 + src/wp-includes/js/mediaelement/lang/hr.js | 87 + src/wp-includes/js/mediaelement/lang/hu.js | 90 + src/wp-includes/js/mediaelement/lang/it.js | 90 + src/wp-includes/js/mediaelement/lang/ja.js | 90 + src/wp-includes/js/mediaelement/lang/ko.js | 90 + src/wp-includes/js/mediaelement/lang/nl.js | 91 + src/wp-includes/js/mediaelement/lang/pl.js | 90 + src/wp-includes/js/mediaelement/lang/pt-br.js | 91 + src/wp-includes/js/mediaelement/lang/pt.js | 92 + src/wp-includes/js/mediaelement/lang/ro.js | 90 + src/wp-includes/js/mediaelement/lang/ru.js | 90 + src/wp-includes/js/mediaelement/lang/sk.js | 90 + src/wp-includes/js/mediaelement/lang/sv.js | 89 + src/wp-includes/js/mediaelement/lang/uk.js | 89 + src/wp-includes/js/mediaelement/lang/zh-cn.js | 90 + src/wp-includes/js/mediaelement/lang/zh.js | 91 + src/wp-includes/js/mediaelement/loading.gif | Bin 6224 -> 0 bytes .../mediaelement/mediaelement-and-player.js | 8225 +++++++++++++++++ .../mediaelement-and-player.min.js | 27 +- .../mediaelement-flash-audio-ogg.swf | Bin 0 -> 303685 bytes .../mediaelement/mediaelement-flash-audio.swf | Bin 0 -> 4350 bytes .../mediaelement-flash-video-hls.swf | Bin 0 -> 92754 bytes .../mediaelement-flash-video-mdash.swf | Bin 0 -> 401418 bytes .../mediaelement/mediaelement-flash-video.swf | Bin 0 -> 8017 bytes .../js/mediaelement/mediaelement.js | 3827 ++++++++ .../js/mediaelement/mediaelement.min.js | 13 + .../mediaelementplayer-legacy.css | 758 ++ .../mediaelementplayer-legacy.min.css | 1 + .../js/mediaelement/mediaelementplayer.css | 758 ++ .../mediaelement/mediaelementplayer.min.css | 2 +- .../js/mediaelement/mejs-controls.png | Bin 0 -> 2883 bytes .../js/mediaelement/mejs-controls.svg | 1 + .../js/mediaelement/renderers/dailymotion.js | 394 + .../mediaelement/renderers/dailymotion.min.js | 13 + .../js/mediaelement/renderers/facebook.js | 339 + .../js/mediaelement/renderers/facebook.min.js | 13 + .../js/mediaelement/renderers/soundcloud.js | 307 + .../mediaelement/renderers/soundcloud.min.js | 13 + .../js/mediaelement/renderers/twitch.js | 375 + .../js/mediaelement/renderers/twitch.min.js | 13 + .../js/mediaelement/renderers/vimeo.js | 406 + .../js/mediaelement/renderers/vimeo.min.js | 13 + .../mediaelement/silverlightmediaelement.xap | Bin 12459 -> 0 bytes src/wp-includes/js/mediaelement/skipback.png | Bin 4245 -> 0 bytes .../js/mediaelement/wp-mediaelement.css | 1 - .../js/mediaelement/wp-mediaelement.js | 28 +- src/wp-includes/media.php | 5 +- src/wp-includes/script-loader.php | 119 +- .../widgets/class-wp-widget-media-video.php | 4 +- .../tests/widgets/media-video-widget.php | 4 +- 69 files changed, 17581 insertions(+), 99 deletions(-) delete mode 100644 src/wp-includes/js/mediaelement/background.png delete mode 100644 src/wp-includes/js/mediaelement/bigplay.png delete mode 100644 src/wp-includes/js/mediaelement/bigplay.svg delete mode 100644 src/wp-includes/js/mediaelement/controls.png delete mode 100644 src/wp-includes/js/mediaelement/controls.svg delete mode 100644 src/wp-includes/js/mediaelement/flashmediaelement.swf delete mode 100644 src/wp-includes/js/mediaelement/froogaloop.min.js delete mode 100644 src/wp-includes/js/mediaelement/jumpforward.png create mode 100644 src/wp-includes/js/mediaelement/lang/ca.js create mode 100644 src/wp-includes/js/mediaelement/lang/cs.js create mode 100644 src/wp-includes/js/mediaelement/lang/de.js create mode 100644 src/wp-includes/js/mediaelement/lang/es.js create mode 100644 src/wp-includes/js/mediaelement/lang/fa.js create mode 100644 src/wp-includes/js/mediaelement/lang/fr.js create mode 100644 src/wp-includes/js/mediaelement/lang/hr.js create mode 100644 src/wp-includes/js/mediaelement/lang/hu.js create mode 100644 src/wp-includes/js/mediaelement/lang/it.js create mode 100644 src/wp-includes/js/mediaelement/lang/ja.js create mode 100644 src/wp-includes/js/mediaelement/lang/ko.js create mode 100644 src/wp-includes/js/mediaelement/lang/nl.js create mode 100644 src/wp-includes/js/mediaelement/lang/pl.js create mode 100644 src/wp-includes/js/mediaelement/lang/pt-br.js create mode 100644 src/wp-includes/js/mediaelement/lang/pt.js create mode 100644 src/wp-includes/js/mediaelement/lang/ro.js create mode 100644 src/wp-includes/js/mediaelement/lang/ru.js create mode 100644 src/wp-includes/js/mediaelement/lang/sk.js create mode 100644 src/wp-includes/js/mediaelement/lang/sv.js create mode 100644 src/wp-includes/js/mediaelement/lang/uk.js create mode 100644 src/wp-includes/js/mediaelement/lang/zh-cn.js create mode 100644 src/wp-includes/js/mediaelement/lang/zh.js delete mode 100644 src/wp-includes/js/mediaelement/loading.gif create mode 100644 src/wp-includes/js/mediaelement/mediaelement-and-player.js create mode 100644 src/wp-includes/js/mediaelement/mediaelement-flash-audio-ogg.swf create mode 100644 src/wp-includes/js/mediaelement/mediaelement-flash-audio.swf create mode 100644 src/wp-includes/js/mediaelement/mediaelement-flash-video-hls.swf create mode 100644 src/wp-includes/js/mediaelement/mediaelement-flash-video-mdash.swf create mode 100644 src/wp-includes/js/mediaelement/mediaelement-flash-video.swf create mode 100644 src/wp-includes/js/mediaelement/mediaelement.js create mode 100644 src/wp-includes/js/mediaelement/mediaelement.min.js create mode 100644 src/wp-includes/js/mediaelement/mediaelementplayer-legacy.css create mode 100644 src/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css create mode 100644 src/wp-includes/js/mediaelement/mediaelementplayer.css create mode 100644 src/wp-includes/js/mediaelement/mejs-controls.png create mode 100644 src/wp-includes/js/mediaelement/mejs-controls.svg create mode 100644 src/wp-includes/js/mediaelement/renderers/dailymotion.js create mode 100644 src/wp-includes/js/mediaelement/renderers/dailymotion.min.js create mode 100644 src/wp-includes/js/mediaelement/renderers/facebook.js create mode 100644 src/wp-includes/js/mediaelement/renderers/facebook.min.js create mode 100644 src/wp-includes/js/mediaelement/renderers/soundcloud.js create mode 100644 src/wp-includes/js/mediaelement/renderers/soundcloud.min.js create mode 100644 src/wp-includes/js/mediaelement/renderers/twitch.js create mode 100644 src/wp-includes/js/mediaelement/renderers/twitch.min.js create mode 100644 src/wp-includes/js/mediaelement/renderers/vimeo.js create mode 100644 src/wp-includes/js/mediaelement/renderers/vimeo.min.js delete mode 100644 src/wp-includes/js/mediaelement/silverlightmediaelement.xap delete mode 100644 src/wp-includes/js/mediaelement/skipback.png diff --git a/src/wp-admin/about.php b/src/wp-admin/about.php index 6dab78831d..d004b3b838 100644 --- a/src/wp-admin/about.php +++ b/src/wp-admin/about.php @@ -11,9 +11,12 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! wp_is_mobile() ) { wp_enqueue_style( 'wp-mediaelement' ); + wp_enqueue_script( 'mediaelement-vimeo' ); wp_enqueue_script( 'wp-mediaelement' ); wp_localize_script( 'mediaelement', '_wpmejsSettings', array( 'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ), + 'classPrefix' => 'mejs-', + 'stretching' => 'responsive', 'pauseOtherPlayers' => '', ) ); } diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index 0008ed1843..33276d26fa 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -3053,7 +3053,7 @@ function wp_ajax_parse_embed() { $wp_scripts->done = array(); } ob_start(); - wp_print_scripts( 'wp-mediaelement' ); + wp_print_scripts( array( 'mediaelement-vimeo', 'wp-mediaelement' ) ); $scripts = ob_get_clean(); $parsed = $styles . $html . $scripts; @@ -3144,7 +3144,7 @@ function wp_ajax_parse_media_shortcode() { wp_print_scripts( 'wp-playlist' ); } else { - wp_print_scripts( array( 'froogaloop', 'wp-mediaelement' ) ); + wp_print_scripts( array( 'mediaelement-vimeo', 'wp-mediaelement' ) ); } wp_send_json_success( array( diff --git a/src/wp-content/themes/twentyfourteen/inc/widgets.php b/src/wp-content/themes/twentyfourteen/inc/widgets.php index ee766cb308..533f34a5b7 100644 --- a/src/wp-content/themes/twentyfourteen/inc/widgets.php +++ b/src/wp-content/themes/twentyfourteen/inc/widgets.php @@ -54,6 +54,7 @@ class Twenty_Fourteen_Ephemera_Widget extends WP_Widget { $video_library = apply_filters( 'wp_video_shortcode_library', 'mediaelement' ); if ( in_array( 'mediaelement', array( $video_library, $audio_library ), true ) ) { wp_enqueue_style( 'wp-mediaelement' ); + wp_enqueue_script( 'mediaelement-vimeo' ); wp_enqueue_script( 'wp-mediaelement' ); } } diff --git a/src/wp-includes/js/media-audiovideo.js b/src/wp-includes/js/media-audiovideo.js index e37a22189f..c71a478e0b 100644 --- a/src/wp-includes/js/media-audiovideo.js +++ b/src/wp-includes/js/media-audiovideo.js @@ -795,7 +795,7 @@ MediaDetails = AttachmentDisplay.extend({ * @global MediaElementPlayer */ setPlayer : function() { - var baseSettings, src; + var src; if ( this.players.length || ! this.media || this.scriptXhr ) { return; @@ -803,9 +803,8 @@ MediaDetails = AttachmentDisplay.extend({ src = this.model.get( 'src' ); - if ( src && src.indexOf( 'vimeo' ) > -1 && ! ( 'Froogaloop' in window ) ) { - baseSettings = wp.media.mixin.mejsSettings; - this.scriptXhr = $.getScript( baseSettings.pluginPath + 'froogaloop.min.js', _.bind( this.loadPlayer, this ) ); + if ( src && src.indexOf( 'vimeo' ) > -1 && ! ( 'Vimeo' in window ) ) { + this.scriptXhr = $.getScript( 'https://player.vimeo.com/api/player.js', _.bind( this.loadPlayer, this ) ); } else { this.loadPlayer(); } diff --git a/src/wp-includes/js/media/views/media-details.js b/src/wp-includes/js/media/views/media-details.js index c65e8697b2..91a989feff 100644 --- a/src/wp-includes/js/media/views/media-details.js +++ b/src/wp-includes/js/media/views/media-details.js @@ -90,7 +90,7 @@ MediaDetails = AttachmentDisplay.extend({ * @global MediaElementPlayer */ setPlayer : function() { - var baseSettings, src; + var src; if ( this.players.length || ! this.media || this.scriptXhr ) { return; @@ -98,9 +98,8 @@ MediaDetails = AttachmentDisplay.extend({ src = this.model.get( 'src' ); - if ( src && src.indexOf( 'vimeo' ) > -1 && ! ( 'Froogaloop' in window ) ) { - baseSettings = wp.media.mixin.mejsSettings; - this.scriptXhr = $.getScript( baseSettings.pluginPath + 'froogaloop.min.js', _.bind( this.loadPlayer, this ) ); + if ( src && src.indexOf( 'vimeo' ) > -1 && ! ( 'Vimeo' in window ) ) { + this.scriptXhr = $.getScript( 'https://player.vimeo.com/api/player.js', _.bind( this.loadPlayer, this ) ); } else { this.loadPlayer(); } diff --git a/src/wp-includes/js/mediaelement/background.png b/src/wp-includes/js/mediaelement/background.png deleted file mode 100644 index fd428412ae26af13dab448ec833b1cb603e37ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G9-c0aAr-gYoHrC?P~c(M$o@YsOF*1w?-55oQ{94SCl?~X dlYaFB3@*Kl;yd0~_5jUf@O1TaS?83{1OV-(FBAX( diff --git a/src/wp-includes/js/mediaelement/bigplay.png b/src/wp-includes/js/mediaelement/bigplay.png deleted file mode 100644 index 694553e31c387188b6bde397a5200c212aff2dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3001 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 J;~KO(@jp;uhBg2I diff --git a/src/wp-includes/js/mediaelement/bigplay.svg b/src/wp-includes/js/mediaelement/bigplay.svg deleted file mode 100644 index 2b7817005d..0000000000 --- a/src/wp-includes/js/mediaelement/bigplay.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/wp-includes/js/mediaelement/controls.png b/src/wp-includes/js/mediaelement/controls.png deleted file mode 100644 index f6a857d800b64264443af4609e0ebf7175593d8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1892 zcmdUv_d6R37snIh7SSuz2t|V4+9fes_1q$f5VaGdb}NdiM3cByUnLZ^M^$TvYH6+3 zZtmo)edTp*6v8gC|(^b&SOo{wj536 z1dNZHlfT#k*&N}fAhCEpKEA0rt62a5cx-KsH)gZhr>CdK$Hy!d>*(m{=g*&qhld9T z2mAZ`dwY93J3HIk+gn>(o12?VCUawBV|{&nZEbCJb@j)OA1f;>%gf7)i;D{j3-j~y zb8~aEv$HcZGt<-4-@kvKnwpxNoSc}L7#|-W8yg!L85tfP9vT{AFc<>^1O5H|eSLl1 z-Q8VXU7eks9UUE?K7DF$Z*OaBYi(_9X=!O}Y;0&~sIRZDt*x!DuCA)8s;sQ6sHi9} zFE1-AD=lp(DJgmN>Q!-ZaZynboleisFE1!4$ji&i&CSip$;r;ne(~Z(R#sMKX6Dl~ z3Ntb?($mvZQc{wWlM@pY6A}{Q}azH=;kx2CS5AyY;`1<;KdwUZI1W!*-4-XG_cXu~8H&<6z7Z(>NCnrZo zM|*pFJ3BiZ4rgm?Yhz<$Wo2b)X=!0$VQy}I^X5%6Gczm}Yhq%8!C=s6Gzx`6B9VrM zh6V-(H*Va}*Vot6)4O{0s;;iC&KY`IT3QGM0uG03YHF&fsi~@}s+@5}Sy@?0Nl8&r zQBF<{c7{9@3YC?Wm64H=mX?;1l9H5^gg_u-ViICvVj?0U!otE}Fjz=P2m}HF0DxcW zN>Glxq1syFIA`#G0pOSvCe9g}Kfv@B1pokvoCR?BpYUItra0Buk%}UF-KP4Ih%mgb zzZU=w*MMtjz!Bwb*F!iC=`#n8be9@*o9qQJB9QKQ!7#pLuOJfHj{-yCbXS_I69E7o zAQo+ecYOTSp5OU`gXsCo*>52)lh6vn8Kw*N@0iYb)3|u0uPUYjPIZ@+Fb|Aw;YTAb z5*xWH@ll7~EM`~`)BMw-YTd3_=zldfr+26G^c6|9ubO%Xt;J`06(dSSt}I(|Gi z-t*F1?mb=zt7(_@kXPIV9`QVZ_h_=)jyh07AvR3;X^zG5ym@b#-hWSSIn=C%#4L8k zRk&*G8xRFvgjcG~)1kFGlmk}OLyo{W4j`6Fzxc*HS|(D|o~1m@SscZF+L z#~vvMstrBA_Ut3ef#^Ibr;l=euG~%w2lKfw#MAo4XLW1*>dM6xyEb>7=|IK#WHB8` zjjHs6@{iuC^4}_Hl6MiQbsB1S)$V7}MEUE=$bbJUu(f>*Q_KVT`;GYz_5$C1(R%6r zb#HJh?!lJ*kOI<%MLcD~mNhR`P@4Y99ItYSw=Vh1M^^5ka9jwFIa@j(%2fcPT#Oa; z$P5qkI;b^~7@g$4e8@-<40LSip>WT}^x%Zd7+l@7|JWO% z&1A^bwBo;5TXcQa-8&$H=Tb!$vr3zbzQ8pu%r5jL`%DPuszpuvua(L60t1TbgZCko z$rV?gHL%rBURyr;Y=dm7eHvM=&>StyOr>#g`B7x!UbcIrVl{)GdZ$T&(wg@_sC2dr z`|qxGJHtOJe;$JFDyUfJ1H_VOq`r4y*%!^gAc|g&r7g!IlJsjXZlAOaE|G^qD{dtaisv}19gi`!-Cwlo2@;UsMHwBU z>>3{ZsS_za)C)>Ab3+%Ak?h9s5*Wfjlxi?aW~MA$@F`^apbn~d)8K{l cc \ No newline at end of file diff --git a/src/wp-includes/js/mediaelement/flashmediaelement.swf b/src/wp-includes/js/mediaelement/flashmediaelement.swf deleted file mode 100644 index 8e689ebd6222311ec88ebcf816c45f90464afec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130054 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 ORu)CHHS>IPZ%m&2pLH@*6tG_$<% z2~!eG`{xTcds73v_Hk3a_WJ;PCs5@wv3^=WmFI^{rhbOYr%432gJ$`s`L6pJ?j*}< zDG=4U&zgD;Jfv2LMfZnI)wh4xEZ--cbP>1rG6UQi*}vreq?x_DkvwM)svjBpGUE;H zx5dw!r1rC3YKIk0+I7CvJFonLChK|ndGlH2FjTy9x!1{wdgR`atIc~;n^~Ho7LD}9 zw@&ubNRO>=BzS_cn^Hv!?iWp&=G_-biUty}FsY=ksJzoVUoxfQ1W9AjeVJ>48GFTq zqei#-s+sNPM?5$#x?kg_Fq7kTR(cZ-oEW?K+HrruOm$P?FH+%4RX?LZ)yfbD8Q<^C z0?jX_yqGOD;L~f(-kRo`k&OL_&xfDDO0A$IBq%NM4yO8(M~L$+6-U~me{c{sn;-qb@0hP}l*5Zf&CvaA6(jAx zPPv{<)l21r6$dDfyP%#F!tbGw3~1i{eN%bRwB0`-f=as3)T#a`sq*R{t$IR!>Tg_6 z_0xRivao&J8)IoH{|BWeJ|rzSF2n1?vZh^>HElx8YqGHA0WOOv+(fv*%EnM;+rKnr zwv|=vySht$*DT+Ql!;Z${VQF6fkpRkOu-bUssC0olsd@O|D~?_Wl$`+e`gko2jRj) zmkyGu=i(oTwV3K8v41iFuA}ioBl}=C;x<(J@X$WcZ>@d(BNht}ufG=J5i1k35N|=Mt)wx(lE$}%*l|ArdKO__SH~bq+#j%H zwh6jFNGNH?$(nrI{iKy`O*^TsG?BRdA#StvEWHk&`awRG4p!l+8!un=?&pBquctkf z+i~&f@}MXpDY~#*=)#oP3ku!3UNGOH`EJcTezg*4yN&p6S~USE2doha?8-X!(eI8& z+0to)G=52OzS`Tn18Ie6S76Io?Oi=K8|##XAbeTGV|8_P1@s5kZ&y`j3e1PLcUH{k zJpCSd535TL^PzHbyjjZAtjp0XdG9ltg=t#ugHg(^(Q*vOlWJ@8L2R8sW)N*L`NLr- ziW>lFm*uhlf$|ahaD|^*up|^c_R1Z%zv^GvWI@au{(iB>F`a(lyjsBlf<#2? zGeWX2k=>zCK;ojI#;r`$CXM;Trun3$e*Nm#(Hd=@qDKun9x{BD1Sl+18hu48vx%a| zqEhr&Leayo6+OfRQNFjnKZSLF3aS2d*|~Fn@;a0GxA*^2_0+F_|G;r!%J|;VOtho5 zdkv__a$myAa1|WC0J^ zNB7+#@Eu1bCWb3T!rS$(0h1Ik;(*-3EfZ$~LAjQ$z6MuuJ$%Yr(OnWSxb}l1gf56? z^df8B5A%FFcLj_X&9YtwhgoLEMFrpGyk~wRP>_o2rtxS30L07=%)K+e&p2m1U?e=Q z-`l7Z%6Amhor$b$4}NO_?vY;f%2b=9y!bI9AlLD;!HBH^K(nvx*ajG`QLEBM??j z4U8Vg>2-{|9KYs=-Rl@fo!~JwMQcw;)buLD!)zU8(|*FA@UoUZ^}6UfAnus z8Zc|-nlO@_mB|KR2Mckrp{AOMOf|Njcd?DREkr;a!e5y?>V*i{B18ZvlL&uh>5mB| zuw5vD9YO@`6k#%1!aIRTlp95&yek4-AjpG$HVH!5Z67P%B@$p;7DkS6Yz*@k9UH7P)br@S zvQoQ`A=2i1@DK*83?z#14-#$c!l5BS*bsr_=f$7iTmKy%$EuB(DYkPSa6>NT9NB|6fP`FTXqY}jx_{Qj|Gyxel}fo%0W z6o`~(j>N+dA5|{{c>y@Whe&)6pZ=)Ph`h9hZTyKEpS)MhMjoNCf2h_P>o&bD;`N+^_Lr7y>E*wagZ2Ho_-HzIVs&Oh?77xxZR)ZMG zgl}3ApSdKoG5w%lnsz`sgKGVQ(j&0Ac+)r}J>sx*h9lA$;z8kZ_+uJqf=eL?ktj?1 zhyK1U8N!!aRI#?4z35XP_o4sl18TxWNeX-ux0b5g6t|?l1d*mLQT3u*SN=ZT)b(-8 zYwE4i)F1wm0_xaSxONuYSmByI#dhx+HCTKyRXqosM9FjWpm8|Q%`XYO1-h|ii}T=% zj^G(Ogx827Q_g#+<{la)h_UUUfKy5@OT-=ZY1y>PeQVqj&<n7E%`}A@vrwpIwq6E|mt38kt`-|D(Be+lEW-8r`WUkkhg%ua`V)eWPQU zYX$nP!I_&utta)=opquRtsz&KxvZihnr!K`NMt=trcy7ge{Ef@?{#@w&MnKEkn!`3VKN`LA}%i^sjZ6*01#{Pkj`= zY_0T(5Kr7|s2-~NA&eblk)IO}MyDf}HgMf?= z92vGaHXPDccW29rtkIM2qt(!}fdmsf`tD*OH$^(AMEfW;v~}npM2dx=u9a9%h?5Q` zmDZN!ScRa@b_e5UNsH&bT^eL@G%LPEP>Sg4DN+#&0k}!4LT;K80#y;Qlhfi3EJIu% zWy+z`aw4!?$=db}btG0d(W;jUnO_w|5mg3O1rbXHMb+1|ZiC9N4p^OEiLudcM4R=O zuge>j>7WU;^?F72ltg-3+9Ep5f~rVQM@u+$6_M|hD9DJyMQ;#tU+N=wr;QGJ7j50; zI>W>rEhuS}>*Uu2t;7QEVgmP3P*Z~%@d$m(}=haXv{}m{h=sXFT4UENaMR(*H%1Hnr^_7N;O zilZS56AX@s82ZU-rGe!O=q)%+F+gwG=0M{cI~}9Jv3EK49>-P?lXk+fk>2m$Qcom* zvlBpw4}w6K!@kAnBNV@FcRBVwj(soYeU3fgiSrHg4v&c}e;H1|IExhD30?qHz_Bhm z#;9W?R|)gSk>@)hB>5AF?iFvvII#I(e!uSkE8c-Y3|g7j!zVaSa-8Nk!*Q159J4Qs ze*U(xqmkW_h}Oj(QGjJCIaY(m2(rLdju?lCh~s{aVUF`04?S%7A2Hh65kv2KJ8q9`z(V~#xUP1QI{72&6hM?tpo1ixQ?OK> zLP*lN3zzi^m#C;*ogx+LR18}<42%Ik)$#+IH|(or`Ssxk$Mn_p`!*wJ->TS5rQ6gg z8dGnUZSVK(z_VIh-e{1YM)}z#Kf8s@s6c#<@V!Y4B&zlbux54Qpa|dh9TegF{(~ZX zZ$2o(_m+bqd~ZGI3mf$a_I*Yh&17!bS_}>2GyX*O5|3iYER@N9j~=-d?Ppu3?CH1M zTugQ(i+~Ksb`Ex#sZQ_qXtrB!yOU^kF5-! zvjp5_Dlc^eL&@;@VN&YFP4Mv=04PT5wM+2i|)gGZrAmT z4SQ1!i-^{{FYel#+Qqxoi^$AXV&Z6zfSN^jL?>2*F*gAvi|$1oqXZ*v0!k68>lmd# z%0bWJtvZ{nTO7LE5R`#m_BL(QdS1w_N0ar*E$)=sYl-!@dwExr%9N@I_OBN!&^2&p znvJH5l7}W$@FrEUO&8^x7p0u;m1eU^iJP>$zNU-vbp>nczRycht0y$6qO0nLeo}}G z2bc44bvYl&S|z!y@__H$Yr9m2lABa;4c6=5M{e8?>{6K}B}J`aZBB{GkQ$3%9*;{; z8^^H0`Itxs{gA>&A;J&n2*n^>9s{}aha^HkWV-k0&Nm6R!W$&?!-fdClX3jlTzx|@ zB9aY&9^m!+9$egvFW?TF@8ISJ-}4Kg9gqrB=gMb(PJgBn7=vSIYh0HI${ePUkLPuS zD));-r~wv|2q9tOiZk^`5qQ6BXk`q_@``btL@3TzxnSI_j`oW>S{2d$gG8$#+AphU zMG{T4QXUn?u6y_HROog0!0uGh>+U^`FnQg3k(F$HT{fPnZPcR-$o2f)c1`fM@%Yus zA7p~vfZ)~Jw?QZb2+R92PbqTO{>alG3w|VT=Q;U&$NZzi2ZtV958SRdSu1aDKqYA` z_t5C^(-%|{CHm_8!O>I49~^C2d)vD9wr%ZgyMOd7s8C^)OR(rq2qg znF~CgJ3I4au1JE%CeS>c%HTHU3CdKs4f5!Lnc4B2sQh8Uleu;!H9by*0(}j-+nrR8 zp>$e0i$}+24hb=SaB61kac3Mitl}HEr>nC&yiytKi4#>>%fv~0?;W|$c6(drdxlD1 z->{G-=CvO4+N3dV%$d1sNI)meYi;JWj&;c5D}{Ksl!?@`)V*J|KtS75qC<_gq?v0E z4SVg~x_s55*~82CD{0cK?E$w9I^7&(z*{TNUvf z=50ksZ(Ge)|GwaUyxAVLf#BTaooQC%LNCBs{_65&fT8sq z@YS)N`?hV#AF^wV+D#nw9I@?2?G6Lhug@uh*J=Am#1`N?8@waP02U3?hal4w1Z~q- zfpWh>zVo3<;s-xFfR;aampp^hpEx@kuMWK27cHSn?88PGWpcV>TX*2;)5)C z#?Mr=6Aqy4>>Ff>ZF?_0QU_-XTn z)TY-QHzCN`X4P-NTtLMS(Gnqv_> zBo;d%EOuT<2OB;jr@%hz28rPkNHJj!<5LMPQ1FXiCRIGnz$rQs$4iqPkE)=c3K|rz zM|Qkc1qoDv?H)~S;?pO7+&v-sU%-hQO>;LXVswYFVV9Pc1Z4cw3)xNbj}HbGmzEaY z)B5fvm4i%OD(7Dm31m4)RR2-r7xczm(i_ogReE}g4NVuj`MR`>J2q@2OAZ>TQc*p; z75x|CHL=WQUUDg=;|-nGaD8`5$qwQIv%jQk&5=8(&J6RNel!+qz;t z;8jc%4Mg9~=;x^zAxA%SJ$Gvn*zmah1%9Qeq)I+wNQFe1Y2@ysJXJNch!i4jzoZ2x zOL6;U?nN&U5?+w4s8S{mZju2h2#8ivW!cS1N9w3hXW7j!B!d!As5A)(5uj_0J92Nj zA6z8&4=aTp+kwmXBSQbu_yq@zz_E*`L$Iu*ExG#~V|*cQd3Qey*40AX^zMEH5RQd7 zg-UH6sX_@jK$e1h)DMdJP!&2WKTc9fwo4L2{2|5-?o?XJEuzVtN^22>^SH&GN(&0h zZ-X}XE%=U-w+@*IJ7tE%%QL-Gro?WMr1i*L*(tyB2GIX^XENcrFpLy zXfll>mJut>0c2d-%~ymowv}UWYR5v9Q=Bi-#`43kDI#Q^>`DkfgcK73=oZ;kZDdG&P!^g?!2VD>RXpoM84|&%Ic(6 z>d;GSr5e4Yyqa8>R0&Br?ys&+YNa~8q*iLwOUkR%bxB3(dau%9(_uA6zd>(HN7Uu7 z(?!!I>hd-EW;&{L4FieXw{NHouv#S^Vls?ChseHO1w8Bp2w!0V@v|?r#eG!f zNfz!jUg=S}kJ33V1V-8Selo81^s1aL-iX;raN&%+5R`17Z z2z|BkZ=t_7*pF##k>NALg8Jdf9!yfceV5aUmAVacFqM?l8YnwSd|VNo1M9Wwbm7nD_wqNa%_|xWoCACjF*M4TO&b= z@y}LuRMJ2&ay8dly()pJOm@yop#g(U>_W3*FoxEWyt6jVv8TqSGFTr>!Y|$`kF*Ry zC7!x6Dqh(OpD4okEsGl_6oJNSSA8x$GdG9jnP#Myjp3*Catd(_Mr4?@j*nSjdDX0n zJ}c&|UTm)_q}W%awnTSndH3}e)gSHji43WFKYyf1>FmsaE|Z$xcx&cYTeC=Yt466~ z*9C5u8FDP`B1r?w)Hx=Oj|4!*G50%Wvtzf|G9a*C3mW-KHaew6`P~wNGjWCB73K{7 zoD*e-$M7@FexJw(ZFRzkNtiwS_d}(K*C2HB*y6}+QU-j2EZd|Be1a^(_?-qmL6+?r zKQoM|I@s911fjc={07{#ghWx$4MFCP;SCd>?4mn9=!kBMf62|vL%quJ1>6}EA^d!)J{b%jYRKC}@Mlq*y8nA?eaOwx0ldK!m@9Z3Zq)CAd`*wB49K?I;Atfem=# z=AzK$tZ|KTtAd)02Nfs*wlPJ5&VVP`ZfOkL-9v1pfgHvUd*CIvN&LZ#81CM9G;I$V z3jBuKeer&E`&!uDg+@~Pou}#&j5gs4%FSN z0`Ds1^MHQ$UVZ9UNrc306PaV{E}1*TGrl+=Iz&}}tG;+tM?YRj<%D`qT+Q64t|DBW zj2nXy18w?K0KR#(HdJ`wY~f;9$7&iYE2rss?Yv4r?0_z)D=NT!KwZfe?Ll=_!dm~Z zERfL~IPo=aTu(>k_ae3mCM%)2bUhv6@eO(ISI-`n^ol1)W3N^o zLx8ctiYLaivoljTd23eI!D3CV?=>&dcbmV`Jbyu-8ul{KCG7U?Hw)7Edw<-pM<=Fo zd)6(9D`{(^`jxaT93ia3+6s;4u<9L~xOye9f!{x^q3SF0B8|^HIUN*T&1GyPDDV=XU@a4USHyRU}!TD@R2dJDkxf2cCg`xe6T2ke|a|P_aZi2**;bE@epR z=Vo+`A;e{JCTn7+tb$5LvsZE}r7a#jGrV%Q9({79mJ005J90tWI@>y{mkpeiFPZUU zWQ!K8rVcb#!WltwdTa2S*kY7FKp}=D+Xpf7S6R0^@vym7DpTF&9>CICSL~?o|Z;Rd20xIP4n-P*1N?=N4?0&pywDf8VaFs6h@hu&#rIR`Jbrm$6nIp8l zqgPv%7ov5x^%C6G-dO|W)3~w^AIct@g6r$$IFth)#Eae2-P2O4u2<^2KsfdE+!>k> zG=`R*N8cmmw9=UChZAH}HDlz+6VN%Q)-+SaERN!z$fzemOl78N%Joro(=7)NdO9*X zI9`aoI{3)t444zsV^0mFQ6NUc7_tPrVb461#sqs_VjK1Im$h%!ngR1xn z4l9?L)0d%2w4Olfn&=9Yj-{@s zl+MX8xs(Z}pBzk$&CSe)$e30iDU-QK>T!8)sMugaiHP8262!91RO+e9lH9 zj3*S~tiEPU=?#RpH`uzaFm$DOOJ8bwX8NhiGgos3ow?ZZ*xPW_##@%%-Ugsk@uLx( z&OE7-4i<*HlRKv1Q~+J^#{VItJ98D%t?4g0Mb_&Y5GfAeiG_&Z9|ZU;uq=Tob#kV3 zQX0+0ud1&Y0ya0XUz(U|ka2z~qaqinOZ`GcA<08}Vm$?-jC1u$PVFtEvei{VPaJ0( z*({i2f~!)Dmj0}4Bc`Ndl#$`sdZXk8ya|;?iMk$y zWLNbRUA{f2mmZCrqva`K^@f_Dis(9r8Oh=aI7n&LMag(3Hwh+-_o@Xl2H9T%`Q+@gxk3JNP|*ta@%n-c(Rt<$m5PeD25pyM2J>?4jn=-5Xc8+WM3 z9rJ`^-{;t;92=C0vq)*|^NxMNu^({k2Oaw%#~yX;F~=Tv?5tx?I7O3A@uXwVIQE=V za@Db)bnI)6{gh*Wz$yBmV?V?DpWyfbjvwUsB*$ktewgD&IDSkv5&Z220%3Ra*8Bj! z+thC?KVX&ew>|&p#Svd*r)k|&TpGz>3L7VCX*~a!uXLCAObYDIfB0i;ahiO-dlK?! zfByTq-4CWhpf!)Tw^H%SVRqzyRER5IWV2Dfg<}Ut14kpr9*(^n`#738S~%J{y1I?} z9;2br@Rir|vI!06vm+5mb$;PUhawTg=#fYSZZI%gus{MLUW@B zyJ}y}fNZJ|Pnnw#J=L+@+AJ^*vU>?^5e*V^%ONyKtgXnIaIOK$GLR3zF>edwffj(6WQ?zd%Q22k|bYn!|IhBg~tfbP7l*L@S zA@Nl{)o15aY>e}1(GO(%%GsMH>n|3$AKaTNqAC4i2K^=B7SNOrO9MV4?14w66-QK~ z3NIh%4osjaWFWZ}O%|~-rz;5?ruRCM0hOka(e*C6Fv#jL*p^!clCKL(2@~{vjNlenc~c)_kpH2 zTHZ7+`F#D3`*TMA-UZ9f0ZDQNjT5#?eCA(!WZ|`8R4M3PdF&E!a>Q2M^$CX zLZb;w#EEHvb%k)ify($*LyhfjhTpGI2iKDo^wVQB7FZE|<$NYt1dBV{k-J4He%;6( zY$|6y-Lv#``3ao0xvv@MxcdMpdCkZdBXRwvkv#-Qh`7H&-27pY3SJtA-&epuew zLC`P#?*C>arn8*_aPYghf2Fl~?!IoIsej|@O`NTYY);#vM6@jm8Nv<8QGT#L`ZX#` z`%MMwz){vquj7j(Tauf9l5|O=IjGEj(G_nUUdg5at_fJ5_D5ELyxE%iZ zGCuW92bU%YWqh^2aQk-jeIyS6gjAN7_IFpO{a1ywL4?q0|IMnj-!xucPW$CD*doY! z|B|$qs{TDmqv(himBjng#hb+D<}ZxI_i_0d7$t)2AnIZNDvfZ=__p!a#@`voj^myJ zrxJfEYKV074@rYRA`K3YK+M>s*#R2l_h}HL-!wjINXvhW6>GONdJr+g($mDC!?@SK4sDcl4Xoj8RehG#Gf(o84yVYZ{a6R z49np-?O{Bk3*A}-iX$bA0#HfMQ*Yu_z2|_0EA<&8AMoE%yv}$F-`kB#3j*U zk@yHWQ!i%ruM_t31eVB1uhd_H>S3r?x^KXc5)=7SOw^1Y_1e3TjW>;tgIK`F-QNS5 zKt|&4>ntsn{~6PGCEy4$mjB393W=;be+<@u4CYF2F#jKB_P+SP)iI+cWA2}-@%?{F z(Cx2iA$_tXdy*T~Hvm7NZ~P6vZ>W`wvI2F`nLQS*lg8HBaKW!pa+2{>i{Y)jKj}aY8~(=yRqPLf5ggm zT^}40bR)nWe$0x{b!CyVZqmPh!n*ZZfCNOMNW1@+>oPw%VukzdsiFZ1pjUM>H;d_mRnf~w`OanD-|E49qL`Ad@da&ZiG zR(DS!zh6iEc+qeZXf=&g$$0onw#3d<5w#ikO~sTHz*t0QU;Ej4hNc#K5@DG(ZiYC;|S9p z%}N;_wNRuq+q+7#SEr_OW3!pe^k{l+Ix;+Y8I$ybSCL`i_NBGWEovDtv!?oa(6>eZ;W|9ziU+z^EAauPx(dwkX85z0u1+?y zr*D=Weu3#O%&^RCq0jt+=BBT=ywWddPP%?!11`Fwxd|H?P2GVZ4vy*Ulukc%{_IJe zI>t!CteMWtt@g(33xVA`JuEDe0^cb-DgdD9ogP1|RF3^h5?hH}RgyfzXb^e1U>D4W zM4J-8B@#;Y{E*@2g_#TTsI_?b_@dPb{ z#baUuliTSzqQ!u%y<}}Z?e6yOE?cV3?(S@FMPwlrE10}6UA>fb;2}^_r!sRHFR((x za;OR~G(?FGE7WwcN~~~KtL_HWU|sW8h3;6xib?CG9?*?ZERv7qPvSUX?i`Z%BK5ko zYi71;onT0^&v@6f0al8g?*xq7)!Ox5&BgRLHCJBe3N~s`P-UgQHsZkt;cBZIb|zM9duRsaa^olzOissAW5R-ujc2AOGvj@c<3lQ!Dw)+TZYoy~ zxl^fYYIJx!boh~KoHC?}^ypW5?6$DPH*fTwH~ti>yij^^h{I6cv;jX}*ZVv3;x~Y_ zek+>wmO_Tk76!T`5A#@+sJM_FRSThIiB+}c3Ll1#JT$GksEV*Gt=L?6Z@K$Y7Egk* zRyGk{so$WyBt2x=`Mkx1TEd}Ae2AGeCo`)wd1ltH?%%@I4I(j9vt+qM`tvkj=`&39T!_xq_@{1>t-> z{B@aRNCB4@gcR#=%&>#3qyx1*HkyGPZ8E+F zv>k}9Rgmr0X>E?=2@YWa41Av}hc7@4F}G3`M{=Bb#_kTr#N zD#Y~iTsh@++Sv>;cubz9+d5*ye|~mSe1qz%A}@n-8)ihD)v?Qz<+C&$VTV$Xlo3g< zux9zysvkiYD>duQIesE@F5^K@n$?-!IkX{*)rm$m72z;Eu+Ir-bKiDl z@!P44e!G?3FL*_L0$Buvcj$l<|TwTH{YP5INOPWo*4x8Z$0-{xkXgl)AAFsNm;{xGHBcB*o-2ek3-xk%|LG}sZEPWZTtZ(wRx01@}ZG^?uns&zNDj^HaqUg z#Np(wp*Az=AS@Y7HtNgMiKEGwz8p#%QfR0g>tweCc=_Uh+GYVi|3vfZ6bj4Uk0iso&1E!==h4k@Ni!;b}6RO!o?6~7-GhTL=S@sWn?W9K8z!FT`WQv zmAnr-hw%YVruQ{txh1|{XbFMC_9c1+fr%n#z+9UGMupj39 z@7X$mCxrR47t3)!8oVmqt0O`5q8oX#IbX=P13}%(_Bs4SdtCR(dKT`v<;J{N80>b z|9{_`nbm3$!nG@SJ8x#*d-LYaJHGcFzwd5p($n-k&(NoQ9dYJ`z~=SbQ8A_l0H$uD z&dx*B5h%pW2DDzddIv1_J~?>{JaVbECW~A(USxXvS^O64!PvgERHw^!ouY6Q1=+_< zaWw*wDNZ2!xC!O;46@je=!8FD+MDSP2G;?z=XfDLz##e?W=#f|WoxX-02hU+R)_Hu zmOclF@%}TCsAUZJpTj%6HR6q5pojO8=tPRTwR^383tSE^FLF*mYLQ zr(UxWG7?nhqKOP|w%+Y}yO3j${2_G(1OD(cX2;DElPA6HyCm(MX!2-zf0vA*ABTbH zqVb@FY7WOn%(I8+Y%~@XZ~L&MJ%m(N^E@I2gk&2%EQ>4ylhztw_A8nq9tPJtaLIU| z6d(Yq$0Y3$))PaIxQKWG7Or{VVr!3@*Pcea;9j(#)A*p&?{p-c0Ih(?9pKnB_+oJg zL?t~Qbw|cfWr#v0iqJrLLZX2(KD>E8>V|X%He}_I%?gmOF&xO01Vig%kkZ69ig)<9 zq`e;nnC~F2d_vM5L#3>b_%4zjT$HrO&1&VI5#1goKO^-dEGfTC*x2oajUB;Vs>5f@ zI*=IWW%HrbzMo5f*1Yj~N&BExDlJt$s_z%29$gZ1gAmp}FKKh^++`8}hNNAvN% zcerNW)G{}IC~0};FzpabUz88ui7bCB_20=Nn`kD=fekdfl_sKSQ2`W+jbBK;XuZFu zQiO8Eun!p4{XU22Sfc8`qOW5wPSL_B_1Am|b>SNf^5zJFZT8BP#pvlDRlU3xxoy z(D=O+Iq85P$Q%dJyNv(AFwF@wcyyqJ`en4THDXbxSnDcNG;tR&t*sm! zFxDsyWn*T5u>GBM2KZ{ySr;u5APwf!|7nn}^MLMnOfFo5*hrr7IF__L(acZC+GkiaFV&F>WaI<$o7P^U zjV`dZeniVCpuvS-QF=?fFQf^tz@^_GR;<`2Hru4$ z-gk>OaiV<)Kz z?+4?yHI!n79O&LZ&==VY9J$t(T#G$nT~mdtaiy`TwS5K72Jhb6wYzU%5RUU2LUvB; zT3&efVE6vL;lb`v!QTM9TT}3w%nwztLjoDhX1n1!?1sx(#yoKjblfYPg-H|&O-rw6j*fq32JczfmQ!T&Rk<-;T0C*IzfQI@8Z}nM4ExVY%>F_p6*gBxpjF9UEe}CI%GJu%(Ctx+Tq@DD;h1lx3@drx|+Js zk!|@8hTINb#!Zk=a9hzvU><|>bPVj66Eg|>()fv4V7-V-xnM6&-hC7TI+2&ZE&;2w z*!VI|qSDgR+P<7q1>ODT_J(ZYv%{01;9jlFqf!B0*xXdSA78$YntF6#kUl#YU|o1A zOTx2mrP~L>yN9}wdjH`1m2MC8?b(M8NQqXwf6Gv0u)9m#FI{?O+SO51sl*hTfUTC8 zIu3r*ez5hR(0$@~8W&RyHZ?RfUd=Sc^Pw6h>+ZUOx|DFIp|xq?H5yge zBRDnnL2@HF-`r}PW!%Ft;vTA^u`S(m!L}8)3&j6>1+4j$Sm0e*u!EUyh$*gL1uBpl4PYDas1vM-3VAHs)LWH=I)Od$!B`TyZ!_ zDT`Ppnz~9b;Q{j%)5#FLd}mscm?9+@PxX+WbxZQZ8ieTB9|wdzFz=5fEU%BI)hwY( zLEL#VF*S3>@+PUk5IaGTQUY(83}uCcVbsEE9i2Fpl0dlaR6zo*+Kqh6{8S3Sev(4C zVdXqAi3x6MNvJ@0k}5rF+GH*h{t=t-Emf1)`(`DbnBZcQ(_T{2FrAf}qdXg3apE{k zj0q)nnGR)Rxp!u z*)pBXHWyf#z_F&6PeZ@WaKLUakSr$?;+btvcSbJ+9NhLqukk(IgF7Q#+mxaGecR-| z1KT|0X*sfgPk3-!K`Ls|0t4IFwk?3HBKM&wQIG~v0|b{=>j$vP97_nt^XNhySu-bw z0Fye^iFYo5JrkjSVd4$IlIiG)@jx+2DW+#nl9zv_=qMx72Xj#`|`f?h2s+VyDI$(|k3X zb}a76lTER$O$}RvsaW%pvuBTeH`KJ`^H~*SS*C;Hyw2T`f$pv?o#A~{hk;D5&&pmn z?-u@^g}^Ms3`d#9r(|a`bRhDe5@D{rCO|T#@rmX78w$z6T)q1vL;JS$b-8wf0vZbU zc6-7@gQ(5!?#@B^*6sn`)!h>w+CAt#6`PtMB)e%gX3CH(e;I5;hLlr*j?+<27zO&o zX^sV1r{mF?nUfv$^)5P2BLd%U_4Qd0^qM|wBf5Nex{e)@4p&QuH@HU*PuBv79hg@~ zCMNU!l3L>L_V4l!x+eXn{I4$_^xw<;_c8y+ng1dyD=8aNKgA@Ml$)ozy$rGu3t1M% zI}kfT<^+M0k4wc|f^q&@F0JEIfJ+;=RLP|(E^Q{El2p57x6fdo)4-)5xr3F2TuEx> zQX7}rxzxcWAy`mN#4~I4|_du=$9bldXJ04)v zLU)uih?fAf&a)vN%J~E+s=`+ZOH#xAP(#Csv}SB9nEWyOHzv(WQpmc>LedS% z2N>&=ZcHA6zmS_mNz(S@ebPs1+bsTat?j6rwxbAn2;`-t2%#RK5upjec2#TR=^haH zxnAhn1DX~JuGNmsV2?Ozu}^i>0iNEmB@C%l*48lgt=W(($$LE3w0GBTo43 zWS4N5nB~L79Umc%`6zMBqr};axnaEF4ve`LMrw`Sb+OvTk7HhmJ^8T_)>>AjGD5c`Xs@OpYeFBm7n$8Sw~O58mwRzVr zI@zh7VTt+f|&qC3!NMHF~LLik}93T!yp${_Z zLk}^62YHwgKFA}C07CwN5kknLj37eZ!w4hfy^Qcd-UnY2SJ?XjKz4;a#tQKJI4i{O z40Xy6KpuXDeGpEyudoj>KYr&}F@7(w68uI>@$&>L!|#)94Sqk&*5dagtQ^08$kyTa zqj<#t3~R=Ug>xWy3nKiHyues~V5|_aHJiuaHmD5UIvR=Y19~s<@*w8%M*HW1(AKk` zB?ra|1V|f@SAgHk#@0e~heHlr(^ikIg9F;Yxv_E>GzF4_W9!LS$uUO$XK^Tk%&vN@ z)c7!ZDRkTceD?B~AJ2hSxcQs`xFOoFLbtsDwo37$=Zo|q_^IJ!kp#327^{E{S`+8m z(~Nq$<6{0MmEM=8oP&U35`|Ef@i&oga}c>&P^h~uLN#&P+Na9Q62 zIZqhYVovY3MA|=QT7^jKOQri0TuP-Y@y>~KUtn6bnQmMNb-svmkq9i+o}b zXvnT31EBF{r;c$CQmWyZvV}+jb`_&Lk}Lsl{ZV;Mp2WVD8tG$i&^2UR5i9v zWW86S&p9QszD3g3n^{Q@iA&I54DOma{RsQV@Al;Xp!G2RLho3KEM zVc=?9JTuJ5W-V%8iLasS7w`$gY<3pw@7qw5Qt=qL0Y*)JDT;lEq(PQV(}|Dz9lhhb z#O-h6tQ59nRlaA@K{m$u0^9+M)-Q{f!xM1e;-mO2xBft@qP)ub>iut$1Q|=7bF^+?zne&U%V{tSu~!M;?C!t@wM@icuu?=9?O(CMt%Rj zY}D8Iu!I{PxHMfGUq=Q?zgvVb@sALWXJG4Lzu6&-%%3P|~!M@1NwQUh{+birvvADe?7B?)TmdVm3 zvA{v+3l}~h7P!k|f%|K*z_kFRznTrohoUrT=mSz^5!38b{XvN{E z_ZZ}$V!0U~%NtG@Uy}M0j${H;A(oymOXkv(3-7?y7{$**s)i>17GRSB5BVHC(LV1M zi-pU86JX4-{--b_x?m2cdBw-Qh-d+q9I$(<8dHbIU=!Cr=17hK5zGaPIL#}%P-@!C zhGSr=q4yg!d1PbO`Hm#Y&w;g^_BW!#y!AH!WRMIuD61%=LZXeG>4&VZyM*ok7uv-FE zyT%;BKNeK&zk%eNH{LAk`hu=sKoSr4IM`#>hUeeKC>JC9Kg3XfKn(Q{2s-xtVwgj9 z6T|#>VwjslSQSGUJ0ArtHDlZ-i(xx^nMUe)*&L}{_-zIm^+BpRCm+n1+Qb-AA?4Oe z%{e!Txix^V@ea8sz>*>IO8AhB6-p#@6Dfd(b1xW=$YSb+8)rzhHF%aELWlG1!0j1a zdXKFA9+%=S4bJ81V3-HEl^@dnhh4;#m+h##f5w>vtTuW7ey?nPPIzsU(T+o89{RY9 zHp-HrE%gHFvVh7@!Y~%L%aFChD+DF ztc;`r;ven^y~bHZlOnfE^Txfv!l>jRhqSj!&~Ab95gE8wy6DQ=&~5Hj$ozfYc#E=g z!8os2+=N{8p9SN7i*P8yegfTG|I_U%*_3YwdrL!I6$%Ez_4 zO*&k{Rnn*dD+d<9!}-5C2;>=Pvppd7=aUDcqh4|CM(y49wSu~%1>)K^?LqrmVcpR} za4PbRo3w`{?O_R!Exx*=WZn)o*2=mX%iOyB4vmKCU~~bcI&;e&c-gZc&^WBfnTyMSH_qYY zl}}jhm`=mtHb#aJWj&VzT(02qMlM&93z=%3wVBIxJWJ#97A|k)ay^$DxZKF)5LOHP zui+_&JgzAsW!uMm=V< zLMs)`$+ie3M{krH z_0Um{=IO4Ud_Z#K8I8INSrl4L2}`IH0LZj>wCDvF{bp?-ky3J;LqR$FSt=xR{E3Iy6JoIK|Hxt0((^F4d4yY2fzOyn)1d%qFfkgHDZGR8^fbMr^Ncu{ zPFF4X$W(HX+nsu2k7-qWBynPLX->Oaphg}Qz>~^YV&a&IrwA8WXGlXzfkr0x7djyJ z#7H*BFi;9@Q#(KulH+HX+5x4ItnCyUb&8UMKbFk$65H7PlPq`7ZlRM2F$H5`8gTe0 zku-=YOaW}mi$w8xu7Hh!UYbp$RSuE*xg`F9cna>Gsr%+jj$y@c_bZMh2yKus9)cl? zD+@*zY4c;3$c^l0jO+qH*~Qf;Ac?q<^TZi(Mt{ALlcLo6a z%A}2Kc5dqX&-#8rsnKv5uoY(KhKE(rtEIC)__5zX+OfW4&prB_bqp6Qxn5npkGHjk z$Xn~`ox8c||Hex?9)w=)h8RBqlu)QYntD5?Vvp(9)$Ei&=ClYW(gx-Zh~4d;m*#y; z^fO4MIeHlu0Q2t^^f4KR5@e8<>SDCB%wYh+nqM#qpE88{w^3BjE_*Rc8zn#iBKD2j zSi7(|H+u=rmDZ3CML@oxXV*m4h4~9TPPTE3Et9f9gB%D%bwhLaQlgBly~r z*%mixM8+of#7wuL{x;N)Qu-sNc8<$F7kVww<^qV$gwRyVHskSxfW=5dL(V`zmk;gPoq=MU z@vhe=-#E%3!+H7Gi6gc`p>ujR4oy4gQSCl)x2Z=ZC`{G?o9dEJN#Te=%JD+Y+yx-M*5npKN2Hv4)^U$;=m#B_O+=GH!9}j&axHh& zaaqG4vHk#+C*_wooykhbiZJ210PBO03t|v-6x;!$lS^VTSHg6_Kk`8V1qC?Tb3j;& zQJIJNohJT#n&eGq6to2Ru+1M+gy~^mJn9Owq?_bP6}NhlS%g!_=fUj4yy>Qie`C^( zZT?0*8!{)w*rcuP$zf#jw24IX*x*)I%00OZqIpyur!^pew4OZ2xl2(37BsfRyg?_= z|BP@)A*(KjbdOoF3YsbMsX7~IMcPPJtaPAaDp(Nk^cB>-^hC12ix!}kD62*HhM5q3 zwP{rXR;`eP+)>|nTn)2m(fPB$KneMU@m)&W@12?n1uzLbm#JNOGCpl-|})xs4dO4yxh{-no=)Sg{G?9+Srx_XYfy&*5+oy z8%lfU%o$Czi%sf2;vlKp9pK=}d^?Qvnc@~_sz=;& zW{CsO7WZ5^+hMNH+ z#LR-BNhBhtQCUg~AJAQb^B50pJ6@PKd~h4QU=+pV7ZweFOnCu=vpA-{0OG79#$SL) zpcFoaK^B(9JTHK$y#~I9!SG)j%YFe4(aK{vFF*{nE|!NumLlZR##g>cy3rK$tnX_p zkFS&(J+xH`l*1ldn{r@F5*~$N$zY^2vOCk$u$`^L%4W^(4s{&GbnqSFf$q_kCMT&R zw=^vQeXKT0m0(k-!8J++pdRUvAaYw%LxF86u|pI|kIlC)VVD3~9an4}`Am~8ySAzE z(%!cEcxi5L-v1iMi~Y=csu*4fV?~%JxakE=KzOrtM4X#(&0e0bzo;|K(vr7Va;S;} z6n~r^S764WqfF3WCyqm9pVMPe4SO0>#X4NzDo=TN!V)Zjs0Fqj{OMxU0#7fWONCs) zU|r7@TbGmuB^3KG?@M{f68w7cnC zU}(^Yz*6jxoigMkk_z=ehXgo_Fjfm1Xl@#4a6QE!Q4t)1;ww;SqCrF>sZ1h9#o7QC zV24p2*ol(>^mnp=%86)&whmFkawSt?T5>TO9Y!UkTQI7z?w)&T(b!!1av8({@SfD; z!n-2I=X*FiN0c&n`2zOTe5lb9z(tvO6>Bl#aj}9bf$9M9_9h~`&tb9Nfi!~oLH@>( z1`RQ9^g|`ULSfcas+8lCNTw2xq$rh4a3EB}XYxcaIbk8hkWCxN9&;eO#Xx=?UIs~4 z-h(Y!Sl9!(A$wx_V9G*kRZ<$OV7o#VU9jv6Hrkc}Ft2NGRLC?#35MERuV=(zjWMaI z^|g*5lgM6rBciXzj)LYM!-~xU%#96_hhA=Q%NBF5a0_qq);rs&o*7)lrmjbm$4)z~bSPUw`34s>} zAY;<5Q~(WueFmiK`? zciVr)8pziQw1S0FXjK}8TH!+JPZ9BHzJ*fkUyUNIXrXig5x?eNDE)IpinZc}(&rH= z(MlFdzlcbwR=Q9M@)&%(vW3!5AhM3+bpnQlNM$@4?{kH%qp`bQLM5~Ssk>-EsohGj zw)I4LyN!nDrD29mcRlziJ&fi5Bk6etbr0b=Up7K!qNcCONVI5#mJ$Kqw&fZ4B7;Ph z&@fs_F)RyZx8ngA%Ot0pNUO#MszxPI4x3~L0EdSm1?%onm{tT|V#yrZBlPMX_?zy7 z*XhefpBK{&lz$e7CH%mtL2i%4V!4YC(!IrnA~YB5-T43m2|+OJ;B{e+Asi9&y2 z$=22k?!Z#!j+HX6Ak-={4L(fBP945jx)PJKr&kzKo}~gaX=q^pRgzhdZSa(xej_LC zq;H%y9FA8eEo*6PGB**TreIby1(jg1ttm_FEX?X-UTwXWq|AcYTqZp$9i2Ui54n0OTe>iiI0gnSY>O-*oYL0T(&}3(Wa(qQ0%==A`>GTaR*<%~ z*lQ%AmU>0~O0~p#kdl?zAMM(bww18^1jj>4oRZ=3b9JE>yqnqWYNDMkhkZ0fa7zw) z%#GBu&>39qNNs_re-#qjm21e z<4TQ$9+d7gYwc3*%&}70APmr)(2?dJ6t#T zZ-(&B^uwg)gi@?7fa@*u!$d^53ja%aTrDKlSGp)e1#sXxt_HYT#nsK6*Ku_#R~xt* zUOS%xw?a^ojj+DtKD4f;c72eo4C4{s}Y_R;yFV+tCeT9 zarFRK4|4TZlWXmVgp%BeYpiojF1VN}6t!5Z_g4 zo1(dqA_>uItvZ^AD3&bf@>Xw9R?R0b%jK+1K$fs@$TVbV~e(>znCS9 zv4?OQTVvT^!x{CF5?UvPti&yz<2G7pv89F6yx=l!pe2e4{IpPuw$MltMCC)EI_VR~X8hH~RE4eGTnzn9;A7 z`p|sC-UVY9av}@oU~PPul!A~aM0uKs&}b$WMI+HbEySH@CB{Ts%Ev%8woZU**(VhD z6mT7lTlBT_dbz%i*oPKY9T5KX^=AuWc%>mQIGx@;P$fuuKwlqs>gCA*@jnmh6>-H^ zM?x&)kiMY`szn^MM_ko6R$V-Gd12Uz8;A8u=yN$2tNNWPK!Bci8bi>sWcqr&s^}t! zw^;QUhm1L{S1ssO(5sG<9IJHTUR?+>&NzaEC^LaF zIZC_?O)xHOphmbcNll$^95>t7B}1h9d(!JeW8u?XVbH(3!obM9!gf)M?WV@sLym^Q zQU$yBGW-+46T>MuK``#FhL;g)w%3V|NZy}}H&Q~=ixQ-B#+y*5ngVof#P4~Dl<%Hb zjW%o}ebv#v*RC;+Th zlnbMz@}v_SU-DD5eo?PRA+@#S^rB_~NzdZ409bsGRiVnRMdKmDUh+0W(+bdgdL7iT z7RZR_7c&iDb5v6{s4bCe!bwE*5S)5EUEdcc#E4t6}^ z?KTnhs?Gy`uds+Jj90s8W}vzNWDi|HMPjR6=Fu+Cq~~0KNsq`$E%f=NoPf;}IiImx z2RQ*;RBXW5W*^2c1}wVAml--Cd2_0Xx(QwpZA+Fl4&jd;1IB~>iKCc0z%A4P_LF)n zy!})!=+&ei>n8KHUkGmB!P-j=!`ggI!@#1XgUkUNo9czSNhzvr_W*aVXA4UzIA_2# z{1(%zqMGQx-(uALU~f}JX}voT{|;(^6WNQQ0*_nKt+2A84jk2@Tj^McQ4L!gks-SE z!QriSv8~7y-731lckrV1LIpw_kzp7E5JGh77a4jrCamvK|FCc};eST2g3lm4zb5L6 zx>0rmnH+tOk;VrQ_rMszWdhWLNLYqLJH=7&kQ#xmBx61%gS-xNcwlxH%nD`zA&jA~ ztrL^1fc{)BCRs#jIBZA_2edBD(U}|#pUKfE#O-H&-E<%8Mut=wP_o2dwd ze&U2@FX2SFxI}=!=vzyFHck{7=H@QLi2^y`kbB@&4}eivPF@{O)b}yqS7=I;l>$%$ z(P&Z<(yT+C&YeShca0A8-PT=_u^ls67)UM%HHR_^fD2C#tk`jBSK>_OK1w8)Cr&jW zG$I5MLJ$R8Nckz08hDAYko8r;=3UwUJb7^d$g>58kvn=f`Twv_b3{hsY7#)dO^4-< zlI9`=M5gnA<*r7SJ4JD#1Azy$IwQKVA(#sUi3$CTU10?tmP1ZBxfn|vQ-ZCHK~%(q z<{;$hsnl8L(b?m7X4&^TcXX<=$4|mTLrbu!i9_TI{mnBmW4ZL&k)}VMenYfCswa9m|XIe>>(d4oT*bL3- z0Oq@eb~9z7)h|PcvEfaKH=RrHDbwLov58{@z#wC@Adf?4Jv{}9G{JkY2{fRHt+307 z7FBF~2%e~q02HO~_)LDr4yk+K`Wqq}O9l8JUeP3JkDY*52q=5iTP0Wp^x4QKaOnzg z69QMCO>7M$PM^en9q=W$dxkX&r2Td_Z1Ww&4m8#0rHNAnLt}MYd+6m_()N6RiT?(F zx7dr+6k`wI+G*}YO$E?}j- zTp9q8hY4&$PHA$hV*@CQ4eN2XsUq3x$lm~|LyojD8NLbkE0en%8>+y%D$L38cs3^o z4-6d?>`Gq7)~rQXhYgiwu8TgTRDaKj3-2p=Y7pu7Aa$164U6_JBfG}IgAMuWo0n#K-^3ZTICptU22R;D64t}UUil+ zgBsW1^=GZu2XPMC%}M0_bF>#iygaCsQktE@lAK@3{w0%-DB1xR#oXhFa~Pb97aOo2+rd{2!dR*RGSA%;qw zz>}zyIspMMnYNkJQ1`a}oI1u<@&ns-K8xv_CQ)L=iZ5+UF0U6r6MW{9zP? zbC)<*gdM(KD>Py8{P&2=BhI=Qv=CvOPgw;LHqPEBG768iadq}VyaHYYT8Ne2CySbd zPe+2kjjaRy{5WllxC}<|<5myYMNPMxnp2>@BK9rJ zX}8QR&T0GSsIa&)`!I~QP)HmPF8+e(rY<6##OMI|eUSlb0;9k!L8x}Ys`((*yqrGz z5OstD^bQAQqHBk-1FG&h$}I-k zsBl>m2Jki=fvkYd=IjXY0JRMrkAq6;2zY=|Cis>e0T(#9qjZ&6so=!h4VFcxR;p}@ z+og#NR2-+P)Nt596v4gS%BnPC0hXZS?8iijKdAr<7%9&<;eoWjY166RrocrLrb0yOX{Xa+V_)@Vdl z(l`Wohqb@NxL^y|*TOTlyf~s50PI#UmQSDfqu`@zIcfdOpvbhz6ZTX}66zr3P zpu&79@>>N-HUt+-9s#|yO-xV3>B3~}q&2SdN8#M5Yhs$jI;Q%aJ(D=au3<_Qd#Q9y zV0e*BB<{2~f0kmNPt=B7NA*lhP0yGjA14MF1b|#f4-!+ETU2qAe9}>sO~ayWv;O8u zrZYM-VLrV8l`q^1L9-?y-ck4xqq@RrRxTx3awaHFDaQaD5Y0{(h^j6t!EDR)BJxC{ zr83O(r9zyhmpv2WFZ0EO3^PZRux~1HYU0G~lIyN)ak+DL3YzURrb|C;FQ{gT{}ooO zz2jJQ(;RARYqw;nLKI2$PmEil#+*^Wua4bG*H8n6KC05z*c2?b8`$2_Tj@*f>pKSr z_nA#;-4UPUXbdjG5|%SNvyGQsDoZu{RryO&xArY}mAG^xqb_SijxKZSnUQJPy^MUy zH2kQl!Cw0RELHzRaO^j5^8` z>`L2KS7KE{&B5l;*SPGP54*-}kJVqm^iHkB-Vl5bQ_h*s%m8wwBk?Zi4hpv1!PC zpSZFc{JtKm-%-xQxXHmu@r_FCl%m(94f?BCM=4i`gtd!lG?Ur0#0Z2TPHbGTqHNv} zkwrprQWXrMl&87$s-d$J*_jDyEEERoX+Sb9jrv8gv>8pUI75a`V;$CO4bqh{f4jJPqr<&J5n@(ert_buD z^xNad1-s6~QO^>D$j-zufE24Ir%uEZYcr@rL6US>^orMN%G4_srnN1>NzZ`XSZ{Y# zp{I~?pqc8g7JoYBS#|~Av32S0V$m%-0@wByEBw!9QwI;2oxMZVCZ~^dr1>~)NH5Or zhO3rIiAuo|w!htu1ay~D?0o^13!3jPDCFc&QUcf&M2+Wo;%@5(dGJ`~sFN&|?D9wz zY#?zLAP#_JY}1+Kbk(Hxgjo_1uO@+KI$d4am2b+^uZPflF==AByT)t*#sp#YlZQ~+ z=9vVV3lv3=R%sl3pPe3G9$4h2QKVZu3=f(%S3nb*+OmBSNamFZnr;Kus7m!v0p*Pn zO(ynLUQoGJG4lxbt#mFPoU+Lw@2jsID*?S@iOwgC0Keda!xZ0N3Z0w{{w@9{|DfQ8 z`~0KDgKE?j^S__Do@V|<=KmWeWx*CdCs*<0d8K^72&Zh)NWT_}vrv~!(8n=+f3lhtd_Gn?$S7rnO)$? zH*nU-S&+L;d}iV9lVF**alkUeH2~YrS(vjOoON>6#aXuiXWq$KA7}lX?GoV3dpO(6 zS%ed0@+}-rJUs(kx{XV>b7`1MBgB1=b7_pb$GNO?=?IsOa_J7P-pO+(xpb0C(_Ee5 z(kz!wap`U@o#xW(xbk`~y@9*m$n)OBrF*z^FG>Mqb1op8rTY-hBixSw+-3>5%@SOK zO7BE~TTlrQaS~jDN)IvadIU$f29+K~fO}90?m-LS9#nb^;c*1G36(yG0KBQ(IUJur zcoG3_LnXKkmEbm1I?kn!;_xv9xDA!yHdKPoP|5NcD#2%HA+k#Vhb~0&LI6Zd2)X#G z(x2e?B^tE>Ua z7Fj8IN)E|Wybz{9ngYc#;RMwW2dFrOf^(_q{uJ-+Cm*PO2khh}2Q*_OM}ST%=m+{K zk^{UP2`p#F5=eEmqlT{4I)GEH5wFUz1q`mO;BD2DQ3-2+hz9yo&LH&1pcCb4f+VOJ zPE#Qk$!dku)HXOxZ4UzmTIzt?)Ek(?dn4SYZi8!ANDT^aW)9zWlKU`+e+P3EcQQvw z7ju-Zf#oU*dB}VP{2~0xGBJr1*@<6O=J<8W1a%FJ5&XJHE54ifXR@+Z$cAdb6FW5A zZj40Q$-mdAb}L+H^+-k(Dq}Tuu^J;bWU`6D!~(C+R4Y3K3~ESMY7D)Skeh^NOAV|^ z2@lmc0=_ckgp<6Z@Pp~m`}BT&*GMJMr}2P0BD;wvE^wBGju^^Hh_X&jZ(-k9Q-JnC z+e2uxS^R%D)Xf}@iw?(sfC=AjOrx6KU*Q}69r9EfZzzDqOtjc|WA#Pjjiik-ye(Q} z+|#p-i7F84U34!zkLnTBt~MWip(a|U?~Cr$BTtb+%@9ljZW&L3itn;EGkS;d7#sy`H| z0;yCV6RAF)N(HZH;xSJ#?O5tDPm9OU_=6aYgkPuWLtSCVQNu4mu2DO(t}eE2WJ6tS z12B8xp0QTA%^RtxgG}hlNFZKeexwMRMs=|w<5@TeEv}0d8()Rf&#Jmu6+X{%qqPda7`JA-6opohfF&Y-K^idqx~ata^#XI>&Hw>vIVoGa>8&#(x0(PH2}Hng zp(O>Ob4_#|`sDaixLB|Q&Gj2p*&Iasjeil{r+jW?ZCz|Fyd=VV=Q{WdrN)dVP!1e; zVi-otpXfOviFWl?i+A}iR_PM&Lcrl^FY){Immr8$R8UAL?T>3$@BvAmSgPO#RB+-c zz|V>bzFVqP> zpl2QCh`A_HC#1SWH;+^qpOi2lj892b<`8+B($N%Vwd7|cvjYhT_OzD#td!OrNY0nh z5554;pd%aWVjIy9JRG9%`>Zi^H;o|-AKMoxI`Nk!{nq3OnCO2+(r*j+CZQOK@$syL z@e#Xi5jdO>2cBF6ux#Wm2QcIJ8_!b{#HNt->ymzmuz$ZU71X04>E<`Y&FRJA8MNy+ zC4H90lzvFZc+yWrTcd6LGivN^GCN!ZWNaXI_q_34pnopvC!a>d@-m$b5LgUi;1GUS zD(FL>IsgP%Fxh_BfJv)R?=}nf76ATOYnq?>fxsVTIcYDi<8Jb z4gxkAZUd}oq>U!uY!7PsYij`CP2cP^)s~#d&I@0fu_Qw+lCt=Ic)*)w9RhoY4`qr< zoR#TAy_qcaVBiwVx4RiQaqj zC8%H27$1^p*8h+!X8k$TVzY63oHheO6U$;)UYghzY}6}rv%w%of2JWpD5N{qjdBX0-E2~;(r zok$b@&~S$_FGo6P&RUSga@j-6<)RGAz<5!%C?{meqZ#3CR^NG;Vd96{ifNFGkNVg2 zQO}ZYHcq}LzG^hrx|?hKVCinI@k8@&iAY>x{8)~>gP|cvw*}4jbJ6N>4e<+Vbr81% zB8tBJPEsWPdun5>N%T6Xl9vYFA#*wUocN-j#}~C0b5fv)zKa>Zkw1%2P>ebAUkE03 zUVnhWZ3oalEBR$FE)NF@G4u;8x_(akBAXNUBSGpn`3lM>TT6^ov`2^N(FIVW zW=-a!v5CM-fmn)G&I2s8=RwAj)t8L7DpkU%?(oeE#yb@v*4_o^PsoQ0CDpZqUe*emlr{TKBmwb^_W7STC|8MSj3)(dh-Vq z`dG$?luGAL;|XAi?u0H09yT`%dj{nDsG>ha&So6O$CXNXXS5PJF`ra=9u^f{FrHEZ z7x6<{=A0MWBS`nW0)YPLjYJ1#8(&j^e{7%p znF5IZXtR0e>k2UXqfO??Hxz*MM_X`WeA6zDG)+JaeoGX01EtF~zAcKgPX1h!&}iQI zjwqplPVz_ zXu5sVJUrjLsKE8jyz!Ev-&!4eAHZlXDOf4V&?X9%w#zut`zw4P-lMt0hv$tS;(|p- z{*BT*Z~O%LXbzw)z%LZ-%zQfCi6N$>$j%=tUeFgAWalrHN)=f$sLp>-mS~3ZUiJ;? zU!~tkAR>!ssvzSbe7ZMbfOQzZRxrg3hvtnd3g#yCZ$BmRn@Q&JbusdPiz?2?-cNUn z>29HU_a)q&H+~1bB)uP|$yfqLG1JH04jKv}#?#%JXJ5GDj=Vy{dkJRr_uv z`--=y`V&~&dY)vC$cGu+T^C?yhUJPb55rlCx}g6dqfp)d5vEWQ0Q0I+*&HrDf|B)5;PfJG2%en7<6R5JJJiT0#cW%e1>mH=w)*m2 zCaJ_|{;V+`RB7FL5Ev{N8xN_p?mS|>hw%rh{wabXqb=!z{xo~EU=td1#CTM#bkfWM zjCnD)yd=KrdsKXkd22I4o##U;b)ILKAS^zr>XR`4`84YI8ME4v*DF}AKd$0h?6b`H z1S%rv#0BFbwTXVZ;LFrNpG<4Rr&eymr&nvkPup$y*;mnq(OS$Ds$FBM{)O1*FfQpHN|f@G>e4n#vA0=Y zMr%+Lr#igZ#$QQm<8rK$&#APjWOu(;eq2VsFC$!wTg+~2h)Mf5=$bF|!4}SA4AsRv z3nOL5fx1{3e6Sy^^ua;APcq%G7aE5IvjWr2tv0jbwk2i-tOKu7$nlyAIo%j8&-&^> zpdm@7*++uJk%agpgg>?p+oR08C%m_>2R?mAExnajq|DYF3Z_Jcwxy{h2hB?rxG%gP zo(bi)*7mCmib=Gc7+*?C&xWE*V?%rBs1nPv7;HcH*x7+lG+*-ABVuy3$)C!ArF?C- zwzMy=YWMMRl2dq73Pq{6YHtXo+SQi5*zLM3H7XfwXbPqpD?M>yeEqVtquqPD;aPic z=dG#c2nHJ(EA8e;&)W^Niz7g6JY%)XQXTj04&Mq@DOlCFv|m-nebAUk<1eKi*wsh6 zTQKlwY`7{lNmEZI#!G}l%hAF8;m%zHqvV%-v~wr<(pG{k&5bJ?9T%kK8MVGcu(dsS zl_hzhnQ-Z|in_Ol8cOZgUM^op?X9wxvY`H^+1VDk#Hl#<&qsnSr;2<6$8J{X%ij;g9c|4e}fY14AKyGQtCA0=ny za6jD|%C|G_NsLd#NVJ_xA94qp-1PdbgxVWgyhuf#Fb*Sg63Hbz1Kr(rf~JO0TQ(95 zK)p!Z^bZW~?+))7B_E)pU432lS8ED3Hm1gyDHtRe#;%ER(_lP5^<-N$PH76YG^CoB zYOn(}uoYfPDZS_xwoiCVL$6C|Lbsx}qbxL(x-1a(A%Wm9o&~w!Qred07HTA1vu?Y3 z_6>}7?T_qJnp#_f9^Au)E;v2*+czwQz|Qc#ee?;M+S*%as9DLxd}G=nWgM71abo7E$Zk#*zTJHXy6u^lJ_sosD$Qufm9Cp*yt?o(cu_U0+ zCd)zlL}_ksYb2eAnS|2P(9#0wDhVa2qbWcI38iTc!8|M&8XqA- z#X+7^Nwaz-uc{@uP9TKq5GoKV5vmbt5w;*SAcPQF5ZV!LM7SAY2SPW(PJ~?udl7Cy z7(_UTa2vufLKI;PK}VQCIEHWnVHV*G!W$6oK{yMzDA^mg;~iN=<#x!>*oLa@j%o+nxOuyy1}fd!cE=V6+q88%?0{KS!*)lbgH;E& zJ3gt7LmQKRh(&31?z#N3sj_xBN?(@*9k1rl|rxFjpJJM7!Qu?8FOXf zxPdWuHjbMZ^W@;T8IEUjajXL{L>`V?8O!nF*vMFJK8{U{g2|$$QEw znJ#aF`O$eHDfEt-39I4b)AUd4-6P79Ab>kR(pnd5B>^e&Gy*E%{0K~28oYIM!T2CM zInrDgYxb_iskayw^2anDS4!8wsDDyhk5~a>C$&z*N)WqC+m2WsVl!F?Vnv9}Y8w#C zM(mWf2{9S5yEQ*z{{;s?r?pnZeuLQSH4kF{f!G_g9K?Q&*jc9aAgUtEIi~d?nuX|n zOxukpL-ego^CHR-eH+sX5&dsudppxg5&bQqaQ3%)`aY&@MsyL;$C(yE^n36)_VfRF8Tg-1 zvg+zS8M`42MQnx;fkmN1E_k6K;fQuLMBBxFsr+c0*f4zx9~a3oH%!M!IdjQ^A+^Uy znC1(}aF3iDIE^y+nK4*V6&ROxnmQ#A#NR ztPHT`+a=pd&}q%PvIexZiehWocs*>bwoudI*SNf2yVGE)zlzFUNg?{Gjf~KcPAMOz zbbd{p=@oPlm+4Du>6(OlLPKqwb%=!K zGu9|DRcEu)lpt3kmtFSeIg=0;79{B^?G-DluBUb2>+7wjX*Qa4dfsxC-RXQ(cTl*c zvUfxoPKG=%76SW$W`VresRSA*Ve2WTbk*faXfR^5K||5h86|~G(v~&PNNF&&XImP` zyJ@~0CrX}T7Gb{}eQi}NG(rC63&m*Cs)sUZXAI^o+37RjwfF88gqW!%oIQ3d5u38Q znyFaM64su9Ou|<5ZBm{(66l|3?3A|6ZZYSWz5M_qlF?X+P8#)!aPU3&NRk z!qHWiJRO;){W7c!bGQP+Tmb#Tw4WeEeO!iVzX{T9Yb`S1jll^LJRnsQ#J&>_j~cl% z$YInkH*wy~y6s~Qr3iXve(0Hj?&0tl>0l*92QpB@B);4LGH}zd-)N5b9Z_bqXjL%s zFOv{$)iy_q5G7)OD8{doxL^|i%1ByJM!juOXu&&C`7DB2J=9YxC+o&kG~jLeRsbEUWXfZ=pC^eMC?xe#@IH|6vwnt zyD5yxz=#L@bToqntoIq-zd;Pu-857i#ZcW% zLzPB&if)&31>Ih13OPz}`&r*-AP6Ix{pif(F<8%&5#MxupI{Poo2RyfW1Ayl(R6o= zp8-AJbz*GROnziyre5%vtODwRiBm6}X5Elp>LB7<&~nR4 z|6k;f%}ys?<+EuGeU(|s#FFTu8?XIptGzYo!-1(WYlowzyC2*3>I;M!lI=|dzB9XC zbwQohP6`yCeCoupn_qQ72TmMAr+St7L9&_o)yY{HqulhWYq5v2+k3iKS&U5#hF@JR z?7b;k^i{S788Ppkn4FmDeoZy7P2D!HQp&QSTXyY)3Ju+BS!qkHjc`hZp((YuC^XJw zh$e-RvfS9z3gbZP|8iq%kW&;rR|a!G7xDDY7i?*9R)jGNc}P)?K?X2tGQPo&KUZ%i2I{3Mqc(TI=tC?mY-r zMc`F|mh}rbD%)3uR7Gx~q*^X%T-s`5Q2~gmg-akI%0bCPh%$z*Rb55EP;e1}|!yGl{g=a8X>CBtYzE=7RLJ_qz6QC8kMmbV_E0%0S< zCWLB)8iYE8EeQ1pjR+xxW`tIRc7z*QAt0^ta@8h_$RhD{fl*EroQDh zE^is-VS(e;g6JY6JnH)#=7Q9<-LyBJ+7C8Nme?Me{na&Ur7ya=sLHm6W&Q2?TU?)5 zfwx-7gB=4W38%1f`9+{zP_;~0!cN#D3U`_7mnQ;T9k#bXWflFZMDu$ z`YY)~UVhK9*!0o#EB5kdQ5+VTU^2^GqZ7pYNQ}D?*++9W*cBik&HSVvqwWh24Rm7? zJw7h_fC?Rs?ylxltAq}E3L~N;^ZN)|F9p}+fs?>JrlEZBl@*uHNPUGhAbwYR`wN!W zbZWtHr%X~!LM+Sds={xq)AR|OZC)~6%jTn*Y*zAabap@$VAvl?~a@TBPHZd-i%vV@zn@wo-8n@_$G}ELY5deB>;g&k%!pD2gsCi6`Q*U+I zus$AAdoV$KT3%Tri)W?vc#}!w9yR6aGYR*Op`M=Z{m=p6rzWN+fS~CyU!GoEp||E% z@6SQk+=urcATITECg&YS(`Y(KD1S*6iwR#qNnX|#0K;_TY4(h@g8+Fu za#QCt`*dV$V#tY6)RAMJnB%Ww>#Co_UVTza)^dveTDul(B-#Kg*dRB-D>R_H<>sb# zxf$`6h6cGM*e18)*cxi_(3)7VWTg~=vO=)gyZ_3!NLG`LJ2vw`rhNW#9bfa3@Q~NY1 zK(z&-p48TuzCk1Xq^6}E8q|{-8?M@-wFFz6p=s38mX|SFG61(t!q}2-=4DW<%VdDd zal7-cqKo~@DB%=2y((5D^l6(y*r+!9R5%cYhEi5>mMgo2m9es%vfQ$~GH+SF-|sK; zm-|QkKVkk~Fn10UNPirTS_lPV`PuT*yyd6f<);wT5M&@z;KKvQg7-4Fo572*yO6nk z%v~h8i-pIXc-P@S^Cgu(^JY)xRcfz?M zb9Xa$4|Df2_fF>SWB?bPWKMhFB4>UR=Vw4<12igDothotpk zgCIzvxC*e1dpGX34DP*m$Gw-FAjWnQC;lAAv7I>D#CDov>;Js(?452UTJq)lfBFCU zvGdN(&d$uv?(LoCd7tMs<_P0RVayfAJYg&l#zJ8nC5%PFSS*Ys!dNPdWx_Z{7{?0Z zIAI(wjOD@zfxG55Rth65j8(#DfS5wA5fR3T!dN4WwZdo?#(H7=NEjQ0(I$*7!Z=wN zrwQY9VQhnI&pFsYbu-|VWZXc)8j#eO%M#OY6C0>!0EAk@{$j_la>XNCKut#AY$Mz()8SFR)Rq7*HRilU<%@82^B}~aH*r4#B0g?iW)U0c5 zy7mtCq4c12V%vu8r`VwEpiR{^2s>yHbkIIRv$eYGV@OndA`BQ^`!)0=KE*y19I}3k z?Q>y#B9gHTpyIFiL4$`B6qL5(zU#@Nc*OYjDx{M+t>bh)r$=+z*j}X^*`z21Cbkn4 zr5F%S@k!XQ3|-s;AFLr8+gsJ*f`U!$(}SY8;FR{wNY7|LRVio(s#H99yJ+7kl!7zy zCwswJl$=e;d30>Z^`adFIt;4fMjg$w2SPWTFrwsPMscj`}N{Ud!b;=N|pJ=PtI z#Trt<8B?)_RM;+P5ozdFm{f7ZHkdRqY&%T4C^{1+LkvF)#w&`?hRGBocEDtbk>|i< zi;{C;a>S_fU~7G3G*;eq!uJF#Sa-)|duhq6r}_D+f}G;8g6v@;^CG0{B{)f$V~$q~&ejqZ)O ztg>jxJ;$v?lC1KO9yODKa5l9nqoL$E$x6hqs-mV5@|YeoC2FPy)6^2HI#!Y%H8Z%x zA1m=j%}g!{#7eTFW;U19#7c6aW-gc1#!B*{W=zk|FM4c&c#4ljw@8lu6d)XmO;_szW-|ni35iVIE-)10YvoO_e*td1o5V)#%)T zICq9TcZL;=nou4esRT<EB4mpmlU~M8t0`lamrqN~~isq$C>BT#V>=IilmO<>tc{GbLY$*< z)pKqM*zb* ziRXQdJbMbCz1G`J71m*-L#_2l3#}jFYKy~Dtqro?G_Kbocc$}BtK6BvJ8fPN)C_AA zx4oHL*dmY1JA1O+k<)aF_Yze0o{z~fF}{7)38A1FG-vJ^fMx38iuYI?Sj|PVWRZY7 ztYV$WMYCm*%Hgt_xoCzg(!7PJwULYF$Rd{)>%$|6v^U)C#q#iQcd|NgM|Zayo|QlF ze>iF$*WHaG>oiPZGQP7tX_!GoRs~FqIRMMipu%(%Zinjv!dOMka+KnQDNA=y={YDZ zMQMtP(lF|tPo)>4v|=Ym__|17YW#4poC)Ros97gRc{e>Rz;^Mp$dXxiZ_I)N2D~rj z^Db>D9Mn@z80)&`5a-k+ToAAe!wddh!yMbz_(Xh%<`zERl zc?5I*#w>iHL$+Stm<4Z-dsxgp+)s^yy>58MpwS1>XqRYJ9u(HYA{tzR#vT!P z>&-_ftb~y~Mkjgc=`O)ZPw+|8l_%hJ928Fo>q#0(XLu}PVMj z@(G)jX9Xl{;`8(z=IMERY)g4;FHoOmzs}&%xcV2Vi7fh*PDK+ha}%d3FAGG%!T>dd z(Td`o2d9n5GV3*YVyJ(od3)vdb!0C1kK}&C;CB(yun#<^^L>R0hWfrt- z&=#Ja9O|zgwf1s<_~o-#K(MA0wFl6>-G?!MK>aU6bgNDlMf!QHZx9&y1^kP|&b@FW zuztxy4IYcD`k2O&8+&p;p|SiL4U9qGd9l*ZsPwle9f#8VSm~Ek`a8RBKN{x*jFaRm zxm8yZ-L?`mOf zODM%x+k_5z%4H$Msk;(pr!aTITq4X%V6GBip&z3R z=6{ikX`<-nJ(uH!9sqv!Iz2C@BfQX-c?j*at~n9Jg3i4Pe{qs|SI$=p919tJPsv|4 zd-{yU(-zH`F&_$#3ujDQvSQJcC9@ZJ;5E?H(y*basX70srBmk4UUKY;B@0&2y6cQZ zD{#`1S?-p#5Z_Ir)!eqV?lt59>5eo8D#}u@WVmF;3SP!flX-i+Hr3vv1^?+Dxif9) zjOogf|0bT+_reHL+;rS(pYAU`s7z2CoytGDaKqHBknwvJnmUBF-n^(8Wg*Ah+yx=zC&^<76 z&xno#A#r-X?B_CjEu<$RF3xqm1D(qQq-p8_Z=7qY`#CYTqUl(Nn-^}4IF{<<;^`r; zpx63oYMg$6WlQI3_I^f^uyXpZg31R0Uy~S=0wY4+W4V_}`m})Z&8zVlz~fmTua#X>23C{?_vAZ!Dy2OItRX zlbf0;-rAJ)t0$HhH^f_+SkCZ8-;fNkSPg`GZAj(R9v4AU8(N)6(0-=6Z_y#aQHhGW zTY-`{r8llEloL}(p9|fd#W;+eLD&RlcEh?g)0@_}M)Y;fi=ZjKC2d{vLjHvD9!gnt zJ6;;wV^mBo@@B`*NGQvfWvf8`J*q9dW_9ZpS$EL7=A-fQUq@Z^Ip}mS>U;gAv9<97 z-0%$hxtZO<&q^c09rk>UA#nH_K%U(D)Gf0cQybcv;yX@Y^B_IPE|n+epFWExFPWza z!S7;3mPU|SQ}9BVZd0BQ1J&lQzaCWEfm=$*JBHypeG?Dk$`Wp3-Zbe>SI95D!XL>S zInL>xchDvee6K}QHsMwDEHHi|?^u?jjPVANa<<1oz)Aul97l<(4)wZ^JvWJ;LJzgJ zftT4ectfT+9u+{D8(LeEIIT!-YsRmY@cJe(*$p?9)va!hVkk;kg?l!@qRk6Tqor+? zXy8vWj@uAoTvqYzd1VrOQA})Pyc|WS%rGt*-Yh)%P>$?1 zU9(QUeV?*gqVEViAy&Y91Q^4TKIBw}ef9PHbFRj!D$V*v$nk_OG1Rfbm82MKiM5}X z%LC57rJsxeVY*^CpF?VW#V+$-fm-BS3qL%L`S@?~@vsm~R3)>b-z!$=zHMdSriu|= zbhULd$AW@GGgg-$pb5i*bOlot;`R{p{WdfLGn(8)9QF3wRD1|go zpyS++FmoB;b6@K@Y(9WayuE+BV15S=K3u!PG1WP&R}SNaCMvj)@T%+RTp?3@Br@+e zH=IkT0eJF(PJR^iHxnWXFva~?^C3751_sf+1|W?zIQ^x9oa~&u;yiFx&Md@wE_55( z5AX-!0nk7=Q;=~fO}oSmjQi%L*D0ctvW{?Pn5EXR?LU zhpEiTy`gwrF@TJuAxA$s&9G}|C?@@(MKsqw?OyD7kjoVa>Iu_D7@@O_bD)$v5X-a7 z4Z7y4fG!l#T18ZeT1bt{kKBpetz8~`EhJ6|5;c(qMKM=Yj*%dfxGN^dHFLmsYfrPS zq^mEEoff@lTUYDXc^Q4n$)x~0Vu+TaOm`HbDfK}ZR*pWU9UkY=7g(7M1l-ht!&}&hIXLS2)jXSbeq;RF+ z5(yP(mLZ*2DfARFsYI{o8#Vo`*C_I|OCVm4v1 zk7bs5v5#riVX=>GmUyv`an@+Dk9Agfv5$FHts+iwiE-A%E|_UHVDU2JILJ;c^;pU- zm~M8y@qN z{6YD9e!GE;;{dzh)GDL=MyC09zDE+g{|=11eaL<{1i7yWzaME3?C)b)tkM>o!6VcqWt6K0AOMWA?=5%0d|0BbxB=RtTjK6YMM$C z=rlYKcE~8EnkvlFCn}*MNn_t+LY-8uC@e?`5YIQ@C^OFed2oiNzAHUn=oAM$-`BC* z`SxyAW9;P|DUt178=S}2fQHrSmjM{DwxHp1l?ETYxY&B7iY~g9-h}1YUZsj2`ZapI zZfXVnv8eFG1BJhqLi_VvB}G-qaBdB_I8T|X`qg--gjHdZDkDsOXvl;+Eb7)iagq|4 z)p?q^Niv`d`J$jcA!RHfihNum|I5N+@gH+J8}C-tZ;%7Pn)qEs(2IVctNmT2t%-8d+gk zD-Gx~6gpLtqTy!=E2QC#s%1Vq7E{&3kgnOY|3%1|?evpEhB#zRI;r>tw2uk|tL0&1 z03T4^_)K)Wb+L(|(Td9?2L;5ua)0b>me?f8a`c653wNY2C%z=U8q3muVLm}N^N(Ha z;}L*o#rn3EB1BHiGRC$b+Gg5FQ`9mg|)^fb^$I#H=@*iDL)D4 zC%KEN$LT4FqC_l(*8DVl*~^6>cU^^q#;^IeMe&+9bTbeD72k0XkO8SC%k0~)!szmp zgoPObZPvc$4}=`Muc#0PFS?`2S|NyFKBXSXW;t!_4?Xr zXJ@_o_6x)alzTumLwyj*Gvb0&5|ulV)XI4$GN9x|DC;D#!?3o~APpC82DzcQ_&gjY zmC7RtZF&MC0a!fUR{du3-Iz8#rRIx<$D(SmE)?@0&zZxsXF~La6X7f}YG7iZtr+=h zY|oRu^N0sg&j+4Q(jNQZFtK|*X7R8iPVCzfZ3oH~^MO*E7#`GkFtsF#Ff?=VW6@*x z=|drHxLn+m%nfzfn2E1Bi|k!aS=*9NG9nw6Oc`}ors}KWO_1D%q#Q+`@4yOS=6$f01@;^nhv!6iB@}G12Tv$j@T%)j86>2E^dXVc8 zZ|4~pTGVGsF%4h6g$Z8ZzJ=Unp)p%mLL1b}i@{G434&kb zw6ZY2=}#<%p$Y%7LSAwfUvlmQ$vguD3voo?*^`-T4bl6fYd3YYug-nj9lADKYrIKy zEMar%c7Q9+p966iO|Go#;6XMc+ypD$<%akJyO}$6QR@QF_J|*-o;xXjOhnmE-SFnC$c#&+bq&>O{wSc_XFSn7A`qI6;8d>dFKsgf z--#u;Z1qO^n#ee!fT#DQp2s)w41V{@QKZ8CAsq;SgE4>tJDuL{us7r|6zm-Y0QK3m zyscs|#1NX*y)_YdUa{6-HsVOdV%Y~}H=s!eA;!loJm@xro*{ zad>bIhr(coVl zd0G*CrWG6FWfNdNLa^Jt(m~h-%t_|n=z+7{M`tyA3vG0h+K33>a}eJZa_75`x(2f? zNDlr%gRetv^@huO01MtYDGnNR&4c&pZ($TYCd%~c&#!W8Mhm4Z91!Wiz=T`ZBIx*m3WO6wYYTQ!#BA=G4(?QDMlklA9YDIDA*ug| zzbFIdS1?n%SG}rodK=`A()De=j*~-1sCB9$Nr|!rPERR9e<@?P73dymw7|UYmS*kC zZC%Cpboi>WjEJ^92cQq9bjFQcU>x>$O^ZnEUu)an=~Q3aEZ2JUIw43D=({vfLW}~? zcT;&k4g4T_3W4ZvA}Xr!`@s_|2-XPn?Q-N3TSwT{6|u>Jp8t@_X<-?$S}4Vs#G{g; z5S-f4Isgf=~pz|y&;P?^{-C#YwSTMy!{ z5)Q+cyHJIS6EOro44Y&*y}%>L1`xQ!nq*iWYWH`oz9A%`3y~1V3dt9mnCS><93ok! zBkE#kdZ)4v5-@qCR-5h?jzl+pH1BJv{)ayilqm7T?RgT3h7>Vzv91m{J#vHm;kfA{ zJxu-GJ|ydyy*a85LBOA44-Pnh0vjsA`3j30kK|_sEQX@b%EEfrmO+BnfXa&1kEtl@ z!$z`H$t5Q09NZ~B&R-sly+5_9g+wSe#U|^MQLlr6hTcLX1129 zYw~sNqE=mL{^fGE-i+ux)f@b!aT@hOnU_ccuMY%?y%f~u<+DmNJYbU5gg66(fj~7 zBH;4XFiJj>Y@S5*a7KQeUXkO7YxBYb^JWP+XfBfosBp&>*3XxBY2ep061DY6>#hCh z8g(h5E8~)CGlsKE8o}x0pVH81l*lZJ!w*o&s8jk;GW>OOWnTNvh+TQHwEQUsSfWciVv^GJK-qm+|J=X@?4tJ z0(xyYFHk9qTbFJ`exf7TK>zy+4sNuS3*|wrc<^_vbH>cv{b7et&F|5Zu(Si-9X@LW z?~b2cfp>?_3cbqWL(Ecpl~xo=LMk=<#{j0Ax9=qdP2LlLa9 z0+gi+!z+C%YgIWp{h-9DZsp*Q-Kc!kAwm?=G{z7iOmqD%XzvGrNh)khIk^N4l(4Nh zp&5b!zzkvK9_o^!0H!6vkqLtS%??WVM-||*1@{^7qE295O88>1kJ9LpDSl9cP^o`VOW|T29pH^1{rQ1A2J81V4(l@{q`~?f z#bSqxxQ{V}i~Je2{S0s|vOh6!l%U3PTmN$E&suR$rFz(m2nXUe-gRYudeakIy|gfe zPJ4B0x!JO0+bhzJLB+n98+%s~S zuT_T3Pr0-McB@mO#|(R(%zYCi{XB%C`e-J7317i{gq`-T-=^)sjL2&)4@qHA)Ym_i zc$lE5d5GGSX1>tFP(i0bSO7@o{I)^#Q+edp*-N4D*JYki*F)E4-x&T}I&axDj)`u2 z@Hd+f>Gz}RTq5ZrvY1if(*7_C04f<2`=&K&cwmxmF(^Uv?=Qv`^2T!D=A%KOGYA2$ zHVGt|n&W%a)tQ`wLpk9jwZm8R>$YT-RGv4zy59~pp{j1%!AL}rpaaLceT_RFICW@n z4Oh5YeCuVre%25XkDJ(PdhMR!^?xvi)fkw$Fvb&bxNz0g3p;F(vmB4NX<`~iikj@YTDHF?RK3usX|OeJV!Sc>T%(~>Etc!!EPbbh7X)AO%~Uy$taUQHFzTo>!u__HJj!s1ZDa}>5qykw9NrB2c=PnT#FT~0 z*X|c`;4!z9(csmwB){5 z-wFGfm{jm3OZ#5ia>Qzxj7x`~e62!=lZVg7fluIvCtCx_C@#++&8+})V7De&e&-dC z^Wxv~^dGR4F$ZOA8N_-6gORbrE=hZm&K}P5Qc6Q%bYy|iI|lUa>bXfbf#E#Z;7wy+>WW+a1i19)sebvNx_a>|1PZ99Rrg#3C-H=WMB!+xFJUlju6hr(+ zQ6aZc7tR`0uLMmLZd1w~D6+0DQq7pFH7t3Xl!0U7Ou5Q#aygobVsK&^R!p|<@B9K| zh=6c(;Euz6O$CFCiMor*$&DTcxvQeDpn+S9WyogpL9xF&`nZd5tVRy3$Ot8w>_EfH z!d{+CpM&+JkIbR&$8OTFfe}2LDLXmyCsIrH3;YTJ2=cU| z+@~WjBU54TzjdyJ-mQ{Fxx0hcmuxN*u8|b$-?^!tUjm5;yaW4CFvp@Kx0|t*Ekg2s zW%V#)N9O>BsHGJFIad;rNX9c(0kPjGkH3j3Z^(S&$ZwExh*d!5H^$G0#BU{#4dadp zJ3SkiEu2i1^V_i2CmO4fQI&vrtXP|cdT7{ijz2bb+oA4}x{&Sfo~iSQGB>4#GEEgI zWhZ~T!FpkKPeWglL2DfqPC8mtJ*k-xzFtMrQ~f}9-G3P7`C}Fef9r=w=Mogn@_s)E zYU0-XrEf)^2!9Wu7@6r-zvTpM??*LJfXHU}mAdfievPX>&d%|yex zo4GXQ+Q41220@c%(jOaliUU*7lh?()#{a>Hv$&?ZtUQy9H=QnQxAcrSB)^EmzBQby zV7~kO8Jz0hR{3#I6k$fnrD*n_wp5da*XRnF}#VR_cVjb z?hBBdZzFOYu`B7pbn#Y{LXJ*YIAgNJ`i-LCX_ZTQv2%dN2KvRp=?+zs0Nf3BoU@Rh zBW?hrn6O}wX)Uo5;4L68oAlM{e6;LR%>Qnag8>FsE?YpO)+DP|5u^I5MCWWJ9b)6r zQ~F?^-R+3r#0oFHDbf)!aPlUZsyd%;QurU{c|h9^x|<<+)t1D?;q`|DOJ~GKSDblV z3>u!$SMh%y1kS1{;U+#c7=6AJK&;CSWT@~DLmFN@;EO$sS^i3Tm35=|J}m8!b3J@7 zngF%y7!;2L?SOvm3Xu4FRTa!7pJTA&!Zd7e(!LA~-t=_+Ys*%hx^j>%CIUJGCC51O zGJ+yvN!r3BlUa1E1p4FLH==4odYIlE!BfYq6&*KIEJ!k9^v;D3z1ucP8YZSV$taiW z=2WUSbW6jK{sO0d-`Wi)_-MxPX z$wo4)cKy2AWbuc5qAsh0g@@k4t{ni^?dXRZPepq?1&$P~i?rqZKi(fe{H~l7 z&>FUHy`6Fe?TBF!fV+hw?Jqp!8zb)`%-I-wi@IwB#J5tm3xJV9+)JdG+aF3Rq9<_K zA5H_)GdPX<5;rAm_|s8Is4Z{<69H#v+wB~&(LK>!p3<&wFk3e*K~YIZ&?sIUzhbX+ zC)ORn_udt3O_Bw$YejMPdzL6%Ln>QU=R`G*MEXvfg6r3i(%u$OXiSNL4+!~?mGriLj}HNzc)>X#=2r_7W4J@bdB<*rIYpu z7^5qEJ00fD6v@pWb~x3n;0_I;f6Grv77w;1_0=QBRI_+r7i9tZq9BD{vT0>Ie$7P* zq`RHPMHk9}g7jeGn{CETmx;NZ@7(8Ci|-UFojgW5 zMXOhfVA@%9ySc1m5xcpZV@W$U&1Q8sy{60nVV$3p&U7Z*=SOuo64(F?HYBrK2ACjd z_@!Vjh}q}`UnpEPfcgmvg{}aGMS!$V063&AjHZ6e0M&RF8omVm*BT1BDu}(rtgZ-& zA=mLsiP^V}(C{-~^pbr~eqXoH@X2EZ76Eeo+cTiSe2bsk6~wLfHMCLMYNQ4p`ybk} zKzR62k}yud{&*p6w;L>61hJetN7w%a@FJHYb_sKx1th9wEtK&{sPO#B5Hr_9#Q#5t z{Ri(%a<>ObqW&Q6avKc+@FzdJ?2m&`0M6T99G?K=6QF&99Yk*RS&PRTP8g zWL*Dsj}=&eLKzp&2WtH`#$W`q7L?g-X*E%T8p%dCH74&itpSg$m#q?Ck6~2+)iRVY zZLuzbU(uDN94}R&xnV>-XB(gIXDgT|@AhBne;@EYk;qn3IW@TQb=ov5MA(B40Q5Q8 zXX!*?^7k&$lJRz|l3jAt?*4sCN2&@AIA1nprY^VAFb{a9P;WKpOBA+gOpjOtD9XNl zb(ZI1GTsz3a|K|3gycvd_c1C?gK8I=J_bzMJRuv^7>z5^4Dr!0Rv@+l=!=v?J1i7? z)oiTBFK>=pugq^!P={zQfe8^}W^|#xvw`RS%C0QlVGokj9k}#>-<6u=HPKevY-uMo zp@Qx_LS^$B&>lxMq57WM5E4PAu1I(YSfpwcWSs&v916-^%Q|aMcyB8g2EblNTKdRr&NqBKgYscQma{sD+x|3O@z1S&x~K)VQ8;Su!!%)D3(hJt60047~N86Qjch8ug_r9!4;$Z zslaq$N5$=Wo-{j7MUqhKK;2|b69k-?<5pfix}u5B8fPKS)L88Q(ARcq`luUx+(zp1 zun`jTs{A`(@Ns~%nFyk6(=hAGehY_xV)<-TGcyHRj(vrW|9C<<9jozc{X+Dp>g7to z2$Bccq>9zXH9_-R=2kO{BOqL(-o=HUTH8w4xI%Zim;r($M?2Ic!nT-zF(cE5h!iQG zJCleVNn;24DNR$>5aqhrxMEG^vcpO1UmJjCg6`{j4*VibC``+Hho8pK6qZlcwomxw zeGngway?*=FnUJ2hv9T)c`k_04~;h7uzwCb2bqlrBt&*+`g&_a744WROtcMMq5Z;9 z^9NrKrV-Hp8tl=ylI%6a7VxT12ksalN2$h3qgaqW{lpe}Hu0UL{@v^f-HXfG=-%v} zCwC$Sm2BBNH7Yu5<@?3r5*X)KHwSO*AH5!iJ0hkw2K1@1JrT*ORzQCU%*qW{8p7>U zhts;%gcc*`gi9$^>dD=jEu*i5z6#fwxH4%n)T{B;Y@!jP=r0c?^N~%a^(L*l7l8IN zv{==lrx=%84}>^qsIn{eaVU!))RMOHA3sJGT2DNOQtV|JkSGGTO2S@(thRa9~%mPfBpW`*p~ep=%S zsV-a2lyejzFupE~!A8&W2fzGEu<}aoIX~=5kz705JB=2kG$1YioCQ7lmd!uT{;_Q>ZD9j-+!Mami-_;gwxH_HwnXUZ~ z4%v-j0lfgnIL`Kn$_{m=XkGi-G15n7eY8{2{##!svfeEv^qGH)L>!Nycmy$Y(0l&# z;eQ_IF6v}FRURkXq&;w=li?zORwJczNgn#=h94P)}H78TFW8^;)-|%^q3!m>O z=)X{gUq!7vgaX--FPNwDNe6Nw9}%X)NuIg1Js1llL?jY4Ud7GzUw~&9uEGOVD8#6l zyT?e!k=}9YqluYOn8!Z+>!C9^eKNV76e0B-E>YbEx%?yBbTeE2zTu>zB13_`O8aWG zR@u~-hAg@_4<_4{xP%T4aBy3im=Z~nscG*ZFd8lfLM9O9&jNPPmjANDw@Jc2>G<5Q z74K6hf~~nAA=b%oMJhrncdKfAQzp<;Pe(1UvZzu=N`cgefFxJtROKRkOQ5RlFJG-b zp=GHu&YIFMznVt{c>JZh^41~)sN%=;Xi;2E9>v;Fzfa$D;C5tP9hyh z>vR?ckxpD4c2xZH3#ZiCtmo3`9}ViuLc9pCM3VJO?&$}h>pG9$zAYC`9w)%@ohv@oXH{~HT3=it#eKHTlc4m)yiX3Oe)$&HddQd z%-S=rvt>0yS&*!180OiokjtDpBCOS_)iG)Wf~PJ>cg~fPtL@^Ohb#nOSVM(hx+udZ znL6S}AntK%6}rIod_Rjfo&wh?KV0mhVBROjx%8ONE|@q*FQwGv^CDvYg;yey#MGXk zjLyzkEhwE`G|`ltP=WEWXP$Vq7lI|FaX!^J|pWz5qB~r}&&0Q}qfPpw)J<6c{mV_Z+~++9^glqHu#PwfMGT^Nc)92rA>S zH0xjE=efMXmh+8Swt0~syHQGdxgE&TUv&7i^%KR( z$dWGBvmR@ct*m}GN5TAcyBWS4^eA-wb(XA5O)RINeea(t2Ghg_@g!V)W)qIVHrGJY zNXnFg)y>xEM}G|%c6Pw#Y9eL|30qh-&QJY}nc`PGX6L1-7u4{7ABfM%qX5jB*40)|X$rs`8F>TuyF|Nb&TVyaH?|Lm-BdeU*1nM(6Url|( z&n3&`a%W>qn-0UM(W?pugY;b0>6n8eWe#7 z_e=Ue?9)RONo6}P@=p%f>(8F2r>=D)cqEySZl?8Qv@FY1B^S%8aI76oiuDFdy{=x< zSgSjVHa+bfv?h;!A7Y~rDKcrPx*hOd(;60466q3G>JF&3);Mi2G0zkdvtmAR%aOsJlCOn8lv^>#rd2h%L&vRK$jKj)aV-7U9Y)VJtlCragcrtoCv zkeLql@$mE@o(~e|-`4Q*DEyOW5p9@{3wcJFfZ(NxeHl+)zFA|T}-OacTatb7RP1G z%D~t6f}^eQzK)sK7L-jre@3YlQP){57tjF2IgwmH(j$Wx>!uJMS#MsrVXiI06#tWb z)f&>#(9l^?LhNtYJQI{1Dx<9Zxn|ywe>C@(ccn?Ofg(*$pKu$3sZNxEn1@_rI4T06 zaL_;>Y^meIA2&t%$7<}*NWNxjgu~z?WmjI;F!2-R4YLo3jL=JVhRlE5$%nbt1aY?V zBV0VsXY%ori5kRaG@jAKDR!|@uK+wp2wKwq-NId{uj4r#w2^`qMG7l?3=|a<#JJ1E z+T7r#umUo{`OY!V)K3=__~g9acw_x2WpBL~zb-VOr?*Ou zm%1r&jW)KQ`>Fgalu-q_ z;s_)7X-bQeZ$+)kb47s1*@nCsJD4Nkqda-9MZ9^Znug%7&=|biY=uVUC@_YctvLTa z6toVaY_YC8k9iY!2)FJeBpJ{A=)W{~3}yY%KjVwIm9btlCM(gpM_c-&dU-k2fxm^Y z9xQ=wYcuqSvTLIbGHpy??D656^!IHBGM1^1K%=4C6Y5!{^es|6xka-jugU;WzKJJN zjpmt@NlB7?L+g3QK@D7w-yf1RJkPsji(rchWfKNZ!&WSfX%@a-$_Y^teO-R@%`1%I z^3AoYJ|hyD`QF;2Uy?v!mk7i*icyVh0!95XN_AOm2d(eKI~6wVAba2>0|lhFWO%hf zK>s62?LLFkCSe`X3+I)tjO~?ci4POU|IB+$d9QUJOZ9&N;54Rf<<#{-^G@?q5OkRjA>>6!1EB^w{y;{lFBcr++dw;T->Icy;|HZ6)X9bEXwd7ndTU?YhFac7GIi> zoiKO+^NTKn4V5Lt1+7@e049tu6Edbuz4G93>)7?fGO?_ncT$H1@2-PA^pR0=5c7$O zM1FvPko4NX7l#t?k7d5{vlu&N)v_FX{yS5m%}#FtYguJ*kxe2L+AsY-CgBXf_QJ`Y z@urNR#=^<&IkC(DQLBBJY@dk2$w92V0uFF6=?`_&zb>-TY#tD{-mm-4!rZ4{gt?z} zzlJ8EcF(dgbdly|@=D_FLYwkXMt?S)#ZzC0{~T@UH8(ChCCe@(4`x?RXBfbM-);Nv zQ2!gj3sfSdB3a}e;&Vj$#rA28`63*w@uZjYOgV=M=M!hHvc{``ayCN%44qM?I8p{R zQ&IRNUY6R(QCyvk*&mt5HjclM|0X_r4)+Cfq05f_a>L4=;BqA_wi7ra#-4LN>1rhQ z5!~3gP)uaEf0Gi(a@%sF{3rAk*0MouHeI0LJW)02tP$i;Yv)?pwZqeM8(-)CO)E!M8gT zZhUhKY7K5d6fXKz`_aMK3*aPCJaIu8V#-9)mpKS;rTt{l@*t)b>90T2vb?9Z->GWb z6+D~pR4nEV+Z8TB^}Is?R*fjN0gc3Vi-sjSS&GbkSMo6f`JShLE2PL>KSit)W2Xh9 zM9^!!Ng7|ZefONoP+#_(suJPx`&cs-!hwGoJ81f+g?M=gJcvn9Lt>Z8ODR2~8PZ^| z^%-wf8kG!~hNB1^g~5u*l2Ws!$5=E15i>`u=NubI!i#97$uM!jQACwg*? zg3L-lte=11vBqnE1DNQfFz}IB=(iC%`%(^`<(%J=MD)OvJzhe?g$RpjPpi7=r6J&g zr72e~B}3NSLnz^f+?#Pq?*{M+)lKsVNH9WXzLXLiNy!agR&;aa32$0;>P|FXeKE<2 zx9^;UUetHFA!Ob@lSlYaoq)Q=-c_}KF*&tT4(mkx{5ZZ^-4b2Pce^~h0YG1u${viL z3sggQWw5XJCV^?hM+*EfbCE}qa%-&f(YJxa8w*;T)i*Pejs%f;*$CFIZMQ9l_7b}h zF@*-$;J8vq@0^-bh7T#PP(sQeO<$BYauA-oX=E2NId~Sq6yGEXePAqUMuOT!t9|ll zRkrjsaj4oPhEtC`jCBM!j51zupmh|t+!3~}$JV4fIVqudx? zx`ZkxZR_<@UUotN8rKfHe(Nq#OQqXBes^{E?Goa$*S-DEg1@&A&4ap&k4O{$s;CF2 zz4@nL26Let&`Ti>mi7w2Y~A!C{9WkZkGa+gJ{>rXxn>VJg&z>=>Ls4oPmV!gjxbJ< zr#cdS>-JZpz~yt^{nF+2^D3a&-tTT2c?gN;LaKK)24=ul01^gaugDpd3;bI7C(Z0< zP9ha;j0p$%NcS9=d@|I7j0=Sdg^|I#`Yc*~r8-kV@-%L5Q!4;>kK(i^cd4z;l}(}7 zR}fXG0(83jUPM-UhD%uB67?SFxe-8O4Q<}a$>goO6)O=m60yma=>p5RQIHV8qtZvb zv30?ICq}UgW3z`k3K@3@LWVR62OksQQ&&Q_u>>dNF-!FhlC8;0C-}h-P*_YmKfS}E%*}ib~%88i|e1+$ZX?7;acmT(4CVv%&0VAOAY2Y|Z(8 zUv{h@>T=EW{c|>DbM4Q4!#;kK>Hs(F_XiH8?gvhx0_(G@b0S_YY zBr$zMj{-0FKPGdizz?S~Z%S__Q~V6u56^Rdh?jd&8-v4fvaJs0d4r>a8`IZJ=D8mj zdAIGz$c+=KVHd?$ZL}%qlc)9@@h@&rHuiEnIdxpyM?8URF@5T#RgoK^&7`WVU;nna zxW{wr)>yZIU;`t@b^qiA!s+Pk`R$JxFUl+f9$Q()&b z;f&Ome0Qaa@GRw-J?`PwLD&2t_ilW%u%IpeDjSq1R(T?M*^Clm&Tuk}hXAfl;JxT8 z%AS{-#<$Fo?IXU9>@C6bVSLJH`(mNX)<(PwK{GA&y6(=o_T?I+`9m>7L!QT6+dpT9 za?FKc1Cr|fsVWj7lC@^A3iTzuV}^scy<6BDZgN z4Qbc+DP!9m^jTu>Q?K9HJdRSuiQl}%ae)%8q1p4oFy;Ml9gu6gt_((Qn{0g&;~6N^ z3iiLLws<)Uij7|1^Vc7tUMzm7+H8=!GIu;u3Q3ISObwn|%$daDNu+o4C%#Y-g@fxe zSmj>7Nufk7qg+s{KJi0L8PU;gGbx!Wd{69)B@9uxI8wWsUZyM}RkmH;UOu+E;2k+W z?)X7>ftN(~gY_xklDDom&byJ{w##X?fTw22vt0O0c5vjcC~KyVYk4u21xCfsQ}AA3T*zwyn%L$&Yz;};HSY7N12!#H1i2_&5t?hOOH(#Zd8V)QzT{B`I+dU6I1FUquru>%-iMW$< zYIZ!Mx1Get8(PxQe#KF=J3+;A#77;kght-o-XP7B|aiyM3E@HQ720FokUm)L$-C4f*#T8jb;H zJ+^f4mUntO+Tg2Tb)c+=a[b];else break;2>b&&(c+="/")}k=c;return this},api:function(a,c){if(!this.element|| -!a)return!1;var b=this.element,f=""!==b.id?b.id:null,d=!c||!c.constructor||!c.call||!c.apply?c:null,e=c&&c.constructor&&c.call&&c.apply?c:null;e&&l(a,e,f);h(a,d,b);return this},addEvent:function(a,c){if(!this.element)return!1;var b=this.element,d=""!==b.id?b.id:null;l(a,c,d);"ready"!=a?h("addEventListener",a,b):"ready"==a&&i&&c.call(null,d);return this},removeEvent:function(a){if(!this.element)return!1;var c=this.element,b;a:{if((b=""!==c.id?c.id:null)&&d[b]){if(!d[b][a]){b=!1;break a}d[b][a]=null}else{if(!d[a]){b= -!1;break a}d[a]=null}b=!0}"ready"!=a&&b&&h("removeEventListener",a,c)}};e.fn.init.prototype=e.fn;window.addEventListener?window.addEventListener("message",j,!1):window.attachEvent("onmessage",j);return window.Froogaloop=window.$f=e}(); \ No newline at end of file diff --git a/src/wp-includes/js/mediaelement/jumpforward.png b/src/wp-includes/js/mediaelement/jumpforward.png deleted file mode 100644 index 64d03841e251a7741eaaf3e90b21c49a2ddb97ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz0!3HD`IPL*ajKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z81_tIQnIRD+5xzcF$@#f@i7EL>sd^Q;1whpd3^o;3KxS@gNuokUZcbjY zRfVk*ScMgk4HDK@QUEI{$+lIB@C{IK&M!(;Fx4~BGf=YQQczH^DN0GR3UYCSY6tRc zl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN)rhQQ2mNi9w; z$}A|!%+FH*nVXoDUs__Tqy(}E4j}F<$xK7olvfP(7SMzGAQ^o_Jp+Ag+EObracBd{ z;MA6q4EI$*X;BW?PbtazsX3{+sd**EKz)W-tpkQFTqBAjD-sJJmVpBi;x`+R%dLV^ zi}Q0zK|v6jmsw(GXan{Tx-cR{AiA9Ma|?=6i;IEU>`b9rkj2o|Mv;66hM8^K`Ye5o1R}Ho%63H5%=MmN*Ng!!VNwz93P0C75Ez?5L+T$Gwvl3x^(pPyp~c1JFVt6;1LbOX9P)Os6zP(DD)7m!Q`76s-yJ1(G3 zSPr)1ntJ-7G_XLp;OXKRVj;M6%5E>_K!LW+$2hK;bxC!$Hf=N%XATp4#2oQN^$5ql z#)wXZ9|BPkH)gxJXm7pj=fk9RL*rh+he<#Fp0u2B*LPE-%nzgDb1`Mb=gzn(F$S%^ z`Yb{Amq^#W#+eOUzU57N?pVYrY0;K{qv4nHt#oPr#=sK?)nb~b%J+otc8EWibG(UV zNuqe%0_jTSj8&$dxAOkfUNG&l z&+`z2lH|$B%hft#*-pxt^zj_FuKJq!^2`2{frh;+U6N-P9o@W8zc+Uw*ET!8(k6qvYu{g(9xwcM_SSlhTW8tBwe6bcf-3K|8(5^yvUptC>}t`#eeaF<+e!9|{`uPd+dcTYg?c=fZBr;TeTj!wCk*OdhWXa!QJon+x>jjcm19n$m9C@ zMSB1|0KWqOYinyCK79Dszy9^dAAh`g^XB*8e}Db@^~;wpU%Ytn{Q2{xrKM-jo;`W; z(;HCH*bFV<(D^Z+_--I`e&bg*4x|L-QC^Q)z#VA z+1A#k)oNQ>TAG`io0^(58cjn(Lw$XHZEbB$O-*%m^`%RfDl021Dk{p$%gf5j)M~X# zrMh_WVo6C!adB~BVWCo~EGQ^YC=~hm`MJ5dIXOAm+1YZrTqcuArPA}~&u3+2ojZ5# z?Af!KnVF|gpFVZ!R7OU|$&)A3)6>(^(o$1XlarH=966Gdl$4m5n2?YVA0L1C@Zq?) zxY*d(Lx&C>Ja{lFDk?HE^1y)u5fKsL;o(;H_-rifbZ1M8)^7Qod@bK8YdGn@Co7~;q-Q3)$R4SQFCXq-kE-uc_&O{>7(a~|^ z#*GdR4)*r;c6N3+9M0C(*2c!h%E}6h#ctTJ0fWJy(P$(RX=!O`VPRozZf<5~hCm=p zO-)TqOkgk=6bgkvARrJ32n4P(0Q|pvh-+qhIHE8XL%{Lc>;VR@e+1%N2pj?E0=R?L zU)%tj007f9zyUZusGHC)t~5pW_8B#U`6vsghe9Glj@XXkJR0k8yt_*>o|a3kazHz1zF3iR>%hCLm|=Mr$+9DmWh_-sz^f0Q5SDBK?HmChG95xxu)4EE{>jOLt4klTf)?AA&-ydIZof zPu`LUjbTzNnci~z%&&PRT16u2JLn2^WN#%dGcl|HVb5!}dJ>(Y5ke zU=Ns*6VkA>O3fM)AMqDB8~`eH?Hxf^_|fWR5)Sfk<6YG z!!ofKg%98$Oofr$Vmo7`>=04rVNR>SIePVwXC5va@cXEVv(gqK1(r^7ZG6u+32i-< zV@xuc4}z8W-flu%+;MCi_3E)?>W6fNPderQ7p*Tsk(jWM!ZpnfYkmi_^A3Pz(r&9S)v z7*$i!eAN(K7e-{X@|`Liv>MtN$iI#6VE#<6fJA>}$q<#28MU^a%jjBs0P39o)a5}t z*^>w(UL^1|`O303?S2>#_;;Ydb)fEl1Ih@^xvP3`fBY|?UcJI585mAoV6Ow6c0yY) zm3wnuVQ+H$5)yK(s~E!xoUT{0vc$N&`Z&@Y_2) zK?_D=W7i03(?fco+g2n%VPy{h)hg7<=@W);AvKyzr<9}gVPtmCX`uJ=uPIpMRjH3+ z_P#z0am6aQYpnJXhnjz3Cj^FH5MB1&62bIKmwFzA2rT5)=2g)4z51z?nTHxsxgaUv zXRGd!Ih)Dk-N>AwR+AE{Jos?Mj=ca}{&|-&OQ)N&GM=R$sMdamz)|X? z10`hJ)VV@XN16hE{3avNrAt$qQ?mUDg+-zxR(TG`#~2Ha?Yc=wS->}_gXQ%TLXtX5 zYZHhF*8Aob)0;s-6=IqbiV~{na7JEa`>DtmCWQIK7IO$6zZ=hhkuovqd~#!V!Ts0* zE^Sd;zL%yVZ}-U|(i#+UtH2UpHOn%@yHw(uS`I!f z7?acK3-KJ^RVq~GbPFH`ANwOt{vhC-ub@2Q_9C zD;g8JG1TdEY;3~m7=dew&bY*DlkO5wq9}78ZAdxikD@geIdv=4^d`uLU`kIerP5MV zFktR>Z}>)Ka}0No?|UzB2y$kHYaR9e9&JpoT8Wka-76RXTFb_xf#7<8a8OjPHqmgjS2 zil7O1nNF;=jQw@1VQxz^{&Q+*XT6-Sp>1(uD}A&33c|Ijt}bBh+arvUaZ!~!dK=CNf8FEw&`@{WccR?kghoXmYs_!dyOpo}!?)c1Gu* z!o7Q&=t_6Md_HhFeOMmlT zCnS%5Jeqcb2= zhYSK!$-8V=Pic3CM!m>ufB$NvE6u~}Ay*r>4(ijL=F<%S)r1mK}*5%Q#ZB%H|1SLKwnfryc&5)9Ci12=x067)u z;dIR@v}zpL0rJTD-)PrucFV; zP((>6Mj1&Jh|4y(?rzY?3P^XtxRQ|oVm5{$%(^Lk>&(~Ec9(N;_!DXE=uj~6)f){1 ztk_7{R2s^1F|Fi6-CoX)^$a)4>XJlJm*-&Q!qk+p;aA!)Mo?(nkjDynn(l+2+55V? zt+|7GB6Yzw&SScjFEDAdb2{CH7F!_62k{v3MWZ-da?JMBu_*Ok`jP9+;$rlt5{{jd z@Ig*fVPILW=&&o~06KyDJ+?XtiL!Q=ufE#;=m~XCooH+0kNUEWo{5Nx=8d6Nby&2W z_nIz+g=UD#30d=d1iPWHmhBbcE)!)qir_}vW6J{8`#0N)nvM3slxT^~^VCr&c&&dQ zkoec(Lj7Nvp55VX+6ay>9~jPoay{Xv^p7-6r!7_Yl#b}#ijj;*ywn&l=EXe(Ei0u5 zif`!tj!(eWRWUDuDx5SIyXxj4*=rF5lTtI;%FtQL`3YD#tlD$LPJzD)Mny?@0(^*s zP6q%92DxL5_0+f-V2DZvSaheNscLqp=oIVjA{lbcryOoCk<+~>b^nW;BFGC{p?lXwMRBx&O} z>OlM`a{AcZFZNjh-xrwGemnjH`Q*)4zc~Km>I&S-8Y^w9NiGdn;O8gN1&pehp2tLw z-hD==toP`GYezTdDANa_kpC=rt%pIM)VuXb?!m}5YT6k&{#L;x(h)=_ZC>O)&2isA5>g6=Tz($< z{u;SqDqS~x1w&D@_si#g|7QWI-L6-DVq2$;z-gCNVv!FNSJ*hgJ~IiOG=99PH~um4 z{ydeh_V_gNb$d_|E-d)dN1M7ut-*)Sm^tpbsnPcjf23!oKh9VCB$@Quy{4XC*{i>+ znlaqUE*|O{wf1*Os(tI zIG&AuV_#PP9=V8zUZR|A#MUw@ovyoBelm&W|uaE&2_)qi)T6e7Q$m#;E za)Tv(@i5qWY+69goneeRHYl)TWrs35m^J2}PNViGKrs#(1#$f>wSIFr>Y0 z)~Y~zYY0v5bhB7?^h)EnS`M-F6#y*@O|NkQKQn0tJJ6Y46I=oov+1}3kNOB;N^sIr z-QM3Bxb5?y-*DaHO^=qI93VXcKy|-brYl}ZWFSPiVUTFEmH;Q_gk!Wp|J~6)ss3%O zO8P^!BHW)HW&LUG%+KRZ!-bGPyoJp<1vrr{%gcSZ)p-L+Kq-jirA%3uQHVWpV@XqF z6;#~sH{NrnJ-02mfKAffwe_tw&tz^G=Gjz3dBfFSBui>h-tF`U#wSbtyo=|bh_YMU zEqxFU`pnNxx>W_a`QSVYvlXs|y4k*$D;cC#LVC8Yuj=zId!bukbW`EsDNb1S-6Hjg z#P}AnUs^ySHdL(J!~Epxl6QiDd`}m4`QX<#e3rrz;re$|i{;N{6(hEZ7?UYOXztR) z+pv2+S_jIWx*+24smq+SAK4~3Cr;9+Mxjdxu-!_(bF$_B+T7H;(xMFyKW|KEUYcrL zKE8xK6h(!-TP2szl(3%`r?aO!xJvZzM+5Wdy1&lQ_sK)YO_X*#vI2z_C3m&1&Lu%YGVzgyqg<^6a4s<0muPuKT#^AC1A8EpUfPP0EbZ+$g?j#0UVLeL!cHSBfuo#^R$HKz4D$3 zqUj4b0Hg@$r?=|13K*x_A^lX-3+^Q%gjsX1gb(d#s~JelQm7J;33dyC;N-2dqu4Ln z>|`6ewDLT7TxLpkC9DT1YdOa>aNV}M)aq?P9Wi584BH-9nI&!@8;YPvfXF;kNX|7~ zoBDoXk~nlfspsSz;Fc8@^fTRY;w*~_Hk-}m1K@uP@3$zV2dl_uRnah_WiJ-> zpPB;JYx-aNRKt+zLmk$M&M`!aA8#_^jO#=}5f<+zTkl+A=slE?zQ*9ul6ZD;ByahC zRaw-?>6ix|VotVh-cXcnBwQA1_v)3a?f+=jK(~Aj1h?&W&2F4cSe$?Qgu_dBF?wpd z2~=LG3KNiK` zK=#cyhBN6*?Rvo2DHQk&V|GxOU4!e5x zeTYb<)1@FAefc*pRTf~tSecoWSmn!NBTILgpbSAlPg`k;H*P15t}dEk{MJsTlg89O z1#aRun|IKy=NlSkt3GAzxy*pi?D{98PF3>uSD_Gb{vB!b(6J9d1=y-hw~uggzk%$S z^;^e$lx(heUjzC`xf3e=o%j?kqaxX>nLd(5rkgkTjZPf9^{+~x_23s{DypKB0o!=t zG;qi=3^G|!Z2rY71~_P|1c=pimOHq9>gSRV<+&~bu&Ss&qa$a?V-R~We1V4$?~Py( zY=M&l@Z<&qi)8tV$fy?cQ-xGcoob*Vvt&+yOW)fuSkRF&z^ep{LD>yw+ftYq#m1aG zu*_)@%sdC_2bnRJJ>y)xJdEudzS|@Uf>!uXaNI7}5eH!1$BGC8xbIq>pta}psC-uI zBSE5xx=$Vi?-|(-asqP(vRlYHk6gZ`rxU2&x|4{q9=1LUWmKwUmH3JMePb57tpph& zEwT-PdN6_*Qh{1SY1}q!DHnIH@46EGav*7_fQ{+nn!L=A95ujB#<0HJnl4{vs8^SP zosO%h7lS4R^Cq^@@6|K>zc=*%0@^P4H&FG5)d-QXi6d{d?83#Gl=TOt|9Dd!7BtN% zJReRlMQNl^S|hCH-ImaAYW+P!yyETyr2l9HM5bdB^dYJMTMmQG;(kNtZNnX>-(V)0pWL z73c>2Or-f?n8&PF3&N56BCKb4Pb~fvuIxlpq;coV{obU&Ep@j{zR2X@e_J4JlNh?k z<9eu%b^aWVlD*^-a^s`&%?=G|hXEklh9TVTJ~Nd=STONnLf+fSt&Vu_nS*n1%JW^1 z!`Ei^+y;Wl;r%uuAN@Q%glfFhjtbhr2uZn`vIstP5%TsiFS?Q5s#(8o@V)2q>2V1r zvl-hGT7PsAQu>Evk)pV~Y~*hq61R)K(Q~qhRc;UzSu;AE-x z^hqdIP^GS<7b*Y}XwocYf~*qA_q!<{Nn^lhEg(OKyII61CMufpQ^ZT@2y&hFI})p7 z6%8?S2lNEeV%zfaOznm`7^d-pGxsRv2{B|=UKOFe&c(J@4+cxkElLNqzU)sr(A6V;kXo=hbeyEaEKqgL>lflYlj<~qmfrC` znr-eClK>^QE$Yly1I@_ZX9p}Ru 1 && arguments[1] !== undefined ? arguments[1] : null; + + + if (typeof message === 'string' && message.length) { + + var str = void 0, + pluralForm = void 0; + + var language = i18n.language(); + + var _plural = function _plural(input, number, form) { + + if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) !== 'object' || typeof number !== 'number' || typeof form !== 'number') { + return input; + } + + var _pluralForms = function () { + return [function () { + return arguments.length <= 1 ? undefined : arguments[1]; + }, function () { + return (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; + }, function () { + return (arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 0) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1 || (arguments.length <= 0 ? undefined : arguments[0]) === 11) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2 || (arguments.length <= 0 ? undefined : arguments[0]) === 12) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 20) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else { + return arguments.length <= 4 ? undefined : arguments[4]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 0 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return [3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) <= 4) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 1) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 2) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 3 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 === 4) { + return arguments.length <= 4 ? undefined : arguments[4]; + } else { + return arguments.length <= 1 ? undefined : arguments[1]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 7) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 6 && (arguments.length <= 0 ? undefined : arguments[0]) < 11) { + return arguments.length <= 4 ? undefined : arguments[4]; + } else { + return arguments.length <= 5 ? undefined : arguments[5]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 3 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 <= 10) { + return arguments.length <= 4 ? undefined : arguments[4]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 11) { + return arguments.length <= 5 ? undefined : arguments[5]; + } else { + return arguments.length <= 6 ? undefined : arguments[6]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 11) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 > 10 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else { + return arguments.length <= 4 ? undefined : arguments[4]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 2) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + return (arguments.length <= 0 ? undefined : arguments[0]) !== 11 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 8 && (arguments.length <= 0 ? undefined : arguments[0]) !== 11) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else { + return arguments.length <= 4 ? undefined : arguments[4]; + } + }, function () { + return (arguments.length <= 0 ? undefined : arguments[0]) === 0 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 3) { + return arguments.length <= 3 ? undefined : arguments[3]; + } else { + return arguments.length <= 4 ? undefined : arguments[4]; + } + }, function () { + if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) { + return arguments.length <= 1 ? undefined : arguments[1]; + } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { + return arguments.length <= 2 ? undefined : arguments[2]; + } else { + return arguments.length <= 3 ? undefined : arguments[3]; + } + }]; + }(); + + return _pluralForms[form].apply(null, [number].concat(input)); + }; + + if (i18n[language] !== undefined) { + str = i18n[language][message]; + if (pluralParam !== null && typeof pluralParam === 'number') { + pluralForm = i18n[language]['mejs.plural-form']; + str = _plural.apply(null, [str, pluralParam, pluralForm]); + } + } + + if (!str && i18n.en) { + str = i18n.en[message]; + if (pluralParam !== null && typeof pluralParam === 'number') { + pluralForm = i18n.en['mejs.plural-form']; + str = _plural.apply(null, [str, pluralParam, pluralForm]); + } + } + + str = str || message; + + if (pluralParam !== null && typeof pluralParam === 'number') { + str = str.replace('%1', pluralParam); + } + + return (0, _general.escapeHTML)(str); + } + + return message; +}; + +_mejs2.default.i18n = i18n; + +if (typeof mejsL10n !== 'undefined') { + _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings); +} + +exports.default = i18n; + +},{"15":15,"27":27,"7":7}],6:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _general = _dereq_(27); + +var _media2 = _dereq_(28); + +var _renderer = _dereq_(8); + +var _constants = _dereq_(25); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var MediaElement = function MediaElement(idOrNode, options, sources) { + var _this = this; + + _classCallCheck(this, MediaElement); + + var t = this; + + sources = Array.isArray(sources) ? sources : null; + + t.defaults = { + renderers: [], + + fakeNodeName: 'mediaelementwrapper', + + pluginPath: 'build/', + + shimScriptAccess: 'sameDomain' + }; + + options = Object.assign(t.defaults, options); + + t.mediaElement = _document2.default.createElement(options.fakeNodeName); + + var id = idOrNode, + error = false; + + if (typeof idOrNode === 'string') { + t.mediaElement.originalNode = _document2.default.getElementById(idOrNode); + } else { + t.mediaElement.originalNode = idOrNode; + id = idOrNode.id; + } + + if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) { + return null; + } + + t.mediaElement.options = options; + id = id || 'mejs_' + Math.random().toString().slice(2); + + t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs'); + + var tagName = t.mediaElement.originalNode.tagName.toLowerCase(); + if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) { + t.mediaElement.originalNode.setAttribute('preload', 'none'); + } + + t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode); + + t.mediaElement.appendChild(t.mediaElement.originalNode); + + var processURL = function processURL(url, type) { + if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) { + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + var _url = _window2.default.URL || _window2.default.webkitURL, + blobUrl = _url.createObjectURL(this.response); + t.mediaElement.originalNode.setAttribute('src', blobUrl); + return blobUrl; + } + return url; + }; + xhr.open('GET', url); + xhr.responseType = 'blob'; + xhr.send(); + } + + return url; + }; + + var mediaFiles = void 0; + + if (sources !== null) { + mediaFiles = sources; + } else if (t.mediaElement.originalNode !== null) { + + mediaFiles = []; + + switch (t.mediaElement.originalNode.nodeName.toLowerCase()) { + case 'iframe': + mediaFiles.push({ + type: '', + src: t.mediaElement.originalNode.getAttribute('src') + }); + break; + case 'audio': + case 'video': + var _sources = t.mediaElement.originalNode.children.length, + nodeSource = t.mediaElement.originalNode.getAttribute('src'); + + if (nodeSource) { + var node = t.mediaElement.originalNode, + type = (0, _media2.formatType)(nodeSource, node.getAttribute('type')); + mediaFiles.push({ + type: type, + src: processURL(nodeSource, type) + }); + } + + for (var i = 0; i < _sources; i++) { + var n = t.mediaElement.originalNode.children[i]; + if (n.tagName.toLowerCase() === 'source') { + var src = n.getAttribute('src'), + _type = (0, _media2.formatType)(src, n.getAttribute('type')); + mediaFiles.push({ type: _type, src: processURL(src, _type) }); + } + } + break; + } + } + + t.mediaElement.id = id; + t.mediaElement.renderers = {}; + t.mediaElement.events = {}; + t.mediaElement.promises = []; + t.mediaElement.renderer = null; + t.mediaElement.rendererName = null; + + t.mediaElement.changeRenderer = function (rendererName, mediaFiles) { + + var t = _this, + media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src; + + if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) { + t.mediaElement.renderer.pause(); + if (t.mediaElement.renderer.stop) { + t.mediaElement.renderer.stop(); + } + t.mediaElement.renderer.show(); + t.mediaElement.renderer.setSrc(media); + return true; + } + + if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) { + t.mediaElement.renderer.pause(); + if (t.mediaElement.renderer.stop) { + t.mediaElement.renderer.stop(); + } + t.mediaElement.renderer.hide(); + } + + var newRenderer = t.mediaElement.renderers[rendererName], + newRendererType = null; + + if (newRenderer !== undefined && newRenderer !== null) { + newRenderer.show(); + newRenderer.setSrc(media); + t.mediaElement.renderer = newRenderer; + t.mediaElement.rendererName = rendererName; + return true; + } + + var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order; + + for (var _i = 0, total = rendererArray.length; _i < total; _i++) { + var index = rendererArray[_i]; + + if (index === rendererName) { + var rendererList = _renderer.renderer.renderers; + newRendererType = rendererList[index]; + + var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options); + newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles); + newRenderer.name = rendererName; + + t.mediaElement.renderers[newRendererType.name] = newRenderer; + t.mediaElement.renderer = newRenderer; + t.mediaElement.rendererName = rendererName; + newRenderer.show(); + return true; + } + } + + return false; + }; + + t.mediaElement.setSize = function (width, height) { + if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) { + t.mediaElement.renderer.setSize(width, height); + } + }; + + t.mediaElement.generateError = function (message, urlList) { + message = message || ''; + urlList = Array.isArray(urlList) ? urlList : []; + var event = (0, _general.createEvent)('error', t.mediaElement); + event.message = message; + event.urls = urlList; + t.mediaElement.dispatchEvent(event); + error = true; + }; + + var props = _mejs2.default.html5media.properties, + methods = _mejs2.default.html5media.methods, + addProperty = function addProperty(obj, name, onGet, onSet) { + var oldValue = obj[name]; + var getFn = function getFn() { + return onGet.apply(obj, [oldValue]); + }, + setFn = function setFn(newValue) { + oldValue = onSet.apply(obj, [newValue]); + return oldValue; + }; + + Object.defineProperty(obj, name, { + get: getFn, + set: setFn + }); + }, + assignGettersSetters = function assignGettersSetters(propName) { + if (propName !== 'src') { + + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1), + getFn = function getFn() { + return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null; + }, + setFn = function setFn(value) { + if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') { + t.mediaElement.renderer['set' + capName](value); + } + }; + + addProperty(t.mediaElement, propName, getFn, setFn); + t.mediaElement['get' + capName] = getFn; + t.mediaElement['set' + capName] = setFn; + } + }, + getSrc = function getSrc() { + return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null; + }, + setSrc = function setSrc(value) { + var mediaFiles = []; + + if (typeof value === 'string') { + mediaFiles.push({ + src: value, + type: value ? (0, _media2.getTypeFromFile)(value) : '' + }); + } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) { + var _src = (0, _media2.absolutizeUrl)(value.src), + _type2 = value.type, + media = Object.assign(value, { + src: _src, + type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2 + }); + mediaFiles.push(media); + } else if (Array.isArray(value)) { + for (var _i2 = 0, total = value.length; _i2 < total; _i2++) { + + var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src), + _type3 = value[_i2].type, + _media = Object.assign(value[_i2], { + src: _src2, + type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3 + }); + + mediaFiles.push(_media); + } + } + + var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []), + event = void 0; + + if (!t.mediaElement.paused) { + t.mediaElement.pause(); + event = (0, _general.createEvent)('pause', t.mediaElement); + t.mediaElement.dispatchEvent(event); + } + t.mediaElement.originalNode.src = mediaFiles[0].src || ''; + + if (renderInfo === null && mediaFiles[0].src) { + t.mediaElement.generateError('No renderer found', mediaFiles); + return; + } + + return mediaFiles[0].src ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null; + }, + triggerAction = function triggerAction(methodName, args) { + try { + var response = t.mediaElement.renderer[methodName](args); + if (response && typeof response.then === 'function') { + response.catch(function (e) { + if (methodName === 'play') { + if (t.mediaElement.paused) { + setTimeout(function () { + var tmpResponse = t.mediaElement.renderer.play(); + if (tmpResponse !== undefined) { + tmpResponse.catch(function () { + if (!t.mediaElement.renderer.paused) { + t.mediaElement.renderer.pause(); + } + }); + } + }, 150); + } + } else { + return t.mediaElement.generateError(e, mediaFiles); + } + }); + } + } catch (e) { + t.mediaElement.generateError(e, mediaFiles); + } + }, + assignMethods = function assignMethods(methodName) { + t.mediaElement[methodName] = function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') { + if (t.mediaElement.promises.length) { + Promise.all(t.mediaElement.promises).then(function () { + triggerAction(methodName, args); + }).catch(function (e) { + t.mediaElement.generateError(e, mediaFiles); + }); + } else { + triggerAction(methodName, args); + } + } + return null; + }; + }; + + addProperty(t.mediaElement, 'src', getSrc, setSrc); + t.mediaElement.getSrc = getSrc; + t.mediaElement.setSrc = setSrc; + + for (var _i3 = 0, total = props.length; _i3 < total; _i3++) { + assignGettersSetters(props[_i3]); + } + + for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) { + assignMethods(methods[_i4]); + } + + t.mediaElement.addEventListener = function (eventName, callback) { + t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || []; + + t.mediaElement.events[eventName].push(callback); + }; + t.mediaElement.removeEventListener = function (eventName, callback) { + if (!eventName) { + t.mediaElement.events = {}; + return true; + } + + var callbacks = t.mediaElement.events[eventName]; + + if (!callbacks) { + return true; + } + + if (!callback) { + t.mediaElement.events[eventName] = []; + return true; + } + + for (var _i5 = 0; _i5 < callbacks.length; _i5++) { + if (callbacks[_i5] === callback) { + t.mediaElement.events[eventName].splice(_i5, 1); + return true; + } + } + return false; + }; + + t.mediaElement.dispatchEvent = function (event) { + var callbacks = t.mediaElement.events[event.type]; + if (callbacks) { + for (var _i6 = 0; _i6 < callbacks.length; _i6++) { + callbacks[_i6].apply(null, [event]); + } + } + }; + + if (mediaFiles.length) { + t.mediaElement.src = mediaFiles; + } + + if (t.mediaElement.promises.length) { + Promise.all(t.mediaElement.promises).then(function () { + if (t.mediaElement.options.success) { + t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode); + } + }).catch(function () { + if (error && t.mediaElement.options.error) { + t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode); + } + }); + } else { + if (t.mediaElement.options.success) { + t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode); + } + + if (error && t.mediaElement.options.error) { + t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode); + } + } + + return t.mediaElement; +}; + +_window2.default.MediaElement = MediaElement; + +exports.default = MediaElement; + +},{"2":2,"25":25,"27":27,"28":28,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mejs = {}; + +mejs.version = '4.2.3'; + +mejs.html5media = { + properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'], + readOnlyProperties: ['duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable'], + + methods: ['load', 'play', 'pause', 'canPlayType'], + + events: ['loadstart', 'durationchange', 'loadedmetadata', 'loadeddata', 'progress', 'canplay', 'canplaythrough', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'playing', 'pause', 'waiting', 'seeking', 'seeked', 'timeupdate', 'ended', 'ratechange', 'volumechange'], + + mediaTypes: ['audio/mp3', 'audio/ogg', 'audio/oga', 'audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav', 'audio/mpeg', 'audio/mp4', 'video/mp4', 'video/webm', 'video/ogg', 'video/ogv'] +}; + +_window2.default.mejs = mejs; + +exports.default = mejs; + +},{"3":3}],8:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.renderer = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Renderer = function () { + function Renderer() { + _classCallCheck(this, Renderer); + + this.renderers = {}; + this.order = []; + } + + _createClass(Renderer, [{ + key: 'add', + value: function add(renderer) { + if (renderer.name === undefined) { + throw new TypeError('renderer must contain at least `name` property'); + } + + this.renderers[renderer.name] = renderer; + this.order.push(renderer.name); + } + }, { + key: 'select', + value: function select(mediaFiles) { + var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var renderersLength = renderers.length; + + renderers = renderers.length ? renderers : this.order; + + if (!renderersLength) { + var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i], + rendererRanking = function rendererRanking(renderer) { + for (var i = 0, total = rendererIndicator.length; i < total; i++) { + if (rendererIndicator[i].test(renderer)) { + return i; + } + } + return rendererIndicator.length; + }; + + renderers.sort(function (a, b) { + return rendererRanking(a) - rendererRanking(b); + }); + } + + for (var i = 0, total = renderers.length; i < total; i++) { + var key = renderers[i], + _renderer = this.renderers[key]; + + if (_renderer !== null && _renderer !== undefined) { + for (var j = 0, jl = mediaFiles.length; j < jl; j++) { + if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) { + return { + rendererName: _renderer.name, + src: mediaFiles[j].src + }; + } + } + } + } + + return null; + } + }, { + key: 'order', + set: function set(order) { + if (!Array.isArray(order)) { + throw new TypeError('order must be an array of strings.'); + } + + this._order = order; + }, + get: function get() { + return this._order; + } + }, { + key: 'renderers', + set: function set(renderers) { + if (renderers !== null && (typeof renderers === 'undefined' ? 'undefined' : _typeof(renderers)) !== 'object') { + throw new TypeError('renderers must be an array of objects.'); + } + + this._renderers = renderers; + }, + get: function get() { + return this._renderers; + } + }]); + + return Renderer; +}(); + +var renderer = exports.renderer = new Renderer(); + +_mejs2.default.Renderers = renderer; + +},{"7":7}],9:[function(_dereq_,module,exports){ +'use strict'; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _constants = _dereq_(25); + +var Features = _interopRequireWildcard(_constants); + +var _general = _dereq_(27); + +var _dom = _dereq_(26); + +var _media = _dereq_(28); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + usePluginFullScreen: true, + + fullscreenText: null, + + useFakeFullscreen: false +}); + +Object.assign(_player2.default.prototype, { + isFullScreen: false, + + isNativeFullScreen: false, + + isInIframe: false, + + isPluginClickThroughCreated: false, + + fullscreenMode: '', + + containerSizeTimeout: null, + + buildfullscreen: function buildfullscreen(player) { + if (!player.isVideo) { + return; + } + + player.isInIframe = _window2.default.location !== _window2.default.parent.location; + + player.detectFullscreenMode(); + + var t = this, + fullscreenTitle = (0, _general.isString)(t.options.fullscreenText) ? t.options.fullscreenText : _i18n2.default.t('mejs.fullscreen'), + fullscreenBtn = _document2.default.createElement('div'); + + fullscreenBtn.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'fullscreen-button'; + fullscreenBtn.innerHTML = ''; + t.addControlElement(fullscreenBtn, 'fullscreen'); + + fullscreenBtn.addEventListener('click', function () { + var isFullScreen = Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || player.isFullScreen; + + if (isFullScreen) { + player.exitFullScreen(); + } else { + player.enterFullScreen(); + } + }); + + player.fullscreenBtn = fullscreenBtn; + + t.exitFullscreenCallback = function (e) { + var key = e.which || e.keyCode || 0; + if (key === 27 && (Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || t.isFullScreen)) { + player.exitFullScreen(); + } + }; + + t.globalBind('keydown', t.exitFullscreenCallback); + + t.normalHeight = 0; + t.normalWidth = 0; + + if (Features.HAS_TRUE_NATIVE_FULLSCREEN) { + var fullscreenChanged = function fullscreenChanged() { + if (player.isFullScreen) { + if (Features.isFullScreen()) { + player.isNativeFullScreen = true; + + player.setControlsSize(); + } else { + player.isNativeFullScreen = false; + + player.exitFullScreen(); + } + } + }; + + player.globalBind(Features.FULLSCREEN_EVENT_NAME, fullscreenChanged); + } + }, + cleanfullscreen: function cleanfullscreen(player) { + player.exitFullScreen(); + player.globalUnbind('keydown', player.exitFullscreenCallback); + }, + detectFullscreenMode: function detectFullscreenMode() { + var t = this, + isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName); + + var mode = ''; + + if (Features.HAS_TRUE_NATIVE_FULLSCREEN && isNative) { + mode = 'native-native'; + } else if (Features.HAS_TRUE_NATIVE_FULLSCREEN && !isNative) { + mode = 'plugin-native'; + } else if (t.usePluginFullScreen && Features.SUPPORT_POINTER_EVENTS) { + mode = 'plugin-click'; + } + + t.fullscreenMode = mode; + return mode; + }, + enterFullScreen: function enterFullScreen() { + var t = this, + isNative = t.media.rendererName !== null && /(html5|native)/i.test(t.media.rendererName), + containerStyles = getComputedStyle(t.container); + + if (t.options.useFakeFullscreen === false && Features.IS_IOS && Features.HAS_IOS_FULLSCREEN && typeof t.media.originalNode.webkitEnterFullscreen === 'function' && t.media.originalNode.canPlayType((0, _media.getTypeFromFile)(t.media.getSrc()))) { + t.media.originalNode.webkitEnterFullscreen(); + return; + } + + (0, _dom.addClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen'); + (0, _dom.addClass)(t.container, t.options.classPrefix + 'container-fullscreen'); + + t.normalHeight = parseFloat(containerStyles.height); + t.normalWidth = parseFloat(containerStyles.width); + + if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') { + Features.requestFullScreen(t.container); + + if (t.isInIframe) { + setTimeout(function checkFullscreen() { + + if (t.isNativeFullScreen) { + var percentErrorMargin = 0.002, + windowWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth, + screenWidth = screen.width, + absDiff = Math.abs(screenWidth - windowWidth), + marginError = screenWidth * percentErrorMargin; + + if (absDiff > marginError) { + t.exitFullScreen(); + } else { + setTimeout(checkFullscreen, 500); + } + } + }, 1000); + } + } + + t.container.style.width = '100%'; + t.container.style.height = '100%'; + + t.containerSizeTimeout = setTimeout(function () { + t.container.style.width = '100%'; + t.container.style.height = '100%'; + t.setControlsSize(); + }, 500); + + if (isNative) { + t.node.style.width = '100%'; + t.node.style.height = '100%'; + } else { + var elements = t.container.querySelectorAll('iframe, embed, object, video'), + _total = elements.length; + for (var i = 0; i < _total; i++) { + elements[i].style.width = '100%'; + elements[i].style.height = '100%'; + } + } + + if (t.options.setDimensions && typeof t.media.setSize === 'function') { + t.media.setSize(screen.width, screen.height); + } + + var layers = t.layers.children, + total = layers.length; + for (var _i = 0; _i < total; _i++) { + layers[_i].style.width = '100%'; + layers[_i].style.height = '100%'; + } + + if (t.fullscreenBtn) { + (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen'); + (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen'); + } + + t.setControlsSize(); + t.isFullScreen = true; + + var zoomFactor = Math.min(screen.width / t.width, screen.height / t.height), + captionText = t.container.querySelector('.' + t.options.classPrefix + 'captions-text'); + if (captionText) { + captionText.style.fontSize = zoomFactor * 100 + '%'; + captionText.style.lineHeight = 'normal'; + t.container.querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = '45px'; + } + var event = (0, _general.createEvent)('enteredfullscreen', t.container); + t.container.dispatchEvent(event); + }, + exitFullScreen: function exitFullScreen() { + var t = this, + isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName); + + clearTimeout(t.containerSizeTimeout); + + if (Features.HAS_TRUE_NATIVE_FULLSCREEN && (Features.IS_FULLSCREEN || t.isFullScreen)) { + Features.cancelFullScreen(); + } + + (0, _dom.removeClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen'); + (0, _dom.removeClass)(t.container, t.options.classPrefix + 'container-fullscreen'); + + if (t.options.setDimensions) { + t.container.style.width = t.normalWidth + 'px'; + t.container.style.height = t.normalHeight + 'px'; + + if (isNative) { + t.node.style.width = t.normalWidth + 'px'; + t.node.style.height = t.normalHeight + 'px'; + } else { + var elements = t.container.querySelectorAll('iframe, embed, object, video'), + _total2 = elements.length; + for (var i = 0; i < _total2; i++) { + elements[i].style.width = t.normalWidth + 'px'; + elements[i].style.height = t.normalHeight + 'px'; + } + } + + if (typeof t.media.setSize === 'function') { + t.media.setSize(t.normalWidth, t.normalHeight); + } + + var layers = t.layers.children, + total = layers.length; + for (var _i2 = 0; _i2 < total; _i2++) { + layers[_i2].style.width = t.normalWidth + 'px'; + layers[_i2].style.height = t.normalHeight + 'px'; + } + } + + if (t.fullscreenBtn) { + (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen'); + (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen'); + } + + t.setControlsSize(); + t.isFullScreen = false; + + var captionText = t.container.querySelector('.' + t.options.classPrefix + 'captions-text'); + if (captionText) { + captionText.style.fontSize = ''; + captionText.style.lineHeight = ''; + t.container.querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = ''; + } + var event = (0, _general.createEvent)('exitedfullscreen', t.container); + t.container.dispatchEvent(event); + } +}); + +},{"16":16,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"5":5}],10:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _general = _dereq_(27); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + playText: null, + + pauseText: null +}); + +Object.assign(_player2.default.prototype, { + buildplaypause: function buildplaypause(player, controls, layers, media) { + var t = this, + op = t.options, + playTitle = (0, _general.isString)(op.playText) ? op.playText : _i18n2.default.t('mejs.play'), + pauseTitle = (0, _general.isString)(op.pauseText) ? op.pauseText : _i18n2.default.t('mejs.pause'), + play = _document2.default.createElement('div'); + + play.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'playpause-button ' + t.options.classPrefix + 'play'; + play.innerHTML = ''; + play.addEventListener('click', function () { + if (t.paused) { + t.play(); + } else { + t.pause(); + } + }); + + var playBtn = play.querySelector('button'); + t.addControlElement(play, 'playpause'); + + function togglePlayPause(which) { + if ('play' === which) { + (0, _dom.removeClass)(play, t.options.classPrefix + 'play'); + (0, _dom.removeClass)(play, t.options.classPrefix + 'replay'); + (0, _dom.addClass)(play, t.options.classPrefix + 'pause'); + playBtn.setAttribute('title', pauseTitle); + playBtn.setAttribute('aria-label', pauseTitle); + } else { + + (0, _dom.removeClass)(play, t.options.classPrefix + 'pause'); + (0, _dom.removeClass)(play, t.options.classPrefix + 'replay'); + (0, _dom.addClass)(play, t.options.classPrefix + 'play'); + playBtn.setAttribute('title', playTitle); + playBtn.setAttribute('aria-label', playTitle); + } + } + + togglePlayPause('pse'); + + media.addEventListener('loadedmetadata', function () { + if (media.rendererName.indexOf('flash') === -1) { + togglePlayPause('pse'); + } + }); + media.addEventListener('play', function () { + togglePlayPause('play'); + }); + media.addEventListener('playing', function () { + togglePlayPause('play'); + }); + media.addEventListener('pause', function () { + togglePlayPause('pse'); + }); + media.addEventListener('ended', function () { + if (!player.options.loop) { + (0, _dom.removeClass)(play, t.options.classPrefix + 'pause'); + (0, _dom.removeClass)(play, t.options.classPrefix + 'play'); + (0, _dom.addClass)(play, t.options.classPrefix + 'replay'); + playBtn.setAttribute('title', playTitle); + playBtn.setAttribute('aria-label', playTitle); + } + }); + } +}); + +},{"16":16,"2":2,"26":26,"27":27,"5":5}],11:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _constants = _dereq_(25); + +var _time = _dereq_(30); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + enableProgressTooltip: true, + + useSmoothHover: true +}); + +Object.assign(_player2.default.prototype, { + buildprogress: function buildprogress(player, controls, layers, media) { + + var lastKeyPressTime = 0, + mouseIsDown = false, + startedPaused = false; + + var t = this, + autoRewindInitial = player.options.autoRewind, + tooltip = player.options.enableProgressTooltip ? '' + ('00:00') + ('') + '' : '', + rail = _document2.default.createElement('div'); + + rail.className = t.options.classPrefix + 'time-rail'; + rail.innerHTML = '' + ('') + ('') + ('') + ('') + ('') + ('' + tooltip) + ''; + + t.addControlElement(rail, 'progress'); + + controls.querySelector('.' + t.options.classPrefix + 'time-buffering').style.display = 'none'; + + t.rail = controls.querySelector('.' + t.options.classPrefix + 'time-rail'); + t.total = controls.querySelector('.' + t.options.classPrefix + 'time-total'); + t.loaded = controls.querySelector('.' + t.options.classPrefix + 'time-loaded'); + t.current = controls.querySelector('.' + t.options.classPrefix + 'time-current'); + t.handle = controls.querySelector('.' + t.options.classPrefix + 'time-handle'); + t.timefloat = controls.querySelector('.' + t.options.classPrefix + 'time-float'); + t.timefloatcurrent = controls.querySelector('.' + t.options.classPrefix + 'time-float-current'); + t.slider = controls.querySelector('.' + t.options.classPrefix + 'time-slider'); + t.hovered = controls.querySelector('.' + t.options.classPrefix + 'time-hovered'); + t.newTime = 0; + t.forcedHandlePause = false; + t.setTransformStyle = function (element, value) { + element.style.transform = value; + element.style.webkitTransform = value; + element.style.MozTransform = value; + element.style.msTransform = value; + element.style.OTransform = value; + }; + + var handleMouseMove = function handleMouseMove(e) { + var totalStyles = getComputedStyle(t.total), + offsetStyles = (0, _dom.offset)(t.total), + width = t.total.offsetWidth, + transform = function () { + if (totalStyles.webkitTransform !== undefined) { + return 'webkitTransform'; + } else if (totalStyles.mozTransform !== undefined) { + return 'mozTransform '; + } else if (totalStyles.oTransform !== undefined) { + return 'oTransform'; + } else if (totalStyles.msTransform !== undefined) { + return 'msTransform'; + } else { + return 'transform'; + } + }(), + cssMatrix = function () { + if ('WebKitCSSMatrix' in window) { + return 'WebKitCSSMatrix'; + } else if ('MSCSSMatrix' in window) { + return 'MSCSSMatrix'; + } else if ('CSSMatrix' in window) { + return 'CSSMatrix'; + } + }(); + + var percentage = 0, + leftPos = 0, + pos = 0, + x = void 0; + + if (e.originalEvent && e.originalEvent.changedTouches) { + x = e.originalEvent.changedTouches[0].pageX; + } else if (e.changedTouches) { + x = e.changedTouches[0].pageX; + } else { + x = e.pageX; + } + + if (t.getDuration()) { + if (x < offsetStyles.left) { + x = offsetStyles.left; + } else if (x > width + offsetStyles.left) { + x = width + offsetStyles.left; + } + + pos = x - offsetStyles.left; + percentage = pos / width; + t.newTime = percentage <= 0.02 ? 0 : percentage * t.getDuration(); + + if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) { + t.setCurrentRailHandle(t.newTime); + t.updateCurrent(t.newTime); + } + + if (!_constants.IS_IOS && !_constants.IS_ANDROID && t.timefloat) { + if (pos < 0) { + pos = 0; + } + if (t.options.useSmoothHover && cssMatrix !== null && typeof window[cssMatrix] !== 'undefined') { + var matrix = new window[cssMatrix](getComputedStyle(t.handle)[transform]), + handleLocation = matrix.m41, + hoverScaleX = pos / parseFloat(getComputedStyle(t.total).width) - handleLocation / parseFloat(getComputedStyle(t.total).width); + + t.hovered.style.left = handleLocation + 'px'; + t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')'); + t.hovered.setAttribute('pos', pos); + + if (hoverScaleX >= 0) { + (0, _dom.removeClass)(t.hovered, 'negative'); + } else { + (0, _dom.addClass)(t.hovered, 'negative'); + } + } + + var half = t.timefloat.offsetWidth / 2; + if (x <= t.timefloat.offsetWidth + half) { + leftPos = half; + } else if (x >= t.container.offsetWidth - half) { + leftPos = t.total.offsetWidth - half; + } else { + leftPos = pos; + } + + t.timefloat.style.left = leftPos + 'px'; + t.timefloatcurrent.innerHTML = (0, _time.secondsToTimeCode)(t.newTime, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength); + t.timefloat.style.display = 'block'; + } + } else if (!_constants.IS_IOS && !_constants.IS_ANDROID && t.timefloat) { + leftPos = t.timefloat.offsetWidth + width >= t.container.offsetWidth ? t.timefloat.offsetWidth / 2 : 0; + t.timefloat.style.left = leftPos + 'px'; + t.timefloat.style.left = leftPos + 'px'; + t.timefloat.style.display = 'block'; + } + }, + updateSlider = function updateSlider() { + var seconds = t.getCurrentTime(), + timeSliderText = _i18n2.default.t('mejs.time-slider'), + time = (0, _time.secondsToTimeCode)(seconds, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength), + duration = t.getDuration(); + + t.slider.setAttribute('role', 'slider'); + t.slider.tabIndex = 0; + + if (media.paused) { + t.slider.setAttribute('aria-label', timeSliderText); + t.slider.setAttribute('aria-valuemin', 0); + t.slider.setAttribute('aria-valuemax', duration); + t.slider.setAttribute('aria-valuenow', seconds); + t.slider.setAttribute('aria-valuetext', time); + } else { + t.slider.removeAttribute('aria-label'); + t.slider.removeAttribute('aria-valuemin'); + t.slider.removeAttribute('aria-valuemax'); + t.slider.removeAttribute('aria-valuenow'); + t.slider.removeAttribute('aria-valuetext'); + } + }, + restartPlayer = function restartPlayer() { + if (new Date() - lastKeyPressTime >= 1000) { + t.play(); + } + }, + handleMouseup = function handleMouseup() { + if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) { + t.setCurrentTime(t.newTime); + t.setCurrentRail(); + t.updateCurrent(t.newTime); + } + if (t.forcedHandlePause) { + t.slider.focus(); + t.play(); + } + t.forcedHandlePause = false; + }; + + t.slider.addEventListener('focus', function () { + player.options.autoRewind = false; + }); + t.slider.addEventListener('blur', function () { + player.options.autoRewind = autoRewindInitial; + }); + t.slider.addEventListener('keydown', function (e) { + if (new Date() - lastKeyPressTime >= 1000) { + startedPaused = t.paused; + } + + if (t.options.keyActions.length) { + + var keyCode = e.which || e.keyCode || 0, + duration = t.getDuration(), + seekForward = player.options.defaultSeekForwardInterval(media), + seekBackward = player.options.defaultSeekBackwardInterval(media); + + var seekTime = t.getCurrentTime(); + + switch (keyCode) { + case 37: + case 40: + if (t.getDuration() !== Infinity) { + seekTime -= seekBackward; + } + break; + case 39: + case 38: + if (t.getDuration() !== Infinity) { + seekTime += seekForward; + } + break; + case 36: + seekTime = 0; + break; + case 35: + seekTime = duration; + break; + case 32: + if (!_constants.IS_FIREFOX) { + if (t.paused) { + t.play(); + } else { + t.pause(); + } + } + return; + case 13: + if (t.paused) { + t.play(); + } else { + t.pause(); + } + return; + default: + return; + } + + seekTime = seekTime < 0 ? 0 : seekTime >= duration ? duration : Math.floor(seekTime); + lastKeyPressTime = new Date(); + if (!startedPaused) { + player.pause(); + } + + if (seekTime < t.getDuration() && !startedPaused) { + setTimeout(restartPlayer, 1100); + } + + t.setCurrentTime(seekTime); + + e.preventDefault(); + e.stopPropagation(); + } + }); + + var events = ['mousedown', 'touchstart']; + + t.slider.addEventListener('dragstart', function () { + return false; + }); + + for (var i = 0, total = events.length; i < total; i++) { + t.slider.addEventListener(events[i], function (e) { + t.forcedHandlePause = false; + if (t.getDuration() !== Infinity) { + if (e.which === 1 || e.which === 0) { + if (!t.paused) { + t.pause(); + t.forcedHandlePause = true; + } + + mouseIsDown = true; + handleMouseMove(e); + var endEvents = ['mouseup', 'touchend']; + + for (var j = 0, totalEvents = endEvents.length; j < totalEvents; j++) { + t.container.addEventListener(endEvents[j], function (event) { + var target = event.target; + if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) { + handleMouseMove(event); + } + }); + } + t.globalBind('mouseup.dur touchend.dur', function () { + handleMouseup(); + mouseIsDown = false; + if (t.timefloat) { + t.timefloat.style.display = 'none'; + } + t.globalUnbind('mousemove.dur touchmove.dur mouseup.dur touchend.dur'); + }); + } + } + }); + } + t.slider.addEventListener('mouseenter', function (e) { + if (e.target === t.slider && t.getDuration() !== Infinity) { + t.container.addEventListener('mousemove', function (event) { + var target = event.target; + if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) { + handleMouseMove(event); + } + }); + if (t.timefloat && !_constants.IS_IOS && !_constants.IS_ANDROID) { + t.timefloat.style.display = 'block'; + } + if (t.hovered && !_constants.IS_IOS && !_constants.IS_ANDROID && t.options.useSmoothHover) { + (0, _dom.removeClass)(t.hovered, 'no-hover'); + } + } + }); + t.slider.addEventListener('mouseleave', function () { + if (t.getDuration() !== Infinity) { + if (!mouseIsDown) { + t.globalUnbind('mousemove.dur'); + if (t.timefloat) { + t.timefloat.style.display = 'none'; + } + if (t.hovered && t.options.useSmoothHover) { + (0, _dom.addClass)(t.hovered, 'no-hover'); + } + } + } + }); + + t.broadcastCallback = function (e) { + var broadcast = controls.querySelector('.' + t.options.classPrefix + 'broadcast'); + if (t.getDuration() !== Infinity) { + if (broadcast) { + t.slider.style.display = ''; + broadcast.remove(); + } + + player.setProgressRail(e); + if (!t.forcedHandlePause) { + player.setCurrentRail(e); + } + updateSlider(); + } else if (!broadcast) { + var label = _document2.default.createElement('span'); + label.className = t.options.classPrefix + 'broadcast'; + label.innerText = _i18n2.default.t('mejs.live-broadcast'); + t.slider.style.display = 'none'; + } + }; + + media.addEventListener('progress', t.broadcastCallback); + media.addEventListener('timeupdate', t.broadcastCallback); + + t.container.addEventListener('controlsresize', function (e) { + if (t.getDuration() !== Infinity) { + player.setProgressRail(e); + if (!t.forcedHandlePause) { + player.setCurrentRail(e); + } + } + }); + }, + cleanprogress: function cleanprogress(player, controls, layers, media) { + media.removeEventListener('progress', player.broadcastCallback); + media.removeEventListener('timeupdate', player.broadcastCallback); + if (player.rail) { + player.rail.remove(); + } + }, + setProgressRail: function setProgressRail(e) { + var t = this, + target = e !== undefined ? e.detail.target || e.target : t.media; + + var percent = null; + + if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && t.getDuration()) { + percent = target.buffered.end(target.buffered.length - 1) / t.getDuration(); + } else if (target && target.bytesTotal !== undefined && target.bytesTotal > 0 && target.bufferedBytes !== undefined) { + percent = target.bufferedBytes / target.bytesTotal; + } else if (e && e.lengthComputable && e.total !== 0) { + percent = e.loaded / e.total; + } + + if (percent !== null) { + percent = Math.min(1, Math.max(0, percent)); + + if (t.loaded) { + t.setTransformStyle(t.loaded, 'scaleX(' + percent + ')'); + } + } + }, + setCurrentRailHandle: function setCurrentRailHandle(fakeTime) { + var t = this; + t.setCurrentRailMain(t, fakeTime); + }, + setCurrentRail: function setCurrentRail() { + var t = this; + t.setCurrentRailMain(t); + }, + setCurrentRailMain: function setCurrentRailMain(t, fakeTime) { + if (t.getCurrentTime() !== undefined && t.getDuration()) { + var nTime = typeof fakeTime === 'undefined' ? t.getCurrentTime() : fakeTime; + + if (t.total && t.handle) { + var tW = parseFloat(getComputedStyle(t.total).width); + + var newWidth = Math.round(tW * nTime / t.getDuration()), + handlePos = newWidth - Math.round(t.handle.offsetWidth / 2); + + handlePos = handlePos < 0 ? 0 : handlePos; + t.setTransformStyle(t.current, 'scaleX(' + newWidth / tW + ')'); + t.setTransformStyle(t.handle, 'translateX(' + handlePos + 'px)'); + + if (t.options.useSmoothHover && !(0, _dom.hasClass)(t.hovered, 'no-hover')) { + var pos = parseInt(t.hovered.getAttribute('pos')); + pos = isNaN(pos) ? 0 : pos; + + var hoverScaleX = pos / tW - handlePos / tW; + + t.hovered.style.left = handlePos + 'px'; + t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')'); + + if (hoverScaleX >= 0) { + (0, _dom.removeClass)(t.hovered, 'negative'); + } else { + (0, _dom.addClass)(t.hovered, 'negative'); + } + } + } + } + } +}); + +},{"16":16,"2":2,"25":25,"26":26,"30":30,"5":5}],12:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _time = _dereq_(30); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + duration: 0, + + timeAndDurationSeparator: ' | ' +}); + +Object.assign(_player2.default.prototype, { + buildcurrent: function buildcurrent(player, controls, layers, media) { + var t = this, + time = _document2.default.createElement('div'); + + time.className = t.options.classPrefix + 'time'; + time.setAttribute('role', 'timer'); + time.setAttribute('aria-live', 'off'); + time.innerHTML = '' + (0, _time.secondsToTimeCode)(0, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength) + ''; + + t.addControlElement(time, 'current'); + t.updateTimeCallback = function () { + if (t.controlsAreVisible) { + player.updateCurrent(); + } + }; + media.addEventListener('timeupdate', t.updateTimeCallback); + }, + cleancurrent: function cleancurrent(player, controls, layers, media) { + media.removeEventListener('timeupdate', player.updateTimeCallback); + }, + buildduration: function buildduration(player, controls, layers, media) { + var t = this, + currTime = controls.lastChild.querySelector('.' + t.options.classPrefix + 'currenttime'); + + if (currTime) { + controls.querySelector('.' + t.options.classPrefix + 'time').innerHTML += t.options.timeAndDurationSeparator + '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength) + ''); + } else { + if (controls.querySelector('.' + t.options.classPrefix + 'currenttime')) { + (0, _dom.addClass)(controls.querySelector('.' + t.options.classPrefix + 'currenttime').parentNode, t.options.classPrefix + 'currenttime-container'); + } + + var duration = _document2.default.createElement('div'); + duration.className = t.options.classPrefix + 'time ' + t.options.classPrefix + 'duration-container'; + duration.innerHTML = '' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength) + ''); + + t.addControlElement(duration, 'duration'); + } + + media.addEventListener('timeupdate', t.updateTimeCallback); + }, + cleanduration: function cleanduration(player, controls, layers, media) { + media.removeEventListener('timeupdate', player.updateTimeCallback); + }, + updateCurrent: function updateCurrent() { + var t = this; + + var currentTime = t.getCurrentTime(); + + if (isNaN(currentTime)) { + currentTime = 0; + } + + var timecode = (0, _time.secondsToTimeCode)(currentTime, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength); + + if (timecode.length > 5) { + (0, _dom.addClass)(t.container, t.options.classPrefix + 'long-video'); + } else { + (0, _dom.removeClass)(t.container, t.options.classPrefix + 'long-video'); + } + + if (t.controls.querySelector('.' + t.options.classPrefix + 'currenttime')) { + t.controls.querySelector('.' + t.options.classPrefix + 'currenttime').innerText = timecode; + } + }, + updateDuration: function updateDuration() { + var t = this; + + var duration = t.getDuration(); + + if (isNaN(duration) || duration === Infinity || duration < 0) { + t.media.duration = t.options.duration = duration = 0; + } + + if (t.options.duration > 0) { + duration = t.options.duration; + } + + var timecode = (0, _time.secondsToTimeCode)(duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength); + + if (timecode.length > 5) { + (0, _dom.addClass)(t.container, t.options.classPrefix + 'long-video'); + } else { + (0, _dom.removeClass)(t.container, t.options.classPrefix + 'long-video'); + } + + if (t.controls.querySelector('.' + t.options.classPrefix + 'duration') && duration > 0) { + t.controls.querySelector('.' + t.options.classPrefix + 'duration').innerHTML = timecode; + } + } +}); + +},{"16":16,"2":2,"26":26,"30":30}],13:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _time = _dereq_(30); + +var _general = _dereq_(27); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + startLanguage: '', + + tracksText: null, + + chaptersText: null, + + tracksAriaLive: false, + + hideCaptionsButtonWhenEmpty: true, + + toggleCaptionsButtonWhenOnlyOne: false, + + slidesSelector: '' +}); + +Object.assign(_player2.default.prototype, { + hasChapters: false, + + buildtracks: function buildtracks(player, controls, layers, media) { + + if (!player.tracks.length && (!player.trackFiles || !player.trackFiles.length === 0)) { + return; + } + + var t = this, + attr = t.options.tracksAriaLive ? ' role="log" aria-live="assertive" aria-atomic="false"' : '', + tracksTitle = (0, _general.isString)(t.options.tracksText) ? t.options.tracksText : _i18n2.default.t('mejs.captions-subtitles'), + chaptersTitle = (0, _general.isString)(t.options.chaptersText) ? t.options.chaptersText : _i18n2.default.t('mejs.captions-chapters'), + total = player.trackFiles === null ? player.tracks.length : player.trackFiles.length; + + if (t.domNode.textTracks) { + for (var i = t.domNode.textTracks.length - 1; i >= 0; i--) { + t.domNode.textTracks[i].mode = 'hidden'; + } + } + + t.cleartracks(player); + + player.captions = _document2.default.createElement('div'); + player.captions.className = t.options.classPrefix + 'captions-layer ' + t.options.classPrefix + 'layer'; + player.captions.innerHTML = '
' + ('') + '
'; + player.captions.style.display = 'none'; + layers.insertBefore(player.captions, layers.firstChild); + + player.captionsText = player.captions.querySelector('.' + t.options.classPrefix + 'captions-text'); + + player.captionsButton = _document2.default.createElement('div'); + player.captionsButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'captions-button'; + player.captionsButton.innerHTML = '' + ('
') + ('
    ') + ('
  • ') + ('' + ('') + '
  • ' + '
' + '
'; + + t.addControlElement(player.captionsButton, 'tracks'); + + player.captionsButton.querySelector('.' + t.options.classPrefix + 'captions-selector-input').disabled = false; + + player.chaptersButton = _document2.default.createElement('div'); + player.chaptersButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'chapters-button'; + player.chaptersButton.innerHTML = '' + ('
') + ('
    ') + '
    '; + + var subtitleCount = 0; + + for (var _i = 0; _i < total; _i++) { + var kind = player.tracks[_i].kind, + src = player.tracks[_i].src; + if (src.trim()) { + if (kind === 'subtitles' || kind === 'captions') { + subtitleCount++; + } else if (kind === 'chapters' && !controls.querySelector('.' + t.options.classPrefix + 'chapter-selector')) { + player.captionsButton.parentNode.insertBefore(player.chaptersButton, player.captionsButton); + } + } + } + + player.trackToLoad = -1; + player.selectedTrack = null; + player.isLoadingTrack = false; + + for (var _i2 = 0; _i2 < total; _i2++) { + var _kind = player.tracks[_i2].kind; + if (player.tracks[_i2].src.trim() && (_kind === 'subtitles' || _kind === 'captions')) { + player.addTrackButton(player.tracks[_i2].trackId, player.tracks[_i2].srclang, player.tracks[_i2].label); + } + } + + player.loadNextTrack(); + + var inEvents = ['mouseenter', 'focusin'], + outEvents = ['mouseleave', 'focusout']; + + if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount === 1) { + player.captionsButton.addEventListener('click', function () { + var trackId = 'none'; + if (player.selectedTrack === null) { + trackId = player.tracks[0].trackId; + } + player.setTrack(trackId); + }); + } else { + var labels = player.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selector-label'), + captions = player.captionsButton.querySelectorAll('input[type=radio]'); + + for (var _i3 = 0, _total = inEvents.length; _i3 < _total; _i3++) { + player.captionsButton.addEventListener(inEvents[_i3], function () { + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); + }); + } + + for (var _i4 = 0, _total2 = outEvents.length; _i4 < _total2; _i4++) { + player.captionsButton.addEventListener(outEvents[_i4], function () { + (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen'); + }); + } + + for (var _i5 = 0, _total3 = captions.length; _i5 < _total3; _i5++) { + captions[_i5].addEventListener('click', function () { + player.setTrack(this.value); + }); + } + + for (var _i6 = 0, _total4 = labels.length; _i6 < _total4; _i6++) { + labels[_i6].addEventListener('click', function () { + var radio = (0, _dom.siblings)(this, function (el) { + return el.tagName === 'INPUT'; + })[0], + event = (0, _general.createEvent)('click', radio); + radio.dispatchEvent(event); + }); + } + + player.captionsButton.addEventListener('keydown', function (e) { + e.stopPropagation(); + }); + } + + for (var _i7 = 0, _total5 = inEvents.length; _i7 < _total5; _i7++) { + player.chaptersButton.addEventListener(inEvents[_i7], function () { + if (this.querySelector('.' + t.options.classPrefix + 'chapters-selector-list').children.length) { + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); + } + }); + } + + for (var _i8 = 0, _total6 = outEvents.length; _i8 < _total6; _i8++) { + player.chaptersButton.addEventListener(outEvents[_i8], function () { + (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen'); + }); + } + + player.chaptersButton.addEventListener('keydown', function (e) { + e.stopPropagation(); + }); + + if (!player.options.alwaysShowControls) { + player.container.addEventListener('controlsshown', function () { + (0, _dom.addClass)(player.container.querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); + }); + + player.container.addEventListener('controlshidden', function () { + if (!media.paused) { + (0, _dom.removeClass)(player.container.querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); + } + }); + } else { + (0, _dom.addClass)(player.container.querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover'); + } + + media.addEventListener('timeupdate', function () { + player.displayCaptions(); + }); + + if (player.options.slidesSelector !== '') { + player.slidesContainer = _document2.default.querySelectorAll(player.options.slidesSelector); + + media.addEventListener('timeupdate', function () { + player.displaySlides(); + }); + } + }, + cleartracks: function cleartracks(player) { + if (player) { + if (player.captions) { + player.captions.remove(); + } + if (player.chapters) { + player.chapters.remove(); + } + if (player.captionsText) { + player.captionsText.remove(); + } + if (player.captionsButton) { + player.captionsButton.remove(); + } + if (player.chaptersButton) { + player.chaptersButton.remove(); + } + } + }, + rebuildtracks: function rebuildtracks() { + var t = this; + t.findTracks(); + t.buildtracks(t, t.controls, t.layers, t.media); + }, + findTracks: function findTracks() { + var t = this, + tracktags = t.trackFiles === null ? t.node.querySelectorAll('track') : t.trackFiles, + total = tracktags.length; + + t.tracks = []; + for (var i = 0; i < total; i++) { + var track = tracktags[i], + srclang = track.getAttribute('srclang').toLowerCase() || '', + trackId = t.id + '_track_' + i + '_' + track.getAttribute('kind') + '_' + srclang; + t.tracks.push({ + trackId: trackId, + srclang: srclang, + src: track.getAttribute('src'), + kind: track.getAttribute('kind'), + label: track.getAttribute('label') || '', + entries: [], + isLoaded: false + }); + } + }, + setTrack: function setTrack(trackId) { + + var t = this, + radios = t.captionsButton.querySelectorAll('input[type="radio"]'), + captions = t.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selected'), + track = t.captionsButton.querySelector('input[value="' + trackId + '"]'); + + for (var i = 0, total = radios.length; i < total; i++) { + radios[i].checked = false; + } + + for (var _i9 = 0, _total7 = captions.length; _i9 < _total7; _i9++) { + (0, _dom.removeClass)(captions[_i9], t.options.classPrefix + 'captions-selected'); + } + + track.checked = true; + var labels = (0, _dom.siblings)(track, function (el) { + return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label'); + }); + for (var _i10 = 0, _total8 = labels.length; _i10 < _total8; _i10++) { + (0, _dom.addClass)(labels[_i10], t.options.classPrefix + 'captions-selected'); + } + + if (trackId === 'none') { + t.selectedTrack = null; + (0, _dom.removeClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); + } else { + for (var _i11 = 0, _total9 = t.tracks.length; _i11 < _total9; _i11++) { + var _track = t.tracks[_i11]; + if (_track.trackId === trackId) { + if (t.selectedTrack === null) { + (0, _dom.addClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled'); + } + t.selectedTrack = _track; + t.captions.setAttribute('lang', t.selectedTrack.srclang); + t.displayCaptions(); + break; + } + } + } + + var event = (0, _general.createEvent)('captionschange', t.media); + event.detail.caption = t.selectedTrack; + t.media.dispatchEvent(event); + }, + loadNextTrack: function loadNextTrack() { + var t = this; + + t.trackToLoad++; + if (t.trackToLoad < t.tracks.length) { + t.isLoadingTrack = true; + t.loadTrack(t.trackToLoad); + } else { + t.isLoadingTrack = false; + t.checkForTracks(); + } + }, + loadTrack: function loadTrack(index) { + var t = this, + track = t.tracks[index]; + + if (track !== undefined && (track.src !== undefined || track.src !== "")) { + (0, _dom.ajax)(track.src, 'text', function (d) { + track.entries = typeof d === 'string' && /' + ('') + ('') + ''; + }, + checkForTracks: function checkForTracks() { + var t = this; + + var hasSubtitles = false; + + if (t.options.hideCaptionsButtonWhenEmpty) { + for (var i = 0, total = t.tracks.length; i < total; i++) { + var kind = t.tracks[i].kind; + if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) { + hasSubtitles = true; + break; + } + } + + t.captionsButton.style.display = hasSubtitles ? '' : 'none'; + t.setControlsSize(); + } + }, + displayCaptions: function displayCaptions() { + if (this.tracks === undefined) { + return; + } + + var t = this, + track = t.selectedTrack, + sanitize = function sanitize(html) { + var div = _document2.default.createElement('div'); + div.innerHTML = html; + + var scripts = div.getElementsByTagName('script'); + var i = scripts.length; + while (i--) { + scripts[i].remove(); + } + + var allElements = div.getElementsByTagName('*'); + for (var _i12 = 0, n = allElements.length; _i12 < n; _i12++) { + var attributesObj = allElements[_i12].attributes, + attributes = Array.prototype.slice.call(attributesObj); + + for (var j = 0, total = attributes.length; j < total; j++) { + if (attributes[j].name.startsWith('on') || attributes[j].value.startsWith('javascript')) { + allElements[_i12].remove(); + } else if (attributes[j].name === 'style') { + allElements[_i12].removeAttribute(attributes[j].name); + } + } + } + return div.innerHTML; + }; + + if (track !== null && track.isLoaded) { + var i = t.searchTrackPosition(track.entries, t.media.currentTime); + if (i > -1) { + t.captionsText.innerHTML = sanitize(track.entries[i].text); + t.captionsText.className = t.options.classPrefix + 'captions-text ' + (track.entries[i].identifier || ''); + t.captions.style.display = ''; + t.captions.style.height = '0px'; + return; + } + t.captions.style.display = 'none'; + } else { + t.captions.style.display = 'none'; + } + }, + setupSlides: function setupSlides(track) { + var t = this; + t.slides = track; + t.slides.entries.imgs = [t.slides.entries.length]; + t.showSlide(0); + }, + showSlide: function showSlide(index) { + var _this = this; + + var t = this; + + if (t.tracks === undefined || t.slidesContainer === undefined) { + return; + } + + var url = t.slides.entries[index].text; + + var img = t.slides.entries[index].imgs; + + if (img === undefined || img.fadeIn === undefined) { + var image = _document2.default.createElement('img'); + image.src = url; + image.addEventListener('load', function () { + var self = _this, + visible = (0, _dom.siblings)(self, function (el) { + return visible(el); + }); + self.style.display = 'none'; + t.slidesContainer.innerHTML += self.innerHTML; + (0, _dom.fadeIn)(t.slidesContainer.querySelector(image)); + for (var i = 0, total = visible.length; i < total; i++) { + (0, _dom.fadeOut)(visible[i], 400); + } + }); + t.slides.entries[index].imgs = img = image; + } else if (!(0, _dom.visible)(img)) { + var _visible = (0, _dom.siblings)(self, function (el) { + return _visible(el); + }); + (0, _dom.fadeIn)(t.slidesContainer.querySelector(img)); + for (var i = 0, total = _visible.length; i < total; i++) { + (0, _dom.fadeOut)(_visible[i]); + } + } + }, + displaySlides: function displaySlides() { + var t = this; + + if (this.slides === undefined) { + return; + } + + var slides = t.slides, + i = t.searchTrackPosition(slides.entries, t.media.currentTime); + + if (i > -1) { + t.showSlide(i); + } + }, + drawChapters: function drawChapters(chapters) { + var t = this, + total = chapters.entries.length; + + if (!total) { + return; + } + + t.chaptersButton.querySelector('ul').innerHTML = ''; + + for (var i = 0; i < total; i++) { + t.chaptersButton.querySelector('ul').innerHTML += '
  • ' + ('') + ('') + '
  • '; + } + + var radios = t.chaptersButton.querySelectorAll('input[type="radio"]'), + labels = t.chaptersButton.querySelectorAll('.' + t.options.classPrefix + 'chapters-selector-label'); + + for (var _i13 = 0, _total10 = radios.length; _i13 < _total10; _i13++) { + radios[_i13].disabled = false; + radios[_i13].checked = false; + radios[_i13].addEventListener('click', function () { + var self = this, + listItems = t.chaptersButton.querySelectorAll('li'), + label = (0, _dom.siblings)(self, function (el) { + return (0, _dom.hasClass)(el, t.options.classPrefix + 'chapters-selector-label'); + })[0]; + + self.checked = true; + self.parentNode.setAttribute('aria-checked', true); + (0, _dom.addClass)(label, t.options.classPrefix + 'chapters-selected'); + (0, _dom.removeClass)(t.chaptersButton.querySelector('.' + t.options.classPrefix + 'chapters-selected'), t.options.classPrefix + 'chapters-selected'); + + for (var _i14 = 0, _total11 = listItems.length; _i14 < _total11; _i14++) { + listItems[_i14].setAttribute('aria-checked', false); + } + + t.media.setCurrentTime(parseFloat(self.value)); + if (t.media.paused) { + t.media.play(); + } + }); + } + + for (var _i15 = 0, _total12 = labels.length; _i15 < _total12; _i15++) { + labels[_i15].addEventListener('click', function () { + var radio = (0, _dom.siblings)(this, function (el) { + return el.tagName === 'INPUT'; + })[0], + event = (0, _general.createEvent)('click', radio); + radio.dispatchEvent(event); + }); + } + }, + searchTrackPosition: function searchTrackPosition(tracks, currentTime) { + var lo = 0, + hi = tracks.length - 1, + mid = void 0, + start = void 0, + stop = void 0; + + while (lo <= hi) { + mid = lo + hi >> 1; + start = tracks[mid].start; + stop = tracks[mid].stop; + + if (currentTime >= start && currentTime < stop) { + return mid; + } else if (start < currentTime) { + lo = mid + 1; + } else if (start > currentTime) { + hi = mid - 1; + } + } + + return -1; + } +}); + +_mejs2.default.language = { + codes: { + af: 'mejs.afrikaans', + sq: 'mejs.albanian', + ar: 'mejs.arabic', + be: 'mejs.belarusian', + bg: 'mejs.bulgarian', + ca: 'mejs.catalan', + zh: 'mejs.chinese', + 'zh-cn': 'mejs.chinese-simplified', + 'zh-tw': 'mejs.chines-traditional', + hr: 'mejs.croatian', + cs: 'mejs.czech', + da: 'mejs.danish', + nl: 'mejs.dutch', + en: 'mejs.english', + et: 'mejs.estonian', + fl: 'mejs.filipino', + fi: 'mejs.finnish', + fr: 'mejs.french', + gl: 'mejs.galician', + de: 'mejs.german', + el: 'mejs.greek', + ht: 'mejs.haitian-creole', + iw: 'mejs.hebrew', + hi: 'mejs.hindi', + hu: 'mejs.hungarian', + is: 'mejs.icelandic', + id: 'mejs.indonesian', + ga: 'mejs.irish', + it: 'mejs.italian', + ja: 'mejs.japanese', + ko: 'mejs.korean', + lv: 'mejs.latvian', + lt: 'mejs.lithuanian', + mk: 'mejs.macedonian', + ms: 'mejs.malay', + mt: 'mejs.maltese', + no: 'mejs.norwegian', + fa: 'mejs.persian', + pl: 'mejs.polish', + pt: 'mejs.portuguese', + ro: 'mejs.romanian', + ru: 'mejs.russian', + sr: 'mejs.serbian', + sk: 'mejs.slovak', + sl: 'mejs.slovenian', + es: 'mejs.spanish', + sw: 'mejs.swahili', + sv: 'mejs.swedish', + tl: 'mejs.tagalog', + th: 'mejs.thai', + tr: 'mejs.turkish', + uk: 'mejs.ukrainian', + vi: 'mejs.vietnamese', + cy: 'mejs.welsh', + yi: 'mejs.yiddish' + } +}; + +_mejs2.default.TrackFormatParser = { + webvtt: { + pattern: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/, + + parse: function parse(trackText) { + var lines = trackText.split(/\r?\n/), + entries = []; + + var timecode = void 0, + text = void 0, + identifier = void 0; + + for (var i = 0, total = lines.length; i < total; i++) { + timecode = this.pattern.exec(lines[i]); + + if (timecode && i < lines.length) { + if (i - 1 >= 0 && lines[i - 1] !== '') { + identifier = lines[i - 1]; + } + i++; + + text = lines[i]; + i++; + while (lines[i] !== '' && i < lines.length) { + text = text + '\n' + lines[i]; + i++; + } + text = text.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "
    $1"); + entries.push({ + identifier: identifier, + start: (0, _time.convertSMPTEtoSeconds)(timecode[1]) === 0 ? 0.200 : (0, _time.convertSMPTEtoSeconds)(timecode[1]), + stop: (0, _time.convertSMPTEtoSeconds)(timecode[3]), + text: text, + settings: timecode[5] + }); + } + identifier = ''; + } + return entries; + } + }, + + dfxp: { + parse: function parse(trackText) { + trackText = $(trackText).filter('tt'); + var container = trackText.firstChild, + lines = container.querySelectorAll('p'), + styleNode = trackText.getElementById('' + container.attr('style')), + entries = []; + + var styles = void 0; + + if (styleNode.length) { + styleNode.removeAttribute('id'); + var attributes = styleNode.attributes; + if (attributes.length) { + styles = {}; + for (var i = 0, total = attributes.length; i < total; i++) { + styles[attributes[i].name.split(":")[1]] = attributes[i].value; + } + } + } + + for (var _i16 = 0, _total13 = lines.length; _i16 < _total13; _i16++) { + var style = void 0, + _temp = { + start: null, + stop: null, + style: null, + text: null + }; + + if (lines.eq(_i16).attr('begin')) { + _temp.start = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16).attr('begin')); + } + if (!_temp.start && lines.eq(_i16 - 1).attr('end')) { + _temp.start = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16 - 1).attr('end')); + } + if (lines.eq(_i16).attr('end')) { + _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16).attr('end')); + } + if (!_temp.stop && lines.eq(_i16 + 1).attr('begin')) { + _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16 + 1).attr('begin')); + } + + if (styles) { + style = ''; + for (var _style in styles) { + style += _style + ':' + styles[_style] + ';'; + } + } + if (style) { + _temp.style = style; + } + if (_temp.start === 0) { + _temp.start = 0.200; + } + _temp.text = lines.eq(_i16).innerHTML.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "$1"); + entries.push(_temp); + } + return entries; + } + } +}; + +},{"16":16,"2":2,"26":26,"27":27,"30":30,"5":5,"7":7}],14:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _constants = _dereq_(25); + +var _general = _dereq_(27); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +Object.assign(_player.config, { + muteText: null, + + unmuteText: null, + + allyVolumeControlText: null, + + hideVolumeOnTouchDevices: true, + + audioVolume: 'horizontal', + + videoVolume: 'vertical', + + startVolume: 0.8 +}); + +Object.assign(_player2.default.prototype, { + buildvolume: function buildvolume(player, controls, layers, media) { + if ((_constants.IS_ANDROID || _constants.IS_IOS) && this.options.hideVolumeOnTouchDevices) { + return; + } + + var t = this, + mode = t.isVideo ? t.options.videoVolume : t.options.audioVolume, + muteText = (0, _general.isString)(t.options.muteText) ? t.options.muteText : _i18n2.default.t('mejs.mute'), + unmuteText = (0, _general.isString)(t.options.unmuteText) ? t.options.unmuteText : _i18n2.default.t('mejs.unmute'), + volumeControlText = (0, _general.isString)(t.options.allyVolumeControlText) ? t.options.allyVolumeControlText : _i18n2.default.t('mejs.volume-help-text'), + mute = _document2.default.createElement('div'); + + mute.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'volume-button ' + t.options.classPrefix + 'mute'; + mute.innerHTML = mode === 'horizontal' ? '' : '' + ('' + ('' + volumeControlText + '') + ('
    ') + ('
    ') + ('
    ') + '
    ' + '
    '; + + t.addControlElement(mute, 'volume'); + + if (mode === 'horizontal') { + var anchor = _document2.default.createElement('a'); + anchor.className = t.options.classPrefix + 'horizontal-volume-slider'; + anchor.href = 'javascript:void(0);'; + anchor.setAttribute('aria-label', _i18n2.default.t('mejs.volume-slider')); + anchor.setAttribute('aria-valuemin', 0); + anchor.setAttribute('aria-valuemax', 100); + anchor.setAttribute('role', 'slider'); + anchor.innerHTML += '' + volumeControlText + '' + ('
    ') + ('
    ') + ('
    ') + '
    '; + mute.parentNode.insertBefore(anchor, mute.nextSibling); + } + + var mouseIsDown = false, + mouseIsOver = false, + modified = false, + updateVolumeSlider = function updateVolumeSlider() { + var volume = Math.floor(media.volume * 100); + volumeSlider.setAttribute('aria-valuenow', volume); + volumeSlider.setAttribute('aria-valuetext', volume + '%'); + }; + + var volumeSlider = mode === 'vertical' ? t.container.querySelector('.' + t.options.classPrefix + 'volume-slider') : t.container.querySelector('.' + t.options.classPrefix + 'horizontal-volume-slider'), + volumeTotal = mode === 'vertical' ? t.container.querySelector('.' + t.options.classPrefix + 'volume-total') : t.container.querySelector('.' + t.options.classPrefix + 'horizontal-volume-total'), + volumeCurrent = mode === 'vertical' ? t.container.querySelector('.' + t.options.classPrefix + 'volume-current') : t.container.querySelector('.' + t.options.classPrefix + 'horizontal-volume-current'), + volumeHandle = mode === 'vertical' ? t.container.querySelector('.' + t.options.classPrefix + 'volume-handle') : t.container.querySelector('.' + t.options.classPrefix + 'horizontal-volume-handle'), + positionVolumeHandle = function positionVolumeHandle(volume) { + + if (volume === null || isNaN(volume) || volume === undefined) { + return; + } + + volume = Math.max(0, volume); + volume = Math.min(volume, 1); + + if (volume === 0) { + (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute'); + (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute'); + var button = mute.firstElementChild; + button.setAttribute('title', unmuteText); + button.setAttribute('aria-label', unmuteText); + } else { + (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute'); + (0, _dom.addClass)(mute, t.options.classPrefix + 'mute'); + var _button = mute.firstElementChild; + _button.setAttribute('title', muteText); + _button.setAttribute('aria-label', muteText); + } + + var volumePercentage = volume * 100 + '%', + volumeStyles = getComputedStyle(volumeHandle); + + if (mode === 'vertical') { + volumeCurrent.style.bottom = 0; + volumeCurrent.style.height = volumePercentage; + volumeHandle.style.bottom = volumePercentage; + volumeHandle.style.marginBottom = -parseFloat(volumeStyles.height) / 2 + 'px'; + } else { + volumeCurrent.style.left = 0; + volumeCurrent.style.width = volumePercentage; + volumeHandle.style.left = volumePercentage; + volumeHandle.style.marginLeft = -parseFloat(volumeStyles.width) / 2 + 'px'; + } + }, + handleVolumeMove = function handleVolumeMove(e) { + var totalOffset = (0, _dom.offset)(volumeTotal), + volumeStyles = getComputedStyle(volumeTotal); + + modified = true; + + var volume = null; + + if (mode === 'vertical') { + var railHeight = parseFloat(volumeStyles.height), + newY = e.pageY - totalOffset.top; + + volume = (railHeight - newY) / railHeight; + + if (totalOffset.top === 0 || totalOffset.left === 0) { + return; + } + } else { + var railWidth = parseFloat(volumeStyles.width), + newX = e.pageX - totalOffset.left; + + volume = newX / railWidth; + } + + volume = Math.max(0, volume); + volume = Math.min(volume, 1); + + positionVolumeHandle(volume); + + t.setMuted(volume === 0); + t.setVolume(volume); + + e.preventDefault(); + e.stopPropagation(); + }, + toggleMute = function toggleMute() { + if (t.muted) { + positionVolumeHandle(0); + (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute'); + (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute'); + } else { + positionVolumeHandle(media.volume); + (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute'); + (0, _dom.addClass)(mute, t.options.classPrefix + 'mute'); + } + }; + + mute.addEventListener('mouseenter', function (e) { + if (e.target === mute) { + volumeSlider.style.display = 'block'; + mouseIsOver = true; + e.preventDefault(); + e.stopPropagation(); + } + }); + mute.addEventListener('focusin', function () { + volumeSlider.style.display = 'block'; + mouseIsOver = true; + }); + + mute.addEventListener('focusout', function (e) { + if ((!e.relatedTarget || e.relatedTarget && !e.relatedTarget.matches('.' + t.options.classPrefix + 'volume-slider')) && mode === 'vertical') { + volumeSlider.style.display = 'none'; + } + }); + mute.addEventListener('mouseleave', function () { + mouseIsOver = false; + if (!mouseIsDown && mode === 'vertical') { + volumeSlider.style.display = 'none'; + } + }); + mute.addEventListener('focusout', function () { + mouseIsOver = false; + }); + mute.addEventListener('keydown', function (e) { + if (t.options.keyActions.length) { + var keyCode = e.which || e.keyCode || 0, + volume = media.volume; + + switch (keyCode) { + case 38: + volume = Math.min(volume + 0.1, 1); + break; + case 40: + volume = Math.max(0, volume - 0.1); + break; + default: + return true; + } + + mouseIsDown = false; + positionVolumeHandle(volume); + media.setVolume(volume); + + e.preventDefault(); + e.stopPropagation(); + } + }); + mute.querySelector('button').addEventListener('click', function () { + media.setMuted(!media.muted); + var event = (0, _general.createEvent)('volumechange', media); + media.dispatchEvent(event); + }); + + volumeSlider.addEventListener('dragstart', function () { + return false; + }); + + volumeSlider.addEventListener('mouseover', function () { + mouseIsOver = true; + }); + volumeSlider.addEventListener('focusin', function () { + volumeSlider.style.display = 'block'; + mouseIsOver = true; + }); + volumeSlider.addEventListener('focusout', function () { + mouseIsOver = false; + if (!mouseIsDown && mode === 'vertical') { + volumeSlider.style.display = 'none'; + } + }); + volumeSlider.addEventListener('mousedown', function (e) { + handleVolumeMove(e); + t.globalBind('mousemove.vol', function (event) { + var target = event.target; + if (mouseIsDown && (target === volumeSlider || target.closest(mode === 'vertical' ? '.' + t.options.classPrefix + 'volume-slider' : '.' + t.options.classPrefix + 'horizontal-volume-slider'))) { + handleVolumeMove(event); + } + }); + t.globalBind('mouseup.vol', function () { + mouseIsDown = false; + t.globalUnbind('mousemove.vol mouseup.vol'); + + if (!mouseIsOver && mode === 'vertical') { + volumeSlider.style.display = 'none'; + } + }); + mouseIsDown = true; + e.preventDefault(); + e.stopPropagation(); + }); + + media.addEventListener('volumechange', function (e) { + if (!mouseIsDown) { + toggleMute(); + } + updateVolumeSlider(e); + }); + + var rendered = false; + media.addEventListener('rendererready', function () { + if (!modified) { + setTimeout(function () { + rendered = true; + if (player.options.startVolume === 0 || media.originalNode.muted) { + media.setMuted(true); + player.options.startVolume = 0; + } + media.setVolume(player.options.startVolume); + t.setControlsSize(); + }, 250); + } + }); + + media.addEventListener('loadedmetadata', function () { + setTimeout(function () { + if (!modified && !rendered) { + if (player.options.startVolume === 0 || media.originalNode.muted) { + media.setMuted(true); + player.options.startVolume = 0; + } + media.setVolume(player.options.startVolume); + t.setControlsSize(); + } + rendered = false; + }, 250); + }); + + if (player.options.startVolume === 0 || media.originalNode.muted) { + media.setMuted(true); + player.options.startVolume = 0; + toggleMute(); + } + + t.container.addEventListener('controlsresize', function () { + toggleMute(); + }); + } +}); + +},{"16":16,"2":2,"25":25,"26":26,"27":27,"5":5}],15:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var EN = exports.EN = { + "mejs.plural-form": 1, + + "mejs.download-file": "Download File", + + "mejs.install-flash": "You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/", + + "mejs.fullscreen": "Fullscreen", + + "mejs.play": "Play", + "mejs.pause": "Pause", + + "mejs.time-slider": "Time Slider", + "mejs.time-help-text": "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.", + "mejs.live-broadcast": "Live Broadcast", + + "mejs.volume-help-text": "Use Up/Down Arrow keys to increase or decrease volume.", + "mejs.unmute": "Unmute", + "mejs.mute": "Mute", + "mejs.volume-slider": "Volume Slider", + + "mejs.video-player": "Video Player", + "mejs.audio-player": "Audio Player", + + "mejs.captions-subtitles": "Captions/Subtitles", + "mejs.captions-chapters": "Chapters", + "mejs.none": "None", + "mejs.afrikaans": "Afrikaans", + "mejs.albanian": "Albanian", + "mejs.arabic": "Arabic", + "mejs.belarusian": "Belarusian", + "mejs.bulgarian": "Bulgarian", + "mejs.catalan": "Catalan", + "mejs.chinese": "Chinese", + "mejs.chinese-simplified": "Chinese (Simplified)", + "mejs.chinese-traditional": "Chinese (Traditional)", + "mejs.croatian": "Croatian", + "mejs.czech": "Czech", + "mejs.danish": "Danish", + "mejs.dutch": "Dutch", + "mejs.english": "English", + "mejs.estonian": "Estonian", + "mejs.filipino": "Filipino", + "mejs.finnish": "Finnish", + "mejs.french": "French", + "mejs.galician": "Galician", + "mejs.german": "German", + "mejs.greek": "Greek", + "mejs.haitian-creole": "Haitian Creole", + "mejs.hebrew": "Hebrew", + "mejs.hindi": "Hindi", + "mejs.hungarian": "Hungarian", + "mejs.icelandic": "Icelandic", + "mejs.indonesian": "Indonesian", + "mejs.irish": "Irish", + "mejs.italian": "Italian", + "mejs.japanese": "Japanese", + "mejs.korean": "Korean", + "mejs.latvian": "Latvian", + "mejs.lithuanian": "Lithuanian", + "mejs.macedonian": "Macedonian", + "mejs.malay": "Malay", + "mejs.maltese": "Maltese", + "mejs.norwegian": "Norwegian", + "mejs.persian": "Persian", + "mejs.polish": "Polish", + "mejs.portuguese": "Portuguese", + "mejs.romanian": "Romanian", + "mejs.russian": "Russian", + "mejs.serbian": "Serbian", + "mejs.slovak": "Slovak", + "mejs.slovenian": "Slovenian", + "mejs.spanish": "Spanish", + "mejs.swahili": "Swahili", + "mejs.swedish": "Swedish", + "mejs.tagalog": "Tagalog", + "mejs.thai": "Thai", + "mejs.turkish": "Turkish", + "mejs.ukrainian": "Ukrainian", + "mejs.vietnamese": "Vietnamese", + "mejs.welsh": "Welsh", + "mejs.yiddish": "Yiddish" +}; + +},{}],16:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.config = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _mediaelement = _dereq_(6); + +var _mediaelement2 = _interopRequireDefault(_mediaelement); + +var _default = _dereq_(17); + +var _default2 = _interopRequireDefault(_default); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _constants = _dereq_(25); + +var _general = _dereq_(27); + +var _time = _dereq_(30); + +var _media = _dereq_(28); + +var _dom = _dereq_(26); + +var dom = _interopRequireWildcard(_dom); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +_mejs2.default.mepIndex = 0; + +_mejs2.default.players = {}; + +var config = exports.config = { + poster: '', + + showPosterWhenEnded: false, + + showPosterWhenPaused: false, + + defaultVideoWidth: 480, + + defaultVideoHeight: 270, + + videoWidth: -1, + + videoHeight: -1, + + defaultAudioWidth: 400, + + defaultAudioHeight: 40, + + defaultSeekBackwardInterval: function defaultSeekBackwardInterval(media) { + return media.getDuration() * 0.05; + }, + + defaultSeekForwardInterval: function defaultSeekForwardInterval(media) { + return media.getDuration() * 0.05; + }, + + setDimensions: true, + + audioWidth: -1, + + audioHeight: -1, + + loop: false, + + autoRewind: true, + + enableAutosize: true, + + timeFormat: '', + + alwaysShowHours: false, + + showTimecodeFrameCount: false, + + framesPerSecond: 25, + + alwaysShowControls: false, + + hideVideoControlsOnLoad: false, + + hideVideoControlsOnPause: false, + + clickToPlayPause: true, + + controlsTimeoutDefault: 1500, + + controlsTimeoutMouseEnter: 2500, + + controlsTimeoutMouseLeave: 1000, + + iPadUseNativeControls: false, + + iPhoneUseNativeControls: false, + + AndroidUseNativeControls: false, + + features: ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen'], + + isVideo: true, + + stretching: 'auto', + + classPrefix: 'mejs__', + + enableKeyboard: true, + + pauseOtherPlayers: true, + + secondsDecimalLength: 0, + + customError: '', + + keyActions: [{ + keys: [32, 179], + action: function action(player) { + + if (!_constants.IS_FIREFOX) { + if (player.paused || player.ended) { + player.play(); + } else { + player.pause(); + } + } + } + }, { + keys: [38], + action: function action(player) { + + if (player.container.querySelector('.' + config.classPrefix + 'volume-button>button').matches(':focus') || player.container.querySelector('.' + config.classPrefix + 'volume-slider').matches(':focus')) { + player.container.querySelector('.' + config.classPrefix + 'volume-slider').style.display = ''; + } + if (player.isVideo) { + player.showControls(); + player.startControlsTimer(); + } + + var newVolume = Math.min(player.volume + 0.1, 1); + player.setVolume(newVolume); + if (newVolume > 0) { + player.setMuted(false); + } + } + }, { + keys: [40], + action: function action(player) { + + if (player.container.querySelector('.' + config.classPrefix + 'volume-button>button').matches(':focus') || player.container.querySelector('.' + config.classPrefix + 'volume-slider').matches(':focus')) { + player.container.querySelector('.' + config.classPrefix + 'volume-slider').style.display = ''; + } + + if (player.isVideo) { + player.showControls(); + player.startControlsTimer(); + } + + var newVolume = Math.max(player.volume - 0.1, 0); + player.setVolume(newVolume); + + if (newVolume <= 0.1) { + player.setMuted(true); + } + } + }, { + keys: [37, 227], + action: function action(player) { + if (!isNaN(player.duration) && player.duration > 0) { + if (player.isVideo) { + player.showControls(); + player.startControlsTimer(); + } + + var newTime = Math.max(player.currentTime - player.options.defaultSeekBackwardInterval(player), 0); + player.setCurrentTime(newTime); + } + } + }, { + keys: [39, 228], + action: function action(player) { + + if (!isNaN(player.duration) && player.duration > 0) { + if (player.isVideo) { + player.showControls(); + player.startControlsTimer(); + } + + var newTime = Math.min(player.currentTime + player.options.defaultSeekForwardInterval(player), player.duration); + player.setCurrentTime(newTime); + } + } + }, { + keys: [70], + action: function action(player, media, key, event) { + if (!event.ctrlKey) { + if (typeof player.enterFullScreen !== 'undefined') { + if (player.isFullScreen) { + player.exitFullScreen(); + } else { + player.enterFullScreen(); + } + } + } + } + }, { + keys: [77], + action: function action(player) { + + player.container.querySelector('.' + config.classPrefix + 'volume-slider').style.display = ''; + if (player.isVideo) { + player.showControls(); + player.startControlsTimer(); + } + if (player.media.muted) { + player.setMuted(false); + } else { + player.setMuted(true); + } + } + }] +}; + +_mejs2.default.MepDefaults = config; + +var MediaElementPlayer = function () { + function MediaElementPlayer(node, o) { + _classCallCheck(this, MediaElementPlayer); + + var t = this, + element = typeof node === 'string' ? _document2.default.getElementById(node) : node; + + if (!(t instanceof MediaElementPlayer)) { + return new MediaElementPlayer(element, o); + } + + t.node = t.media = element; + + if (!t.node) { + return; + } + + if (t.media.player) { + return t.media.player; + } + + t.hasFocus = false; + + t.controlsAreVisible = true; + + t.controlsEnabled = true; + + t.controlsTimer = null; + + t.currentMediaTime = 0; + + t.proxy = null; + + if (o === undefined) { + var options = t.node.getAttribute('data-mejsoptions'); + o = options ? JSON.parse(options) : {}; + } + + t.options = Object.assign({}, config, o); + + if (t.options.loop && !t.media.getAttribute('loop')) { + t.media.loop = true; + t.node.loop = true; + } else if (t.media.loop) { + t.options.loop = true; + } + + if (!t.options.timeFormat) { + t.options.timeFormat = 'mm:ss'; + if (t.options.alwaysShowHours) { + t.options.timeFormat = 'hh:mm:ss'; + } + if (t.options.showTimecodeFrameCount) { + t.options.timeFormat += ':ff'; + } + } + + (0, _time.calculateTimeFormat)(0, t.options, t.options.framesPerSecond || 25); + + t.id = 'mep_' + _mejs2.default.mepIndex++; + + _mejs2.default.players[t.id] = t; + + var playerOptions = Object.assign({}, t.options, { + success: function success(media, domNode) { + t._meReady(media, domNode); + }, + error: function error(e) { + t._handleError(e); + } + }), + tagName = t.node.tagName.toLowerCase(); + + t.isDynamic = tagName !== 'audio' && tagName !== 'video' && tagName !== 'iframe'; + t.isVideo = t.isDynamic ? t.options.isVideo : tagName !== 'audio' && t.options.isVideo; + t.mediaFiles = null; + t.trackFiles = null; + + if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls) { + t.node.setAttribute('controls', true); + + if (_constants.IS_IPAD && t.node.getAttribute('autoplay')) { + t.play(); + } + } else if ((t.isVideo || !t.isVideo && t.options.features.length) && !(_constants.IS_ANDROID && t.options.AndroidUseNativeControls)) { + t.node.removeAttribute('controls'); + var videoPlayerTitle = t.isVideo ? _i18n2.default.t('mejs.video-player') : _i18n2.default.t('mejs.audio-player'); + + var offscreen = _document2.default.createElement('span'); + offscreen.className = t.options.classPrefix + 'offscreen'; + offscreen.innerText = videoPlayerTitle; + t.media.parentNode.insertBefore(offscreen, t.media); + + t.container = _document2.default.createElement('div'); + t.container.id = t.id; + t.container.className = t.options.classPrefix + 'container ' + t.options.classPrefix + 'container-keyboard-inactive ' + t.media.className; + t.container.tabIndex = 0; + t.container.setAttribute('role', 'application'); + t.container.setAttribute('aria-label', videoPlayerTitle); + t.container.innerHTML = '
    ' + ('
    ') + ('
    ') + ('
    ') + '
    '; + t.container.addEventListener('focus', function (e) { + if (!t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) { + t.showControls(true); + + var btnSelector = (0, _general.isNodeAfter)(e.relatedTarget, t.container) ? '.' + t.options.classPrefix + 'controls .' + t.options.classPrefix + 'button:last-child > button' : '.' + t.options.classPrefix + 'playpause-button > button', + button = t.container.querySelector(btnSelector); + + button.focus(); + } + }); + t.node.parentNode.insertBefore(t.container, t.node); + + if (!t.options.features.length) { + t.container.style.background = 'transparent'; + t.container.querySelector('.' + t.options.classPrefix + 'controls').style.display = 'none'; + } + + if (t.isVideo && t.options.stretching === 'fill' && !dom.hasClass(t.container.parentNode, t.options.classPrefix + 'fill-container')) { + t.outerContainer = t.media.parentNode; + + var wrapper = _document2.default.createElement('div'); + wrapper.className = t.options.classPrefix + 'fill-container'; + t.container.parentNode.insertBefore(wrapper, t.container); + wrapper.appendChild(t.container); + } + + if (_constants.IS_ANDROID) { + dom.addClass(t.container, t.options.classPrefix + 'android'); + } + if (_constants.IS_IOS) { + dom.addClass(t.container, t.options.classPrefix + 'ios'); + } + if (_constants.IS_IPAD) { + dom.addClass(t.container, t.options.classPrefix + 'ipad'); + } + if (_constants.IS_IPHONE) { + dom.addClass(t.container, t.options.classPrefix + 'iphone'); + } + dom.addClass(t.container, t.isVideo ? t.options.classPrefix + 'video' : t.options.classPrefix + 'audio'); + + if (_constants.IS_SAFARI && !_constants.IS_IOS) { + + dom.addClass(t.container, t.options.classPrefix + 'hide-cues'); + + var cloneNode = t.node.cloneNode(), + children = t.node.children, + mediaFiles = [], + tracks = []; + + for (var i = 0, total = children.length; i < total; i++) { + var childNode = children[i]; + + (function () { + switch (childNode.tagName.toLowerCase()) { + case 'source': + var elements = {}; + Array.prototype.slice.call(childNode.attributes).forEach(function (item) { + elements[item.name] = item.value; + }); + elements.type = (0, _media.formatType)(elements.src, elements.type); + mediaFiles.push(elements); + break; + case 'track': + childNode.mode = 'hidden'; + tracks.push(childNode); + break; + default: + cloneNode.appendChild(childNode); + break; + } + })(); + } + + t.node.remove(); + t.node = t.media = cloneNode; + + if (mediaFiles.length) { + t.mediaFiles = mediaFiles; + } + if (tracks.length) { + t.trackFiles = tracks; + } + } + + t.container.querySelector('.' + t.options.classPrefix + 'mediaelement').appendChild(t.node); + + t.media.player = t; + + t.controls = t.container.querySelector('.' + t.options.classPrefix + 'controls'); + t.layers = t.container.querySelector('.' + t.options.classPrefix + 'layers'); + + var tagType = t.isVideo ? 'video' : 'audio', + capsTagName = tagType.substring(0, 1).toUpperCase() + tagType.substring(1); + + if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) { + t.width = t.options[tagType + 'Width']; + } else if (t.node.style.width !== '' && t.node.style.width !== null) { + t.width = t.node.style.width; + } else if (t.node.getAttribute('width')) { + t.width = t.node.getAttribute('width'); + } else { + t.width = t.options['default' + capsTagName + 'Width']; + } + + if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) { + t.height = t.options[tagType + 'Height']; + } else if (t.node.style.height !== '' && t.node.style.height !== null) { + t.height = t.node.style.height; + } else if (t.node.getAttribute('height')) { + t.height = t.node.getAttribute('height'); + } else { + t.height = t.options['default' + capsTagName + 'Height']; + } + + t.initialAspectRatio = t.height >= t.width ? t.width / t.height : t.height / t.width; + + t.setPlayerSize(t.width, t.height); + + playerOptions.pluginWidth = t.width; + playerOptions.pluginHeight = t.height; + } else if (!t.isVideo && !t.options.features.length) { + t.node.style.display = 'none'; + } + + _mejs2.default.MepDefaults = playerOptions; + + new _mediaelement2.default(t.media, playerOptions, t.mediaFiles); + + if (t.container !== undefined && t.options.features.length && t.controlsAreVisible && !t.options.hideVideoControlsOnLoad) { + var event = (0, _general.createEvent)('controlsshown', t.container); + t.container.dispatchEvent(event); + } + + return t; + } + + _createClass(MediaElementPlayer, [{ + key: 'showControls', + value: function showControls(doAnimation) { + var t = this; + + doAnimation = doAnimation === undefined || doAnimation; + + if (t.controlsAreVisible || !t.isVideo) { + return; + } + + if (doAnimation) { + (function () { + dom.fadeIn(t.controls, 200, function () { + dom.removeClass(t.controls, t.options.classPrefix + 'offscreen'); + var event = (0, _general.createEvent)('controlsshown', t.container); + t.container.dispatchEvent(event); + }); + + var controls = t.container.querySelectorAll('.' + t.options.classPrefix + 'control'); + + var _loop = function _loop(i, total) { + dom.fadeIn(controls[i], 200, function () { + dom.removeClass(controls[i], t.options.classPrefix + 'offscreen'); + }); + }; + + for (var i = 0, total = controls.length; i < total; i++) { + _loop(i, total); + } + })(); + } else { + dom.removeClass(t.controls, t.options.classPrefix + 'offscreen'); + t.controls.style.display = ''; + t.controls.style.opacity = 1; + + var controls = t.container.querySelectorAll('.' + t.options.classPrefix + 'control'); + for (var i = 0, total = controls.length; i < total; i++) { + dom.removeClass(controls[i], t.options.classPrefix + 'offscreen'); + controls[i].style.display = ''; + } + + var event = (0, _general.createEvent)('controlsshown', t.container); + t.container.dispatchEvent(event); + } + + t.controlsAreVisible = true; + t.setControlsSize(); + } + }, { + key: 'hideControls', + value: function hideControls(doAnimation, forceHide) { + var t = this; + + doAnimation = doAnimation === undefined || doAnimation; + + if (forceHide !== true && (!t.controlsAreVisible || t.options.alwaysShowControls || t.paused && t.readyState === 4 && (!t.options.hideVideoControlsOnLoad && t.currentTime <= 0 || !t.options.hideVideoControlsOnPause && t.currentTime > 0) || t.isVideo && !t.options.hideVideoControlsOnLoad && !t.readyState || t.ended)) { + return; + } + + if (doAnimation) { + (function () { + dom.fadeOut(t.controls, 200, function () { + dom.addClass(t.controls, t.options.classPrefix + 'offscreen'); + t.controls.style.display = ''; + var event = (0, _general.createEvent)('controlshidden', t.container); + t.container.dispatchEvent(event); + }); + + var controls = t.container.querySelectorAll('.' + t.options.classPrefix + 'control'); + + var _loop2 = function _loop2(i, total) { + dom.fadeOut(controls[i], 200, function () { + dom.addClass(controls[i], t.options.classPrefix + 'offscreen'); + controls[i].style.display = ''; + }); + }; + + for (var i = 0, total = controls.length; i < total; i++) { + _loop2(i, total); + } + })(); + } else { + dom.addClass(t.controls, t.options.classPrefix + 'offscreen'); + t.controls.style.display = ''; + t.controls.style.opacity = 0; + + var controls = t.container.querySelectorAll('.' + t.options.classPrefix + 'control'); + for (var i = 0, total = controls.length; i < total; i++) { + dom.addClass(controls[i], t.options.classPrefix + 'offscreen'); + controls[i].style.display = ''; + } + + var event = (0, _general.createEvent)('controlshidden', t.container); + t.container.dispatchEvent(event); + } + + t.controlsAreVisible = false; + } + }, { + key: 'startControlsTimer', + value: function startControlsTimer(timeout) { + var t = this; + + timeout = typeof timeout !== 'undefined' ? timeout : t.options.controlsTimeoutDefault; + + t.killControlsTimer('start'); + + t.controlsTimer = setTimeout(function () { + t.hideControls(); + t.killControlsTimer('hide'); + }, timeout); + } + }, { + key: 'killControlsTimer', + value: function killControlsTimer() { + var t = this; + + if (t.controlsTimer !== null) { + clearTimeout(t.controlsTimer); + delete t.controlsTimer; + t.controlsTimer = null; + } + } + }, { + key: 'disableControls', + value: function disableControls() { + var t = this; + + t.killControlsTimer(); + t.controlsEnabled = false; + t.hideControls(false, true); + } + }, { + key: 'enableControls', + value: function enableControls() { + var t = this; + + t.controlsEnabled = true; + t.showControls(false); + } + }, { + key: '_setDefaultPlayer', + value: function _setDefaultPlayer() { + var t = this; + if (t.proxy) { + t.proxy.pause(); + } + t.proxy = new _default2.default(t); + t.media.addEventListener('loadedmetadata', function () { + if (t.getCurrentTime() > 0 && t.currentMediaTime > 0) { + t.setCurrentTime(t.currentMediaTime); + if (!_constants.IS_IOS && !_constants.IS_ANDROID) { + t.play(); + } + } + }); + } + }, { + key: '_meReady', + value: function _meReady(media, domNode) { + var t = this, + autoplayAttr = domNode.getAttribute('autoplay'), + autoplay = !(autoplayAttr === undefined || autoplayAttr === null || autoplayAttr === 'false'), + isNative = media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName); + + if (t.controls) { + t.enableControls(); + } + + if (t.container && t.container.querySelector('.' + t.options.classPrefix + 'overlay-play')) { + t.container.querySelector('.' + t.options.classPrefix + 'overlay-play').style.display = ''; + } + + if (t.created) { + return; + } + + t.created = true; + t.media = media; + t.domNode = domNode; + + if (!(_constants.IS_ANDROID && t.options.AndroidUseNativeControls) && !(_constants.IS_IPAD && t.options.iPadUseNativeControls) && !(_constants.IS_IPHONE && t.options.iPhoneUseNativeControls)) { + if (!t.isVideo && !t.options.features.length) { + if (autoplay && isNative) { + t.play(); + } + + if (t.options.success) { + + if (typeof t.options.success === 'string') { + _window2.default[t.options.success](t.media, t.domNode, t); + } else { + t.options.success(t.media, t.domNode, t); + } + } + + return; + } + + t.findTracks(); + + t.featurePosition = {}; + + for (var i = 0, total = t.options.features.length; i < total; i++) { + var feature = t.options.features[i]; + if (t['build' + feature]) { + try { + t['build' + feature](t, t.controls, t.layers, t.media); + } catch (e) { + console.error('error building ' + feature, e); + } + } + } + + t.buildposter(t, t.controls, t.layers, t.media); + t.buildkeyboard(t, t.controls, t.layers, t.media); + t.buildoverlays(t, t.controls, t.layers, t.media); + + t._setDefaultPlayer(); + + var event = (0, _general.createEvent)('controlsready', t.container); + t.container.dispatchEvent(event); + + t.setPlayerSize(t.width, t.height); + t.setControlsSize(); + + if (t.isVideo) { + t.clickToPlayPauseCallback = function () { + + if (t.options.clickToPlayPause) { + var button = t.container.querySelector('.' + t.options.classPrefix + 'overlay-button'), + pressed = button.getAttribute('aria-pressed'); + + if (t.paused && pressed) { + t.pause(); + } else if (t.paused) { + t.play(); + } else { + t.pause(); + } + + button.setAttribute('aria-pressed', !pressed); + t.container.focus(); + } + }; + + t.createIframeLayer(); + + t.media.addEventListener('click', t.clickToPlayPauseCallback); + + if ((_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls) { + t.node.addEventListener('touchstart', function () { + if (t.controlsAreVisible) { + t.hideControls(false); + } else { + if (t.controlsEnabled) { + t.showControls(false); + } + } + }); + } else { + t.container.addEventListener('mouseenter', function () { + if (t.controlsEnabled) { + if (!t.options.alwaysShowControls) { + t.killControlsTimer('enter'); + t.showControls(); + t.startControlsTimer(t.options.controlsTimeoutMouseEnter); + } + } + }); + t.container.addEventListener('mousemove', function () { + if (t.controlsEnabled) { + if (!t.controlsAreVisible) { + t.showControls(); + } + if (!t.options.alwaysShowControls) { + t.startControlsTimer(t.options.controlsTimeoutMouseEnter); + } + } + }); + t.container.addEventListener('mouseleave', function () { + if (t.controlsEnabled) { + if (!t.paused && !t.options.alwaysShowControls) { + t.startControlsTimer(t.options.controlsTimeoutMouseLeave); + } + } + }); + } + + if (t.options.hideVideoControlsOnLoad) { + t.hideControls(false); + } + + if (t.options.enableAutosize) { + t.media.addEventListener('loadedmetadata', function (e) { + var target = e !== undefined ? e.detail.target || e.target : t.media; + if (t.options.videoHeight <= 0 && !t.domNode.getAttribute('height') && target !== null && !isNaN(target.videoHeight)) { + t.setPlayerSize(target.videoWidth, target.videoHeight); + t.setControlsSize(); + t.media.setSize(target.videoWidth, target.videoHeight); + } + }); + } + } + + t.media.addEventListener('play', function () { + t.hasFocus = true; + + for (var playerIndex in _mejs2.default.players) { + if (_mejs2.default.players.hasOwnProperty(playerIndex)) { + var p = _mejs2.default.players[playerIndex]; + + if (p.id !== t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) { + p.pause(); + p.hasFocus = false; + } + } + } + + if (!(_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls && t.isVideo) { + t.hideControls(); + } + }); + + t.media.addEventListener('ended', function () { + if (t.options.autoRewind) { + try { + t.setCurrentTime(0); + + setTimeout(function () { + var loadingElement = t.container.querySelector('.' + t.options.classPrefix + 'overlay-loading'); + if (loadingElement && loadingElement.parentNode) { + loadingElement.parentNode.style.display = 'none'; + } + }, 20); + } catch (exp) { + + } + } + + if (typeof t.media.renderer.stop === 'function') { + t.media.renderer.stop(); + } else { + t.pause(); + } + + if (t.setProgressRail) { + t.setProgressRail(); + } + if (t.setCurrentRail) { + t.setCurrentRail(); + } + + if (t.options.loop) { + t.play(); + } else if (!t.options.alwaysShowControls && t.controlsEnabled) { + t.showControls(); + } + }); + + t.media.addEventListener('loadedmetadata', function () { + + (0, _time.calculateTimeFormat)(t.getDuration(), t.options, t.options.framesPerSecond || 25); + + if (t.updateDuration) { + t.updateDuration(); + } + if (t.updateCurrent) { + t.updateCurrent(); + } + + if (!t.isFullScreen) { + t.setPlayerSize(t.width, t.height); + t.setControlsSize(); + } + }); + + var duration = null; + t.media.addEventListener('timeupdate', function () { + if (!isNaN(t.getDuration()) && duration !== t.getDuration()) { + duration = t.getDuration(); + (0, _time.calculateTimeFormat)(duration, t.options, t.options.framesPerSecond || 25); + + if (t.updateDuration) { + t.updateDuration(); + } + if (t.updateCurrent) { + t.updateCurrent(); + } + + t.setControlsSize(); + } + }); + + t.container.addEventListener('click', function (e) { + dom.addClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive'); + }); + + t.container.addEventListener('focusin', function (e) { + dom.removeClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive'); + if (t.isVideo && !_constants.IS_ANDROID && !_constants.IS_IOS && t.controlsEnabled && !t.options.alwaysShowControls) { + t.killControlsTimer('enter'); + t.showControls(); + t.startControlsTimer(t.options.controlsTimeoutMouseEnter); + } + }); + + t.container.addEventListener('focusout', function (e) { + setTimeout(function () { + if (e.relatedTarget) { + if (t.keyboardAction && !e.relatedTarget.closest('.' + t.options.classPrefix + 'container')) { + t.keyboardAction = false; + if (t.isVideo && !t.options.alwaysShowControls && !t.paused) { + t.startControlsTimer(t.options.controlsTimeoutMouseLeave); + } + } + } + }, 0); + }); + + setTimeout(function () { + t.setPlayerSize(t.width, t.height); + t.setControlsSize(); + }, 0); + + t.globalResizeCallback = function () { + if (!(t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen)) { + t.setPlayerSize(t.width, t.height); + } + + t.setControlsSize(); + }; + + t.globalBind('resize', t.globalResizeCallback); + } + + if (autoplay && isNative) { + t.play(); + } + + if (t.options.success) { + if (typeof t.options.success === 'string') { + _window2.default[t.options.success](t.media, t.domNode, t); + } else { + t.options.success(t.media, t.domNode, t); + } + } + } + }, { + key: '_handleError', + value: function _handleError(e, media, node) { + var t = this, + play = t.layers.querySelector('.' + t.options.classPrefix + 'overlay-play'); + + if (play) { + play.style.display = 'none'; + } + + if (t.options.error) { + t.options.error(e, media, node); + } + + if (t.container.querySelector('.' + t.options.classPrefix + 'cannotplay')) { + t.container.querySelector('.' + t.options.classPrefix + 'cannotplay').remove(); + } + + var errorContainer = _document2.default.createElement('div'); + errorContainer.className = t.options.classPrefix + 'cannotplay'; + errorContainer.style.width = '100%'; + errorContainer.style.height = '100%'; + + var errorContent = t.options.customError; + + if (!errorContent) { + var poster = t.media.originalNode.getAttribute('poster'); + if (poster) { + errorContent += '' + _mejs2.default.i18n.t('mejs.download-file') + ''; + } + + if (e.message) { + errorContent += '

    ' + e.message + '

    '; + } + + if (e.urls) { + for (var i = 0, total = e.urls.length; i < total; i++) { + var url = e.urls[i]; + errorContent += '' + _mejs2.default.i18n.t('mejs.download-file') + ': ' + url.src + ''; + } + } + } + + if (errorContent && t.layers.querySelector('.' + t.options.classPrefix + 'overlay-error')) { + errorContainer.innerHTML = errorContent; + t.layers.querySelector('.' + t.options.classPrefix + 'overlay-error').innerHTML = errorContainer.outerHTML; + t.layers.querySelector('.' + t.options.classPrefix + 'overlay-error').parentNode.style.display = 'block'; + } + } + }, { + key: 'setPlayerSize', + value: function setPlayerSize(width, height) { + var t = this; + + if (!t.options.setDimensions) { + return false; + } + + if (typeof width !== 'undefined') { + t.width = width; + } + + if (typeof height !== 'undefined') { + t.height = height; + } + + switch (t.options.stretching) { + case 'fill': + if (t.isVideo) { + t.setFillMode(); + } else { + t.setDimensions(t.width, t.height); + } + break; + case 'responsive': + t.setResponsiveMode(); + break; + case 'none': + t.setDimensions(t.width, t.height); + break; + + default: + if (t.hasFluidMode() === true) { + t.setResponsiveMode(); + } else { + t.setDimensions(t.width, t.height); + } + break; + } + } + }, { + key: 'hasFluidMode', + value: function hasFluidMode() { + var t = this; + + return t.height.toString().indexOf('%') !== -1 || t.node && t.node.style.maxWidth && t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width || t.node && t.node.currentStyle && t.node.currentStyle.maxWidth === '100%'; + } + }, { + key: 'setResponsiveMode', + value: function setResponsiveMode() { + var t = this, + parent = function () { + + var parentEl = void 0, + el = t.container; + + while (el) { + try { + if (_constants.IS_FIREFOX && el.tagName.toLowerCase() === 'html' && _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null) { + return _window2.default.frameElement; + } else { + parentEl = el.parentElement; + } + } catch (e) { + parentEl = el.parentElement; + } + + if (parentEl && dom.visible(parentEl)) { + return parentEl; + } + el = parentEl; + } + + return null; + }(), + parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null), + nativeWidth = function () { + if (t.isVideo) { + if (t.media.videoWidth && t.media.videoWidth > 0) { + return t.media.videoWidth; + } else if (t.node.getAttribute('width')) { + return t.node.getAttribute('width'); + } else { + return t.options.defaultVideoWidth; + } + } else { + return t.options.defaultAudioWidth; + } + }(), + nativeHeight = function () { + if (t.isVideo) { + if (t.media.videoHeight && t.media.videoHeight > 0) { + return t.media.videoHeight; + } else if (t.node.getAttribute('height')) { + return t.node.getAttribute('height'); + } else { + return t.options.defaultVideoHeight; + } + } else { + return t.options.defaultAudioHeight; + } + }(), + aspectRatio = function () { + var ratio = 1; + if (!t.isVideo) { + return ratio; + } + + if (t.media.videoWidth && t.media.videoWidth > 0 && t.media.videoHeight && t.media.videoHeight > 0) { + ratio = t.height >= t.width ? t.media.videoWidth / t.media.videoHeight : t.media.videoHeight / t.media.videoWidth; + } else { + ratio = t.initialAspectRatio; + } + + if (isNaN(ratio) || ratio < 0.01 || ratio > 100) { + ratio = 1; + } + + return ratio; + }(), + parentHeight = parseFloat(parentStyles.height); + + var newHeight = void 0, + parentWidth = parseFloat(parentStyles.width); + + if (t.isVideo) { + if (t.height === '100%') { + newHeight = parseFloat(parentWidth * nativeHeight / nativeWidth, 10); + } else { + newHeight = t.height >= t.width ? parseFloat(parentWidth / aspectRatio, 10) : parseFloat(parentWidth * aspectRatio, 10); + } + } else { + newHeight = nativeHeight; + } + + if (isNaN(newHeight)) { + newHeight = parentHeight; + } + + if (t.container.parentNode.length > 0 && t.container.parentNode.tagName.toLowerCase() === 'body') { + parentWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth; + newHeight = _window2.default.innerHeight || _document2.default.documentElement.clientHeight || _document2.default.body.clientHeight; + } + + if (newHeight && parentWidth) { + t.container.style.width = parentWidth + 'px'; + t.container.style.height = newHeight + 'px'; + + t.node.style.width = '100%'; + t.node.style.height = '100%'; + + if (t.isVideo && t.media.setSize) { + t.media.setSize(parentWidth, newHeight); + } + + var layerChildren = t.layers.children; + for (var i = 0, total = layerChildren.length; i < total; i++) { + layerChildren[i].style.width = '100%'; + layerChildren[i].style.height = '100%'; + } + } + } + }, { + key: 'setFillMode', + value: function setFillMode() { + var t = this; + + var parent = void 0, + isIframe = false; + + try { + if (_window2.default.self !== _window2.default.top) { + isIframe = true; + parent = _window2.default.frameElement; + } else { + parent = t.outerContainer; + } + } catch (e) { + parent = t.outerContainer; + } + + var parentStyles = getComputedStyle(parent); + + if (t.node.style.height !== 'none' && t.node.style.height !== t.height) { + t.node.style.height = 'auto'; + } + if (t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width) { + t.node.style.maxWidth = 'none'; + } + + if (t.node.style.maxHeight !== 'none' && t.node.style.maxHeight !== t.height) { + t.node.style.maxHeight = 'none'; + } + + if (t.node.currentStyle) { + if (t.node.currentStyle.height === '100%') { + t.node.currentStyle.height = 'auto'; + } + if (t.node.currentStyle.maxWidth === '100%') { + t.node.currentStyle.maxWidth = 'none'; + } + if (t.node.currentStyle.maxHeight === '100%') { + t.node.currentStyle.maxHeight = 'none'; + } + } + + if (!isIframe && !parseFloat(parentStyles.width)) { + parent.style.width = t.media.offsetWidth + 'px'; + } + + if (!isIframe && !parseFloat(parentStyles.height)) { + parent.style.height = t.media.offsetHeight + 'px'; + } + + parentStyles = getComputedStyle(parent); + + var parentWidth = parseFloat(parentStyles.width), + parentHeight = parseFloat(parentStyles.height); + + t.setDimensions('100%', '100%'); + + var poster = t.container.querySelector('.' + t.options.classPrefix + 'poster>img'); + if (poster) { + poster.style.display = ''; + } + + var targetElement = t.container.querySelectorAll('object, embed, iframe, video'), + initHeight = t.height, + initWidth = t.width, + scaleX1 = parentWidth, + scaleY1 = initHeight * parentWidth / initWidth, + scaleX2 = initWidth * parentHeight / initHeight, + scaleY2 = parentHeight, + bScaleOnWidth = scaleX2 > parentWidth === false, + finalWidth = bScaleOnWidth ? Math.floor(scaleX1) : Math.floor(scaleX2), + finalHeight = bScaleOnWidth ? Math.floor(scaleY1) : Math.floor(scaleY2), + width = bScaleOnWidth ? parentWidth + 'px' : finalWidth + 'px', + height = bScaleOnWidth ? finalHeight + 'px' : parentHeight + 'px'; + + for (var i = 0, total = targetElement.length; i < total; i++) { + targetElement[i].style.height = height; + targetElement[i].style.width = width; + if (t.media.setSize) { + t.media.setSize(width, height); + } + + targetElement[i].style.marginLeft = Math.floor((parentWidth - finalWidth) / 2) + 'px'; + targetElement[i].style.marginTop = 0; + } + } + }, { + key: 'setDimensions', + value: function setDimensions(width, height) { + var t = this; + + width = (0, _general.isString)(width) && width.indexOf('%') > -1 ? width : parseFloat(width) + 'px'; + height = (0, _general.isString)(height) && height.indexOf('%') > -1 ? height : parseFloat(height) + 'px'; + + t.container.style.width = width; + t.container.style.height = height; + + var layers = t.layers.children; + for (var i = 0, total = layers.length; i < total; i++) { + layers[i].style.width = width; + layers[i].style.height = height; + } + } + }, { + key: 'setControlsSize', + value: function setControlsSize() { + var t = this; + + if (!dom.visible(t.container)) { + return; + } + + if (t.rail && dom.visible(t.rail)) { + var totalStyles = t.total ? getComputedStyle(t.total, null) : null, + totalMargin = totalStyles ? parseFloat(totalStyles.marginLeft) + parseFloat(totalStyles.marginRight) : 0, + railStyles = getComputedStyle(t.rail), + railMargin = parseFloat(railStyles.marginLeft) + parseFloat(railStyles.marginRight); + + var siblingsWidth = 0; + + var siblings = dom.siblings(t.rail, function (el) { + return el !== t.rail; + }), + total = siblings.length; + for (var i = 0; i < total; i++) { + siblingsWidth += siblings[i].offsetWidth; + } + + siblingsWidth += totalMargin + (totalMargin === 0 ? railMargin * 2 : railMargin) + 1; + + t.container.style.minWidth = siblingsWidth + 'px'; + + var event = (0, _general.createEvent)('controlsresize', t.container); + t.container.dispatchEvent(event); + } else { + var children = t.controls.children; + var minWidth = 0; + + for (var _i = 0, _total = children.length; _i < _total; _i++) { + minWidth += children[_i].offsetWidth; + } + + t.container.style.minWidth = minWidth + 'px'; + } + } + }, { + key: 'addControlElement', + value: function addControlElement(element, key) { + + var t = this; + + if (t.featurePosition[key] !== undefined) { + var child = t.controls.children[t.featurePosition[key] - 1]; + child.parentNode.insertBefore(element, child.nextSibling); + } else { + t.controls.appendChild(element); + var children = t.controls.children; + for (var i = 0, total = children.length; i < total; i++) { + if (element === children[i]) { + t.featurePosition[key] = i; + break; + } + } + } + } + }, { + key: 'createIframeLayer', + value: function createIframeLayer() { + var t = this; + + if (t.isVideo && t.media.rendererName !== null && t.media.rendererName.indexOf('iframe') > -1 && !_document2.default.getElementById(t.media.id + '-iframe-overlay')) { + + var layer = _document2.default.createElement('div'), + target = _document2.default.getElementById(t.media.id + '_' + t.media.rendererName); + + layer.id = t.media.id + '-iframe-overlay'; + layer.className = t.options.classPrefix + 'iframe-overlay'; + layer.addEventListener('click', function (e) { + if (t.options.clickToPlayPause) { + if (t.paused) { + t.play(); + } else { + t.pause(); + } + + e.preventDefault(); + e.stopPropagation(); + } + }); + + target.parentNode.insertBefore(layer, target); + } + } + }, { + key: 'resetSize', + value: function resetSize() { + var t = this; + + setTimeout(function () { + t.setPlayerSize(t.width, t.height); + t.setControlsSize(); + }, 50); + } + }, { + key: 'setPoster', + value: function setPoster(url) { + var t = this; + + var posterDiv = t.container.querySelector('.' + t.options.classPrefix + 'poster'); + + if (!posterDiv) { + posterDiv = _document2.default.createElement('div'); + posterDiv.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer'; + t.layers.appendChild(posterDiv); + } + + var posterImg = posterDiv.querySelector('img'); + + if (!posterImg && url) { + posterImg = _document2.default.createElement('img'); + posterImg.className = t.options.classPrefix + 'poster-img'; + posterImg.width = '100%'; + posterImg.height = '100%'; + posterDiv.style.display = ''; + posterDiv.appendChild(posterImg); + } + + if (url) { + posterImg.setAttribute('src', url); + posterDiv.style.backgroundImage = 'url("' + url + '")'; + posterDiv.style.display = ''; + } else if (posterImg) { + posterDiv.style.backgroundImage = 'none'; + posterDiv.style.display = 'none'; + posterImg.remove(); + } else { + posterDiv.style.display = 'none'; + } + } + }, { + key: 'changeSkin', + value: function changeSkin(className) { + var t = this; + + t.container.className = t.options.classPrefix + 'container ' + className; + t.setPlayerSize(t.width, t.height); + t.setControlsSize(); + } + }, { + key: 'globalBind', + value: function globalBind(events, callback) { + var t = this, + doc = t.node ? t.node.ownerDocument : _document2.default; + + events = (0, _general.splitEvents)(events, t.id); + if (events.d) { + var eventList = events.d.split(' '); + for (var i = 0, total = eventList.length; i < total; i++) { + eventList[i].split('.').reduce(function (part, e) { + doc.addEventListener(e, callback, false); + return e; + }, ''); + } + } + if (events.w) { + var _eventList = events.w.split(' '); + for (var _i2 = 0, _total2 = _eventList.length; _i2 < _total2; _i2++) { + _eventList[_i2].split('.').reduce(function (part, e) { + _window2.default.addEventListener(e, callback, false); + return e; + }, ''); + } + } + } + }, { + key: 'globalUnbind', + value: function globalUnbind(events, callback) { + var t = this, + doc = t.node ? t.node.ownerDocument : _document2.default; + + events = (0, _general.splitEvents)(events, t.id); + if (events.d) { + var eventList = events.d.split(' '); + for (var i = 0, total = eventList.length; i < total; i++) { + eventList[i].split('.').reduce(function (part, e) { + doc.removeEventListener(e, callback, false); + return e; + }, ''); + } + } + if (events.w) { + var _eventList2 = events.w.split(' '); + for (var _i3 = 0, _total3 = _eventList2.length; _i3 < _total3; _i3++) { + _eventList2[_i3].split('.').reduce(function (part, e) { + _window2.default.removeEventListener(e, callback, false); + return e; + }, ''); + } + } + } + }, { + key: 'buildposter', + value: function buildposter(player, controls, layers, media) { + var t = this, + poster = _document2.default.createElement('div'); + + poster.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer'; + layers.appendChild(poster); + + var posterUrl = media.originalNode.getAttribute('poster'); + + if (player.options.poster !== '' && posterUrl && _constants.IS_IOS) { + media.originalNode.removeAttribute('poster'); + posterUrl = player.options.poster; + } + + if (posterUrl) { + t.setPoster(posterUrl); + } else if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') { + t.setPoster(t.media.renderer.getPosterUrl()); + } else { + poster.style.display = 'none'; + } + + media.addEventListener('play', function () { + poster.style.display = 'none'; + }); + + media.addEventListener('playing', function () { + poster.style.display = 'none'; + }); + + if (player.options.showPosterWhenEnded && player.options.autoRewind) { + media.addEventListener('ended', function () { + poster.style.display = ''; + }); + } + + media.addEventListener('error', function () { + poster.style.display = 'none'; + }); + + if (player.options.showPosterWhenPaused) { + media.addEventListener('pause', function () { + if (!player.ended) { + poster.style.display = ''; + } + }); + } + } + }, { + key: 'buildoverlays', + value: function buildoverlays(player, controls, layers, media) { + + if (!player.isVideo) { + return; + } + + var t = this, + loading = _document2.default.createElement('div'), + error = _document2.default.createElement('div'), + bigPlay = _document2.default.createElement('div'), + buffer = controls.querySelector('.' + t.options.classPrefix + 'time-buffering'); + + loading.style.display = 'none'; + loading.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer'; + loading.innerHTML = '
    ' + ('') + '
    '; + layers.appendChild(loading); + + error.style.display = 'none'; + error.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer'; + error.innerHTML = '
    '; + layers.appendChild(error); + + bigPlay.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer ' + t.options.classPrefix + 'overlay-play'; + bigPlay.innerHTML = '
    '); + bigPlay.addEventListener('click', function () { + if (t.options.clickToPlayPause) { + + var button = t.container.querySelector('.' + t.options.classPrefix + 'overlay-button'), + pressed = button.getAttribute('aria-pressed'); + + if (t.paused) { + t.play(); + } else { + t.pause(); + } + + button.setAttribute('aria-pressed', !!pressed); + t.container.focus(); + } + }); + + bigPlay.addEventListener('keydown', function (e) { + var keyPressed = e.keyCode || e.which || 0; + + if (keyPressed === 13 || _constants.IS_FIREFOX && keyPressed === 32) { + var event = (0, _general.createEvent)('click', bigPlay); + bigPlay.dispatchEvent(event); + return false; + } + }); + + layers.appendChild(bigPlay); + + if (t.media.rendererName !== null && (/(youtube|facebook)/i.test(t.media.rendererName) && !(t.media.originalNode.getAttribute('poster') || player.options.poster || typeof t.media.renderer.getPosterUrl === 'function' && t.media.renderer.getPosterUrl()) || _constants.IS_STOCK_ANDROID)) { + bigPlay.style.display = 'none'; + } + + var hasError = false; + + media.addEventListener('play', function () { + bigPlay.style.display = 'none'; + loading.style.display = 'none'; + if (buffer !== null) { + buffer.style.display = 'none'; + } + error.style.display = 'none'; + hasError = false; + }); + media.addEventListener('playing', function () { + bigPlay.style.display = 'none'; + loading.style.display = 'none'; + if (buffer !== null) { + buffer.style.display = 'none'; + } + error.style.display = 'none'; + hasError = false; + }); + media.addEventListener('seeking', function () { + bigPlay.style.display = 'none'; + loading.style.display = ''; + if (buffer !== null) { + buffer.style.display = ''; + } + hasError = false; + }); + media.addEventListener('seeked', function () { + bigPlay.style.display = t.paused && !_constants.IS_STOCK_ANDROID ? '' : 'none'; + loading.style.display = 'none'; + if (buffer !== null) { + buffer.style.display = 'none'; + } + hasError = false; + }); + media.addEventListener('pause', function () { + loading.style.display = 'none'; + if (!_constants.IS_STOCK_ANDROID && !hasError) { + bigPlay.style.display = ''; + } + if (buffer !== null) { + buffer.style.display = 'none'; + } + hasError = false; + }); + media.addEventListener('waiting', function () { + loading.style.display = ''; + if (buffer !== null) { + buffer.style.display = ''; + } + hasError = false; + }); + + media.addEventListener('loadeddata', function () { + loading.style.display = ''; + if (buffer !== null) { + buffer.style.display = ''; + } + + if (_constants.IS_ANDROID) { + media.canplayTimeout = setTimeout(function () { + if (_document2.default.createEvent) { + var evt = _document2.default.createEvent('HTMLEvents'); + evt.initEvent('canplay', true, true); + return media.dispatchEvent(evt); + } + }, 300); + } + hasError = false; + }); + media.addEventListener('canplay', function () { + loading.style.display = 'none'; + if (buffer !== null) { + buffer.style.display = 'none'; + } + + clearTimeout(media.canplayTimeout); + hasError = false; + }); + + media.addEventListener('error', function (e) { + t._handleError(e, t.media, t.node); + loading.style.display = 'none'; + bigPlay.style.display = 'none'; + if (buffer !== null) { + buffer.style.display = 'none'; + } + hasError = true; + }); + + media.addEventListener('keydown', function (e) { + t.onkeydown(player, media, e); + hasError = false; + }); + } + }, { + key: 'buildkeyboard', + value: function buildkeyboard(player, controls, layers, media) { + + var t = this; + + t.container.addEventListener('keydown', function () { + t.keyboardAction = true; + }); + + t.globalKeydownCallback = function (event) { + var container = _document2.default.activeElement.closest('.' + t.options.classPrefix + 'container'), + target = t.media.closest('.' + t.options.classPrefix + 'container'); + t.hasFocus = !!(container && target && container.id === target.id); + return t.onkeydown(player, media, event); + }; + + t.globalClickCallback = function (event) { + t.hasFocus = !!event.target.closest('.' + t.options.classPrefix + 'container'); + }; + + t.globalBind('keydown', t.globalKeydownCallback); + + t.globalBind('click', t.globalClickCallback); + } + }, { + key: 'onkeydown', + value: function onkeydown(player, media, e) { + + if (player.hasFocus && player.options.enableKeyboard) { + for (var i = 0, total = player.options.keyActions.length; i < total; i++) { + var keyAction = player.options.keyActions[i]; + + for (var j = 0, jl = keyAction.keys.length; j < jl; j++) { + if (e.keyCode === keyAction.keys[j]) { + keyAction.action(player, media, e.keyCode, e); + e.preventDefault(); + e.stopPropagation(); + } + } + } + } + + return true; + } + }, { + key: 'play', + value: function play() { + this.proxy.play(); + } + }, { + key: 'pause', + value: function pause() { + this.proxy.pause(); + } + }, { + key: 'load', + value: function load() { + this.proxy.load(); + } + }, { + key: 'setCurrentTime', + value: function setCurrentTime(time) { + this.proxy.setCurrentTime(time); + } + }, { + key: 'getCurrentTime', + value: function getCurrentTime() { + return this.proxy.currentTime; + } + }, { + key: 'getDuration', + value: function getDuration() { + return this.proxy.duration; + } + }, { + key: 'setVolume', + value: function setVolume(volume) { + this.proxy.volume = volume; + } + }, { + key: 'getVolume', + value: function getVolume() { + return this.proxy.getVolume(); + } + }, { + key: 'setMuted', + value: function setMuted(value) { + this.proxy.setMuted(value); + } + }, { + key: 'setSrc', + value: function setSrc(src) { + if (!this.controlsEnabled) { + this.enableControls(); + } + this.proxy.setSrc(src); + } + }, { + key: 'getSrc', + value: function getSrc() { + return this.proxy.getSrc(); + } + }, { + key: 'canPlayType', + value: function canPlayType(type) { + return this.proxy.canPlayType(type); + } + }, { + key: 'remove', + value: function remove() { + var t = this, + rendererName = t.media.rendererName, + src = t.media.originalNode.src; + + for (var featureIndex in t.options.features) { + var feature = t.options.features[featureIndex]; + if (t['clean' + feature]) { + try { + t['clean' + feature](t, t.layers, t.controls, t.media); + } catch (e) { + console.error('error cleaning ' + feature, e); + } + } + } + + var nativeWidth = t.node.getAttribute('width'), + nativeHeight = t.node.getAttribute('height'); + + if (nativeWidth) { + if (nativeWidth.indexOf('%') === -1) { + nativeWidth = nativeWidth + 'px'; + } + } else { + nativeWidth = 'auto'; + } + + if (nativeHeight) { + if (nativeHeight.indexOf('%') === -1) { + nativeHeight = nativeHeight + 'px'; + } + } else { + nativeHeight = 'auto'; + } + + t.node.style.width = nativeWidth; + t.node.style.height = nativeHeight; + + if (!t.isDynamic) { + (function () { + t.node.setAttribute('controls', true); + t.node.setAttribute('id', t.node.getAttribute('id').replace('_' + rendererName, '').replace('_from_mejs', '')); + var poster = t.container.querySelector('.' + t.options.classPrefix + 'poster>img'); + if (poster) { + t.node.setAttribute('poster', poster.src); + } + + delete t.node.autoplay; + + if (t.media.canPlayType((0, _media.getTypeFromFile)(src)) !== '') { + t.node.setAttribute('src', src); + } + + if (~rendererName.indexOf('iframe')) { + var layer = _document2.default.getElementById(t.media.id + '-iframe-overlay'); + layer.remove(); + } + + var node = t.node.cloneNode(); + node.style.display = ''; + t.container.parentNode.insertBefore(node, t.container); + t.node.remove(); + + if (t.mediaFiles) { + for (var i = 0, total = t.mediaFiles.length; i < total; i++) { + var source = _document2.default.createElement('source'); + source.setAttribute('src', t.mediaFiles[i].src); + source.setAttribute('type', t.mediaFiles[i].type); + node.appendChild(source); + } + } + if (t.trackFiles) { + var _loop3 = function _loop3(_i4, _total4) { + var track = t.trackFiles[_i4]; + var newTrack = _document2.default.createElement('track'); + newTrack.kind = track.kind; + newTrack.label = track.label; + newTrack.srclang = track.srclang; + newTrack.src = track.src; + + node.appendChild(newTrack); + newTrack.addEventListener('load', function () { + this.mode = 'showing'; + node.textTracks[_i4].mode = 'showing'; + }); + }; + + for (var _i4 = 0, _total4 = t.trackFiles.length; _i4 < _total4; _i4++) { + _loop3(_i4, _total4); + } + } + + delete t.node; + delete t.mediaFiles; + delete t.trackFiles; + })(); + } else { + t.container.parentNode.insertBefore(t.node, t.container); + } + + if (typeof t.media.renderer.destroy === 'function') { + t.media.renderer.destroy(); + } + + delete _mejs2.default.players[t.id]; + + if (_typeof(t.container) === 'object') { + var offscreen = t.container.parentNode.querySelector('.' + t.options.classPrefix + 'offscreen'); + offscreen.remove(); + t.container.remove(); + } + t.globalUnbind('resize', t.globalResizeCallback); + t.globalUnbind('keydown', t.globalKeydownCallback); + t.globalUnbind('click', t.globalClickCallback); + + delete t.media.player; + } + }, { + key: 'paused', + get: function get() { + return this.proxy.paused; + } + }, { + key: 'muted', + get: function get() { + return this.proxy.muted; + }, + set: function set(muted) { + this.setMuted(muted); + } + }, { + key: 'ended', + get: function get() { + return this.proxy.ended; + } + }, { + key: 'readyState', + get: function get() { + return this.proxy.readyState; + } + }, { + key: 'currentTime', + set: function set(time) { + this.setCurrentTime(time); + }, + get: function get() { + return this.getCurrentTime(); + } + }, { + key: 'duration', + get: function get() { + return this.getDuration(); + } + }, { + key: 'volume', + set: function set(volume) { + this.setVolume(volume); + }, + get: function get() { + return this.getVolume(); + } + }, { + key: 'src', + set: function set(src) { + this.setSrc(src); + }, + get: function get() { + return this.getSrc(); + } + }]); + + return MediaElementPlayer; +}(); + +_window2.default.MediaElementPlayer = MediaElementPlayer; + +exports.default = MediaElementPlayer; + +},{"17":17,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"30":30,"5":5,"6":6,"7":7}],17:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DefaultPlayer = function () { + function DefaultPlayer(player) { + _classCallCheck(this, DefaultPlayer); + + this.media = player.media; + this.isVideo = player.isVideo; + this.classPrefix = player.options.classPrefix; + this.createIframeLayer = function () { + return player.createIframeLayer(); + }; + this.setPoster = function (url) { + return player.setPoster(url); + }; + return this; + } + + _createClass(DefaultPlayer, [{ + key: 'play', + value: function play() { + this.media.play(); + } + }, { + key: 'pause', + value: function pause() { + this.media.pause(); + } + }, { + key: 'load', + value: function load() { + var t = this; + + if (!t.isLoaded) { + t.media.load(); + } + + t.isLoaded = true; + } + }, { + key: 'setCurrentTime', + value: function setCurrentTime(time) { + this.media.setCurrentTime(time); + } + }, { + key: 'getCurrentTime', + value: function getCurrentTime() { + return this.media.currentTime; + } + }, { + key: 'getDuration', + value: function getDuration() { + return this.media.getDuration(); + } + }, { + key: 'setVolume', + value: function setVolume(volume) { + this.media.setVolume(volume); + } + }, { + key: 'getVolume', + value: function getVolume() { + return this.media.getVolume(); + } + }, { + key: 'setMuted', + value: function setMuted(value) { + this.media.setMuted(value); + } + }, { + key: 'setSrc', + value: function setSrc(src) { + var t = this, + layer = document.getElementById(t.media.id + '-iframe-overlay'); + + if (layer) { + layer.remove(); + } + + t.media.setSrc(src); + t.createIframeLayer(); + if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') { + t.setPoster(t.media.renderer.getPosterUrl()); + } + } + }, { + key: 'getSrc', + value: function getSrc() { + return this.media.getSrc(); + } + }, { + key: 'canPlayType', + value: function canPlayType(type) { + return this.media.canPlayType(type); + } + }, { + key: 'paused', + get: function get() { + return this.media.paused; + } + }, { + key: 'muted', + set: function set(muted) { + this.setMuted(muted); + }, + get: function get() { + return this.media.muted; + } + }, { + key: 'ended', + get: function get() { + return this.media.ended; + } + }, { + key: 'readyState', + get: function get() { + return this.media.readyState; + } + }, { + key: 'currentTime', + set: function set(time) { + this.setCurrentTime(time); + }, + get: function get() { + return this.getCurrentTime(); + } + }, { + key: 'duration', + get: function get() { + return this.getDuration(); + } + }, { + key: 'volume', + set: function set(volume) { + this.setVolume(volume); + }, + get: function get() { + return this.getVolume(); + } + }, { + key: 'src', + set: function set(src) { + this.setSrc(src); + }, + get: function get() { + return this.getSrc(); + } + }]); + + return DefaultPlayer; +}(); + +exports.default = DefaultPlayer; + + +_window2.default.DefaultPlayer = DefaultPlayer; + +},{"3":3}],18:[function(_dereq_,module,exports){ +'use strict'; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _player = _dereq_(16); + +var _player2 = _interopRequireDefault(_player); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +if (typeof jQuery !== 'undefined') { + _mejs2.default.$ = _window2.default.jQuery = _window2.default.$ = jQuery; +} else if (typeof Zepto !== 'undefined') { + _mejs2.default.$ = _window2.default.Zepto = _window2.default.$ = Zepto; +} else if (typeof ender !== 'undefined') { + _mejs2.default.$ = _window2.default.ender = _window2.default.$ = ender; +} + +(function ($) { + if (typeof $ !== 'undefined') { + $.fn.mediaelementplayer = function (options) { + if (options === false) { + this.each(function () { + var player = $(this).data('mediaelementplayer'); + if (player) { + player.remove(); + } + $(this).removeData('mediaelementplayer'); + }); + } else { + this.each(function () { + $(this).data('mediaelementplayer', new _player2.default(this, options)); + }); + } + return this; + }; + + $(document).ready(function () { + $('.' + _mejs2.default.MepDefaults.classPrefix + 'player').mediaelementplayer(); + }); + } +})(_mejs2.default.$); + +},{"16":16,"3":3,"7":7}],19:[function(_dereq_,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _media = _dereq_(28); + +var _constants = _dereq_(25); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var NativeDash = { + + promise: null, + + load: function load(settings) { + if (typeof dashjs !== 'undefined') { + NativeDash.promise = new Promise(function (resolve) { + resolve(); + }).then(function () { + NativeDash._createPlayer(settings); + }); + } else { + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js'; + + NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path); + NativeDash.promise.then(function () { + NativeDash._createPlayer(settings); + }); + } + + return NativeDash.promise; + }, + + _createPlayer: function _createPlayer(settings) { + var player = dashjs.MediaPlayer().create(); + _window2.default['__ready__' + settings.id](player); + return player; + } +}; + +var DashNativeRenderer = { + name: 'native_dash', + options: { + prefix: 'native_dash', + dash: { + path: 'https://cdn.dashjs.org/latest/dash.all.min.js', + debug: false, + drm: {}, + + robustnessLevel: '' + } + }, + + canPlayType: function canPlayType(type) { + return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1; + }, + + create: function create(mediaElement, options, mediaFiles) { + + var originalNode = mediaElement.originalNode, + id = mediaElement.id + '_' + options.prefix, + autoplay = originalNode.autoplay, + children = originalNode.children; + + var node = null, + dashPlayer = null; + + originalNode.removeAttribute('type'); + for (var i = 0, total = children.length; i < total; i++) { + children[i].removeAttribute('type'); + } + + node = originalNode.cloneNode(true); + options = Object.assign(options, mediaElement.options); + + var props = _mejs2.default.html5media.properties, + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), + attachNativeEvents = function attachNativeEvents(e) { + var event = (0, _general.createEvent)(e.type, mediaElement); + mediaElement.dispatchEvent(event); + }, + assignGettersSetters = function assignGettersSetters(propName) { + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + node['get' + capName] = function () { + return dashPlayer !== null ? node[propName] : null; + }; + + node['set' + capName] = function (value) { + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { + if (propName === 'src') { + var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; + node[propName] = source; + if (dashPlayer !== null) { + dashPlayer.reset(); + for (var _i = 0, _total = events.length; _i < _total; _i++) { + node.removeEventListener(events[_i], attachNativeEvents); + } + dashPlayer = NativeDash._createPlayer({ + options: options.dash, + id: id + }); + + if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') { + dashPlayer.setProtectionData(value.drm); + if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) { + dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel); + } + } + dashPlayer.attachSource(source); + if (autoplay) { + dashPlayer.play(); + } + } + } else { + node[propName] = value; + } + } + }; + }; + + for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) { + assignGettersSetters(props[_i2]); + } + + _window2.default['__ready__' + id] = function (_dashPlayer) { + mediaElement.dashPlayer = dashPlayer = _dashPlayer; + + var dashEvents = dashjs.MediaPlayer.events, + assignEvents = function assignEvents(eventName) { + if (eventName === 'loadedmetadata') { + dashPlayer.getDebug().setLogToBrowserConsole(options.dash.debug); + dashPlayer.initialize(); + dashPlayer.setScheduleWhilePaused(false); + dashPlayer.setFastSwitchEnabled(true); + dashPlayer.attachView(node); + dashPlayer.setAutoPlay(false); + + if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) { + dashPlayer.setProtectionData(options.dash.drm); + if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) { + dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel); + } + } + dashPlayer.attachSource(node.getSrc()); + } + + node.addEventListener(eventName, attachNativeEvents); + }; + + for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) { + assignEvents(events[_i3]); + } + + var assignMdashEvents = function assignMdashEvents(e) { + var event = (0, _general.createEvent)(e.type, node); + event.data = e; + mediaElement.dispatchEvent(event); + + if (e.type.toLowerCase() === 'error') { + console.error(e); + } + }; + + for (var eventType in dashEvents) { + if (dashEvents.hasOwnProperty(eventType)) { + dashPlayer.on(dashEvents[eventType], assignMdashEvents); + } + } + }; + + if (mediaFiles && mediaFiles.length > 0) { + for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) { + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) { + node.setAttribute('src', mediaFiles[_i4].src); + if (typeof mediaFiles[_i4].drm !== 'undefined') { + options.dash.drm = mediaFiles[_i4].drm; + } + break; + } + } + } + + node.setAttribute('id', id); + + originalNode.parentNode.insertBefore(node, originalNode); + originalNode.autoplay = false; + originalNode.style.display = 'none'; + + node.setSize = function (width, height) { + node.style.width = width + 'px'; + node.style.height = height + 'px'; + return node; + }; + + node.hide = function () { + node.pause(); + node.style.display = 'none'; + return node; + }; + + node.show = function () { + node.style.display = ''; + return node; + }; + + node.destroy = function () { + if (dashPlayer !== null) { + dashPlayer.reset(); + } + }; + + var event = (0, _general.createEvent)('rendererready', node); + mediaElement.dispatchEvent(event); + + mediaElement.promises.push(NativeDash.load({ + options: options.dash, + id: id + })); + + return node; + } +}; + +_media.typeChecks.push(function (url) { + return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null; +}); + +_renderer.renderer.add(DashNativeRenderer); + +},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],20:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PluginDetector = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _i18n = _dereq_(5); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _constants = _dereq_(25); + +var _media = _dereq_(28); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PluginDetector = exports.PluginDetector = { + plugins: [], + + hasPluginVersion: function hasPluginVersion(plugin, v) { + var pv = PluginDetector.plugins[plugin]; + v[1] = v[1] || 0; + v[2] = v[2] || 0; + return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2]; + }, + + addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) { + PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect); + }, + + detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) { + + var version = [0, 0, 0], + description = void 0, + ax = void 0; + + if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') { + description = _constants.NAV.plugins[pluginName].description; + if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) { + version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.'); + for (var i = 0, total = version.length; i < total; i++) { + version[i] = parseInt(version[i].match(/\d+/), 10); + } + } + } else if (_window2.default.ActiveXObject !== undefined) { + try { + ax = new ActiveXObject(activeX); + if (ax) { + version = axDetect(ax); + } + } catch (e) { + + } + } + return version; + } +}; + +PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) { + var version = [], + d = ax.GetVariable("$version"); + + if (d) { + d = d.split(" ")[1].split(","); + version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + return version; +}); + +var FlashMediaElementRenderer = { + create: function create(mediaElement, options, mediaFiles) { + + var flash = {}; + + flash.options = options; + flash.id = mediaElement.id + '_' + flash.options.prefix; + flash.mediaElement = mediaElement; + flash.flashState = {}; + flash.flashApi = null; + flash.flashApiStack = []; + + var props = _mejs2.default.html5media.properties, + assignGettersSetters = function assignGettersSetters(propName) { + flash.flashState[propName] = null; + + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + flash['get' + capName] = function () { + if (flash.flashApi !== null) { + if (typeof flash.flashApi['get_' + propName] === 'function') { + var value = flash.flashApi['get_' + propName](); + + if (propName === 'buffered') { + return { + start: function start() { + return 0; + }, + end: function end() { + return value; + }, + length: 1 + }; + } + return value; + } else { + return null; + } + } else { + return null; + } + }; + + flash['set' + capName] = function (value) { + if (propName === 'src') { + value = (0, _media.absolutizeUrl)(value); + } + + if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) { + try { + flash.flashApi['set_' + propName](value); + } catch (e) { + + } + } else { + flash.flashApiStack.push({ + type: 'set', + propName: propName, + value: value + }); + } + }; + }; + + for (var i = 0, total = props.length; i < total; i++) { + assignGettersSetters(props[i]); + } + + var methods = _mejs2.default.html5media.methods, + assignMethods = function assignMethods(methodName) { + flash[methodName] = function () { + if (flash.flashApi !== null) { + if (flash.flashApi['fire_' + methodName]) { + try { + flash.flashApi['fire_' + methodName](); + } catch (e) { + + } + } else { + + } + } else { + flash.flashApiStack.push({ + type: 'call', + methodName: methodName + }); + } + }; + }; + methods.push('stop'); + for (var _i = 0, _total = methods.length; _i < _total; _i++) { + assignMethods(methods[_i]); + } + + var initEvents = ['rendererready']; + + for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) { + var event = (0, _general.createEvent)(initEvents[_i2], flash); + mediaElement.dispatchEvent(event); + } + + _window2.default['__ready__' + flash.id] = function () { + + flash.flashReady = true; + flash.flashApi = _document2.default.getElementById('__' + flash.id); + + if (flash.flashApiStack.length) { + for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) { + var stackItem = flash.flashApiStack[_i3]; + + if (stackItem.type === 'set') { + var propName = stackItem.propName, + capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + flash['set' + capName](stackItem.value); + } else if (stackItem.type === 'call') { + flash[stackItem.methodName](); + } + } + } + }; + + _window2.default['__event__' + flash.id] = function (eventName, message) { + var event = (0, _general.createEvent)(eventName, flash); + if (message) { + try { + event.data = JSON.parse(message); + event.details.data = JSON.parse(message); + } catch (e) { + event.message = message; + } + } + + flash.mediaElement.dispatchEvent(event); + }; + + flash.flashWrapper = _document2.default.createElement('div'); + + if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) { + flash.options.shimScriptAccess = 'sameDomain'; + } + + var autoplay = mediaElement.originalNode.autoplay, + flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')], + isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video', + flashHeight = isVideo ? mediaElement.originalNode.height : 1, + flashWidth = isVideo ? mediaElement.originalNode.width : 1; + + if (mediaElement.originalNode.getAttribute('src')) { + flashVars.push('src=' + mediaElement.originalNode.getAttribute('src')); + } + + if (flash.options.enablePseudoStreaming === true) { + flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam); + flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType); + } + + mediaElement.appendChild(flash.flashWrapper); + mediaElement.originalNode.style.display = 'none'; + + var settings = []; + + if (_constants.IS_IE) { + var specialIEContainer = _document2.default.createElement('div'); + flash.flashWrapper.appendChild(specialIEContainer); + + settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"']; + + if (!isVideo) { + settings.push('style="clip: rect(0 0 0 0); position: absolute;"'); + } + + specialIEContainer.outerHTML = '' + ('') + ('') + '' + '' + '' + ('') + '' + ('
    ' + _i18n2.default.t('mejs.install-flash') + '
    ') + '
    '; + } else { + + settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"']; + + if (!isVideo) { + settings.push('style="clip: rect(0 0 0 0); position: absolute;"'); + } + + flash.flashWrapper.innerHTML = ''; + } + + flash.flashNode = flash.flashWrapper.lastChild; + + flash.hide = function () { + if (isVideo) { + flash.flashNode.style.display = 'none'; + } + }; + flash.show = function () { + if (isVideo) { + flash.flashNode.style.display = ''; + } + }; + flash.setSize = function (width, height) { + flash.flashNode.style.width = width + 'px'; + flash.flashNode.style.height = height + 'px'; + + if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') { + flash.flashApi.fire_setSize(width, height); + } + }; + + flash.destroy = function () { + flash.flashNode.remove(); + }; + + if (mediaFiles && mediaFiles.length > 0) { + for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) { + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) { + flash.setSrc(mediaFiles[_i4].src); + break; + } + } + } + + return flash; + } +}; + +var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]); + +if (hasFlash) { + _media.typeChecks.push(function (url) { + url = url.toLowerCase(); + + if (url.startsWith('rtmp')) { + if (~url.indexOf('.mp3')) { + return 'audio/rtmp'; + } else { + return 'video/rtmp'; + } + } else if (/\.og(a|g)/i.test(url)) { + return 'audio/ogg'; + } else if (~url.indexOf('.m3u8')) { + return 'application/x-mpegURL'; + } else if (~url.indexOf('.mpd')) { + return 'application/dash+xml'; + } else if (~url.indexOf('.flv')) { + return 'video/flv'; + } else { + return null; + } + }); + + var FlashMediaElementVideoRenderer = { + name: 'flash_video', + options: { + prefix: 'flash_video', + filename: 'mediaelement-flash-video.swf', + enablePseudoStreaming: false, + + pseudoStreamingStartQueryParam: 'start', + + pseudoStreamingType: 'byte' + }, + + canPlayType: function canPlayType(type) { + return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase()); + }, + + create: FlashMediaElementRenderer.create + + }; + _renderer.renderer.add(FlashMediaElementVideoRenderer); + + var FlashMediaElementHlsVideoRenderer = { + name: 'flash_hls', + options: { + prefix: 'flash_hls', + filename: 'mediaelement-flash-video-hls.swf' + }, + + canPlayType: function canPlayType(type) { + return ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()); + }, + + create: FlashMediaElementRenderer.create + }; + _renderer.renderer.add(FlashMediaElementHlsVideoRenderer); + + var FlashMediaElementMdashVideoRenderer = { + name: 'flash_dash', + options: { + prefix: 'flash_dash', + filename: 'mediaelement-flash-video-mdash.swf' + }, + + canPlayType: function canPlayType(type) { + return ~['application/dash+xml'].indexOf(type.toLowerCase()); + }, + + create: FlashMediaElementRenderer.create + }; + _renderer.renderer.add(FlashMediaElementMdashVideoRenderer); + + var FlashMediaElementAudioRenderer = { + name: 'flash_audio', + options: { + prefix: 'flash_audio', + filename: 'mediaelement-flash-audio.swf' + }, + + canPlayType: function canPlayType(type) { + return ~['audio/mp3'].indexOf(type.toLowerCase()); + }, + + create: FlashMediaElementRenderer.create + }; + _renderer.renderer.add(FlashMediaElementAudioRenderer); + + var FlashMediaElementAudioOggRenderer = { + name: 'flash_audio_ogg', + options: { + prefix: 'flash_audio_ogg', + filename: 'mediaelement-flash-audio-ogg.swf' + }, + + canPlayType: function canPlayType(type) { + return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase()); + }, + + create: FlashMediaElementRenderer.create + }; + _renderer.renderer.add(FlashMediaElementAudioOggRenderer); +} + +},{"2":2,"25":25,"27":27,"28":28,"3":3,"5":5,"7":7,"8":8}],21:[function(_dereq_,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _constants = _dereq_(25); + +var _media = _dereq_(28); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var NativeFlv = { + + promise: null, + + load: function load(settings) { + if (typeof flvjs !== 'undefined') { + NativeFlv.promise = new Promise(function (resolve) { + resolve(); + }).then(function () { + NativeFlv._createPlayer(settings); + }); + } else { + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.2/flv.min.js'; + + NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path); + NativeFlv.promise.then(function () { + NativeFlv._createPlayer(settings); + }); + } + + return NativeFlv.promise; + }, + + _createPlayer: function _createPlayer(settings) { + flvjs.LoggingControl.enableDebug = settings.options.debug; + flvjs.LoggingControl.enableVerbose = settings.options.debug; + var player = flvjs.createPlayer(settings.options); + _window2.default['__ready__' + settings.id](player); + return player; + } +}; + +var FlvNativeRenderer = { + name: 'native_flv', + options: { + prefix: 'native_flv', + flv: { + path: 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.2/flv.min.js', + + cors: true, + debug: false + } + }, + + canPlayType: function canPlayType(type) { + return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1; + }, + + create: function create(mediaElement, options, mediaFiles) { + + var originalNode = mediaElement.originalNode, + id = mediaElement.id + '_' + options.prefix; + + var node = null, + flvPlayer = null; + + node = originalNode.cloneNode(true); + options = Object.assign(options, mediaElement.options); + + var props = _mejs2.default.html5media.properties, + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), + attachNativeEvents = function attachNativeEvents(e) { + var event = (0, _general.createEvent)(e.type, mediaElement); + mediaElement.dispatchEvent(event); + }, + assignGettersSetters = function assignGettersSetters(propName) { + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + node['get' + capName] = function () { + return flvPlayer !== null ? node[propName] : null; + }; + + node['set' + capName] = function (value) { + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { + if (propName === 'src') { + node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; + if (flvPlayer !== null) { + var _flvOptions = {}; + _flvOptions.type = 'flv'; + _flvOptions.url = value; + _flvOptions.cors = options.flv.cors; + _flvOptions.debug = options.flv.debug; + _flvOptions.path = options.flv.path; + + flvPlayer.destroy(); + for (var i = 0, total = events.length; i < total; i++) { + node.removeEventListener(events[i], attachNativeEvents); + } + flvPlayer = NativeFlv._createPlayer({ + options: _flvOptions, + id: id + }); + flvPlayer.attachMediaElement(node); + flvPlayer.load(); + } + } else { + node[propName] = value; + } + } + }; + }; + + for (var i = 0, total = props.length; i < total; i++) { + assignGettersSetters(props[i]); + } + + _window2.default['__ready__' + id] = function (_flvPlayer) { + mediaElement.flvPlayer = flvPlayer = _flvPlayer; + + var flvEvents = flvjs.Events, + assignEvents = function assignEvents(eventName) { + if (eventName === 'loadedmetadata') { + flvPlayer.unload(); + flvPlayer.detachMediaElement(); + flvPlayer.attachMediaElement(node); + flvPlayer.load(); + } + + node.addEventListener(eventName, attachNativeEvents); + }; + + for (var _i = 0, _total = events.length; _i < _total; _i++) { + assignEvents(events[_i]); + } + + var assignFlvEvents = function assignFlvEvents(name, e) { + var event = (0, _general.createEvent)(name, node); + event.data = e; + mediaElement.dispatchEvent(event); + }; + + var _loop = function _loop(eventType) { + if (flvEvents.hasOwnProperty(eventType)) { + flvPlayer.on(flvEvents[eventType], function (e) { + assignFlvEvents(flvEvents[eventType], e); + }); + } + }; + + for (var eventType in flvEvents) { + _loop(eventType); + } + }; + + if (mediaFiles && mediaFiles.length > 0) { + for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) { + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) { + node.setAttribute('src', mediaFiles[_i2].src); + break; + } + } + } + + node.setAttribute('id', id); + + originalNode.parentNode.insertBefore(node, originalNode); + originalNode.autoplay = false; + originalNode.style.display = 'none'; + + var flvOptions = {}; + flvOptions.type = 'flv'; + flvOptions.url = node.src; + flvOptions.cors = options.flv.cors; + flvOptions.debug = options.flv.debug; + flvOptions.path = options.flv.path; + + node.setSize = function (width, height) { + node.style.width = width + 'px'; + node.style.height = height + 'px'; + return node; + }; + + node.hide = function () { + if (flvPlayer !== null) { + flvPlayer.pause(); + } + node.style.display = 'none'; + return node; + }; + + node.show = function () { + node.style.display = ''; + return node; + }; + + node.destroy = function () { + if (flvPlayer !== null) { + flvPlayer.destroy(); + } + }; + + var event = (0, _general.createEvent)('rendererready', node); + mediaElement.dispatchEvent(event); + + mediaElement.promises.push(NativeFlv.load({ + options: flvOptions, + id: id + })); + + return node; + } +}; + +_media.typeChecks.push(function (url) { + return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null; +}); + +_renderer.renderer.add(FlvNativeRenderer); + +},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],22:[function(_dereq_,module,exports){ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _constants = _dereq_(25); + +var _media = _dereq_(28); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var NativeHls = { + + promise: null, + + load: function load(settings) { + if (typeof Hls !== 'undefined') { + NativeHls.promise = new Promise(function (resolve) { + resolve(); + }).then(function () { + NativeHls._createPlayer(settings); + }); + } else { + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.7.11/hls.min.js'; + + NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path); + NativeHls.promise.then(function () { + NativeHls._createPlayer(settings); + }); + } + + return NativeHls.promise; + }, + + _createPlayer: function _createPlayer(settings) { + var player = new Hls(settings.options); + _window2.default['__ready__' + settings.id](player); + return player; + } +}; + +var HlsNativeRenderer = { + name: 'native_hls', + options: { + prefix: 'native_hls', + hls: { + path: 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.7.10/hls.min.js', + + autoStartLoad: false, + debug: false + } + }, + + canPlayType: function canPlayType(type) { + return _constants.HAS_MSE && ['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1; + }, + + create: function create(mediaElement, options, mediaFiles) { + + var originalNode = mediaElement.originalNode, + id = mediaElement.id + '_' + options.prefix, + preload = originalNode.getAttribute('preload'), + autoplay = originalNode.autoplay; + + var hlsPlayer = null, + node = null; + + node = originalNode.cloneNode(true); + options = Object.assign(options, mediaElement.options); + options.hls.autoStartLoad = preload && preload !== 'none' || autoplay; + + var props = _mejs2.default.html5media.properties, + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), + attachNativeEvents = function attachNativeEvents(e) { + var event = (0, _general.createEvent)(e.type, mediaElement); + mediaElement.dispatchEvent(event); + }, + assignGettersSetters = function assignGettersSetters(propName) { + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + node['get' + capName] = function () { + return hlsPlayer !== null ? node[propName] : null; + }; + + node['set' + capName] = function (value) { + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { + if (propName === 'src') { + node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; + if (hlsPlayer !== null) { + hlsPlayer.destroy(); + for (var i = 0, total = events.length; i < total; i++) { + node.removeEventListener(events[i], attachNativeEvents); + } + hlsPlayer = NativeHls._createPlayer({ + options: options.hls, + id: id + }); + hlsPlayer.loadSource(value); + hlsPlayer.attachMedia(node); + } + } else { + node[propName] = value; + } + } + }; + }; + + for (var i = 0, total = props.length; i < total; i++) { + assignGettersSetters(props[i]); + } + + _window2.default['__ready__' + id] = function (_hlsPlayer) { + mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer; + var hlsEvents = Hls.Events, + assignEvents = function assignEvents(eventName) { + if (eventName === 'loadedmetadata') { + var url = mediaElement.originalNode.src; + hlsPlayer.detachMedia(); + hlsPlayer.loadSource(url); + hlsPlayer.attachMedia(node); + } + + node.addEventListener(eventName, attachNativeEvents); + }; + + for (var _i = 0, _total = events.length; _i < _total; _i++) { + assignEvents(events[_i]); + } + + var recoverDecodingErrorDate = void 0, + recoverSwapAudioCodecDate = void 0; + var assignHlsEvents = function assignHlsEvents(e, data) { + var event = (0, _general.createEvent)(e, node); + event.data = data; + mediaElement.dispatchEvent(event); + + if (e === 'hlsError') { + console.warn(e, data); + + if (data.fatal) { + switch (data.type) { + case 'mediaError': + var now = new Date().getTime(); + if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) { + recoverDecodingErrorDate = new Date().getTime(); + hlsPlayer.recoverMediaError(); + } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) { + recoverSwapAudioCodecDate = new Date().getTime(); + console.warn('Attempting to swap Audio Codec and recover from media error'); + hlsPlayer.swapAudioCodec(); + hlsPlayer.recoverMediaError(); + } else { + console.error('Cannot recover, last media error recovery failed'); + } + break; + case 'networkError': + console.error('Network error'); + break; + default: + hlsPlayer.destroy(); + break; + } + } + } + }; + + for (var eventType in hlsEvents) { + if (hlsEvents.hasOwnProperty(eventType)) { + hlsPlayer.on(hlsEvents[eventType], assignHlsEvents); + } + } + }; + + if (mediaFiles && mediaFiles.length > 0) { + for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) { + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) { + node.setAttribute('src', mediaFiles[_i2].src); + break; + } + } + } + + if (preload !== 'auto' && !autoplay) { + node.addEventListener('play', function () { + if (hlsPlayer !== null) { + hlsPlayer.startLoad(); + } + }); + + node.addEventListener('pause', function () { + if (hlsPlayer !== null) { + hlsPlayer.stopLoad(); + } + }); + } + + node.setAttribute('id', id); + + originalNode.parentNode.insertBefore(node, originalNode); + originalNode.autoplay = false; + originalNode.style.display = 'none'; + + node.setSize = function (width, height) { + node.style.width = width + 'px'; + node.style.height = height + 'px'; + return node; + }; + + node.hide = function () { + node.pause(); + node.style.display = 'none'; + return node; + }; + + node.show = function () { + node.style.display = ''; + return node; + }; + + node.destroy = function () { + if (hlsPlayer !== null) { + hlsPlayer.stopLoad(); + hlsPlayer.destroy(); + } + }; + + var event = (0, _general.createEvent)('rendererready', node); + mediaElement.dispatchEvent(event); + + mediaElement.promises.push(NativeHls.load({ + options: options.hls, + id: id + })); + + return node; + } +}; + +_media.typeChecks.push(function (url) { + return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null; +}); + +_renderer.renderer.add(HlsNativeRenderer); + +},{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],23:[function(_dereq_,module,exports){ +'use strict'; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _constants = _dereq_(25); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var HtmlMediaElement = { + name: 'html5', + options: { + prefix: 'html5' + }, + + canPlayType: function canPlayType(type) { + + var mediaElement = _document2.default.createElement('video'); + + if (_constants.IS_ANDROID && /\/mp(3|4)$/i.test(type) || ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) && _constants.SUPPORTS_NATIVE_HLS) { + return 'yes'; + } else if (mediaElement.canPlayType) { + return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, ''); + } else { + return ''; + } + }, + + create: function create(mediaElement, options, mediaFiles) { + + var id = mediaElement.id + '_' + options.prefix; + + var node = null; + + if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) { + node = _document2.default.createElement('audio'); + mediaElement.appendChild(node); + } else { + node = mediaElement.originalNode; + } + + node.setAttribute('id', id); + + var props = _mejs2.default.html5media.properties, + assignGettersSetters = function assignGettersSetters(propName) { + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + node['get' + capName] = function () { + return node[propName]; + }; + + node['set' + capName] = function (value) { + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { + node[propName] = value; + } + }; + }; + + for (var i = 0, total = props.length; i < total; i++) { + assignGettersSetters(props[i]); + } + + var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), + assignEvents = function assignEvents(eventName) { + node.addEventListener(eventName, function (e) { + var event = (0, _general.createEvent)(e.type, mediaElement); + mediaElement.dispatchEvent(event); + }); + }; + + for (var _i = 0, _total = events.length; _i < _total; _i++) { + assignEvents(events[_i]); + } + + node.setSize = function (width, height) { + node.style.width = width + 'px'; + node.style.height = height + 'px'; + return node; + }; + + node.hide = function () { + node.style.display = 'none'; + + return node; + }; + + node.show = function () { + node.style.display = ''; + + return node; + }; + + if (mediaFiles && mediaFiles.length > 0) { + for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) { + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) { + node.setAttribute('src', mediaFiles[_i2].src); + break; + } + } + } + + var event = (0, _general.createEvent)('rendererready', node); + mediaElement.dispatchEvent(event); + + return node; + } +}; + +_window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement; + +_renderer.renderer.add(HtmlMediaElement); + +},{"2":2,"25":25,"27":27,"3":3,"7":7,"8":8}],24:[function(_dereq_,module,exports){ +'use strict'; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _renderer = _dereq_(8); + +var _general = _dereq_(27); + +var _media = _dereq_(28); + +var _dom = _dereq_(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var YouTubeApi = { + isIframeStarted: false, + + isIframeLoaded: false, + + iframeQueue: [], + + enqueueIframe: function enqueueIframe(settings) { + YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded; + + if (YouTubeApi.isLoaded) { + YouTubeApi.createIframe(settings); + } else { + YouTubeApi.loadIframeApi(); + YouTubeApi.iframeQueue.push(settings); + } + }, + + loadIframeApi: function loadIframeApi() { + if (!YouTubeApi.isIframeStarted) { + (0, _dom.loadScript)('https://www.youtube.com/player_api'); + YouTubeApi.isIframeStarted = true; + } + }, + + iFrameReady: function iFrameReady() { + + YouTubeApi.isLoaded = true; + YouTubeApi.isIframeLoaded = true; + + while (YouTubeApi.iframeQueue.length > 0) { + var settings = YouTubeApi.iframeQueue.pop(); + YouTubeApi.createIframe(settings); + } + }, + + createIframe: function createIframe(settings) { + return new YT.Player(settings.containerId, settings); + }, + + getYouTubeId: function getYouTubeId(url) { + + var youTubeId = ''; + + if (url.indexOf('?') > 0) { + youTubeId = YouTubeApi.getYouTubeIdFromParam(url); + + if (youTubeId === '') { + youTubeId = YouTubeApi.getYouTubeIdFromUrl(url); + } + } else { + youTubeId = YouTubeApi.getYouTubeIdFromUrl(url); + } + + var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1); + youTubeId = id.split('?'); + return youTubeId[0]; + }, + + getYouTubeIdFromParam: function getYouTubeIdFromParam(url) { + + if (url === undefined || url === null || !url.trim().length) { + return null; + } + + var parts = url.split('?'), + parameters = parts[1].split('&'); + + var youTubeId = ''; + + for (var i = 0, total = parameters.length; i < total; i++) { + var paramParts = parameters[i].split('='); + if (paramParts[0] === 'v') { + youTubeId = paramParts[1]; + break; + } + } + + return youTubeId; + }, + + getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) { + + if (url === undefined || url === null || !url.trim().length) { + return null; + } + + var parts = url.split('?'); + url = parts[0]; + return url.substring(url.lastIndexOf('/') + 1); + }, + + getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) { + if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) { + return url; + } + + var parts = url.split('/'); + parts[2] = parts[2].replace('.com', '-nocookie.com'); + return parts.join('/'); + } +}; + +var YouTubeIframeRenderer = { + name: 'youtube_iframe', + + options: { + prefix: 'youtube_iframe', + + youtube: { + autoplay: 0, + controls: 0, + disablekb: 1, + end: 0, + loop: 0, + modestbranding: 0, + playsinline: 0, + rel: 0, + showinfo: 0, + start: 0, + iv_load_policy: 3, + + nocookie: false, + + imageQuality: null + } + }, + + canPlayType: function canPlayType(type) { + return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase()); + }, + + create: function create(mediaElement, options, mediaFiles) { + + var youtube = {}, + apiStack = [], + readyState = 4; + + var youTubeApi = null, + paused = true, + ended = false, + youTubeIframe = null, + volume = 1; + + youtube.options = options; + youtube.id = mediaElement.id + '_' + options.prefix; + youtube.mediaElement = mediaElement; + + var props = _mejs2.default.html5media.properties, + assignGettersSetters = function assignGettersSetters(propName) { + + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + youtube['get' + capName] = function () { + if (youTubeApi !== null) { + var value = null; + + switch (propName) { + case 'currentTime': + return youTubeApi.getCurrentTime(); + case 'duration': + return youTubeApi.getDuration(); + case 'volume': + volume = youTubeApi.getVolume() / 100; + return volume; + case 'paused': + return paused; + case 'ended': + return ended; + case 'muted': + return youTubeApi.isMuted(); + case 'buffered': + var percentLoaded = youTubeApi.getVideoLoadedFraction(), + duration = youTubeApi.getDuration(); + return { + start: function start() { + return 0; + }, + end: function end() { + return percentLoaded * duration; + }, + length: 1 + }; + case 'src': + return youTubeApi.getVideoUrl(); + case 'readyState': + return readyState; + } + + return value; + } else { + return null; + } + }; + + youtube['set' + capName] = function (value) { + if (youTubeApi !== null) { + switch (propName) { + case 'src': + var url = typeof value === 'string' ? value : value[0].src, + _videoId = YouTubeApi.getYouTubeId(url); + + if (mediaElement.originalNode.autoplay) { + youTubeApi.loadVideoById(_videoId); + } else { + youTubeApi.cueVideoById(_videoId); + } + break; + case 'currentTime': + youTubeApi.seekTo(value); + break; + case 'muted': + if (value) { + youTubeApi.mute(); + } else { + youTubeApi.unMute(); + } + setTimeout(function () { + var event = (0, _general.createEvent)('volumechange', youtube); + mediaElement.dispatchEvent(event); + }, 50); + break; + case 'volume': + volume = value; + youTubeApi.setVolume(value * 100); + setTimeout(function () { + var event = (0, _general.createEvent)('volumechange', youtube); + mediaElement.dispatchEvent(event); + }, 50); + break; + case 'readyState': + var event = (0, _general.createEvent)('canplay', youtube); + mediaElement.dispatchEvent(event); + break; + default: + + break; + } + } else { + apiStack.push({ type: 'set', propName: propName, value: value }); + } + }; + }; + + for (var i = 0, total = props.length; i < total; i++) { + assignGettersSetters(props[i]); + } + + var methods = _mejs2.default.html5media.methods, + assignMethods = function assignMethods(methodName) { + youtube[methodName] = function () { + if (youTubeApi !== null) { + switch (methodName) { + case 'play': + paused = false; + return youTubeApi.playVideo(); + case 'pause': + paused = true; + return youTubeApi.pauseVideo(); + case 'load': + return null; + } + } else { + apiStack.push({ type: 'call', methodName: methodName }); + } + }; + }; + + for (var _i = 0, _total = methods.length; _i < _total; _i++) { + assignMethods(methods[_i]); + } + + var youtubeContainer = _document2.default.createElement('div'); + youtubeContainer.id = youtube.id; + + if (youtube.options.youtube.nocookie) { + mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src); + } + + mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode); + mediaElement.originalNode.style.display = 'none'; + + var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio', + height = isAudio ? '1' : mediaElement.originalNode.height, + width = isAudio ? '1' : mediaElement.originalNode.width, + videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src), + youtubeSettings = { + id: youtube.id, + containerId: youtubeContainer.id, + videoId: videoId, + height: height, + width: width, + playerVars: Object.assign({ + controls: 0, + rel: 0, + disablekb: 1, + showinfo: 0, + modestbranding: 0, + html5: 1, + playsinline: 0, + start: 0, + end: 0, + iv_load_policy: 3 + }, youtube.options.youtube), + origin: _window2.default.location.host, + events: { + onReady: function onReady(e) { + mediaElement.youTubeApi = youTubeApi = e.target; + mediaElement.youTubeState = { + paused: true, + ended: false + }; + + if (apiStack.length) { + for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) { + + var stackItem = apiStack[_i2]; + + if (stackItem.type === 'set') { + var propName = stackItem.propName, + capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); + + youtube['set' + capName](stackItem.value); + } else if (stackItem.type === 'call') { + youtube[stackItem.methodName](); + } + } + } + + youTubeIframe = youTubeApi.getIframe(); + + if (mediaElement.originalNode.getAttribute('muted')) { + youTubeApi.mute(); + } + + var events = ['mouseover', 'mouseout'], + assignEvents = function assignEvents(e) { + var newEvent = (0, _general.createEvent)(e.type, youtube); + mediaElement.dispatchEvent(newEvent); + }; + + for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) { + youTubeIframe.addEventListener(events[_i3], assignEvents, false); + } + + var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay']; + + for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) { + var event = (0, _general.createEvent)(initEvents[_i4], youtube); + mediaElement.dispatchEvent(event); + } + }, + onStateChange: function onStateChange(e) { + var events = []; + + switch (e.data) { + case -1: + events = ['loadedmetadata']; + paused = true; + ended = false; + break; + case 0: + events = ['ended']; + paused = false; + ended = !youtube.options.youtube.loop; + if (!youtube.options.youtube.loop) { + youtube.stopInterval(); + } + break; + case 1: + events = ['play', 'playing']; + paused = false; + ended = false; + youtube.startInterval(); + break; + case 2: + events = ['pause']; + paused = true; + ended = false; + youtube.stopInterval(); + break; + case 3: + events = ['progress']; + ended = false; + break; + case 5: + events = ['loadeddata', 'loadedmetadata', 'canplay']; + paused = true; + ended = false; + break; + } + + for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) { + var event = (0, _general.createEvent)(events[_i5], youtube); + mediaElement.dispatchEvent(event); + } + }, + onError: function onError(e) { + var event = (0, _general.createEvent)('error', youtube); + event.data = e.data; + mediaElement.dispatchEvent(event); + } + } + }; + + if (isAudio) { + youtubeSettings.playerVars.playsinline = 1; + } + + if (mediaElement.originalNode.autoplay) { + youtubeSettings.playerVars.autoplay = 1; + } + + if (mediaElement.originalNode.loop) { + youtubeSettings.playerVars.loop = 1; + } + + YouTubeApi.enqueueIframe(youtubeSettings); + + youtube.onEvent = function (eventName, player, _youTubeState) { + if (_youTubeState !== null && _youTubeState !== undefined) { + mediaElement.youTubeState = _youTubeState; + } + }; + + youtube.setSize = function (width, height) { + if (youTubeApi !== null) { + youTubeApi.setSize(width, height); + } + }; + youtube.hide = function () { + youtube.stopInterval(); + youtube.pause(); + if (youTubeIframe) { + youTubeIframe.style.display = 'none'; + } + }; + youtube.show = function () { + if (youTubeIframe) { + youTubeIframe.style.display = ''; + } + }; + youtube.destroy = function () { + youTubeApi.destroy(); + }; + youtube.interval = null; + + youtube.startInterval = function () { + youtube.interval = setInterval(function () { + var event = (0, _general.createEvent)('timeupdate', youtube); + mediaElement.dispatchEvent(event); + }, 250); + }; + youtube.stopInterval = function () { + if (youtube.interval) { + clearInterval(youtube.interval); + } + }; + youtube.getPosterUrl = function () { + var quality = options.youtube.imageQuality, + resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'], + id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src); + return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : ''; + }; + + return youtube; + } +}; + +_window2.default.onYouTubePlayerAPIReady = function () { + YouTubeApi.iFrameReady(); +}; + +_media.typeChecks.push(function (url) { + return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null + ); +}); + +_renderer.renderer.add(YouTubeIframeRenderer); + +},{"2":2,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],25:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.cancelFullScreen = exports.requestFullScreen = exports.isFullScreen = exports.FULLSCREEN_EVENT_NAME = exports.HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = exports.SUPPORTS_NATIVE_HLS = exports.SUPPORT_POINTER_EVENTS = exports.HAS_MSE = exports.IS_STOCK_ANDROID = exports.IS_SAFARI = exports.IS_FIREFOX = exports.IS_CHROME = exports.IS_EDGE = exports.IS_IE = exports.IS_ANDROID = exports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = exports.UA = exports.NAV = undefined; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var NAV = exports.NAV = _window2.default.navigator; +var UA = exports.UA = NAV.userAgent.toLowerCase(); +var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream; +var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream; +var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream; +var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream; +var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA); +var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName); +var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default); +var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA); +var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA); +var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME; +var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA); +var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default; +var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () { + var element = _document2.default.createElement('x'), + documentElement = _document2.default.documentElement, + getComputedStyle = _window2.default.getComputedStyle; + + if (!('pointerEvents' in element.style)) { + return false; + } + + element.style.pointerEvents = 'auto'; + element.style.pointerEvents = 'x'; + documentElement.appendChild(element); + var supports = getComputedStyle && getComputedStyle(element, '').pointerEvents === 'auto'; + element.remove(); + return !!supports; +}(); + +var html5Elements = ['source', 'track', 'audio', 'video']; +var video = void 0; + +for (var i = 0, total = html5Elements.length; i < total; i++) { + video = _document2.default.createElement(html5Elements[i]); +} + +var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_ANDROID && (IS_CHROME || IS_STOCK_ANDROID) || IS_IE && /edge/i.test(UA); + +var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined; + +var hasNativeFullscreen = video.requestFullscreen !== undefined; + +if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) { + hasNativeFullscreen = false; + hasiOSFullScreen = false; +} + +var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined; +var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined; +var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined; +var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen; +var nativeFullScreenEnabled = hasTrueNativeFullScreen; +var fullScreenEventName = ''; +var isFullScreen = void 0, + requestFullScreen = void 0, + cancelFullScreen = void 0; + +if (hasMozNativeFullScreen) { + nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled; +} else if (hasMsNativeFullScreen) { + nativeFullScreenEnabled = _document2.default.msFullscreenEnabled; +} + +if (IS_CHROME) { + hasiOSFullScreen = false; +} + +if (hasTrueNativeFullScreen) { + if (hasWebkitNativeFullScreen) { + fullScreenEventName = 'webkitfullscreenchange'; + } else if (hasMozNativeFullScreen) { + fullScreenEventName = 'mozfullscreenchange'; + } else if (hasMsNativeFullScreen) { + fullScreenEventName = 'MSFullscreenChange'; + } + + exports.isFullScreen = isFullScreen = function isFullScreen() { + if (hasMozNativeFullScreen) { + return _document2.default.mozFullScreen; + } else if (hasWebkitNativeFullScreen) { + return _document2.default.webkitIsFullScreen; + } else if (hasMsNativeFullScreen) { + return _document2.default.msFullscreenElement !== null; + } + }; + + exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) { + if (hasWebkitNativeFullScreen) { + el.webkitRequestFullScreen(); + } else if (hasMozNativeFullScreen) { + el.mozRequestFullScreen(); + } else if (hasMsNativeFullScreen) { + el.msRequestFullscreen(); + } + }; + + exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() { + if (hasWebkitNativeFullScreen) { + _document2.default.webkitCancelFullScreen(); + } else if (hasMozNativeFullScreen) { + _document2.default.mozCancelFullScreen(); + } else if (hasMsNativeFullScreen) { + _document2.default.msExitFullscreen(); + } + }; +} + +var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen; +var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen; +var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen; +var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen; +var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen; +var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen; +var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled; +var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName; +exports.isFullScreen = isFullScreen; +exports.requestFullScreen = requestFullScreen; +exports.cancelFullScreen = cancelFullScreen; + + +_mejs2.default.Features = _mejs2.default.Features || {}; +_mejs2.default.Features.isiPad = IS_IPAD; +_mejs2.default.Features.isiPod = IS_IPOD; +_mejs2.default.Features.isiPhone = IS_IPHONE; +_mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad; +_mejs2.default.Features.isAndroid = IS_ANDROID; +_mejs2.default.Features.isIE = IS_IE; +_mejs2.default.Features.isEdge = IS_EDGE; +_mejs2.default.Features.isChrome = IS_CHROME; +_mejs2.default.Features.isFirefox = IS_FIREFOX; +_mejs2.default.Features.isSafari = IS_SAFARI; +_mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID; +_mejs2.default.Features.hasMSE = HAS_MSE; +_mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS; +_mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS; +_mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN; +_mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN; +_mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN; +_mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN; +_mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN; +_mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN; +_mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED; +_mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME; +_mejs2.default.Features.isFullScreen = isFullScreen; +_mejs2.default.Features.requestFullScreen = requestFullScreen; +_mejs2.default.Features.cancelFullScreen = cancelFullScreen; + +},{"2":2,"3":3,"7":7}],26:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.removeClass = exports.addClass = exports.hasClass = undefined; +exports.loadScript = loadScript; +exports.offset = offset; +exports.toggleClass = toggleClass; +exports.fadeOut = fadeOut; +exports.fadeIn = fadeIn; +exports.siblings = siblings; +exports.visible = visible; +exports.ajax = ajax; + +var _window = _dereq_(3); + +var _window2 = _interopRequireDefault(_window); + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function loadScript(url) { + return new Promise(function (resolve, reject) { + var script = _document2.default.createElement('script'); + script.src = url; + script.async = true; + script.onload = function () { + script.remove(); + resolve(); + }; + script.onerror = function () { + script.remove(); + reject(); + }; + _document2.default.head.appendChild(script); + }); +} + +function offset(el) { + var rect = el.getBoundingClientRect(), + scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft, + scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop; + return { top: rect.top + scrollTop, left: rect.left + scrollLeft }; +} + +var hasClassMethod = void 0, + addClassMethod = void 0, + removeClassMethod = void 0; + +if ('classList' in _document2.default.documentElement) { + hasClassMethod = function hasClassMethod(el, className) { + return el.classList !== undefined && el.classList.contains(className); + }; + addClassMethod = function addClassMethod(el, className) { + return el.classList.add(className); + }; + removeClassMethod = function removeClassMethod(el, className) { + return el.classList.remove(className); + }; +} else { + hasClassMethod = function hasClassMethod(el, className) { + return new RegExp('\\b' + className + '\\b').test(el.className); + }; + addClassMethod = function addClassMethod(el, className) { + if (!hasClass(el, className)) { + el.className += ' ' + className; + } + }; + removeClassMethod = function removeClassMethod(el, className) { + el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), ''); + }; +} + +var hasClass = exports.hasClass = hasClassMethod; +var addClass = exports.addClass = addClassMethod; +var removeClass = exports.removeClass = removeClassMethod; + +function toggleClass(el, className) { + hasClass(el, className) ? removeClass(el, className) : addClass(el, className); +} + +function fadeOut(el) { + var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400; + var callback = arguments[2]; + + if (!el.style.opacity) { + el.style.opacity = 1; + } + + var start = null; + _window2.default.requestAnimationFrame(function animate(timestamp) { + start = start || timestamp; + var progress = timestamp - start; + var opacity = parseFloat(1 - progress / duration, 2); + el.style.opacity = opacity < 0 ? 0 : opacity; + if (progress > duration) { + if (callback && typeof callback === 'function') { + callback(); + } + } else { + _window2.default.requestAnimationFrame(animate); + } + }); +} + +function fadeIn(el) { + var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400; + var callback = arguments[2]; + + if (!el.style.opacity) { + el.style.opacity = 0; + } + + var start = null; + _window2.default.requestAnimationFrame(function animate(timestamp) { + start = start || timestamp; + var progress = timestamp - start; + var opacity = parseFloat(progress / duration, 2); + el.style.opacity = opacity > 1 ? 1 : opacity; + if (progress > duration) { + if (callback && typeof callback === 'function') { + callback(); + } + } else { + _window2.default.requestAnimationFrame(animate); + } + }); +} + +function siblings(el, filter) { + var siblings = []; + el = el.parentNode.firstChild; + do { + if (!filter || filter(el)) { + siblings.push(el); + } + } while (el = el.nextSibling); + return siblings; +} + +function visible(elem) { + return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); +} + +function ajax(url, dataType, success, error) { + var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); + + var type = 'application/x-www-form-urlencoded; charset=UTF-8', + completed = false, + accept = '*/'.concat('*'); + + switch (dataType) { + case 'text': + type = 'text/plain'; + break; + case 'json': + type = 'application/json, text/javascript'; + break; + case 'html': + type = 'text/html'; + break; + case 'xml': + type = 'application/xml, text/xml'; + break; + } + + if (type !== 'application/x-www-form-urlencoded') { + accept = type + ', */*; q=0.01'; + } + + if (xhr) { + xhr.open('GET', url, true); + xhr.setRequestHeader('Accept', accept); + xhr.onreadystatechange = function () { + if (completed) { + return; + } + + if (xhr.readyState === 4) { + if (xhr.status === 200) { + completed = true; + var data = void 0; + switch (dataType) { + case 'json': + data = JSON.parse(xhr.responseText); + break; + case 'xml': + data = xhr.responseXML; + break; + default: + data = xhr.responseText; + break; + } + success(data); + } else if (typeof error === 'function') { + error(xhr.status); + } + } + }; + + xhr.send(); + } +} + +_mejs2.default.Utils = _mejs2.default.Utils || {}; +_mejs2.default.Utils.offset = offset; +_mejs2.default.Utils.hasClass = hasClass; +_mejs2.default.Utils.addClass = addClass; +_mejs2.default.Utils.removeClass = removeClass; +_mejs2.default.Utils.toggleClass = toggleClass; +_mejs2.default.Utils.fadeIn = fadeIn; +_mejs2.default.Utils.fadeOut = fadeOut; +_mejs2.default.Utils.siblings = siblings; +_mejs2.default.Utils.visible = visible; +_mejs2.default.Utils.ajax = ajax; +_mejs2.default.Utils.loadScript = loadScript; + +},{"2":2,"3":3,"7":7}],27:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.escapeHTML = escapeHTML; +exports.debounce = debounce; +exports.isObjectEmpty = isObjectEmpty; +exports.splitEvents = splitEvents; +exports.createEvent = createEvent; +exports.isNodeAfter = isNodeAfter; +exports.isString = isString; + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function escapeHTML(input) { + + if (typeof input !== 'string') { + throw new Error('Argument passed must be a string'); + } + + var map = { + '&': '&', + '<': '<', + '>': '>', + '"': '"' + }; + + return input.replace(/[&<>"]/g, function (c) { + return map[c]; + }); +} + +function debounce(func, wait) { + var _this = this, + _arguments = arguments; + + var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + + if (typeof func !== 'function') { + throw new Error('First argument must be a function'); + } + + if (typeof wait !== 'number') { + throw new Error('Second argument must be a numeric value'); + } + + var timeout = void 0; + return function () { + var context = _this, + args = _arguments; + var later = function later() { + timeout = null; + if (!immediate) { + func.apply(context, args); + } + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + + if (callNow) { + func.apply(context, args); + } + }; +} + +function isObjectEmpty(instance) { + return Object.getOwnPropertyNames(instance).length <= 0; +} + +function splitEvents(events, id) { + var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/; + + var ret = { d: [], w: [] }; + (events || '').split(' ').forEach(function (v) { + var eventName = '' + v + (id ? '.' + id : ''); + + if (eventName.startsWith('.')) { + ret.d.push(eventName); + ret.w.push(eventName); + } else { + ret[rwindow.test(v) ? 'w' : 'd'].push(eventName); + } + }); + + ret.d = ret.d.join(' '); + ret.w = ret.w.join(' '); + return ret; +} + +function createEvent(eventName, target) { + + if (typeof eventName !== 'string') { + throw new Error('Event name must be a string'); + } + + var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i), + detail = { + target: target + }; + + if (eventFrags !== null) { + eventName = eventFrags[1]; + detail.namespace = eventFrags[2]; + } + + return new window.CustomEvent(eventName, { + detail: detail + }); +} + +function isNodeAfter(sourceNode, targetNode) { + + return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2); +} + +function isString(value) { + return typeof value === 'string'; +} + +_mejs2.default.Utils = _mejs2.default.Utils || {}; +_mejs2.default.Utils.escapeHTML = escapeHTML; +_mejs2.default.Utils.debounce = debounce; +_mejs2.default.Utils.isObjectEmpty = isObjectEmpty; +_mejs2.default.Utils.splitEvents = splitEvents; +_mejs2.default.Utils.createEvent = createEvent; +_mejs2.default.Utils.isNodeAfter = isNodeAfter; +_mejs2.default.Utils.isString = isString; + +},{"7":7}],28:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.typeChecks = undefined; +exports.absolutizeUrl = absolutizeUrl; +exports.formatType = formatType; +exports.getMimeFromType = getMimeFromType; +exports.getTypeFromFile = getTypeFromFile; +exports.getExtension = getExtension; +exports.normalizeExtension = normalizeExtension; + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +var _general = _dereq_(27); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var typeChecks = exports.typeChecks = []; + +function absolutizeUrl(url) { + + if (typeof url !== 'string') { + throw new Error('`url` argument must be a string'); + } + + var el = document.createElement('div'); + el.innerHTML = 'x'; + return el.firstChild.href; +} + +function formatType(url) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + return url && !type ? getTypeFromFile(url) : getMimeFromType(type); +} + +function getMimeFromType(type) { + + if (typeof type !== 'string') { + throw new Error('`type` argument must be a string'); + } + + return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type; +} + +function getTypeFromFile(url) { + + if (typeof url !== 'string') { + throw new Error('`url` argument must be a string'); + } + + for (var i = 0, total = typeChecks.length; i < total; i++) { + var type = typeChecks[i](url); + + if (type) { + return type; + } + } + + var ext = getExtension(url), + normalizedExt = normalizeExtension(ext); + + var mime = 'video/mp4'; + + if (normalizedExt) { + if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg', 'mov'].indexOf(normalizedExt)) { + mime = 'video/' + normalizedExt; + } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) { + mime = 'audio/' + normalizedExt; + } + } + + return mime; +} + +function getExtension(url) { + + if (typeof url !== 'string') { + throw new Error('`url` argument must be a string'); + } + + var baseUrl = url.split('?')[0], + baseName = baseUrl.split('\\').pop().split('/').pop(); + return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : ''; +} + +function normalizeExtension(extension) { + + if (typeof extension !== 'string') { + throw new Error('`extension` argument must be a string'); + } + + switch (extension) { + case 'mp4': + case 'm4v': + return 'mp4'; + case 'webm': + case 'webma': + case 'webmv': + return 'webm'; + case 'ogg': + case 'oga': + case 'ogv': + return 'ogg'; + default: + return extension; + } +} + +_mejs2.default.Utils = _mejs2.default.Utils || {}; +_mejs2.default.Utils.typeChecks = typeChecks; +_mejs2.default.Utils.absolutizeUrl = absolutizeUrl; +_mejs2.default.Utils.formatType = formatType; +_mejs2.default.Utils.getMimeFromType = getMimeFromType; +_mejs2.default.Utils.getTypeFromFile = getTypeFromFile; +_mejs2.default.Utils.getExtension = getExtension; +_mejs2.default.Utils.normalizeExtension = normalizeExtension; + +},{"27":27,"7":7}],29:[function(_dereq_,module,exports){ +'use strict'; + +var _document = _dereq_(2); + +var _document2 = _interopRequireDefault(_document); + +var _promisePolyfill = _dereq_(4); + +var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +(function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + this.parentNode.removeChild(this); + } + }); + }); +})([Element.prototype, CharacterData.prototype, DocumentType.prototype]); + +(function () { + + if (typeof window.CustomEvent === 'function') { + return false; + } + + function CustomEvent(event, params) { + params = params || { bubbles: false, cancelable: false, detail: undefined }; + var evt = _document2.default.createEvent('CustomEvent'); + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); + return evt; + } + + CustomEvent.prototype = window.Event.prototype; + window.CustomEvent = CustomEvent; +})(); + +if (typeof Object.assign !== 'function') { + Object.assign = function (target) { + + if (target === null || target === undefined) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1, total = arguments.length; index < total; index++) { + var nextSource = arguments[index]; + + if (nextSource !== null) { + for (var nextKey in nextSource) { + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }; +} + +if (!String.prototype.startsWith) { + String.prototype.startsWith = function (searchString, position) { + position = position || 0; + return this.substr(position, searchString.length) === searchString; + }; +} + +if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) { + var matches = (this.document || this.ownerDocument).querySelectorAll(s), + i = matches.length - 1; + while (--i >= 0 && matches.item(i) !== this) {} + return i > -1; + }; +} + +if (window.Element && !Element.prototype.closest) { + Element.prototype.closest = function (s) { + var matches = (this.document || this.ownerDocument).querySelectorAll(s), + i = void 0, + el = this; + do { + i = matches.length; + while (--i >= 0 && matches.item(i) !== el) {} + } while (i < 0 && (el = el.parentElement)); + return el; + }; +} + +(function () { + var lastTime = 0; + var vendors = ['ms', 'moz', 'webkit', 'o']; + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { + window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; + window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; + } + + if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function () { + callback(currTime + timeToCall); + }, timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + + if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { + clearTimeout(id); + }; +})(); + +if (/firefox/i.test(navigator.userAgent)) { + window.mediaElementJsOldGetComputedStyle = window.getComputedStyle; + window.getComputedStyle = function (el, pseudoEl) { + var t = window.mediaElementJsOldGetComputedStyle(el, pseudoEl); + return t === null ? { getPropertyValue: function getPropertyValue() {} } : t; + }; +} + +if (!window.Promise) { + window.Promise = _promisePolyfill2.default; +} + +(function (constructor) { + if (constructor && constructor.prototype && constructor.prototype.children === null) { + Object.defineProperty(constructor.prototype, 'children', { + get: function get() { + var i = 0, + node = void 0, + nodes = this.childNodes, + children = []; + while (node = nodes[i++]) { + if (node.nodeType === 1) { + children.push(node); + } + } + return children; + } + }); + } +})(window.Node || window.Element); + +},{"2":2,"4":4}],30:[function(_dereq_,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isDropFrame = isDropFrame; +exports.secondsToTimeCode = secondsToTimeCode; +exports.timeCodeToSeconds = timeCodeToSeconds; +exports.calculateTimeFormat = calculateTimeFormat; +exports.convertSMPTEtoSeconds = convertSMPTEtoSeconds; + +var _mejs = _dereq_(7); + +var _mejs2 = _interopRequireDefault(_mejs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function isDropFrame() { + var fps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 25; + + return !(fps % 1 === 0); +} +function secondsToTimeCode(time) { + var forceHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var showFrameCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var fps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25; + var secondsDecimalLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + + + time = !time || typeof time !== 'number' || time < 0 ? 0 : time; + + var dropFrames = Math.round(fps * 0.066666), + timeBase = Math.round(fps), + framesPer24Hours = Math.round(fps * 3600) * 24, + framesPer10Minutes = Math.round(fps * 600), + frameSep = isDropFrame(fps) ? ';' : ':', + hours = void 0, + minutes = void 0, + seconds = void 0, + frames = void 0, + f = Math.round(time * fps); + + if (isDropFrame(fps)) { + + if (f < 0) { + f = framesPer24Hours + f; + } + + f = f % framesPer24Hours; + + var d = Math.floor(f / framesPer10Minutes); + var m = f % framesPer10Minutes; + f = f + dropFrames * 9 * d; + if (m > dropFrames) { + f = f + dropFrames * Math.floor((m - dropFrames) / Math.round(timeBase * 60 - dropFrames)); + } + + var timeBaseDivision = Math.floor(f / timeBase); + + hours = Math.floor(Math.floor(timeBaseDivision / 60) / 60); + minutes = Math.floor(timeBaseDivision / 60) % 60; + + if (showFrameCount) { + seconds = timeBaseDivision % 60; + } else { + seconds = (f / timeBase % 60).toFixed(secondsDecimalLength); + } + } else { + hours = Math.floor(time / 3600) % 24; + minutes = Math.floor(time / 60) % 60; + if (showFrameCount) { + seconds = Math.floor(time % 60); + } else { + seconds = (time % 60).toFixed(secondsDecimalLength); + } + } + hours = hours <= 0 ? 0 : hours; + minutes = minutes <= 0 ? 0 : minutes; + seconds = seconds <= 0 ? 0 : seconds; + + var result = forceHours || hours > 0 ? (hours < 10 ? '0' + hours : hours) + ':' : ''; + result += (minutes < 10 ? '0' + minutes : minutes) + ':'; + result += '' + (seconds < 10 ? '0' + seconds : seconds); + + if (showFrameCount) { + frames = (f % timeBase).toFixed(0); + frames = frames <= 0 ? 0 : frames; + result += frames < 10 ? frameSep + '0' + frames : '' + frameSep + frames; + } + + return result; +} + +function timeCodeToSeconds(time) { + var fps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 25; + + + if (typeof time !== 'string') { + throw new TypeError('Time must be a string'); + } + + if (time.indexOf(';') > 0) { + time = time.replace(';', ':'); + } + + if (!/\d{2}(\:\d{2}){0,3}/i.test(time)) { + throw new TypeError('Time code must have the format `00:00:00`'); + } + + var parts = time.split(':'); + + var output = void 0, + hours = 0, + minutes = 0, + seconds = 0, + frames = 0, + totalMinutes = 0, + dropFrames = Math.round(fps * 0.066666), + timeBase = Math.round(fps), + hFrames = timeBase * 3600, + mFrames = timeBase * 60; + + switch (parts.length) { + default: + case 1: + seconds = parseInt(parts[0], 10); + break; + case 2: + minutes = parseInt(parts[0], 10); + seconds = parseInt(parts[1], 10); + break; + case 3: + hours = parseInt(parts[0], 10); + minutes = parseInt(parts[1], 10); + seconds = parseInt(parts[2], 10); + break; + case 4: + hours = parseInt(parts[0], 10); + minutes = parseInt(parts[1], 10); + seconds = parseInt(parts[2], 10); + frames = parseInt(parts[3], 10); + break; + } + + if (isDropFrame(fps)) { + totalMinutes = 60 * hours + minutes; + output = hFrames * hours + mFrames * minutes + timeBase * seconds + frames - dropFrames * (totalMinutes - Math.floor(totalMinutes / 10)); + } else { + output = (hFrames * hours + mFrames * minutes + fps * seconds + frames) / fps; + } + + return parseFloat(output.toFixed(3)); +} + +function calculateTimeFormat(time, options) { + var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 25; + + + time = !time || typeof time !== 'number' || time < 0 ? 0 : time; + + var hours = Math.floor(time / 3600) % 24, + minutes = Math.floor(time / 60) % 60, + seconds = Math.floor(time % 60), + frames = Math.floor((time % 1 * fps).toFixed(3)), + lis = [[frames, 'f'], [seconds, 's'], [minutes, 'm'], [hours, 'h']]; + + var format = options.timeFormat, + firstTwoPlaces = format[1] === format[0], + separatorIndex = firstTwoPlaces ? 2 : 1, + separator = format.length < separatorIndex ? format[separatorIndex] : ':', + firstChar = format[0], + required = false; + + for (var i = 0, len = lis.length; i < len; i++) { + if (~format.indexOf(lis[i][1])) { + required = true; + } else if (required) { + var hasNextValue = false; + for (var j = i; j < len; j++) { + if (lis[j][0] > 0) { + hasNextValue = true; + break; + } + } + + if (!hasNextValue) { + break; + } + + if (!firstTwoPlaces) { + format = firstChar + format; + } + format = lis[i][1] + separator + format; + if (firstTwoPlaces) { + format = lis[i][1] + format; + } + firstChar = lis[i][1]; + } + } + + options.currentTimeFormat = format; +} + +function convertSMPTEtoSeconds(SMPTE) { + + if (typeof SMPTE !== 'string') { + throw new TypeError('Argument must be a string value'); + } + + SMPTE = SMPTE.replace(',', '.'); + + var decimalLen = ~SMPTE.indexOf('.') ? SMPTE.split('.')[1].length : 0; + + var secs = 0, + multiplier = 1; + + SMPTE = SMPTE.split(':').reverse(); + + for (var i = 0, total = SMPTE.length; i < total; i++) { + multiplier = 1; + if (i > 0) { + multiplier = Math.pow(60, i); + } + secs += Number(SMPTE[i]) * multiplier; + } + return Number(secs.toFixed(decimalLen)); +} + +_mejs2.default.Utils = _mejs2.default.Utils || {}; +_mejs2.default.Utils.secondsToTimeCode = secondsToTimeCode; +_mejs2.default.Utils.timeCodeToSeconds = timeCodeToSeconds; +_mejs2.default.Utils.calculateTimeFormat = calculateTimeFormat; +_mejs2.default.Utils.convertSMPTEtoSeconds = convertSMPTEtoSeconds; + +},{"7":7}]},{},[29,6,5,15,23,20,19,21,22,24,16,18,17,9,10,11,12,13,14]); diff --git a/src/wp-includes/js/mediaelement/mediaelement-and-player.min.js b/src/wp-includes/js/mediaelement/mediaelement-and-player.min.js index 6ea6b5931c..b18df1093d 100644 --- a/src/wp-includes/js/mediaelement/mediaelement-and-player.min.js +++ b/src/wp-includes/js/mediaelement/mediaelement-and-player.min.js @@ -1,28 +1,13 @@ /*! - * * MediaElement.js - * HTML5