{
  "nativeAdsAdapter.adapter,getVersion": "return '7.0.2-Bitmovin8-ads'",
  "nativeAdsAdapter.adapter,getPlayhead": "var ret=null;if(this.player && this.flags && this.flags.isStarted){ret=this.player.getCurrentTime()};return ret",
  "nativeAdsAdapter.adapter,getTitle": "return this.title",
  "nativeAdsAdapter.adapter,getDuration": "return this.duration",
  "nativeAdsAdapter.adapter,getResource": "return this.src",
  "nativeAdsAdapter.adapter,getRendition": "return this.getNpawUtils().buildRenditionString(this.width,this.height,this.bitrate)",
  "nativeAdsAdapter.adapter,getBitrate": "return this.bitrate*1000",
  "nativeAdsAdapter.adapter,getAudioEnabled": "var ret=true;if(this.player){ret=this.player.getVolume()>0&&!this.player.isMuted()};return ret",
  "nativeAdsAdapter.adapter,getIsSkippable": "return this.skippable",
  "nativeAdsAdapter.adapter,getIsFullscreen": "var ret=false;if(this.player){ret=this.player.getViewMode()==='fullscreen'};return ret",
  "nativeAdsAdapter.adapter,getIsVisible": "var ret=false;if(this.player&&this.player.getVideoElement&&this.player.getVideoElement()){ret=this.getNpawUtils().calculateAdViewability(this.player.getVideoElement())};return ret",
  "nativeAdsAdapter.adapter,getCreativeId": "return this.creativeId",
  "nativeAdsAdapter.adapter,getPosition": "var ret=this.position;var adapterInst=this.getVideo().getAdapter();if(adapterInst&&!adapterInst.flags.isJoined){ret=this.getNpawReference().Constants.AdPosition.Preroll};return ret",
  "nativeAdsAdapter.adapter,registerListeners": "var events=this.player.exports.PlayerEvent;this.monitorPlayhead(true,true);this.references={};this.references[events.AdBreakStarted]=this.breakStartListener.bind(this);this.references[events.AdBreakFinished]=this.breakEndListener.bind(this);this.references[events.AdStarted]=this.adStartListener.bind(this);this.references[events.AdFinished]=this.adEndListener.bind(this);this.references[events.AdQuartile]=this.quartileListener.bind(this);this.references[events.AdSkipped]=this.skipListener.bind(this);this.references[events.AdClicked]=this.clickListener.bind(this);this.references[events.AdError]=this.errorListener.bind(this);this.references[events.Destroy]=this.destroyListener.bind(this);this.references[events.Paused]=this.pauseListener.bind(this);this.references[events.Playing]=this.resumeListener.bind(this);for(var key in this.references){this.player.on(key,this.references[key])}",
  "nativeAdsAdapter.adapter,pauseListener": "this.firePause()",
  "nativeAdsAdapter.adapter,resumeListener": "this.fireResume()",
  "nativeAdsAdapter.adapter,unregisterListeners": "if(this.monitor)this.monitor.stop();try{if(this.player&&this.player.off&&this.references){for(var key in this.references){this.player.off(key,this.references[key])};delete this.references}}catch(err){}",
  "nativeAdsAdapter.adapter,breakStartListener,e": "this.getVideo().fireInit();var adapterInst=this.getVideo().getAdapter();if(adapterInst){adapterInst.firePause()};var position=e.adBreak.position;if(position==='pre'){this.position=this.getNpawReference().Constants.AdPosition.Preroll}else if(adapterInst&&adapterInst.getDuration()!==0&&(adapterInst.getPlayhead()||position)>adapterInst.getDuration()-1){this.position=this.getNpawReference().Constants.AdPosition.Postroll}else{this.this.getNpawReference().Constants.Constants.AdPosition.Midroll}",
  "nativeAdsAdapter.adapter,breakEndListener,e": "this.fireBreakStop();if(this.getVideo().requestBuilder.lastSent.adPosition!==this.getNpawReference().Constants.AdPosition.Postroll){var adapterInst=this.getVideo().getAdapter();if(adapterInst){adapterInst.fireResume()}}else{this.getVideo().fireStop()}",
  "nativeAdsAdapter.adapter,adStartListener,e": "if(e.ad&&e.ad.data){this.title=e.ad.data.adTitle;this.bitrate=e.ad.data.bitrate;this.creativeId=(e.ad.data.creative)?e.ad.data.creative.id:undefined;this.src=e.ad.mediaFileUrl;this.height=e.ad.height;this.width=e.ad.width;this.skippable=e.ad.skippable;this.duration=e.ad.duration};this.counter=0;this.fireStart();this.fireJoin()",
  "nativeAdsAdapter.adapter,adEndListener,e": "this.fireStop();if(this.getVideo().requestBuilder.lastSent.adPosition===this.getNpawReference().Constants.AdPosition.Postroll)this.getVideo().fireStop()",
  "nativeAdsAdapter.adapter,quartileListener,e": "var position=1;switch(e.quartile){case'midpoint':position=2;break;case'thirdQuartile':position=3};this.fireQuartile(position)",
  "nativeAdsAdapter.adapter,skipListener,e": "this.fireSkip();if(this.getVideo().requestBuilder.lastSent.adPosition===this.getNpawReference().Constants.AdPosition.Postroll)this.getVideo().fireStop()",
  "nativeAdsAdapter.adapter,clickListener,e": "this.fireClick(e.clickThroughUrl)",
  "nativeAdsAdapter.adapter,errorListener,e": "var errObj=e.data?e.data:e;this.fireError(errObj.code,errObj.message)",
  "nativeAdsAdapter.adapter,destroyListener,e": "this.player=null;this.tag=null;this.fireStop();this.getVideo().removeAdsAdapter()",

  "adapter,getVersion": "return '7.0.2-bitmovin8-js'",
  "adapter,getPlayhead": "var ret=this.player?this.player.getCurrentTime():null;if(this.getVideo().getAdsAdapter()&&this.getVideo().getAdsAdapter().flags.isStarted){ret=this.lastPlayhead||0};return ret",
  "adapter,getPlayrate": "return this.player?this.player.getPlaybackSpeed():null",
  "adapter,getDroppedFrames": "return this.player?this.player.getDroppedVideoFrames():null",
  "adapter,getDuration": "var ret=null;if(this.player){this.lastDuration=this.player.getDuration()||this.lastDuration;ret=this.lastDuration};return ret",
  "adapter,getBitrate": "var ret=null;if(this.player){var videodata=this.player.getPlaybackVideoData();var videoquality=this.player.getVideoQuality();if(videoquality&&videoquality.bitrate){ret=videoquality.bitrate}else if(videodata&&videodata.bitrate){ret=videodata.bitrate}};return ret",
  "adapter,getRendition": "var ret=null;if(this.player){var videodata=this.player.getPlaybackVideoData();var videoquality=this.player.getVideoQuality();if(videoquality&&videoquality.bitrate){ret=this.getNpawUtils().buildRenditionString(videoquality.width,videoquality.height,videoquality.bitrate)}else if(videodata&&videodata.bitrate){ret=this.getNpawUtils().buildRenditionString(videodata.width,videodata.height,videodata.bitrate)}};return ret",
  "adapter,getTitle": "return this.player?this.player.getSource().title:null",
  "adapter,getIsLive": "return this.player?this.player.isLive():null",
  "adapter,getResource": "var ret=null;if(this.player&&this.player.getSource&&this.player.getSource()){ret=this.player.getSource().progressive||this.player.getSource().hls};try{if(this.player&&this.player.getManifest&&this.player.getManifest()){if(this.player.getManifest().indexOf('MPD')>0){ret=this.player.getSource().dash}else{ret=this.player.getSource().hls}}}catch(err){this.log.notice('Cant get manifest')};return ret",
  "adapter,getPlayerVersion": "return this.player?this.player.version:null",
  "adapter,getPlayerName": "return'Bitmovin'",
  "adapter,_checkAdsAdapter": "var adsAdapterInst=this.getVideo().getAdsAdapter();if(!adsAdapterInst){this.getVideo().setAdsAdapter(this.getAdapterClass('nativeAdsAdapter'), this.plugin, true);}else if(adsAdapterInst&&!adsAdapterInst.player){adsAdapterInst.setPlayer(this.player)}",
  "adapter,registerListeners": "var events=this.player.exports.PlayerEvent;this.monitorPlayhead(true,false);this.references={};this.references[events.Play]=this.playListener.bind(this);this.references[events.Paused]=this.pauseListener.bind(this);this.references[events.Playing]=this.playingListener.bind(this);this.references[events.Error]=this.errorListener.bind(this);this.references[events.Seek]=this.seekingListener.bind(this);this.references[events.TimeShift]=this.seekingListener.bind(this);this.references[events.TimeShifted]=this.seekedListener.bind(this);this.references[events.PlaybackFinished]=this.endedListener.bind(this);this.references[events.TimeChanged]=this.timeupdateListener.bind(this);this.references[events.SourceUnloaded]=this.endedListener.bind(this);this.references[events.Destroy]=this.destroyListener.bind(this);this.references[events.Ready]=this.readyListener.bind(this);this.references[events.AdBreakStarted]=this._checkAdsAdapter.bind(this);for(var key in this.references){this.player.on(key,this.references[key])}",
  "adapter,unregisterListeners": "if(this.monitor)this.monitor.stop();try{if(this.getVideo()){this.getVideo().removeAdsAdapter()};if(this.player&&this.player.off&&this.references){for(var key in this.references){this.player.off(key,this.references[key])};delete this.references}}catch(err){}",
  "adapter,readyListener,e": "this._checkAdsAdapter()",
  "adapter,playListener,e": "this.firePlayerLog('playListener',{});this.lastPlayhead=0;this.fireStart();this.failedView=false",
  "adapter,timeupdateListener,e": "if(!this.getVideo().getAdsAdapter()||!this.getVideo().getAdsAdapter().flags.isStarted){this.lastPlayhead=this.player.getCurrentTime()};if(this.getPlayhead()>0.2&&(this.getIsLive()||this.getPlayhead()+1<this.getDuration())){this.fireStart();this.failedView=false;if(!this.flags.isJoined){this.monitor.skipNextTick();this.fireJoin()}};if(!this.player.isPaused()&&this.flags.isSeeking){this.fireSeekEnd();this.monitor.skipNextTick()}",
  "adapter,pauseListener,e": "this.firePlayerLog('pauseListener',{});if(e.issuer&&e.issuer==='ui-seek'){this.fireSeekBegin()}else{this.firePause()}",
  "adapter,playingListener,e": "this.firePlayerLog('playingListener',{});this.fireStart();this.failedView=false;this.fireResume();if(!this.flags.isJoined){this.monitor.skipNextTick()}",
  "adapter,errorListener,e": "this.firePlayerLog('errorListener',{});if(this.failedView)return;if(!this.flags.isStarted)this.failedView=true;this.fireError(e.code,e.name);this.fireStop()",
  "adapter,seekingListener,e": "this.firePlayerLog('seekingListener',{});this.fireSeekBegin()",
  "adapter,seekedListener,e": "this.firePlayerLog('seekedListener',{});this.fireSeekEnd()",
  "adapter,endedListener,e": "this.firePlayerLog('endedListener',{}); this.fireStop()",
  "adapter,destroyListener,e": "this.player=null;this.tag=null;this.fireStop();this.getVideo().removeAdapter()"
}
