
(function (w) {
    /*tagconfig*/
    var config =

{"noPauseOnClickthrough":true,"adConfig":{"pauseButton":true,"channelId":"6411abc3439f0ffb51018b74","publisherId":"5eb7be27791eec2a0f7f2d49","trackDomain":"servt.bidsxplayer.com","logo":false,"timelineMode":"bottom","errorLimit":30,"reqTabOnView":true,"adsControlPositioning":"distributed","vastRetry":8,"adServerDomain":"serv.bidsxplayer.com","width":100,"height":0,"vitab":true,"soundButton":true},"autoSkip":{"time":30,"timeout":10},"posDfp1x1":true,"playerVersion":8,"playerType":2,"position":"aniplayer_AV6411acf6816d4eafa10a22a4","targetingDomain":"","adServerDomain":"serv.bidsxplayer.com","autoPlay":true,"showBigPrevNext":true,"volumeControlVertical":true,"moveXSec":true,"playerDelay":0,"showBigPlay":true,"showBigPlayOnPause":true,"showReplay":true,"showPauseButton":true,"maxWidth":640,"showPrevButton":true,"showNextButton":true,"width":100,"showVolumeControl":true,"showFullScreen":true,"showDuration":true,"scriptId":"AV6411acf6816d4eafa10a22a4","playOnView":true,"content":{"breakingAdsMode":"op","commonSlots":[{"time":20,"nextAdTimeout":8,"maxAds":4,"firstAdTimeOut":10,"preloadAdTime":5},{"time":50,"nextAdTimeout":8,"maxAds":3,"firstAdTimeOut":15,"preloadAdTime":5},{"time":80,"nextAdTimeout":8,"maxAds":3,"firstAdTimeOut":15,"preloadAdTime":5},{"time":110,"nextAdTimeout":8,"maxAds":2,"firstAdTimeOut":15,"preloadAdTime":5}],"breakingAds":15,"randomFrom":0,"type":0,"firstPrerollSlot":{"time":0,"nextAdTimeout":8,"maxAds":5,"firstAdTimeOut":10,"preloadAdTime":5},"contents":[{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-dance-forms-in-the-world.mp4","entry":{"name":"Different dance forms in the world","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-dance-forms-in-the-world.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-forms-of-drawing.mp4","entry":{"name":"Different forms of drawing","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-forms-of-drawing.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-types-of-painting.mp4","entry":{"name":"Different types of painting","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-types-of-painting.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-facts-you-probably-didnt-know-about-painting.mp4","entry":{"name":"Facts you probably didnt know about painting","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/facts-you-probably-didnt-know-about-painting.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-things-to-know-before-you-get-a-tattoo.mp4","entry":{"name":"Things to know before you get a tattoo","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/things-to-know-before-you-get-a-tattoo.jpg"}}],"order":1},"tagId":"6411acf6816d4eafa10a22a4","timelineMode":"overlay","autoContinue":true,"startVolume":0,"templateId":"6411ac68b59b57eb020dd3d4","checkTargeting":false,"tracking":{"enabled":true,"buffer":true},"showSoundButton":true,"mobile":{"showPauseButton":true,"showPrevButton":true,"showNextButton":true,"showBigPrevNext":false,"showBigPlay":true,"showBigPlayOnPause":true,"showFullScreen":true,"hideGuiTimeout":5},"autoLoop":true,"xSec":5,"syncVolume":true,"floating":{"right":80,"closeButton":true,"position":"Bottom-Right","resize":true,"floatOnBottom":true,"floatOnView":true,"size":0.5},"logo":{"text":"Powered By","clickThrough":"https:\/\/streamlyn.com\/","size":[10,10],"position":"right","url":"https:\/\/admin.bidsxchange.com\/images\/shards-dashboards-logo.png"},"minHeight":360,"height":0,"soundButtonPosition":"right","durationPosition":"right","closeButtonStyle":{"outside":true,"position":"Top-Left"},"trackDomain":"servt.bidsxplayer.com","hideGuiTimeout":5}
var b =
[{"a":{"noPauseOnClickthrough":true,"adConfig":{"pauseButton":true,"trackDomain":"servt.bidsxplayer.com","vitab":true,"errorLimit":30,"logo":false,"adsControlPositioning":"distributed","reqTabOnView":true,"channelId":"6411ac3b7a0832c8be04f174","vastRetry":8,"adServerDomain":"serv.bidsxplayer.com","width":100,"height":0,"timelineMode":"bottom","publisherId":"5eb7be27791eec2a0f7f2d49","soundButton":true},"autoSkip":{"time":30,"timeout":10},"posDfp1x1":true,"playerVersion":8,"xSec":5,"position":"aniplayer_AV6411acf6816d4eafa10a22a4","targetingDomain":"","adServerDomain":"serv.bidsxplayer.com","autoPlay":true,"autoLoop":true,"volumeControlVertical":true,"playerType":2,"playerDelay":0,"showBigPlay":true,"showBigPlayOnPause":true,"showReplay":true,"showPauseButton":true,"maxWidth":320,"showPrevButton":true,"showNextButton":true,"width":100,"showVolumeControl":true,"showFullScreen":true,"showDuration":true,"scriptId":"AV6411acf6816d4eafa10a22a4","playOnView":true,"content":{"breakingAdsMode":"op","commonSlots":[{"time":20,"nextAdTimeout":8,"maxAds":4,"firstAdTimeOut":10,"preloadAdTime":5},{"time":50,"nextAdTimeout":8,"maxAds":3,"firstAdTimeOut":15,"preloadAdTime":5},{"time":80,"nextAdTimeout":8,"maxAds":3,"firstAdTimeOut":15,"preloadAdTime":5},{"time":110,"nextAdTimeout":8,"maxAds":2,"firstAdTimeOut":15,"preloadAdTime":5}],"breakingAds":15,"randomFrom":0,"type":0,"firstPrerollSlot":{"time":0,"nextAdTimeout":8,"maxAds":5,"firstAdTimeOut":10,"preloadAdTime":5},"contents":[{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-dance-forms-in-the-world.mp4","entry":{"name":"Different dance forms in the world","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-dance-forms-in-the-world.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-forms-of-drawing.mp4","entry":{"name":"Different forms of drawing","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-forms-of-drawing.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-different-types-of-painting.mp4","entry":{"name":"Different types of painting","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/different-types-of-painting.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-facts-you-probably-didnt-know-about-painting.mp4","entry":{"name":"Facts you probably didnt know about painting","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/facts-you-probably-didnt-know-about-painting.jpg"}},{"url":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/video\/en\/en-things-to-know-before-you-get-a-tattoo.mp4","entry":{"name":"Things to know before you get a tattoo","duration":120,"thumbnailUrl":"https:\/\/video-hub.bidsxchange.com\/videos\/arts\/thumbnail\/things-to-know-before-you-get-a-tattoo.jpg"}}],"order":1},"tagId":"6411acf6816d4eafa10a22a4","timelineMode":"overlay","autoContinue":true,"startVolume":0,"customCss":"","templateId":"6411c2c50b7f7ad37805b144","checkTargeting":false,"tracking":{"enabled":true,"buffer":true},"showSoundButton":true,"mobile":{"showPauseButton":true,"showPrevButton":true,"showNextButton":true,"showBigPrevNext":false,"showBigPlay":true,"showBigPlayOnPause":true,"showFullScreen":true,"hideGuiTimeout":5},"syncVolume":true,"moveXSec":true,"floating":{"top":50,"resize":true,"bottom":150,"left":10,"right":0,"floatOnBottom":true,"position":"Bottom-Right","floatOnView":true,"size":0.5,"closeButton":true},"logo":{"text":"Powered By","clickThrough":"https:\/\/streamlyn.com\/","size":[10,10],"position":"right","url":"https:\/\/admin.bidsxchange.com\/images\/shards-dashboards-logo.png"},"minHeight":90,"height":0,"showBigPrevNext":true,"soundButtonPosition":"right","durationPosition":"right","closeButtonStyle":{"outside":true,"position":"Top-Left"},"trackDomain":"servt.bidsxplayer.com","hideGuiTimeout":5},"sp":0,"t":{"p":1}}]
var ab =
{}


    /*tagconfig*/
    var a = config;
    var st = {
        target: function () {
            try {		if (this.sp) {
			return;
		}
		var ua = navigator.userAgent || navigator.vendor || window.opera;
		var uav = navigator.appVersion ? navigator.appVersion.toLowerCase() : "";
		var op = 2;
		if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4))) {
			op = 1;
		} else {
			if (/web0s|webos|tizen/i.test(uav)) {
				op = 4;
			}
		}
		this.op = op;
} catch (reason) {(console.error || console.log)(reason);}
        },
        getConfig: function () {
            try {            function getRC(ab) {
                if (ab && ab.length) {
                    var inc = 0;
                    var rand = Math.floor(Math.random() * 100) + 1;
                    for (i = 0; i < ab.length; i++) {
                        b1 = ab[i];
                        inc += b1.sp;
                        if (b1.a && inc >= rand) {
                            return b1.a;
                        }
                    }
                }
            }

            function merge(target, source) {
                if (typeof source !== 'object' || Array.isArray(source)) return target;
                for (var key in source) {
                    var a = {};
                    a[key] = {};
                    if (typeof source[key] === 'object' && !Array.isArray(source[key])) {
                        if (!target[key]) Object.assign(target, a);
                        merge(target[key], source[key]);
                    } else {
                        a[key] = source[key]
                        Object.assign(target, a);
                    }
                }
            }

            var cfg = config;
            try {
                var i, b1, b1a;
                if (b && b.length > 0) {
                    st.target();
                    for (i = 0; i < b.length; i++) {
                        b1 = b[i];
                        if (b1.t && b1.t.p
                            && b1.t.p == this.op && b1.a) {
                            b1a = b1.a;
                            break;
                        }
                    }
                }

                var r1 = b1a || getRC(ab) || cfg;
                if (typeof ad !== 'undefined' && ad.length > 0) {
                    var r2 = getRC(ad);
                    merge(r1, r2);
                }
                return r1;
            } catch (e) {

            }

            return cfg;} catch (reason) {(console.error || console.log)(reason);}
        },
        track: function(e, m) {
            try {    if (!this.trackUrl) {
                        this.trackUrl = "https://" + (a.trackDomain || "track1.aniview.com") + "/track?pid=" + a.adConfig.publisherId + "&cid=" + a.adConfig.channelId + "&cb=" + Date.now() + "&r=" + location.host + "&stagid=" + (a.tagId || "") + "&stplid=" + (a.templateId || "") + "&d35=" + (a.adConfig.sabTest || "") + "&d65=" + (a.adConfig.nabTest || "") + "&d66=" + (a.playerVersion || "") + "&d74=" + (a.sessionID || "") + "&e=";
                  }
                  m = m ? m : "";
                  (new Image()).src = this.trackUrl + e + m;
                  } catch (reason) {(console.error || console.log)(reason);}
        },
        playerLoadedTrackParams: function() {
            try {        var params = "";

        if (config.hasOwnProperty('content') &&
            config.content.hasOwnProperty('cmsType') &&
            config.content.hasOwnProperty('cmsId')
        ) {
            if (a.content.cmsType === 'playlist') {
                params += "&cpid=" + a.content.cmsId;
            } else if (a.content.cmsType === 'video') {
                params += "&cvid=" + a.content.cmsId;
            }
        }

        var playReason = 'interaction';
        if (config.playOnView) {
            playReason = 'viewable'
        } else if (config.autoPlay) {
            playReason = 'autostart'
        }

        params += "&str=" + playReason;

        return params;
    } catch (reason) {(console.error || console.log)(reason);}
        },
        unique: function() {
            try {if (!this.win.aniplayerPos)
                this.win.aniplayerPos = {};
            this.win.aniplayerPos[a.position] = true;
            return true;} catch (reason) {(console.error || console.log)(reason);}
        },
        findWin: function() {
           try {try {
        try {
            var hasSelector = a.posSelector || a.posSelectors && a.posSelectors.length > 0;
            if ((!a.posDfp1x1 && !a.posClass && !hasSelector && !a.posId && !a.posTag) || (w === top) || !w.frameElement) {
                this.doc = document;
                this.win = w;
            } else if (a.posDfp1x1 && w.frameElement) {
                this.win = parent;
                this.doc = parent.document;
            } else {
                this.win = top;
                this.doc = top.document;
            }
        } catch (f) {
            this.doc = document;
            this.win = w;
        }
    } catch (reason) {
        (console.error || console.log)(reason);
    }} catch (reason) {(console.error || console.log)(reason);}
        },
        postCreate: function() {
            try {} catch (reason) {(console.error || console.log)(reason);}
        },
        retry: function() {
           try {
            var isFallback = false;
            if (this.retryCnt++ > this.timeout) {
                this.track("AV_M3", "&prbdres=nopos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                return;
            }
            if (this.retryCnt == this.timeout && a.posFallbacks) {
                a.posSelectors = a.posFallbacks;
                isFallback = true;
                this.track("AV_M3", "&prbdres=fallbackpos&sn=" + encodeURIComponent(location.href).slice(0, 400));
            }
            var that = this;
            setTimeout(function() {
                that.position(isFallback);
            }, 250);} catch (reason) {(console.error || console.log)(reason);}
        },
        create: function(p, n) {
            try {var d1 = document.createElement("div");
            if(a.scriptId) {
		        d1.className = a.scriptId;
		    }
            d1.style.width = "100%";
            d1.style.margin = "0 auto";
            d1.style.maxWidth = "" + a.maxWidth + "px";
            var d2 = document.createElement("div");
            d2.id = "aniBox";
            var d3 = document.createElement("div");
            d3.id = a.position;
            if (p === this.doc || p === this.doc.head)
                p = this.doc.body;
            if (n) {
                p.insertBefore(d1, n);
            } else {
                p.appendChild(d1);
            }
            a.refDiv = p;
            d1.appendChild(d2);
            d2.appendChild(d3);
            this.postCreate(d1);} catch (reason) {(console.error || console.log)(reason);}
        },
        position: function(isFallback) {
            try {
            function validateElements(els) {
                var ret = [];
                if (els) {
                    els.forEach(function(el) {
                        if(el && el.clientWidth > (a.minElWidth || 170)) {
                            ret.push(el);
                        }
                    });
                }
                return ret;
            }
            function findSelectors(selectors) {
                if (selectors && selectors.length > 0 && selectors.forEach) {
                    for (var i = 0; i < selectors.length; i++) {
                        var s = selectors[i];
                        try {
                            var q = st.doc.querySelectorAll(s.selector);
                            if (q.length > 0) {
                                return {
                                    q: isFallback ? validateElements(q): q,
                                    counter: s.counter
                                };
                            }
                        } catch (ex) {}
                    }
                }
                return {
                    q: []
                }
            }
            var p = this.doc;
            var isScp = false;
            if (a.posSelector || a.posSelectors) {
                try {
                    var sel1 = a.posSelector ? [{
                        selector: a.posSelector,
                        counter: a.posCounter
                    }] : []
                    var sel = findSelectors(sel1.concat(a.posSelectors || []));
                    var q = sel.q;
                    var l = 0;
                    if (sel.counter > 0) {
                        l = sel.counter - 1;
                    }
                    p = q[l] || q[q.length - 1];
                } catch (e) {
                    this.track("AV_M3", "&prbdres=badpos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                    return;
                }
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posId) {
                p = this.doc.getElementById(a.posId);
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posTag) {
                var c = a.posTag.split("#");
                if (c && c.length == 2) {
                    var e = p.getElementsByTagName(c[0]);
                    if (e.length == 0) {
                        this.retry();
                        return;
                    }
                    p = e[Math.min(c[1] - 1, e.length - 1)];
                }
            }
            if (a.posClass) {
                var c = a.posClass.split("#");
                var e = 1;
                if (c.length == 2) {
                    e = c[1];
                }
                var f = p.getElementsByClassName(c[0]);
                if (f.length > 0) {
                    p = f[Math.min(e - 1, f.length - 1)];
                }
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posDfp1x1 && window.frameElement) {
                n = window.frameElement.parentNode.parentNode;
                p = n.parentNode;
                if ((frameElement.clientHeight > 5 || document.body.clientHeight > 5) && !a.nohideIframe) {
                    frameElement.style.height = "0px";
                }
                if (a.posType == "after") {
                    n = n.nextElementSibling;
                }
            }
            var n;
            if (p === this.doc) {
                n = this.doc.getElementById(a.scriptId);
                if (n) {
                    n.id += "-used";
                    p = n.parentNode;
                }
            }
            if (p === this.doc.head) {
                n = null;
                p = this.doc;
            }
            if (a.posType && a.posType !== "in" && !n) {
                if (a.posType === "after" && p.nextElementSibling) {
                    n = p.nextElementSibling;
                } else {
                    n = null;
                }
                p = p.parentNode;
            }
            if (p) {
                if (!p.av_setpos) {
                    p.av_setpos = {};
                }
                if (!p.av_setpos[a.position]) {
                    p.av_setpos[a.position] = true;
                    a.position += "-" + Date.now();
                    this.create(p, n);
                    this.load(a.playerVersion);
                } else {
                    this.track("AV_M3", "&prbdres=duppos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                }
            }} catch (reason) {(console.error || console.log)(reason);}
        },
        fetchContent: function(callback) {
           try {        if(a.content && (a.content.cmsId && a.content.cmsType)) {
            a.content.contentFeed = "https://" + (a.cmsFeedDomain || "feed.avplayer.com") + "/backend/get?cmsType=" + a.content.cmsType + "&id=" + a.content.cmsId + "&AV_TAGID=" + this.config.tagId + "&pid=" + this.config.adConfig.publisherId + "&cid=" + this.config.adConfig.channelId + "&AV_TEMPID=" + this.config.templateId;
            if(a.content.firstVideoId) {
                a.content.contentFeed += "&firstVideoId=" + a.content.firstVideoId;
            }
            if(a.content.cmsSyndicationId) {
                a.content.contentFeed += "&syndicationId=" + a.content.cmsSyndicationId;
            }
            if (a.adConfig && a.adConfig.publisherId) {
                a.content.contentFeed += "&AV_PUBLISHERID=" + a.adConfig.publisherId;
            }
        }
        if(a.content.contentFeed) {
            var xhr = new XMLHttpRequest();
            xhr.open( "GET", a.content.contentFeed, true );
            xhr.onload = function () {
                xhr.onload = null;
                xhr.onreadystatechange = null;
                try {
                    var json = JSON.parse(xhr.responseText);
                    if(json && json.playlist) {
                        a.content.contents = json.playlist;
                    }
                } catch (e) {}
                callback();
            };
            xhr.onreadystatechange = function(val){
                if(this.readyState == 4 && this.status > 400) {
                    xhr.onload = null;
                    xhr.onreadystatechange = null;
                    a.content.contents = [];
                    callback();
                    st.track("AV_M3", "&prbdres=cmserr&sn=" + encodeURIComponent(location.href).slice(0, 400));
                }
            };
            xhr.send();
        } else {
            callback();
        }
    } catch (reason) {(console.error || console.log)(reason);}
        },
        load: function(playerVersion) {
            try {		var that = this;
		var baseJsUrl = "https://player.avplayer.com/script/" + (playerVersion >= 8 ? "8.3" : "2") + "/v/";
		var loadCounter = 0;
		var errorCounter = 0;
		function checkIfLoad () {
			if (++loadCounter > 1) {
				that.init(playerVersion);
			}
		}
		function checkIfError () {
			if (++errorCounter < 2) {
				fetchScript(a.baseJsUrl || baseJsUrl);
			} else {
				if (errorCounter < 4) {
					fetchScript(baseJsUrl);
				} else {
					if (errorCounter < 16) {
						setTimeout(function () {
							fetchScript(baseJsUrl);
						}, 5000);
					}
				}
			}
		}
		function fetchScript (baseJsUrl) {
			var scp = that.doc.createElement("script");
			var rand = Math.floor(Math.random() * 100) + 1;
			if ((rand < 5) && (playerVersion >= 8)) {
				baseJsUrl += "ab5/";
			}
			scp.src = baseJsUrl + "avcplayer.js";
			scp.onload = function () {
				scp.onload = null;
				checkIfLoad();
			};
			scp.onerror = function () {
				scp.onerror = null;
				that.doc.body.removeChild(scp);
				checkIfError();
			};
			scp.async = true;
			that.doc.body.appendChild(scp);
		}
		this.fetchContent(checkIfLoad);
		fetchScript(a.baseJsUrl || baseJsUrl);
} catch (reason) {(console.error || console.log)(reason);}
        },
        postStart: function(p) {
            try {} catch (reason) {(console.error || console.log)(reason);}
        },
        getAttr: function() {
            try {		if (a.scriptId) {
			var s = document.getElementById(a.scriptId) || document.getElementById(a.scriptId + "-used");
			if (s) {
				for (var i = 0, t = s.attributes; i < s.attributes.length; i++) {
					if (t[i].nodeName && t[i].nodeName.indexOf("data-") == 0) {
						var n = t[i].nodeName.replace(/^data-/, "").replace(/[-_]+?(\w)/g, function (_, letter) {
								return letter.toUpperCase();
							}).split(".");
						var lastProp = n.pop();
						try {
							var innerConfig = n.reduce(function (a, prop) {
									return a[prop];
								}, a);
							innerConfig[lastProp] = t[i].nodeValue;
						} catch (e) {
						}
					}
				}
				if (s.src) {
					var p = s.src.indexOf("?");
					if (p > 10) {
						var r = (s.src.substring(p + 1, s.src.length));
						a.adConfig.ref1 = (a.adConfig.ref1 || "") + "&" + (r || "");
					}
				}
			}
		}
} catch (reason) {(console.error || console.log)(reason);}
        },
        start: function(player) {
            try {this.p = player;
            if (this.pbjs && this.pbjs.preparePlayer) {
               this.pbjs.preparePlayer(player, st);
            }
            if(a.playerApi && typeof this.win[a.playerApi] === "function" ) {
                try{
                    this.win[a.playerApi](a, player);
                } catch(ex){}
            }
            player.nextContent();
            this.postStart(player);} catch (reason) {(console.error || console.log)(reason);}
        },
        preRun: function() {
            try {} catch (reason) {(console.error || console.log)(reason);}
        },
        run: function() {
            try {this.config = a = config = this.getConfig();
            this.a = a;
            this.getAttr();
            function generateUuid () {
                return 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[x]/g, function(c) {
                    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
                    return v.toString(16);
                });
            }
            if (a.isSessionIdEnabled) {
                a.sessionID = generateUuid();
            }
            this.preRun();
            this.findWin();
            if (!this.doc.body) {
                this.doc.addEventListener("DOMContentLoaded", function() {
                    st.run();
                });
                if (this.bodyRetry > 0) {
                    setTimeout(function(){
                        st.run()
                    }, 250);
                    this.domRetry--;
                }
                return;
            }
            if (a.configApi && typeof this.win[a.configApi] === "function") {
                try {
                    this.win[a.configApi](a);
                } catch (ex) {
                }
            }
            if (this.unique() && !this.loaded) {
                this.loaded = true;
                this.track("playerLoaded", this.playerLoadedTrackParams());
                this.retryCnt = 0;
                this.timeout = a.posTimeout || 40;
                this.pbjs = window.aniviewRenderer && window.aniviewRenderer.units && window.aniviewRenderer.units[a.scriptId];
                if (this.pbjs && this.pbjs.prepareConfig) {
                    this.pbjs.prepareConfig(a, st);
                }
                this.position();
            }} catch (reason) {(console.error || console.log)(reason);}
        },
        init: function(playerVersion) {
            try {		var that = this;
		this.getAttr();
		var isNewPlayer = playerVersion >= 8;
		var playerApiName = isNewPlayer ? "avContentPlayer" : "_avcp";
		function initPlayer (playerApi) {
			return playerApi.createPlayer().then(function (playerClass) {
				that.start(new playerClass(a));
			});
		}
		function findPlayerApi (playerApiName) {
			var apiClass;
			var fallbackApiClass;
			try {
				if (that.win[playerApiName]) {
					apiClass = that.win[playerApiName];
				} else {
					if (window[playerApiName]) {
						apiClass = window[playerApiName];
					} else {
						apiClass = top[playerApiName];
					}
				}
			} catch (exp) {
				try {
					fallbackApiClass = window[playerApiName];
				} catch (exp) {
				}
			}
			return {
				apiClass,
				fallbackApiClass
			};
		}
		var playerApi = findPlayerApi(playerApiName);
		var playerApiClass = playerApi.apiClass;
		var playerApiFallbackClass = playerApi.fallbackApiClass;
		if (isNewPlayer && !playerApiClass && !playerApiFallbackClass) {
			playerApi = findPlayerApi("_avcp");
			playerApiClass = playerApi.apiClass;
			playerApiFallbackClass = playerApi.fallbackApiClass;
			isNewPlayer = false;
			if (!playerApiClass && !playerApiFallbackClass) {
				a.baseJsUrl = null;
				that.load(7);
				return;
			}
		}
		if (isNewPlayer) {
			try {
				initPlayer(playerApiClass).catch(function () {
					initPlayer(playerApiFallbackClass);
				});
			} catch (e) {
				initPlayer(playerApiFallbackClass);
			}
		} else {
			var player;
			try {
				player = new playerApiClass(a);
			} catch (e) {
				player = new playerApiFallbackClass(a);
			}
			that.start(player);
		}
} catch (reason) {(console.error || console.log)(reason);}
        },
        domRetry: 20
    };
    if(a.playerDelay > 0) {
        setTimeout(function(){
            st.run();
        }, a.playerDelay * 1000);
    } else {
       st.run();
    }
})(window);
