Você está na página 1de 393

<!

DOCTYPE html>
<html lang="en">
<head>
<title>Unity Ads WebView</title>

<meta charset="utf-8" />


<meta name="viewport" content="viewport-fit=cover, initial-scale=1.0, maximum-
scale=1.0, user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="format-detection" content="telephone=no" />

<!--
/**
* EventTarget implementation taken from MDN https://developer.mozilla.org/en-
US/docs/Web/API/EventTarget
* Licensed under the CC-By-SA license. (c) Mozilla Contributers. All Rights
Reserved.
* https://developer.mozilla.org/en-
US/docs/MDN/About#Using_MDN_Web_Docs_content
*/
/*
* A TypeScript implementation of the Secure Hash Algorithm, SHA-1, as defined
* in FIPS PUB 180-1
*
* This file is derived from JavaScript MD5 project
( http://pajhome.org.uk/crypt/md5/ )
* and is modified for oauth-typescript project.
*
* Copyright 2000-2002 Paul Johnston.
* (Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet)
* Copyright 2015 NOBUOKA Yu.
*
* Licensed under the BSD License.
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
notice,
* this list of conditions and the following disclaimer in the
documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its
contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
-->
<style>html{width:100%;height:100%;background-color:transparent;font-
size:16px}body.iphone,body.ipad,body.android{margin:0;padding:0;width:100%;height:1
00%;background-color:transparent;color:#000;font-family:Helvetica,sans-serif;-
webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-tap-highlight-
color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-user-drag:none}@font-
face{font-family:"unityicons";src:url("data:application/x-font-
ttf;base64,AAEAAAANAIAAAwBQRkZUTXwvKbAAAA7MAAAAHEdERUYAPAAGAAAOrAAAACBPUy8yL5pMbQAA
AVgAAABWY21hcOAn4+QAAAHYAAABUmdhc3D//wADAAAOpAAAAAhnbHlmHRlyIwAAA0wAAAkQaGVhZBELx/Q
AAADcAAAANmhoZWEEQQIFAAABFAAAACRobXR4Bu8BYAAAAbAAAAAmbG9jYQyUDqwAAAMsAAAAIG1heHAAWQ
CeAAABOAAAACBuYW1lYcLKkQAADFwAAAGtcG9zdDwkND0AAA4MAAAAlwABAAAAAQAAz/3xuF8PPPUACwIAA
AAAANf4w3AAAAAA1/jDcAABAAAB+wIXAAAACAACAAAAAAAAAAEAAAIXAAAALgIAAAAAAAH7AAEAAAAAAAAA
AAAAAAAAAAAEAAEAAAAPAJsACAAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAF
mAAAA9QAZAIQAAAIABQkAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA4ADgEQHg/
+AALgIXAAAAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAANwASACAAJgAmAE8AWgBGAIgAIAABAAIAAAAAAAMA
AAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAA4AngEf//AAAAAOAA4BD//wAAIAMf/QA
BAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcANQBHgGGAfQCNgJsApYCzAL+A64EiAAGADcAIA
HJAfsACwAXACYARgBeAG0AABMyNzY0JyYjIgYUFjMyNjQmIyIHBhQXFgYyFh0BFAcGIicmPQE0NyUVFAcGK
wEVFAcGIicmPQEjFRQHBiInJjUnIyInJj0BNxYXFhUhNDc2NycmNzYfATYyFzc2FxYHFxUUBwYiJyY9ATQ2
MhcWxAQEAwMEBAUGBn0FBgYFBAQDAwXyGhAICRgJCAgBRAkJDRUJCRgJCCgICRgJCAEVDQkJxCEQEv74EhE
gFAIDBAIVGzwbFQIEAwJ0CAkYCQgQGggIAZYDAwoDAwYKBgYKBgMDCgMDNRANew0HCQkIDHsLCgO+DAsJQQ
0HCQkIDEFBDAgJCQgMQQkLDL50EhocIiIcGhIlBQEBAyYMDCYDAQEFsXsMCAkJBw17DRAICgAAAAABABIAU
QHuAhcAIwAAARQPARcVFAcGIyIvAQcGIyInJjU0PwEnJjU0PwI2Mh8CFgHuCGcYAwMFBAiAgAgEBgMDARho
BxCQQAYQBkCQEAFnBghljwUHAwUEQ0MEBQMHAwKPZQsDCwIVggwMghUCAAAABAAgAEAB4AIAAAkAFQAhADM
AAAEyNjU0JiIGFBY3IgYVFBYzMjY1NCYDIiY1NDYzMhYVFAYnNCYrASIGFTMVFBY7ATI2NSMBAA4SExoTEw
1chIRcXYODXUJeXkJDXV0jFAwgDBQgFAwgDBQgAWASDg0TExoToIRcXYODXVyE/oBdQ0JeXkJDXaAMFBQMY
AwUFAwAAAMAJgBtAdoB0wAZADEARgAAASMnIyYPAQYfATUVHgEHNQcGHwEWPwEjNjQnNScmByMVBwYfATMW
FA8BBh8BFj8BNjQnIg8CIyIdARQ7AR8BFjMyPQERJgGUAQkBCQkRBwcKNwE3CgcIEQkJCgFGdwoKCAERBwc
KARsbCggJEgkICil/BAFpKEoICEo7VQQCCwIByQoICREJCQoBATedNwEKCwgRBwcKRsYCAQoHCAERCQgKHE
wcCgkJEgcHCit2SwE9FwhpCCIxAgoCAQ4JAAAFACYAaAHYAdgADwAfACYANwBFAAABFR8BFgcXNiYvASYHI
wcGNyMnIyYPAQYfAR4BBxc2JicmIyIPARcnIyIdARQ7AR8BFjMyPQInBQEmBxUHBhcBFj8BNTYBNQoBIwop
ERAgCgoIAREHZgEJAQkJEQcHCioVGCUmFbQCCQMCLDyhSggISjtVAgQLmAE2/rUJCRIJCQFLCQkSCQFsAQk
BIy8pJ1ggCgcIEQlVCggJEggJCip2NCVEoAwKAhk8AghqCCIxAQoBMZfJAUsJCQESCQn+tQkJEgEJAAAAAQ
BPAGsBsQHVACoAAAE0JyYPAiYiBhQWMzI2NzY1Ji8BJgcGIyImNDYzMhcPAQYXFB8BFjc2NQGxBAMFHwI1l
mpqSy1QGQICAi0IBh86LD8/LCYcBR4FAgWCBAMDAbEFAgICFgI1apZqKiYCBAUBIAUILz9YPxcDFgMFBAIs
AgMCBAAAAQBaAGUBpgHbACIAACUvATY3NjU0Jy4BIyIGBwYVFBcWFw8BBh0BFBYzITI2PQE0AZpQIhYNCgQ
ILB0cLQgECw0WIFMMCwgBJggL6yYQDRwXFw8MHyknHxILGRgaDQ8mBw5bCQ0NCVsPAAAAAQBGAKcBugGZAB
sAAAE0LwEmIyIdAScmIyIdARQzMj8BFRQzMj8BNTYBugXAAgQIkgQCCQkCBJIIAwTABAEgBgJvAghOVAII4
ggCVE4IAm8BAgAAAQCIAJwBeAGlACAAACUWFAcGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhcWFA8BFwFvCQkK
GApEQwoYCggIR0cICAoYCkNEChgKCQlHR9AJGgkICE5OCAgIHAhQUQgcCAgITk4ICAkaCVFQAAAABgAgAGA
B4AHgAAMABwANABMAGQAfAAA3IREhFzMVIyczNSMVMxUjFTM1IwEVMxUzNQMjFTM1I2ABQP7AQMDAYGCAIC
CAYAEgYCAgYIAgoAEAQIDgIICAgCABYCBggP6gIIAAAAQAAQAAAfsCAAAqAE8AaQCAAAAlMhYVFAcGDwEGF
RQfARY7ATc2PwE2OwExMhYVFA8BBisBIg8BJzc2PwEzNSMHBg8BBhUUHwEWMzI/ATMyPwE2NTQmIyIPAic3
PgE1NCYjNyciJiMxIiMPAQYdARQXFhc7ATY3NjUxNTQPAQYiLwEmND8BNjIfATc2MzEyHwEWFAEqCg4DBQo
3EQQGBwwDUQcGWQcJAQoOB3QHD7cJBx1ZcgcLiAMGiBENdgYEYQYHCQQgtxYQdAocFBAMWVEGNw8TGxO0YA
EDAQECAl8HHxwsAQcrHh81QAEGAR4BAQgCBAISNQEDAwEHAu0OCgcFCQIPBREGCAgKCQEFVAcOCgsHcQkHH
1liBQISFxICC2UECgUGYQYGIhBxDRAUHAlUCQgQBBkQFBvcHwEBHwQHQDIpJQ4MJykyQAc5QAEBHQEGAQgC
AhI1AQEIAgQAAAAIAAIAnwH3AWgAHgApAEkAawB+AIIAjwCaAAABNiYnJiMhIyImIyIHIgcGBwYHBhceATM
hMjc2NzY1BSImNT4BMzIWFAY3MhcWFxYGKwEiJicmJyIrASYHFQ4BIyI3Njc+ATc2MxciJicmJy4BBwYdAR
QjBiY9AjQ7ATIXFhcWBwYXFhcWBiQiPQEmJyMGBwYzFh0BFBYzMjcmMjQiBSYHMB0BFDMyNzY3NgcjBgcGF
zAzMicmAfcBIxMHDf7GCAIJAgMCEgkgEwgCAgUIMx0BRREJIxUB/nEdKgEpHR4pKYwJAwghAwIJAwoFAwQD
AgoYCAMECQ8HAwEEBhkGAgyjDwcHCAUCEAMCCA4FCSoHChgDBRQHBA4GAwL+0hACDBAHAwYJCAkODQQoHBw
BKhUBCBADDQICiwICBQUDFAYCBgErEicCAQEBAw0hDBsdExslAQQnAgMTKh0dKSo6KYcIF1cIAwMKDAEBCA
INBAUHCRFAEQqBBQ0QCAQDAwIFHwgBBQ4vNwkCCBUaDgUIGAwGAxYLHg4CAgQIAQgbDQgHThwOAQQPDAgBA
w4UDwURFAEFFQAAAAAMAJYAAQAAAAAAAQAKABYAAQAAAAAAAgAHADEAAQAAAAAAAwAnAIkAAQAAAAAABAAK
AMcAAQAAAAAABQALAOoAAQAAAAAABgAKAQwAAwABBAkAAQAUAAAAAwABBAkAAgAOACEAAwABBAkAAwBOADk
AAwABBAkABAAUALEAAwABBAkABQAWANIAAwABBAkABgAUAPYAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdH
lpY29ucwAAUgBlAGcAdQBsAGEAcgAAUmVndWxhcgAARgBvAG4AdABGAG8AcgBnAGUAIAAyAC4AMAAgADoAI
AB1AG4AaQB0AHkAaQBjAG8AbgBzACAAOgAgADIANgAtADEAMAAtADIAMAAxADgAAEZvbnRGb3JnZSAyLjAg
OiB1bml0eWljb25zIDogMjYtMTAtMjAxOAAAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdHlpY29ucwAAVgB
lAHIAcwBpAG8AbgAgADEALgAwAABWZXJzaW9uIDEuMAAAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdHlpY2
9ucwAAAAAAAgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAPAAAAAQACAQIBAwEEAQUBBgEHAQgBC
QEKAQsBDAENB2FuZHJvaWQEc3RhcgRpbmZvBnZvbHVtZQt2b2x1bWUtbXV0ZQZyZWxvYWQGcGVyc29uBHNr
aXAFY2xvc2ULc2NyZWVuLWZ1bGwEZ2RwcgdpbmZvLWFyAAAAAAH//wACAAEAAAAOAAAAGAAAAAAAAgABAAM
ADgABAAQAAAACAAAAAAABAAAAAMw9os8AAAAA1/jDcAAAAADX+MNw") format("truetype")}[data-
icon]:before{content:attr(data-icon);font-family:"unityicons" !important}
[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"unityicons" !
important}.icon-android:before{content:"\e000"}.icon-star:before{display:inline-
block;width:1em;content:"\e001"}.icon-info:before{content:"\e002"}.icon-
volume:before{content:"\e003"}.icon-volume-mute:before{content:"\e004"}.icon-
reload:before{content:"\e005"}.icon-person:before{content:"\e006"}.icon-
skip:before{content:"\e007"}.icon-close:before{content:"\e008"}.icon-screen-
full:before{content:"\e009"}.icon-gdpr:before{content:"\e010"}.icon-info-
ar:before{content:"\e011"}#overlay{position:fixed;width:100%;height:100%;background
-color:transparent;color:#fff;pointer-events:none;}#overlay .skip-hit-
area{position:fixed;top:0;left:0;width:70px;height:55px;pointer-
events:auto}#overlay
.skip{position:absolute;top:10px;left:10px;width:36px;height:36px}#overlay .close-
icon,#overlay .skip-
icon{position:absolute;top:50%;left:15%;width:27px;height:29px;font-size:27px;-
webkit-transform:translate(0,-50%);transform:translate(0,-50%)}#overlay .skip
.circle-left,#overlay .skip .circle-right{border:4px solid #777}#overlay .skip
.close-icon,#overlay .skip .skip-icon{color:#777}#overlay .skip.enabled .circle-
left,#overlay .skip.enabled .circle-right{border:4px solid #fff}#overlay
.skip.enabled .close-icon,#overlay .skip.enabled .skip-icon{color:#fff}#overlay
.skip:not(.close-icon-skip) .skip-icon{display:block}#overlay .skip:not(.close-
icon-skip) .close-icon{display:none}#overlay .skip.close-icon-skip .skip-
icon{display:none}#overlay .skip.close-icon-skip .close-icon{display:block}#overlay
.mute-button{position:fixed;bottom:0;left:0;width:70px;height:55px;pointer-
events:auto;}#overlay .mute-button .mute-icon,#overlay .mute-button .unmute-
icon{position:absolute;bottom:10px;left:10px;height:27px;font-size:27px}#overlay
.mute-button .unmute-icon{display:none}#overlay .mute-button.muted .mute-
icon{display:none}#overlay .mute-button.muted .unmute-
icon{display:block}#overlay .call-
button{position:fixed;right:10px;bottom:0;display:none;font-weight:bold;-webkit-
transform:translate(0,-50%);transform:translate(0,-50%);pointer-
events:auto}#overlay .buffering-
spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:none;margin:auto;wi
dth:100px;height:65px}#overlay .spinner-animation{margin:0
auto;width:24px;height:24px;border:4px solid #fff;border-right-
color:transparent;border-left-color:transparent;border-radius:200px;-webkit-
animation:spinner 1s linear infinite;animation:spinner 1s linear
infinite}#overlay .debug-message-
text{position:absolute;top:50%;right:10px;display:none;pointer-events:auto}#overlay
.spinner-text{margin-top:10px;color:#fff;text-align:center;text-shadow:1px 1px
#000;font-weight:bold}#overlay
.progress{position:fixed;top:0;right:0;display:none;padding:10px;width:36px;height:
36px}#overlay .progress-
wrapper{position:absolute;clip:rect(0,36px,36px,18px);width:36px;height:36px}#overl
ay
.progress:after{position:absolute;top:50%;left:50%;display:block;color:#fff;content
:attr(data-seconds);font-size:18px;-webkit-transform:translate(-50%,-
50%);transform:translate(-50%,-50%)}#overlay .circle-base,#overlay .circle-
left,#overlay .circle-right{position:absolute;width:28px;height:28px;border-
radius:100%;background-color:transparent;vertical-align:middle}#overlay .circle-
base{border:4px solid rgba(105,105,105,0.4)}#overlay .circle-left,#overlay .circle-
right{clip:rect(0,18px,36px,0);border:4px solid #fff}#overlay .progress-
wrapper,#overlay .circle-left,#overlay .circle-right{-webkit-animation-
duration:.01s;animation-duration:.01s;-webkit-animation-iteration-
count:1;animation-iteration-count:1;-webkit-animation-fill-mode:forwards;animation-
fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-
function:linear}#overlay .gdpr-pop-
up{position:fixed;bottom:0;width:100%;background-color:#161616;-webkit-box-shadow:0
0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0 rgba(0,0,0,0.1);pointer-
events:auto;}#overlay .gdpr-pop-up .gdpr-text{z-
index:110;padding:.5rem;color:#fff;text-align:center;font-size:.5rem;}#overlay
.gdpr-pop-up .gdpr-text .gdpr-link{color:#167dfb}#overlay .privacy-
button{position:fixed;bottom:4px;left:50%;margin:0 0 0 -13px;pointer-
events:auto;}#overlay .privacy-button .icon-gdpr{color:#fff}#overlay
.china-advertisement{position:fixed;display:none;padding:.7rem;color:#fff;font-
size:.75rem;opacity:.58}#overlay .china-advertisement.with-skip-button{padding-
top:0}@-webkit-keyframes spinner{from{-webkit-
transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{from{-webkit-
transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}.fade{opacity:0;-webkit-
transition:opacity .45s ease-in-out;transition:opacity .45s ease-in-out}.slide-up{-
webkit-transform:translateY(-150%);transform:translateY(-150%);-webkit-transition:-
webkit-transform .4s ease-in;transition:-webkit-transform .4s ease-
in;transition:transform .4s ease-in;transition:transform .4s ease-in, -webkit-
transform .4s ease-in}.slide-down{-webkit-
transform:translateY(150%);transform:translateY(150%);-webkit-transition:-webkit-
transform .4s ease-in;transition:-webkit-transform .4s ease-in;transition:transform
.4s ease-in;transition:transform .4s ease-in, -webkit-transform .4s ease-in}.slide-
back-in-place{-webkit-transform:translateY(0);transform:translateY(0);-webkit-
transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-
in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,
-webkit-transform .2s ease-in-out}@-webkit-keyframes right-spin{from{-webkit-
transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(180deg);transform:rotate(180deg)}}@keyframes right-spin{from{-
webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(180deg);transform:rotate(180deg)}}@-webkit-keyframes left-
spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@keyframes left-spin{from{-
webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes close-
progress-wrapper{to{clip:rect(auto,auto,auto,auto)}}@keyframes close-progress-
wrapper{to{clip:rect(auto,auto,auto,auto)}}.ar-phone-x-top{display:none}.ar-phone-
x-bottom{display:none}.ar-phone-x-left{display:none}.ar-phone-x-
right{display:none}.ar-phone-x-top{display:none}.ar-phone-x-
bottom{display:none}.ar-phone-x-left{display:none}.ar-phone-x-
right{display:none}#video-overlay{position:fixed;width:100%;height:100%;background-
color:transparent;color:#fff;font-size:16px;-webkit-transition:opacity .45s ease-
in;transition:opacity .45s ease-in;}#video-overlay .top-container,#video-overlay
.show-skip-button{display:none}#video-overlay .bottom-
container{display:block;height:.3em;}#video-overlay .bottom-container .left-
corner,#video-overlay .bottom-container .center{display:none}#video-overlay
.bottom-container .left-corner,#video-overlay .bottom-container .right-
corner{top:auto;bottom:.3em}#video-overlay.fade-in .skip-button,#video-overlay
.skip-button{display:none}#video-overlay.fade-in .top-container,#video-
overlay.fade-in .show-skip-button{display:block}#video-overlay.fade-in .bottom-
container .left-corner,#video-overlay.fade-in .bottom-container
.center{display:block}#video-overlay .skip-button:not(.close-icon-skip) .icon-
skip{display:block}#video-overlay .skip-button:not(.close-icon-skip) .icon-
close{display:none}#video-overlay .skip-button.close-icon-skip .icon-
skip{display:none}#video-overlay .skip-button.close-icon-skip .icon-
close{display:block}#video-overlay .button{width:2.2em;height:2em}#video-overlay
.margin-fixer{position:relative}#video-overlay .right-corner,#video-overlay .left-
corner{z-index:10}#video-overlay .right-
corner{position:absolute;top:0;right:0}#video-overlay .left-
corner{position:absolute;top:0;left:0}#video-overlay .top-
container{position:absolute;top:0;left:0;width:100%;height:2em;}#video-overlay
.top-container .left-corner,#video-overlay .top-container .right-
corner{top:.3em}#video-overlay .bottom-
container{position:absolute;top:auto;bottom:0;left:0;-webkit-box-align:center;-ms-
flex-align:center;align-items:center;width:100%;height:2em;}#video-overlay .bottom-
container .center,#video-overlay .bottom-container
.tab{top:auto;bottom:.3em}#video-overlay .bottom-container
.center{position:absolute;z-index:1;margin:auto;width:100%}#video-overlay .button-
right{right:0;left:auto;}#video-overlay .button-right
.tab{right:0;left:auto;border-radius:.2em 0 0 .2em}#video-overlay
.tab{position:absolute;top:.3em;left:0;width:2em;height:1.5em;border-radius:0 .
2em .2em 0;background-color:rgba(0,0,0,0.54);color:"#f1f1f1";text-
align:center;text-shadow:.01em .01em .025em rgba(0,0,0,0.8),0 0 .1em #000;font-
weight:300}#video-overlay .icon,#video-overlay .text{font-size:.65em}#video-overlay
.gdpr-button{position:absolute;top:0;left:2.2em;}#video-overlay .gdpr-button
.tab{bottom:.54em;width:1em;height:1em;border-radius:.2em}#video-overlay .gdpr-
button .icon-container{line-height:.8em}#video-overlay .gdpr-button .icon{font-
size:.5em}#video-overlay .call-button .tab{line-height:1.31em}#video-overlay .call-
button{-webkit-transform:translateX(120%);transform:translateX(120%);-webkit-
transition:-webkit-transform .3s ease-in;transition:-webkit-transform .3s ease-
in;transition:transform .3s ease-in;transition:transform .3s ease-in, -webkit-
transform .3s ease-in}#video-overlay .show-call-button{-webkit-
transform:translateX(0%);transform:translateX(0%)}#video-overlay .vast-
button{display:none;width:6em;}#video-overlay .vast-button .tab{width:6em;text-
align:left}#video-overlay .vast-button .text{margin-left:.8em;text-
align:center}#video-overlay .vast-button .go-text{position:absolute;margin-
top:.55em;margin-left:.55em;width:2.4em;height:1.7em;border:1px solid;border-
radius:.25em;font-size:.8em;line-height:1.85em;-webkit-
transform:translateX(200%);transform:translateX(200%);-webkit-transition:-webkit-
transform .6s ease-in;transition:-webkit-transform .6s ease-in;transition:transform
.6s ease-in;transition:transform .6s ease-in, -webkit-transform .6s ease-in}#video-
overlay .show-go-text .go-text{-webkit-
transform:translateX(0%);transform:translateX(0%)}#video-overlay .install-
button{display:none;width:7.5em;height:3em;}#video-overlay .install-button
.tab{width:7.5em;height:2.3em;text-align:left}#video-overlay .install-button
.download-wrapper{position:relative;}#video-overlay .install-button .download-
wrapper .game-icon{width:1.7em;height:1.7em;border-radius:.25em;background-
position:center;background-size:cover;background-repeat:no-
repeat;margin:.3em}#video-overlay .install-button .download-wrapper .download-
container{position:absolute;top:0;left:2.3em;width:4.5em;height:1.7em;border-
radius:.25em;background:#167dfb;color:#fff;text-align:center;line-
height:1.5em}#video-overlay .install-button .download-wrapper .download-text{text-
shadow:none;font-size:.65em}#video-overlay .timer-container,#video-overlay .icon-
container{line-height:1.55em}#video-overlay .icon-volume-mute{display:none}#video-
overlay .icon-volume{display:block}#video-overlay .muted .icon-volume-
mute{display:block}#video-overlay .muted .icon-volume{display:none}#video-
overlay .timer{font-size:.6em}#video-overlay .buffering-
spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:none;margin:auto;wi
dth:100px;height:65px}#video-overlay .spinner-animation{margin:0
auto;width:24px;height:24px;border:4px solid #fff;border-right-
color:transparent;border-left-color:transparent;border-radius:200px;-webkit-
animation:spinner 1s linear infinite;animation:spinner 1s linear infinite}#video-
overlay .debug-message-
text{position:absolute;top:50%;right:10px;display:none}#video-overlay .spinner-
text{margin-top:10px;color:#fff;text-align:center;text-shadow:1px 1px #000;font-
weight:bold}#video-overlay .china-
advertisement{position:fixed;display:none;padding:.7rem;color:#fff;font-
size:.75rem;opacity:.58}#video-overlay .china-advertisement.with-skip-
button{padding-top:0}#video-overlay:not(.show-gdpr-banner) .gdpr-pop-
up{display:none}#video-overlay.show-gdpr-banner .gdpr-pop-
up{bottom:0;position:absolute;z-index:100;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;width:100%;background-color:#fafafa;-webkit-box-
shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;position:static;margin:auto;width:50%;height:1.5em;border
-radius:.2em;pointer-events:1;}#video-overlay.show-gdpr-banner .gdpr-pop-up .gdpr-
text{padding:.5em;font-size:.5em}#video-overlay.show-gdpr-banner .gdpr-pop-up
.icon-gdpr{margin:0 .5rem;color:#000;opacity:.25}#video-overlay.show-gdpr-banner
.gdpr-pop-up .gdpr-text{z-index:110;padding:.5rem .5rem .5rem 0;width:80%;text-
align:center;}#video-overlay.show-gdpr-banner .gdpr-pop-up .gdpr-text .gdpr-
link{color:#167dfb}#video-overlay.show-gdpr-banner .gdpr-pop-up .icon-gdpr{font-
size:.5em}#video-overlay.show-gdpr-banner .gdpr-pop-up .gdpr-text{color:#000;font-
size:.35em}#video-overlay:not(.show-gdpr-button) .gdpr-button{display:none}#video-
overlay.show-gdpr-button .gdpr-button{display:block;pointer-events:1}@media
(orientation:portrait){#video-overlay.show-gdpr-banner .bottom-
container{height:4em;}#video-overlay.show-gdpr-banner .bottom-container .left-
corner,#video-overlay.show-gdpr-banner .bottom-container .right-
corner{bottom:auto}#video-overlay.show-gdpr-banner .bottom-container
.center{bottom:0;}#video-overlay.show-gdpr-banner .bottom-container .center .gdpr-
pop-up{width:90%;border-radius:.2em .2em 0 0}}@media only screen and (device-
width:375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3){#video-
overlay .bottom-container{margin-bottom:constant(safe-area-inset-bottom);margin-
bottom:env(safe-area-inset-bottom)}#video-overlay .top-container{margin-
top:calc(constant(safe-area-inset-top));margin-top:calc(env(safe-area-inset-
top))}#video-overlay
.button-left .tab{padding-left:constant(safe-area-inset-left);padding-
left:env(safe-area-inset-left)}#video-overlay .button-
left{width:calc(constant(safe-area-inset-left) + 2.2em);width:calc(env(safe-area-
inset-left) + 2.2em)}#video-overlay .button-right .tab{padding-right:constant(safe-
area-inset-right);padding-right:env(safe-area-inset-right)}#video-overlay .button-
right{width:calc(constant(safe-area-inset-right) + 2.2em);width:calc(env(safe-area-
inset-right) + 2.2em)}#video-overlay .call-button{width:calc(constant(safe-area-
inset-right) + 6em);width:calc(env(safe-area-inset-right) + 6em)}#video-overlay
.gdpr-button{left:calc(2.2em + constant(safe-area-inset-left));left:calc(2.2em +
env(safe-area-inset-left))}}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:3){#video-overlay .bottom-
container{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-
area-inset-bottom)}#video-overlay .top-container{margin-top:calc(constant(safe-
area-inset-top));margin-top:calc(env(safe-area-inset-top))}#video-overlay .button-
left .tab{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-
inset-left)}#video-overlay .button-left{width:calc(constant(safe-area-inset-left) +
2.2em);width:calc(env(safe-area-inset-left) + 2.2em)}#video-overlay .button-
right .tab{padding-right:constant(safe-area-inset-right);padding-right:env(safe-
area-inset-right)}#video-overlay .button-right{width:calc(constant(safe-area-inset-
right) + 2.2em);width:calc(env(safe-area-inset-right) + 2.2em)}#video-overlay
.call-button{width:calc(constant(safe-area-inset-right) + 6em);width:calc(env(safe-
area-inset-right) + 6em)}#video-overlay .gdpr-button{left:calc(2.2em +
constant(safe-area-inset-left));left:calc(2.2em + env(safe-area-inset-
left))}}@media only screen and (device-width:414px) and (device-height:896px) and
(-webkit-device-pixel-ratio:2){#video-overlay .bottom-container{margin-
bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-
bottom)}#video-overlay .top-container{margin-top:calc(constant(safe-area-inset-
top));margin-top:calc(env(safe-area-inset-top))}#video-overlay .button-left
.tab{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-
left)}#video-overlay .button-left{width:calc(constant(safe-area-inset-left) +
2.2em);width:calc(env(safe-area-inset-left) + 2.2em)}#video-overlay .button-
right .tab{padding-right:constant(safe-area-inset-right);padding-right:env(safe-
area-inset-right)}#video-overlay .button-right{width:calc(constant(safe-area-inset-
right) + 2.2em);width:calc(env(safe-area-inset-right) + 2.2em)}#video-overlay
.call-button{width:calc(constant(safe-area-inset-right) + 6em);width:calc(env(safe-
area-inset-right) + 6em)}#video-overlay .gdpr-button{left:calc(2.2em +
constant(safe-area-inset-left));left:calc(2.2em + env(safe-area-inset-left))}}@-
webkit-keyframes spinner{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-
webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{from{-
webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@media (orientation:landscape)
and (max-width:392px){#video-overlay .content{font-size:.6em}}@media
(orientation:landscape) and (min-width:472px) and (max-width:593px){#video-
overlay .content{font-size:1.2em}}@media (orientation:landscape) and (min-
width:594px) and (max-width:792px){#video-overlay .content{font-size:1.5em}}@media
(orientation:landscape) and (min-width:792px) and (max-width:840px){#video-
overlay .content{font-size:2em}}@media (orientation:landscape) and (min-
width:840px) and (max-width:959px){#video-overlay .content{font-size:2.1em}}@media
(orientation:landscape) and (min-width:960px){#video-overlay .content{font-
size:2.2em}}@media (orientation:portrait) and (max-width:320px){#video-overlay
.content{font-size:1.2em}}@media (orientation:portrait) and (min-width:321px) and
(max-width:359px){#video-overlay .content{font-size:1.5em}}@media
(orientation:portrait) and (min-width:360px) and (max-width:413px){#video-
overlay .content{font-size:1.7em}}@media (orientation:portrait) and (min-
width:414px) and (max-width:480px){#video-overlay .content{font-size:1.9em}}@media
(orientation:portrait) and (min-width:481px) and (max-width:568px){#video-
overlay .content{font-size:2em}}@media (orientation:portrait) and (min-width:569px)
{#video-overlay .content{font-size:2.4em}}@media only screen and (device-
width:375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3) and
(orientation:portrait){#video-overlay.show-gdpr-banner .bottom-container .center
.gdpr-pop-up{border-radius:.2em}}@media only screen and (device-width:375px) and
(device-height:812px) and (-webkit-device-pixel-ratio:3) and
(orientation:landscape){#video-overlay.show-gdpr-banner .bottom-container
.center .gdpr-pop-up{width:40%;}#video-overlay.show-gdpr-banner .bottom-
container .center .gdpr-pop-up .gdpr-text{font-size:.29em}#video-overlay .bottom-
container .center,#video-overlay .bottom-container .tab{bottom:0}#video-overlay
.bottom-container .gdpr-button .tab{bottom:.28em}}@media only screen and (device-
width:414px) and (device-height:896px) and (-webkit-device-pixel-ratio:3) and
(orientation:portrait){#video-overlay.show-gdpr-banner .bottom-container .center
.gdpr-pop-up{border-radius:.2em}}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:3) and
(orientation:landscape){#video-overlay.show-gdpr-banner .bottom-container
.center .gdpr-pop-up{width:40%;}#video-overlay.show-gdpr-banner .bottom-
container .center .gdpr-pop-up .gdpr-text{font-size:.29em}#video-overlay .bottom-
container .center,#video-overlay .bottom-container .tab{bottom:0}#video-overlay
.bottom-container .gdpr-button .tab{bottom:.28em}}@media only screen and (device-
width:414px) and (device-height:896px) and (-webkit-device-pixel-ratio:2) and
(orientation:portrait){#video-overlay.show-gdpr-banner .bottom-container .center
.gdpr-pop-up{border-radius:.2em}}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:2) and
(orientation:landscape){#video-overlay.show-gdpr-banner .bottom-container
.center .gdpr-pop-up{width:40%;}#video-overlay.show-gdpr-banner .bottom-
container .center .gdpr-pop-up .gdpr-text{font-size:.29em}#video-overlay .bottom-
container .center,#video-overlay .bottom-container .tab{bottom:0}#video-overlay
.bottom-container .gdpr-button .tab{bottom:.28em}}.ar-phone-x-top{display:none}.ar-
phone-x-bottom{display:none}.ar-phone-x-left{display:none}.ar-phone-x-
right{display:none}#end-screen.square-end-screen .campaign-
container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-
direction:column;flex-direction:column;overflow:hidden;background-
color:#dedede}#end-screen.square-end-screen .privacy-button{bottom:0;left:0}#end-
screen.square-end-screen .game-image{width:100%;height:100%;background-
color:transparent;background-position:center;background-size:contain;background-
repeat:no-repeat}#end-screen.square-end-screen .game-background-
blurred{position:absolute;display:block;margin:0;width:100%;height:100%;-webkit-
filter:blur(10px) brightness(.8) opacity(.28) grayscale(1);filter:blur(10px)
brightness(.8) opacity(.28) grayscale(1);-webkit-
transform:scale(1.4);transform:scale(1.4);background-color:transparent;background-
size:cover}#end-screen.square-end-screen.old-androids .game-background-
blurred{display:none}#end-screen.square-end-screen.old-androids .game-
image{background-color:#e2e2e2}#end-screen.square-end-screen .end-screen-info-
background{position:relative;z-index:6;-webkit-box-flex:1;-ms-flex-positive:1;flex-
grow:1;width:auto;background-color:#fafafa}.landscape #end-screen.square-end-screen
.campaign-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-
flex-direction:row;flex-direction:row}.landscape #end-screen.square-end-screen
.privacy-button{left:0}@media (orientation:portrait) and (min-height:0){html #end-
screen.square-end-screen .end-screen-info-background{font-size:4.8px}}@media
(orientation:portrait) and (min-height:250px){html #end-screen.square-end-screen
.end-screen-info-background{font-size:6.4px}}@media (orientation:portrait) and
(min-height:320px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:9.6px}}@media (orientation:portrait) and (min-height:380px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:11.2px}}@media (orientation:portrait) and (min-height:460px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:14.4px}}@media
(orientation:portrait) and (min-height:560px){html #end-screen.square-end-screen
.end-screen-info-background{font-size:17.6px}}@media (orientation:portrait) and
(min-height:600px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:19.2px}}@media (orientation:portrait) and (min-height:680px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:20.8px}}@media (orientation:portrait) and (min-height:780px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:22.4px}}@media
(orientation:portrait) and (min-height:980px){html #end-screen.square-end-screen
.end-screen-info-background{font-size:25.6px}}@media (orientation:portrait) and
(min-height:1050px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:28.8px}}@media (orientation:portrait) and (min-height:1175px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:35.2px}}@media (orientation:portrait) and (min-height:1375px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:41.6px}}@media
(orientation:portrait) and (min-height:1675px){html #end-screen.square-end-
screen .end-screen-info-background{font-size:48px}}@media
(orientation:portrait) and (min-height:1975px){html #end-screen.square-end-
screen .end-screen-info-background{font-size:64px}}@media (orientation:portrait)
and (min-height:2275px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:73.6px}}@media (orientation:portrait) and (min-height:2575px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:88px}}@media (orientation:portrait) and (min-height:2875px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:99.2px}}@media
(orientation:portrait) and (min-height:3475px){html #end-screen.square-end-
screen .end-screen-info-background{font-size:112px}}@media (orientation:landscape)
and (min-width:200px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:8px}}@media (orientation:landscape) and (min-width:320px){html
#end-screen.square-end-screen .end-screen-info-background{font-size:9.6px}}@media
(orientation:landscape) and (min-width:460px){html #end-screen.square-end-screen
.end-screen-info-background{font-size:14.4px}}@media (orientation:landscape) and
(min-width:580px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:19.2px}}@media (orientation:landscape) and (min-width:760px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:22.4px}}@media (orientation:landscape) and (min-width:960px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:25.6px}}@media
(orientation:landscape) and (min-width:1160px){html #end-screen.square-end-
screen .end-screen-info-background{font-size:35.2px}}@media (orientation:landscape)
and (min-width:1460px){html #end-screen.square-end-screen .end-screen-info-
background{font-size:44.8px}}@media (orientation:landscape) and (min-width:1760px)
{html #end-screen.square-end-screen .end-screen-info-background{font-
size:54.4px}}@media (orientation:landscape) and (min-width:2260px){html #end-
screen.square-end-screen .end-screen-info-background{font-size:70.4px}}@media (max-
aspect-ratio:290/460) and (orientation:portrait),(min-aspect-ratio:470/290) and
(orientation:landscape){#end-screen.square-end-screen .game-background-
blurred{display:none}#end-screen.square-end-screen .game-
image{position:absolute}}@media (max-aspect-ratio:290/460) and
(orientation:portrait){body.portrait #end-screen.square-end-screen .end-screen-
info-background{height:auto}body.portrait #end-screen.square-end-screen .download-
container{margin:.55rem auto}#end-screen.square-end-screen .game-background-
container{position:relative;z-index:5;width:100%;height:100vw}#end-screen.square-
end-screen .end-screen-info-background{height:auto}}@media (min-aspect-
ratio:470/290) and (orientation:landscape){.landscape #end-screen.square-end-screen
.game-background-container{width:100vh;height:100%}.landscape #end-screen.square-
end-screen .end-screen-info-background{width:auto}}@media only screen and (device-
width:375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3),only
screen and (device-width:414px) and (device-height:896px) and (-webkit-device-
pixel-ratio:2),only screen and (device-width:414px) and (device-height:896px) and
(-webkit-device-pixel-ratio:3){.landscape #end-screen.square-end-screen .game-
image{background-position:left}.landscape #end-screen.square-end-screen .download-
container{font-size:1.05rem}.landscape #end-screen.square-end-screen .game-
rating,.landscape #end-screen.square-end-screen .name-container{font-
size:1.2rem}.landscape #end-screen.square-end-screen .campaign-
container{background-color:#fafafa}}body.portrait #end-screen .game-background-
portrait{display:block}body.portrait #end-screen .game-background-
landscape{display:none}body.portrait #end-screen .row-container{display:-webkit-
box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-
direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center}body.portrait #end-
screen .end-screen-info-background{width:100%;height:50%}body.portrait #end-
screen .game-icon{-ms-flex-item-align:center;align-self:center}body.portrait #end-
screen .game-background{background-color:#cecece}body.landscape #end-screen .game-
background-container{width:50%;height:100%}body.landscape #end-screen .game-
background-portrait{display:none}body.landscape #end-screen .game-background-
landscape{display:block}body.landscape #end-screen .end-screen-info{display:-
webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-
box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-
ms-flex-align:center;align-items:center;}body.landscape #end-screen .end-screen-
info .game-icon{margin:0 auto}body.landscape #end-screen .campaign-
container{display:-webkit-box;display:-ms-flexbox;display:flex}body.landscape #end-
screen .end-screen-info-background{width:50%;height:100%;text-
align:center}body.landscape #end-screen .gdpr-pop-up{left:0}body .row-
container{position:relative}#end-
screen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;backg
round-color:transparent;}#end-screen .campaign-
container{width:100%;height:100%;background:#fff}#end-screen .game-
background{background-color:#000;background-position:center;background-
size:cover;background-repeat:no-repeat}#end-screen.show-gdpr-banner .privacy-
button{display:none}#end-screen .end-screen-info-
background{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-
direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-
align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-
pack:center;align-content:center;height:100%;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;background-color:#fafafa;}@media
(orientation:portrait) and (min-height:0){#end-screen .end-screen-info-
background{font-size:6.4px}}@media (orientation:portrait) and (min-height:250px)
{#end-screen .end-screen-info-background{font-size:8px}}@media
(orientation:portrait) and (min-height:320px){#end-screen .end-screen-info-
background{font-size:11.2px}}@media (orientation:portrait) and (min-height:380px)
{#end-screen .end-screen-info-background{font-size:12.8px}}@media
(orientation:portrait) and (min-height:460px){#end-screen .end-screen-info-
background{font-size:16px}}@media (orientation:portrait) and (min-height:560px)
{#end-screen .end-screen-info-background{font-size:19.2px}}@media
(orientation:portrait) and (min-height:600px){#end-screen .end-screen-info-
background{font-size:20.8px}}@media (orientation:portrait) and (min-height:680px)
{#end-screen .end-screen-info-background{font-size:24px}}@media
(orientation:portrait) and (min-height:780px){#end-screen .end-screen-info-
background{font-size:25.6px}}@media (orientation:portrait) and (min-height:980px)
{#end-screen .end-screen-info-background{font-size:28.8px}}@media
(orientation:portrait) and (min-height:1050px){#end-screen .end-screen-info-
background{font-size:35.2px}}@media (orientation:portrait) and (min-height:1175px)
{#end-screen .end-screen-info-background{font-size:40px}}@media
(orientation:portrait) and (min-height:1375px){#end-screen .end-screen-info-
background{font-size:48px}}@media (orientation:portrait) and (min-height:1675px)
{#end-screen .end-screen-info-background{font-size:56px}}@media
(orientation:portrait) and (min-height:1975px){#end-screen .end-screen-info-
background{font-size:70.4px}}@media (orientation:portrait) and (min-height:2275px)
{#end-screen .end-screen-info-background{font-size:80px}}@media
(orientation:portrait) and (min-height:2575px){#end-screen .end-screen-info-
background{font-size:96px}}@media (orientation:portrait) and (min-height:2875px)
{#end-screen .end-screen-info-background{font-size:112px}}@media
(orientation:portrait) and (min-height:3475px){#end-screen .end-screen-info-
background{font-size:128px}}@media (orientation:landscape) and (min-width:200px)
{#end-screen .end-screen-info-background{font-size:11.2px}}@media
(orientation:landscape) and (min-width:320px){#end-screen .end-screen-info-
background{font-size:12.8px}}@media (orientation:landscape) and (min-width:460px)
{#end-screen .end-screen-info-background{font-size:16px}}@media
(orientation:landscape) and (min-width:580px){#end-screen .end-screen-info-
background{font-size:19.2px}}@media (orientation:landscape) and (min-width:760px)
{#end-screen .end-screen-info-background{font-size:22.4px}}@media
(orientation:landscape) and (min-width:960px){#end-screen .end-screen-info-
background{font-size:25.6px}}@media (orientation:landscape) and (min-width:1160px)
{#end-screen .end-screen-info-background{font-size:35.2px}}@media
(orientation:landscape) and (min-width:1460px){#end-screen .end-screen-info-
background{font-size:44.8px}}@media (orientation:landscape) and (min-width:1760px)
{#end-screen .end-screen-info-background{font-size:60.8px}}@media
(orientation:landscape) and (min-width:2260px){#end-screen .end-screen-info-
background{font-size:73.6px}}#end-screen .btn-close-region{z-
index:100;width:2.1875rem;font-size:1.25rem;line-
height:2.1875rem;position:absolute;right:0;color:#fff;text-align:center;text-
shadow:2px 2px 20px #7c7c7c;padding:.25rem}#end-screen .china-
advertisement{position:fixed;display:none;padding:.7rem;color:#fff;font-
size:.75rem;position:absolute;right:0;bottom:0;margin-
right:.5em;padding:0;color:#7c7c7c;font-size:.6em;opacity:.6}#end-screen .download-
container{margin:.75 auto 0 auto;padding:.6em 0;width:11.2em;border-
radius:.6em;background:#167dfb;color:#fff;text-align:center;font-size:1em}#end-
screen .game-rating{font-size:1.5rem;position:relative;display:inline-
block;color:#e6e6e6;vertical-align:middle;letter-spacing:5px;text-
align:center;margin-top:.41em;letter-spacing:0;font-size:.8em}#end-screen
.game-rating-stars-
top{position:absolute;left:0;overflow:hidden;width:0;height:100%;color:#ff8e00;text
-align:center;white-space:nowrap;position:absolute;left:0;z-index:1}#end-screen
.game-rating-stars-bottom{z-index:0}#end-screen .game-rating-
count{color:#7c7c7c;font-size:.5rem;font-size:.5em}#end-screen .game-icon{margin-
bottom:.8em;min-width:3.5em;min-height:3.5em;width:3.5em;height:3.5em;border-
radius:.4em;background-position:center;background-size:cover;background-repeat:no-
repeat}#end-screen .icon-star{margin-left:-.25em}#end-screen .first-icon-
star{margin-left:0}#end-screen .icon-star:before{font-size:.8em}#end-screen
.unityads-logo{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAgCAMAAAD+K8DjAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURQAAAHd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+h
Xd+hXd+hRvg3+0AAAAMdFJOUwDrdiFWuJk7CNEU/sRHFUYAAAJ9SURBVFjD7ZeLcuMwCEUNQiCk///fvQjb
TTbZVGk7k+xMmfFLzyNAIG/br/zH0owrvwMEjTHqSym6qI8U6q8EqTtE3ORrQxSxq2+T9vwggvld2aZW9PF
sDVPY3bVc67KO8hyEMXOtbBiF4SE0/EFjHRi+3mtSoE65bvociMEcnl0KDSo+Hg3AXjtA7jg0D6H6DZDgqP
1cLudt+m/px6OXwx69lNahEdyzuqFgPp3aYYwmzJYgxspLPHLBYVBNC3fJhSk5KooTFyLRMRsyeXQZKKCpx
2wVnRVd5xIKvIWGAqTpID8W9qmT1t25G7pg0Z12p9P5hLm47NsJc6FQHC1cbE6A6h0bfTthIRsUw71LDAOy
3sBlKxz6YeR8x3rKDQhuc2iOyukj4E79TQ9NhqBBkaaKonWMZM4rm9Z2iXlKAvF2A6JJWj5A4tPOPZtWCfs
kzVwQNFJtwUN4/CUJYN5uQfgWJGzTaNcoilR1YgHg3DU645M9CyJPgUQ4OSwDd3aKC5+XIFvhSB2yQAKvk5
BpmgstL4DIoMMyMGcLgS3O+IHNXMrczOQrxnngrLESHvdAPB307O5HBKFwDM5aBMckqLS0ffUf23dubR93Q
UaVRE3HtDPUKlTjURjBpMdXxEzfniLJUGZHQGszI9dr08xcE9FYs0P6k55eYChBtTs5tIQYHE+y7bmQVsMY
Z4iHcVWliZS4ZuaVBodq8TbjthyWETnybovXHkm0xzEAQ+B1LedcBPlIet3HsLWOvNx0Me1FAFCJ3LUfA9Y
ONP7J0eVLMjeyyucHo8s0D6W3nwbZj4r0naPiz0jJE/ykKdtrpb/F78T5V/EGP1i/8jL5A9oqHSWefc3yAA
AAAElFTkSuQmCC");width:100%;height:1rem;border-radius:0;background-
position:center;background-size:contain;background-repeat:no-
repeat;bottom:0;left:0;position:absolute;z-index:5;max-height:1rem;font-
size:.7rem;opacity:.6;max-height:1em;font-size:.7em;opacity:.6}#end-screen .name-
container{max-width:85%;font-size:1rem;display:-webkit-
box;overflow:hidden;color:#404040;text-align:center;text-overflow:ellipsis;-webkit-
line-clamp:2;-webkit-box-orient:vertical;max-width:85%;color:#404040;text-
align:center;font-size:1em}#end-screen .bottom-
container{position:absolute;bottom:0;left:0;margin:0 0 .25em
0;width:100%;height:1.5em}#end-screen .privacy-button{position:absolute;bottom:0;z-
index:10;color:#e6e6e6;left:0;margin-left:.5em;line-height:1em}#end-screen .icon-
gdpr{color:#000;opacity:.25}#end-screen.show-gdpr-banner .gdpr-pop-
up{bottom:0;position:absolute;z-index:100;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;width:100%;background-color:#fafafa;-webkit-box-
shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;}#end-screen.show-gdpr-banner .gdpr-pop-up .gdpr-
text{padding:.5rem;font-size:.5rem}#end-screen.show-gdpr-banner .gdpr-pop-up .icon-
gdpr{margin:0 .5rem;color:#000;opacity:.25}#end-screen.show-gdpr-banner .gdpr-pop-
up .gdpr-text{z-index:110;padding:.5rem .5rem .5rem 0;width:80%;text-
align:center;}#end-screen.show-gdpr-banner .gdpr-pop-up .gdpr-text .gdpr-
link{color:#167dfb}#end-screen:not(.show-gdpr-banner) .gdpr-pop-
up{display:none}#end-screen .game-background-
container{position:relative;width:100%;height:50%}#end-screen .game-
background{width:100%;height:100%}#end-screen .column-container{display:-webkit-
box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-
box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-
direction:column;-webkit-box-align:center;-ms-flex-align:center;align-
items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-
content:center;margin-bottom:.85em}body.portrait #end-screen .download-
container{margin:1em auto 0 auto}body.landscape #end-screen .btn-close-
region{color:#7c7c7c}body.landscape #end-screen .end-screen-info .download-
container{margin:1em auto 0 auto}body.landscape #end-screen .end-screen-info .game-
icon{margin-bottom:.8em}body #end-screen .store-container{margin-top:0}body #end-
screen .row-container{bottom:1em}body.ios #end-screen .end-screen-info .game-
icon{border-radius:.8em}body.ios #end-screen .end-screen-info .download-
container{border-radius:.6em}body.landscape #end-screen .end-screen-info .download-
container{margin:1em auto 0 auto}@font-face{font-
family:"unityicons";src:url("data:application/x-font-
ttf;base64,AAEAAAANAIAAAwBQRkZUTXwvKbAAAA7MAAAAHEdERUYAPAAGAAAOrAAAACBPUy8yL5pMbQAA
AVgAAABWY21hcOAn4+QAAAHYAAABUmdhc3D//wADAAAOpAAAAAhnbHlmHRlyIwAAA0wAAAkQaGVhZBELx/Q
AAADcAAAANmhoZWEEQQIFAAABFAAAACRobXR4Bu8BYAAAAbAAAAAmbG9jYQyUDqwAAAMsAAAAIG1heHAAWQ
CeAAABOAAAACBuYW1lYcLKkQAADFwAAAGtcG9zdDwkND0AAA4MAAAAlwABAAAAAQAAz/3xuF8PPPUACwIAA
AAAANf4w3AAAAAA1/jDcAABAAAB+wIXAAAACAACAAAAAAAAAAEAAAIXAAAALgIAAAAAAAH7AAEAAAAAAAAA
AAAAAAAAAAAEAAEAAAAPAJsACAAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAF
mAAAA9QAZAIQAAAIABQkAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA4ADgEQHg/
+AALgIXAAAAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAANwASACAAJgAmAE8AWgBGAIgAIAABAAIAAAAAAAMA
AAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAA4AngEf//AAAAAOAA4BD//wAAIAMf/QA
BAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcANQBHgGGAfQCNgJsApYCzAL+A64EiAAGADcAIA
HJAfsACwAXACYARgBeAG0AABMyNzY0JyYjIgYUFjMyNjQmIyIHBhQXFgYyFh0BFAcGIicmPQE0NyUVFAcGK
wEVFAcGIicmPQEjFRQHBiInJjUnIyInJj0BNxYXFhUhNDc2NycmNzYfATYyFzc2FxYHFxUUBwYiJyY9ATQ2
MhcWxAQEAwMEBAUGBn0FBgYFBAQDAwXyGhAICRgJCAgBRAkJDRUJCRgJCCgICRgJCAEVDQkJxCEQEv74EhE
gFAIDBAIVGzwbFQIEAwJ0CAkYCQgQGggIAZYDAwoDAwYKBgYKBgMDCgMDNRANew0HCQkIDHsLCgO+DAsJQQ
0HCQkIDEFBDAgJCQgMQQkLDL50EhocIiIcGhIlBQEBAyYMDCYDAQEFsXsMCAkJBw17DRAICgAAAAABABIAU
QHuAhcAIwAAARQPARcVFAcGIyIvAQcGIyInJjU0PwEnJjU0PwI2Mh8CFgHuCGcYAwMFBAiAgAgEBgMDARho
BxCQQAYQBkCQEAFnBghljwUHAwUEQ0MEBQMHAwKPZQsDCwIVggwMghUCAAAABAAgAEAB4AIAAAkAFQAhADM
AAAEyNjU0JiIGFBY3IgYVFBYzMjY1NCYDIiY1NDYzMhYVFAYnNCYrASIGFTMVFBY7ATI2NSMBAA4SExoTEw
1chIRcXYODXUJeXkJDXV0jFAwgDBQgFAwgDBQgAWASDg0TExoToIRcXYODXVyE/oBdQ0JeXkJDXaAMFBQMY
AwUFAwAAAMAJgBtAdoB0wAZADEARgAAASMnIyYPAQYfATUVHgEHNQcGHwEWPwEjNjQnNScmByMVBwYfATMW
FA8BBh8BFj8BNjQnIg8CIyIdARQ7AR8BFjMyPQERJgGUAQkBCQkRBwcKNwE3CgcIEQkJCgFGdwoKCAERBwc
KARsbCggJEgkICil/BAFpKEoICEo7VQQCCwIByQoICREJCQoBATedNwEKCwgRBwcKRsYCAQoHCAERCQgKHE
wcCgkJEgcHCit2SwE9FwhpCCIxAgoCAQ4JAAAFACYAaAHYAdgADwAfACYANwBFAAABFR8BFgcXNiYvASYHI
wcGNyMnIyYPAQYfAR4BBxc2JicmIyIPARcnIyIdARQ7AR8BFjMyPQInBQEmBxUHBhcBFj8BNTYBNQoBIwop
ERAgCgoIAREHZgEJAQkJEQcHCioVGCUmFbQCCQMCLDyhSggISjtVAgQLmAE2/rUJCRIJCQFLCQkSCQFsAQk
BIy8pJ1ggCgcIEQlVCggJEggJCip2NCVEoAwKAhk8AghqCCIxAQoBMZfJAUsJCQESCQn+tQkJEgEJAAAAAQ
BPAGsBsQHVACoAAAE0JyYPAiYiBhQWMzI2NzY1Ji8BJgcGIyImNDYzMhcPAQYXFB8BFjc2NQGxBAMFHwI1l
mpqSy1QGQICAi0IBh86LD8/LCYcBR4FAgWCBAMDAbEFAgICFgI1apZqKiYCBAUBIAUILz9YPxcDFgMFBAIs
AgMCBAAAAQBaAGUBpgHbACIAACUvATY3NjU0Jy4BIyIGBwYVFBcWFw8BBh0BFBYzITI2PQE0AZpQIhYNCgQ
ILB0cLQgECw0WIFMMCwgBJggL6yYQDRwXFw8MHyknHxILGRgaDQ8mBw5bCQ0NCVsPAAAAAQBGAKcBugGZAB
sAAAE0LwEmIyIdAScmIyIdARQzMj8BFRQzMj8BNTYBugXAAgQIkgQCCQkCBJIIAwTABAEgBgJvAghOVAII4
ggCVE4IAm8BAgAAAQCIAJwBeAGlACAAACUWFAcGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhcWFA8BFwFvCQkK
GApEQwoYCggIR0cICAoYCkNEChgKCQlHR9AJGgkICE5OCAgIHAhQUQgcCAgITk4ICAkaCVFQAAAABgAgAGA
B4AHgAAMABwANABMAGQAfAAA3IREhFzMVIyczNSMVMxUjFTM1IwEVMxUzNQMjFTM1I2ABQP7AQMDAYGCAIC
CAYAEgYCAgYIAgoAEAQIDgIICAgCABYCBggP6gIIAAAAQAAQAAAfsCAAAqAE8AaQCAAAAlMhYVFAcGDwEGF
RQfARY7ATc2PwE2OwExMhYVFA8BBisBIg8BJzc2PwEzNSMHBg8BBhUUHwEWMzI/ATMyPwE2NTQmIyIPAic3
PgE1NCYjNyciJiMxIiMPAQYdARQXFhc7ATY3NjUxNTQPAQYiLwEmND8BNjIfATc2MzEyHwEWFAEqCg4DBQo
3EQQGBwwDUQcGWQcJAQoOB3QHD7cJBx1ZcgcLiAMGiBENdgYEYQYHCQQgtxYQdAocFBAMWVEGNw8TGxO0YA
EDAQECAl8HHxwsAQcrHh81QAEGAR4BAQgCBAISNQEDAwEHAu0OCgcFCQIPBREGCAgKCQEFVAcOCgsHcQkHH
1liBQISFxICC2UECgUGYQYGIhBxDRAUHAlUCQgQBBkQFBvcHwEBHwQHQDIpJQ4MJykyQAc5QAEBHQEGAQgC
AhI1AQEIAgQAAAAIAAIAnwH3AWgAHgApAEkAawB+AIIAjwCaAAABNiYnJiMhIyImIyIHIgcGBwYHBhceATM
hMjc2NzY1BSImNT4BMzIWFAY3MhcWFxYGKwEiJicmJyIrASYHFQ4BIyI3Njc+ATc2MxciJicmJy4BBwYdAR
QjBiY9AjQ7ATIXFhcWBwYXFhcWBiQiPQEmJyMGBwYzFh0BFBYzMjcmMjQiBSYHMB0BFDMyNzY3NgcjBgcGF
zAzMicmAfcBIxMHDf7GCAIJAgMCEgkgEwgCAgUIMx0BRREJIxUB/nEdKgEpHR4pKYwJAwghAwIJAwoFAwQD
AgoYCAMECQ8HAwEEBhkGAgyjDwcHCAUCEAMCCA4FCSoHChgDBRQHBA4GAwL+0hACDBAHAwYJCAkODQQoHBw
BKhUBCBADDQICiwICBQUDFAYCBgErEicCAQEBAw0hDBsdExslAQQnAgMTKh0dKSo6KYcIF1cIAwMKDAEBCA
INBAUHCRFAEQqBBQ0QCAQDAwIFHwgBBQ4vNwkCCBUaDgUIGAwGAxYLHg4CAgQIAQgbDQgHThwOAQQPDAgBA
w4UDwURFAEFFQAAAAAMAJYAAQAAAAAAAQAKABYAAQAAAAAAAgAHADEAAQAAAAAAAwAnAIkAAQAAAAAABAAK
AMcAAQAAAAAABQALAOoAAQAAAAAABgAKAQwAAwABBAkAAQAUAAAAAwABBAkAAgAOACEAAwABBAkAAwBOADk
AAwABBAkABAAUALEAAwABBAkABQAWANIAAwABBAkABgAUAPYAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdH
lpY29ucwAAUgBlAGcAdQBsAGEAcgAAUmVndWxhcgAARgBvAG4AdABGAG8AcgBnAGUAIAAyAC4AMAAgADoAI
AB1AG4AaQB0AHkAaQBjAG8AbgBzACAAOgAgADIANgAtADEAMAAtADIAMAAxADgAAEZvbnRGb3JnZSAyLjAg
OiB1bml0eWljb25zIDogMjYtMTAtMjAxOAAAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdHlpY29ucwAAVgB
lAHIAcwBpAG8AbgAgADEALgAwAABWZXJzaW9uIDEuMAAAdQBuAGkAdAB5AGkAYwBvAG4AcwAAdW5pdHlpY2
9ucwAAAAAAAgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAPAAAAAQACAQIBAwEEAQUBBgEHAQgBC
QEKAQsBDAENB2FuZHJvaWQEc3RhcgRpbmZvBnZvbHVtZQt2b2x1bWUtbXV0ZQZyZWxvYWQGcGVyc29uBHNr
aXAFY2xvc2ULc2NyZWVuLWZ1bGwEZ2RwcgdpbmZvLWFyAAAAAAH//wACAAEAAAAOAAAAGAAAAAAAAgABAAM
ADgABAAQAAAACAAAAAAABAAAAAMw9os8AAAAA1/jDcAAAAADX+MNw") format("truetype")}[data-
icon]:before{content:attr(data-icon);font-family:"unityicons" !important}
[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"unityicons"
!important}.icon-android:before{content:"\e000"}.icon-star:before{display:inline-
block;width:1em;content:"\e001"}.icon-info:before{content:"\e002"}.icon-
volume:before{content:"\e003"}.icon-volume-mute:before{content:"\e004"}.icon-
reload:before{content:"\e005"}.icon-person:before{content:"\e006"}.icon-
skip:before{content:"\e007"}.icon-close:before{content:"\e008"}.icon-screen-
full:before{content:"\e009"}.icon-gdpr:before{content:"\e010"}.icon-info-
ar:before{content:"\e011"}.ar-phone-x-top{display:none}.ar-phone-x-
bottom{display:none}.ar-phone-x-left{display:none}.ar-phone-x-
right{display:none}#webplayer-mraid #mraid-
iframe{position:absolute;top:0;left:0;width:100vw;height:100vh;border:none}#webplay
er-mraid .close-region{position:absolute;top:0;right:0;z-
index:9998;width:50px;height:50px;opacity:.4}#webplayer-mraid .icon-
close{position:absolute;top:5px;right:2px;width:32px;height:32px;color:#fff;text-
align:center;text-shadow:2px 2px 20px #7c7c7c;font-size:28px;line-
height:28px}#webplayer-mraid
.close{position:absolute;top:50%;left:8px;width:36px;height:36px;-webkit-
transform:translate(0,-50%);transform:translate(0,-50%)}#webplayer-mraid .progress-
wrapper{position:absolute;clip:rect(0,36px,36px,18px);width:36px;height:36px}#webpl
ayer-mraid
.progress:after{position:absolute;top:50%;left:50%;display:block;color:#fff;font-
size:18px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-
50%)}#webplayer-mraid .circle-base,#webplayer-mraid .circle-left,#webplayer-
mraid .circle-right{position:absolute;width:28px;height:28px;border-
radius:100%;background-color:transparent;vertical-align:middle}#webplayer-mraid
.circle-base{border:4px solid #696969}#webplayer-mraid .circle-left,#webplayer-
mraid .circle-right{clip:rect(0,18px,36px,0);border:4px solid #fff}#webplayer-mraid
.progress-wrapper,#webplayer-mraid .circle-left,#webplayer-mraid .circle-right{-
webkit-animation-iteration-count:1;-webkit-animation-fill-mode:forwards;-webkit-
animation-timing-function:linear;-webkit-animation-duration:.01s}#webplayer-
mraid .gdpr-pop-up{top:0;position:absolute;z-index:100;display:-webkit-
box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-
direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-
ms-flex-align:center;align-items:center;width:100%;background-color:#fafafa;-
webkit-box-shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;}#webplayer-mraid .gdpr-pop-up .gdpr-
text{padding:.5rem;font-size:.5rem}#webplayer-mraid .gdpr-pop-up .icon-
gdpr{margin:0 .5rem;color:#000;opacity:.25}#webplayer-mraid .gdpr-pop-up .gdpr-
text{z-index:110;padding:.5rem .5rem .5rem 0;width:80%;text-
align:center;}#webplayer-mraid .gdpr-pop-up .gdpr-text .gdpr-
link{color:#167dfb}#webplayer-mraid .privacy-
button{position:absolute;position:absolute;bottom:0;z-
index:10;color:#e6e6e6;top:0;left:0;z-index:1;padding:7px 7px 0 5px}#mraid #mraid-
iframe{position:absolute;top:0;left:0;width:100vw;height:100vh;border:none}#mraid .
close-region{position:absolute;top:0;right:0;z-
index:9998;width:50px;height:50px;opacity:.4}#mraid .icon-
close{position:absolute;top:5px;right:2px;width:32px;height:32px;color:#fff;text-
align:center;text-shadow:2px 2px 20px #7c7c7c;font-size:28px;line-
height:28px}#mraid
.close{position:absolute;top:50%;left:8px;width:36px;height:36px;-webkit-
transform:translate(0,-50%);transform:translate(0,-50%)}#mraid .progress-
wrapper{position:absolute;clip:rect(0,36px,36px,18px);width:36px;height:36px}#mraid
.progress:after{position:absolute;top:50%;left:50%;display:block;color:#fff;font-
size:18px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-
50%)}#mraid .circle-base,#mraid .circle-left,#mraid .circle-
right{position:absolute;width:28px;height:28px;border-radius:100%;background-
color:transparent;vertical-align:middle}#mraid .circle-base{border:4px solid
#696969}#mraid .circle-left,#mraid .circle-
right{clip:rect(0,18px,36px,0);border:4px solid #fff}#mraid .progress-
wrapper,#mraid .circle-left,#mraid .circle-right{-webkit-animation-iteration-
count:1;-webkit-animation-fill-mode:forwards;-webkit-animation-timing-
function:linear;-webkit-animation-duration:.01s}#mraid .gdpr-pop-
up{bottom:0;position:absolute;z-index:100;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;width:100%;background-color:#fafafa;-webkit-box-
shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;}#mraid .gdpr-pop-up .gdpr-text{padding:.5rem;font-
size:.5rem}#mraid .gdpr-pop-up .icon-gdpr{margin:0 .
5rem;color:#000;opacity:.25}#mraid .gdpr-pop-up .gdpr-text{z-
index:110;padding:.5rem .5rem .5rem 0;width:80%;text-align:center;}#mraid .gdpr-
pop-up .gdpr-text .gdpr-link{color:#167dfb}#mraid .privacy-
button{position:absolute;position:absolute;bottom:0;z-
index:10;color:#e6e6e6;left:0;z-index:1;padding:7px 7px 0
5px}#moat{position:absolute;width:100vw;height:100vh;}#moat #moat-
iframe{position:absolute;top:0;left:0;display:none;width:100vw;height:100vh;border:
none}.ar-phone-x-top{display:none}.ar-phone-x-bottom{display:none}.ar-phone-x-
left{display:none}.ar-phone-x-right{display:none}#extended-mraid .game-
rating{position:relative;display:inline-block;color:#e6e6e6;vertical-
align:middle;letter-spacing:5px;font-size:20px}#extended-mraid .game-rating-
mask{position:absolute;left:0;overflow:hidden;width:0;height:100%;color:#ff8e00;whi
te-space:nowrap;font-size:inherit}#extended-mraid .game-rating-
count{color:#7c7c7c;font-size:17px}#extended-mraid .game-icon{margin-
bottom:20px;width:75px;height:75px;border-radius:18pt;background-
color:#fff;background-size:cover}#extended-mraid .unityads-
logo{position:absolute;bottom:10px;left:50%;width:68px;height:16px;background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAgCAMAAAD+K8DjAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURQAAAHd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+h
Xd+hXd+hRvg3+0AAAAMdFJOUwDrdiFWuJk7CNEU/sRHFUYAAAJ9SURBVFjD7ZeLcuMwCEUNQiCk///fvQjb
TTbZVGk7k+xMmfFLzyNAIG/br/zH0owrvwMEjTHqSym6qI8U6q8EqTtE3ORrQxSxq2+T9vwggvld2aZW9PF
sDVPY3bVc67KO8hyEMXOtbBiF4SE0/EFjHRi+3mtSoE65bvociMEcnl0KDSo+Hg3AXjtA7jg0D6H6DZDgqP
1cLudt+m/px6OXwx69lNahEdyzuqFgPp3aYYwmzJYgxspLPHLBYVBNC3fJhSk5KooTFyLRMRsyeXQZKKCpx
2wVnRVd5xIKvIWGAqTpID8W9qmT1t25G7pg0Z12p9P5hLm47NsJc6FQHC1cbE6A6h0bfTthIRsUw71LDAOy
3sBlKxz6YeR8x3rKDQhuc2iOyukj4E79TQ9NhqBBkaaKonWMZM4rm9Z2iXlKAvF2A6JJWj5A4tPOPZtWCfs
kzVwQNFJtwUN4/CUJYN5uQfgWJGzTaNcoilR1YgHg3DU645M9CyJPgUQ4OSwDd3aKC5+XIFvhSB2yQAKvk5
BpmgstL4DIoMMyMGcLgS3O+IHNXMrczOQrxnngrLESHvdAPB307O5HBKFwDM5aBMckqLS0ffUf23dubR93Q
UaVRE3HtDPUKlTjURjBpMdXxEzfniLJUGZHQGszI9dr08xcE9FYs0P6k55eYChBtTs5tIQYHE+y7bmQVsMY
Z4iHcVWliZS4ZuaVBodq8TbjthyWETnybovXHkm0xzEAQ+B1LedcBPlIet3HsLWOvNx0Me1FAFCJ3LUfA9Y
ONP7J0eVLMjeyyucHo8s0D6W3nwbZj4r0naPiz0jJE/ykKdtrpb/F78T5V/EGP1i/8jL5A9oqHSWefc3yAA
AAAElFTkSuQmCC");background-position:center;background-size:cover;-webkit-
transform:translate(-50%,0);transform:translate(-50%,0)}#extended-mraid .name-
container{overflow:hidden;color:#000;text-overflow:ellipsis;font-
size:17pt}#extended-mraid #mraid-
iframe{position:absolute;top:0;left:0;width:100vw;height:100vh;border:none}#extende
d-mraid .close-region{position:absolute;top:0;right:0;z-
index:9998;width:50px;height:50px;opacity:.4;display:none}#extended-mraid .icon-
close{position:absolute;top:4px;right:2px;width:32px;height:32px;color:#fff;text-
align:center;text-shadow:2px 2px 20px #7c7c7c;font-size:28px;line-
height:28px}#extended-mraid
.close{position:absolute;top:50%;left:8px;width:36px;height:36px;-webkit-
transform:translate(0,-50%);transform:translate(0,-50%)}#extended-mraid .progress-
wrapper{position:absolute;clip:rect(0,36px,36px,18px);width:36px;height:36px}#exten
ded-mraid
.progress:after{position:absolute;top:50%;left:50%;display:block;color:#fff;font-
size:18px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-
50%)}#extended-mraid .circle-base,#extended-mraid .circle-left,#extended-mraid
.circle-right{position:absolute;width:28px;height:28px;border-
radius:100%;background-color:transparent;vertical-align:middle}#extended-mraid
.circle-base{border:4px solid #696969}#extended-mraid .circle-left,#extended-
mraid .circle-right{clip:rect(0,18px,36px,0);border:4px solid #fff}#extended-
mraid .progress-wrapper,#extended-mraid .circle-left,#extended-mraid .circle-
right{-webkit-animation-duration:.01s;animation-duration:.01s;-webkit-animation-
iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-
mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-
function:linear;animation-timing-function:linear}#extended-mraid .gdpr-pop-
up{bottom:0;position:absolute;z-index:100;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;width:100%;background-color:#fafafa;-webkit-box-
shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;}#extended-mraid .gdpr-pop-up .gdpr-
text{padding:.5rem;font-size:.5rem}#extended-mraid .gdpr-pop-up .icon-gdpr{margin:0
.5rem;color:#000;opacity:.25}#extended-mraid .gdpr-pop-up .gdpr-text{z-
index:110;padding:.5rem .5rem .5rem 0;width:80%;text-align:center;}#extended-
mraid .gdpr-pop-up .gdpr-text .gdpr-link{color:#167dfb}#extended-mraid .gdpr-pop-
up.mraid-container{top:100vw;bottom:inherit;z-index:109}#extended-mraid .privacy-
button{position:absolute;bottom:0;z-index:10;color:#e6e6e6;left:0;margin:0 0 0 .
25rem}#extended-mraid .loading-screen{position:absolute;top:0;left:0;z-
index:100;display:none;width:100vw;height:100vh;background-color:#fff;opaci
ty:1;}#extended-mraid .loading-screen.hidden{opacity:0;-webkit-transition:opacity
200ms ease-out;transition:opacity 200ms ease-out;pointer-events:none}#extended-
mraid .loading-screen
.container{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-
box;display:-ms-flexbox;display:flex;margin:auto;-webkit-box-orient:vertical;-
webkit-box-direction:normal;-webkit-box-pack:center;-webkit-box-align:center;-ms-
flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-
content:center;}#extended-mraid .loading-screen .container .user-text,#extended-
mraid .loading-screen .container .game-icon,#extended-mraid .loading-screen
.container .store-container,#extended-mraid .loading-screen .container .name-
container,#extended-mraid .loading-screen .container .progress-bar{-ms-flex-item-
align:center;align-self:center;margin:10px}#extended-mraid .loading-screen
.container .user-text,#extended-mraid .loading-screen .container .name-
container{text-align:center}#extended-mraid .loading-screen .user-
text{color:#000;font-weight:300;font-size:14.5pt}#extended-mraid .loading-screen
.progress-bar{overflow:hidden;width:60%;height:3pt;background-
color:#e6e6e6;}#extended-mraid .loading-screen .progress-bar
.filling{position:relative;left:0;display:block;width:18%;height:5pt;background-
color:#167dfb;-webkit-backface-visibility:hidden;backface-visibility:hidden;-
webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-
animation:progress-bar-dynamic 1s linear infinite;animation:progress-bar-dynamic 1s
linear infinite;will-change:left}@media screen and (min-height:568px){.loading-
screen .game-icon{width:96px;height:96px}}@media screen and (max-height:240px)
{.loading-screen .container > div{margin:3px}.loading-screen .name-container{font-
size:12pt}.loading-screen .game-rating{font-size:10pt}.loading-screen .user-
text{font-size:10.5pt}}@media screen and (min-height:768px) and (min-
width:1024px),screen and (min-height:1024px) and (min-width:768px){.loading-
screen .user-text{font-size:18.5pt}.loading-screen .game-
icon{width:150px;height:150px}.loading-screen .progress-bar{width:48%}.loading-
screen .game-rating{font-size:20pt}.loading-screen .name-container{font-
size:30pt}.loading-screen .unityads-logo{bottom:20px;width:136px;height:32px}}@-
webkit-keyframes progress-bar-dynamic{0%{left:-18%}30%{left:46%}32%{left:44%}35%
{left:35%}37%{left:38%}42%{left:42%}45%,60%,70%,80%{left:41%}90%{left:80%}100%
{left:100%}}@keyframes progress-bar-dynamic{0%{left:-18%}30%{left:46%}32%
{left:44%}35%{left:35%}37%{left:38%}42%{left:42%}45%,60%,70%,80%{left:41%}90%
{left:80%}100%{left:100%}}@-webkit-keyframes progress-bar-dynamic{0%{left:-18%}30%
{left:46%}32%{left:44%}35%{left:35%}37%{left:38%}42%{left:42%}45%,60%,70%,80%
{left:41%}90%{left:80%}100%{left:100%}}@keyframes progress-bar-dynamic{0%{left:-
18%}30%{left:46%}32%{left:44%}35%{left:35%}37%{left:38%}42%
{left:42%}45%,60%,70%,80%{left:41%}90%{left:80%}100%{left:100%}}.ar-phone-x-
top{display:none}.ar-phone-x-bottom{display:none}.ar-phone-x-left{display:none}.ar-
phone-x-right{display:none}@media (min-width:1025px){html{font-size:43.2px}}@media
only screen and (device-width:375px) and (device-height:812px) and (-webkit-device-
pixel-ratio:3){html #gdpr-consent-settings .safe-area-content{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);padding-top:env(safe-area-inset-top);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-
inset-left)}html #promo .privacy-button{padding-top:constant(safe-area-inset-
top);padding-left:constant(safe-area-inset-left);padding-top:env(safe-area-inset-
top);padding-left:env(safe-area-inset-left)}html #promo .gdpr-pop-
up{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #webplayer-mraid #mraid-iframe{padding-top:constant(safe-area-inset-
top);padding-right:constant(safe-area-inset-right);padding-bottom:constant(safe-
area-inset-bottom);padding-left:constant(safe-area-inset-left);width:calc(100vw -
constant(safe-area-inset-left) - constant(safe-area-inset-right));height:calc(100vh
- constant(safe-area-inset-top) - constant(safe-area-inset-bottom));padding-
top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-
bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-
bottom))}html #webplayer-mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #webplayer-mraid
.ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#webplayer-mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #webplayer-
mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #webplayer-
mraid .close-region{top:constant(safe-area-inset-top);right:constant(safe-area-
inset-right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#webplayer-mraid .camera-permission-panel .gdpr-link{bottom:calc(0.5rem +
constant(safe-area-inset-bottom));bottom:calc(0.5rem + env(safe-area-inset-
bottom))}html #webplayer-mraid .camera-permission-panel .show-learn-more-
button{bottom:calc(-0.5rem + constant(safe-area-inset-bottom));bottom:calc(-0.5rem
+ env(safe-area-inset-bottom))}html #webplayer-mraid .privacy-
button{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html #webplayer-
mraid .gdpr-pop-up{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));top:env(safe-area-inset-top);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #extended-mraid #mraid-iframe,html #mraid #mraid-iframe{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-
area-inset-right));height:calc(100vh - constant(safe-area-inset-top) -
constant(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100vh - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}html #extended-mraid .ar-phone-x-top,html
#mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #extended-mraid
.ar-phone-x-bottom,html #mraid .ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#extended-mraid .ar-phone-x-left,html #mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #extended-
mraid .ar-phone-x-right,html #mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #extended-
mraid .close-region,html #mraid .close-region{top:constant(safe-area-inset-
top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #extended-mraid .camera-permission-panel
.gdpr-link,html #mraid .camera-permission-panel .gdpr-link{bottom:calc(0.5rem +
constant(safe-area-inset-bottom));bottom:calc(0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .camera-permission-panel .show-learn-more-button,html
#mraid .camera-permission-panel .show-learn-more-button{bottom:calc(-0.5rem +
constant(safe-area-inset-bottom));bottom:calc(-0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .privacy-button,html #mraid .privacy-
button{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left)}html
#extended-mraid .gdpr-pop-up,html #mraid .gdpr-pop-up{bottom:constant(safe-area-
inset-bottom);left:constant(safe-area-inset-left);width:calc(100vw - constant(safe-
area-inset-left) - constant(safe-area-inset-right));bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-inset-left)
- env(safe-area-inset-right))}html .landscape #extended-mraid .gdpr-pop-up.mraid-
container{top:inherit;bottom:0;width:calc(50vw - env(safe-area-inset-left))}html
.landscape #extended-mraid .camera-permission-panel .show-learn-more-
button{right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}html
#admob #admob-iframe{padding-top:constant(safe-area-inset-top);padding-
right:constant(safe-area-inset-right);padding-bottom:constant(safe-area-inset-
bottom);padding-left:constant(safe-area-inset-left);width:calc(100vw -
constant(safe-area-inset-left) - constant(safe-area-inset-right));height:calc(100vh
- constant(safe-area-inset-top) - constant(safe-area-inset-bottom));padding-
top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-
bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-
bottom))}html #admob .privacy-button{padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom)}html #admob .gdpr-pop-
up{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #end-screen,html #vast-end-screen{padding-top:constant(safe-area-
inset-top);padding-right:constant(safe-area-inset-right);padding-
bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-area-inset-
left);width:calc(100% - constant(safe-area-inset-left) - constant(safe-area-inset-
right));height:calc(100% - constant(safe-area-inset-top) - constant(safe-area-
inset-bottom));padding-top:env(safe-area-inset-top);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-
inset-left);width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-
bottom));}html #end-screen .btn-close-region,html #vast-end-screen .btn-close-
region{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html #vast-
end-screen .china-advertisement{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left)}html #vast-end-screen .privacy-
button{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left)}html
#display-interstitial .close-region,html #closable-video-overlay .close-
region{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#overlay,html #closable-video-overlay{position:absolute;top:constant(safe-area-
inset-top);left:constant(safe-area-inset-left);width:calc(100% - constant(safe-
area-inset-left) - constant(safe-area-inset-right));height:calc(100% -
constant(safe-area-inset-top) - constant(safe-area-inset-bottom));top:env(safe-
area-inset-top);left:env(safe-area-inset-left);width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom));}html #overlay .skip-hit-area,html #closable-
video-overlay .skip-hit-area{top:constant(safe-area-inset-top);left:constant(safe-
area-inset-left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html
#overlay .progress,html #closable-video-overlay .progress{top:constant(safe-area-
inset-top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #overlay .mute-button,html #closable-
video-overlay .mute-button{bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left)}html #overlay .call-button,html #closable-
video-overlay .call-button{right:constant(safe-area-inset-
right);bottom:constant(safe-area-inset-bottom);right:env(safe-area-inset-
right);bottom:env(safe-area-inset-bottom)}html .slide-up{-webkit-
transform:translateY(-250%);transform:translateY(-250%);-webkit-transition:-webkit-
transform .4s ease-in;transition:-webkit-transform .4s ease-in;transition:transform
.4s ease-in;transition:transform .4s ease-in, -webkit-transform .4s ease-in}html
.slide-down{-webkit-transform:translateY(250%);transform:translateY(250%);-webkit-
transition:-webkit-transform .4s ease-in;transition:-webkit-transform .4s ease-
in;transition:transform .4s ease-in;transition:transform .4s ease-in, -webkit-
transform .4s ease-in}html #privacy{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left);width:calc(100% - constant(safe-area-inset-
left) - constant(safe-area-inset-right));height:calc(100% - constant(safe-area-
inset-top) - constant(safe-area-inset-bottom));width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}.performance-end-screen .portrait #end-
screen{padding:0;padding-top:env(safe-area-inset-top);padding-top:constant(safe-
area-inset-top);width:100vw;height:calc(100vh - env(safe-area-inset-
top));height:calc(100vh - constant(safe-area-inset-top));}.performance-end-
screen .portrait #end-screen .bottom-container{margin-bottom:env(safe-area-inset-
bottom);margin-bottom:constant(safe-area-inset-bottom)}.performance-end-screen
.landscape #end-screen{padding:0;height:100vh;}.performance-end-screen .landscape
#end-screen .china-advertisement{right:auto;left:0;margin-right:0;margin-
left:1em}.performance-end-screen .landscape #end-screen .bottom-container{margin-
bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-
bottom);}.performance-end-screen .landscape #end-screen .bottom-container .privacy-
button{right:0;left:auto;margin-right:1em;margin-left:0}.performance-end-screen
.landscape #end-screen.show-gdpr-banner .gdpr-pop-up{padding-bottom:constant(safe-
area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);}.performance-end-
screen .landscape #end-screen.show-gdpr-banner .gdpr-pop-up .gdpr-text{padding-
bottom:0}.performance-end-screen .ios-landscape-right #end-screen{padding-
right:env(safe-area-inset-right);padding-right:constant(safe-area-inset-
right);width:calc(100vw - env(safe-area-inset-right));width:calc(100vw -
constant(safe-area-inset-right))}.performance-end-screen .ios-landscape-left #end-
screen{padding-left:env(safe-area-inset-left);padding-left:constant(safe-area-
inset-left);width:calc(100vw - env(safe-area-inset-left));width:calc(100vw -
constant(safe-area-inset-left));}.performance-end-screen .ios-landscape-left #end-
screen .bottom-container .privacy-button{right:env(safe-area-inset-
right);right:constant(safe-area-inset-right)}.performance-end-screen
#privacy{height:calc(100% - constant(safe-area-inset-top));height:calc(100% -
env(safe-area-inset-top));}.performance-end-screen #privacy .pop-up{margin:5% auto
5% auto}.performance-end-screen .landscape #privacy{height:100%}.performance-end-
screen .ios-landscape-right #privacy{left:0;width:calc(100% - env(safe-area-inset-
left))}.performance-end-screen .ios-landscape-left #privacy{width:calc(100% -
env(safe-area-inset-right))}@media only screen and (device-width:375px) and
(device-height:812px) and (-webkit-device-pixel-ratio:3) and (orientation:portrait)
and (device-width:375px) and (device-height:812px) and (-webkit-device-pixel-
ratio:3){.performance-end-screen #end-screen .end-screen-info-background{font-
size:24px}}}@media only screen and (device-width:414px) and (device-height:896px)
and (-webkit-device-pixel-ratio:3){html #gdpr-consent-settings .safe-area-
content{padding-top:constant(safe-area-inset-top);padding-right:constant(safe-area-
inset-right);padding-bottom:constant(safe-area-inset-bottom);padding-
left:constant(safe-area-inset-left);padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left)}html #promo .privacy-button{padding-
top:constant(safe-area-inset-top);padding-left:constant(safe-area-inset-
left);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-
left)}html #promo .gdpr-pop-up{bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);width:calc(100vw - constant(safe-area-
inset-left) - constant(safe-area-inset-right));bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-inset-left)
- env(safe-area-inset-right))}html #webplayer-mraid #mraid-iframe{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-
area-inset-right));height:calc(100vh - constant(safe-area-inset-top) -
constant(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100vh - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}html #webplayer-mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #webplayer-mraid
.ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#webplayer-mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #webplayer-
mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #webplayer-
mraid .close-region{top:constant(safe-area-inset-top);right:constant(safe-area-
inset-right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#webplayer-mraid .camera-permission-panel
.gdpr-link{bottom:calc(0.5rem + constant(safe-area-inset-
bottom));bottom:calc(0.5rem + env(safe-area-inset-bottom))}html #webplayer-mraid
.camera-permission-panel .show-learn-more-button{bottom:calc(-0.5rem +
constant(safe-area-inset-bottom));bottom:calc(-0.5rem + env(safe-area-inset-
bottom))}html #webplayer-mraid .privacy-button{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left)}html #webplayer-mraid .gdpr-pop-
up{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));top:env(safe-area-inset-top);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #extended-mraid #mraid-iframe,html #mraid #mraid-iframe{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-
area-inset-right));height:calc(100vh - constant(safe-area-inset-top) -
constant(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100vh - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}html #extended-mraid .ar-phone-x-top,html
#mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #extended-mraid
.ar-phone-x-bottom,html #mraid .ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#extended-mraid .ar-phone-x-left,html #mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #extended-
mraid .ar-phone-x-right,html #mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #extended-
mraid .close-region,html #mraid .close-region{top:constant(safe-area-inset-
top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #extended-mraid .camera-permission-panel
.gdpr-link,html #mraid .camera-permission-panel .gdpr-link{bottom:calc(0.5rem +
constant(safe-area-inset-bottom));bottom:calc(0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .camera-permission-panel .show-learn-more-button,html
#mraid .camera-permission-panel .show-learn-more-button{bottom:calc(-0.5rem +
constant(safe-area-inset-bottom));bottom:calc(-0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .privacy-button,html #mraid .privacy-
button{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left)}html
#extended-mraid .gdpr-pop-up,html #mraid .gdpr-pop-up{bottom:constant(safe-area-
inset-bottom);left:constant(safe-area-inset-left);width:calc(100vw - constant(safe-
area-inset-left) - constant(safe-area-inset-right));bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-inset-left)
- env(safe-area-inset-right))}html .landscape #extended-mraid .gdpr-pop-up.mraid-
container{top:inherit;bottom:0;width:calc(50vw - env(safe-area-inset-left))}html
.landscape #extended-mraid .camera-permission-panel .show-learn-more-
button{right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}html
#admob #admob-iframe{padding-top:constant(safe-area-inset-top);padding-
right:constant(safe-area-inset-right);padding-bottom:constant(safe-area-inset-
bottom);padding-left:constant(safe-area-inset-left);width:calc(100vw -
constant(safe-area-inset-left) - constant(safe-area-inset-right));height:calc(100vh
- constant(safe-area-inset-top) - constant(safe-area-inset-bottom));padding-
top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-
bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-
bottom))}html #admob .privacy-button{padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom)}html #admob .gdpr-pop-
up{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #end-screen,html #vast-end-screen{padding-top:constant(safe-area-
inset-top);padding-right:constant(safe-area-inset-right);padding-
bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-area-inset-
left);width:calc(100% - constant(safe-area-inset-left) - constant(safe-area-inset-
right));height:calc(100% - constant(safe-area-inset-top) - constant(safe-area-
inset-bottom));padding-top:env(safe-area-inset-top);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-
inset-left);width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-
bottom));}html #end-screen .btn-close-region,html #vast-end-screen .btn-close-
region{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html #vast-
end-screen .china-advertisement{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left)}html #vast-end-screen .privacy-
button{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left)}html
#display-interstitial .close-region,html #closable-video-overlay .close-
region{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#overlay,html #closable-video-overlay{position:absolute;top:constant(safe-area-
inset-top);left:constant(safe-area-inset-left);width:calc(100% - constant(safe-
area-inset-left) - constant(safe-area-inset-right));height:calc(100% -
constant(safe-area-inset-top) - constant(safe-area-inset-bottom));top:env(safe-
area-inset-top);left:env(safe-area-inset-left);width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom));}html #overlay .skip-hit-area,html #closable-
video-overlay .skip-hit-area{top:constant(safe-area-inset-top);left:constant(safe-
area-inset-left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html
#overlay .progress,html #closable-video-overlay .progress{top:constant(safe-area-
inset-top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #overlay .mute-button,html #closable-
video-overlay .mute-button{bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left)}html #overlay .call-button,html #closable-
video-overlay .call-button{right:constant(safe-area-inset-
right);bottom:constant(safe-area-inset-bottom);right:env(safe-area-inset-
right);bottom:env(safe-area-inset-bottom)}html .slide-up{-webkit-
transform:translateY(-250%);transform:translateY(-250%);-webkit-transition:-webkit-
transform .4s ease-in;transition:-webkit-transform .4s ease-in;transition:transform
.4s ease-in;transition:transform .4s ease-in, -webkit-transform .4s ease-in}html
.slide-down{-webkit-transform:translateY(250%);transform:translateY(250%);-webkit-
transition:-webkit-transform .4s ease-in;transition:-webkit-transform .4s ease-
in;transition:transform .4s ease-in;transition:transform .4s ease-in, -webkit-
transform .4s ease-in}html #privacy{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left);width:calc(100% - constant(safe-area-inset-
left) - constant(safe-area-inset-right));height:calc(100% - constant(safe-area-
inset-top) - constant(safe-area-inset-bottom));width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}.performance-end-screen .portrait #end-
screen{padding:0;padding-top:env(safe-area-inset-top);padding-top:constant(safe-
area-inset-top);width:100vw;height:calc(100vh - env(safe-area-inset-
top));height:calc(100vh - constant(safe-area-inset-top));}.performance-end-
screen .portrait #end-screen .bottom-container{margin-bottom:env(safe-area-inset-
bottom);margin-bottom:constant(safe-area-inset-bottom)}.performance-end-screen
.landscape #end-screen{padding:0;height:100vh;}.performance-end-screen .landscape
#end-screen .china-advertisement{right:auto;left:0;margin-right:0;margin-
left:1em}.performance-end-screen .landscape #end-screen .bottom-container{margin-
bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-
bottom);}.performance-end-screen .landscape #end-screen .bottom-container .privacy-
button{right:0;left:auto;margin-right:1em;margin-left:0}.performance-end-screen
.landscape #end-screen.show-gdpr-banner .gdpr-pop-up{padding-bottom:constant(safe-
area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);}.performance-end-
screen
.landscape #end-screen.show-gdpr-banner .gdpr-pop-up .gdpr-text{padding-
bottom:0}.performance-end-screen .ios-landscape-right #end-screen{padding-
right:env(safe-area-inset-right);padding-right:constant(safe-area-inset-
right);width:calc(100vw - env(safe-area-inset-right));width:calc(100vw -
constant(safe-area-inset-right))}.performance-end-screen .ios-landscape-left #end-
screen{padding-left:env(safe-area-inset-left);padding-left:constant(safe-area-
inset-left);width:calc(100vw - env(safe-area-inset-left));width:calc(100vw -
constant(safe-area-inset-left));}.performance-end-screen .ios-landscape-left #end-
screen .bottom-container .privacy-button{right:env(safe-area-inset-
right);right:constant(safe-area-inset-right)}.performance-end-screen
#privacy{height:calc(100% - constant(safe-area-inset-top));height:calc(100% -
env(safe-area-inset-top));}.performance-end-screen #privacy .pop-up{margin:5% auto
5% auto}.performance-end-screen .landscape #privacy{height:100%}.performance-end-
screen .ios-landscape-right #privacy{left:0;width:calc(100% - env(safe-area-inset-
left))}.performance-end-screen .ios-landscape-left #privacy{width:calc(100% -
env(safe-area-inset-right))}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:3) and (orientation:portrait)
and (device-width:375px) and (device-height:812px) and (-webkit-device-pixel-
ratio:3){.performance-end-screen #end-screen .end-screen-info-background{font-
size:24px}}}@media only screen and (device-width:414px) and (device-height:896px)
and (-webkit-device-pixel-ratio:2){html #gdpr-consent-settings .safe-area-
content{padding-top:constant(safe-area-inset-top);padding-right:constant(safe-area-
inset-right);padding-bottom:constant(safe-area-inset-bottom);padding-
left:constant(safe-area-inset-left);padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left)}html #promo .privacy-button{padding-
top:constant(safe-area-inset-top);padding-left:constant(safe-area-inset-
left);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-
left)}html #promo .gdpr-pop-up{bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);width:calc(100vw - constant(safe-area-
inset-left) - constant(safe-area-inset-right));bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-inset-left)
- env(safe-area-inset-right))}html #webplayer-mraid #mraid-iframe{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-
area-inset-right));height:calc(100vh - constant(safe-area-inset-top) -
constant(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100vh - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}html #webplayer-mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #webplayer-mraid
.ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#webplayer-mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #webplayer-
mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #webplayer-
mraid .close-region{top:constant(safe-area-inset-top);right:constant(safe-area-
inset-right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#webplayer-mraid .camera-permission-panel .gdpr-link{bottom:calc(0.5rem +
constant(safe-area-inset-bottom));bottom:calc(0.5rem + env(safe-area-inset-
bottom))}html #webplayer-mraid .camera-permission-panel .show-learn-more-
button{bottom:calc(-0.5rem + constant(safe-area-inset-bottom));bottom:calc(-0.5rem
+ env(safe-area-inset-bottom))}html #webplayer-mraid .privacy-
button{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html #webplayer-
mraid .gdpr-pop-up{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));top:env(safe-area-inset-top);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #extended-mraid #mraid-iframe,html #mraid #mraid-iframe{padding-
top:constant(safe-area-inset-top);padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-
area-inset-left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-
area-inset-right));height:calc(100vh - constant(safe-area-inset-top) -
constant(safe-area-inset-bottom));padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-
bottom);padding-left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100vh - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}html #extended-mraid .ar-phone-x-top,html
#mraid .ar-phone-x-
top{position:fixed;top:0;left:0;display:block;width:100%;background:#000;height:env
(safe-area-inset-top);height:constant(safe-area-inset-top)}html #extended-mraid
.ar-phone-x-bottom,html #mraid .ar-phone-x-
bottom{position:fixed;bottom:0;left:0;display:block;width:100%;background:#000;heig
ht:env(safe-area-inset-bottom);height:constant(safe-area-inset-bottom)}html
#extended-mraid .ar-phone-x-left,html #mraid .ar-phone-x-
left{position:fixed;top:0;left:0;display:block;height:100%;background:#000;width:en
v(safe-area-inset-left);width:constant(safe-area-inset-left)}html #extended-
mraid .ar-phone-x-right,html #mraid .ar-phone-x-
right{position:fixed;top:0;right:0;display:block;height:100%;background:#000;width:
env(safe-area-inset-right);width:constant(safe-area-inset-right)}html #extended-
mraid .close-region,html #mraid .close-region{top:constant(safe-area-inset-
top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #extended-mraid .camera-permission-panel
.gdpr-link,html #mraid .camera-permission-panel .gdpr-link{bottom:calc(0.5rem +
constant(safe-area-inset-bottom));bottom:calc(0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .camera-permission-panel .show-learn-more-button,html
#mraid .camera-permission-panel .show-learn-more-button{bottom:calc(-0.5rem +
constant(safe-area-inset-bottom));bottom:calc(-0.5rem + env(safe-area-inset-
bottom))}html #extended-mraid .privacy-button,html #mraid .privacy-
button{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left)}html
#extended-mraid .gdpr-pop-up,html #mraid .gdpr-pop-up{bottom:constant(safe-area-
inset-bottom);left:constant(safe-area-inset-left);width:calc(100vw - constant(safe-
area-inset-left) - constant(safe-area-inset-right));bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);width:calc(100vw - env(safe-area-inset-left)
- env(safe-area-inset-right))}html .landscape #extended-mraid .gdpr-pop-up.mraid-
container{top:inherit;bottom:0;width:calc(50vw - env(safe-area-inset-left))}html
.landscape #extended-mraid .camera-permission-panel .show-learn-more-
button{right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}html
#admob #admob-iframe{padding-top:constant(safe-area-inset-top);padding-
right:constant(safe-area-inset-right);padding-bottom:constant(safe-area-inset-
bottom);padding-left:constant(safe-area-inset-left);width:calc(100vw -
constant(safe-area-inset-left) - constant(safe-area-inset-right));height:calc(100vh
- constant(safe-area-inset-top) - constant(safe-area-inset-bottom));padding-
top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-
bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-
bottom))}html #admob .privacy-button{padding-right:constant(safe-area-inset-
right);padding-bottom:constant(safe-area-inset-bottom);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom)}html #admob .gdpr-pop-
up{bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);width:calc(100vw - constant(safe-area-inset-left) - constant(safe-area-inset-
right));bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-
right))}html #end-screen,html #vast-end-screen{padding-top:constant(safe-area-
inset-top);padding-right:constant(safe-area-inset-right);padding-
bottom:constant(safe-area-inset-bottom);padding-left:constant(safe-area-inset-
left);width:calc(100% - constant(safe-area-inset-left) - constant(safe-area-inset-
right));height:calc(100% - constant(safe-area-inset-top) - constant(safe-area-
inset-bottom));padding-top:env(safe-area-inset-top);padding-right:env(safe-area-
inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-
inset-left);width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-
right));height:calc(100% - env(safe-area-inset-top) - env(safe-area-inset-
bottom));}html #end-screen .btn-close-region,html
#vast-end-screen .btn-close-region{top:constant(safe-area-inset-
top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #vast-end-screen .china-
advertisement{top:constant(safe-area-inset-top);left:constant(safe-area-inset-
left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html #vast-end-
screen .privacy-button{bottom:constant(safe-area-inset-bottom);left:constant(safe-
area-inset-left);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left)}html #display-interstitial .close-region,html #closable-video-overlay .close-
region{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);top:env(safe-area-inset-top);right:env(safe-area-inset-right)}html
#overlay,html #closable-video-overlay{position:absolute;top:constant(safe-area-
inset-top);left:constant(safe-area-inset-left);width:calc(100% - constant(safe-
area-inset-left) - constant(safe-area-inset-right));height:calc(100% -
constant(safe-area-inset-top) - constant(safe-area-inset-bottom));top:env(safe-
area-inset-top);left:env(safe-area-inset-left);width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom));}html #overlay .skip-hit-area,html #closable-
video-overlay .skip-hit-area{top:constant(safe-area-inset-top);left:constant(safe-
area-inset-left);top:env(safe-area-inset-top);left:env(safe-area-inset-left)}html
#overlay .progress,html #closable-video-overlay .progress{top:constant(safe-area-
inset-top);right:constant(safe-area-inset-right);top:env(safe-area-inset-
top);right:env(safe-area-inset-right)}html #overlay .mute-button,html #closable-
video-overlay .mute-button{bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left)}html #overlay .call-button,html #closable-
video-overlay .call-button{right:constant(safe-area-inset-
right);bottom:constant(safe-area-inset-bottom);right:env(safe-area-inset-
right);bottom:env(safe-area-inset-bottom)}html .slide-up{-webkit-
transform:translateY(-250%);transform:translateY(-250%);-webkit-transition:-webkit-
transform .4s ease-in;transition:-webkit-transform .4s ease-in;transition:transform
.4s ease-in;transition:transform .4s ease-in, -webkit-transform .4s ease-in}html
.slide-down{-webkit-transform:translateY(250%);transform:translateY(250%);-webkit-
transition:-webkit-transform .4s ease-in;transition:-webkit-transform .4s ease-
in;transition:transform .4s ease-in;transition:transform .4s ease-in, -webkit-
transform .4s ease-in}html #privacy{top:constant(safe-area-inset-
top);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);left:env(safe-area-inset-left);width:calc(100% - constant(safe-area-inset-
left) - constant(safe-area-inset-right));height:calc(100% - constant(safe-area-
inset-top) - constant(safe-area-inset-bottom));width:calc(100% - env(safe-area-
inset-left) - env(safe-area-inset-right));height:calc(100% - env(safe-area-inset-
top) - env(safe-area-inset-bottom))}.performance-end-screen .portrait #end-
screen{padding:0;padding-top:env(safe-area-inset-top);padding-top:constant(safe-
area-inset-top);width:100vw;height:calc(100vh - env(safe-area-inset-
top));height:calc(100vh - constant(safe-area-inset-top));}.performance-end-
screen .portrait #end-screen .bottom-container{margin-bottom:env(safe-area-inset-
bottom);margin-bottom:constant(safe-area-inset-bottom)}.performance-end-screen
.landscape #end-screen{padding:0;height:100vh;}.performance-end-screen .landscape
#end-screen .china-advertisement{right:auto;left:0;margin-right:0;margin-
left:1em}.performance-end-screen .landscape #end-screen .bottom-container{margin-
bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-
bottom);}.performance-end-screen .landscape #end-screen .bottom-container .privacy-
button{right:0;left:auto;margin-right:1em;margin-left:0}.performance-end-screen
.landscape #end-screen.show-gdpr-banner .gdpr-pop-up{padding-bottom:constant(safe-
area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);}.performance-end-
screen .landscape #end-screen.show-gdpr-banner .gdpr-pop-up .gdpr-text{padding-
bottom:0}.performance-end-screen .ios-landscape-right #end-screen{padding-
right:env(safe-area-inset-right);padding-right:constant(safe-area-inset-
right);width:calc(100vw - env(safe-area-inset-right));width:calc(100vw -
constant(safe-area-inset-right))}.performance-end-screen .ios-landscape-left #end-
screen{padding-left:env(safe-area-inset-left);padding-left:constant(safe-area-
inset-left);width:calc(100vw - env(safe-area-inset-left));width:calc(100vw -
constant(safe-area-inset-left));}.performance-end-screen .ios-landscape-left #end-
screen .bottom-container .privacy-button{right:env(safe-area-inset-
right);right:constant(safe-area-inset-right)}.performance-end-screen
#privacy{height:calc(100% - constant(safe-area-inset-top));height:calc(100% -
env(safe-area-inset-top));}.performance-end-screen #privacy .pop-up{margin:5% auto
5% auto}.performance-end-screen .landscape #privacy{height:100%}.performance-end-
screen .ios-landscape-right #privacy{left:0;width:calc(100% - env(safe-area-inset-
left))}.performance-end-screen .ios-landscape-left #privacy{width:calc(100% -
env(safe-area-inset-right))}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:2) and (orientation:portrait)
and (device-width:375px) and (device-height:812px) and (-webkit-device-pixel-
ratio:3){.performance-end-screen #end-screen .end-screen-info-background{font-
size:24px}}}@media (orientation:portrait) and (min-width:960px) and (max-
width:1024px){html{font-size:40px}}@media (orientation:portrait) and (min-
width:801px) and (max-width:959px){html{font-size:38.4px}}@media
(orientation:portrait) and (min-width:769px) and (max-width:800px){html{font-
size:35.2px}}@media (orientation:portrait) and (min-width:569px) and (max-
width:768px){html{font-size:32px}}@media (orientation:portrait) and (min-
width:481px) and (max-width:568px){html{font-size:22.4px}}@media
(orientation:portrait) and (min-width:414px) and (max-width:480px){html{font-
size:20.8px}}@media (orientation:portrait) and (min-width:360px) and (max-
width:413px){html{font-size:19.2px}}@media (orientation:portrait) and (min-
width:321px) and (max-width:359px){html{font-size:16px}}@media only screen and
(orientation:portrait) and (device-width:375px) and (device-height:812px) and (-
webkit-device-pixel-ratio:3){html{font-size:20px}}@media (orientation:landscape)
and (min-width:960px) and (max-width:1024px){html{font-size:32px}}@media
(orientation:landscape) and (min-width:569px) and (max-width:768px){html{font-
size:20px}}@media only screen and (orientation:landscape) and (device-width:375px)
and (device-height:812px) and (-webkit-device-pixel-ratio:3){html{font-
size:20px}}.loading-container{position:absolute;top:50%;left:50%;margin-right:-
50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-
50%);}.loading-container .spinner-animation{margin:0
auto;width:24px;height:24px;border:4px solid #fff;border-right-
color:transparent;border-left-color:transparent;border-radius:200px;-webkit-
animation:spinner 1s linear infinite;animation:spinner 1s linear infinite}.loading-
container .spinner-text{margin-top:10px;color:#fff;text-align:center;text-
shadow:1px 1px #000;font-weight:bold}@font-face{font-
family:"unityicons";src:url("data:application/x-font-
ttf;base64,AAEAAAANAIAAAwBQRkZUTXwvKbAAAA7MAAAAHEdERUYAPAAGAAAOrAAAACBPUy8yL5pMbQAA
AVgAAABWY21hcOAn4+QAAAHYAAABUmdhc3D//wADAAAOpAAAAAhnbHlmHRlyIwAAA0wAAAkQaGVhZBELx/Q
AAADcAAAANmhoZWEEQQIFAAABFAAAACRobXR4Bu8BYAAAAbAAAAAmbG9jYQyUDqwAAAMsAAAAIG1heHAAWQ
CeAAABOAAAACBuYW1lYcLKkQAADFwAAAGtcG9zdDwkND0AAA4MAAAAlwABAAAAAQAAz/3xuF8PPPUACwIAA
AAAANf4w3AAAAAA1/jDcAABAAAB+wIXAAAACAACAAAAAAAAAAEAAAIXAAAALgIAAAAAAAH7AAEAAAAAAAAA
AAAAAAAAAAAEAAEAAAAPAJsACAAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAF
mAAAA9QAZAIQAAAIABQkAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA4ADgEQHg/
+AALgIXAAAAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAANwASACAAJgAmAE8AWgBGAIgAIAABAAIAAAAAAAMA
AAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAA4AngEf//AAAAAOAA4BD//wAAIAMf/QA
BAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcANQBHgGGAfQCNgJsApYCzAL+A64EiAAGADcAIA
HJAfsACwAXACYARgBeAG0AABMyNzY0JyYjIgYUFjMyNjQmIyIHBhQXFgYyFh0BFAcGIicmPQE0NyUVFAcGK
wEVFAcGIicmPQEjFRQHBiInJjUnIyInJj0BNxYXFhUhNDc2NycmNzYfATYyFzc2FxYHFxUUBwYiJyY9ATQ2
MhcWxAQEAwMEBAUGBn0FBgYFBAQDAwXyGhAICRgJCAgBRAkJDRUJCRgJCCgICRgJCAEVDQkJxCEQEv74EhE
gFAIDBAIVGzwbFQIEAwJ0CAkYCQgQGggIAZYDAwoDAwYKBgYKBgMDCgMDNRANew0HCQkIDHsLCgO+DAsJQQ
0HCQkIDEFBDAgJCQgMQQkLDL50EhocIiIcGhIlBQEBAyYMDCYDAQEFsXsMCAkJBw17DRAICgAAAAABABIAU
QHuAhcAIwAAARQPARcVFAcGIyIvAQcGIyInJjU0PwEnJjU0PwI2Mh8CFgHuCGcYAwMFBAiAgAgEBgMDARho
BxCQQAYQBkCQEAFnBghljwUHAwUEQ0MEBQMHAwKPZQsDCwIVggwMghUCAAAABAAgAEAB4AIAAAkAFQAhADM
AAAEyNjU0JiIGFBY3IgYVFBYzMjY1NCYDIiY1NDYzMhYVFAYnNCYrASIGFTMVFBY7ATI2NSMBAA4SExoTEw
1chIRcXYODXUJeXkJDXV0jFAwgDBQgFAwgDBQgAWASDg0TExoToIRcXYODXVyE/oBdQ0JeXkJDXaAMFBQMY
AwUFAwAAAMAJgBtAdoB0wAZADEARgAAASMnIyYPAQYfATUVHgEHNQcGHwEWPwEjNjQnNScmByMVBwYfATMW
FA8BBh8BFj8BNjQnIg8CIyIdARQ7AR8BFjMyPQERJgGUAQkBCQkRBwcKNwE3CgcIEQkJCgFGdwoKCAERBwc
KARsbCggJEgkICil/BAFpKEoICEo7VQQCCwIByQoICREJCQoBATedNwEKCwgRBwcKRsYCAQoHCAERCQgKHE
wcCgkJEgcHCit2SwE9FwhpCCIxAgoCAQ4JAAAFACYAaAHYAdgADwAfACYANwBFAAABFR8BFgcXNiYvASYHI
wcGNyMnIyYPAQYfAR4BBxc2JicmIyIPARcnIyIdARQ7AR8BFjMyPQInBQEmBxUHBhcBFj8BNTYBNQoBIwop
ERAgCgoIAREHZgEJAQkJEQcHCioVGCUmFbQCCQMCLDyhSggISjtVAgQLmAE2/rUJCRIJCQFLCQkSCQFsAQk
BIy8pJ1ggCgcIEQlVCggJEggJCip2NCVEoAwKAhk8AghqCCIxAQoBMZfJAUsJCQESCQn+tQkJEgEJAAAAAQ
BPAGsBsQHVACoAAAE0JyYPAiYiBhQWMzI2NzY1Ji8BJgcGIyImNDY
zMhcPAQYXFB8BFjc2NQGxBAMFHwI1lmpqSy1QGQICAi0IBh86LD8/LCYcBR4FAgWCBAMDAbEFAgICFgI1ap
ZqKiYCBAUBIAUILz9YPxcDFgMFBAIsAgMCBAAAAQBaAGUBpgHbACIAACUvATY3NjU0Jy4BIyIGBwYVFBcWF
w8BBh0BFBYzITI2PQE0AZpQIhYNCgQILB0cLQgECw0WIFMMCwgBJggL6yYQDRwXFw8MHyknHxILGRgaDQ8m
Bw5bCQ0NCVsPAAAAAQBGAKcBugGZABsAAAE0LwEmIyIdAScmIyIdARQzMj8BFRQzMj8BNTYBugXAAgQIkgQ
CCQkCBJIIAwTABAEgBgJvAghOVAII4ggCVE4IAm8BAgAAAQCIAJwBeAGlACAAACUWFAcGIi8BBwYiJyY0Pw
EnJjQ3NjIfATc2MhcWFA8BFwFvCQkKGApEQwoYCggIR0cICAoYCkNEChgKCQlHR9AJGgkICE5OCAgIHAhQU
QgcCAgITk4ICAkaCVFQAAAABgAgAGAB4AHgAAMABwANABMAGQAfAAA3IREhFzMVIyczNSMVMxUjFTM1IwEV
MxUzNQMjFTM1I2ABQP7AQMDAYGCAICCAYAEgYCAgYIAgoAEAQIDgIICAgCABYCBggP6gIIAAAAQAAQAAAfs
CAAAqAE8AaQCAAAAlMhYVFAcGDwEGFRQfARY7ATc2PwE2OwExMhYVFA8BBisBIg8BJzc2PwEzNSMHBg8BBh
UUHwEWMzI/ATMyPwE2NTQmIyIPAic3PgE1NCYjNyciJiMxIiMPAQYdARQXFhc7ATY3NjUxNTQPAQYiLwEmN
D8BNjIfATc2MzEyHwEWFAEqCg4DBQo3EQQGBwwDUQcGWQcJAQoOB3QHD7cJBx1ZcgcLiAMGiBENdgYEYQYH
CQQgtxYQdAocFBAMWVEGNw8TGxO0YAEDAQECAl8HHxwsAQcrHh81QAEGAR4BAQgCBAISNQEDAwEHAu0OCgc
FCQIPBREGCAgKCQEFVAcOCgsHcQkHH1liBQISFxICC2UECgUGYQYGIhBxDRAUHAlUCQgQBBkQFBvcHwEBHw
QHQDIpJQ4MJykyQAc5QAEBHQEGAQgCAhI1AQEIAgQAAAAIAAIAnwH3AWgAHgApAEkAawB+AIIAjwCaAAABN
iYnJiMhIyImIyIHIgcGBwYHBhceATMhMjc2NzY1BSImNT4BMzIWFAY3MhcWFxYGKwEiJicmJyIrASYHFQ4B
IyI3Njc+ATc2MxciJicmJy4BBwYdARQjBiY9AjQ7ATIXFhcWBwYXFhcWBiQiPQEmJyMGBwYzFh0BFBYzMjc
mMjQiBSYHMB0BFDMyNzY3NgcjBgcGFzAzMicmAfcBIxMHDf7GCAIJAgMCEgkgEwgCAgUIMx0BRREJIxUB/n
EdKgEpHR4pKYwJAwghAwIJAwoFAwQDAgoYCAMECQ8HAwEEBhkGAgyjDwcHCAUCEAMCCA4FCSoHChgDBRQHB
A4GAwL+0hACDBAHAwYJCAkODQQoHBwBKhUBCBADDQICiwICBQUDFAYCBgErEicCAQEBAw0hDBsdExslAQQn
AgMTKh0dKSo6KYcIF1cIAwMKDAEBCAINBAUHCRFAEQqBBQ0QCAQDAwIFHwgBBQ4vNwkCCBUaDgUIGAwGAxY
LHg4CAgQIAQgbDQgHThwOAQQPDAgBAw4UDwURFAEFFQAAAAAMAJYAAQAAAAAAAQAKABYAAQAAAAAAAgAHAD
EAAQAAAAAAAwAnAIkAAQAAAAAABAAKAMcAAQAAAAAABQALAOoAAQAAAAAABgAKAQwAAwABBAkAAQAUAAAAA
wABBAkAAgAOACEAAwABBAkAAwBOADkAAwABBAkABAAUALEAAwABBAkABQAWANIAAwABBAkABgAUAPYAdQBu
AGkAdAB5AGkAYwBvAG4AcwAAdW5pdHlpY29ucwAAUgBlAGcAdQBsAGEAcgAAUmVndWxhcgAARgBvAG4AdAB
GAG8AcgBnAGUAIAAyAC4AMAAgADoAIAB1AG4AaQB0AHkAaQBjAG8AbgBzACAAOgAgADIANgAtADEAMAAtAD
IAMAAxADgAAEZvbnRGb3JnZSAyLjAgOiB1bml0eWljb25zIDogMjYtMTAtMjAxOAAAdQBuAGkAdAB5AGkAY
wBvAG4AcwAAdW5pdHlpY29ucwAAVgBlAHIAcwBpAG8AbgAgADEALgAwAABWZXJzaW9uIDEuMAAAdQBuAGkA
dAB5AGkAYwBvAG4AcwAAdW5pdHlpY29ucwAAAAAAAgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAA
PAAAAAQACAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENB2FuZHJvaWQEc3RhcgRpbmZvBnZvbHVtZQt2b2x1bW
UtbXV0ZQZyZWxvYWQGcGVyc29uBHNraXAFY2xvc2ULc2NyZWVuLWZ1bGwEZ2RwcgdpbmZvLWFyAAAAAAH//
wACAAEAAAAOAAAAGAAAAAAAAgABAAMADgABAAQAAAACAAAAAAABAAAAAMw9os8AAAAA1/jDcAAAAADX+MNw
") format("truetype")}[data-icon]:before{content:attr(data-icon);font-
family:"unityicons" !important}[class^="icon-"]:before,[class*="
icon-"]:before{font-family:"unityicons" !important}.icon-
android:before{content:"\e000"}.icon-star:before{display:inline-
block;width:1em;content:"\e001"}.icon-info:before{content:"\e002"}.icon-
volume:before{content:"\e003"}.icon-volume-mute:before{content:"\e004"}.icon-
reload:before{content:"\e005"}.icon-person:before{content:"\e006"}.icon-
skip:before{content:"\e007"}.icon-close:before{content:"\e008"}.icon-screen-
full:before{content:"\e009"}.icon-gdpr:before{content:"\e010"}.icon-info-
ar:before{content:"\e011"}#admob #admob-
iframe{position:fixed;display:block;width:100vw;height:100vh;border:none}#admob
.gdpr-pop-up{position:fixed;bottom:0;width:100%;height:6vh;background-color:#fff;-
webkit-box-shadow:0 0 15px 0 rgba(0,0,0,0.1);box-shadow:0 0 15px 0
rgba(0,0,0,0.1);opacity:1;}#admob .gdpr-pop-up .gdpr-text{padding:.5rem;font-
size:.5rem;position:relative;top:50%;-webkit-transform:perspective(1px)
translateY(-50%);transform:perspective(1px) translateY(-50%);text-
align:center;}#admob .gdpr-pop-up .gdpr-text .gdpr-link{color:#167dfb}#admob
.privacy-button{position:fixed;right:4px;bottom:1px;z-
index:1000;width:15px;height:17px;color:#fff;text-align:center;font-
weight:300;font-size:small;}#admob .privacy-button .icon-
gdpr{display:block;width:18px;height:17px;background-
color:#fff;color:#0198b3}#vast-end-
screen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;}#vas
t-end-screen .campaign-container{width:100%;height:100%}#vast-end-screen .game-
background{width:100%;height:100%;background-color:#000;background-
position:center;background-size:contain;background-repeat:no-repeat}body.portrait
#vast-end-screen .game-background-portrait{display:block}body.portrait #vast-end-
screen .game-background-landscape{display:none}body.landscape #vast-end-screen
.game-background-portrait{display:none}body.landscape #vast-end-screen .game-
background-landscape{display:block}#vast-end-screen .btn-close-region{z-
index:100;width:2.1875rem;font-size:1.25rem;line-
height:2.1875rem;position:absolute;right:0;color:#fff;text-align:center;text-
shadow:2px 2px 20px #7c7c7c;padding:.25rem}#vast-end-screen .privacy-
button{position:absolute;bottom:0;z-index:10;color:#e6e6e6;margin:0 0 0 .
25rem}#vast-end-screen .china-
advertisement{position:fixed;display:none;padding:.7rem;color:#fff;font-
size:.75rem;top:0;padding:.5rem;opacity:.58}#privacy{position:absolute;top:0;left:0
;z-
index:9999;overflow:hidden;width:100%;height:100%;background:rgba(0,0,0,0.5);color:
#333;font-weight:300;font-size:.65rem;overflow-x:hidden;}#privacy .pop-
up{position:relative;margin:5%;padding:1rem;width:80%;height:70%;border-
radius:.25rem;background:#fafafa;}#privacy .pop-up .fade-out-gradient-
separator{position:absolute;bottom:10%;left:0;width:100%;height:3rem;background:-
webkit-gradient(linear,left bottom, left top,color-stop(0, #fafafa),color-stop(50%,
#fafafa),to(rgba(250,250,250,0)));background:linear-gradient(to top,#fafafa
0,#fafafa 50%,rgba(250,250,250,0) 100%)}#privacy .pop-up .pop-up-
content{overflow:auto;padding-right:.5rem;height:90%;}#privacy .pop-up .pop-up-
content .header,#privacy .pop-up .pop-up-content .highlight{font-
weight:400}#privacy .pop-up .pop-up-content .icon-gdpr{display:block;text-
align:center;font-size:2.5rem;opacity:.4}#privacy .pop-up .pop-up-content
.centered-title{display:block;text-align:center}#privacy .pop-up .pop-up-content
.title{margin-top:.5rem;margin-bottom:1rem;font-weight:500;font-
size:.7150000000000001rem}#privacy .pop-up .pop-up-content
.header{display:block;margin:1rem 0 .5rem 0;font-size:.7474999999999999rem}#privacy
.pop-up .pop-up-content p{line-height:.9750000000000001rem;}#privacy .pop-up .pop-
up-content p:last-of-type{min-height:9.75rem}#privacy .pop-up .pop-up-content
.report-title{margin-top:1rem;margin-bottom:1rem;font-
size:.9750000000000001rem}#privacy .pop-up .pop-up-content .report-
dialog{display:block;text-align:center;font-style:italic;font-
size:.65rem}#privacy .pop-up .pop-up-content .report-
disclaimer{display:block;margin-top:.5rem;margin-bottom:.5rem;text-
align:center;font-size:.39rem}#privacy .pop-up .pop-up-content .report-
container{height:4.5rem;}#privacy .pop-up .pop-up-content .report-container
.report-button{display:inline-block;float:left;margin:.5rem;padding:.75rem
1.5rem;border-radius:.25rem;background:#7ed321;color:#fff;font-
size:.8125rem}#privacy .pop-up .pop-up-content .report-container .report-confirmed-
text{display:inline-block;margin-top:.9rem;width:50%;vertical-align:middle;text-
align:center;font-size:.65rem;opacity:0;-webkit-transition:opacity .25s ease-
in;transition:opacity .25s ease-in;}#privacy .pop-up .pop-up-content .report-
container .report-confirmed-text.active{opacity:1}#privacy .pop-up .pop-up-
content .radio-group-container{padding:.5rem;font-size:.65rem;}#privacy .pop-up
.pop-up-content .radio-group-container [type="radio"]:checked,#privacy .pop-up
.pop-up-content .radio-group-container [type="radio"]:not(:checked)
{position:absolute;visibility:hidden}#privacy .pop-up .pop-up-content .radio-group-
container [type="radio"]:checked + label,#privacy .pop-up .pop-up-content .radio-
group-container [type="radio"]:not(:checked) + label{position:relative;padding-
left:1.5rem;cursor:pointer;line-height:.9750000000000001rem;display:inline-
block}#privacy .pop-up .pop-up-content .radio-group-container
[type="radio"]:checked + label:before,#privacy .pop-up .pop-up-content .radio-
group-container [type="radio"]:not(:checked) +
label:before{content:'';position:absolute;left:0;top:0;width:.75rem;height:.75rem;b
ackground-size:cover;background-repeat:no-repeat;background-
position:center}#privacy .pop-up .pop-up-content .radio-group-container
[type="radio"]:checked + label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURQAAAIDVIn/UIn/UIYPXJX/UIX/UIoDVIYHWI3/UI
YffLH7TIS7R46AAAAALdFJOUwBOpvQbddqKK8EL80iDXQAAANdJREFUOMuVlFkOxSAIRQsoDux/v6/FIa22
yX38GPHIJHgc/0olLiqihal+IJnFpgjnFyTweVQi5VozxXJuOKwMiUm6aUM6FfRk4n7xMh0XJu4RPLVkRm+
p3PVB5g3iqwRM05aMINi4IzoqoLQc5YEnu0kaTnKn087YVLqpKhZ6lE9xj8Gk+mHxO7pC6uriMLfUNkPdVH
R/DT14h/iYjrTFrzukLfdrEfPekR0Sz8sXCILcQYFDJYCKCT0L9MBYq0BNh7UvNAjYSGHDiY059mFgXw/4i
X3LD7r3FKUDUZ5wAAAAAElFTkSuQmCC")}#privacy .pop-up .pop-up-content .radio-group-
container [type="radio"]:not(:checked) + label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURQAAAOjp7ufp7uvx9ers8Ofp7ufr7+bp7ufp7ubp7
+bp7ejq7efp7icP+oYAAAAMdFJOUwB69RInrUSgwVLZV6JS+EoAAADBSURBVDjLlZRXEsMgDEStQvXe/7wh
2HHiArPRh2cMb6RFbVn+NSspV9WaU7EB4kFxmAZ/QlK7yhLdzKPk9pNuWFSo/MQwaQfxzAhw9e8BkAsjdwX
n0wisT09ZgSOi65OfzZd+RCSEUeYC0u7oi98To/CdlnERZItiCptUCvq+LcizemaULltmkHTpGXEGxR6owm
eQo7bvVHdXzkJUOEo4lQIqmVRZqAJzrUI1Hde+1CBwI8UNJzfm3MLgVg+5xMb2AnKHCD3v0FC4AAAAAElFT
kSuQmCC")}#privacy .pop-up .pop-up-content .radio-group-container
[type="radio"]:checked + label{font-weight:500}#privacy .pop-up .pop-up-content
.radio-group-container .radio-item-container{margin:0
auto;padding:.25rem;width:85%}#privacy .pop-up .pop-up-
footer{position:absolute;bottom:0;left:0;width:100%;font-
size:.48750000000000004rem;}#privacy
.pop-up .pop-up-footer .close-
button{position:absolute;right:0;bottom:0;display:inline-
block;margin:.5rem;padding:.75rem 1.5rem;border-
radius:.25rem;background:#167dfb;color:#fff;font-size:.8125rem}#privacy .pop-up
.pop-up-footer .middle-link,#privacy .pop-up .pop-up-footer .left-side-
link{bottom:0;display:inline-block;margin-bottom:.5rem;margin-
left:.5rem;width:22%;color:#8a8a8a}#privacy .pop-up .page-
link{color:#167dfb;cursor:pointer}#privacy .pop-up-content .icon-
gdpr{display:block;text-align:center;font-size:2.5rem;opacity:.41}#privacy .pop-up-
content .centered-title{display:block;text-align:center}#privacy .build-
side,#privacy .report-side{display:none;font-size:.75rem}#privacy .gdpr-text-
android,#privacy .gdpr-text-ios{display:none}#privacy #data-deletion-
container{padding:.75rem 0;}#privacy #data-deletion-container .page-link{pointer-
events:none}#privacy #data-deletion-container.active .page-link{pointer-
events:auto}#privacy #data-deletion-container,#privacy #data-deletion-request-
container{display:block;padding-bottom:1rem;text-align:center;opacity:0;-webkit-
transition:opacity 250ms ease-in;transition:opacity 250ms ease-in;}#privacy #data-
deletion-container.active,#privacy #data-deletion-request-
container.active{opacity:1}#privacy.build .build-side{display:block;word-
wrap:break-word;}#privacy.build .build-side .build-information-key{font-
weight:800}#privacy.build .pop-up-content:not(.build-side)
{display:none}#privacy.report .report-side{display:block;word-wrap:break-
word}#privacy.report .pop-up-content:not(.report-side){display:none}.build-
information-item{margin:0}body.android #privacy .gdpr-text-android,body.iphone
#privacy .gdpr-text-ios,body.ipad #privacy .gdpr-text-ios{display:initial}#gdpr-
consent{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-
box;display:-ms-
flexbox;display:flex;width:100%;height:100%;background:transparent;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;}#gdpr-
consent.prevent-clicks{pointer-events:none}#gdpr-consent .consent-
container{position:relative;-ms-flex-item-align:center;align-self:center;margin:0
2rem;padding:2rem 2rem 1.5rem 2rem;border-radius:.5rem;background:#fff}#gdpr-
consent .stripe{display:none}#gdpr-consent .item{margin:0 0 1.5rem 0}#gdpr-
consent .privacy-logo{color:#000;text-align:center;font-size:1.1rem}#gdpr-
consent .title{font-weight:600}#gdpr-consent .description{color:#333;font-
weight:300;font-size:.55rem;line-height:1rem}#gdpr-consent .agree{border-
radius:.4rem;text-align:center;font-weight:500;font-size:.65rem;border:1px solid
#167dfb;background-color:#167dfb;color:#fff;margin-bottom:.5rem}#gdpr-consent
.show-options{border-radius:.4rem;text-align:center;font-weight:500;font-
size:.65rem;border:1px solid #e2e2e2;background-color:#fff;color:#000}#gdpr-consent
.consent-button{position:relative;padding:1rem}#gdpr-consent .page-link{text-
decoration:underline;cursor:pointer}#gdpr-consent .unityads-logo{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAgCAMAAAD+K8DjAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURQAAAHd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+h
Xd+hXd+hRvg3+0AAAAMdFJOUwDrdiFWuJk7CNEU/sRHFUYAAAJ9SURBVFjD7ZeLcuMwCEUNQiCk///fvQjb
TTbZVGk7k+xMmfFLzyNAIG/br/zH0owrvwMEjTHqSym6qI8U6q8EqTtE3ORrQxSxq2+T9vwggvld2aZW9PF
sDVPY3bVc67KO8hyEMXOtbBiF4SE0/EFjHRi+3mtSoE65bvociMEcnl0KDSo+Hg3AXjtA7jg0D6H6DZDgqP
1cLudt+m/px6OXwx69lNahEdyzuqFgPp3aYYwmzJYgxspLPHLBYVBNC3fJhSk5KooTFyLRMRsyeXQZKKCpx
2wVnRVd5xIKvIWGAqTpID8W9qmT1t25G7pg0Z12p9P5hLm47NsJc6FQHC1cbE6A6h0bfTthIRsUw71LDAOy
3sBlKxz6YeR8x3rKDQhuc2iOyukj4E79TQ9NhqBBkaaKonWMZM4rm9Z2iXlKAvF2A6JJWj5A4tPOPZtWCfs
kzVwQNFJtwUN4/CUJYN5uQfgWJGzTaNcoilR1YgHg3DU645M9CyJPgUQ4OSwDd3aKC5+XIFvhSB2yQAKvk5
BpmgstL4DIoMMyMGcLgS3O+IHNXMrczOQrxnngrLESHvdAPB307O5HBKFwDM5aBMckqLS0ffUf23dubR93Q
UaVRE3HtDPUKlTjURjBpMdXxEzfniLJUGZHQGszI9dr08xcE9FYs0P6k55eYChBtTs5tIQYHE+y7bmQVsMY
Z4iHcVWliZS4ZuaVBodq8TbjthyWETnybovXHkm0xzEAQ+B1LedcBPlIet3HsLWOvNx0Me1FAFCJ3LUfA9Y
ONP7J0eVLMjeyyucHo8s0D6W3nwbZj4r0naPiz0jJE/ykKdtrpb/F78T5V/EGP1i/8jL5A9oqHSWefc3yAA
AAAElFTkSuQmCC");width:100%;height:1rem;border-radius:0;background-
position:center;background-size:contain;background-repeat:no-repeat}#gdpr-
consent .click-animation.agree span{display:block;-webkit-animation:onagree .3s
ease-in forwards;animation:onagree .3s ease-in forwards}@-webkit-keyframes
onagree{from{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-
webkit-transform:translateX(-8px);transform:translateX(-
8px);opacity:.25}}@keyframes onagree{from{-webkit-
transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-
transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}body.landscape
#gdpr-consent .consent-container{display:-webkit-box;display:-ms-
flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;-webkit-
box-align:center;-ms-flex-align:center;align-items:center;margin:1rem
2rem}body.landscape #gdpr-consent .stripe{position:absolute;display:block;margin-
top:-.25rem;width:1px;height:100%;background-color:#f5f5f5}body.landscape #gdpr-
consent .top-container{-webkit-box-flex:0;-ms-flex:0 1 40%;flex:0 1 40%;margin-
right:2rem}body.landscape #gdpr-consent .bottom-container{-webkit-box-flex:0;-ms-
flex:0 1 40%;flex:0 1 40%;margin-left:2rem}#gdpr-consent-
settings{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;width:100%
;height:100%;background:#fff;font-size:.55rem;}#gdpr-consent-settings.prevent-
clicks{pointer-events:none}#gdpr-consent-settings .safe-area-
content{position:fixed;top:0;right:0;bottom:0;left:0}#gdpr-consent-settings .back-
button{position:relative;padding:.5rem 0 1rem 0;width:2rem;color:#000}#gdpr-
consent-settings .wrapper{position:relative;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-
flex-direction:column;flex-direction:column;padding:0 2rem 1rem;height:100%}#gdpr-
consent-settings .description{color:#333;text-align:left;font-weight:300}#gdpr-
consent-settings .heading{display:block;font-weight:400}#gdpr-consent-settings
.personalization-container{-webkit-box-flex:0;-ms-flex:0 1 45%;flex:0 1
45%;overflow:auto;}#gdpr-consent-settings .personalization-container .privacy-info-
title{font-weight:600;font-size:1rem}#gdpr-consent-settings .info-
container{position:relative}#gdpr-consent-settings .stripe{margin:.1rem 0 0
0;height:1px;background-color:#e2e2e2}#gdpr-consent-settings .settings-
container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-
ms-flex-positive:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-
direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center}#gdpr-consent-settings
.accept-all{margin-bottom:.5rem}#gdpr-consent-settings .consent-
button{position:relative;}#gdpr-consent-settings .consent-button.click-animation
span{display:block;-webkit-animation:onagree .3s ease-in forwards;animation:onagree
.3s ease-in forwards}@-webkit-keyframes onagree{from{-webkit-
transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-
transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}@keyframes
onagree{from{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-
webkit-transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}#gdpr-
consent-settings .blue.consent-button{border-radius:.4rem;text-align:center;font-
weight:500;font-size:.65rem;border:1px solid #167dfb;background-
color:#167dfb;color:#fff}#gdpr-consent-settings .white.consent-button{border-
radius:.4rem;text-align:center;font-weight:500;font-size:.65rem;border:1px solid
#e2e2e2;background-color:#fff;color:#000}#gdpr-consent-settings
.item{padding:.75rem 1rem;text-align:center}#gdpr-consent-settings .checkbox-group-
container{font-size:.55rem;}#gdpr-consent-settings .checkbox-group-container
[type="checkbox"]:checked,#gdpr-consent-settings .checkbox-group-container
[type="checkbox"]:not(:checked){position:absolute;visibility:hidden}#gdpr-consent-
settings .checkbox-group-container [type="checkbox"]:checked + label,#gdpr-consent-
settings .checkbox-group-container [type="checkbox"]:not(:checked) +
label{position:relative;padding-left:1.25rem;cursor:pointer;display:inline-
block;font-weight:300}#gdpr-consent-settings .checkbox-group-container
[type="checkbox"]:checked + label:before,#gdpr-consent-settings .checkbox-group-
container [type="checkbox"]:not(:checked) +
label:before{content:'';position:absolute;left:0;top:0;width:.75rem;height:.75rem;b
ackground-size:cover;background-repeat:no-repeat;background-position:center}#gdpr-
consent-settings .checkbox-group-container [type="checkbox"]:checked +
label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAABG
dBTUEAALGPC/xhBQAAA7NJREFUWAm9V11IFFEUPjPOuP5vuv6tP6FvYvRDYEEvQSiVUoqB6UPkQ1QUZCJYP
VSUEBZRSQYRSUVRVgZJWQ9KUFHRz4MEadRDoauLtW247Fqr62733Nk7O7OzP6NrXti995zzne+cO3fvmbMc
kFF5YcSHMw5OKRzdkgkCankOIG+JAG2PbMCjwkscLL89uFS7ENlKEdQkfZmponZ1KvQ1FVKVKgpqNArJM/A
dzEkthzabZEqaJ8OzOFUdo3D66S+qRoCVfMwooSF4cFUdljs+n7c+2ICyKMYt5cMZETAzMzsSMkk0shESwJ
JFkAxgSpyPPPjBCAKA1vsTdO+frW74aHHLANWTTI7nwDUtHy4FySFQCjaiLuJzQEC0EfE5RXNGu+osozl0N
Zoh1yiA3TULO66OU7gugvLSZGiuyKAODVfGwPHHK8fSEGwoSYKWjSYK6P/khIplKXR9770DbryelB3ZQnUM
TIlzrjEOuhrzwOX2Qt3lMaVJtQ5LoEJFEHj8yUawRzFxdq760lgh+Vm/JUh6aaJ4yGaO47v7mgoaYtoCkqh
+qjK9zgVe1pgIMM6cCFYWGiBRJKVSMXQTGBN5OFWbDT37CiDFECDRTXB7dz6N+
+LLFDjdgTuvi4CVG+ukRy6YbBcaAnwtPD5QwOzQvUeK7Jn1wa7rWGPVQ3OZyooSgOM4Wr+Gxt2QmiDFqO60
qD39kiaDrRct9AKhvTTPQGE1ndqS7vcPfYx4+3C/OPbetMLMLINrZ80WGAT3u6Y4AUbtEhHTB8+aLSgB777
9VYoh1xEJQnqolfhW5uxqnX6J1JK1/nrgHQTwSVVTv3+MSM4uivwqwV+MFjk45u7LwNh4BnOqhDFuO9hdaq
SCtYsph70HsSZRmC7A2e05pPTx8N02Dcd7bWBzam/kgicgxgG0b8uGErNURnAjRZnxsGl5Mtx649Dsa0ET2
LnOCHVlaaogw6Shw44vXDnSlQDu6kR1FjwbdsHA8JQqAAorCgzQVpMFQlzgTeMkHUnL3Qm5r9c4+RVRX+sH
y9Pl/oiR9HxwwLVXk5BGSv25+hwwk45NOc7322FgyKVUhV1HTQA9sSgfrjSBQYhcOV9+nYL2J9JfhLARgwy
6EmA+xZkinCSPOiOZnIliTDg80Nw9AZOKtlNhjricUwKMKT2Jp2e+1CTCsYc/YXA08K+BY
fTO80pAL7keXORD1cMQI4bHBjVGjnm7Y2x6cbFF93h8Z0izu56w/e+Xk5UEfi4IXGvv/vzRf1GgKcA3IfCv
AAAAAElFTkSuQmCC")}#gdpr-consent-settings .checkbox-group-container
[type="checkbox"]:not(:checked) + label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAABG
dBTUEAALGPC/xhBQAAAYdJREFUWAntV0tOwzAQnbEUumHRNkLQBT0DN+AacBEOwUXINViy4wwg5SNkBwk2a
WhMxsiSY7tykrJB2Bt7xjPzPM/OOEboW15ySb1qJJiN6QndOwo0/RGhQPLX5tQ7Lo5CrcGEtceuhwngw7Dm
gdHSbKUpY1GKBwnyxlTq8SKBrZOXnqS+qISbp2lA41/Iwg5py2GIrhtsjh2gT6XnQdQf9hYE5f2+k3QWGJG
4Wp66kQMaxlBZBHMIxAnz/A8CIOf8smnhJZSrfx6FCrD7gqf+Y974jfxaBMw2F+tbVRjOz1ag99Vv7mrr90
9omjZT52CqM4Wjw0eHMB6kETXH5X+oiST+aRKp3KtbOS8FB5Dr4e6Ok9T191NQ8HlukHFQPisUi0ReYVHxn
IrRnJriCztGR/RVb7WikOlKOKcmjQHz2Wgswj76U/QBTNHFBUQGIgORgchA/1TBjEon/awGn1RTauwBW8Ig
LGqErZ5KdCXvWrwHlNf6cjrgf7RavZ8lPp4k8i5N09dvR7Hn1i4QZ0EAAAAASUVORK5CYII=")}#gdpr-
consent-settings .checkbox-group-container .checkbox-item-container{margin:.75rem 0
.75rem 0}#gdpr-consent-settings .checkbox-group-container .indented-
checkbox{padding-left:1.25rem}#gdpr-consent-settings .checkbox-group-container
#personalization-checkbox-group .sub-box-
line{position:absolute;width:.75rem;height:1rem;border-bottom:1px solid
#f5f5f5;border-left:1px solid #f5f5f5;-webkit-
transform:translate(.3rem,-.65rem);transform:translate(.3rem,-.65rem)}#gdpr-
consent-settings .checkbox-group-container #personalization-checkbox-group .two-
lines.sub-box-line{height:1.65rem;-webkit-transform:translate(.3rem,-
1.35rem);transform:translate(.3rem,-1.35rem)}body.landscape #gdpr-consent-
settings .back-
button{position:absolute;top:1rem;left:5%;padding:0;width:1rem;height:1rem;color:#0
00}body.landscape #gdpr-consent-settings .safe-area-
content{position:fixed;padding:auto}body.landscape #gdpr-consent-settings
.wrapper{display:block;padding:0;width:100%;height:100%}body.landscape #gdpr-
consent-settings .personalization-
container{position:absolute;top:2.5rem;left:5%;display:block;width:40%;height:calc(
100% - 2.5 * 1rem)}body.landscape #gdpr-consent-settings
.stripe{position:absolute;top:2.5rem;left:50%;display:block;width:1px;height:calc(1
00% - 2.5 * 1rem);background-color:#f5f5f5}body.landscape #gdpr-consent-settings
.settings-
container{position:absolute;top:2.5rem;left:55%;display:block;width:40%;height:100%
}#privacy-row-item-container .row-item{margin:.5rem 0 .5rem 0}#privacy-row-item-
container .row-item-title{display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-
direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-
pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;font-weight:600;font-size:.55rem}#privacy-row-item-
container .description{display:none;padding-right:.5rem;color:#333;text-
align:justify;font-weight:300;font-size:.55rem}#privacy-row-item-container .row-
item.show-description .description{display:block}#privacy-row-item-container
.arrow-icon{padding-right:.25rem;color:#000;font-size:.4rem;opacity:.5}#privacy-
row-item-container .heading2{display:block;font-weight:500;font-
size:.55rem}#privacy-row-item-container .intended-span{display:block;padding:0
1rem}#privacy-row-item-container #data-deletion-container{padding:.75rem
0;}#privacy-row-item-container #data-deletion-container .page-link{pointer-
events:none}#privacy-row-item-container #data-deletion-container.active .page-
link{pointer-events:auto}#privacy-row-item-container #data-deletion-
container,#privacy-row-item-container #data-deletion-request-
container{display:block;text-align:center;opacity:0;-webkit-transition:opacity
250ms ease-in;transition:opacity 250ms ease-in;}#privacy-row-item-container #data-
deletion-container.active,#privacy-row-item-container #data-deletion-request-
container.active{opacity:1}#privacy-row-item-container .page-
link{color:#167dfb;cursor:pointer}@font-face{font-family:"consent-
icons";src:url("data:application/x-font-
ttf;base64,AAEAAAANAIAAAwBQRkZUTXxz6IwAAAhkAAAAHEdERUYAOAAGAAAIRAAAACBPUy8yL7pMbgAA
AVgAAABWY21hcMBYI54AAAHQAAABSmdhc3D//wADAAAIPAAAAAhnbHlmj4RcMgAAAzQAAALIaGVhZBFUhrs
AAADcAAAANmhoZWEEMQIFAAABFAAAACRobXR4BhQATgAAAbAAAAAebG9jYQJgAw4AAAMcAAAAGG1heHAAUQ
A5AAABOAAAACBuYW1lWJ0IPQAABfwAAAHLcG9zdJs3oXsAAAfIAAAAcwABAAAAAQAAk+eNpl8PPPUACwIAA
AAAANgbIt4AAAAA2Bsi3gAAAAACAAICAAAACAACAAAAAAAAAAEAAAICAAAALgIAAAAAAAIAAAEAAAAAAAAA
AAAAAAAAAAAEAAEAAAALADYABAAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAF
mAAAA9QAZAIQAAAIABQkAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA4CDgJwHg/
+AALgICAAAAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAAAAAAA4AAAAAAAAAQAAUAAAAAAADAAAAAwAAABwA
AQAAAAAARAADAAEAAAAcAAQAKAAAAAYABAABAAIAAOAn//8AAAAA4CD//wAAH+MAAQAAAAAAAAAAAQYAAAE
AAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACoAVABqAI4AtgDIARYBZAADAAAAEAHgAfAABwATABcAAAEXFQcjJzU3ExYyNz
Y0JyYiBwYUNzUjFQFUjIzIjIxLCh4KCgoKHgoKPTQB8IzIjIzIjP6NCgoJHgkKCgkeYKCgAAADAAAAEAHgA
fAABwATABcAAAEXFQcjJzU3ExYyNzY0JyYiBwYUNzUjFQFUjIzIjIxLCh4KCgoKHgoKPTQB8IzIjIzIjP6N
CgoJHgkKCgkeYKCgAAABAA4AHgHyAgIACAAAARUhFwcnNxcHAfL+kagq8/MqqAEuPKoq8vIqqgAAAAIAAAA
AAgACAAADABMAAAERIRElISIGFREUFjMhMjY1ETQmAcf+cgGO/nIXIiIXAY4XIiIBx/5yAY45Ihf+chciIh
cBjhciAAIAAAAAAgACAAAPABUAABMiBhURFBYzITI2NRE0JiMBNxc3FwE5FyIiFwGOFyIiF/5yHHLkHP8AA
gAiF/5yFyIiFwGOFyL/ABxVxxz/AAAAAQAAAHgB4AGgAAUAAAEXByc3FwGoOPDwOLgBoDjw8Di4AAAABABA
AAoBqgHmABoAJAAoADUAAAEyFh0BFAYjISImPQE0NjsBNTQ3NjMyFxYdAS4BIgcGFTMVMzUTNSEVNwYjIic
mNDc2MhcWFAF+EhoaEv7wFBoaFBYhIi8uISEqKjoUFAKKQv7wpw8REg4NDQ4kDg0BRhoS5BIaGhLkEhouLy
EiIiEvLkoqFRMeLi7+wuTkUQ0ODCgMDg4MKAAABAAUABsB0gHbAAoAFQAjADIAAAAmIyIHBhQWMjc2FyYjI
gcGHQEhNTQDNjMyFxYUBwYjIicmNBc2MzIXFhcWHQEhNTQ3NgEtIhgXExEiMhARODY8OzY5AVT5IC8uISAg
IS4vICEVMSooMzIoKv5CKSgBgyIRETAiERG/FhYVEB4eEAE7ISEgXiAhISFcxQwMDBsbI1RUJBobAAAAAAA
MAJYAAQAAAAAAAQANABwAAQAAAAAAAgAFADYAAQAAAAAAAwAqAJIAAQAAAAAABAANANkAAQAAAAAABQALAP
8AAQAAAAAABgANAScAAwABBAkAAQAaAAAAAwABBAkAAgAKACoAAwABBAkAAwBUADwAAwABBAkABAAaAL0AA
wABBAkABQAWAOcAAwABBAkABgAaAQsAYwBvAG4AcwBlAG4AdAAtAGkAYwBvAG4AcwAAY29uc2VudC1pY29u
cwAAaQBjAG8AbgBzAABpY29ucwAARgBvAG4AdABGAG8AcgBnAGUAIAAyAC4AMAAgADoAIABjAG8AbgBzAGU
AbgB0AC0AaQBjAG8AbgBzACAAOgAgADIAMQAtADEAMQAtADIAMAAxADgAAEZvbnRGb3JnZSAyLjAgOiBjb2
5zZW50LWljb25zIDogMjEtMTEtMjAxOAAAYwBvAG4AcwBlAG4AdAAtAGkAYwBvAG4AcwAAY29uc2VudC1pY
29ucwAAVgBlAHIAcwBpAG8AbgAgADEALgAwAABWZXJzaW9uIDEuMAAAYwBvAG4AcwBlAG4AdAAtAGkAYwBv
AG4AcwAAY29uc2VudC1pY29ucwAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAgB
EAQIBAwEEAQUBBgEHAQgFYWxlcnQFYXJyb3cIY2hlY2tib3gQY2hlY2tib3gtY2hlY2tlZAdjaGV2cm9uBG
xvY2sHcGVyc29uMgAAAAAB//8AAgABAAAADgAAABgAAAAAAAIAAQADAAoAAQAEAAAAAgAAAAAAAQAAAADMP
aLPAAAAANgbIt4AAAAA2Bsi3g==") format("truetype")}[data-
icon]:before{content:attr(data-icon);font-family:"consent-icons" !important}
[class^="consent-icon-"]:before,[class*=" consent-icon-"]:before{font-
family:"consent-icons" !important}.consent-icon-a:before{content:"\e020"}.consent-
icon-alert:before{content:"\e021"}.consent-icon-
arrow:before{content:"\e022"}.consent-icon-
checkbox:before{content:"\e023"}.consent-icon-checkbox-
checked:before{content:"\e024"}.consent-icon-
chevron:before{content:"\e025"}.consent-icon-lock:before{content:"\e026"}.consent-
icon-person2:before{content:"\e027"}#button-
spinner{position:absolute;top:50%;right:0;padding-right:.5rem;-webkit-
transform:translateY(-50%);transform:translateY(-50%);-webkit-animation:show-up 1s
ease-in forwards;animation:show-up 1s ease-in forwards;}#button-spinner
.loader{width:24px;height:24px;border:3.2px solid rgba(226,226,226,0.1);border-
top:3.2px solid #e2e2e2;border-radius:50%;-webkit-animation:spin 1s ease-in
infinite;animation:spin 1s ease-in infinite}@-webkit-keyframes spin{0%{-webkit-
transform:rotate(0);transform:rotate(0)}100%{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-
transform:rotate(0);transform:rotate(0)}100%{-webkit-
transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes show-
up{from{opacity:0}to{opacity:1}}@keyframes show-
up{from{opacity:0}to{opacity:1}}#privacy-
settings{position:absolute;top:0;right:0;bottom:0;left:0;z-
index:9999;overflow:hidden;width:100%;height:100%;background:rgba(0,0,0,0.5);}#priv
acy-settings .safe-area-
content{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-
box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-
direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-
pack:end;-ms-flex-pack:end;justify-content:flex-end}#privacy-settings .close-
area{position:relative;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}#privacy-
settings .close-button{padding:.35rem 1rem;border-
radius:3rem;background:#333;color:#b4b4b4;font-weight:500;font-
size:.65rem;position:absolute}#privacy-settings .page-container{padding:1rem
2rem}#privacy-settings .view-container{position:relative;overflow:auto;padding-
bottom:1rem;min-height:80%;max-height:80%;width:100%;border-top-left-
radius:1rem;border-top-right-radius:1rem;background:#fff;-webkit-overflow-
scrolling:touch}#privacy-settings .back-button{width:2rem;color:#000;font-
size:.65rem;padding:2rem 2rem 1rem 2rem}#privacy-settings .main-view-
container{text-align:center;}#privacy-settings .main-view-container .privacy-
logo{padding:1rem;color:#000;font-size:1.5rem}#privacy-settings .main-view-
container .settings-button{display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-
direction:column;flex-direction:column;margin:.5rem 0;padding:1rem;border-
radius:.25rem;background:#f5f5f5;text-align:center;font-weight:500;font-
size:.55rem}#privacy-settings .main-view-container .settings-button{font-
weight:500}#privacy-settings
.main-view-container .button-row-container{display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;}#privacy-settings .main-view-container
.button-row-container .row-button{-webkit-box-flex:1;-ms-flex-positive:1;flex-
grow:1;padding:1rem;border-radius:.25rem;background:#f5f5f5;text-align:center;font-
weight:500;font-size:.55rem}#privacy-settings .main-view-container .button-row-
container .report-ad-button{margin-right:.5rem}#privacy-settings .main-view-
container .info-container{padding-top:1rem}#privacy-settings .report-ad-
container .report-button{border-radius:.4rem;text-align:center;font-
weight:500;font-size:.65rem;border:1px solid #167dfb;background-
color:#167dfb;color:#fff;position:relative;padding:.75rem 1rem}#privacy-settings
.personalization-container .checkbox-group-container{font-size:.55rem}#privacy-
settings .personalization-container .checkbox-group-container .switch-
container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-
direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-
pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;padding:.5rem 0}#privacy-settings .personalization-
container .checkbox-group-container .switch{position:relative;display:inline-
block;width:46px;height:28px}#privacy-settings .personalization-container
.checkbox-group-container .switch-label{position:relative;width:80%}#privacy-
settings .personalization-container .checkbox-group-container
[type="checkbox"]:checked,#privacy-settings .personalization-container .checkbox-
group-container [type="checkbox"]:not(:checked)
{position:absolute;visibility:hidden}#privacy-settings .personalization-
container .checkbox-group-container [type="checkbox"]:checked + label,#privacy-
settings .personalization-container .checkbox-group-container
[type="checkbox"]:not(:checked) +
label{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-
color:#fafafa;border:2px solid #e3e3e3;border-radius:34px;-webkit-transition:.15s
ease-in-out;transition:.15s ease-in-out}#privacy-settings .personalization-
container .checkbox-group-container [type="checkbox"]:checked +
label:before,#privacy-settings .personalization-container .checkbox-group-container
[type="checkbox"]:not(:checked) +
label:before{position:absolute;content:"";height:24px;width:24px;background-
color:#fff;border-radius:50%;-webkit-transition:.15s ease-in-out;transition:.15s
ease-in-out;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);box-shadow:0 2px 4px 0
rgba(0,0,0,0.2)}#privacy-settings .personalization-container .checkbox-group-
container [type="checkbox"]:checked + label{background-color:#167dfb;border:2px
solid #167dfb}#privacy-settings .personalization-container .checkbox-group-
container [type="checkbox"]:focus + label{-webkit-box-shadow:0 0 1px #167dfb;box-
shadow:0 0 1px #167dfb}#privacy-settings .personalization-container .checkbox-
group-container [type="checkbox"]:checked + label:before{-webkit-
transform:translateX(18px);transform:translateX(18px)}#privacy-settings
.personalization-container #third-party-switch.disabled{opacity:.33;pointer-
events:none}#privacy-settings .radio-group-container{padding:.5rem;font-
size:.55rem;font-weight:300;line-height:1.25rem}#privacy-settings .radio-group-
container [type="radio"]:checked,#privacy-settings .radio-group-container
[type="radio"]:not(:checked){position:absolute;visibility:hidden}#privacy-
settings .radio-group-container [type="radio"]:checked + label,#privacy-settings
.radio-group-container [type="radio"]:not(:checked) +
label{position:relative;padding-left:1.5rem;cursor:pointer;line-
height:.8250000000000001rem;display:inline-block}#privacy-settings .radio-group-
container [type="radio"]:checked + label:before,#privacy-settings .radio-group-
container [type="radio"]:not(:checked) +
label:before{content:'';position:absolute;left:0;top:0;width:.75rem;height:.75rem;b
ackground-size:cover;background-repeat:no-repeat;background-
position:center}#privacy-settings .radio-group-container [type="radio"]:checked +
label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAAGWB6gOAAAABG
dBTUEAALGPC/xhBQAABl9JREFUWAnNWFtslEUUPvNviyBgS0G0i9Uo9kVjvIAxhWLig1G2FRAajReogsqDc
okXYtTogyIGLykXTbwAloqKYgWlRaJPUKgXipdEHwRMZKEVaMtuKyy23X883+zO7/z/P7tF4cGTdOd25pwz
Z8585/wlykWS6cH6DjQytrr9EgFGTBw+3q/2vF1bSmoSHFUr4n5B2MKcMlZ3UPpX9Ci24mACW5d/0YVGCvx
oOU2LyshZtyupmf9pmcP96dApv1DISpxMQ4KitS0Jeduq+FRsK8APFouGOaTlYw7Eepqr3bh0MADDy9u70Q
3Rslnnq8MSxGo1Zrvj15N+m0IibBPTV8ddU0rIXRu/7VHrO1n8rDcOyYHsITWj4KOnmhaWDQ2e7JnqMVQxf
hjNaTgywiFJQ23qX9jaqaa7jvfvVS6wMek5IamdmcRmTNRMOE/PqxYXBmpaXHaT6sT4nsyT6X5VXTytGPQP
GBvbemSqz5VPfHwEIfCeXsu4XI+y7bSVh68dkOndtkMJIT5lU2YGtviH8J32qzYrVwvrquoOPqYlKItggXD
cts0PX6TGuPjq4AvI7oCj7q8sUqPOP9NUu7ZDNi8qc9RGWKI917IvRcuaM/ehtdlazd+4t5fWtiTXhO6t7i
t7CNuEYW7qVSPQ3BkStHH+OCzkpdJi9b4Uz3NbjnF4UK13a+bxwNF6IEU65LRUCHiHoUTTi81dtHt/agMf8
149p1rcAgQe6x3IdVlqfmlTpwwGmWeRTyIPZq//Y3j38f4VfINTmCnKMbWHHFrFL6oxyHtWx1aLOPQb+Qy3
hzQJOlUgIpM+Wzju+9CaOQFwgo+AfzYCDAJygJfmPl9fOTrH6w0KxTOCQp8ADID/WDAJ2AW0B44hkwDTTPo
QwgzLlI/wAOvnlooxIyJKybqWJG1q6wkpxMRWBiHt2BmvH5LSdSbAZw6uGQtaCAIxlxAIMh9z/dyoUHDD8w
5iZV5lkVYSimZsDhIeNgjpRWOWg4C74bJhQd684/Wt4XwIHImOGp7xTd7dxmL3CT8EYwk5Ys/
+o30G2+Bd2wkcvJ8Gw1QTInKJfPTmktCSg0f48+G/vAUTJrxJowOojWRRDLUDkgGW1RQPNgBbNAFGbZYhb2
q8Bu+mPT2oEvwZBfiChH+6hCDW9Yg2wGshDKCVjwB6eE5mKoIALxC1NGRPFnTPlePOodkVRVQ+dgjhur/5L
UVrWpJSvdRI5NLmR6K/6z1WQXqxamV8Jrm0gFVN5M3trHFnyajCRQ1zLjyhecw2ZJG5aOsrCE7038LxF+O/
8VJQlIVEwasUctnByg/wX3NJceH2XIptsjE3qEGquk2nl7Kyu4nrUCZ5RXSIqODnefkFQ2g0v66S7AuDK7v
4b/
+RPmpll/7S3odrExxr/EPvy0jk6aBrg4blNChzuWK5JOlMLj+XHrqx2EOsoJDBxig13tqRoF37TrIHhMu+X
NK0+OJXbftCBiFU3TRtxbmenDpaTCn/d0BlU2LO7WREfGlbF5f8fNIIVX+
+oGybue4zSEc0PPJUbLTJ5/WB52taEtSRGPDmbB08+HmVxaowtq0DIJTHGCzMAsQzKFYXZ0iRM2omclU3OV
PVmYLyZSeTz9Y3K0VzHVAGFAKcaSRSBuFpSld+gre+vGasuYfSfOPzGzoG9Yhvk2UAj705u9TDVc2yZNNRA
jYLR8wCTmdgFzjBBOAJ0mtfdp+xMZCJK4asIHk6szZkDGLQAiNQMEhAxLNFNlmezqwNyiAAGpTaMrDGmLNh
lE2W1qltyKRFhnMotJ1gjuUa/6txNllfZ2+Ag1nZoAxCbmHEOoVklUxxFBtUyTiE/HymBBmQZRJ08eeUhG5
lAy96zz7zyem2FXKdxVWIV4xqAexSejdPYar5gi2e/H38cegpyjIAvR/gCrmf67QCkSliseTjQ96i9MCPnC
WLaicV0x3XjwzKV2NAAQAS+Wof5y0dB4iRcs5vyHP4T4EunYJCNn7XS+t38/eCoCRFCq4285vPIL0ReYw98
gqSYm1FkchlmOY/3fYjNqS+la8ISZrocVs+sxqkFSCvpV35ATxWWCDk9GtGipnXjcxU5popT4sYwWf3lh96
Zf8AsiMlI464K5i/TBF5DTIZVYy57rMk5K1soPX/NSa/6nOwshXbIsJ5ftCPw9Dm/8nE39fKEykUbNdKAAA
AAElFTkSuQmCC")}#privacy-settings .radio-group-container
[type="radio"]:not(:checked) + label:before{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURQAAAOjp7ufp7uvx9ers8Ofp7ufr7+bp7ufp7ubp7
+bp7ejq7efp7icP+oYAAAAMdFJOUwB69RInrUSgwVLZV6JS+EoAAADBSURBVDjLlZRXEsMgDEStQvXe/7wh
2HHiArPRh2cMb6RFbVn+NSspV9WaU7EB4kFxmAZ/QlK7yhLdzKPk9pNuWFSo/MQwaQfxzAhw9e8BkAsjdwX
n0wisT09ZgSOi65OfzZd+RCSEUeYC0u7oi98To/CdlnERZItiCptUCvq+LcizemaULltmkHTpGXEGxR6owm
eQo7bvVHdXzkJUOEo4lQIqmVRZqAJzrUI1Hde+1CBwI8UNJzfm3MLgVg+5xMb2AnKHCD3v0FC4AAAAAElFT
kSuQmCC")}#privacy-settings .radio-group-container [type="radio"]:checked +
label{font-weight:500}#privacy-settings .build-info-container{word-break:break-
all}#privacy-settings.initial .back-button{display:none}#privacy-
settings.initial .view-container{-webkit-animation:page-animation-min-to-max .3s
ease-out;animation:page-animation-min-to-max .3s ease-out}#privacy-
settings:not(.initial) .view-container{min-height:0;max-height:80%;-webkit-
animation:page-animation-max-to-min .3s ease-out;animation:page-animation-max-to-
min .3s ease-out}#privacy-settings:not(.initial) .main-view-
container{display:none}#privacy-settings:not(.personalization) .personalization-
container{display:none}#privacy-settings:not(.data) .view-your-data-
container{display:none}#privacy-settings:not(.report) .report-ad-
container{display:none}#privacy-settings:not(.build-info) .build-info-
container{display:none}#privacy-settings .title{margin-bottom:1rem;font-
weight:600}#privacy-settings .heading{font-weight:600;font-size:.65rem}#privacy-
settings .heading2{font-weight:500;font-size:.55rem}#privacy-settings .text{font-
weight:300;font-size:.55rem}#privacy-settings .text-small{font-weight:300;font-
size:.5rem}#privacy-settings .delete-data-container{min-height:4rem}#privacy-
settings #delete-your-data-button{padding:1rem 0;color:#dc1a39;text-
align:left;font-weight:500;font-size:.65rem;}#privacy-settings #delete-your-data-
button .consent-icon-alert{padding:0 .25rem 0 0}#privacy-settings .delete-data-
confirm{display:none}#privacy-settings .delete-data-confirm-buttons{display:-
webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:start;align-
content:flex-start}#privacy-settings #delete-data-cancel,#privacy-settings #delete-
data-yes{padding:.75rem 1.5rem}#privacy-settings #delete-data-yes{border-
radius:.4rem;text-align:center;font-weight:500;font-size:.65rem;border:1px solid
#dc1a39;background:#dc1a39;color:#fff}#privacy-settings #delete-data-cancel{border-
radius:.4rem;text-align:center;font-weight:500;font-size:.65rem;border:1px solid
#e2e2e2;background-color:#fff;color:#000;margin-left:.5rem}#privacy-settings
.delete-data-confirmed-text{display:none}#privacy-settings .delete-data-
container.active #delete-your-data-button{display:none}#privacy-settings .delete-
data-container.active .delete-data-confirm{display:block}#privacy-settings .delete-
data-confirmed-text{display:none;text-align:center;opacity:0;-webkit-
transition:opacity 100ms ease-in;transition:opacity 100ms ease-in}#privacy-settings
.delete-data-container.data-deletion-confirmed #delete-your-data-
button{display:none}#privacy-settings .delete-data-container.data-deletion-
confirmed .delete-data-confirm{display:none}#privacy-settings .delete-data-
container.data-deletion-confirmed .delete-data-confirmed-
text{display:block;opacity:1}#privacy-settings
.page-link{color:#167dfb;cursor:pointer}@-webkit-keyframes page-animation-min-to-
max{0%{min-height:0;max-height:50%}50%{min-height:10%;max-height:10%}100%{min-
height:80%;max-height:80%}}@keyframes page-animation-min-to-max{0%{min-
height:0;max-height:50%}50%{min-height:10%;max-height:10%}100%{min-height:80%;max-
height:80%}}@-webkit-keyframes page-animation-max-to-min{0%{min-height:80%;max-
height:80%}50%{min-height:10%;max-height:10%}100%{min-height:0;max-
height:80%}}@keyframes page-animation-max-to-min{0%{min-height:80%;max-
height:80%}50%{min-height:10%;max-height:10%}100%{min-height:0;max-
height:80%}}body.portrait #privacy-settings .close-button{bottom:1.25rem;left:50%;-
webkit-transform:translateX(-50%);transform:translateX(-50%)}body.landscape
#privacy-settings .close-button{top:1.25rem;right:1.25rem}body.landscape #privacy-
settings .view-container{left:22%;min-height:85%;max-
height:85%;width:56%}body.landscape #privacy-settings:not(.initial) .view-
container{min-height:0;max-height:85%;-webkit-animation:page-animation-max-to-min .
3s ease-out;animation:page-animation-max-to-min .3s ease-out}body.landscape
#privacy-settings:not(.initial) .main-view-container{display:none}@media only
screen and (device-width:375px) and (device-height:812px) and (-webkit-device-
pixel-ratio:3){html #privacy-settings .safe-area-content{padding-top:constant(safe-
area-inset-top);padding-right:constant(safe-area-inset-right);padding-
left:constant(safe-area-inset-left);padding-top:env(safe-area-inset-top);padding-
right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}html
#privacy-settings .view-container{padding-bottom:constant(safe-area-inset-
bottom);padding-bottom:env(safe-area-inset-bottom)}}@media only screen and (device-
width:414px) and (device-height:896px) and (-webkit-device-pixel-ratio:3){html
#privacy-settings .safe-area-content{padding-top:constant(safe-area-inset-
top);padding-right:constant(safe-area-inset-right);padding-left:constant(safe-area-
inset-left);padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-
right);padding-left:env(safe-area-inset-left)}html #privacy-settings .view-
container{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-
area-inset-bottom)}}@media only screen and (device-width:414px) and (device-
height:896px) and (-webkit-device-pixel-ratio:2){html #privacy-settings .safe-area-
content{padding-top:constant(safe-area-inset-top);padding-right:constant(safe-area-
inset-right);padding-left:constant(safe-area-inset-left);padding-top:env(safe-area-
inset-top);padding-right:env(safe-area-inset-right);padding-left:env(safe-area-
inset-left)}html #privacy-settings .view-container{padding-bottom:constant(safe-
area-inset-bottom);padding-bottom:env(safe-area-inset-
bottom)}}#consent{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;w
idth:100%;height:100%;background:transparent;color:#181818;font-
size:.75rem;}#consent.prevent-clicks{pointer-events:none}#consent:not(.intro)
#consent-my-choices{display:-webkit-box;display:-ms-
flexbox;display:flex}#consent:not(.intro) #consent-
introduction{display:none}#consent:not(.intro) #consent-
homescreen{display:none}#consent.intro #consent-my-
choices{display:none}#consent.intro #consent-
introduction{display:block}#consent.intro #consent-
homescreen{display:none}#consent.homescreen #consent-my-
choices{display:none}#consent.homescreen #consent-
introduction{display:none}#consent.homescreen #consent-homescreen{display:-webkit-
box;display:-ms-flexbox;display:flex}#consent.android4-ios7-ios8 .consent-button-
container{padding:1rem 0;width:100%;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;background:#fff}#consent.android4-ios7-ios8
.consent-settings{height:100%}#consent.android4-ios7-ios8 .agree{-webkit-box-
flex:0;-ms-flex-positive:0;flex-grow:0}#consent.android4-ios7-ios8 .save-my-
choices{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}#consent.android4-ios7-
ios8 .safe-area{padding:0}#consent.android4-ios7-ios8 .empty-
block{height:6rem}#consent .safe-
area{position:fixed;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-
flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-
pack:end;justify-content:flex-end;padding:.5rem}#consent-my-
choices{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-
direction:column;flex-direction:column;height:80%;border-
radius:.5rem;background:#fff;}#consent-my-choices .back-button{padding:.35rem
1rem;border-radius:3rem;background:#333;color:#b4b4b4;font-weight:500;font-
size:.65rem;position:absolute;top:0;left:0;display:none}#consent-my-choices.show-
back-button .back-button{display:block}#consent-my-choices .consent-
settings{position:relative;overflow:scroll;padding:1.5rem;height:100%;border-
radius:.5rem;background:#fff;-webkit-overflow-scrolling:touch}#consent-my-
choices .consent-title{color:#000;font-weight:600;font-size:.95rem}#consent-my-
choices .consent-button-
container{position:absolute;right:0;bottom:0;left:0;display:-webkit-box;display:-
ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-
content:space-between;padding:1rem 1rem;border-bottom-right-radius:.5rem;border-
bottom-left-radius:.5rem;background:#fff;-webkit-box-shadow:0 0 3px 0
rgba(0,0,0,0.19);box-shadow:0 0 3px 0 rgba(0,0,0,0.19)}#consent-my-choices
.consent-button{position:relative;-ms-flex-item-align:center;align-
self:center;padding:.75rem 1rem;border-radius:2rem;-webkit-box-shadow:0 2px 4px 0
rgba(0,0,0,0.05);box-shadow:0 2px 4px 0 rgba(0,0,0,0.05);text-align:center;font-
weight:500;font-size:.85rem}#consent-my-choices .consent-button.click-animation
span{display:block;-webkit-animation:onagree .3s ease-in forwards;animation:onagree
.3s ease-in forwards}@-webkit-keyframes onagree{from{-webkit-
transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-
transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}@keyframes
onagree{from{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-
webkit-transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}#consent-
my-choices .agree{display:block;-webkit-box-flex:1;-ms-flex-positive:1;flex-
grow:1;background:#167dfb;color:#fff}#consent-my-choices
.disagree{display:block;margin-left:1rem;border:1px solid
#d8d8d8;color:#000}#consent-my-choices .save-my-choices{display:none;-webkit-box-
flex:1;-ms-flex-positive:1;flex-grow:1;background:#167dfb;color:#fff}#consent-my-
choices .consent-button-container:not(.show-save-my-choices-button)
.agree{display:block}#consent-my-choices .consent-button-container:not(.show-save-
my-choices-button) .disagree{display:block}#consent-my-choices .consent-button-
container:not(.show-save-my-choices-button) .save-my-choices{display:none}#consent-
my-choices .consent-button-container.show-save-my-choices-button
.agree{display:none}#consent-my-choices .consent-button-container.show-save-my-
choices-button .disagree{display:none}#consent-my-choices .consent-button-
container.show-save-my-choices-button .save-my-choices{display:block}#consent-my-
choices #third-party-switch.disabled{opacity:.33;pointer-events:none}#consent-my-
choices .switch-group-container{margin-top:.5rem}#consent-my-choices .switch-group-
container .switch-container{position:relative;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-
ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-
pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;padding:.5rem 0}#consent-my-choices .switch-group-
container .switch{position:relative;display:inline-
block;width:46px;height:28px}#consent-my-choices .switch-group-container .switch-
label{position:relative;width:80%}#consent-my-choices .switch-group-container
[type="checkbox"]:checked,#consent-my-choices .switch-group-container
[type="checkbox"]:not(:checked){position:absolute;visibility:hidden}#consent-my-
choices .switch-group-container [type="checkbox"]:checked + label,#consent-my-
choices .switch-group-container [type="checkbox"]:not(:checked) +
label{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-
color:#fafafa;border:2px solid #e3e3e3;border-radius:34px;-webkit-transition:.15s
ease-in-out;transition:.15s ease-in-out}#consent-my-choices .switch-group-container
[type="checkbox"]:checked + label:before,#consent-my-choices .switch-group-
container [type="checkbox"]:not(:checked) +
label:before{position:absolute;content:"";height:24px;width:24px;background-
color:#fff;border-radius:50%;-webkit-transition:.15s ease-in-out;transition:.15s
ease-in-out;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);box-shadow:0 2px 4px 0
rgba(0,0,0,0.2)}#consent-my-choices .switch-group-container
[type="checkbox"]:checked + label{background-color:#167dfb;border:2px solid
#167dfb}#consent-my-choices .switch-group-container [type="checkbox"]:focus +
label{-webkit-box-shadow:0 0 1px #167dfb;box-shadow:0 0 1px #167dfb}#consent-my-
choices .switch-group-container [type="checkbox"]:checked + label:before{-webkit-
transform:translateX(18px);transform:translateX(18px)}#consent-my-choices .empty-
block{height:5rem}#consent-my-choices .privacy-container #privacy-row-item-
container .row-item{margin:0 0 0 0;padding:1rem 0;border-top:1px solid
#e5e5e5;border-bottom:1px solid #fff}#consent-my-choices .privacy-container
#privacy-row-item-container .row-item-title{font-size:.75rem}#consent-my-choices
.privacy-container #privacy-row-item-container .description{color:#181818;text-
align:left;font-weight:400;font-size:.75rem}#consent-my-choices .privacy-container
#privacy-row-item-container .heading2{display:block;font-weight:600;font-
size:.75rem}#consent-my-choices
.privacy-container #privacy-row-item-container .arrow-icon{margin-
top:.25rem;padding-right:0;font-size:.75rem;opacity:1}#consent-my-choices .privacy-
container #privacy-row-item-container .heading2{font-size:.75rem}#consent-
introduction{position:relative;border-radius:.5rem;background:#fff;text-
align:center;}#consent-introduction .privacy-logo{margin-top:3rem;margin-
bottom:.25rem;font-size:2rem}#consent-introduction .intro-title{padding:0
1.25rem;font-weight:600;font-size:1rem}#consent-introduction .intro-text{padding:0
1.75rem}#consent-introduction .bold{font-weight:600}#consent-introduction
.continue-button{padding:.5rem 2rem 2rem 2rem;color:#167dfb;font-
size:.95rem}#consent-introduction .unity-logo{margin-bottom:1rem;font-
size:.65rem;opacity:.18}#consent-homescreen{position:relative;display:-webkit-
box;display:-ms-
flexbox;display:flex;width:100%;height:100%;background:transparent;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center;text-
align:center;}#consent-homescreen.prevent-clicks{pointer-events:none}#consent-
homescreen .homescreen-container{position:relative;-ms-flex-item-
align:center;align-self:center;margin:0 1rem;padding:2rem 2rem 1.5rem 2rem;border-
radius:.5rem;background:#fff}#consent-homescreen .stripe{display:none}#consent-
homescreen .item{margin:0 0 1rem 0}#consent-homescreen .privacy-
logo{color:#000;text-align:center;font-size:1.1rem}#consent-homescreen .title{font-
weight:600}#consent-homescreen .description{color:#181818;font-weight:300;font-
size:.55rem;line-height:1rem}#consent-homescreen .accept-all{margin-
bottom:.75rem;border:1px solid #167dfb;background-
color:#167dfb;color:#fff}#consent-homescreen .show-choices{border:1px solid
#e2e2e2;background-color:#fff;color:#181818}#consent-homescreen .consent-
button{position:relative;padding:.75rem 1rem;border-radius:4rem;text-
align:center;font-weight:500;font-size:.65rem}#consent-homescreen.no-borders-
test .consent-button{font-weight:600}#consent-homescreen.no-borders-test .show-
choices{border:0;opacity:.65}#consent-homescreen.no-borders-test .logo-
container{display:none}#consent-homescreen .page-link{text-
decoration:underline;cursor:pointer}#consent-homescreen .unityads-logo{background-
image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAgCAMAAAD+K8DjAAAABG
dBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkUExURQAAAHd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+hXd+h
Xd+hXd+hRvg3+0AAAAMdFJOUwDrdiFWuJk7CNEU/sRHFUYAAAJ9SURBVFjD7ZeLcuMwCEUNQiCk///fvQjb
TTbZVGk7k+xMmfFLzyNAIG/br/zH0owrvwMEjTHqSym6qI8U6q8EqTtE3ORrQxSxq2+T9vwggvld2aZW9PF
sDVPY3bVc67KO8hyEMXOtbBiF4SE0/EFjHRi+3mtSoE65bvociMEcnl0KDSo+Hg3AXjtA7jg0D6H6DZDgqP
1cLudt+m/px6OXwx69lNahEdyzuqFgPp3aYYwmzJYgxspLPHLBYVBNC3fJhSk5KooTFyLRMRsyeXQZKKCpx
2wVnRVd5xIKvIWGAqTpID8W9qmT1t25G7pg0Z12p9P5hLm47NsJc6FQHC1cbE6A6h0bfTthIRsUw71LDAOy
3sBlKxz6YeR8x3rKDQhuc2iOyukj4E79TQ9NhqBBkaaKonWMZM4rm9Z2iXlKAvF2A6JJWj5A4tPOPZtWCfs
kzVwQNFJtwUN4/CUJYN5uQfgWJGzTaNcoilR1YgHg3DU645M9CyJPgUQ4OSwDd3aKC5+XIFvhSB2yQAKvk5
BpmgstL4DIoMMyMGcLgS3O+IHNXMrczOQrxnngrLESHvdAPB307O5HBKFwDM5aBMckqLS0ffUf23dubR93Q
UaVRE3HtDPUKlTjURjBpMdXxEzfniLJUGZHQGszI9dr08xcE9FYs0P6k55eYChBtTs5tIQYHE+y7bmQVsMY
Z4iHcVWliZS4ZuaVBodq8TbjthyWETnybovXHkm0xzEAQ+B1LedcBPlIet3HsLWOvNx0Me1FAFCJ3LUfA9Y
ONP7J0eVLMjeyyucHo8s0D6W3nwbZj4r0naPiz0jJE/ykKdtrpb/F78T5V/EGP1i/8jL5A9oqHSWefc3yAA
AAAElFTkSuQmCC");width:100%;height:1rem;border-radius:0;background-
position:center;background-size:contain;background-repeat:no-repeat}#consent-
homescreen .click-animation.agree span{display:block;-webkit-animation:onagree .3s
ease-in forwards;animation:onagree .3s ease-in forwards}@-webkit-keyframes
onagree{from{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-
webkit-transform:translateX(-8px);transform:translateX(-
8px);opacity:.25}}@keyframes onagree{from{-webkit-
transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-
transform:translateX(-8px);transform:translateX(-8px);opacity:.25}}.portrait
#consent .back-button{margin-top:-.5rem;-webkit-transform:translateY(-
100%);transform:translateY(-100%)}.landscape #consent #consent-
introduction,.landscape #consent #consent-my-choices{left:15%;width:70%}.landscape
#consent #consent-my-choices{height:100%}.landscape #consent #consent-
introduction .continue-button{padding:.5rem 2rem 1rem 2rem}.landscape #consent
#consent-introduction .privacy-logo{margin-top:2rem}.landscape #consent .back-
button{margin-left:-.5rem;-webkit-transform:translateX(-
100%);transform:translateX(-100%)}body.landscape #consent-homescreen .homescreen-
container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-
pack:distribute;justify-content:space-around;-webkit-box-align:center;-ms-flex-
align:center;align-items:center;margin:1rem 2rem}body.landscape #consent-homescreen
.homescreen-container{position:relative;-ms-flex-item-align:center;align-
self:center;margin:0 1rem;padding:1.5rem 1.5rem 1rem 1.5rem;border-
radius:.5rem;background:#fff}body.landscape #consent-homescreen
.stripe{position:absolute;top:0;display:block;width:1px;height:100%;background-
color:#e5e5e5}body.landscape #consent-homescreen .top-container{-webkit-box-
flex:0;-ms-flex:0 1 50%;flex:0 1 50%;margin-right:1.5rem}body.landscape #consent-
homescreen .bottom-container{-webkit-box-flex:0;-ms-flex:0 1 50%;flex:0 1
50%;margin-left:1.5rem}body.landscape #consent.android4-ios7-ios8 #consent-
homescreen .homescreen-container{margin:0}body.landscape #consent.android4-ios7-
ios8 #consent-homescreen .top-container{left:0;margin:0;width:50%}body.landscape
#consent.android4-ios7-ios8 #consent-homescreen .bottom-container{left:50%;margin-
left:.5rem;width:50%}@media only screen and (device-width:375px) and (device-
height:812px) and (-webkit-device-pixel-ratio:3){html #consent .safe-
area{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);top:env(safe-area-inset-top);right:env(safe-area-inset-
right);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);padding:0 .5rem}html .landscape #consent .safe-area{padding:.5rem 0 0
0}}@media only screen and (device-width:414px) and (device-height:896px) and (-
webkit-device-pixel-ratio:3){html #consent .safe-area{top:constant(safe-area-inset-
top);right:constant(safe-area-inset-right);bottom:constant(safe-area-inset-
bottom);left:constant(safe-area-inset-left);top:env(safe-area-inset-
top);right:env(safe-area-inset-right);bottom:env(safe-area-inset-
bottom);left:env(safe-area-inset-left);padding:0 .5rem}html .landscape #consent
.safe-area{padding:.5rem 0 0 0}}@media only screen and (device-width:414px) and
(device-height:896px) and (-webkit-device-pixel-ratio:2){html #consent .safe-
area{top:constant(safe-area-inset-top);right:constant(safe-area-inset-
right);bottom:constant(safe-area-inset-bottom);left:constant(safe-area-inset-
left);top:env(safe-area-inset-top);right:env(safe-area-inset-
right);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-
left);padding:0 .5rem}html .landscape #consent .safe-area{padding:.5rem 0 0
0}}</style>
<script>'use strict';
var h = h || {};
h.scope = {};
h.arrayIteratorImpl = function(k) {
var q = 0;
return function() {
return q < k.length ? {done:!1, value:k[q++]} : {done:!0};
};
};
h.arrayIterator = function(k) {
return {next:h.arrayIteratorImpl(k)};
};
h.makeIterator = function(k) {
var q = "undefined" != typeof Symbol && Symbol.iterator && k[Symbol.iterator];
return q ? q.call(k) : h.arrayIterator(k);
};
h.arrayFromIterator = function(k) {
for (var q, A = []; !(q = k.next()).done;) {
A.push(q.value);
}
return A;
};
h.arrayFromIterable = function(k) {
return k instanceof Array ? k : h.arrayFromIterator(h.makeIterator(k));
};
h.ASSUME_ES5 = !1;
h.ASSUME_NO_NATIVE_MAP = !1;
h.ASSUME_NO_NATIVE_SET = !1;
h.SIMPLE_FROUND_POLYFILL = !1;
h.objectCreate = h.ASSUME_ES5 || "function" == typeof Object.create ? Object.create
: function(k) {
function q() {
}
q.prototype = k;
return new q;
};
h.underscoreProtoCanBeSet = function() {
var k = {a:!0}, q = {};
try {
return q.__proto__ = k, q.a;
} catch (A) {
}
return !1;
};
h.setPrototypeOf = "function" == typeof Object.setPrototypeOf ?
Object.setPrototypeOf : h.underscoreProtoCanBeSet() ? function(k, q) {
k.__proto__ = q;
if (k.__proto__ !== q) {
throw new TypeError(k + " is not extensible");
}
return k;
} : null;
h.inherits = function(k, q) {
k.prototype = h.objectCreate(q.prototype);
k.prototype.constructor = k;
if (h.setPrototypeOf) {
(0,h.setPrototypeOf)(k, q);
} else {
for (var A in q) {
if ("prototype" != A) {
if (Object.defineProperties) {
var R = Object.getOwnPropertyDescriptor(q, A);
R && Object.defineProperty(k, A, R);
} else {
k[A] = q[A];
}
}
}
}
k.superClass_ = q.prototype;
};
h.getGlobal = function(k) {
return "undefined" != typeof window && window === k ? k : "undefined" != typeof
global && null != global ? global : k;
};
h.global = h.getGlobal(this);
h.defineProperty = h.ASSUME_ES5 || "function" == typeof Object.defineProperties ?
Object.defineProperty : function(k, q, A) {
k != Array.prototype && k != Object.prototype && (k[q] = A.value);
};
h.polyfill = function(k, q) {
if (q) {
var A = h.global;
k = k.split(".");
for (var R = 0; R < k.length - 1; R++) {
var Ga = k[R];
Ga in A || (A[Ga] = {});
A = A[Ga];
}
k = k[k.length - 1];
R = A[k];
q = q(R);
q != R && null != q && h.defineProperty(A, k, {configurable:!0, writable:!0,
value:q});
}
};
h.FORCE_POLYFILL_PROMISE = !1;
h.polyfill("Promise", function(k) {
function q(k) {
this.state_ = 0;
this.result_ = void 0;
this.onSettledCallbacks_ = [];
var q = this.createResolveAndReject_();
try {
k(q.resolve, q.reject);
} catch (nc) {
q.reject(nc);
}
}
function A() {
this.batch_ = null;
}
function R(k) {
return k instanceof q ? k : new q(function(q) {
q(k);
});
}
if (k && !h.FORCE_POLYFILL_PROMISE) {
return k;
}
A.prototype.asyncExecute = function(k) {
if (null == this.batch_) {
this.batch_ = [];
var q = this;
this.asyncExecuteFunction(function() {
q.executeBatch_();
});
}
this.batch_.push(k);
};
var Ga = h.global.setTimeout;
A.prototype.asyncExecuteFunction = function(k) {
Ga(k, 0);
};
A.prototype.executeBatch_ = function() {
for (; this.batch_ && this.batch_.length;) {
var k = this.batch_;
this.batch_ = [];
for (var q = 0; q < k.length; ++q) {
var A = k[q];
k[q] = null;
try {
A();
} catch (ke) {
this.asyncThrow_(ke);
}
}
}
this.batch_ = null;
};
A.prototype.asyncThrow_ = function(k) {
this.asyncExecuteFunction(function() {
throw k;
});
};
q.prototype.createResolveAndReject_ = function() {
function k(k) {
return function(qa) {
A || (A = !0, k.call(q, qa));
};
}
var q = this, A = !1;
return {resolve:k(this.resolveTo_), reject:k(this.reject_)};
};
q.prototype.resolveTo_ = function(k) {
if (k === this) {
this.reject_(new TypeError("A Promise cannot resolve to itself"));
} else {
if (k instanceof q) {
this.settleSameAsPromise_(k);
} else {
a: {
switch(typeof k) {
case "object":
var qa = null != k;
break a;
case "function":
qa = !0;
break a;
default:
qa = !1;
}
}
qa ? this.resolveToNonPromiseObj_(k) : this.fulfill_(k);
}
}
};
q.prototype.resolveToNonPromiseObj_ = function(k) {
var q = void 0;
try {
q = k.then;
} catch (nc) {
this.reject_(nc);
return;
}
"function" == typeof q ? this.settleSameAsThenable_(q, k) : this.fulfill_(k);
};
q.prototype.reject_ = function(k) {
this.settle_(2, k);
};
q.prototype.fulfill_ = function(k) {
this.settle_(1, k);
};
q.prototype.settle_ = function(k, q) {
if (0 != this.state_) {
throw Error("Cannot settle(" + k + ", " + q + "): Promise already settled in
state" + this.state_);
}
this.state_ = k;
this.result_ = q;
this.executeOnSettledCallbacks_();
};
q.prototype.executeOnSettledCallbacks_ = function() {
if (null != this.onSettledCallbacks_) {
for (var k = 0; k < this.onSettledCallbacks_.length; ++k) {
hf.asyncExecute(this.onSettledCallbacks_[k]);
}
this.onSettledCallbacks_ = null;
}
};
var hf = new A;
q.prototype.settleSameAsPromise_ = function(k) {
var q = this.createResolveAndReject_();
k.callWhenSettled_(q.resolve, q.reject);
};
q.prototype.settleSameAsThenable_ = function(k, q) {
var A = this.createResolveAndReject_();
try {
k.call(q, A.resolve, A.reject);
} catch (ke) {
A.reject(ke);
}
};
q.prototype.then = function(k, A) {
function R(k, q) {
return "function" == typeof k ? function(q) {
try {
qa(k(q));
} catch (ya) {
La(ya);
}
} : q;
}
var qa, La, Ga = new q(function(k, q) {
qa = k;
La = q;
});
this.callWhenSettled_(R(k, qa), R(A, La));
return Ga;
};
q.prototype.catch = function(k) {
return this.then(void 0, k);
};
q.prototype.callWhenSettled_ = function(k, q) {
function A() {
switch(R.state_) {
case 1:
k(R.result_);
break;
case 2:
q(R.result_);
break;
default:
throw Error("Unexpected state: " + R.state_);
}
}
var R = this;
null == this.onSettledCallbacks_ ? hf.asyncExecute(A) :
this.onSettledCallbacks_.push(A);
};
q.resolve = R;
q.reject = function(k) {
return new q(function(q, A) {
A(k);
});
};
q.race = function(k) {
return new q(function(q, A) {
for (var qa = h.makeIterator(k), La = qa.next(); !La.done; La = qa.next()) {
R(La.value).callWhenSettled_(q, A);
}
});
};
q.all = function(k) {
var A = h.makeIterator(k), qa = A.next();
return qa.done ? R([]) : new q(function(k, q) {
function La(q) {
return function(A) {
Ga[q] = A;
nc--;
0 == nc && k(Ga);
};
}
var Ga = [], nc = 0;
do {
Ga.push(void 0), nc++, R(qa.value).callWhenSettled_(La(Ga.length - 1), q),
qa = A.next();
} while (!qa.done);
});
};
return q;
}, "es6", "es3");
h.polyfill("Number.isFinite", function(k) {
return k ? k : function(k) {
return "number" !== typeof k ? !1 : !isNaN(k) && Infinity !== k && -Infinity !
== k;
};
}, "es6", "es3");
h.polyfill("Number.isInteger", function(k) {
return k ? k : function(k) {
return Number.isFinite(k) ? k === Math.floor(k) : !1;
};
}, "es6", "es3");
h.owns = function(k, q) {
return Object.prototype.hasOwnProperty.call(k, q);
};
h.assign = "function" == typeof Object.assign ? Object.assign : function(k, q) {
for (var A = 1; A < arguments.length; A++) {
var R = arguments[A];
if (R) {
for (var Ga in R) {
h.owns(R, Ga) && (k[Ga] = R[Ga]);
}
}
}
return k;
};
h.polyfill("Object.assign", function(k) {
return k || h.assign;
}, "es6", "es3");
h.SYMBOL_PREFIX = "jscomp_symbol_";
h.initSymbol = function() {
h.initSymbol = function() {
};
h.global.Symbol || (h.global.Symbol = h.Symbol);
};
h.Symbol = function() {
var k = 0;
return function(q) {
return h.SYMBOL_PREFIX + (q || "") + k++;
};
}();
h.initSymbolIterator = function() {
h.initSymbol();
var k = h.global.Symbol.iterator;
k || (k = h.global.Symbol.iterator = h.global.Symbol("iterator"));
"function" != typeof Array.prototype[k] && h.defineProperty(Array.prototype, k,
{configurable:!0, writable:!0, value:function() {
return h.iteratorPrototype(h.arrayIteratorImpl(this));
}});
h.initSymbolIterator = function() {
};
};
h.initSymbolAsyncIterator = function() {
h.initSymbol();
var k = h.global.Symbol.asyncIterator;
k || (k = h.global.Symbol.asyncIterator = h.global.Symbol("asyncIterator"));
h.initSymbolAsyncIterator = function() {
};
};
h.iteratorPrototype = function(k) {
h.initSymbolIterator();
k = {next:k};
k[h.global.Symbol.iterator] = function() {
return this;
};
return k;
};
h.iteratorFromArray = function(k, q) {
h.initSymbolIterator();
k instanceof String && (k += "");
var A = 0, R = {next:function() {
if (A < k.length) {
var Ga = A++;
return {value:q(Ga, k[Ga]), done:!1};
}
R.next = function() {
return {done:!0, value:void 0};
};
return R.next();
}};
R[Symbol.iterator] = function() {
return R;
};
return R;
};
h.polyfill("Array.prototype.keys", function(k) {
return k ? k : function() {
return h.iteratorFromArray(this, function(k) {
return k;
});
};
}, "es6", "es3");
h.polyfill("Number.MAX_SAFE_INTEGER", function() {
return 9007199254740991;
}, "es6", "es3");
(function() {
function k() {
if ("undefined" !== typeof window.orientation && "ios" === kf && !Pf) {
switch(window.orientation) {
case 180:
var b = "ios-portrait-upside-down";
break;
case 90:
b = "ios-landscape-left";
break;
case -90:
b = "ios-landscape-right";
break;
default:
b = "ios-portrait";
}
document.body.classList.remove.apply(document.body.classList, ["ios-
portrait", "ios-landscape-left", "ios-landscape-right", "ios-portrait-upside-
down"]);
b && document.body.classList.add(b);
}
}
function q() {
Qf || (Qf = !0, "function" === typeof Jg ? Jg(A) : setTimeout(A, 100));
}
function A() {
var b = 1 <= window.innerWidth / window.innerHeight ? "landscape" : "portrait";
"undefined" === typeof window.orientation || "ios" !== kf || Pf || (b = 90 ===
Math.abs(window.orientation) ? "landscape" : "portrait");
document.body.classList.remove("landscape");
document.body.classList.remove("portrait");
document.body.classList.add(b);
Qf = !1;
}
function R(b) {
var a = this;
window && window.addEventListener && window.addEventListener("error",
function(b) {
return a.onError(b);
}, !1);
this._core = new Ga(b);
}
function Ga(b) {
this._initialized = !1;
this.NativeBridge = b;
var a = b.getPlatform();
this.Api = {Cache:new fb(b), Connectivity:new lf(b), DeviceInfo:new ya(b),
Request:new Rc(b), Resolve:new jf(b), Sdk:new La(b), Storage:new Sc(b), Android:a
=== p.ANDROID ? {Broadcast:new Td(b), Intent:new Rf(b), Lifecycle:new Ce(b)} : void
0, iOS:a === p.IOS ? {Notification:new zd(b), UrlScheme:new Of(b)} : void 0};
this.FocusManager = new cb(this.NativeBridge.getPlatform(), this.Api);
this.WakeUpManager = new Sf(this.Api);
this.CacheBookkeeping = new Jb(this.Api);
this.ResolveManager = new Kb(this.Api);
this.MetaDataManager = new Tf(this.NativeBridge.getPlatform(), this.Api);
this.StorageBridge = new nc(this.Api);
}
function hf(b) {
this._core = b;
this.Api = {iOS:b.NativeBridge.getPlatform() === p.IOS ? {AppSheet:new
qa(b.NativeBridge)} : void 0};
}
function qa(b) {
b = B.call(this, b, "AppSheet", gb.APPSHEET) || this;
b.onPrepared = new za;
b.onOpen = new za;
b.onClose = new za;
b.onError = new Dc;
return b;
}
function Ce(b) {
b = B.call(this, b, "Lifecycle", gb.LIFECYCLE) || this;
b.onActivityCreated = new za;
b.onActivityStarted = new za;
b.onActivityResumed = new za;
b.onActivityPaused = new za;
b.onActivityStopped = new za;
b.onActivitySaveInstanceState = new za;
b.onActivityDestroyed = new za;
return b;
}
function nc(b, a) {
this.onPublicStorageWrite = new Ma;
this.onPrivateStorageWrite = new Ma;
this._storageBatchInterval = 1000;
this._core = b;
this._publicStorageQueue = {commands:[]};
this._privateStorageQueue = {commands:[]};
a && (this._storageBatchInterval = a);
}
function ke() {
}
function La(b) {
return B.call(this, b, "Sdk") || this;
}
function jf(b) {
b = B.call(this, b, "Resolve", gb.RESOLVE) || this;
b.onComplete = new Tc;
b.onFailed = new De;
return b;
}
function Rc(b) {
b = B.call(this, b, "Request", gb.REQUEST) || this;
b.onComplete = new Ud;
b.onFailed = new Tc;
return b;
}
function Of(b) {
return B.call(this, b, "UrlScheme") || this;
}
function zd(b) {
b = B.call(this, b, "Notification", gb.NOTIFICATION) || this;
b.onNotification = new Dc;
return b;
}
function ya(b) {
var a = B.call(this, b, "DeviceInfo") || this;
b.getPlatform() === p.IOS ? a.Ios = new ub(b) : a.Android = new ia(b);
return a;
}
function ub(b) {
b = B.call(this, b, "DeviceInfo", gb.DEVICEINFO) || this;
b.onVolumeChanged = new Dc;
return b;
}
function lf(b) {
b = B.call(this, b, "Connectivity", gb.CONNECTIVITY) || this;
b.onConnected = new Dc;
b.onDisconnected = new Ma;
return b;
}
function Rf(b) {
return B.call(this, b, "Intent") || this;
}
function Td(b) {
b = B.call(this, b, "Broadcast", gb.BROADCAST) || this;
b.onBroadcastAction = new De;
return b;
}
function Ad(b, a) {
var c = z.call(this, "UnityInfo", {analyticsUserId:["string", "undefined"],
analyticsSessionId:["string", "undefined"]}) || this;
c._platform = b;
c._core = a;
return c;
}
function vb(b) {
var a = z.call(this, "ClientInfo", {gameId:["string"], testMode:["boolean"],
applicationName:["string"], applicationVersion:["string"], sdkVersion:["number"],
sdkVersionName:["string"], debuggable:["boolean"], configUrl:["string"],
webviewUrl:["string"], webviewHash:["string", "null"], webviewVersion:["string",
"null"], initTimestamp:["number"], reinitialized:["boolean"]}) || this;
a.set("gameId", b[0]);
a.set("testMode", b[1]);
a.set("applicationName", b[2]);
a.set("applicationVersion", b[3]);
a.set("sdkVersion", b[4]);
a.set("sdkVersionName", b[5]);
a.set("debuggable", b[6]);
a.set("configUrl", b[7]);
a.set("webviewUrl", b[8]);
a.set("webviewHash", b[9]);
a.set("webviewVersion", b[10]);
a.set("initTimestamp", b[11]);
a.set("reinitialized", b[12]);
return a;
}
function Sf(b) {
var a = this;
this.onNetworkConnected = new Ma;
this._core = b;
this._firstConnection = Date.now();
this._connectionEvents = 0;
this._core.Connectivity.onConnected.subscribe(function(b, d) {
return a.onConnected(b, d);
});
}
function Kb(b) {
this._core = b;
this._core.Resolve.onComplete.subscribe(function(a, b, d) {
return Kb.onResolveComplete(a, b, d);
});
this._core.Resolve.onFailed.subscribe(function(a, b, d, e) {
return Kb.onResolveFailed(a, b, d, e);
});
}
function Tf(b, a) {
this._metaDataCache = {};
this._platform = b;
this._core = a;
}
function db(b) {
this._isJaegerTracingEnabled = !1;
this._request = b;
}
function cb(b, a) {
var c = this;
this.onAppForeground = new Ma;
this.onAppBackground = new Ma;
this.onActivityResumed = new za;
this.onActivityPaused = new za;
this.onActivityDestroyed = new za;
this.onScreenOn = new Ma;
this._screenListener = "screenListener";
this.ACTION_SCREEN_ON = "android.intent.action.SCREEN_ON";
this._appForeground = !0;
this._core = a;
b === p.ANDROID ? (a.Android.Broadcast.onBroadcastAction.subscribe(function(a,
b, f, g) {
return c.onBroadcastAction(a, b, f, g);
}), this._core.Android.Lifecycle.onActivityResumed.subscribe(function(a) {
return c.onResume(a);
}), this._core.Android.Lifecycle.onActivityPaused.subscribe(function(a) {
return c.onPause(a);
}), this._core.Android.Lifecycle.onActivityDestroyed.subscribe(function(a) {
return c.onDestroyed(a);
})) : a.iOS.Notification.onNotification.subscribe(function(a, b) {
return c.onNotification(a, b);
});
}
function Ta(b, a, c, d, e, f, g) {
this._platform = b;
this._core = a;
this._metaDataManager = c;
this._clientInfo = d;
this._deviceInfo = e;
this._unityInfo = f;
this._request = g;
}
function Ee() {
var b = Ua.call(this, "AdapterMetaData", Object.assign({}, Ua.Schema, {name:
["string", "undefined"], version:["string", "undefined"]})) || this;
b.set("category", "adapter");
b.set("keys", ["name", "version"]);
return b;
}
function Jb(b) {
this._rootKey = "cache";
this._core = b;
}
function Uf(b) {
return hb.call(this, b.message, b.name) || this;
}
function Kg(b) {
this._core = b;
this.AnalyticsStorage = new Ec(b.Api);
this.AnalyticsManager = new Y(b.NativeBridge.getPlatform(), b.Api,
b.RequestManager, b.ClientInfo, b.DeviceInfo, b.Config, b.FocusManager,
this.AnalyticsStorage);
}
function Y(b, a, c, d, e, f, g, l) {
this._newSessionTreshold = 1800000;
this._platform = b;
this._core = a;
this._focusManager = g;
this._request = c;
this._clientInfo = d;
this._deviceInfo = e;
this._configuration = f;
this._storage = l;
this._endpoint = "https://prd-lender.cdp.internal.unity3d.com/v1/events";
this._cdpEndpoint = "https://cdp.cloud.unity3d.com/v1/events";
}
function Ra() {
}
function Ec(b) {
this._core = b;
}
function Fc(b, a, c) {
this._wasRealtimePlacement = this._showing = !1;
this.Config = Fe.parse(b, a.ClientInfo);
this._core = a;
this._store = c;
b = a.NativeBridge.getPlatform();
this.Api = {Listener:new Bd(a.NativeBridge), Placement:new Ge(a.NativeBridge),
VideoPlayer:new Wb(a.NativeBridge), Android:b === p.ANDROID ? {AdUnit:new
Xb(a.NativeBridge), VideoPlayer:new He(a.NativeBridge)} : void 0, iOS:b === p.IOS ?
{AdUnit:new ib(a.NativeBridge), VideoPlayer:new mf(a.NativeBridge)} : void 0};
this.AdMobSignalFactory = new Ha(this._core.NativeBridge.getPlatform(),
this._core.Api, this.Api, this._core.ClientInfo, this._core.DeviceInfo,
this._core.FocusManager);
this._core.NativeBridge.getPlatform() === p.ANDROID ?
(document.body.classList.add("android"), this.Container = new rb(this._core.Api,
this.Api, this._core.DeviceInfo)) : this._core.NativeBridge.getPlatform() === p.IOS
&& (a = this._core.DeviceInfo.getModel(), a.match(/iphone/i) || a.match(/ipod/i) ?
document.body.classList.add("iphone") : a.match(/ipad/i) &&
document.body.classList.add("ipad"), this.Container = new ta(this._core.Api,
this.Api, this._core.DeviceInfo, this._core.FocusManager,
this._core.ClientInfo));
this.SessionManager = new Uc(this._core.Api, this._core.RequestManager,
this._core.StorageBridge);
this.BackupCampaignManager = new Lb(this._core.NativeBridge.getPlatform(),
this._core.Api, this._core.StorageBridge, this._core.Config, this._core.DeviceInfo,
this._core.ClientInfo);
this.ProgrammaticTrackingService = new
ld(this._core.NativeBridge.getPlatform(), this._core.RequestManager,
this._core.ClientInfo, this._core.DeviceInfo);
this.ContentTypeHandlerManager = new nf;
this.ThirdPartyEventManagerFactory = new Lg(this._core.Api,
this._core.RequestManager);
}
function oc(b) {
this._adUnitContainer = b.adUnitContainer;
this._platform = b.platform;
this._privacyManager = b.privacyManager;
this._adsConfig = b.adsConfig;
this._core = b.core;
this._landingPage = Gc.HOMESCREEN;
var a = {platform:b.platform, privacyManager:b.privacyManager,
landingPage:this._landingPage, useAltMyChoicesButtonText:!1,
ctaABTest:ph.isValid(b.abGroup)};
this._platform === p.ANDROID ? a = Object.assign({}, a,
{apiLevel:b.deviceInfo.getApiLevel()}) : this._platform === p.IOS && (a =
Object.assign({}, a, {osVersion:b.deviceInfo.getOsVersion()}));
this._unityConsentView = new Aa(a);
this._unityConsentView.addEventHandler(this);
}
function Ie() {
var b = Ua.call(this, "PlayerMetaData", Object.assign({}, Ua.Schema,
{server_id:["string"]})) || this;
b.set("keys", ["server_id"]);
b.set("category", "player");
return b;
}
function Mg(b, a) {
var c = {};
c[Vd.ContentType] = {parser:new Vd(b.NativeBridge.getPlatform()), factory:new
Vf(new Wf(b, a))};
this._contentTypeHandlerMap = c;
return this;
}
function Wf(b) {
return Na.apply(this, arguments) || this;
}
function Je(b, a) {
b.targetGameName = a.getGameName();
b = wb.call(this, b) || this;
b._campaign = a;
b._template = new Ia(b.getTemplate(), b._localization);
var c = a.getPortrait(), d = a.getLandscape(), e = a.getSquare(), f = 20 *
a.getRating();
b._templateData = {gameName:a.getGameName(), gameIcon:a.getGameIcon().getUrl(),
endScreenLandscape:c ? c.getUrl() : void 0, endScreenPortrait:d ? d.getUrl() : void
0, endScreenSquare:e ? e.getUrl() : void 0, rating:f.toString(),
ratingCount:b._localization.abbreviate(a.getRatingCount()),
endscreenAlt:b.getEndscreenAlt()};
return b;
}
function Vd(b) {
return Yb.apply(this, arguments) || this;
}
function Vf(b) {
return Mb.apply(this, arguments) || this;
}
function Wd(b) {
var a = M.call(this, b) || this;
b.overlay.setSpinnerEnabled(!Oa.isCached(b.campaign));
a._endScreen = b.endScreen;
a._endScreen.render();
a._endScreen.hide();
document.body.appendChild(a._endScreen.container());
a._privacy = b.privacy;
return a;
}
function Vc(b) {
var a = N.call(this, b) || this;
a._xpromoAdUnit = b.adUnit;
a._xpromoOperativeEventManager = b.operativeEventManager;
a._xpromoCampaign = b.campaign;
return a;
}
function Xf(b, a, c) {
return Cd.call(this, b, a, c) || this;
}
function Yf(b, a, c) {
a = gc.call(this, b, a, c) || this;
a._xPromoAdUnit = b;
return a;
}
function Ng(b, a) {
a = new Zf(b, a);
var c = {};
b = new Hc(b);
c[Hc.ContentType] = {parser:b, factory:new $f(a)};
this._contentTypeHandlerMap = c;
return this;
}
function Zf(b) {
return Na.apply(this, arguments) || this;
}
function Wc(b, a, c) {
var d = I.call(this, b, "vast-end-screen") || this;
d._isSwipeToCloseEnabled = !1;
d._callButtonEnabled = !0;
d._campaign = a.campaign;
d._template = new Ia('<div class="btn-close-region<%= data.endscreenAlt ? \' \'
+ data.endscreenAlt : \'\' %>"><a class="btn-close brand"><span class="icon-
close"></span></a></div><div class="campaign-container<%= data.endscreenAlt ? \' \'
+ data.endscreenAlt : \'\' %>"><div class="game-background game-background-
landscape brand" style="background-image: url(\'<%= data.endScreenLandscape
%>\')"></div><div class="game-background game-background-portrait brand"
style="background-image: url(\'<%= data.endScreenPortrait %>\')"></div></div><div
class="privacy-button"><span class="icon-gdpr"></span></div><div class="china-
advertisement">\u5e7f\u544a</div>');
d._country = a.country;
d._privacy = c;
d._campaign && (b = d._campaign.getLandscape(), c = d._campaign.getPortrait(),
d._templateData = {endScreenLandscape:b ? b.getUrl() : c ? c.getUrl() : void 0,
endScreenPortrait:c ? c.getUrl() : b ? b.getUrl() : void 0});
d._bindings = [{event:"click", listener:function(a) {
return d.onClickEvent(a);
}, selector:".game-background"}, {event:"click", listener:function(a) {
return d.onCloseEvent(a);
}, selector:".btn-close-region"}, {event:"click", listener:function(a) {
return d.onPrivacyEvent(a);
}, selector:".privacy-button"}];
O.isTimehopApp(a.clientInfo.getGameId()) && (d._isSwipeToCloseEnabled = !0,
d._bindings.push({event:"swipe", listener:function(a) {
return d.onCloseEvent(a);
}, selector:".campaign-container, .game-background"}));
return d;
}
function ag(b, a, c) {
a = T.call(this, b, a, c, !0) || this;
a._seatId = b.campaign.getSeatId();
a._hasEndcard = b.campaign.hasEndscreen();
return a;
}
function $f(b) {
return Mb.apply(this, arguments) || this;
}
function xb(b) {
var a = N.call(this, b) || this;
a._vastAdUnit = b.adUnit;
a._vastCampaign = b.campaign;
a._clientInfo = b.clientInfo;
return a;
}
function Dd(b, a) {
this._platform = a.platform;
this._core = a.core;
this._vastAdUnit = b;
this._request = a.request;
this._vastCampaign = a.campaign;
this._vastEndScreen = this._vastAdUnit.getEndScreen();
this._gameSessionId = a.gameSessionId;
this._abGroup = a.coreConfig.getAbGroup();
}
function Ed(b, a) {
var c = jb.call(this, b, a) || this;
c._platform = a.platform;
c._core = a.core;
c._vastAdUnit = b;
c._request = a.request;
c._vastCampaign = a.campaign;
c._placement = a.placement;
c._moat = yb.getMoat();
c._vastOverlay = c._vastAdUnit.getOverlay();
c._gameSessionId = a.gameSessionId;
c._abGroup = a.coreConfig.getAbGroup();
return c;
}
function Pa(b) {
var a = M.call(this, b) || this;
a._muted = !1;
a._events = [[0, "AdVideoStart"], [0.25, "AdVideoFirstQuartile"], [0.5,
"AdVideoMidpoint"], [0.75, "AdVideoThirdQuartile"]];
b.overlay.setSpinnerEnabled(!b.campaign.getVideo().isCached());
a._endScreen = b.endScreen || null;
a._thirdPartyEventManager = b.thirdPartyEventManager;
a._vastCampaign = b.campaign;
a._moat = yb.getMoat();
a._endScreen && (a._endScreen.render(), a._endScreen.hide(),
document.body.appendChild(a._endScreen.container()));
b.platform === p.ANDROID ?
Promise.all([b.core.DeviceInfo.Android.getDeviceVolume(Fd.STREAM_MUSIC),
b.core.DeviceInfo.Android.getDeviceMaxVolume(Fd.STREAM_MUSIC)]).then(function(b) {
var c = h.makeIterator(b);
b = c.next().value;
c = c.next().value;
a.setVolume(b / c);
}) : b.platform === p.IOS &&
b.core.DeviceInfo.Ios.getDeviceVolume().then(function(b) {
a.setVolume(b);
});
return a;
}
function yb() {
}
function zb(b, a) {
var c = I.call(this, b, "moat") || this;
c._didInitMoat = !1;
c._state = Zb.STOPPED;
c._template = new Ia('<iframe id="moat-iframe" scrolling="no" sandbox="allow-
scripts"></iframe>');
c._core = a;
c._bindings = [];
c._messageListener = function(a) {
return c.onMessage(a);
};
return c;
}
function Og(b, a) {
var c = {}, d = new pc(b);
c[pc.ContentType] = {parser:d, factory:new Xc(new bg(b, a))};
c[pc.ContentTypeMRAID] = {parser:d, factory:new Ke(new hc(b, a))};
this._contentTypeHandlerMap = c;
return this;
}
function bg(b) {
return Na.apply(this, arguments) || this;
}
function of() {
var b = md.apply(this, arguments) || this;
b._isCloseBlocked = !0;
return b;
}
function md(b, a, c) {
var d = wb.call(this, b) || this;
d._campaign = a;
d._country = c;
d._template = new Ia(d.getTemplate(), d._localization);
c = a.getPortrait();
var e = a.getLandscape(), f = a.getSquare(), g = 20 * a.getRating();
d._templateData = {gameName:a.getGameName(), gameIcon:a.getGameIcon().getUrl(),
endScreenLandscape:c ? c.getUrl() : void 0, endScreenPortrait:e ? e.getUrl() : void
0, endScreenSquare:f ? f.getUrl() : void 0, rating:g.toString(),
ratingCount:d._localization.abbreviate(a.getRatingCount()),
endscreenAlt:d.getEndscreenAlt()};
d._core = b.core;
d._campaign = a;
return d;
}
function wb(b) {
var a = I.call(this, b.platform, "end-screen") || this;
a._isSwipeToCloseEnabled = !1;
a._showGDPRBanner = !1;
a._gdprPopupClicked = !1;
a._localization = new Ba(b.language, "endscreen");
a._abGroup = b.abGroup;
a._gameName = b.targetGameName;
a._privacy = b.privacy;
a._adUnitStyle = b.adUnitStyle;
a._showGDPRBanner = b.showGDPRBanner;
a._campaignId = b.campaignId;
a._osVersion = b.osVersion;
a._apiLevel = b.apiLevel;
a._bindings = [{event:"click", listener:function(b) {
return a.onDownloadEvent(b);
}, selector:".game-background, .download-container, .game-icon, .game-image"},
{event:"click", listener:function(b) {
return a.onCloseEvent(b);
}, selector:".btn-close-region"}, {event:"click", listener:function(b) {
return a.onPrivacyEvent(b);
}, selector:".privacy-button, .gdpr-link, .icon-gdpr"}];
O.isTimehopApp(b.gameId) && (a._isSwipeToCloseEnabled = !0,
a._bindings.push({event:"swipe", listener:function(b) {
return a.onCloseEvent(b);
}, selector:".campaign-container, .game-background, .btn.download"}));
a._privacy.render();
a._privacy.hide();
document.body.appendChild(a._privacy.container());
a._privacy.addEventHandler(a);
return a;
}
function Xc(b) {
return Mb.apply(this, arguments) || this;
}
function Gd(b) {
var a = ic.call(this, b) || this;
a._appSheetOpenObserver = a._store.iOS.AppSheet.onOpen.subscribe(function() {
a.onAppSheetOpened();
});
a._appSheetCloseObserver = a._store.iOS.AppSheet.onClose.subscribe(function() {
a.onAppSheetClosed();
});
a._appSheetErrorObserver = a._store.iOS.AppSheet.onError.subscribe(function() {
a.onAppSheetErrored();
});
return a;
}
function Le() {
}
function le(b) {
var a = Va.call(this, b) || this;
if (!b.clientInfo || !b.coreConfig) {
throw Error("Missing clientInfo or coreConfig for creating
XiaomiStoreHandler");
}
a._clientInfo = b.clientInfo;
a._coreConfig = b.coreConfig;
return a;
}
function Me(b) {
return Va.call(this, b) || this;
}
function me(b) {
var a = Va.call(this, b) || this;
if (!b.clientInfo) {
throw Error("Missing clientInfo for creating GoogleStoreHandler");
}
a._clientInfo = b.clientInfo;
return a;
}
function ne(b) {
var a = Va.call(this, b) || this;
if (!b.deviceInfo) {
throw Error("Missing deviceInfo for creating AppleStoreHandler");
}
a._deviceInfo = b.deviceInfo;
return a;
}
function Va(b) {
this._core = b.core;
this._ads = b.ads;
this._store = b.store;
this._thirdPartyEventManager = b.thirdPartyEventManager;
this._operativeEventManager = b.operativeEventManager;
this._placement = b.placement;
this._campaign = b.campaign;
this._adUnit = b.adUnit;
}
function Yc(b) {
var a = N.call(this, b) || this;
a._performanceAdUnit = b.adUnit;
a._campaign = b.campaign;
return a;
}
function N(b) {
var a = Zc.call(this, b) || this;
a._operativeEventManager = b.operativeEventManager;
a._thirdPartyEventManager = b.thirdPartyEventManager;
a._coreConfig = b.coreConfig;
a._adsConfig = b.adsConfig;
a._placement = b.placement;
a._adUnitStyle = b.adUnitStyle;
a._video = b.video;
return a;
}
function pf(b, a, c) {
c = gc.call(this, b, a, c, a.adUnitStyle) || this;
c._performanceAdUnit = b;
c._thirdPartyEventManager = a.thirdPartyEventManager;
return c;
}
function gc(b, a, c, d) {
b = jb.call(this, b, a, d) || this;
b._thirdPartyEventManager = a.thirdPartyEventManager;
b._overlay = b._adUnit.getOverlay();
b._storeHandler = c;
return b;
}
function jb(b, a, c) {
var d = nd.call(this, a.privacyManager, a.coreConfig, a.adsConfig) || this;
d._ads = a.ads;
d._operativeEventManager = a.operativeEventManager;
d._adUnit = b;
d._campaign = a.campaign;
d._placement = a.placement;
d._adUnitStyle = c;
return d;
}
function ic(b) {
var a = M.call(this, b) || this;
b.overlay.setSpinnerEnabled(!Oa.isCached(b.campaign));
a._endScreen = b.endScreen;
a._endScreen.render();
a._endScreen.hide();
document.body.appendChild(a._endScreen.container());
a._privacy = b.privacy;
a._performanceCampaign = b.campaign;
a._thirdPartyEventManager = b.thirdPartyEventManager;
return a;
}
function qf(b, a, c) {
b = Cd.call(this, b, a, c) || this;
b._thirdPartyEventManager = a.thirdPartyEventManager;
return b;
}
function pc(b) {
this._platform = b.NativeBridge.getPlatform();
this._requestManager = b.RequestManager;
return this;
}
function Cd(b, a, c) {
a = nd.call(this, a.privacyManager, a.coreConfig, a.adsConfig) || this;
a._adUnit = b;
a._storeHandler = c;
return a;
}
function Pg(b, a) {
var c = new hc(b, a);
a = {};
c = new Ke(c);
a[oe.ContentType] = {parser:new oe(b.NativeBridge.getPlatform()), factory:c};
a[pe.ContentType] = {parser:new pe(b.NativeBridge.getPlatform()), factory:c};
this._contentTypeHandlerMap = a;
return this;
}
function hc(b, a) {
return Na.call(this, b, a) || this;
}
function qc(b, a, c, d, e, f, g, l, n) {
b = K.call(this, b, a, c, "mraid", d, e, f, g, l, n) || this;
b.onLoaded = new Ma;
b._domContentLoaded = !1;
b._deviceInfo = c;
b._placement = d;
b._campaign = e;
b._creativeId = e.getCreativeId();
b._template = new Ia('<div class="close-region"><div class="close"><span
class="icon-close"></span><div class="circle-base"></div><div class="progress-
wrapper"><div class="circle-left"></div><div class="circle-
right"></div></div></div></div><div class="gdpr-pop-up"><div class="icon-
gdpr"></div><div class="gdpr-text">Unity is personalizing your ads experience in
this application. <span class="gdpr-link">Tap here</span> to learn more about Unity
and your privacy choices.</div></div><div class="privacy-button"><span class="icon-
gdpr"></span></div><iframe id="mraid-iframe" scrolling="no" sandbox="allow-
scripts"></iframe>');
return b;
}
function jc(b, a, c, d, e, f, g, l, n, W) {
b = K.call(this, b, a, c, "extended-mraid", d, e, g, l, n, W) || this;
b._deviceInfo = c;
b._placement = d;
b._campaign = e;
b._localization = new Ba(f, "loadingscreen");
b._template = new Ia('<div class="close-region"><div class="close"><span
class="icon-close"></span><div class="circle-base"></div><div class="progress-
wrapper"><div class="circle-left"></div><div class="circle-
right"></div></div></div></div><div class="gdpr-pop-up"><div class="icon-
gdpr"></div><div class="gdpr-text">Unity is personalizing your ads experience in
this application. <span class="gdpr-link">Tap here</span> to learn more about Unity
and your privacy choices.</div></div><div class="loading-screen"><div
class="container"><div class="user-text"><%= data.t("Try the playable demo")
%></div><div class="game-icon" style="background-image: url(\'<%= data.gameIcon
%>\')"></div><div class="store-container"> <% if(!!data.rating) { %> <span
class="game-rating"><span class="game-rating-mask" style="width: <%= data.rating %>
%"> <% for (var i = 0; i < 5; i++) { %><span class="icon-star"></span><% } %>
</span> <% for (var i = 0; i < 5; i++) { %><span class="icon-star"></span><% } %>
</span> <% } %> <% if (!!data.ratingCount && data.ratingCount !== "0") { %> <span
class="game-rating-count">(<span class="game-rating-count-number"><%=
data.ratingCount %></span>) </span> <% } %> </div><div class="name-container"><%=
data.gameName %></div><div class="progress-bar"><span
class="filling"></span></div></div><div class="unityads-logo"></div></div><div
class="privacy-button"><span class="icon-gdpr"></span></div><div class="ar-phone-x-
top"></div><div class="ar-phone-x-bottom"></div><div class="ar-phone-x-
left"></div><div class="ar-phone-x-right"></div><iframe id="mraid-iframe"
scrolling="no" sandbox="allow-scripts"></iframe>',
b._localization);
if (e) {
b._templateData = {gameName:e.getGameName()};
if (c = e.getGameIcon()) {
b._templateData.gameIcon = c.getUrl();
}
if (c = e.getRating()) {
b._templateData.rating = (20 * c).toString();
}
if (e = e.getRatingCount()) {
b._templateData.ratingCount = b._localization.abbreviate(e);
}
}
return b;
}
function $c(b, a, c) {
var d = od.call(this, a) || this;
d._core = b;
d._iframe = c;
d._messageListener = function(a) {
return d.onMessage(a);
};
d._mraidHandlers[Ic.ORIENTATION] = function(a) {
return d.handleSetOrientationProperties(a.properties);
};
d._mraidHandlers[Ic.OPEN] = function(a) {
return d.handleOpen(a.url);
};
d._mraidHandlers[Ic.ANALYTICS_EVENT] = function(a) {
return d.handleAnalyticsEvent(a.event, a.eventData);
};
d._mraidHandlers[Ic.STATE_CHANGE] = function(a) {
return d.handleCustomState(a.state);
};
d._mraidHandlers[Ic.SEND_STATS] = function(a) {
return d.handleSendStats(a.totalTime, a.playTime, a.frameCount);
};
d._mraidHandlers[Ic.AR] = function(a) {
return d.handleAr(a);
};
d._mraidHandlers[Ic.CONSOLE_LOG] = function(a) {
return d.handleConsoleLog(a);
};
return d;
}
function od(b) {
var a = this;
this._handler = b;
this._mraidHandlers = {};
this._mraidHandlers[Ic.LOADED] = function() {
return a.handleLoaded();
};
this._mraidHandlers[Ic.CLOSE] = function() {
return a.handleClose();
};
}
function K(b, a, c, d, e, f, g, l, n, W) {
var r = I.call(this, b, d) || this;
r._showGDPRBanner = !1;
r._gdprPopupClicked = !1;
r._callButtonEnabled = !0;
r._isLoaded = !1;
r._canClose = !1;
r._canSkip = !1;
r._didReward = !1;
r._CLOSE_LENGTH = 30;
r._backgroundTime = 0;
r._core = a;
r._placement = e;
r._deviceInfo = c;
r._campaign = f;
r._privacy = g;
r._showGDPRBanner = l;
r._abGroup = n;
r._privacyPanelOpen = !1;
r._privacy.render();
r._privacy.hide();
document.body.appendChild(r._privacy.container());
r._privacy.addEventHandler(r);
r._bindings = [{event:"click", listener:function(a) {
return r.onCloseEvent(a);
}, selector:".close-region"}, {event:"click", listener:function(a) {
return r.onPrivacyEvent(a);
}, selector:".privacy-button"}, {event:"click", listener:function(a) {
r.onGDPRPopupEvent(a);
r._gdprPopupClicked = !0;
r.choosePrivacyShown();
}, selector:".gdpr-link"}, {event:"click", listener:function(a) {
return r.onPrivacyEvent(a);
}, selector:".icon-gdpr"}];
r._gameSessionId = W || 0;
r._mraidAdapterContainer = new $b(r);
return r;
}
function $b(b) {
this._isConnected = !1;
this._handler = b;
}
function cg() {
}
function Ne() {
}
function pe(b) {
return Yb.apply(this, arguments) || this;
}
function oe(b) {
return Yb.apply(this, arguments) || this;
}
function Ke(b) {
return Mb.apply(this, arguments) || this;
}
function Oe(b) {
return Wa.apply(this, arguments) || this;
}
function qe(b) {
return Wa.apply(this, arguments) || this;
}
function Xd() {
}
function Wa(b, a) {
var c = nd.call(this, a.privacyManager, a.coreConfig, a.adsConfig) || this;
c._operativeEventManager = a.operativeEventManager;
c._thirdPartyEventManager = a.thirdPartyEventManager;
c._adUnit = b;
c._mraidView = b.getMRAIDView();
c._campaign = a.campaign;
c._placement = a.placement;
c._request = a.request;
c._platform = a.platform;
c._core = a.core;
c._ads = a.ads;
c._deviceInfo = a.deviceInfo;
c._customImpressionFired = !1;
c._gameSessionId = a.gameSessionId;
c._abGroup = a.coreConfig.getAbGroup();
return c;
}
function Ea(b) {
var a = Z.call(this, b) || this;
a._operativeEventManager = b.operativeEventManager;
a._thirdPartyEventManager = b.thirdPartyEventManager;
a._mraid = b.mraid;
a._additionalTrackingEvents = b.campaign.getTrackingUrls();
a._endScreen = b.endScreen;
a._clientInfo = b.clientInfo;
a._placement = b.placement;
a._campaign = b.campaign;
a._privacy = b.privacy;
a._mraid.render();
document.body.appendChild(a._mraid.container());
a._endScreen && (a._endScreen.render(), a._endScreen.hide(),
document.body.appendChild(a._endScreen.container()));
a._orientationProperties = {allowOrientationChange:!0,
forceOrientation:ja.NONE};
a._options = b.options;
a.setShowing(!1);
return a;
}
function Fe() {
}
function Sa(b) {
return z.call(this, "Configuration", Sa.Schema, b) || this;
}
function Wb(b) {
var a = pd.call(this, b, "VideoPlayer", gb.VIDEOPLAYER) || this;
b.getPlatform() === p.IOS ? a.iOS = new mf(b) : b.getPlatform() === p.ANDROID
&& (a.Android = new He(b));
return a;
}
function Ge(b) {
return B.call(this, b, "Placement") || this;
}
function Bd(b) {
return B.call(this, b, "Listener") || this;
}
function mf(b) {
return pd.call(this, b, "VideoPlayer") || this;
}
function ib(b) {
b = B.call(this, b, "AdUnit", gb.ADUNIT) || this;
b.onViewControllerInit = new Ma;
b.onViewControllerDidLoad = new Ma;
b.onViewControllerDidAppear = new Ma;
b.onViewControllerWillDisappear = new Ma;
b.onViewControllerDidDisappear = new Ma;
b.onViewControllerDidReceiveMemoryWarning = new Ma;
return b;
}
function He(b) {
return pd.call(this, b, "VideoPlayer") || this;
}
function pd(b, a, c) {
b = B.call(this, b, a, c) || this;
b._handlers = [];
return b;
}
function Xb(b) {
b = B.call(this, b, "AdUnit", gb.ADUNIT) || this;
b.onStart = new za;
b.onCreate = new za;
b.onResume = new za;
b.onDestroy = new Dc;
b.onPause = new Dc;
b.onKeyDown = new Ud;
b.onRestore = new za;
b.onStop = new za;
return b;
}
function Uc(b, a, c) {
this._core = b;
this._request = a;
this._storageBridge = c;
}
function Jc(b, a) {
this._ads = b;
this._configuration = a;
this._placementCampaignMap = {};
}
function ka(b, a, c, d, e, f, g, l, n, W, r, k) {
var y = this;
y._needsRefill = !0;
y._startRefreshMagicConstant = 5000;
y._platform = b;
y._core = a;
y._ads = d;
y._wakeUpManager = e;
y._campaignManager = f;
y._coreConfig = c;
y._adsConfig = g;
y._focusManager = l;
y._sessionManager = n;
y._clientInfo = W;
y._request = r;
y._cache = k;
y._refillTimestamp = 0;
y._campaignCount = 0;
y._parsingErrorCount = 0;
y._noFills = 0;
y._campaignManager.onCampaign.subscribe(function(a, b, c) {
return y.onCampaign(a, b, c);
});
y._campaignManager.onNoFill.subscribe(function(a) {
return y.onNoFill(a);
});
y._campaignManager.onError.subscribe(function(a, b, c, d) {
return y.onError(a, b, c, d);
});
y._campaignManager.onConnectivityError.subscribe(function(a) {
return y.onConnectivityError(a);
});
y._campaignManager.onAdPlanReceived.subscribe(function(a, b, c) {
return y.onAdPlanReceived(a, b, c);
});
y._wakeUpManager.onNetworkConnected.subscribe(function() {
return y.onNetworkConnected();
});
y._platform === p.IOS ? y._focusManager.onAppForeground.subscribe(function() {
return y.onAppForeground();
}) : (y._focusManager.onScreenOn.subscribe(function() {
return y.onScreenOn();
}), y._focusManager.onActivityResumed.subscribe(function(a) {
return y.onActivityResumed(a);
}));
return y;
}
function Qg() {
}
function ua(b) {
var a = z.call(this, "Placement", {id:["string"], name:["string"], default:
["boolean"], allowSkip:["boolean"], skipInSeconds:["number"], disableBackButton:
["boolean"], muteVideo:["boolean"], skipEndCardOnClose:["boolean", "undefined"],
disableVideoControlsFade:["boolean", "undefined"], useCloseIconInsteadOfSkipIcon:
["boolean", "undefined"], adTypes:["array", "undefined"], realtimeData:["string",
"undefined"], state:["number"], previousState:["number"], placementStateChanged:
["boolean"], currentCampaign:["object",
"undefined"], currentTrackingUrls:["object", "undefined"], refreshDelay:
["number", "undefined"], position:["string", "undefined"], auctionType:["string"]})
|| this;
a.set("id", b.id);
a.set("name", b.name);
a.set("default", b.default);
var c = b.allowSkip;
a.set("allowSkip", c);
c && a.set("skipInSeconds", b.skipInSeconds);
a.set("disableBackButton", b.disableBackButton);
a.set("muteVideo", b.muteVideo);
a.set("skipEndCardOnClose", b.skipEndCardOnClose);
a.set("disableVideoControlsFade", b.disableVideoControlsFade);
a.set("useCloseIconInsteadOfSkipIcon", b.useCloseIconInsteadOfSkipIcon);
a.set("adTypes", b.adTypes);
a.set("state", va.NOT_AVAILABLE);
a.set("refreshDelay", b.refreshDelay);
a.set("position", b.position || "bottomcenter");
a.set("auctionType", b.auctionType || "cpm");
return a;
}
function nf() {
this._parsers = {};
this._factories = {};
}
function C(b, a, c, d, e, f, g, l, n, W, r, y, k, m, p) {
this.onCampaign = new Tc;
this.onNoFill = new za;
this.onError = new De;
this.onConnectivityError = new za;
this.onAdPlanReceived = new Tc;
this._realtimeBody = {};
this._platform = b;
this._core = a;
this._coreConfig = c;
this._adsConfig = d;
this._assetManager = e;
this._sessionManager = f;
this._request = l;
this._clientInfo = n;
this._deviceInfo = W;
this._metaDataManager = r;
this._adMobSignalFactory = g;
this._cacheBookkeeping = y;
this._contentTypeHandlerManager = k;
this._requesting = !1;
this._jaegerManager = m;
this._backupCampaignManager = p;
this._auctionProtocol = w.getAuctionProtocol();
}
function Hc() {
var b = ac.apply(this, arguments) || this;
b._vastParserStrict = new Ja;
return b;
}
function ac(b) {
this._platform = b.NativeBridge.getPlatform();
this._vastParser = new Ja;
this._deviceInfo = b.DeviceInfo;
this._coreApi = b.Api;
this._requestManager = b.RequestManager;
return this;
}
function Pe() {
}
function rf() {
}
function Hd(b, a, c) {
var d = z.call(this, "AuctionPlacement", {placementId:["string"], mediaId:
["string"], trackingUrls:["object", "undefined"]}) || this;
d.set("placementId", b);
d.set("mediaId", a);
d.set("trackingUrls", c);
return d;
}
function sf(b) {
return U.call(this, b) || this;
}
function Qe(b, a, c) {
this.traceId = ad.uuidv4().substring(8, 24);
this.id = ad.uuidv4().substring(8, 24);
this.kind = "CLIENT";
this.timestamp = ad.genTimestamp();
this.duration = 0;
this.shared = this.debug = !0;
this.localEndpoint = new qh("ads-sdk");
this.annotations = [];
this.tags = {};
a && (this.parentId = a);
c && (this.traceId = c);
this.name = ad.stripQueryAndFragment(b);
}
function rh(b) {
this.timestamp = ad.genTimestamp();
this.value = b;
}
function qh(b) {
this.serviceName = b;
}
function ad() {
}
function ra(b, a, c, d, e) {
var f = z.call(this, "AuctionResponse", {placements:["array"], contentType:
["string"], content:["string"], cacheTTL:["integer", "undefined"], trackingUrls:
["object"], adType:["string"], creativeId:["string", "undefined"], seatId:
["integer", "undefined"], appCategory:["string", "undefined"], appSubCategory:
["string", "undefined"], correlationId:["string"], campaignId:["string",
"undefined"], advDomain:["string", "undefined"], bundleId:["string", "undefined"],
useWebViewUserAgentForTracking:["boolean",
"undefined"], buyerId:["string", "undefined"], mediaId:["string"], width:
["number", "undefined"], height:["number", "undefined"], isMoatEnabled:["boolean",
"undefined"], statusCode:["number", "undefined"]}) || this;
f.set("placements", b);
f.set("contentType", a.contentType);
f.set("content", a.content);
f.set("cacheTTL", a.cacheTTL);
f.set("trackingUrls", a.trackingUrls ? a.trackingUrls : {});
f.set("adType", a.adType);
f.set("creativeId", a.creativeId);
f.set("seatId", a.seatId);
f.set("correlationId", d);
f.set("appCategory", a.appCategory);
f.set("appSubCategory", a.appSubCategory);
f.set("campaignId", a.campaignId);
f.set("advDomain", a.advDomain);
f.set("bundleId", a.bundleId);
f.set("useWebViewUserAgentForTracking", a.useWebViewUserAgentForTracking || !
1);
f.set("buyerId", a.buyerId);
f.set("mediaId", c);
f.set("width", a.width);
f.set("height", a.height);
f.set("isMoatEnabled", a.isMoatEnabled);
f.set("statusCode", e);
return f;
}
function rc() {
}
function Rg() {
}
function Sg() {
}
function Lb(b, a, c, d, e, f) {
this._campaignCount = 0;
this._enabled = !0;
this._platform = b;
this._core = a;
this._storageBridge = c;
this._coreConfiguration = d;
this._deviceInfo = e;
this._clientInfo = f;
}
function dg(b) {
return Kc.apply(this, arguments) || this;
}
function eg(b) {
return Kc.apply(this, arguments) || this;
}
function fg(b) {
return Kc.apply(this, arguments) || this;
}
function Kc() {
}
function Ab(b, a) {
a = Fa.call(this, "Image", a, Fa.Schema) || this;
a.set("url", b);
return a;
}
function sc(b) {
b = sc.validateIAdUnitStyle(b);
return z.call(this, "AdUnitStyle", sc.Schema, b) || this;
}
function Bb(b, a, c, d, e, f, g, l) {
var n = this;
this._sendCacheDiagnostics = !1;
this._platform = b;
this._core = a;
this._cache = c;
this._cacheMode = d;
this._cacheBookkeeping = f;
this._pts = g;
this._deviceInfo = e;
this._fastConnectionDetected = this._caching = this._stopped = !1;
this._requiredQueue = [];
this._optionalQueue = [];
this._campaignQueue = {};
this._queueId = 0;
this._backupCampaignManager = l;
d === Nb.ADAPTIVE && this._cache.onFastConnectionDetected.subscribe(function()
{
return n.onFastConnectionDetected();
});
}
function Zd() {
}
function la(b, a, c, d, e) {
var f = this;
this.onFastConnectionDetected = new Ma;
this.onStart = new Dc;
this.onRedirect = new za;
this.onFinish = new za;
this.onStop = new za;
this.onError = new Tc;
this.onFinishError = new Ud;
this.onTooLargeFile = new Ud;
this._callbacks = {};
this._maxRetries = 5;
this._retryDelay = 10000;
this._maxFileSize = 20971520;
this._currentDownloadPosition = -1;
this._fastConnectionDetected = !1;
this._core = b;
this._wakeUpManager = a;
this._request = c;
this._cacheBookkeeping = d;
e && (this._maxRetries = e.retries, this._retryDelay = e.retryDelay);
this._paused = !1;
this._wakeUpManager.onNetworkConnected.subscribe(function() {
return f.onNetworkConnected();
});
this._core.Cache.setProgressInterval(250);
this._core.Cache.onDownloadStarted.subscribe(function(a, b, c, d, e) {
return f.onDownloadStarted(a, b, c, d, e);
});
this._core.Cache.onDownloadProgress.subscribe(function(a, b, c) {
return f.onDownloadProgress(a, b, c);
});
this._core.Cache.onDownloadEnd.subscribe(function(a, b, c, d, e, y) {
return f.onDownloadEnd(a, b, c, d, e, y);
});
this._core.Cache.onDownloadStopped.subscribe(function(a, b, c, d, e, y) {
return f.onDownloadStopped(a, b, c, d, e, y);
});
this._core.Cache.onDownloadError.subscribe(function(a, b, c) {
return f.onDownloadError(a, b, c);
});
this._core.Storage.onSet.subscribe(function(a, b) {
return f.onStorageSet(a, b);
});
this._core.Storage.get(v.PUBLIC, "caching.pause.value").then(function(a) {
f._paused = a;
f._core.Storage.delete(v.PUBLIC, "caching.pause");
f._core.Storage.write(v.PUBLIC);
}).catch(function() {
});
}
function gg() {
}
function fb(b) {
var a = B.call(this, b, "Cache", gb.CACHE) || this;
a.onDownloadStarted = new Ud;
a.onDownloadProgress = new Tc;
a.onDownloadEnd = new tf;
a.onDownloadStopped = new tf;
a.onDownloadError = new Tc;
b.getPlatform() === p.IOS ? a.Ios = new hg(b) : a.Android = new ig(b);
return a;
}
function hg(b) {
return B.call(this, b, "Cache") || this;
}
function ig(b) {
return B.call(this, b, "Cache") || this;
}
function jg(b, a) {
var c = this;
this._cache = b;
this._data = a;
this._startObserver = b.onStart.subscribe(function(a, b) {
return c.sendDiagnostic(0 === b ? bd.STARTED : bd.RESUMED, a);
});
this._redirectObserver = b.onRedirect.subscribe(function(a) {
return c.sendDiagnostic(bd.REDIRECTED, a);
});
this._finishObserver = b.onFinish.subscribe(function(a) {
return c.sendDiagnostic(bd.FINISHED, a);
});
this._stopObserver = b.onStop.subscribe(function(a) {
return c.sendDiagnostic(bd.STOPPED, a);
});
this._finishErrorObserver = b.onFinishError.subscribe(function(a) {
return c.sendDiagnostic(bd.ERROR, a);
});
this._errorObserver = b.onError.subscribe(function(a) {
return c.sendDiagnostic(bd.ERROR, a);
});
}
function ta(b, a, c, d, e) {
var f = bc.call(this) || this;
f._core = b;
f._ads = a;
f._focusManager = d;
f._deviceInfo = c;
f._clientInfo = e;
f._onViewControllerDidDisappearObserver =
f._ads.iOS.AdUnit.onViewControllerDidDisappear.subscribe(function() {
return f.onViewDidDisappear();
});
f._onViewControllerDidAppearObserver =
f._ads.iOS.AdUnit.onViewControllerDidAppear.subscribe(function() {
return f.onViewDidAppear();
});
f._onMemoryWarningObserver =
f._ads.iOS.AdUnit.onViewControllerDidReceiveMemoryWarning.subscribe(function() {
return f.onMemoryWarning();
});
f._onNotificationObserver =
f._core.iOS.Notification.onNotification.subscribe(function(a, b) {
return f.onNotification(a, b);
});
return f;
}
function rb(b, a, c) {
var d = bc.call(this) || this;
d._core = b;
d._ads = a;
d._deviceInfo = c;
d._activityId = 0;
d._currentActivityFinished = !1;
d._onResumeObserver = d._ads.Android.AdUnit.onResume.subscribe(function(a) {
return d.onResume(a);
});
d._onPauseObserver = d._ads.Android.AdUnit.onPause.subscribe(function(a, b) {
return d.onPause(a, b);
});
d._onDestroyObserver = d._ads.Android.AdUnit.onDestroy.subscribe(function(a, b)
{
return d.onDestroy(a, b);
});
d._onCreateObserver = d._ads.Android.AdUnit.onCreate.subscribe(function(a) {
return d.onCreate(a);
});
d._onRestoreObserver = d._ads.Android.AdUnit.onRestore.subscribe(function(a) {
return d.onRestore(a);
});
return d;
}
function Ha(b, a, c, d, e, f) {
this._platform = b;
this._core = a;
this._ads = c;
this._clientInfo = d;
this._deviceInfo = e;
this._focusManager = f;
}
function Qa(b) {
return J.call(this, "IosDeviceInfo", Object.assign({}, J.Schema,
{userInterfaceIdiom:["number"], screenScale:["number"], statusBarHeight:["number"],
statusBarWidth:["number"], statusBarHidden:["boolean"], simulator:["boolean"],
sensorList:["array"]}), p.IOS, b) || this;
}
function t() {
return z.call(this, "AdMobSignal", {sdkVersion:["string"], batteryLevel:
["number"], batteryState:["number"], accelerometerX:["number"], accelerometerY:
["number"], accelerometerZ:["number"], networkType:["number"], deviceOrientation:
["number"], touchXUp:["number"], touchXDown:["number"], touchYUp:["number"],
touchYDown:["number"], touchDuration:["number"], touchPressure:["number"],
touchDiameter:["number"], cpuCount:["number"], touchUpTotal:["number"],
touchDownTotal:["number"], touchMoveTotal:["number"],
touchCancelTotal:["number"], osVersion:["string"], timeZoneOffset:["number"],
usbConnected:["number"], appActive:["boolean"], appUptime:["number"], appStartTime:
["number"], rooted:["number"], eventTimestamp:["number"], apkHash:["string"],
apkDeveloperSigningCertificateHash:["string"], appVersionName:["string"],
appVersionCode:["number"], appIdName:["string"], appInstaller:["string"],
deviceUptime:["number"], deviceElapsedRealtime:["number"], adbEnabled:["number"],
timeOnScreen:["number"], minimumAlpha:["number"],
adViewWidth:["number"], adViewHeight:["number"], androidTouchObscured:
["boolean"], touchToolType:["number"], touchSource:["number"], touchDeviceId:
["number"], touchDistance:["number"], adViewX:["number"], adViewY:["number"],
screenWidth:["number"], screenHeight:["number"]}) || this;
}
function sh(b, a, c) {
var d = c || 8192, e = d >>> 1, f = null, g = d;
return function(c) {
if (1 > c || c > e) {
return b(c);
}
g + c > d && (f = b(d), g = 0);
c = a.call(f, g, g += c);
g & 7 && (g = (g | 7) + 1);
return c;
};
}
function th(b) {
try {
var a = eval("quire".replace(/^/, "re"))(b);
if (a && (a.length || Object.keys(a).length)) {
return a;
}
} catch (c) {
}
return null;
}
function uh(b, a) {
for (var c = Array(arguments.length - 1), d = 0, e = 2, f = !0; e <
arguments.length;) {
c[d++] = arguments[e++];
}
return new Promise(function(e, l) {
c[d] = function(a) {
if (f) {
if (f = !1, a) {
l(a);
} else {
for (var b = Array(arguments.length - 1), c = 0; c < b.length;) {
b[c++] = arguments[c];
}
e.apply(null, b);
}
}
};
try {
b.apply(a || null, c);
} catch (n) {
f && (f = !1, l(n));
}
});
}
function X() {
return z.call(this, "AdMobOptionalSignal", {sequenceNumber:["number"],
granularSpeedBucket:["string"], isNetworkMetered:["boolean"], deviceSubModel:
["string"], numPriorUserRequests:["number"], isDeviceCharging:["boolean"],
deviceBatteryLevel:["number"], androidMarketVersion:["string"], adLoadDuration:
["number"], priorClickCount:["number"], deviceIncapabilities:["string"],
hasIAPCapability:["boolean"], iuSizes:["string"], adtest:["boolean"], isJailbroken:
["boolean"]}) || this;
}
function Tg(b, a) {
a = new kg(b, a);
var c = {};
c[Cb.ContentType] = {parser:new Cb(b), factory:new lg(a)};
this._contentTypeHandlerMap = c;
return this;
}
function kg(b, a) {
b = Na.call(this, b, a) || this;
b._adMobSignalFactory = a.AdMobSignalFactory;
return b;
}
function ma(b, a, c, d, e, f, g, l, n, W) {
var r = I.call(this, b, "admob") || this;
r._showGDPRBanner = !1;
r._gdprPopupClicked = !1;
r._campaign = e;
r._template = new Ia('<iframe id="admob-iframe" sandbox="allow-
scripts"></iframe><div class="gdpr-pop-up"><div class="gdpr-icon"></div><div
class="gdpr-text">Unity is personalizing your ads experience in this application.
<span class="gdpr-link">Tap here</span> to learn more about Unity and your privacy
choices.</div></div><div class="privacy-button"><span class="icon-
gdpr"></span></div>');
r._adMobSignalFactory = c;
r._programmaticTrackingService = W;
r._privacy = l;
r._showGDPRBanner = n;
r._afmaBridge = new $d(a, {onAFMAClose:function() {
return r.onClose();
}, onAFMAOpenURL:function(a) {
return r.onOpenURL(a);
}, onAFMADisableBackButton:function() {
}, onAFMAClick:function(a, b) {
return r.onAttribution(a, b);
}, onAFMAFetchAppStoreOverlay:function() {
}, onAFMAForceOrientation:function() {
}, onAFMAGrantReward:function() {
return r.onGrantReward();
}, onAFMAOpenInAppStore:function() {
}, onAFMAOpenStoreOverlay:function() {
}, OnAFMAVideoStart:function() {
return r.onVideoStart();
}, onAFMATrackingEvent:function(a, b) {
return r.onTrackingEvent(a, b);
}, onAFMAClickSignalRequest:function(a) {
return r.onClickSignalRequest(a);
}, onAFMAUserSeeked:function() {
return r.onUserSeeked();
}});
r._mraidBridge = new Re(a, {onSetOrientationProperties:function(a, b) {
return r.onSetOrientationProperties(a, b);
}});
r._bindings = [{event:"click", listener:function(a) {
return r.onGDPRPopupEvent(a);
}, selector:".gdpr-link"}, {event:"click", listener:function(a) {
return r.onPrivacyEvent(a);
}, selector:".icon-gdpr"}];
r._privacy.render();
r._privacy.hide();
document.body.appendChild(r._privacy.container());
r._privacy.addEventHandler(r);
return r;
}
function Re(b, a) {
var c = this;
this._core = b;
this._handler = a;
this._messageListener = function(a) {
return c.onMessage(a);
};
this._mraidHandlers = {};
this._mraidHandlers[mg.ORIENTATION] = function(a) {
return c.handleSetOrientationProperties(a.data);
};
}
function $d(b, a) {
var c = this;
this._core = b;
this._handler = a;
this._messageListener = function(a) {
return c.onMessage(a);
};
this._afmaHandlers = {};
this._afmaHandlers[Ob.OPEN_URL] = function(a) {
return c._handler.onAFMAOpenURL(a.data.url);
};
this._afmaHandlers[Ob.CLOSE] = function() {
return c._handler.onAFMAClose();
};
this._afmaHandlers[Ob.FORCE_ORIENTATION] = function(a) {
return c._handler.onAFMAForceOrientation("portrait" === a.data.orientation ?
ja.PORTRAIT : ja.LANDSCAPE);
};
this._afmaHandlers[Ob.CLICK] = function(a) {
return c._handler.onAFMAClick(a.data.url, a.data.touch);
};
this._afmaHandlers[Ob.VIDEO_START] = function() {
return c._handler.OnAFMAVideoStart();
};
this._afmaHandlers[Ob.GRANT_REWARD] = function() {
return c._handler.onAFMAGrantReward();
};
this._afmaHandlers[Ob.DISABLE_BACK_BUTTON] = function(a) {
return c._handler.onAFMADisableBackButton(a.data.disabled);
};
this._afmaHandlers[Ob.OPEN_STORE_OVERLAY] = function(a) {
return c._handler.onAFMAOpenStoreOverlay(a.data.url);
};
this._afmaHandlers[Ob.OPEN_IN_APP_STORE] = function(a) {
return c._handler.onAFMAOpenInAppStore(a.data.productId, a.data.url);
};
this._afmaHandlers[Ob.FETCH_APP_STORE_OVERLAY] = function(a) {
return c._handler.onAFMAFetchAppStoreOverlay(a.data.productId);
};
this._afmaHandlers[Ob.TRACKING] = function(a) {
return c._handler.onAFMATrackingEvent(a.data.event, a.data.data);
};
this._afmaHandlers[Ob.GET_CLICK_SIGNAL] = function(a) {
return c._handler.onAFMAClickSignalRequest(a.data);
};
this._afmaHandlers[Ob.USER_SEEKED] = function() {
return c._handler.onAFMAUserSeeked();
};
}
function Na(b, a) {
this._platform = b.NativeBridge.getPlatform();
this._core = b.Api;
this._ads = a.Api;
this._store = b.Store.Api;
this._focusManager = b.FocusManager;
this._container = a.Container;
this._deviceInfo = b.DeviceInfo;
this._clientInfo = b.ClientInfo;
this._requestManager = b.RequestManager;
this._metadataManager = b.MetaDataManager;
this._adsConfig = a.Config;
this._coreConfig = b.Config;
this._sessionManager = a.SessionManager;
this._privacyManager = a.PrivacyManager;
this._programmaticTrackingService = a.ProgrammaticTrackingService;
this._thirdPartyEventManagerFactory = a.ThirdPartyEventManagerFactory;
this._storageBridge = b.StorageBridge;
}
function Xa(b, a, c, d, e) {
var f = Pb.call(this, b, c, e, d, "privacy-settings", !1) || this;
f._reportSent = !1;
f._campaign = a;
f._templateData.reportKeys = Object.keys(Id);
f._templateData.reportReasons = Object.keys(Id).map(function(a) {
return Id[a];
});
f._template = new Ia('<div class="safe-area-content"><div class="close-
area"><div class="close-button"><span>Close</span></div></div><div class="view-
container"><div class="back-button"><span class="consent-icon-
arrow"></span></div><div class="main-view-container page-container"><div
class="privacy-logo"><span class="icon-gdpr"></span></div><div
class="title"><span>Privacy settings</span></div><div class="button-container"><div
class="personalization-button settings-button"><span class="consent-icon-
person2"></span> <span class="button-text">Personalization
settings</span></div><div class="delete-data-button settings-button"><span
class="consent-icon-lock"></span> <span class="button-text">Manage your
data</span></div><div class="button-row-container button-container"><div
class="report-ad-button row-button"><span class="button-text">Report
Ad</span></div><div class="build-info-button row-button"><span class="button-
text">Build info</span></div></div></div><div class="info-
container"></div></div><div class="personalization-container page-container"><div
class="heading"><span>Your personalization settings</span></div><div
class="checkbox-group-container"></div></div><div class="view-your-data-container
page-container"><div class="heading"><span>Your data & deletion
options</span></div><div class="text"><p>You can delete any data Unity has about
your device.</p></div><div class="delete-data-container text"><span class="delete-
data-confirmed-text">We will process your request and your data will be deleted in
30 days. We will also opt you out of personalized ads immediately. Please note we
may keep a transactional record using your personal information for 180 days for
billing and fraud prevention purposes.</span><div id="delete-your-data-
button"><span class="consent-icon-alert"></span> <span class="button-text">Delete
your data</span></div><div class="delete-data-confirm"><div class="heading2"><p>Are
you sure?</p></div><div class="delete-data-confirm-buttons"><div id="delete-data-
yes">Delete data</div><div id="delete-data-
cancel">Cancel</div></div></div></div></div><div class="report-ad-container page-
container"><div class="heading"><span>Report advertisement</span></div><div
class="text"><p>Are you facing issues with your current advertisement? You can
report this ad to Unity and let us know. Reporting this ad will close this ad and
forfeit any rewards received from watching it.</p></div><ul class="radio-group-
container"> <% for (var k in data.reportReasons) { %> <div class="radio-item-
container"><input id="<%= data.reportKeys[k] %>" class="report-choice-radio"
name="report-reason" type="radio"> <label for="<%= data.reportKeys[k] %>"> <%=
(data.reportReasons[k] === null || typeof data.reportReasons[k] === "undefined") ?
"N/A" : data.reportReasons[k] %></label></div> <% } %> </ul><div class="text-
small"><p>Disclaimer: Reporting will close your advertisement and forfeit any
rewards received from watching it.</p></div><div class="report-container"><div
class="report-button">Report</div><span class="report-confirmed-text
text"></span></div></div><div class="build-info-container page-container"><div
class="heading"><span>Build info</span></div><p></p> <% for (var k in
data.buildInformation) { %> <p class="build-information-item text"><span
class="build-information-key"><%= k %>:</span> <span class="build-information-
value"><%= (data.buildInformation[k] === null || typeof data.buildInformation[k]
=== "undefined") ? "N/A" : data.buildInformation[k] %></span></p> <% } %>
</div></div></div>');
f._bindings = [{event:"click", listener:function(a) {
return f.onBackButtonEvent(a);
}, selector:".back-button"}, {event:"click", listener:function(a) {
return f.onPersonalizationButtonEvent(a);
}, selector:".personalization-button"}, {event:"click", listener:function(a) {
return f.onDeleteDataButtonEvent(a);
}, selector:".delete-data-button"}, {event:"click", listener:function(a) {
return f.onReportAdButtonEvent(a);
}, selector:".report-ad-button"}, {event:"click", listener:function(a) {
return f.onBuildInfoButtonEvent(a);
}, selector:".build-info-button"}, {event:"click", listener:function(a) {
return f.onCloseEvent(a);
}, selector:".safe-area-content, .close-area"}, {event:"click",
listener:function(a) {
return f.onReportAdEvent(a);
}, selector:".report-button"}, {event:"click", listener:function(a) {
return f.onDeleteYourDataButtonEvent(a);
}, selector:"#delete-your-data-button"}, {event:"click", listener:function(a) {
return f.onDataDeletionConfirmationEvent(a);
}, selector:"#delete-data-yes"}, {event:"click", listener:function(a) {
return f.onDataDeletionCancelEvent(a);
}, selector:"#delete-data-cancel"}, {event:"swipedown", listener:function(a) {
return f.onCloseEvent(a);
}, selector:".close-area, close-button"}, {event:"click", listener:function(a)
{
return f.onViewContainerEvent(a);
}, selector:".view-container"}];
f._privacyRowItemContainer = new tc(b, f._userPrivacyManager);
f._privacyRowItemContainer.addEventHandler(f);
f._personalizationSwitchGroup = new kc(b, f._userPrivacyManager);
return f;
}
function T(b, a, c, d) {
var e = lc.call(this, b.platform, "video-overlay", b.placement.muteVideo()) ||
this;
e._spinnerEnabled = !1;
e._videoDurationEnabled = !1;
e._muteEnabled = !1;
e._showPrivacyDuringVideo = !1;
e._debugMessageVisible = !1;
e._callButtonVisible = !1;
e._callButtonEnabled = !0;
e._areControlsVisible = !1;
e._useCloseIconInsteadOfSkipIcon = !1;
e._skipUnderTimerExperimentEnabled = !1;
e._ads = b.ads;
e._localization = new Ba(b.deviceInfo.getLanguage(), "overlay");
e._gameId = b.clientInfo.getGameId();
e._template = new Ia('<div class="content"><div class="top-container"><div
class="left-corner"> <% if (!data._skipUnderTimerExperimentEnabled) { %> <div
class="skip-button button button-left"><div class="tab"><div class="icon-
container"><span class="icon icon-skip"></span></div><div class="icon-
container"><span class="icon icon-close"></span></div></div></div> <% } %> <div
class="china-advertisement">\u5e7f\u544a</div></div><div class="right-corner"> <%
if (data._skipUnderTimerExperimentEnabled) { %> <div class="skip-button button
button-right"><div class="tab"><div class="icon-container"><span class="icon icon-
skip"></span></div><div class="icon-container"><span class="icon icon-
close"></span></div></div></div> <% } %> <div class="timer-button button button-
right"><div class="tab"><div class="timer-container"><div
class="timer"></div></div></div></div></div></div><div class="buffering-
spinner"><div class="spinner-animation"></div><div class="spinner-text"> <%=
data.t("Buffering") %> </div></div><div class="bottom-container"><div class="left-
corner"><div class="mute-button button button-left <%=
data.muted ? \'muted\' : \'\' %>"><div class="tab"><div class="icon-
container"><span class="icon icon-volume"></span></div><div class="icon-
container"><span class="icon icon-volume-mute"></span></div></div></div><div
class="gdpr-button button"><div class="tab tab-rounded gdpr-tab"><div class="icon-
container"><span class="icon icon-gdpr"></span></div></div></div></div><div
class="center"><div class="gdpr-pop-up"><div class="icon-gdpr"></div><div
class="gdpr-text">Unity is personalizing your ads experience in this application.
<span class="gdpr-link">Tap here</span> to learn more about Unity and your privacy
choices.</div></div></div><div class="right-corner"> <% if (data.showInstallButton)
{ %> <div class="install-button call-button button button-bottom button-right"><div
class="tab"><div class="download-wrapper"><div class="game-icon" style="background-
image: url(\'<%= data.gameIcon && data.gameIcon.replace("file://", "" )
%>\')"></div><div class="download-container"><span class="download-text"><%=
data.t("Install Now") %></span></div></div></div></div> <% } else { %> <div
class="vast-button call-button button button-bottom button-right"><div
class="tab"><span class="text"><%= data.t("Learn More") %> <span class="go-
text">GO</span></span></div></div> <% } %> </div></div><div class="debug-message-
text"></div></div>',
e._localization);
e._country = b.coreConfig.getCountry();
e._campaign = b.campaign;
e._showGDPRBanner = c;
e._showPrivacyDuringVideo = d;
e._useCloseIconInsteadOfSkipIcon = b.placement.useCloseIconInsteadOfSkipIcon();
e._templateData = {muted:b.placement.muteVideo()};
if (e._campaign instanceof D || e._campaign instanceof L) {
e._templateData.showInstallButton = !0, e._templateData.gameIcon =
e._campaign.getGameIcon() ? e._campaign.getGameIcon().getUrl() : "";
}
O.isSkipUnderTimerExperimentEnabled(b.coreConfig, b.placement) &&
(e._templateData._skipUnderTimerExperimentEnabled = !0,
e._skipUnderTimerExperimentEnabled = !0);
e._bindings = [{event:"click", listener:function(a) {
return e.onSkipEvent(a);
}, selector:".skip-button"}, {event:"click", listener:function(a) {
return e.onMuteEvent(a);
}, selector:".mute-button"}, {event:"click", listener:function(a) {
return e.onCallButtonEvent(a);
}, selector:".call-button"}, {event:"click", listener:function(a) {
return e.onPauseForTestingEvent(a);
}, selector:".debug-message-text"}, {event:"click", listener:function(a) {
return e.onClick(a);
}}, {event:"click", listener:function(a) {
return e.onGDPRPopupEvent(a);
}, selector:".gdpr-link"}, {event:"click", listener:function(a) {
return e.onPrivacyEvent(a);
}, selector:".gdpr-button"}];
O.isTimehopApp(e._gameId) && e._bindings.push({event:"swipe",
listener:function(a) {
return e.onSkipEvent(a);
}});
d && (e._privacy = a, e._privacy.render(), e._privacy.hide(),
document.body.appendChild(e._privacy.container()), e._privacy.addEventHandler(e));
setTimeout(function() {
e.fadeIn();
}, 1000);
return e;
}
function Ba(b, a) {
this._language = b;
this._namespace = a;
}
function lc(b, a, c) {
b = I.call(this, b, a) || this;
b._fadeEnabled = !0;
b._isPrivacyShowing = !1;
b._muted = c;
return b;
}
function Se(b) {
this._platform = b.platform;
this._core = b.core;
this._privacyManager = b.privacyManager;
this._configuration = b.adsConfig;
}
function Aa(b) {
var a = I.call(this, b.platform, "consent") || this;
a._landingPage = b.landingPage;
a._apiLevel = b.apiLevel;
a._osVersion = b.osVersion;
a._privacyManager = b.privacyManager;
a._isCtaAbTest = b.ctaABTest;
a._template = new Ia('<div class="safe-area"><div id="consent-homescreen"><div
class="homescreen-container"><div class="top-container"><div class="privacy-logo
item"><span class="icon-gdpr"></span></div><div class="title item"><span
class="centered-title">Can the Unity cookie collect and use your data to tailor
your ads and experience?</span></div><div class="description item"><p>Unity and our
<span class="third-parties-link page-link">third-parties</span> will collect <span
class="data-link page-link">data</span>, including <span class="demographic-link
page-link">demographic information</span>, and use <span class="mobile-identifiers-
link page-link">mobile identifiers</span> for ads & gameplay <span
class="personalization-link page-link">personalization</span> and <span
class="measurement-link page-link">measurement</span>. You can access these options
at any time by tapping the Unity Data Privacy icon when or after an ad
appears.</p></div></div><div class="stripe"></div><div class="bottom-
container"><div class="button-container item"><div class="accept-all consent-
button"><span>Accept</span></div><div class="show-choices consent-button"> <%
if(data.useAltMyChoicesButtonText) { %> <span>Learn more</span> <% } else { %>
<span>Show my choices</span> <% } %> </div></div><div class="logo-container"><div
class="unityads-logo"></div></div></div></div></div><div id="consent-introduction"
class="consent-introduction"><div class="privacy-logo"><span class="icon-
gdpr"></span></div><span class="intro-title">Gameplay & Ad
Personalization</span><div class="intro-text"><p>Personalization gives you a better
in-game experience by tailoring to your preferences. By continuing, you may choose
the extent in which your data is used to personalize gameplay and ads in this
game.</p></div><div class="continue-button bold"><span>Continue</span></div><div
class="unity-logo"><span>Powered by Unity</span></div></div><div id="consent-my-
choices" class="consent-container"><div class="back-
button"><span>Back</span></div><div class="consent-settings"><span class="consent-
title">Can the Unity cookie collect and use your data to tailor your ads and
experience?</span><div class="switch-group-container"></div><p>Unity and our third-
parties will collect data, including demographic information, and use mobile
identifiers for ads & gameplay personalization and measurement. You can access
these options at any time by tapping the Unity Data Privacy icon when or after an
ad appears.</p><div class="privacy-container"></div><div class="empty-
block"></div></div><div class="consent-button-container"><div class="save-my-
choices consent-button"><span>Save my choices</span></div><div class="agree
consent-button"><span>Agree to all</span></div><div class="disagree consent-
button"><span>No thanks</span></div></div></div></div>');
a._templateData = {useAltMyChoicesButtonText:b.useAltMyChoicesButtonText};
a._bindings = [{event:"click", listener:function(b) {
return a.onContinueEvent(b);
}, selector:".continue-button"}, {event:"click", listener:function(b) {
return a.onAgreeEvent(b);
}, selector:".agree"}, {event:"click", listener:function(b) {
return a.onDisagreeEvent(b);
}, selector:".disagree"}, {event:"click", listener:function(b) {
return a.onSaveMyChoicesEvent(b);
}, selector:".save-my-choices"}, {event:"click", listener:function(b) {
return a.onAcceptAllEvent(b);
}, selector:".accept-all"}, {event:"click", listener:function(b) {
return a.onOptionsEvent(b);
}, selector:".show-choices"}, {event:"click", listener:function(b) {
return a.onThirdPartiesLinkEvent(b);
}, selector:".third-parties-link"}, {event:"click", listener:function(b) {
return a.onDataLinkEvent(b);
}, selector:".data-link"}, {event:"click", listener:function(b) {
return a.onDemographicInfoLinkEvent(b);
}, selector:".demographic-link"}, {event:"click", listener:function(b) {
return a.onMobileIdentifiersLinkEvent(b);
}, selector:".mobile-identifiers-link"}, {event:"click", listener:function(b) {
return a.onPersonalizationLink(b);
}, selector:".personalization-link"}, {event:"click", listener:function(b) {
return a.onMeasurementLinkEvent(b);
}, selector:".measurement-link"}, {event:"click", listener:function(b) {
return a.onBackButtonEvent(b);
}, selector:".back-button"}];
a._switchGroup = new kc(b.platform, b.privacyManager);
a._switchGroup.addEventHandler(a);
a._privacyRowItemContainer = new tc(b.platform, b.privacyManager, !0);
a._privacyRowItemContainer.addEventHandler(a);
return a;
}
function tc(b, a, c) {
c = void 0 === c ? !1 : c;
var d = I.call(this, b, "privacy-row-item-container", !1) || this;
d._userPrivacyManager = a;
d._template = new Ia('<div class="row-item"><div class="what-we-collect row-
item-title"><span>What information we collect and how we use it</span><div
class="arrow-icon"><span class="consent-icon-chevron"></span></div></div><div
class="description"><p>Most of the information we use for this personalization is
based on your device\u2019s advertising ID (Apple\u2019s Advertising Identifier or
Google Advertising Identifier) and your IP address.</p><p>From your interaction
with this app, here is an example of the information we use to predict which other
apps might interest you:</p><p><span id="phone-type" class="intended-span"></span>
<span id="country" class="intended-span"></span> <span id="game-plays-this-week"
class="intended-span"></span> <span id="ads-seen-in-game" class="intended-
span"></span> <span id="games-installed-from-ads" class="intended-
span"></span></p><p><span id="sorry-message" class="intended-span">Sorry. We were
unable to deliver our collected information at this time.</span></p><p>We would use
this information to show ads for other games we think you would enjoy and to
customize your gameplay wherever possible. This may include arranging the
game\u2019s store according to tools and extras that you are more likely to use or
to alter your game experience in order to adjust to your skill level.</p><p>We only
retain personal data for 30 days; however, we may keep a transactional record using
your personal information for 180 days for billing and fraud prevention
purposes.</p><p class="measurement-paragraph"><span class="heading2">What do our
partners collect (measurement and demographics)</span></p><p>Our partners may use
your advertising ID and IP address to build a profile about you according to your
preferences and household demographic information. Demographic information may
include things like marital status or approximate income. Please visit our third
parties\u2019 privacy policies to see how you can access or delete the information
they have about you.</p><p>Information may also be collected from your phone,
including how hard you are pressing the screen (pressure point measurement). The
purpose of our partners collecting such information is to prevent fraud by
assessing whether it is a real person engaging with the application (uneven
pressure points), or a bot put into the marketplace by a bad actor attempting to
mislead ad networks.</p></div></div><div class="row-item"><div class="data-transfer
row-item-title"><span>Data transfer outside of the EU</span><div class="arrow-
icon"><span class="consent-icon-chevron"></span></div></div><div
class="description"><p>Please note Unity may transfer and process your data on
servers located in the United States. We have committed through internal agreements
and agreements with our third-party processors to treat your data with the same
protections as those afforded to you in the European Economic Area if your data is
collected in that region of the world. For more information on transfers, visit
Unity\u2019s <a href="https://unity3d.com/legal/privacy-policy">Privacy
Policy</a>.</p></div></div><div class="row-item"><div class="third-party row-item-
title"><span>View our third-party ad partners</span><div class="arrow-icon"><span
class="consent-icon-chevron"></span></div></div><div class="description"><p
class="dsp-list"><a href="http://corp.aarki.com/privacy">Aarki</a>, <a
href="http://www.ad.net/privacy-policy">Ad.Net</a>, <a
href="https://www.adcolony.com/gdpr/">AdColony</a>, <a
href="http://www.admaxim.com/admaxim-privacy-policy/">AdMaxim</a>, <a
href="https://www.adobe.com/privacy/policy.html">Adobe</a>, <a
href="https://appreciate.mobi/page.html#/end-user-privacy-policy">Appreciate</a>,
<a href="http://beeswax.com/privacy.html">Beeswax</a>, <a
href="http://www.bidmotion.com/privacy-policy">Bidmotion</a>, <a
href="https://answers.chartboost.com/en-us/articles/200780269">Charboost</a>, <a
href="http://www.crossinstall.com/privacy/">CrossInstall</a>, <a
href="http://engagebdr.com/privacy-policy/">EngageBDR</a>, <a
href="https://policies.google.com/technologies/partner-sites">Google</a>, <a
href="https://gothamads.com/privacy-policy">GothamAds</a>, <a
href="https://jampp.com/privacy-policy/">Jampp</a>, <a
href="https://www.applift.com/privacy-policy">Kayzen (fka Applift)</a>, <a
href="http://lifestreet.com/privacy/">Lifestreet</a>, <a
href="https://liftoff.io/privacy-policy/">Liftoff</a>, <a
href="https://loopme.com/privacy/">LoopMe</a>, <a
href="https://www.manage.com/privacy-policy/">Manage.com</a>, <a
href="http://www.molocoads.com/private-policy.html">Moloco</a>, <a
href="http://persona.ly/privacy_dsp">Persona.ly</a>, <a
href="https://pubnative.net/privacy-policy/">Pubnative</a>, <a
href="https://www.verve.com/privacy-policy/">Verv</a>, <a
href="https://remerge.io/privacy-policy.html">Remerge</a>, <a
href="https://telaria.com/privacy-policy/">Telaria</a>, <a
href="https://www.yeahmobi.com/privacy-policy/">YeahMobi</a>,</p></div></div> <%
if(data.showChangingPrivacyChoiceItem) { %> <div class="row-item"><div
class="changing-privacy-choice row-item-title"><span>Changing your privacy
choice</span><div class="arrow-icon"><span class="consent-icon-
chevron"></span></div></div><div class="description"><p>You can access these
options at any time by tapping the Unity Data Privacy icon when or after an ad
appears.</p></div></div> <% } %> <div class="row-item"><div class="privacy-policy
row-item-title"><span>Our Privacy Policy</span><div class="arrow-icon"><span
class="consent-icon-chevron"></span></div></div><div class="description"><p>Our <a
href="https://unity3d.com/legal/privacy-policy">Privacy Policy</a> explains how we
manage your data, including how and where in the world we transfer data for
processing, and how we work with partners who serve ads. These partners may collect
information about your advertising ID from sources other than Unity to further
personalize the ads you see. Please visit the privacy policies of these third
parties to review the compiled data they may have.</p></div></div>');
d._templateData = {showChangingPrivacyChoiceItem:c};
d._bindings = [{event:"click", listener:function(a) {
return d.onPrivacyEvent(a);
}, selector:"a"}, {event:"click", listener:function(a) {
return d.onWhatWeCollectEvent(a);
}, selector:".what-we-collect"}, {event:"click", listener:function(a) {
return d.onDataTransferEvent(a);
}, selector:".data-transfer"}, {event:"click", listener:function(a) {
return d.onThirdPartyEvent(a);
}, selector:".third-party"}, {event:"click", listener:function(a) {
return d.onChangingPrivacyChoiceEvent(a);
}, selector:".changing-privacy-choice"}, {event:"click", listener:function(a) {
return d.onPrivacyPolicyEvent(a);
}, selector:".privacy-policy"}];
return d;
}
function kc(b, a) {
var c = I.call(this, b, "personalization-switch-group") || this;
c._userPrivacyManager = a;
c._template = new Ia('<div class="switch-container"><div class="switch-
label"><span>I agree to personalized game experience</span></div><div
class="switch"><input id="personalized-experience-switch" type="checkbox"> <label
for="personalized-experience-switch"></label></div></div><div class="switch-
container"><div class="switch-label"><span>I agree to personalized ads and in-app
content from Unity</span></div><div class="switch"><input id="personalized-ads-
switch" type="checkbox"> <label for="personalized-ads-switch" class="personalized-
ads-label"></label></div></div><div id="third-party-switch" class="switch-
container"><div class="switch-label"><span>I also agree to personalized ads and
measurement, including those using demographic and other data from third-party
partners</span></div><div class="switch"><input id="personalized-ads-3rd-party-
switch" type="checkbox"> <label for="personalized-ads-3rd-party-
switch"></label></div></div>');
c._bindings = [{event:"change", listener:function(a) {
return c.onExpSwitchChange(a);
}, selector:"#personalized-experience-switch"}, {event:"change",
listener:function(a) {
return c.onAdsSwitchChange(a);
}, selector:"#personalized-ads-switch"}, {event:"change", listener:function(a)
{
return c.on3rdPartySwitchChange(a);
}, selector:"#personalized-ads-3rd-party-switch"}];
return c;
}
function Ug(b) {
b = I.call(this, b, "button-spinner") || this;
b._template = new Ia('<div class="loader"></div>');
b._bindings = [];
return b;
}
function Lc(b, a, c, d, e) {
var f = Pb.call(this, b, c, e, d, "privacy") || this;
f._dataDeletionConfirmation = !1;
f._currentState = uc.PRIVACY;
f._reportSent = !1;
f._gdprEnabled = !1;
f._userSummaryObtained = !1;
f._templateData.reportKeys = Object.keys(Id);
f._templateData.reportReasons = Object.keys(Id).map(function(a) {
return Id[a];
});
f._template = new Ia('<div class="pop-up"><div class="pop-up-content"><span
class="icon-gdpr"></span> <span class="title centered-title">A message from Unity
about your privacy</span> <% if(!data.isGDPREnabled) { %> <span class="not-
gdpr"><div class="privacy-text"> <% if(data.isCoppaCompliant) { %> <p>This
advertisement has been served by Unity Ads. By request of this app\u2019s
publisher, we do not combine the data from this app with data from any other
apps.</p> <% } else { %> <p>This advertisement has been served by Unity Ads. Unity
Ads collects information gathered through your use of apps in order to create an
individualized and more relevant user experience and to show you ads that are more
likely to interest you (\u201cpersonalized experiences and ads\u201d).</p> <% } %>
<p>From your interaction with this app, here is an example of the information we
use to predict which other apps might interest you:</p><p><span id="phone-
type"></span></p><p><span id="country"></span></p><p><span id="game-plays-this-
week"></span></p><p><span id="ads-seen-in-game"></span></p><p><span id="games-
installed-from-ads"></span></p><p><span id="sorry-message">Sorry. We were unable to
deliver our collected information at this time.</span></p><p>Please review our <a
href="https://unity3d.com/legal/privacy-policy">Privacy Policy</a> for a full
description of our data practices. You can opt-out of Unity Ads\u2019 personalized
experiences and ads through your device settings.</p></div></span></div> <% } else
{ %> <span class="gdpr"><p>Ads allow developers to offer great apps for free. We
try to show the apps and products that will be most interesting to you based on the
apps you use, the device you use, and the country you are in.</p><p><span
class="highlight">Most of the information we use for this personalization is based
on your device\u2019s advertising ID (<span class="gdpr-text-ios">Apple\u2019s
Advertising Identifier</span><span class="gdpr-text-android">Google Ad
Identifier</span>) and your IP address. <% if(data.isCoppaCompliant) { %> <span
id="coppaTag1">By request of this app\u2019s publisher, we do not combine the data
from this app with data from any other apps.</span> <% } %> </span></p><p>Our <a
href="https://unity3d.com/legal/privacy-policy">Privacy Policy</a> explains how we
manage your data and how we work with partners who serve ads. <%
if(data.isCoppaCompliant) { %> <span id="coppaTag2">While these partners generally
collect information about your advertising ID from sources other than Unity, Unity
does not provide your advertising ID to these third parties for ads served in this
app.</span> <% } else { %> <span id="coppaTag2">These partners may collect
information about your advertising ID from sources other than Unity to further
personalize the ads you see. Please visit the privacy policies of these third
parties to review the compiled data they may have.</span> <% } %> </p><p>From your
interaction with this app, here is an example of the information we use to predict
which other apps might interest you:</p><p><span id="phone-
type"></span></p><p><span id="country"></span></p><p><span id="game-plays-this-
week"></span></p><p><span id="ads-seen-in-game"></span></p><p><span id="games-
installed-from-ads"></span></p><p><span id="sorry-message">Sorry. We were unable to
deliver our collected information at this time.</span></p><p><span
class="header">Selection</span></p><p>You can choose to continue to have a
personalized experience, or to have a generic one. This will apply to both
advertising that comes from Unity directly as well as from advertising
partners.</p><div class="radio-group-container"><div class="radio-item-
container"><input id="gdpr-agree-radio" name="gdpr-radio-group" type="radio">
<label for="gdpr-agree-radio">Yes, I agree to a personalized
experience.</label></div><div class="radio-item-container"><input id="gdpr-refuse-
radio" name="gdpr-radio-group" type="radio"> <label for="gdpr-refuse-radio">No, I
do not want personalized experience.</label></div></div><p><span
class="header">Changing your privacy choice</span> You can access these options at
any time by tapping the Unity Data Privacy icon when or after an ad
appears.</p><p><span class="header">Data Management</span> You can delete any data
Unity has about your device by clicking <span class="data-deletion-link page-
link">here</span>. <% if(data.isCoppaCompliant) { %> <span id="coppaTag3">This will
also opt you out of personalized ad experiences.</span> <% } %> <span id="data-
deletion-container">Are you sure? <span id="data-deletion-confirm" class="page-
link">Yes</span> / <span class="data-deletion-reject page-link">No</span></span>
<span id="data-deletion-request-container">We will process your request and your
data for profile purposes will be deleted in 30 days. We will also opt you out of
personalized ads immediately. Please note we may retain your data for invoicing and
fraud prevention purposes for 180 days.</span></p></span></div> <% } %> <div
class="pop-up-content build-side"> <% for (var k in data.buildInformation) { %> <p
class="build-information-item"><span class="build-information-key"> <%= k
%>:</span> <span class="build-information-value"> <%= (data.buildInformation[k] ===
null || typeof data.buildInformation[k] === "undefined") ? "N/A" :
data.buildInformation[k] %></span></p> <% } %> </div><div class="pop-up-content
report-side"><span class="report-title centered-title">Report Advertisement</span>
<span class="report-dialog">Are you experiencing issues with your current
advertisement? Report to Unity Ads directly and let us know!</span><ul
class="radio-group-container"> <% for (var k in data.reportReasons) { %> <div
class="radio-item-container"><input id="<%= data.reportKeys[k] %>" class="report-
choice-radio" name="report-reason" type="radio"> <label for="<%= data.reportKeys[k]
%>"> <%= (data.reportReasons[k] === null || typeof data.reportReasons[k] ===
"undefined") ? "N/A" : data.reportReasons[k] %></label></div> <% } %> </ul><span
class="report-disclaimer">Disclaimer: Reporting will close your advertisement and
forfeit any rewards received from watching it.</span><div class="report-
container"><div class="report-button">Report</div><span class="report-confirmed-
text"></span></div></div><div class="fade-out-gradient-separator"></div><div
class="pop-up-footer"><div class="left-side-link">Build info \u2699</div><div
class="middle-link">Report Ad \u2691</div><div class="close-
button">Confirm</div></div>');
f._campaign = a;
f._gdprEnabled = d;
f._bindings = [{event:"click", listener:function(a) {
return f.onPrivacyEvent(a);
}, selector:"a"}, {event:"click", listener:function(a) {
return f.changePrivacyState(a, !0);
}, selector:".left-side-link"}, {event:"click", listener:function(a) {
return f.changePrivacyState(a, !1);
}, selector:".middle-link"}, {event:"click", listener:function(a) {
return f.onCloseEvent(a);
}, selector:".close-button"}, {event:"click", listener:function(a) {
return f.onDataDeletion(a);
}, selector:".data-deletion-link, .data-deletion-reject"}, {event:"click",
listener:function(a) {
return f.onDataDeletionConfirmation(a);
}, selector:"#data-deletion-confirm"}, {event:"click", listener:function(a) {
return f.onReportAd(a);
}, selector:".report-button"}];
return f;
}
function Ia(b, a) {
var c = this;
this._localization = a;
var d = 0, e = "__p+='";
b.replace(Ia._matcher, function(a, c, f, W) {
e += b.slice(d, W).replace(Ia._escapeRegExp, Ia._escapeChar);
d = W + a.length;
c ? e += "'+\n((__t=(" + c + "))==null?'':__t)+\n'" : f && (e += "';\n" + f +
"\n__p+='");
return a;
});
e += "';\n";
e = "var __t,__p='',__j=Array.prototype.join,print=function()
{__p+=__j.call(arguments,'');};\n" + e + "return __p;\n";
try {
var f = new Function("data", e);
this._templateFunction = function(a) {
return f.call(c, a);
};
} catch (g) {
throw g.source = e, g;
}
}
function Pb(b, a, c, d, e, f) {
b = I.call(this, b, e, f) || this;
b._onReport = new Dc;
b._userPrivacyManager = a;
b._templateData = {isCoppaCompliant:c, isGDPREnabled:d,
buildInformation:Pb.buildInformation};
return b;
}
function uf() {
}
function Te() {
}
function I(b, a, c) {
this._templateData = {};
this._bindings = [];
this._handlers = [];
this._attachTap = !1;
this._platform = b;
this._id = a;
this._attachTap = void 0 !== c ? c : this._platform === p.IOS;
}
function vf(b) {
return Mc.call(this, b) || this;
}
function wf(b) {
return Mc.call(this, b) || this;
}
function Mc(b) {
var a = this;
this._element = b;
this._startY = this._startX = 0;
this._element.addEventListener("touchstart", function(b) {
return a.onTouchStart(b);
}, !1);
}
function Jd(b) {
var a = this;
this._element = b;
this._moved = !1;
this._startY = this._startX = 0;
this._element.addEventListener("touchstart", function(b) {
return a.onTouchStart(b);
}, !1);
}
function Vg() {
}
function ae(b) {
var a = P.call(this, b) || this;
a._xPromoCampaign = b.campaign;
return a;
}
function be(b) {
return vc.apply(this, arguments) || this;
}
function Ue(b) {
var a = Qb.call(this, b) || this;
a._mraidCampaign = b.campaign;
return a;
}
function Qb(b) {
return P.call(this, b) || this;
}
function Ve(b) {
var a = P.call(this, b) || this;
a._performanceCampaign = b.campaign;
return a;
}
function P(b) {
this._storageBridge = b.storageBridge;
this._metaDataManager = b.metaDataManager;
this._sessionManager = b.sessionManager;
this._clientInfo = b.clientInfo;
this._deviceInfo = b.deviceInfo;
this._request = b.request;
this._coreConfig = b.coreConfig;
this._adsConfig = b.adsConfig;
this._campaign = b.campaign;
this._platform = b.platform;
this._core = b.core;
this._ads = b.ads;
this._playerMetadataServerId = b.playerMetadataServerId;
}
function ce() {
var b = Ua.call(this, "FrameworkMetaData", Object.assign({}, Ua.Schema, {name:
["string", "undefined"], version:["string", "undefined"]})) || this;
b.set("category", "framework");
b.set("keys", ["name", "version"]);
return b;
}
function G(b) {
return J.call(this, "AndroidDeviceInfo", Object.assign({}, J.Schema,
{androidId:["string"], isGoogleStoreInstalled:["boolean"], isXiaomiStoreInstalled:
["boolean"], isGoogleMapsInstalled:["boolean"], isTelephonyInstalled:["boolean"],
apiLevel:["number"], freeExternalSpace:["number"], totalExternalSpace:["number"],
manufacturer:["string"], screenLayout:["number"], screenDensity:["number"],
ringerMode:["number"], board:["string"], bootLoader:["string"], brand:["string"],
device:["string"], hardware:["string"],
host:["string"], product:["string"], supportedAbis:["array"], sensorList:
["array"]}), p.ANDROID, b) || this;
}
function ia(b) {
b = B.call(this, b, "DeviceInfo", gb.DEVICEINFO) || this;
b.onVolumeChanged = new Tc;
return b;
}
function J(b, a, c, d) {
b = z.call(this, "DeviceInfo", a) || this;
b._platform = c;
b._core = d;
return b;
}
function Ya() {
}
function Rb(b) {
var a = z.call(this, "Session", {id:["string"], adPlan:["string", "undefined"],
eventSent:["object"], gameSessionCounters:["object"], privacy:["object"],
deviceFreeSpace:["number"]}) || this;
a.set("id", b);
a.set("eventSent", {});
return a;
}
function vc(b, a, c) {
this._core = b;
this._sessionId = a;
this._eventId = c;
}
function Nc(b) {
this._type = b;
this._batch = {commands:[]};
}
function qd() {
}
function Lg(b, a) {
this._core = b;
this._requestManager = a;
}
function cd(b, a, c) {
this._templateValues = {};
this._core = b;
this._request = a;
c && this.setTemplateValues(c);
}
function w(b, a, c, d) {
var e = this;
this._platform = b;
this._core = a;
this._wakeUpManager = c;
this._deviceInfo = d;
this._core.Request.onComplete.subscribe(function(a, b, c, d, W) {
return e.onRequestComplete(a, b, c, d, W);
});
this._core.Request.onFailed.subscribe(function(a, b, c) {
return e.onRequestFailed(a, b, c);
});
this._wakeUpManager.onNetworkConnected.subscribe(function() {
return e.onNetworkConnected();
});
}
function E() {
}
function Wg() {
}
function re(b) {
this._contentTypeHandlerMap = b;
}
function Cb(b) {
this._platform = b.NativeBridge.getPlatform();
this._core = b.Api;
this._requestManager = b.RequestManager;
this._abGroup = b.Config.getAbGroup();
this._pts = b.Ads.ProgrammaticTrackingService;
return this;
}
function Ja(b, a) {
a = void 0 === a ? Ja.DEFAULT_MAX_WRAPPER_DEPTH : a;
this._domParser = b || new DOMParser;
this._maxWrapperDepth = a;
}
function rd(b, a, c, d) {
var e = z.call(this, "VastAdVerifications", {verificationVendor:["string"],
verificationResources:["array"], verificationTrackingEvent:["string", "null"],
verificationParameters:["string", "null"]}) || this;
e.set("verificationVendor", b);
e.set("verificationResources", a);
e.set("verificationTrackingEvent", d || null);
e.set("verificationParameters", c || null);
return e;
}
function de(b, a, c, d) {
var e = z.call(this, "VastVerificationResource", {resourceUrl:["string"],
apiFramework:["string"], browserOptional:["boolean", "null"], type:["string",
"null"]}) || this;
e.set("resourceUrl", b);
e.set("apiFramework", a);
e.set("browserOptional", c || null);
e.set("type", d || "other");
return e;
}
function Kd(b) {
this._errors = [];
this.validate(b);
}
function dd(b) {
this._errors = [];
this.validate(b);
}
function ee(b) {
this._errors = [];
this.validate(b);
}
function xf(b) {
this._errors = [];
this.validate(b);
}
function cc() {
}
function Db(b, a, c, d, e, f, g, l, n, W, r) {
var y = z.call(this, "VastMediaFile", {fileURL:["string", "null"],
deliveryType:["string"], mimeType:["string", "null"], codec:["string", "null"],
bitrate:["number"], minBitrate:["number"], maxBitrate:["number"], width:["number"],
height:["number"], apiFramework:["string", "null"], scalable:["boolean", "null"],
maintainAspectRatio:["boolean", "null"], fileSize:["number"]}) || this;
y.set("fileURL", b || null);
y.set("deliveryType", a || "progressive");
y.set("mimeType", d || null);
y.set("codec", c || null);
y.set("bitrate", e || 0);
y.set("minBitrate", f || 0);
y.set("maxBitrate", g || 0);
y.set("width", l || 0);
y.set("height", n || 0);
y.set("apiFramework", W || null);
y.set("scalable", null);
y.set("maintainAspectRatio", null);
y.set("fileSize", r || 0);
return y;
}
function kb(b, a, c, d, e, f, g, l) {
var n = z.call(this, "VastCreativeCompanionAd", {id:["string", "null"], width:
["number"], height:["number"], type:["string"], staticResourceURL:["string",
"null"], creativeType:["string", "null"], companionClickThroughURLTemplate:
["string", "null"], companionClickTrackingURLTemplates:["array"], trackingEvents:
["object"]}) || this;
n.set("id", b || null);
n.set("width", c || 0);
n.set("height", a || 0);
n.set("type", "");
n.set("creativeType", d || null);
n.set("staticResourceURL", e || null);
n.set("companionClickThroughURLTemplate", f || null);
n.set("companionClickTrackingURLTemplates", g || []);
n.set("trackingEvents", l || {});
return n;
}
function ea(b, a, c, d, e, f, g, l) {
var n = z.call(this, "VastAd", {id:["string", "null"], creatives:["array"],
companionAds:["array"], errorURLTemplates:["array"], impressionURLTemplates:
["array"], wrapperURLs:["array"], unparseableCompanionAds:["array"],
adVerifications:["array"]}) || this;
n.set("id", b || null);
n.set("creatives", a || []);
n.set("companionAds", f || []);
n.set("errorURLTemplates", c || []);
n.set("impressionURLTemplates", d || []);
n.set("wrapperURLs", e || []);
n.set("unparseableCompanionAds", g || []);
n.set("adVerifications", l || []);
return n;
}
function Za(b, a, c, d, e, f, g) {
var l = Ld.call(this, "VastCreativeLinear", {type:["string"], trackingEvents:
["object"], duration:["number"], skipDelay:["number", "null"], mediaFiles:
["array"], videoClickThroughURLTemplate:["string", "null"],
videoClickTrackingURLTemplates:["array"], videoCustomClickURLTemplates:["array"],
adParameters:["string", "null"]}, "linear") || this;
l.set("duration", b || 0);
l.set("skipDelay", a || null);
l.set("mediaFiles", c || []);
l.set("videoClickThroughURLTemplate", d || null);
l.set("videoClickTrackingURLTemplates", e || []);
l.set("videoCustomClickURLTemplates", f || []);
l.set("adParameters", g || null);
return l;
}
function Ld(b, a, c, d) {
b = z.call(this, b, a) || this;
b.set("type", c);
b.set("trackingEvents", d || {});
return b;
}
function ha(b, a) {
var c = z.call(this, "Vast", {ads:["array"], parseErrorURLTemplates:["array"],
additionalTrackingEvents:["object"]}) || this;
c.set("ads", b);
c.set("parseErrorURLTemplates", a);
c.set("additionalTrackingEvents", {});
return c;
}
function ng(b, a) {
this._request = a;
this._core = b;
}
function Md() {
}
function sd(b, a, c, d, e, f) {
var g = Error.call(this, b);
this.message = g.message;
"stack" in g && (this.stack = g.stack);
this.contentType = a;
this.errorTrackingUrl = c;
this.errorCode = d ? d : 999;
this.errorMessage = b;
this.assetUrl = e;
this.seatId = f;
}
function ld(b, a, c, d) {
this._platform = b;
this._request = a;
this._clientInfo = c;
this._deviceInfo = d;
}
function ed(b, a, c) {
b = hb.call(this, b) || this;
b.nativeRequest = a;
b.nativeResponse = c;
return b;
}
function wa() {
}
function Yb(b) {
this._platform = b;
}
function lg(b) {
return Mb.apply(this, arguments) || this;
}
function Mb(b) {
this._adUnitParametersFactory = b;
}
function se(b) {
return Zc.call(this, b) || this;
}
function Nd(b) {
return Zc.call(this, b) || this;
}
function Zc(b) {
this._platform = b.platform;
this._core = b.core;
this._ads = b.ads;
this._adUnit = b.adUnit;
this._campaign = b.campaign;
this._video = b.video;
}
function M(b) {
var a = Z.call(this, b) || this;
a._videoState = V.NOT_READY;
a._video = b.video;
a._videoReady = !1;
a._active = !1;
a._overlay = b.overlay;
a._deviceInfo = b.deviceInfo;
a._options = b.options;
a._prepareCalled = !1;
a._lowMemory = !1;
a._placement = b.placement;
a._campaign = b.campaign;
a._clientInfo = b.clientInfo;
a.prepareOverlay();
return a;
}
function We() {
}
function sb(b) {
this._value = b;
}
function $a(b) {
var a = nd.call(this, b.privacyManager, b.coreConfig, b.adsConfig) || this;
a._adUnit = b.adUnit;
a._platform = b.platform;
a._core = b.core;
a._request = b.request;
a._thirdPartyEventManager = b.thirdPartyEventManager;
a._session = b.session;
a._adMobSignalFactory = b.adMobSignalFactory;
a._campaign = b.campaign;
a._clientInfo = b.clientInfo;
a._timeoutTimer = new yf(function() {
return a.onFailureToLoad();
}, $a._loadTimeout);
return a;
}
function yf(b, a) {
this._handle = -1;
this._func = b;
this._duration = a;
}
function Xe() {
}
function og(b) {
b = Error.call(this, b);
this.message = b.message;
"stack" in b && (this.stack = b.stack);
}
function nd(b, a, c) {
this._privacyManager = b;
this._coreConfig = a;
this._adsConfig = c;
}
function ab(b, a, c, d, e, f, g) {
var l = this;
this._platform = b;
this._core = a;
this._coreConfig = c;
this._adsConfig = d;
this._gamePrivacy = d.getGamePrivacy();
this._userPrivacy = d.getUserPrivacy();
this._clientInfo = e;
this._deviceInfo = f;
this._request = g;
this._core.Storage.onSet.subscribe(function(a, b) {
return l.onStorageSet(a, b);
});
}
function O() {
}
function pg(b) {
return td.apply(this, arguments) || this;
}
function td(b) {
return ud.apply(this, arguments) || this;
}
function zf(b) {
for (var a = [], c = 0; c < arguments.length; ++c) {
a[c - 0] = arguments[c];
}
return ud.apply(this, h.arrayFromIterable(a)) || this;
}
function ud(b) {
for (var a = [], c = 0; c < arguments.length; ++c) {
a[c - 0] = arguments[c];
}
this._groups = a;
}
function vd() {
}
function dc(b, a) {
var c = hb.call(this, b.message, b.name) || this;
c.diagnostic = {};
c.stack = b.stack;
c.diagnostic = a;
return c;
}
function fd(b) {
var a = z.call(this, "UserPrivacy", {method:["string"], version:["number"],
permissions:["object"]}) || this;
a.set("method", b.method);
a.set("version", b.version);
a.set("permissions", b.permissions);
return a;
}
function wd(b) {
var a = z.call(this, "GamePrivacy", {method:["string"]}) || this;
a.set("method", b.method);
return a;
}
function xa(b) {
var a = Z.call(this, b) || this;
a._foregroundTime = 0;
a._startTime = 0;
a._requestToViewTime = 0;
a._operativeEventManager = b.operativeEventManager;
a._view = b.view;
a._options = b.options;
a._thirdPartyEventManager = b.thirdPartyEventManager;
a._operativeEventManager = b.operativeEventManager;
a._keyDownListener = function(b) {
return a.onKeyDown(b);
};
a._campaign = b.campaign;
a._placement = b.placement;
a.setFinishState(a._placement.allowSkip() ? na.COMPLETED : na.SKIPPED);
return a;
}
function Sb() {
}
function m() {
}
function gd() {
var b = Ua.call(this, "MediationMetaData", Object.assign({}, Ua.Schema, {name:
["string", "undefined"], version:["string", "undefined"], ordinal:["number",
"undefined"]})) || this;
b.set("category", "mediation");
b.set("keys", ["name", "version", "ordinal"]);
return b;
}
function Ua(b, a) {
return z.call(this, b, a) || this;
}
function Ye(b, a) {
this._platform = b;
this._core = a;
}
function Sc(b) {
b = B.call(this, b, "Storage", gb.STORAGE) || this;
b.onSet = new Dc;
return b;
}
function B(b, a, c) {
this._nativeBridge = b;
this._apiClass = a;
"undefined" !== typeof c && b.addEventHandler(c, this);
}
function Eb(b) {
return z.call(this, "Configuration", Eb.Schema, b) || this;
}
function Z(b) {
this.onStart = new Ma;
this.onStartProcessed = new Ma;
this.onFinish = new Ma;
this.onClose = new Ma;
this.onError = new Ma;
this._platform = b.platform;
this._core = b.core;
this._ads = b.ads;
this._store = b.store;
this._forceOrientation = b.forceOrientation;
this._container = b.container;
this._showing = !1;
this._finishState = na.ERROR;
this._baseCampaign = b.campaign;
}
function tf(b) {
return Fb.apply(this, arguments) || this;
}
function Ud(b) {
return Fb.apply(this, arguments) || this;
}
function De(b) {
return Fb.apply(this, arguments) || this;
}
function Tc(b) {
return Fb.apply(this, arguments) || this;
}
function Dc(b) {
return Fb.apply(this, arguments) || this;
}
function za(b) {
return Fb.apply(this, arguments) || this;
}
function Ma(b) {
return Fb.apply(this, arguments) || this;
}
function Fb() {
this._observers = [];
}
function Oa() {
}
function L(b) {
return ba.call(this, "XPromoCampaign", Object.assign({}, ba.Schema,
{appStoreId:["string"], gameId:["number"], gameName:["string"], gameIcon:
["object"], rating:["number"], ratingCount:["number"], landscapeImage:["object",
"undefined"], portraitImage:["object", "undefined"], squareImage:["object",
"undefined"], video:["object", "undefined"], streamingVideo:["object",
"undefined"], videoPortrait:["object", "undefined"], streamingPortraitVideo:
["object", "undefined"], clickAttributionUrl:["string",
"undefined"], clickAttributionUrlFollowsRedirects:["boolean", "undefined"],
bypassAppSheet:["boolean"], store:["number"], videoEventUrls:["object"]}), b) ||
this;
}
function oa(b) {
var a = Tb.call(this, "VastCampaign", Object.assign({}, Tb.Schema, {vast:
["object"], video:["object"], hasEndscreen:["boolean"], portrait:["object",
"undefined"], landscape:["object", "undefined"], appCategory:["string",
"undefined"], appSubcategory:["string", "undefined"], advertiserDomain:["string",
"undefined"], advertiserCampaignId:["string", "undefined"], advertiserBundleId:
["string", "undefined"], buyerId:["string", "undefined"], impressionUrls:["array"],
isMoatEnabled:["boolean", "undefined"]}),
b) || this;
a.addCustomTracking(b.trackingUrls);
return a;
}
function pa(b, a, c, d) {
a = Fa.call(this, "Video", a, Object.assign({}, Fa.Schema, {size:["number",
"undefined"], duration:["number"], position:["number"], positionRepeats:["number"],
quartile:["number"], started:["boolean"], creativeId:["string", "undefined"]})) ||
this;
a.set("url", b);
a.set("size", c);
a.set("duration", 0);
a.set("position", 0);
a.set("positionRepeats", 0);
a.set("quartile", 0);
a.set("started", !1);
a.set("creativeId", d);
return a;
}
function D(b) {
return ba.call(this, "PerformanceCampaign", Object.assign({}, ba.Schema,
{appStoreId:["string"], gameId:["number"], gameName:["string"], gameIcon:
["object"], rating:["number"], ratingCount:["number"], landscapeImage:["object",
"undefined"], portraitImage:["object", "undefined"], squareImage:["object",
"undefined"], video:["object", "undefined"], streamingVideo:["object",
"undefined"], videoPortrait:["object", "undefined"], streamingPortraitVideo:
["object", "undefined"], clickAttributionUrl:["string",
"undefined"], clickAttributionUrlFollowsRedirects:["boolean", "undefined"],
clickUrl:["string"], videoEventUrls:["object"], bypassAppSheet:["boolean"], store:
["number"], adUnitStyle:["object", "undefined"], appDownloadUrl:["string",
"undefined"]}), b) || this;
}
function U(b) {
return Tb.call(this, "MRAIDCampaign", Object.assign({}, Tb.Schema,
{resourceAsset:["object", "undefined"], resource:["string", "undefined"],
dynamicMarkup:["string", "undefined"], clickAttributionUrl:["string", "undefined"],
clickAttributionUrlFollowsRedirects:["boolean", "undefined"], clickUrl:["string",
"undefined"], gameName:["string", "undefined"], gameIcon:["object", "undefined"],
rating:["number", "undefined"], ratingCount:["number", "undefined"],
landscapeImage:["object", "undefined"],
portraitImage:["object", "undefined"], bypassAppSheet:["boolean", "undefined"],
store:["number", "undefined"], appStoreId:["string", "undefined"], videoEventUrls:
["object", "undefined"], playableConfiguration:["object", "undefined"]}), b) ||
this;
}
function te(b, a, c) {
a = Fa.call(this, "HTML", a, Fa.Schema) || this;
a.set("url", b);
a.set("creativeId", c);
return a;
}
function Fa(b, a, c) {
b = z.call(this, b, c) || this;
b.set("session", a);
return b;
}
function bc() {
this._handlers = [];
this._paused = !1;
}
function hd(b) {
return Tb.call(this, "AdMobCampaign", Object.assign({}, Tb.Schema,
{dynamicMarkup:["string"], video:["object", "null"]}), b) || this;
}
function Od(b) {
return z.call(this, "AdMobVideo", {mediaFileURL:["string"], video:["object"],
extension:["string", "null"]}, b) || this;
}
function Tb(b, a, c) {
return ba.call(this, b, a, c) || this;
}
function ba(b, a, c) {
return z.call(this, b, a, c) || this;
}
function z(b, a, c) {
c = void 0 === c ? {} : c;
this._data = {};
this._schema = a;
this._name = b;
this.setModelValues(c);
}
function F() {
}
function hb(b, a) {
this.message = b;
this.name = a;
}
function ca() {
}
function H() {
}
function u() {
}
function qg() {
}
function ue() {
}
function tb(b, a, c) {
this._callbackId = 1;
this._callbackTable = {};
this._eventHandlers = {};
this._backend = b;
this._platform = a;
this._autoBatchEnabled = void 0 === c ? !0 : c;
}
function rg(b, a) {
this.resolve = b;
this.reject = a;
}
function Ze(b) {
this._batch = [];
this._nativeBridge = b;
}
function sg(b) {
return !0 === b.all || void 0 !== b.gameExp && void 0 !== b.ads && void 0 !==
b.external;
}
function Xg(b) {
return 99 === b ? 99 : 0 <= b && 19 >= b ? b : -1;
}
function Af(b) {
try {
var a = JSON.parse(b);
} catch (c) {
a = [];
}
return a;
}
function $e(b, a) {
return a = {exports:{}}, b(a, a.exports), a.exports;
}
function Bf() {
this._listeners = {};
}
function Yg(b) {
"undefined" !== typeof Float32Array ? function() {
function a(a, b, c) {
f[0] = a;
b[c] = g[0];
b[c + 1] = g[1];
b[c + 2] = g[2];
b[c + 3] = g[3];
}
function c(a, b, c) {
f[0] = a;
b[c] = g[3];
b[c + 1] = g[2];
b[c + 2] = g[1];
b[c + 3] = g[0];
}
function d(a, b) {
g[0] = a[b];
g[1] = a[b + 1];
g[2] = a[b + 2];
g[3] = a[b + 3];
return f[0];
}
function e(a, b) {
g[3] = a[b];
g[2] = a[b + 1];
g[1] = a[b + 2];
g[0] = a[b + 3];
return f[0];
}
var f = new Float32Array([-0]), g = new Uint8Array(f.buffer), l = 128 ===
g[3];
b.writeFloatLE = l ? a : c;
b.writeFloatBE = l ? c : a;
b.readFloatLE = l ? d : e;
b.readFloatBE = l ? e : d;
}() : function() {
function a(a, b, c, g) {
var d = 0 > b ? 1 : 0;
d && (b = -b);
if (0 === b) {
a(0 < 1 / b ? 0 : 2147483648, c, g);
} else {
if (isNaN(b)) {
a(2143289344, c, g);
} else {
if (3.4028234663852886e+38 < b) {
a((d << 31 | 2139095040) >>> 0, c, g);
} else {
if (1.1754943508222875e-38 > b) {
a((d << 31 | Math.round(b / 1.401298464324817e-45)) >>> 0, c, g);
} else {
var e = Math.floor(Math.log(b) / Math.LN2);
a((d << 31 | e + 127 << 23 | Math.round(b * Math.pow(2, -e) *
8388608) & 8388607) >>> 0, c, g);
}
}
}
}
}
function c(a, b, c) {
c = a(b, c);
a = 2 * (c >> 31) + 1;
b = c >>> 23 & 255;
c &= 8388607;
return 255 === b ? c ? NaN : Infinity * a : 0 === b ? 1.401298464324817e-45
* a * c : a * Math.pow(2, b - 150) * (c + 8388608);
}
b.writeFloatLE = a.bind(null, Zg);
b.writeFloatBE = a.bind(null, $g);
b.readFloatLE = c.bind(null, ah);
b.readFloatBE = c.bind(null, bh);
}();
"undefined" !== typeof Float64Array ? function() {
function a(a, b, c) {
f[0] = a;
b[c] = g[0];
b[c + 1] = g[1];
b[c + 2] = g[2];
b[c + 3] = g[3];
b[c + 4] = g[4];
b[c + 5] = g[5];
b[c + 6] = g[6];
b[c + 7] = g[7];
}
function c(a, b, c) {
f[0] = a;
b[c] = g[7];
b[c + 1] = g[6];
b[c + 2] = g[5];
b[c + 3] = g[4];
b[c + 4] = g[3];
b[c + 5] = g[2];
b[c + 6] = g[1];
b[c + 7] = g[0];
}
function d(a, b) {
g[0] = a[b];
g[1] = a[b + 1];
g[2] = a[b + 2];
g[3] = a[b + 3];
g[4] = a[b + 4];
g[5] = a[b + 5];
g[6] = a[b + 6];
g[7] = a[b + 7];
return f[0];
}
function e(a, b) {
g[7] = a[b];
g[6] = a[b + 1];
g[5] = a[b + 2];
g[4] = a[b + 3];
g[3] = a[b + 4];
g[2] = a[b + 5];
g[1] = a[b + 6];
g[0] = a[b + 7];
return f[0];
}
var f = new Float64Array([-0]), g = new Uint8Array(f.buffer), l = 128 ===
g[7];
b.writeDoubleLE = l ? a : c;
b.writeDoubleBE = l ? c : a;
b.readDoubleLE = l ? d : e;
b.readDoubleBE = l ? e : d;
}() : function() {
function a(a, b, c, g, l, n) {
var d = 0 > g ? 1 : 0;
d && (g = -g);
if (0 === g) {
a(0, l, n + b), a(0 < 1 / g ? 0 : 2147483648, l, n + c);
} else {
if (isNaN(g)) {
a(0, l, n + b), a(2146959360, l, n + c);
} else {
if (1.7976931348623157e+308 < g) {
a(0, l, n + b), a((d << 31 | 2146435072) >>> 0, l, n + c);
} else {
if (2.2250738585072014e-308 > g) {
g /= 5e-324, a(g >>> 0, l, n + b), a((d << 31 | g / 4294967296) >>>
0, l, n + c);
} else {
var e = Math.floor(Math.log(g) / Math.LN2);
1024 === e && (e = 1023);
g *= Math.pow(2, -e);
a(4503599627370496 * g >>> 0, l, n + b);
a((d << 31 | e + 1023 << 20 | 1048576 * g & 1048575) >>> 0, l, n +
c);
}
}
}
}
}
function c(a, b, c, g, l) {
b = a(g, l + b);
g = a(g, l + c);
a = 2 * (g >> 31) + 1;
c = g >>> 20 & 2047;
b = 4294967296 * (g & 1048575) + b;
return 2047 === c ? b ? NaN : Infinity * a : 0 === c ? 5e-324 * a * b : a *
Math.pow(2, c - 1075) * (b + 4503599627370496);
}
b.writeDoubleLE = a.bind(null, Zg, 0, 4);
b.writeDoubleBE = a.bind(null, $g, 4, 0);
b.readDoubleLE = c.bind(null, ah, 0, 4);
b.readDoubleBE = c.bind(null, bh, 4, 0);
}();
return b;
}
function Zg(b, a, c) {
a[c] = b & 255;
a[c + 1] = b >>> 8 & 255;
a[c + 2] = b >>> 16 & 255;
a[c + 3] = b >>> 24;
}
function $g(b, a, c) {
a[c] = b >>> 24;
a[c + 1] = b >>> 16 & 255;
a[c + 2] = b >>> 8 & 255;
a[c + 3] = b & 255;
}
function ah(b, a) {
return (b[a] | b[a + 1] << 8 | b[a + 2] << 16 | b[a + 3] << 24) >>> 0;
}
function bh(b, a) {
return (b[a] << 24 | b[a + 1] << 16 | b[a + 2] << 8 | b[a + 3]) >>> 0;
}
function lb(b, a) {
this.lo = b >>> 0;
this.hi = a >>> 0;
}
function af(b, a, c) {
this.fn = b;
this.len = a;
this.next = void 0;
this.val = c;
}
function tg() {
}
function vh(b) {
this.head = b.head;
this.tail = b.tail;
this.len = b.len;
this.next = b.states;
}
function aa() {
this.len = 0;
this.tail = this.head = new af(tg, 0, 0);
this.states = null;
}
function ug(b, a, c) {
a[c] = b & 255;
}
function vg(b, a) {
this.len = b;
this.next = void 0;
this.val = a;
}
function wg(b, a, c) {
for (; b.hi;) {
a[c++] = b.lo & 127 | 128, b.lo = (b.lo >>> 7 | b.hi << 25) >>> 0, b.hi >>>=
7;
}
for (; 127 < b.lo;) {
a[c++] = b.lo & 127 | 128, b.lo >>>= 7;
}
a[c++] = b.lo;
}
function xg(b, a, c) {
a[c] = b & 255;
a[c + 1] = b >>> 8 & 255;
a[c + 2] = b >>> 16 & 255;
a[c + 3] = b >>> 24;
}
function fe() {
yg.call(this);
}
function wh(b, a, c) {
40 > b.length ? S.utf8.write(b, a, c) : a.utf8Write(b, c);
}
function Oc(b, a) {
return RangeError("index out of range: " + b.pos + " + " + (a || 1) + " > " +
b.len);
}
function bb(b) {
this.buf = b;
this.pos = 0;
this.len = b.length;
}
function zg() {
var b = new ch(0, 0), a = 0;
if (4 < this.len - this.pos) {
for (; 4 > a; ++a) {
if (b.lo = (b.lo | (this.buf[this.pos] & 127) << 7 * a) >>> 0, 128 >
this.buf[this.pos++]) {
return b;
}
}
b.lo = (b.lo | (this.buf[this.pos] & 127) << 28) >>> 0;
b.hi = (b.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
a = 0;
} else {
for (; 3 > a; ++a) {
if (this.pos >= this.len) {
throw Oc(this);
}
b.lo = (b.lo | (this.buf[this.pos] & 127) << 7 * a) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
}
b.lo = (b.lo | (this.buf[this.pos++] & 127) << 7 * a) >>> 0;
return b;
}
if (4 < this.len - this.pos) {
for (; 5 > a; ++a) {
if (b.hi = (b.hi | (this.buf[this.pos] & 127) << 7 * a + 3) >>> 0, 128 >
this.buf[this.pos++]) {
return b;
}
}
} else {
for (; 5 > a; ++a) {
if (this.pos >= this.len) {
throw Oc(this);
}
b.hi = (b.hi | (this.buf[this.pos] & 127) << 7 * a + 3) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
}
}
throw Error("invalid varint encoding");
}
function Cf(b, a) {
return (b[a - 4] | b[a - 3] << 8 | b[a - 2] << 16 | b[a - 1] << 24) >>> 0;
}
function dh() {
if (this.pos + 8 > this.len) {
throw Oc(this, 8);
}
return new ch(Cf(this.buf, this.pos += 4), Cf(this.buf, this.pos += 4));
}
function bf(b) {
Ag.call(this, b);
}
function cf(b, a, c) {
if ("function" !== typeof b) {
throw TypeError("rpcImpl must be a function");
}
S.EventEmitter.call(this);
this.rpcImpl = b;
this.requestDelimited = !!a;
this.responseDelimited = !!c;
}
var p;
(function(b) {
b[b.ANDROID = 0] = "ANDROID";
b[b.IOS = 1] = "IOS";
b[b.TEST = 2] = "TEST";
})(p || (p = {}));
var gb;
(function(b) {
b[b.APPSHEET = 0] = "APPSHEET";
b[b.ADUNIT = 1] = "ADUNIT";
b[b.VIDEOPLAYER = 2] = "VIDEOPLAYER";
b[b.CACHE = 3] = "CACHE";
b[b.CONNECTIVITY = 4] = "CONNECTIVITY";
b[b.STORAGE = 5] = "STORAGE";
b[b.REQUEST = 6] = "REQUEST";
b[b.RESOLVE = 7] = "RESOLVE";
b[b.BROADCAST = 8] = "BROADCAST";
b[b.NOTIFICATION = 9] = "NOTIFICATION";
b[b.LIFECYCLE = 10] = "LIFECYCLE";
b[b.DEVICEINFO = 11] = "DEVICEINFO";
})(gb || (gb = {}));
Ze.prototype.queue = function(b, a, c) {
c = void 0 === c ? [] : c;
switch(this._nativeBridge.getPlatform()) {
case p.ANDROID:
return this.rawQueue("com.unity3d.ads.api." + b, a, c);
case p.IOS:
return this.rawQueue("UADSApi" + b, a, c);
default:
return this.rawQueue(b, a, c);
}
};
Ze.prototype.rawQueue = function(b, a, c) {
var d = this;
c = void 0 === c ? [] : c;
return new Promise(function(e, f) {
e = d._nativeBridge.registerCallback(e, f);
d._batch.push([b, a, c, e.toString()]);
});
};
Ze.prototype.getBatch = function() {
return this._batch;
};
var wc;
(function(b) {
b[b.OK = 0] = "OK";
b[b.ERROR = 1] = "ERROR";
})(wc || (wc = {}));
tb.convertStatus = function(b) {
switch(b) {
case wc[wc.OK]:
return wc.OK;
case wc[wc.ERROR]:
return wc.ERROR;
default:
throw Error("Status string is not valid: " + b);
}
};
tb.prototype.registerCallback = function(b, a) {
var c = this._callbackId++;
this._callbackTable[c] = new rg(b, a);
return c;
};
tb.prototype.invoke = function(b, a, c) {
if (this._autoBatchEnabled) {
if (this._autoBatch) {
return this._autoBatch.queue(b, a, c);
}
this._autoBatch = new Ze(this);
}
var d = new Ze(this);
b = d.queue(b, a, c);
this.invokeBatch(d);
return b;
};
tb.prototype.handleCallback = function(b) {
var a = this;
b.forEach(function(b) {
var c = parseInt(b.shift(), 10), e = tb.convertStatus(b.shift());
b = b.shift();
var f = a._callbackTable[c];
if (!f) {
throw Error("Unable to find matching callback object from callback id " +
c);
}
1 === b.length && (b = b[0]);
switch(e) {
case wc.OK:
f.resolve(b);
break;
case wc.ERROR:
f.reject(b);
break;
default:
throw Error("Unknown callback status");
}
delete a._callbackTable[c];
});
this._autoBatchEnabled && (this._autoBatch && 0 <
this._autoBatch.getBatch().length && this.invokeBatch(this._autoBatch), delete
this._autoBatch);
};
tb.prototype.addEventHandler = function(b, a) {
gb[b] in this._eventHandlers || (this._eventHandlers[gb[b]] = a);
};
tb.prototype.handleEvent = function(b) {
var a = b.shift(), c = b.shift();
if (a && a in this._eventHandlers) {
this._eventHandlers[a].handleEvent(c, b);
} else {
throw Error("Unknown event category: " + a);
}
};
tb.prototype.handleInvocation = function(b) {
var a = this, c = b.shift(), d = b.shift(), e = b.shift();
b.push(function(b, c) {
for (var d = [], f = 1; f < arguments.length; ++f) {
d[f - 1] = arguments[f];
}
a.invokeCallback.apply(a, [e, wc[b]].concat(h.arrayFromIterable(d)));
});
window[c][d].apply(window[c], b);
};
tb.prototype.getPlatform = function() {
return this._platform;
};
tb.prototype.setAutoBatchEnabled = function(b) {
this._autoBatchEnabled = b;
};
tb.prototype.invokeBatch = function(b) {

this._backend.handleInvocation(JSON.stringify(b.getBatch()).replace(tb._doubleRegEx
p, "$1"));
};
tb.prototype.invokeCallback = function(b, a, c) {
for (var d = [], e = 2; e < arguments.length; ++e) {
d[e - 2] = arguments[e];
}
this._backend.handleCallback(b, a, JSON.stringify(d));
};
tb._doubleRegExp = /"(\d+\.\d+)=double"/g;
ue.prototype.handleInvocation = function(b) {
var a = new XMLHttpRequest;
a.open("POST", ue._nativeUrl + "/handleInvocation", !0);
a.send(b);
};
ue.prototype.handleCallback = function(b, a, c) {
var d = new XMLHttpRequest;
d.open("POST", ue._nativeUrl + "/handleCallback", !0);
d.send('{"id":"' + b + '","status":"' + a + '","parameters":' + c + "}");
};
ue._nativeUrl = "https://webviewbridge.unityads.unity3d.com";
qg.prototype.handleInvocation = function(b) {
window.webkit.messageHandlers.handleInvocation.postMessage(b);
};
qg.prototype.handleCallback = function(b, a, c) {
window.webkit.messageHandlers.handleCallback.postMessage({id:b, status:a,
parameters:c});
};
u.decodeProtocol = function(b) {
return b.replace(/^(https|http)%3A%2F%2F/i, "$1://");
};
u.applyEncode = function(b, a) {
if (b) {
for (var c = "", d = 0; d < b.length;) {
"%" === b[d] && 3 <= b.length - d && u.isNumber(b[d + 1]) && u.isNumber(b[d
+ 2]) ? (c += b[d++], c += b[d++], c += b[d++]) : (c += a(b[d]), d++);
}
return c;
}
return b;
};
u.encode = function(b) {
return this.applyEncode(b, function(a) {
return encodeURI(a);
});
};
u.encodeParam = function(b) {
return this.applyEncode(b, function(a) {
return encodeURIComponent(a);
});
};
u.encodeUrlWithQueryParams = function(b) {
if (-1 === b.indexOf("?")) {
return u.encode(b);
}
var a = b.split("?");
b = a[0];
var c = a[1].split("&");
a = [];
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
var e = d.value.split("=");
d = [];
e = h.makeIterator(e);
for (var f = e.next(); !f.done; f = e.next()) {
d.push(u.encodeParam(f.value));
}
a.push(d.join("="));
}
return u.encode(b) + "?" + a.join("&");
};
u.parse = function(b) {
var a = document.createElement("a");
a.href = b;
return {protocol:a.protocol, host:a.host, hostname:a.hostname,
port:parseInt(a.port, 10), pathname:a.pathname, search:a.search, hash:a.hash};
};
u.addParameters = function(b, a) {
b = b.toString();
b = -1 !== b.indexOf("?") ? b + "&" : b + "?";
var c = [], d;
for (d in a) {
if (a.hasOwnProperty(d)) {
var e = a[d];
void 0 !== e && c.push(encodeURIComponent(d) + "=" +
encodeURIComponent(e));
}
}
return b += c.join("&");
};
u.getQueryParameter = function(b, a) {
if (-1 === b.indexOf("?")) {
return null;
}
b = b.split("?")[1].split("&");
b = h.makeIterator(b);
for (var c = b.next(); !c.done; c = b.next()) {
if (c = c.value.split("="), c[0] === a) {
return c[1];
}
}
return null;
};
u.removeQueryParameter = function(b, a) {
var c = u.getQueryParameter(b, a);
return null == c ? b : b.replace(new RegExp("&?" + a + "=" + c), "");
};
u.isValid = function(b) {
return b && (b.match(/^http:./i) || b.match(/^https:./i) &&
u.isValidUrlCharacters(b)) ? !0 : !1;
};
u.isValidUrlCharacters = function(b) {
return b && b.match(/^([!\$#&-;=\?-\[\]_a-z~{}|\\^`]|[\u00A1-\uFFFF]|%[0-9a-fA-
F]{2})+$/i) ? !0 : !1;
};
u.isValidProtocol = function(b) {
return b && (b.match(/^http:./i) || b.match(/^https:./i) || b.match(/^itms-
apps:/i)) ? !0 : !1;
};
u.isRelativeProtocol = function(b) {
return b && b.match(/^\/\/./i) ? !0 : !1;
};
u.getProtocol = function(b) {
var a = document.createElement("a");
a.setAttribute("href", b);
return a.protocol;
};
u.isProtocolWhitelisted = function(b, a) {
var c = [];
switch(a) {
case p.IOS:
c = this.iosWhitelistedProtocols;
break;
case p.ANDROID:
c = this.androidWhitelistedProtocols;
}
a = h.makeIterator(c);
for (c = a.next(); !c.done; c = a.next()) {
if (0 === b.indexOf(c.value)) {
return !0;
}
}
return !1;
};
u.getAppStoreUrlTemplates = function(b) {
var a = [];
switch(b) {
case p.IOS:
a = this.iosAppStoreUrlTemplates;
break;
case p.ANDROID:
a = this.androidAppStoreUrlTemplates;
}
return a;
};
u.isNumber = function(b) {
return null !== b.match(/^[0-9a-fA-F]$/);
};
u.iosWhitelistedProtocols = ["itunes", "itms", "itmss", "http", "https"];
u.androidWhitelistedProtocols = ["market", "http", "https"];
u.iosAppStoreUrlTemplates = ["https://itunes.apple.com"];
u.androidAppStoreUrlTemplates = ["https://play.google.com"];
var eb;
(function(b) {
b[b.EMPTY = 0] = "EMPTY";
b[b.ANONYMOUS = 1] = "ANONYMOUS";
b[b.PERSONAL = 2] = "PERSONAL";
})(eb || (eb = {}));
H.setRequest = function(b) {
H._request = b;
};
H.setPlatform = function(b) {
H._platform = b;
};
H.setClientInfo = function(b) {
H._clientInfo = b;
};
H.setDeviceInfo = function(b) {
H._deviceInfo = b;
};
H.setConfiguration = function(b) {
H._configuration = b;
};
H.sendEvent = function(b, a, c) {
var d = [];
d.push({type:b, msg:c});
return H.createCommonObject(a, this._platform, this._clientInfo,
this._deviceInfo, this._configuration).then(function(a) {
a && d.unshift(a);
a = d.map(function(a) {
return JSON.stringify(a);
}).join("\n");
if (H._request) {
return H._request.post(H.KafkaBaseUrl, a);
}
console.log(JSON.stringify(c));
return Promise.resolve({});
});
};
H.setTestBaseUrl = function(b) {
H.KafkaBaseUrl = b + "/v1/events";
};
H.createCommonObject = function(b, a, c, d, e) {
if (b === eb.EMPTY) {
return Promise.resolve({common:{client:null, device:null, country:null}});
}
var f = {common:{client:c ? c.getDTO() : null, device:null, country:e ?
e.getCountry() : null}};
f.common.client && (f.common.client.platform = "undefined" !== typeof a ?
p[a].toLowerCase() : null);
if (d && !H._deviceInfoUpdating) {
return H._deviceInfoUpdating = !0, b === eb.PERSONAL ?
d.getDTO().then(function(a) {
"undefined" !== typeof navigator && navigator.userAgent && (a.userAgent =
navigator.userAgent);
H._deviceInfoUpdating = !1;
f.common.device = a;
return f;
}).catch(function() {
H._deviceInfoUpdating = !1;
f.common.device = d.getStaticDTO();
return f;
}) : d.getAnonymousDTO().then(function(a) {
"undefined" !== typeof navigator && navigator.userAgent && (a.userAgent =
navigator.userAgent);
H._deviceInfoUpdating = !1;
f.common.device = a;
return f;
}).catch(function() {
H._deviceInfoUpdating = !1;
f.common.device = d.getAnonymousStaticDTO();
return f;
});
}
d && (f.common.device = b === eb.PERSONAL ? d.getStaticDTO() :
d.getAnonymousStaticDTO());
return Promise.resolve(f);
};
H.KafkaBaseUrl = "https://httpkafka.unityads.unity3d.com/v1/events";
H._deviceInfoUpdating = !1;
ca.trigger = function(b, a, c) {
if (!a || "object" !== typeof a || Array.isArray(a)) {
a = {value:a};
}
c = {type:b, timestamp:Date.now(), adPlan:c.getAdPlan() ? c.getAdPlan() : void
0};
c[b] = a;
return H.sendEvent("ads.sdk2.diagnostics", eb.ANONYMOUS, c);
};
F.trigger = function(b, a) {
if (!a || "object" !== typeof a || Array.isArray(a)) {
a = {value:a};
}
var c = {};
c.type = b;
c[b] = a;
c.timestamp = Date.now();
return H.sendEvent("ads.sdk2.diagnostics", eb.ANONYMOUS, c);
};
z.prototype.toJSON = function() {
return JSON.stringify(this._data, this.serializeFilter);
};
z.prototype.set = function(b, a) {
b in this._schema || this.handleError(new hb("model: " + this._name + " key:" +
b + " not in schema", "SchemaError"));
this.checkValue(a, this._schema[b]) ? this._data[b] = a : this.handleError(new
hb("model: " + this._name + " key: " + b + " with value: " + a + ": " +
this.getTypeOf(a) + " is not in: " + this._schema[b], "CheckValueError"));
};
z.prototype.setModelValues = function(b) {
for (var a in b) {
b.hasOwnProperty(a) && this.set(a, b[a]);
}
};
z.prototype.get = function(b) {
return this._data[b];
};
z.prototype.handleError = function(b) {
F.trigger("set_model_value_failed", b);
throw b;
};
z.prototype.serializeFilter = function(b, a) {
return a;
};
z.prototype.getTypeOf = function(b) {
var a = typeof b;
Array.isArray(b) ? a = "array" : null === b ? a = "null" : "number" === a &&
Number.isInteger(b) && (a = "integer");
return a;
};
z.prototype.checkValue = function(b, a) {
a = h.makeIterator(a);
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value;
var d = this.getTypeOf(b);
if (d === c || "number" === c && "integer" === d) {
return !0;
}
}
return !1;
};
h.inherits(ba, z);
ba.prototype.getId = function() {
return this.get("id");
};
ba.prototype.getSession = function() {
return this.get("session");
};
ba.prototype.getAdType = function() {
return this.get("adType");
};
ba.prototype.getContentType = function() {
return this.get("contentType");
};
ba.prototype.getCorrelationId = function() {
return this.get("correlationId");
};
ba.prototype.getCreativeId = function() {
return this.get("creativeId");
};
ba.prototype.getSeatId = function() {
return this.get("seatId");
};
ba.prototype.getMeta = function() {
return this.get("meta");
};
ba.prototype.getWillExpireAt = function() {
return this.get("willExpireAt");
};
ba.prototype.isExpired = function() {
var b = this.get("willExpireAt");
return void 0 !== b && Date.now() > b;
};
ba.prototype.isBackupCampaign = function() {
return this.get("backupCampaign");
};
ba.prototype.setMediaId = function(b) {
this.set("mediaId", b);
};
ba.prototype.getMediaId = function() {
return this.get("mediaId");
};
ba.prototype.setTrackingUrls = function(b) {
this.set("trackingUrls", b);
};
ba.prototype.getTrackingUrls = function() {
return this.get("trackingUrls");
};
ba.prototype.getTrackingUrlsForEvent = function(b) {
var a = this.getTrackingUrls();
return a ? a[b] || [] : [];
};
ba.prototype.getDTO = function() {
return {id:this.getId(), willExpireAt:this.getWillExpireAt(),
mediaId:this.getMediaId()};
};
ba.prototype.handleError = function(b) {
ca.trigger("set_model_value_failed", b, this.getSession());
throw b;
};
ba.Schema = {id:["string"], willExpireAt:["number", "undefined"], contentType:
["string"], adType:["string", "undefined"], correlationId:["string", "undefined"],
creativeId:["string", "undefined"], seatId:["number", "undefined"], meta:["string",
"undefined"], session:["object"], mediaId:["string"], trackingUrls:["object"],
backupCampaign:["boolean"]};
h.inherits(Tb, ba);
Tb.prototype.getUseWebViewUserAgentForTracking = function() {
return !!this.get("useWebViewUserAgentForTracking");
};
Tb.Schema = Object.assign({}, ba.Schema, {useWebViewUserAgentForTracking:
["boolean"]});
h.inherits(Od, z);
Od.prototype.getMediaFileURL = function() {
return this.get("mediaFileURL");
};
Od.prototype.getVideo = function() {
return this.get("video");
};
Od.prototype.getExtension = function() {
return this.get("extension");
};
Od.prototype.getDTO = function() {
return {mediaFileUrl:this.getMediaFileURL(), video:this.getVideo().getDTO()};
};
h.inherits(hd, Tb);
hd.prototype.getDynamicMarkup = function() {
return this.get("dynamicMarkup");
};
hd.prototype.getVideo = function() {
return this.get("video");
};
hd.prototype.getRequiredAssets = function() {
return [];
};
hd.prototype.getOptionalAssets = function() {
var b = [], a = this.get("video");
a && b.push(a.getVideo());
return b;
};
hd.prototype.isConnectionNeeded = function() {
return !0;
};
var ja;
(function(b) {
b[b.NONE = 0] = "NONE";
b[b.PORTRAIT = 1] = "PORTRAIT";
b[b.LANDSCAPE = 2] = "LANDSCAPE";
})(ja || (ja = {}));
var Pc;
(function(b) {
b[b.MEMORY_WARNING = 0] = "MEMORY_WARNING";
b[b.AUDIO_SESSION_INTERRUPT_BEGAN = 1] = "AUDIO_SESSION_INTERRUPT_BEGAN";
b[b.AUDIO_SESSION_INTERRUPT_ENDED = 2] = "AUDIO_SESSION_INTERRUPT_ENDED";
b[b.AUDIO_SESSION_ROUTE_CHANGED = 3] = "AUDIO_SESSION_ROUTE_CHANGED";
b[b.AUDIO_SESSION_CATEGORY_CHANGED = 4] = "AUDIO_SESSION_CATEGORY_CHANGED";
})(Pc || (Pc = {}));
bc.setForcedOrientation = function(b) {
bc._forcedOrientation = b;
};
bc.getForcedOrientation = function() {
return bc._forcedOrientation;
};
bc.prototype.getLockedOrientation = function() {
return this._lockedOrientation;
};
bc.prototype.addEventHandler = function(b) {
this._handlers.push(b);
return b;
};
bc.prototype.removeEventHandler = function(b) {
this._handlers.length && (this._handlers = "undefined" !== typeof b ?
this._handlers.filter(function(a) {
return a !== b;
}) : []);
};
h.inherits(Fa, z);
Fa.prototype.getUrl = function() {
var b = this.getCachedUrl();
return b ? b : this.getOriginalUrl();
};
Fa.prototype.getOriginalUrl = function() {
return this.get("url");
};
Fa.prototype.isCached = function() {
return "undefined" !== typeof this.getCachedUrl();
};
Fa.prototype.getCachedUrl = function() {
return this.get("cachedUrl");
};
Fa.prototype.setCachedUrl = function(b) {
this.set("cachedUrl", b);
};
Fa.prototype.setFileId = function(b) {
this.set("fileId", b);
};
Fa.prototype.getFileId = function() {
return this.get("fileId");
};
Fa.prototype.getSession = function() {
return this.get("session");
};
Fa.prototype.getCreativeId = function() {
return this.get("creativeId");
};
Fa.prototype.getDTO = function() {
return {url:this.getOriginalUrl(), cachedUrl:this.getCachedUrl(),
fileId:this.getFileId()};
};
Fa.prototype.handleError = function(b) {
ca.trigger("set_model_value_failed", b, this.getSession());
throw b;
};
Fa.prototype.serializeFilter = function(b, a) {
if ("session" !== b) {
return a;
}
};
Fa.Schema = {url:["string"], cachedUrl:["string", "undefined"], fileId:["string",
"undefined"], session:["object"], creativeId:["string", "undefined"]};
h.inherits(te, Fa);
te.prototype.getDescription = function() {
return "MRAID";
};
h.inherits(U, Tb);
U.prototype.getResourceUrl = function() {
return this.get("resourceAsset");
};
U.prototype.setResourceUrl = function(b) {
this.set("resourceAsset", new te(b, this.getSession()));
};
U.prototype.setResource = function(b) {
this.set("resource", b);
};
U.prototype.getResource = function() {
return this.get("resource");
};
U.prototype.getGameName = function() {
return this.get("gameName");
};
U.prototype.getGameIcon = function() {
return this.get("gameIcon");
};
U.prototype.getRating = function() {
return this.get("rating");
};
U.prototype.getRatingCount = function() {
return this.get("ratingCount");
};
U.prototype.getPortrait = function() {
return this.get("portraitImage");
};
U.prototype.getLandscape = function() {
return this.get("landscapeImage");
};
U.prototype.getPlayableConfiguration = function() {
return this.get("playableConfiguration");
};
U.prototype.getRequiredAssets = function() {
var b = this.getResourceUrl();
return b ? [b] : [];
};
U.prototype.getOptionalAssets = function() {
var b = [], a = this.getGameIcon();
a && b.push(a);
(a = this.getPortrait()) && b.push(a);
(a = this.getLandscape()) && b.push(a);
return b;
};
U.prototype.getDynamicMarkup = function() {
return this.get("dynamicMarkup");
};
U.prototype.getClickAttributionUrl = function() {
return this.get("clickAttributionUrl");
};
U.prototype.getClickAttributionUrlFollowsRedirects = function() {
return this.get("clickAttributionUrlFollowsRedirects");
};
U.prototype.getClickUrl = function() {
return this.get("clickUrl");
};
U.prototype.getBypassAppSheet = function() {
return this.get("bypassAppSheet");
};
U.prototype.getStore = function() {
return this.get("store");
};
U.prototype.getAppStoreId = function() {
return this.get("appStoreId");
};
U.prototype.getVideoEventUrls = function() {
return this.get("videoEventUrls");
};
U.prototype.getVideoEventUrl = function(b) {
var a = this.get("videoEventUrls");
return a ? a[b] : void 0;
};
U.prototype.setPlayableConfiguration = function(b) {
this.set("playableConfiguration", b);
};
U.prototype.isConnectionNeeded = function() {
var b = this.getResourceUrl();
return b && b.getOriginalUrl().match(/playables\/production\/unity/) ? !1 : !0;
};
U.prototype.getDTO = function() {
var b, a = this.getResourceUrl();
a && (b = a.getDTO());
return {campaign:Tb.prototype.getDTO.call(this), resourceUrl:b,
resource:this.getResource(), dynamicMarkup:this.getDynamicMarkup()};
};
var xc;
(function(b) {
b[b.APPLE = 0] = "APPLE";
b[b.GOOGLE = 1] = "GOOGLE";
b[b.XIAOMI = 2] = "XIAOMI";
b[b.STANDALONE_ANDROID = 3] = "STANDALONE_ANDROID";
})(xc || (xc = {}));
h.inherits(D, ba);
D.prototype.getStore = function() {
return this.get("store");
};
D.prototype.getAppStoreId = function() {
return this.get("appStoreId");
};
D.prototype.getGameId = function() {
return this.get("gameId");
};
D.prototype.getGameName = function() {
return this.get("gameName");
};
D.prototype.getGameIcon = function() {
return this.get("gameIcon");
};
D.prototype.getRating = function() {
return this.get("rating");
};
D.prototype.getRatingCount = function() {
return this.get("ratingCount");
};
D.prototype.getPortrait = function() {
return this.get("portraitImage");
};
D.prototype.getLandscape = function() {
return this.get("landscapeImage");
};
D.prototype.getSquare = function() {
return this.get("squareImage");
};
D.prototype.getVideo = function() {
return this.get("video");
};
D.prototype.getStreamingVideo = function() {
return this.get("streamingVideo");
};
D.prototype.getPortraitVideo = function() {
return this.get("videoPortrait");
};
D.prototype.getStreamingPortraitVideo = function() {
return this.get("streamingPortraitVideo");
};
D.prototype.getClickAttributionUrl = function() {
return this.get("clickAttributionUrl");
};
D.prototype.getClickAttributionUrlFollowsRedirects = function() {
return this.get("clickAttributionUrlFollowsRedirects");
};
D.prototype.getClickUrl = function() {
return this.get("clickUrl");
};
D.prototype.getVideoEventUrls = function() {
return this.get("videoEventUrls");
};
D.prototype.getVideoEventUrl = function(b) {
return this.get("videoEventUrls")[b];
};
D.prototype.getBypassAppSheet = function() {
return this.get("bypassAppSheet");
};
D.prototype.getTimeoutInSeconds = function() {
return 0;
};
D.prototype.getRequiredAssets = function() {
return [];
};
D.prototype.getOptionalAssets = function() {
var b = [];
b.push(this.getGameIcon());
var a = this.getSquare();
a && b.push(a);
(a = this.getLandscape()) && b.push(a);
(a = this.getPortrait()) && b.push(a);
return b;
};
D.prototype.getAppDownloadUrl = function() {
return this.get("appDownloadUrl");
};
D.prototype.isConnectionNeeded = function() {
return !1;
};
D.prototype.getAdUnitStyle = function() {
return this.get("adUnitStyle");
};
D.prototype.getDTO = function() {
var b, a = this.getGameIcon();
a && (b = a.getDTO());
var c;
(a = this.getSquare()) && (c = a.getDTO());
var d;
(a = this.getLandscape()) && (d = a.getDTO());
var e;
(a = this.getPortrait()) && (e = a.getDTO());
var f;
(a = this.getVideo()) && (f = a.getDTO());
var g;
(a = this.getStreamingVideo()) && (g = a.getDTO());
return {campaign:ba.prototype.getDTO.call(this),
appStoreId:this.getAppStoreId(), gameId:this.getGameId(),
gameName:this.getGameName(), gameIcon:b, rating:this.getRating(),
ratingCount:this.getRatingCount(), squareImage:c, landscapeImage:d,
portraitImage:e, video:f, streamingVideo:g,
clickAttributionUrl:this.getClickAttributionUrl(),
clickAttributionUrlFollowsRedirects:this.getClickAttributionUrlFollowsRedirects(),
bypassAppSheet:this.getBypassAppSheet(), store:xc[this.getStore()].toLowerCase(),
appDownloadUrl:this.getAppDownloadUrl()};
};
h.inherits(pa, Fa);
pa.prototype.getDescription = function() {
return "VIDEO";
};
pa.prototype.getSize = function() {
return this.get("size");
};
pa.prototype.hasStarted = function() {
return this.get("started");
};
pa.prototype.setStarted = function(b) {
this.set("started", b);
};
pa.prototype.getDuration = function() {
return this.get("duration");
};
pa.prototype.setDuration = function(b) {
this.set("duration", b);
};
pa.prototype.getPosition = function() {
return this.get("position");
};
pa.prototype.setPosition = function(b) {
this.set("position", b);
(b = this.get("duration")) && this.set("quartile", Math.floor(4 *
this.get("position") / b));
};
pa.prototype.getPositionRepeats = function() {
return this.get("positionRepeats");
};
pa.prototype.setPositionRepeats = function(b) {
this.set("positionRepeats", b);
};
pa.prototype.getQuartile = function() {
return this.get("quartile");
};
pa.prototype.setQuartile = function(b) {
this.set("quartile", b);
};
pa.prototype.getDTO = function() {
return {asset:Fa.prototype.getDTO.call(this), size:this.getSize(),
duration:this.getDuration(), position:this.getPosition(),
positionRepeats:this.getPositionRepeats(), quartile:this.getQuartile()};
};
h.inherits(oa, Tb);
oa.prototype.getVast = function() {
return this.get("vast");
};
oa.prototype.getVideo = function() {
this.get("video") || this.set("video", new pa(this.get("vast").getVideoUrl(),
this.getSession()));
return this.get("video");
};
oa.prototype.getRequiredAssets = function() {
return [this.get("video")];
};
oa.prototype.getOptionalAssets = function() {
return [];
};
oa.prototype.hasEndscreen = function() {
return this.get("hasEndscreen");
};
oa.prototype.getLandscape = function() {
return this.get("landscape");
};
oa.prototype.getPortrait = function() {
return this.get("portrait");
};
oa.prototype.isConnectionNeeded = function() {
return !1;
};
oa.prototype.getCategory = function() {
return this.get("appCategory");
};
oa.prototype.getSubcategory = function() {
return this.get("appSubcategory");
};
oa.prototype.getBuyerId = function() {
return this.get("buyerId");
};
oa.prototype.getAdvertiserDomain = function() {
return this.get("advertiserDomain");
};
oa.prototype.getAdvertiserCampaignId = function() {
return this.get("advertiserCampaignId");
};
oa.prototype.getAdvertiserBundleId = function() {
return this.get("advertiserBundleId");
};
oa.prototype.getImpressionUrls = function() {
return this.get("impressionUrls");
};
oa.prototype.isMoatEnabled = function() {
return this.get("isMoatEnabled");
};
oa.prototype.setTrackingUrls = function(b) {
Tb.prototype.setTrackingUrls.call(this, b);
this.addCustomTracking(b);
};
oa.prototype.getDTO = function() {
var b, a = this.get("portrait");
a && (b = a.getDTO());
var c;
(a = this.get("landscape")) && (c = a.getDTO());
return {campaign:Tb.prototype.getDTO.call(this), vast:this.getVast().getDTO(),
video:this.getVast().getDTO(), hasEndscreen:this.hasEndscreen(), portrait:b,
landscape:c};
};
oa.prototype.addCustomTracking = function(b) {
var a = this;
b && Object.keys(b).forEach(function(c) {
var d = b[c];
d && d.forEach(function(b) {
a.getVast().addTrackingEventUrl(c, b);
});
});
};
var Bg;
(function(b) {
b[b.APPLE = 0] = "APPLE";
b[b.GOOGLE = 1] = "GOOGLE";
b[b.XIAOMI = 2] = "XIAOMI";
b[b.STANDALONE_ANDROID = 3] = "STANDALONE_ANDROID";
})(Bg || (Bg = {}));
h.inherits(L, ba);
L.prototype.getStore = function() {
return this.get("store");
};
L.prototype.getAppStoreId = function() {
return this.get("appStoreId");
};
L.prototype.getGameId = function() {
return this.get("gameId");
};
L.prototype.getGameName = function() {
return this.get("gameName");
};
L.prototype.getGameIcon = function() {
return this.get("gameIcon");
};
L.prototype.getRating = function() {
return this.get("rating");
};
L.prototype.getRatingCount = function() {
return this.get("ratingCount");
};
L.prototype.getPortrait = function() {
return this.get("portraitImage");
};
L.prototype.getLandscape = function() {
return this.get("landscapeImage");
};
L.prototype.getSquare = function() {
return this.get("squareImage");
};
L.prototype.getVideo = function() {
return this.get("video");
};
L.prototype.getStreamingVideo = function() {
return this.get("streamingVideo");
};
L.prototype.getPortraitVideo = function() {
return this.get("videoPortrait");
};
L.prototype.getStreamingPortraitVideo = function() {
return this.get("streamingPortraitVideo");
};
L.prototype.getClickAttributionUrl = function() {
return this.get("clickAttributionUrl");
};
L.prototype.getClickAttributionUrlFollowsRedirects = function() {
return this.get("clickAttributionUrlFollowsRedirects");
};
L.prototype.getBypassAppSheet = function() {
return this.get("bypassAppSheet");
};
L.prototype.getVideoEventUrl = function(b) {
return this.get("videoEventUrls")[b];
};
L.prototype.getTimeoutInSeconds = function() {
return 0;
};
L.prototype.getRequiredAssets = function() {
return [];
};
L.prototype.getOptionalAssets = function() {
var b = [];
b.push(this.getGameIcon());
var a = this.getSquare();
a && b.push(a);
(a = this.getLandscape()) && b.push(a);
(a = this.getPortrait()) && b.push(a);
return b;
};
L.prototype.isConnectionNeeded = function() {
return !1;
};
L.prototype.getDTO = function() {
var b, a = this.getGameIcon();
a && (b = a.getDTO());
var c;
(a = this.getSquare()) && (c = a.getDTO());
var d;
(a = this.getLandscape()) && (d = a.getDTO());
var e;
(a = this.getPortrait()) && (e = a.getDTO());
var f;
(a = this.getVideo()) && (f = a.getDTO());
var g;
(a = this.getStreamingVideo()) && (g = a.getDTO());
return {campaign:ba.prototype.getDTO.call(this),
appStoreId:this.getAppStoreId(), gameId:this.getGameId(),
gameName:this.getGameName(), gameIcon:b, rating:this.getRating(),
ratingCount:this.getRatingCount(), squareImage:c, landscapeImage:d,
portraitImage:e, video:f, streamingVideo:g,
clickAttributionUrl:this.getClickAttributionUrl(),
clickAttributionUrlFollowsRedirects:this.getClickAttributionUrlFollowsRedirects(),
bypassAppSheet:this.getBypassAppSheet(), store:Bg[this.getStore()].toLowerCase()};
};
var xd;
(function(b) {
b[b.CACHE = 0] = "CACHE";
b[b.STREAM = 1] = "STREAM";
})(xd || (xd = {}));
Oa.isCached = function(b) {
if (b instanceof D || b instanceof L) {
var a = b.getVideo();
b = b.getPortraitVideo();
if (a && a.isCached() || b && b.isCached()) {
return !0;
}
} else {
if (b instanceof oa) {
return b.getVideo().isCached();
}
if (b instanceof U) {
if ((a = b.getResourceUrl()) && a.isCached() || b.getResource()) {
return !0;
}
} else {
if (b instanceof hd && (b = b.getVideo()) && b.getVideo() &&
b.getVideo().isCached()) {
return !0;
}
}
}
return !1;
};
Oa.getCachedVideoOrientation = function(b) {
if (b instanceof D || b instanceof L) {
var a = b.getVideo();
b = b.getPortraitVideo();
if (a && a.isCached()) {
return "landscape";
}
if (b && b.isCached()) {
return "portrait";
}
} else {
if (b instanceof oa && (a = b.getVideo()) && a.isCached()) {
return "landscape";
}
}
};
Oa.getOrientedVideo = function(b, a, c) {
if (b instanceof D || b instanceof L || b instanceof oa) {
var d = Oa.getLandscapeVideo(b, c);
b = Oa.getPortraitVideo(b, c);
if (a === ja.LANDSCAPE) {
if (d) {
return d;
}
if (b) {
return b;
}
}
if (a === ja.PORTRAIT) {
if (b) {
return b;
}
if (d) {
return d;
}
}
}
};
Oa.getLandscapeVideo = function(b, a) {
if (b instanceof D || b instanceof L) {
var c = b.getVideo();
b = b.getStreamingVideo();
if (c && c.isCached() && a !== xd.STREAM) {
return c;
}
if (b && a !== xd.CACHE) {
return b;
}
} else {
if (b instanceof oa) {
return c = b.getVideo(), a !== xd.CACHE || c.isCached() ? c : void 0;
}
}
};
Oa.getPortraitVideo = function(b, a) {
if (b instanceof D || b instanceof L) {
var c = b.getPortraitVideo();
b = b.getStreamingPortraitVideo();
if (c && c.isCached() && a !== xd.STREAM) {
return c;
}
if (b && a !== xd.CACHE) {
return b;
}
}
};
Oa.getCachedAsset = function(b) {
if (b instanceof D || b instanceof L || b instanceof oa) {
return Oa.getOrientedVideo(b, ja.LANDSCAPE, xd.CACHE);
}
if (b instanceof U && (b = b.getResourceUrl()) && b.isCached()) {
return b;
}
};
var na;
(function(b) {
b[b.COMPLETED = 0] = "COMPLETED";
b[b.SKIPPED = 1] = "SKIPPED";
b[b.ERROR = 2] = "ERROR";
})(na || (na = {}));
Fb.prototype.subscribe = function(b) {
this._observers.push(b);
return b;
};
Fb.prototype.unsubscribe = function(b) {
this._observers.length && (this._observers = "undefined" !== typeof b ?
this._observers.filter(function(a) {
return a !== b;
}) : []);
};
h.inherits(Ma, Fb);
Ma.prototype.trigger = function() {
this._observers.forEach(function(b) {
return b();
});
};
h.inherits(za, Fb);
za.prototype.trigger = function(b) {
this._observers.forEach(function(a) {
return a(b);
});
};
h.inherits(Dc, Fb);
Dc.prototype.trigger = function(b, a) {
this._observers.forEach(function(c) {
return c(b, a);
});
};
h.inherits(Tc, Fb);
Tc.prototype.trigger = function(b, a, c) {
this._observers.forEach(function(d) {
return d(b, a, c);
});
};
h.inherits(De, Fb);
De.prototype.trigger = function(b, a, c, d) {
this._observers.forEach(function(e) {
return e(b, a, c, d);
});
};
h.inherits(Ud, Fb);
Ud.prototype.trigger = function(b, a, c, d, e) {
this._observers.forEach(function(f) {
return f(b, a, c, d, e);
});
};
h.inherits(tf, Fb);
tf.prototype.trigger = function(b, a, c, d, e, f) {
this._observers.forEach(function(g) {
return g(b, a, c, d, e, f);
});
};
Z.setAutoClose = function(b) {
Z._autoClose = b;
};
Z.getAutoClose = function() {
return Z._autoClose;
};
Z.setAutoCloseDelay = function(b) {
Z._autoCloseDelay = b;
};
Z.getAutoCloseDelay = function() {
return Z._autoCloseDelay;
};
Z.prototype.isCached = function() {
return Oa.isCached(this._baseCampaign);
};
Z.prototype.isShowing = function() {
return this._showing;
};
Z.prototype.setShowing = function(b) {
this._showing = b;
};
Z.prototype.getContainer = function() {
return this._container;
};
Z.prototype.getForceOrientation = function() {
return this._forceOrientation;
};
Z.prototype.getFinishState = function() {
return this._finishState;
};
Z.prototype.setFinishState = function(b) {
this._finishState !== na.COMPLETED && (this._finishState = b);
};
Z.prototype.markAsSkipped = function() {
this._finishState = na.SKIPPED;
};
Z._autoClose = !1;
Z._autoCloseDelay = 0;
var Nb;
(function(b) {
b[b.FORCED = 0] = "FORCED";
b[b.ALLOWED = 1] = "ALLOWED";
b[b.DISABLED = 2] = "DISABLED";
b[b.ADAPTIVE = 3] = "ADAPTIVE";
})(Nb || (Nb = {}));
h.inherits(Eb, z);
Eb.prototype.isEnabled = function() {
return this.get("enabled");
};
Eb.prototype.getCountry = function() {
return this.get("country");
};
Eb.prototype.isCoppaCompliant = function() {
return this.get("coppaCompliant");
};
Eb.prototype.isAnalyticsEnabled = function() {
return this.get("analytics");
};
Eb.prototype.isJaegerTracingEnabled = function() {
return this.get("jaegerTracing");
};
Eb.prototype.getAbGroup = function() {
return this.get("abGroup");
};
Eb.prototype.getProperties = function() {
return this.get("properties");
};
Eb.prototype.getToken = function() {
return this.get("token");
};
Eb.prototype.getUnityProjectId = function() {
return this.get("projectId");
};
Eb.prototype.getDTO = function() {
return {enabled:this.isEnabled(), country:this.getCountry(),
coppaCompliant:this.isCoppaCompliant(), abGroup:this.getAbGroup(),
gamerToken:this.getToken(), projectId:this.getUnityProjectId()};
};
Eb.prototype.getTestMode = function() {
return this.get("test");
};
Eb.prototype.getOrganizationId = function() {
return this.get("organizationId");
};
Eb.Schema = {enabled:["boolean"], country:["string"], coppaCompliant:["boolean"],
abGroup:["number"], properties:["string"], analytics:["boolean"], test:["boolean"],
projectId:["string"], token:["string"], jaegerTracing:["boolean"], organizationId:
["string", "undefined"]};
B.prototype.handleEvent = function(b) {
throw Error(this._apiClass + " event " + b + " does not have an observable");
};
var v;
(function(b) {
b[b.PRIVATE = 0] = "PRIVATE";
b[b.PUBLIC = 1] = "PUBLIC";
})(v || (v = {}));
var mb;
(function(b) {
b[b.COULDNT_SET_VALUE = 0] = "COULDNT_SET_VALUE";
b[b.COULDNT_GET_VALUE = 1] = "COULDNT_GET_VALUE";
b[b.COULDNT_WRITE_STORAGE_TO_CACHE = 2] = "COULDNT_WRITE_STORAGE_TO_CACHE";
b[b.COULDNT_CLEAR_STORAGE = 3] = "COULDNT_CLEAR_STORAGE";
b[b.COULDNT_GET_STORAGE = 4] = "COULDNT_GET_STORAGE";
b[b.COULDNT_DELETE_VALUE = 5] = "COULDNT_DELETE_VALUE";
})(mb || (mb = {}));
var Df;
(function(b) {
b[b.SET = 0] = "SET";
})(Df || (Df = {}));
h.inherits(Sc, B);
Sc.prototype.read = function(b) {
return this._nativeBridge.invoke(this._apiClass, "read", [v[b]]);
};
Sc.prototype.write = function(b) {
return this._nativeBridge.invoke(this._apiClass, "write", [v[b]]);
};
Sc.prototype.get = function(b, a) {
return this._nativeBridge.invoke(this._apiClass, "get", [v[b], a]);
};
Sc.prototype.set = function(b, a, c) {
return this._nativeBridge.invoke(this._apiClass, "set", [v[b], a, c]);
};
Sc.prototype.delete = function(b, a) {
return this._nativeBridge.invoke(this._apiClass, "delete", [v[b], a]);
};
Sc.prototype.clear = function(b) {
return this._nativeBridge.invoke(this._apiClass, "clear", [v[b]]);
};
Sc.prototype.getKeys = function(b, a, c) {
return this._nativeBridge.invoke(this._apiClass, "getKeys", [v[b], a, c]);
};
Sc.prototype.handleEvent = function(b, a) {
switch(b) {
case Df[Df.SET]:
this.onSet.trigger(a[0], a[1]);
}
};
Ye.prototype.get = function(b, a) {
var c = this;
return this._core.Storage.get(v.PUBLIC, b + ".value").then(function(d) {
a && (c._core.Storage.delete(v.PUBLIC, b), c._core.Storage.write(v.PUBLIC));
return Promise.resolve([!0, d]);
}).catch(function(a) {
a = h.makeIterator(a).next().value;
switch(a) {
case mb[mb.COULDNT_GET_VALUE]:
return Promise.resolve([!1, null]);
case mb[mb.COULDNT_GET_STORAGE]:
return Promise.resolve([!1, null]);
default:
throw Error(a);
}
});
};
Ye.prototype.getKeys = function(b) {
return this._core.Storage.getKeys(v.PUBLIC, b, !1).then(function(a) {
return a;
}).catch(function(a) {
a = h.makeIterator(a).next().value;
switch(a) {
case mb[mb.COULDNT_GET_STORAGE]:
return [];
default:
throw Error(a);
}
});
};
Ye.prototype.hasCategory = function(b) {
return this._core.Storage.getKeys(v.PUBLIC, b, !1).then(function(a) {
return 0 < a.length;
}).catch(function(a) {
a = h.makeIterator(a).next().value;
switch(a) {
case mb[mb.COULDNT_GET_STORAGE]:
return !1;
default:
throw Error(a);
}
});
};
h.inherits(Ua, z);
Ua.prototype.getCategory = function() {
return this.get("category");
};
Ua.prototype.getKeys = function() {
return this.get("keys");
};
Ua.prototype.fetch = function(b, a, c) {
var d = this, e = [];
e = c ? c : this.getKeys();
return this.getValues(b, a, e).then(function(a) {
return d.setValues(a);
});
};
Ua.prototype.setValues = function(b) {
var a = !1, c;
for (c in b) {
if (b.hasOwnProperty(c)) {
try {
this.set(c, b[c]);
} catch (d) {
return !1;
}
a = !0;
}
}
return a;
};
Ua.prototype.getValues = function(b, a, c) {
var d = this, e = {}, f = new Ye(b, a);
return f.hasCategory(this.getCategory()).then(function(a) {
return a ? Promise.all(c.map(function(a) {
return f.get(d.getCategory() + "." + a, !1).then(function(b) {
var c = h.makeIterator(b);
b = c.next().value;
c = c.next().value;
b && (e[a] = c);
});
})) : Promise.resolve([]);
}).then(function() {
return e;
});
};
Ua.Schema = {category:["string"], keys:["array"]};
h.inherits(gd, Ua);
gd.prototype.getName = function() {
return this.get("name");
};
gd.prototype.getVersion = function() {
return this.get("version");
};
gd.prototype.setOrdinal = function(b) {
this.set("ordinal", b);
};
gd.prototype.getOrdinal = function() {
return this.get("ordinal");
};
gd.prototype.getDTO = function() {
return {mediationName:this.getName(), mediationVersion:this.getVersion(),
mediationOrdinal:this.getOrdinal()};
};
m.initialize = function(b, a, c, d, e, f, g, l, n) {
m._core = b;
m._request = a;
m._coreConfig = c;
m._adsConfig = d;
m._sessionManager = e;
m._campaignManager = f;
m._metaDataManager = g;
m._clientInfo = l;
n.onFinish.subscribe(function(a) {
return m.setCachingFinishTimestamp(a.fileId);
});
n.onStart.subscribe(function(a, b) {
0 === b && m.setCachingStartTimestamp(a.fileId);
});
m._initialized = !0;
};
m.sendReadyEvent = function(b) {
m._initialized && m.isTestActive() && m.getSdkStatsEvent("ready",
b).then(function(a) {
H.sendEvent(m._topic, eb.ANONYMOUS, a);
});
};
m.sendShowEvent = function(b) {
m._initialized && m.isTestActive() && m.getSdkStatsEvent("show",
b).then(function(a) {
H.sendEvent(m._topic, eb.ANONYMOUS, a);
});
};
m.increaseAdRequestOrdinal = function() {
m._adRequestOrdinal++;
};
m.getAdRequestOrdinal = function() {
return m._adRequestOrdinal;
};
m.setInitTimestamp = function() {
m._initTimestamp = Date.now();
};
m.setAdRequestTimestamp = function() {
m._latestAdRequestTimestamp = Date.now();
m._parseDuration = {};
};
m.getAdRequestTimestamp = function() {
return m._latestAdRequestTimestamp;
};
m.setAdRequestDuration = function(b) {
m._latestAdRequestDuration = b;
};
m.setReadyEventTimestamp = function(b) {
m._readyEventSent[b] = Date.now();
};
m.getReadyEventTimestamp = function(b) {
return m._readyEventSent[b];
};
m.getRequestToReadyTime = function(b) {
return m.getReadyEventTimestamp(b) - m.getAdRequestTimestamp();
};
m.setCachingStartTimestamp = function(b) {
m._cachingStarted[b] = Date.now();
};
m.setCachingFinishTimestamp = function(b) {
m._cachingFinished[b] = Date.now();
};
m.setParseDuration = function(b, a) {
m._parseDuration[b] = a;
};
m.setFrameSetStartTimestamp = function(b) {
m._frameSetStarted[b] = Date.now();
};
m.getFrameSetStartTimestamp = function(b) {
return m._frameSetStarted[b];
};
m.isTestActive = function() {
var b = m._sessionManager.getGameSessionId();
return "number" === typeof b && 0 === b % 1000 ? !0 : !1;
};
m.getSdkStatsEvent = function(b, a) {
var c = m._adsConfig.getPlacement(a), d = c.getCurrentCampaign(), e =
Date.now();
return Promise.all([m._campaignManager.getFullyCachedCampaigns(),
m.getAssetSize(d), m._metaDataManager.fetch(gd)]).then(function(f) {
f = h.makeIterator(f);
var g = f.next().value, l = f.next().value, n = f.next().value;
f = {abGroup:m._coreConfig.getAbGroup()};
var W = {auctionId:d.getSession().getId(),
gameSessionId:m._sessionManager.getGameSessionId(), placementId:a,
allowSkipVideoInSeconds:c.allowSkip() ? c.allowSkipInSeconds() : void 0}, r =
{campaignId:d.getId(), targetGameId:void 0, campaignType:m.getCampaignType(d)};
g = {cachedCampaigns:g, isVideoCached:m.isCampaignCached(d),
cachingMode:Nb[m._adsConfig.getCacheMode()], videoCachedMsAgo:m.getCachedMsAgo(d),
cacheDuration:m.getCachingDuration(d), size:0 < l ? l : void 0};
var y;
n && (y = {mediationName:n.getName(), mediationVersion:n.getVersion(),
mediationOrdinal:n.getOrdinal()});
l = {eventType:b, adRequestOrdinal:m._adRequestOrdinal,
delayInitToRequest:m._latestAdRequestTimestamp - m._initTimestamp,
parseDuration:m._parseDuration[a], requestDuration:m._latestAdRequestDuration,
delayInitToReady:m._readyEventSent[a] - m._initTimestamp,
delaySDKInitToWebViewInit:m._initTimestamp - m._clientInfo.getInitTimestamp(),
reinitializedSDK:m._clientInfo.isReinitialized()};
"show" === b && (l.delayReadyToShow = e - m._readyEventSent[a],
l.delayInitToShow = e - m._initTimestamp);
return {eventTimestamp:e, userInfo:f, placementInfo:W, campaignInfo:r,
cacheInfo:g, mediationInfo:y, eventInfo:l};
});
};
m.getCampaignType = function(b) {
return b instanceof D ? "perf" : b instanceof oa ? "vast" : b instanceof U ?
"mraid" : "unknown";
};
m.isCampaignCached = function(b) {
return (b = Oa.getCachedAsset(b)) && b.isCached() ? !0 : !1;
};
m.getAssetSize = function(b) {
return m.isCampaignCached(b) ? (b = Oa.getCachedAsset(b)) ?
m._core.Cache.getFileInfo(b.getFileId()).then(function(a) {
return a.found ? a.size : 0;
}).catch(function() {
return 0;
}) : Promise.resolve(0) : Promise.resolve(0);
};
m.getCachedMsAgo = function(b) {
if ((b = Oa.getCachedAsset(b)) && (b = b.getFileId()) && m._cachingStarted[b]
&& m._cachingFinished[b]) {
return Date.now() - m._cachingFinished[b];
}
};
m.getCachingDuration = function(b) {
if ((b = Oa.getCachedAsset(b)) && (b = b.getFileId()) && m._cachingStarted[b]
&& m._cachingFinished[b]) {
return m._cachingFinished[b] - m._cachingStarted[b];
}
};
m._topic = "ads.sdk2.events.sdktimeline.json";
m._initialized = !1;
m._adRequestOrdinal = 0;
m._parseDuration = {};
m._readyEventSent = {};
m._cachingStarted = {};
m._cachingFinished = {};
m._frameSetStarted = {};
Sb.setRequestCount = function(b, a) {
b && (a.Storage.set(v.PRIVATE, "user.requestCount", b),
a.Storage.write(v.PRIVATE));
};
Sb.setClickCount = function(b, a) {
b && (a.Storage.set(v.PRIVATE, "user.clickCount", b),
a.Storage.write(v.PRIVATE));
};
Sb.setPriorRequestToReadyTime = function(b, a) {
b && (a.Storage.set(v.PRIVATE, "user.requestToReadyTime", b),
a.Storage.write(v.PRIVATE));
};
Sb.getRequestCount = function(b) {
return b.Storage.get(v.PRIVATE, "user.requestCount").then(function(a) {
return a;
}).catch(function() {
return 0;
});
};
Sb.getClickCount = function(b) {
return b.Storage.get(v.PRIVATE, "user.clickCount").then(function(a) {
return a;
}).catch(function() {
return 0;
});
};
Sb.getPriorRequestToReadyTime = function(b) {
return b.Storage.get(v.PRIVATE, "user.requestToReadyTime").then(function(a) {
return a;
}).catch(function() {
return 0;
});
};
h.inherits(xa, Z);
xa.prototype.show = function() {
var b = this;
this._requestToViewTime = Date.now() - m.getAdRequestTimestamp();
this.setShowing(!0);
this.sendTrackingEvent("show");
this._platform === p.ANDROID &&
this._ads.Android.AdUnit.onKeyDown.subscribe(this._keyDownListener);
this._container.addEventHandler(this);
return this._container.open(this, ["webview"], !0, this._forceOrientation, !
0, !1, !0, !1, this._options).then(function() {
b.onStart.trigger();
0 === b._startTime && (b._startTime = Date.now());
b._foregroundTime = Date.now();
b.showView();
});
};
xa.prototype.hide = function() {
this.onHide();
this.hideView();
this._container.removeEventHandler(this);
return this._container.close();
};
xa.prototype.description = function() {
return "AdMob";
};
xa.prototype.sendImpressionEvent = function() {
this.sendTrackingEvent("impression");
};
xa.prototype.sendClickEvent = function() {
var b = this;
this.sendTrackingEvent("click");
this._operativeEventManager.sendClick(this.getOperativeEventParams());
Sb.getClickCount(this._core).then(function(a) {
"number" === typeof a && Sb.setClickCount(a + 1, b._core);
}).catch(function() {
F.trigger("request_count_failure", {signal:"requestCount"});
});
};
xa.prototype.sendStartEvent = function() {
var b = this;
this._ads.Listener.sendStartEvent(this._placement.getId());
this.sendTrackingEvent("start");

this._operativeEventManager.sendStart(this.getOperativeEventParams()).then(function
() {
b.onStartProcessed.trigger();
});
};
xa.prototype.sendSkipEvent = function() {
this.sendTrackingEvent("skip");
this._operativeEventManager.sendSkip(this.getOperativeEventParams());
};
xa.prototype.sendCompleteEvent = function() {
this.sendTrackingEvent("complete");
};
xa.prototype.sendRewardEvent = function() {
var b = this.getOperativeEventParams();
this._operativeEventManager.sendThirdQuartile(b);
this._operativeEventManager.sendView(b);
};
xa.prototype.getTimeOnScreen = function() {
return Date.now() - this._foregroundTime;
};
xa.prototype.getStartTime = function() {
return this._startTime;
};
xa.prototype.sendTrackingEvent = function(b) {
var a = this._campaign.getTrackingUrlsForEvent(b);
a = h.makeIterator(a);
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value, this._thirdPartyEventManager.sendWithGet("admob " + b,
this._campaign.getSession().getId(), c);
}
};
xa.prototype.sendClickSignalResponse = function(b) {
this._view.sendClickSignalResponse(b);
};
xa.prototype.getRequestToViewTime = function() {
return this._requestToViewTime;
};
xa.prototype.onContainerShow = function() {
};
xa.prototype.onContainerForeground = function() {
this._foregroundTime = Date.now();
};
xa.prototype.onContainerBackground = function() {
};
xa.prototype.onContainerDestroy = function() {
this.isShowing() && (this.setFinishState(na.SKIPPED), this.hide());
};
xa.prototype.onContainerSystemMessage = function() {
};
xa.prototype.showView = function() {
this._view.show();
document.body.appendChild(this._view.container());
};
xa.prototype.onHide = function() {
this.setShowing(!1);
this._ads.Listener.sendFinishEvent(this._placement.getId(),
this.getFinishState());
this.onClose.trigger();
this._platform === p.ANDROID &&
this._ads.Android.AdUnit.onKeyDown.unsubscribe(this._keyDownListener);
this.getFinishState() === na.SKIPPED ? this.sendSkipEvent() :
this.getFinishState() === na.COMPLETED && this.sendCompleteEvent();
};
xa.prototype.hideView = function() {
this._view.hide();
document.body.removeChild(this._view.container());
};
xa.prototype.onKeyDown = function(b) {
if (4 === b) {
this._view.onBackPressed();
}
};
xa.prototype.getOperativeEventParams = function() {
return {placement:this._placement};
};
var nb;
(function(b) {
b.DEFAULT = "default";
b.LEGITIMATE_INTEREST = "legitimate_interest";
b.UNITY_CONSENT = "unity_consent";
b.DEVELOPER_CONSENT = "developer_consent";
})(nb || (nb = {}));
h.inherits(wd, z);
wd.prototype.isEnabled = function() {
return this.getMethod() === nb.UNITY_CONSENT;
};
wd.prototype.getMethod = function() {
return this.get("method");
};
wd.prototype.setMethod = function(b) {
this.set("method", b);
};
wd.prototype.getVersion = function() {
return this.getMethod() === nb.UNITY_CONSENT ? 20181106 : 0;
};
wd.prototype.getDTO = function() {
return {method:this.getMethod(), version:this.getVersion()};
};
h.inherits(fd, z);
fd.prototype.isRecorded = function() {
return this.getMethod() !== nb.DEFAULT;
};
fd.prototype.getMethod = function() {
return this.get("method");
};
fd.prototype.getVersion = function() {
return this.get("version");
};
fd.prototype.getPermissions = function() {
return this.get("permissions");
};
fd.prototype.update = function(b) {
this.set("method", b.method);
this.set("version", b.version);
this.set("permissions", b.permissions);
};
fd.prototype.clear = function() {
this.set("method", nb.DEFAULT);
this.set("version", 0);
this.set("permissions", {profiling:!1});
};
fd.prototype.getDTO = function() {
return {method:this.getMethod(), version:this.getVersion(),
permissions:this.getPermissions()};
};
h.inherits(dc, hb);
vd.parse = function(b, a) {
try {
return JSON.parse(b, a);
} catch (c) {
throw new dc(c, {json:b});
}
};
ud.prototype.isValid = function(b) {
return -1 !== this._groups.indexOf(b);
};
h.inherits(zf, ud);
zf.prototype.isValid = function() {
return !1;
};
h.inherits(td, ud);
td.setup = function(b, a) {
td._gameId = b;
td._organizationId = a;
};
td.prototype.isValid = function(b) {
return !this.isFiltered() && ud.prototype.isValid.call(this, b);
};
h.inherits(pg, td);
pg.prototype.isFiltered = function() {
return "3418765" === td._organizationId;
};
new zf(16, 17);
var ph = new ud(9, 10);
new zf;
var xh = new pg(7, 8), Cg = new ud(15), yh = new ud(17, 18), zh = Af('[\n
"1196341",\n "1594775",\n "2755671",\n "1451510",\n "1585102",\n
"2808037",\n "2755670",\n "2625701",\n "2625703",\n "2861297",\n
"2845426"\n]\n'), Ah = Af('[\n "15391",\n "2211169",\n "2363810",\n
"16284",\n "2765682",\n "2765683",\n "2730783",\n "2730782",\n
"16061",\n "1878566",\n "2055438",\n "16062",\n "131625570",\n
"2445047",\n "2312323",\n "131625571",\n "2907327",\n "2907326",\n
"2907308",\n "2907309",\n "1863295",\n "1863296",\n "15722",\n
"1859834",\n "2149582",\n "15723",\n "2685612",\n "2685611",\n
"1541846",\n "1541847",\n "2668271",\n "2668272",\n "1541612",\n
"1541613",\n "2765468",\n "2765469",\n "2485319",\n "48355",\n
"2926628",\n "2926630",\n "2952181",\n "2952180",\n "2619760",\n
"2619759",\n "1541834",\n "1541835",\n "2053161",\n "131621886",\n
"131621885",\n "1869053",\n "2388960",\n "48358",\n "16063",\n
"2030094",\n "2335087",\n "16064",\n "2387137",\n "48359",\n
"2843413",\n "2843411",\n "1665967",\n "1541876",\n "1541840",\n
"1541841",\n "1800320",\n "1800321",\n "1541619",\n "1541620",\n
"1541810",\n "1541811",\n "1541615",\n "1541616",\n "1556514",\n
"1541602",\n "131625767",\n "2212370",\n "2377821",\n "131625768",\n
"1541590",\n "1541591",\n "2918432",\n "2918434",\n "2952283",\n
"2952282",\n "2753680",\n "2753679",\n "2037812",\n "1541881",\n
"1541802",\n "1541793",\n "1541823",\n "1541824",\n "2661968",\n
"2661969",\n "1663575",\n "1634476",\n "1541697",\n "1541698",\n
"1541690",\n "1541691",\n "16233",\n "2256940",\n "2221521",\n
"16234",\n "22991",\n "2330683",\n "2332368",\n "22992",\n
"2767608",\n "2767607",\n "2697608",\n "2697610",\n "2907396",\n
"2907397",\n "1540733",\n "52429",\n "1527935",\n "1527936",\n
"21822",\n "2136120",\n "2223741",\n "21823",\n "131623211",\n
"1967311",\n "2146017",\n "131623212",\n "1675064",\n "1613773",\n
"2325322",\n "1541821",\n "2695848",\n "2695849",\n "1540871",\n
"1540872",\n "2964378",\n "2964379",\n "1542734",\n "1541685",\n
"2961299",\n "2961298",\n "1504846",\n "1501244",\n "1976419",\n
"21370",\n "21369",\n "2504936",\n "2561481",\n "48360",\n
"131623186",\n "2271110",\n "2509563",\n "131623187",\n "1540880",\n
"1540881",\n "25279",\n "1875270",\n "2148139",\n "25280",\n
"2757035",\n "2757036",\n "2382865",\n "30440",\n "30439",\n
"2395936",\n "2580760",\n "2580758",\n "2865649",\n "2865647",\n
"1934475",\n "24313",\n "24312",\n "2112501",\n "2918429",\n
"2918430",\n "1671076",\n "1634471",\n "21686",\n "1841408",\n
"1972278",\n "21687",\n "27948",\n "1987658",\n "2108651",\n
"27949",\n "1541862",\n "1541863",\n "1540876",\n "1540877"\n]\n'),
Bh = Af('[\n "1463674",\n "1384489",\n "1497921",\n "1663688",\n
"2675223",\n "129094",\n "1396740",\n "84563",\n "1593833",\n
"1427554",\n "2856986",\n "2847393",\n "2802292",\n "2924249",\n
"2911457",\n "2981553",\n "2856939",\n "2603626",\n "2632535",\n
"2809903",\n "1529148",\n "1397682",\n "123496",\n "1397677",\n
"1558951",\n "2958744",\n "2958785",\n "2958737",\n "2958754",\n
"2958747",\n "2958699",\n "2958780"\n]\n'),
Ch = Af('[\n "1344431",\n "1346246",\n "1628169",\n "1628170",\n
"3043766",\n "2674502",\n "2805943",\n "1795561"\n]\n');
O.isExampleGameId = function(b) {
return "14850" === b || "14851" === b;
};
O.isTimehopApp = function(b) {
return "1300023" === b || "1300024" === b;
};
O.isSonicPlayable = function(b) {
return "109455881" === b || "109455877" === b || "109091853" === b ||
"109091754" === b || "114617576" === b || "114617336" === b || "145941071" === b ||
"145940860" === b || "147367465" === b || "151099348" === b || "151338976" === b ||
"151337994" === b || "152919353" === b || "153119177" === b;
};
O.isLoopMeSeat = function(b) {
return 9119 === b || 9121 === b;
};
O.isPlayableConfigurationEnabled = function(b) {
return b.match(/playables\/production\/unity/);
};
O.isSimejiJapaneseKeyboardApp = function(b) {
return "1795561" === b;
};
O.isCloseIconSkipEnabled = function(b) {
return this.existsInList(zh, b) || this.existsInList(Ah, b) ||
this.existsInList(Bh, b);
};
O.isTimerExpirationExperiment = function(b) {
return "1453434" === b;
};
O.isAuctionV4Game = function(b) {
return this.existsInList(Ch, b);
};
O.isSkipUnderTimerExperimentEnabled = function(b, a) {
return xh.isValid(b.getAbGroup()) && a.allowSkip();
};
O.existsInList = function(b, a) {
return -1 !== b.indexOf(a);
};
O.shouldSampleAtOnePercent = function() {
return 0 === Math.floor(100 * Math.random()) % 100 ? !0 : !1;
};
O.shouldSampleAtTenPercent = function() {
return 1 === Math.floor(10 * Math.random()) % 10 ? !0 : !1;
};
var yc;
(function(b) {
b.METADATA = "metadata";
b.NO_REVIEW = "no_review";
b.USER = "user";
})(yc || (yc = {}));
var id;
(function(b) {
b.SKIP = "skip";
b.CONSENT = "consent";
b.OPTOUT = "optout";
b.OPTIN = "optin";
})(id || (id = {}));
ab.prototype.sendGDPREvent = function(b, a) {
b = {adid:this._deviceInfo.getAdvertisingIdentifier(), action:b,
projectId:this._coreConfig.getUnityProjectId(),
platform:p[this._platform].toLowerCase(), country:this._coreConfig.getCountry(),
gameId:this._clientInfo.getGameId()};
a && (b = Object.assign({}, b, {source:a}));
return H.sendEvent("ads.events.optout.v1.json", eb.EMPTY, b).then(function() {
return Promise.resolve();
});
};
ab.prototype.updateUserPrivacy = function(b, a, c) {
var d = this._gamePrivacy;
if (!d.isEnabled() || !sg(b) || d.getMethod() !== nb.UNITY_CONSENT) {
return Promise.resolve();
}
a === yc.NO_REVIEW && (b = {all:!0});
d = {method:d.getMethod(), version:d.getVersion(), permissions:b};
if (!this.hasUserPrivacyChanged(d)) {
return Promise.resolve();
}
this._userPrivacy.update(d);
return this.sendUnityConsentEvent(b, a, c);
};
ab.prototype.hasUserPrivacyChanged = function(b) {
var a = this._userPrivacy;
if (a.getMethod() !== b.method || a.getVersion() !== b.version) {
return !0;
}
a = a.getPermissions();
b = b.permissions;
return a.gameExp !== b.gameExp || a.ads !== b.ads || a.external !== b.external
|| a.all !== b.all ? !0 : !1;
};
ab.prototype.sendUnityConsentEvent = function(b, a, c) {
c = void 0 === c ? "" : c;
a = {adid:this._deviceInfo.getAdvertisingIdentifier(),
group:this._coreConfig.getAbGroup(), layout:c, action:id.CONSENT,
projectId:this._coreConfig.getUnityProjectId(),
platform:p[this._platform].toLowerCase(), country:this._coreConfig.getCountry(),
gameId:this._clientInfo.getGameId(), source:a, method:nb.UNITY_CONSENT,
version:this._gamePrivacy.getVersion(), coppa:this._coreConfig.isCoppaCompliant(),
permissions:b};
O.shouldSampleAtOnePercent() && F.trigger("consent_send_event",
{adsConfig:JSON.stringify(this._adsConfig.getDTO()),
permissions:JSON.stringify(b)});
return H.sendEvent("ads.events.optout.v1.json", eb.EMPTY, a);
};
ab.prototype.getConsentAndUpdateConfiguration = function() {
var b = this;
return this._adsConfig.isGDPREnabled() ? this.getConsent().then(function(a) {
b._adsConfig.isGDPREnabled() && (b.updateConfigurationWithConsent(a),
b.pushConsent(a));
return a;
}) : Promise.reject(Error("Configuration gdpr is not enabled"));
};
ab.prototype.retrieveUserSummary = function() {
var b = this, a = "https://tracking.prd.mz.internal.unity3d.com/user-summary?
gameId=" + this._clientInfo.getGameId() + "&adid=" +
this._deviceInfo.getAdvertisingIdentifier() + "&projectId=" +
this._coreConfig.getUnityProjectId() + "&storeId=" + this._deviceInfo.getStores(),
c = {deviceModel:this._deviceInfo.getModel(),
country:this._coreConfig.getCountry()};
return this._request.get(a).then(function(a) {
return Object.assign({}, vd.parse(a.response), c);
}).catch(function(c) {
F.trigger("gdpr_request_failed", {url:a});
b._core.Sdk.logError("Gdpr request failed" + c);
throw c;
});
};
ab.prototype.isOptOutEnabled = function() {
return this._adsConfig.isOptOutEnabled();
};
ab.prototype.getGranularPermissions = function() {
var b = this._adsConfig.getUserPrivacy().getPermissions();
return sg(b) ? !0 === b.all ? {gameExp:!0, ads:!0, external:!0} : b :
{gameExp:!1, ads:!1, external:!1};
};
ab.prototype.pushConsent = function(b) {
var a = this;
return this._core.Storage.get(v.PRIVATE,
ab.GdprLastConsentValueStorageKey).then(function(c) {
if (c !== b) {
return a.sendGdprConsentEvent(b);
}
}).catch(function() {
return a.sendGdprConsentEvent(b);
});
};
ab.prototype.getConsent = function() {
var b = this;
return this._core.Storage.get(v.PUBLIC,
ab.GdprConsentStorageKey).then(function(a) {
a = b.getConsentTypeHack(a);
if ("undefined" !== typeof a) {
return Promise.resolve(a);
}
throw Error("gdpr.consent.value is undefined");
});
};
ab.prototype.updateConfigurationWithConsent = function(b) {
this._adsConfig.setOptOutEnabled(!b);
this._adsConfig.setOptOutRecorded(!0);
var a = this._adsConfig.getGamePrivacy();
a.getMethod() === nb.UNITY_CONSENT && (a.setMethod(nb.DEVELOPER_CONSENT),
this._adsConfig.getUserPrivacy().update({method:a.getMethod(),
version:a.getVersion(), permissions:{profiling:b}}));
};
ab.prototype.onStorageSet = function(b, a) {
this._adsConfig.isGDPREnabled() && a && a.gdpr && a.gdpr.consent && (b =
this.getConsentTypeHack(a.gdpr.consent.value), "undefined" !== typeof b &&
(this.updateConfigurationWithConsent(b), this.pushConsent(b)));
};
ab.prototype.getConsentTypeHack = function(b) {
if ("boolean" === typeof b) {
return b;
}
if ("string" === typeof b) {
if ("true" === b) {
return !0;
}
if ("false" === b) {
return !1;
}
}
};
ab.prototype.sendGdprConsentEvent = function(b) {
var a = this;
return (b ? this.sendGDPREvent(id.CONSENT) : this.sendGDPREvent(id.OPTOUT,
yc.METADATA)).then(function() {
return a._core.Storage.set(v.PRIVATE, ab.GdprLastConsentValueStorageKey,
b).then(function() {
return a._core.Storage.write(v.PRIVATE);
});
});
};
ab.GdprLastConsentValueStorageKey = "gdpr.consentlastsent";
ab.GdprConsentStorageKey = "gdpr.consent.value";
nd.prototype.onGDPRPopupSkipped = function() {
this._adsConfig.isOptOutRecorded() || (this._adsConfig.setOptOutRecorded(!0),
this._privacyManager.sendGDPREvent(id.SKIP));
};
h.inherits(og, Error);
Xe.withTimeout = function(b, a) {
var c, d = new Promise(function(b, d) {
c = window.setTimeout(function() {
d(new og("Operation timed out after " + a + " ms"));
}, a);
});
return Promise.race([b, d]).then(function(a) {
window.clearTimeout(c);
return a;
});
};
Xe.voidResult = function(b) {
return b.then(function() {
});
};
yf.prototype.start = function() {
var b = this;
-1 === this._handle && (this._handle = window.setTimeout(function() {
b._func();
}, this._duration));
};
yf.prototype.reset = function() {
this.stop();
this.start();
};
yf.prototype.stop = function() {
window.clearTimeout(this._handle);
this._handle = -1;
};
h.inherits($a, nd);
$a.setLoadTimeout = function(b) {
$a._loadTimeout = b;
};
$a.prototype.onClose = function() {
this._adUnit.hide();
};
$a.prototype.onOpenURL = function(b) {
-1 === b.indexOf("mobile-about") && this._adUnit.sendClickEvent();
this._platform === p.IOS ? this._core.iOS.UrlScheme.open(b) :
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:b});
};
$a.prototype.onAttribution = function(b, a) {
var c = this, d = [["User-Agent", this.getUserAgentHeader()]];
return (u.getQueryParameter(b, "ms") ? Promise.resolve(b) :
this.createClickUrl(b, a)).then(function(a) {
return Xe.voidResult(c._thirdPartyEventManager.sendWithGet("admob click",
c._session.getId(), a, !0, d));
});
};
$a.prototype.onGrantReward = function() {
this._adUnit.sendRewardEvent();
this._adUnit.setFinishState(na.COMPLETED);
};
$a.prototype.onVideoStart = function() {
this._adUnit.sendStartEvent();
};
$a.prototype.onShow = function() {
};
$a.prototype.onSetOrientationProperties = function(b, a) {
this._platform === p.IOS ? this._adUnit.getContainer().reorient(!0, a) :
this._adUnit.getContainer().reorient(b, a);
};
$a.prototype.onTrackingEvent = function(b, a) {
this._adUnit.sendTrackingEvent(b);
"error" === b ? ca.trigger("admob_ad_error", a, this._campaign.getSession()) :
"stalled" === b && F.trigger("admob_ad_video_stalled", {data:a});
};
$a.prototype.onClickSignalRequest = function(b) {
var a = this;
return this.getClickSignal(b).then(function(b) {
b = {encodedClickSignal:b.getBase64ProtoBufNonEncoded(),
rvdt:a._adUnit.getRequestToViewTime()};
a._adUnit.sendClickSignalResponse(b);
});
};
$a.prototype.getClickSignal = function(b) {
return this._adMobSignalFactory.getClickSignal(b,
this._adUnit).then(function(a) {
return a;
});
};
$a.prototype.getOptionalSignal = function() {
return this._adMobSignalFactory.getOptionalSignal().then(function(b) {
return b;
});
};
$a.prototype.getUserAgentHeader = function() {
return (navigator.userAgent || "Unknown ") + " (Unity " +
this._clientInfo.getSdkVersion() + ")";
};
$a.prototype.onFailureToLoad = function() {
this._adUnit.setFinishState(na.ERROR);
this._adUnit.hide();
};
$a.prototype.createClickUrl = function(b, a) {
var c = this;
return this.getClickSignal(a).then(function(a) {
return u.addParameters(b, {ms:a.getBase64ProtoBufNonEncoded(),
rvdt:c._adUnit.getRequestToViewTime()});
});
};
$a._loadTimeout = 5000;
sb.prototype.toJSON = function() {
return this._value.toFixed(20) + "=double";
};
We.isAppSheetBroken = function(b, a) {
return !a.match(/ipad/i) && b.match(/^12\.[0-9]/) ? !0 : !a.match(/ipad/i) &&
b.match(/^11\.[0-2]/) ? !0 : b.match(/^8\.[0-3]/) ? !0 : b.match(/^7\.[0-9]/) ? !
0 : !1;
};
We.hasVideoStallingApi = function(b) {
return b.match(/^1/) ? !0 : !1;
};
var V;
(function(b) {
b[b.NOT_READY = 0] = "NOT_READY";
b[b.PREPARING = 1] = "PREPARING";
b[b.READY = 2] = "READY";
b[b.PLAYING = 3] = "PLAYING";
b[b.PAUSED = 4] = "PAUSED";
b[b.COMPLETED = 5] = "COMPLETED";
b[b.SKIPPED = 6] = "SKIPPED";
b[b.ERRORED = 7] = "ERRORED";
})(V || (V = {}));
h.inherits(M, Z);
M.prototype.show = function() {
var b = this;
this.setShowing(!0);
this.setActive(!0);
this._container.addEventHandler(this);
return this._container.open(this, ["videoplayer", "webview"], !0,
this.getForceOrientation(), this._placement.disableBackButton(), !1, !0, !1,
this._options).then(function() {
b.onStart.trigger();
});
};
M.prototype.hide = function() {
var b = this;
if (!this.isShowing()) {
return Promise.resolve();
}
this.setShowing(!1);
this.hideChildren();
this.unsetReferences();
this._ads.Listener.sendFinishEvent(this._placement.getId(),
this.getFinishState());
this._container.removeEventHandler(this);
return this._container.close().then(function() {
b.onClose.trigger();
});
};
M.prototype.setVideoState = function(b) {
this._videoState = b;
};
M.prototype.getVideoState = function() {
return this._videoState;
};
M.prototype.canShowVideo = function() {
return this.getVideoState() !== V.ERRORED && this.getVideoState() !==
V.COMPLETED && this.getVideoState() !== V.SKIPPED;
};
M.prototype.canPlayVideo = function() {
return this.getVideoState() === V.READY || this.getVideoState() === V.PLAYING
|| this.getVideoState() === V.PAUSED;
};
M.prototype.canPrepareVideo = function() {
return this.canShowVideo() && this.getVideoState() === V.NOT_READY;
};
M.prototype.getOverlay = function() {
return this._overlay;
};
M.prototype.getProgressInterval = function() {
return M._progressInterval;
};
M.prototype.getVideo = function() {
return this._video;
};
M.prototype.isActive = function() {
return this._active;
};
M.prototype.setActive = function(b) {
this._active = b;
};
M.prototype.getVideoOrientation = function() {
var b = "landscape", a = Oa.getPortraitVideo(this._campaign);
a && this._finalVideoUrl === a.getUrl() && (b = "portrait");
this._core.Sdk.logDebug("Returning " + b + " as video orientation for locked
orientation " + ja[this._container.getLockedOrientation()]);
return b;
};
M.prototype.isLowMemory = function() {
return this._lowMemory;
};
M.prototype.onContainerShow = function() {
this.isShowing() && this.isActive() && (this._platform === p.IOS &&
We.hasVideoStallingApi(this._deviceInfo.getOsVersion()) &&
(this.getVideo().isCached() ?
this._ads.VideoPlayer.setAutomaticallyWaitsToMinimizeStalling(!1) :
this._ads.VideoPlayer.setAutomaticallyWaitsToMinimizeStalling(!0)),
this.prepareVideo());
};
M.prototype.onContainerDestroy = function() {
this.isShowing() && (this.setActive(!1), this.setFinishState(na.SKIPPED),
this.hide());
};
M.prototype.onContainerBackground = function() {
var b = this;
this.isShowing() && O.isSimejiJapaneseKeyboardApp(this._clientInfo.getGameId())
? (this.setActive(!1), this.setFinishState(na.SKIPPED),
this.setVideoState(V.SKIPPED), this.hide()) : this.isShowing() &&
this.getContainer().isPaused() && (this.setActive(!1), this.canShowVideo() &&
(this.setVideoState(V.PAUSED), this._ads.VideoPlayer.pause().catch(function(a) {
"VIDEOVIEW_NULL" === a && b.setVideoState(V.NOT_READY);
})));
};
M.prototype.isAppSheetOpen = function() {
return !1;
};
M.prototype.onContainerForeground = function() {
!this.isShowing() || this.isActive() || this.getContainer().isPaused() ||
(this.setActive(!0), !this.isAppSheetOpen() && this.canShowVideo() &&
this.getVideoState() === V.PAUSED ? (this.setVideoState(V.PLAYING),
this._ads.VideoPlayer.play()) : this.canPrepareVideo() && this.prepareVideo());
};
M.prototype.onContainerSystemMessage = function(b) {
switch(b) {
case Pc.MEMORY_WARNING:
this.isShowing() && (this._lowMemory = !0);
break;
case Pc.AUDIO_SESSION_INTERRUPT_BEGAN:
this.isShowing() && this.isActive() && this.getVideoState() === V.PLAYING
&& (this.setVideoState(V.PAUSED), this._ads.VideoPlayer.pause());
break;
case Pc.AUDIO_SESSION_INTERRUPT_ENDED:
case Pc.AUDIO_SESSION_ROUTE_CHANGED:
!this.isAppSheetOpen() && this.isShowing() && this.isActive() &&
this.canPlayVideo() && (this.setVideoState(V.PLAYING),
this._ads.VideoPlayer.play());
}
};
M.prototype.unsetReferences = function() {
delete this._overlay;
};
M.prototype.prepareOverlay = function() {
var b = this.getOverlay();
b && (b.render(), document.body.appendChild(b.container()),
this._placement.allowSkip() ? (b.setSkipEnabled(!0),
b.setSkipDuration(this._placement.allowSkipInSeconds())) : b.setSkipEnabled(!1));
};
M.prototype.hideChildren = function() {
var b = this.getOverlay();
b && (b.hide(), (b = b.container()) && b.parentElement &&
b.parentElement.removeChild(b));
};
M.prototype.prepareVideo = function() {
var b = this;
this.setVideoState(V.PREPARING);
this.getValidVideoUrl().then(function(a) {
b._finalVideoUrl = a;
b._ads.VideoPlayer.prepare(a, new sb(b._placement.muteVideo() ? 0 : 1),
10000);
});
};
M.prototype.getValidVideoUrl = function() {
var b = this, a = this.getVideo().getOriginalUrl();
if (this._campaign instanceof D || this._campaign instanceof L) {
var c = Oa.getOrientedVideo(this._campaign, this.getForceOrientation(),
xd.STREAM);
if (!c) {
throw new hb("Unable to fallback to an oriented streaming video");
}
a = c.getOriginalUrl();
}
return Promise.resolve().then(function() {
return b.getVideo().isCached() && b.getVideo().getFileId() ?
b._core.Cache.getFileInfo(b.getVideo().getFileId()).then(function(c) {
if (c.found) {
var d = b.getVideo().getSize();
return d && d !== c.size ? (ca.trigger("video_size_mismatch",
{remoteVideoSize:d, localVideoSize:c.size}, b._campaign.getSession()), a) :
b.getVideo().getUrl();
}
ca.trigger("cached_file_not_found", new dc(Error("File not found"),
{url:b.getVideo().getUrl(), originalUrl:b.getVideo().getOriginalUrl(),
campaignId:b._campaign.getId()}), b._campaign.getSession());
b.getVideo().setCachedUrl(void 0);
return a;
}).catch(function(c) {
ca.trigger("cached_file_not_found", new dc(Error(c),
{url:b.getVideo().getUrl(), originalUrl:b.getVideo().getOriginalUrl(),
campaignId:b._campaign.getId()}), b._campaign.getSession());
b.getVideo().setCachedUrl(void 0);
return a;
}) : b.getVideo().getUrl();
});
};
M._progressInterval = 250;
var zc;
(function(b) {
b[b.NOT_INITIALIZED = 0] = "NOT_INITIALIZED";
b[b.INITIALIZE_FAILED = 1] = "INITIALIZE_FAILED";
b[b.INVALID_ARGUMENT = 2] = "INVALID_ARGUMENT";
b[b.VIDEO_PLAYER_ERROR = 3] = "VIDEO_PLAYER_ERROR";
b[b.INIT_SANITY_CHECK_FAIL = 4] = "INIT_SANITY_CHECK_FAIL";
b[b.AD_BLOCKER_DETECTED = 5] = "AD_BLOCKER_DETECTED";
b[b.FILE_IO_ERROR = 6] = "FILE_IO_ERROR";
b[b.DEVICE_ID_ERROR = 7] = "DEVICE_ID_ERROR";
b[b.SHOW_ERROR = 8] = "SHOW_ERROR";
b[b.INTERNAL_ERROR = 9] = "INTERNAL_ERROR";
})(zc || (zc = {}));
Zc.prototype.updateViewsOnVideoError = function() {
this._adUnit.getContainer().reconfigure(0);
};
Zc.prototype.afterVideoCompleted = function() {
this._adUnit.getContainer().reconfigure(0);
var b = this._adUnit.getOverlay();
b && b.hide();
this._adUnit.onFinish.trigger();
};
Zc.prototype.handleVideoError = function(b, a) {
if (this._adUnit.getVideoState() !== V.ERRORED) {
var c = this._adUnit.getVideoState();
this._adUnit.setVideoState(V.ERRORED);
ca.trigger(b, a, this._campaign.getSession());
this._adUnit.setFinishState(na.ERROR);
this.updateViewsOnVideoError();
(b = this._adUnit.getOverlay()) && b.hide();
this._adUnit.onError.trigger();
this._adUnit.onFinish.trigger();
c === V.NOT_READY || c === V.PREPARING ? (this._adUnit.hide(),
this._ads.Listener.sendErrorEvent(zc[zc.VIDEO_PLAYER_ERROR], "Video player prepare
error")) : (this._adUnit.onVideoError(),
this._ads.Listener.sendErrorEvent(zc[zc.VIDEO_PLAYER_ERROR], "Video player
error"));
}
};
Zc.prototype.getVideoOrientation = function() {
};
h.inherits(Nd, Zc);
Nd.prototype.onInfo = function() {
};
Nd.prototype.onGenericError = function(b, a, c) {
this._core.Sdk.logError("Unity Ads video player error " + a + " " + c + " " +
b);
this.handleVideoError("video_player_generic_error", {url:b,
position:this._video.getPosition(), what:a, extra:c});
};
Nd.prototype.onPrepareError = function(b) {
this._core.Sdk.logError("Unity Ads video player prepare error " + b);
this.handleVideoError("video_player_prepare_error", {url:b,
position:this._video.getPosition()});
};
Nd.prototype.onSeekToError = function(b) {
this._core.Sdk.logError("Unity Ads video player seek to error " + b);
this.handleVideoError("video_player_seek_to_error", {url:b,
position:this._video.getPosition()});
};
Nd.prototype.onPauseError = function(b) {
this._core.Sdk.logError("Unity Ads video player pause error " + b);
this.handleVideoError("video_player_pause_error", {url:b,
position:this._video.getPosition()});
};
Nd.prototype.onIllegalStateError = function() {
this._core.Sdk.logError("Unity Ads video player illegal state error");
this.handleVideoError("video_player_illegal_state_error",
{position:this._video.getPosition()});
};
h.inherits(se, Zc);
se.prototype.onLikelyToKeepUp = function(b, a) {
!this._adUnit.getContainer().isPaused() && this._adUnit.canPlayVideo() && a &&
(this._adUnit.setVideoState(V.PLAYING), this._ads.VideoPlayer.play());
};
se.prototype.onBufferEmpty = function() {
};
se.prototype.onBufferFull = function() {
};
se.prototype.onGenericError = function(b, a) {
this._core.Sdk.logError("Unity Ads video player generic error " + b + " " + a);
this.handleVideoError("video_player_generic_error", {url:b,
position:this._video.getPosition(), description:a});
};
Mb.prototype.create = function(b, a, c, d, e) {
b = this._adUnitParametersFactory.create(b, a, c, d, e);
a = this.createAdUnit(b);
b.privacy.setupReportListener(a);
return a;
};
Mb.prototype.prepareVideoPlayer = function(b, a) {
var c = a.adUnit, d = new b(a);
a.ads.VideoPlayer.addEventHandler(d);
c.onClose.subscribe(function() {
a.ads.VideoPlayer.removeEventHandler(d);
});
a.platform === p.ANDROID ? this.prepareAndroidVideoPlayer(a) : a.platform ===
p.IOS && this.prepareIosVideoPlayer(a);
return d;
};
Mb.prototype.prepareAndroidVideoPlayer = function(b) {
var a = b.adUnit, c = new Nd(b);
b.ads.VideoPlayer.Android.addEventHandler(c);
a.onClose.subscribe(function() {
b.ads.VideoPlayer.Android.removeEventHandler(c);
});
};
Mb.prototype.prepareIosVideoPlayer = function(b) {
var a = b.adUnit, c = new se(b);
b.ads.VideoPlayer.iOS.addEventHandler(c);
a.onClose.subscribe(function() {
b.ads.VideoPlayer.iOS.removeEventHandler(c);
});
};
Mb.prototype.getVideoEventHandlerParams = function(b, a, c, d) {
return {platform:d.platform, adUnit:b, campaign:d.campaign,
operativeEventManager:d.operativeEventManager,
thirdPartyEventManager:d.thirdPartyEventManager, coreConfig:d.coreConfig,
adsConfig:d.adsConfig, placement:d.placement, video:a, adUnitStyle:c,
clientInfo:d.clientInfo, core:d.core, ads:d.ads,
programmaticTrackingService:d.programmaticTrackingService};
};
h.inherits(lg, Mb);
lg.prototype.createAdUnit = function(b) {
var a = new xa(b), c = new $a({platform:b.platform, core:b.core, adUnit:a,
request:b.request, thirdPartyEventManager:b.thirdPartyEventManager,
session:b.campaign.getSession(), adMobSignalFactory:b.adMobSignalFactory,
campaign:b.campaign, clientInfo:b.clientInfo, coreConfig:b.coreConfig,
adsConfig:b.adsConfig, privacyManager:b.privacyManager});
b.view.render();
b.view.addEventHandler(c);
return a;
};
Yb.prototype.setCreativeIdentification = function(b) {
this.creativeID = b.getCreativeId() || void 0;
this.seatID = b.getSeatId() || void 0;
};
Yb.prototype.getProgrammaticCampaignId = function() {
if (!this._programmaticCampaignId) {
switch(this._platform) {
case p.IOS:
var b = "00005472656d6f7220694f53";
break;
case p.ANDROID:
b = "005472656d6f7220416e6472";
break;
default:
b = "UNKNOWN";
}
this._programmaticCampaignId = b;
}
return this._programmaticCampaignId;
};
Yb.prototype.validateAndEncodeUrl = function(b, a) {
if (u.isValid(b)) {
return u.encode(b);
}
ca.trigger("invalid_url", {url:b}, a);
throw Error("Invalid url: " + b);
};
Yb.prototype.validateAndEncodeUrls = function(b, a) {
var c = [];
if (b && 0 < b.length) {
b = h.makeIterator(b);
for (var d = b.next(); !d.done; d = b.next()) {
c.push(this.validateAndEncodeUrl(d.value, a));
}
}
return c;
};
Yb.prototype.validateAndEncodeTrackingUrls = function(b, a) {
if (b && null !== b) {
for (var c in b) {
if (b.hasOwnProperty(c)) {
for (var d = [], e = h.makeIterator(b[c]), f = e.next(); !f.done; f =
e.next()) {
d.push(this.validateAndEncodeUrl(f.value, a));
}
b[c] = d;
}
}
}
return b;
};
wa.getFileId = function(b, a) {
var c = this;
if (b in this._fileIds) {
return Promise.resolve(this._fileIds[b]);
}
-1 !== b.indexOf("?") && (b = b.split("?")[0]);
var d, e = b, f = b.split("/");
1 < f.length && (e = f[f.length - 1]);
e = e.split(".");
1 < e.length && (d = e[e.length - 1]);
return a.getHash(b).then(function(a) {
return d ? c._fileIds[b] = a + "." + d : c._fileIds[b] = a;
});
};
wa.getFileIdHash = function(b) {
return b.split(".", 2)[0];
};
wa.getFileIdExtension = function(b) {
return b.split(".", 2)[1];
};
wa.getFileUrl = function(b, a) {
return a.getFilePath(b).then(function(a) {
return "file://" + a;
});
};
wa.setFileID = function(b, a) {
this._fileIds[b] = a;
};
wa._fileIds = {};
h.inherits(ed, hb);
var Ef;
(function(b) {
b.TooLargeFile = "too_large_file";
b.BannerRequestError = "banner_request_error";
b.AdmobTestHttpError = "admob_video_http_error";
})(Ef || (Ef = {}));
var df;
(function(b) {
b.AdmobUsedCachedVideo = "admob_used_cached_video";
b.AdmobUsedStreamedVideo = "admob_used_streamed_video";
b.AdmobUserVideoSeeked = "admob_user_video_seeked";
b.BannerAdRequest = "banner_ad_request";
b.BannerAdImpression = "banner_ad_impression";
})(df || (df = {}));
ld.prototype.createErrorTag = function(b) {
return this.createAdsSdkTag("eevt", b);
};
ld.prototype.createMetricTag = function(b) {
return this.createAdsSdkTag("mevt", b);
};
ld.prototype.createAdsSdkTag = function(b, a) {
return "ads_sdk2_" + b + ":" + a;
};
ld.prototype.reportError = function(b, a, c) {
var d = this._platform, e = this._deviceInfo.getOsVersion(), f =
this._clientInfo.getSdkVersionName();
a = {metrics:[{tags:[this.createErrorTag(b), this.createAdsSdkTag("plt", p[d]),
this.createAdsSdkTag("osv", e), this.createAdsSdkTag("sdv", f),
this.createAdsSdkTag("adt", a), this.createAdsSdkTag("sid", "" + c)]}]};
b = ld.productionMetricServiceUrl;
a = JSON.stringify(a);
c = [];
c.push(["Content-Type", "application/json"]);
return this._request.post(b, a, c);
};
ld.prototype.reportMetric = function(b) {
var a = {metrics:[{tags:[this.createMetricTag(b)]}]};
b = ld.productionMetricServiceUrl;
a = JSON.stringify(a);
var c = [];
c.push(["Content-Type", "application/json"]);
return this._request.post(b, a, c);
};
ld.productionMetricServiceUrl =
"https://tracking.prd.mz.internal.unity3d.com/tracking/sdk/metric";
h.inherits(sd, Error);
var Q;
(function(b) {
b[b.XML_PARSER_ERROR = 100] = "XML_PARSER_ERROR";
b[b.SCHEMA_VAL_ERROR = 101] = "SCHEMA_VAL_ERROR";
b[b.VERSION_UNSUPPORTED = 102] = "VERSION_UNSUPPORTED";
b[b.FORMAT_UNSUPPORTED = 200] = "FORMAT_UNSUPPORTED";
b[b.DURATION_UNSUPPORTED = 202] = "DURATION_UNSUPPORTED";
b[b.SIZE_UNSUPPORTED = 203] = "SIZE_UNSUPPORTED";
b[b.WRAPPER_GENERAL_ERROR = 300] = "WRAPPER_GENERAL_ERROR";
b[b.WRAPPER_URI_TIMEOUT = 301] = "WRAPPER_URI_TIMEOUT";
b[b.WRAPPER_DEPTH_LIMIT_REACHED = 302] = "WRAPPER_DEPTH_LIMIT_REACHED";
b[b.WRAPPER_NO_ADS_FOUND = 303] = "WRAPPER_NO_ADS_FOUND";
b[b.LINEAR_UNABLE_TO_PLAY = 400] = "LINEAR_UNABLE_TO_PLAY";
b[b.MEDIA_FILE_URL_NOT_FOUND = 401] = "MEDIA_FILE_URL_NOT_FOUND";
b[b.MEDIA_FILE_TIMEOUT = 402] = "MEDIA_FILE_TIMEOUT";
b[b.MEDIA_FILE_UNSUPPORTED = 403] = "MEDIA_FILE_UNSUPPORTED";
b[b.MEDIA_FILE_UNSUPPORTED_IOS = 404] = "MEDIA_FILE_UNSUPPORTED_IOS";
b[b.MEDIA_FILE_PLAY_ERROR = 405] = "MEDIA_FILE_PLAY_ERROR";
b[b.COMPANION_GENERAL_ERROR = 600] = "COMPANION_GENERAL_ERROR";
b[b.COMPANION_SIZE_UNSUPPORTED = 601] = "COMPANION_SIZE_UNSUPPORTED";
b[b.COMPANION_UNABLE_TO_DISPLAY = 602] = "COMPANION_UNABLE_TO_DISPLAY";
b[b.COMPANION_UNABLE_TO_FETCH = 603] = "COMPANION_UNABLE_TO_FETCH";
b[b.COMPANION_RESOURCE_NOT_FOUND = 604] = "COMPANION_RESOURCE_NOT_FOUND";
b[b.UNDEFINED_ERROR = 900] = "UNDEFINED_ERROR";
b[b.GENERAL_VPAID_ERROR = 901] = "GENERAL_VPAID_ERROR";
b[b.UNKNOWN_ERROR = 9999] = "UNKNOWN_ERROR";
})(Q || (Q = {}));
var Ca = {};
Md.errorMap = (Ca[Q.XML_PARSER_ERROR] = "VAST xml data is missing",
Ca[Q.SCHEMA_VAL_ERROR] = "VAST schema validation error", Ca[Q.VERSION_UNSUPPORTED]
= "VAST version Unsupported", Ca[Q.FORMAT_UNSUPPORTED] = "VAST format unsupported",
Ca[Q.DURATION_UNSUPPORTED] = "VAST duration unsupported", Ca[Q.SIZE_UNSUPPORTED] =
"VAST size unsupported", Ca[Q.WRAPPER_GENERAL_ERROR] = "Wrapper ad request failed",
Ca[Q.WRAPPER_URI_TIMEOUT] = "Wrapper ad request timed out",
Ca[Q.WRAPPER_DEPTH_LIMIT_REACHED] = "Wrapper depth exceeded",
Ca[Q.WRAPPER_NO_ADS_FOUND] = "No ads found in Wrapper response",
Ca[Q.LINEAR_UNABLE_TO_PLAY] = "General error from Linear Ad",
Ca[Q.MEDIA_FILE_URL_NOT_FOUND] = "No video URL found for VAST",
Ca[Q.MEDIA_FILE_TIMEOUT] = "Media file URI timed out", Ca[Q.MEDIA_FILE_UNSUPPORTED]
= "No Media file found supported in Video Player", Ca[Q.MEDIA_FILE_UNSUPPORTED_IOS]
= "Campaign video url needs to be https for iOS", Ca[Q.MEDIA_FILE_PLAY_ERROR] =
"Problem displaying Media file", Ca[Q.COMPANION_GENERAL_ERROR] =
"General error from Companion Ad", Ca[Q.COMPANION_SIZE_UNSUPPORTED] = "Companion
creative size unsupported", Ca[Q.COMPANION_UNABLE_TO_DISPLAY] = "Companion unable
to display", Ca[Q.COMPANION_UNABLE_TO_FETCH] = "Unable to fetch Companion
resource", Ca[Q.COMPANION_RESOURCE_NOT_FOUND] = "Supported Companion resource not
found", Ca[Q.UNDEFINED_ERROR] = "Undefined Error", Ca[Q.GENERAL_VPAID_ERROR] =
"General VPAID error", Ca[Q.UNKNOWN_ERROR] = "Unknown Error", Ca);
ng.prototype.handleCampaignError = function(b) {
if (b.errorTrackingUrl) {
var a = b.errorCode ? b.errorCode : Q.UNDEFINED_ERROR, c =
this.formatVASTErrorURL(b.errorTrackingUrl, a, b.assetUrl);
this._core.Sdk.logInfo("VAST Campaign Error tracking url: " + c + " with
errorCode: " + a + " errorMessage: " + b.errorMessage);
this._request.get(c, []).then(function() {
return Promise.resolve();
});
}
return Promise.reject(Error("VastCampaignErrorHandler errorTrackingUrl was
undefined"));
};
ng.prototype.formatVASTErrorURL = function(b, a, c) {
b = b.replace("[ERRORCODE]", a.toString());
c && (b = b.replace("[ASSETURI]", u.encodeParam(c)));
return b;
};
var mc;
(function(b) {
b.ProgrammaticVast = "programmatic/vast";
b.ProgrammaticMraid = "programmatic/mraid";
b.ProgrammaticMraidUrl = "programmatic/mraid-url";
b.ProgrammaticVpaid = "programmatic/vast-vpaid";
})(mc || (mc = {}));
h.inherits(ha, z);
ha.prototype.getAds = function() {
return this.get("ads");
};
ha.prototype.getErrorURLTemplates = function() {
var b = this.getAd();
return b && (b = b.getErrorURLTemplates(), b instanceof Array) ?
b.concat(this.get("parseErrorURLTemplates") || []) :
this.get("parseErrorURLTemplates");
};
ha.prototype.getErrorURLTemplate = function() {
var b = this.getErrorURLTemplates();
return 0 < b.length ? b[0] : null;
};
ha.prototype.getAd = function() {
return this.getAds() && 0 < this.getAds().length ? this.getAds()[0] : null;
};
ha.prototype.getVideoUrl = function() {
var b = this.getAd();
if (b) {
b = h.makeIterator(b.getCreatives());
for (var a = b.next(); !a.done; a = b.next()) {
a = h.makeIterator(a.value.getMediaFiles());
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value;
var d = c.getMIMEType();
d = d && this.isSupportedMIMEType(d);
if ((c = c.getFileURL()) && d) {
return c;
}
}
}
}
throw new sd(Md.errorMap[Q.MEDIA_FILE_URL_NOT_FOUND], mc.ProgrammaticVast);
};
ha.prototype.getMediaVideoUrl = function() {
var b = this.getAd();
if (b) {
b = h.makeIterator(b.getCreatives());
for (var a = b.next(); !a.done; a = b.next()) {
a = h.makeIterator(a.value.getMediaFiles());
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value;
var d = c.getMIMEType();
d = d && this.isSupportedMIMEType(d);
if ((c = c.getFileURL()) && d) {
return c;
}
}
}
}
return null;
};
ha.prototype.getImpressionUrls = function() {
var b = this.getAd();
return b ? b.getImpressionURLTemplates() : [];
};
ha.prototype.getTrackingEventUrls = function(b) {
var a = this.getAd();
if (a) {
a = a.getTrackingEventUrls(b);
var c = [];
this.get("additionalTrackingEvents") && (c =
this.get("additionalTrackingEvents")[b] || []);
return a instanceof Array ? a.concat(c) : c;
}
return [];
};
ha.prototype.addTrackingEventUrl = function(b, a) {
this.get("additionalTrackingEvents") || this.set("additionalTrackingEvents",
{});
this.get("additionalTrackingEvents")[b] ||
(this.get("additionalTrackingEvents")[b] = []);
this.get("additionalTrackingEvents")[b].push(a);
};
ha.prototype.getDuration = function() {
var b = this.getAd();
return b ? b.getDuration() : null;
};
ha.prototype.getWrapperURL = function() {
var b = this.getAd();
return b ? b.getWrapperURL() : null;
};
ha.prototype.getVideoClickThroughURL = function() {
var b = this.getAd();
return b ? b.getVideoClickThroughURLTemplate() : null;
};
ha.prototype.getVideoClickTrackingURLs = function() {
var b = this.getAd();
return b ? b.getVideoClickTrackingURLTemplates() : null;
};
ha.prototype.getLandscapeOrientedCompanionAd = function() {
var b = this.getAd();
if (b && (b = b.getCompanionAds())) {
b = h.makeIterator(b);
for (var a = b.next(); !a.done; a = b.next()) {
if (a = a.value, this.isValidLandscapeCompanion(a.getCreativeType(),
a.getHeight(), a.getWidth())) {
return a;
}
}
}
return null;
};
ha.prototype.getCompanionLandscapeUrl = function() {
var b = this.getLandscapeOrientedCompanionAd();
return b ? b.getStaticResourceURL() : null;
};
ha.prototype.getPortraitOrientedCompanionAd = function() {
var b = this.getAd();
if (b && (b = b.getCompanionAds())) {
b = h.makeIterator(b);
for (var a = b.next(); !a.done; a = b.next()) {
if (a = a.value, this.isValidPortraitCompanion(a.getCreativeType(),
a.getHeight(), a.getWidth())) {
return a;
}
}
}
return null;
};
ha.prototype.getCompanionPortraitUrl = function() {
var b = this.getPortraitOrientedCompanionAd();
return b ? b.getStaticResourceURL() : null;
};
ha.prototype.getCompanionClickThroughUrl = function() {
var b = this.getAd();
if (b && (b = b.getCompanionAds())) {
b = h.makeIterator(b);
for (var a = b.next(); !a.done; a = b.next()) {
var c = a.value;
a = c.getCompanionClickThroughURLTemplate();
var d = c.getHeight(), e = c.getWidth();
c = c.getCreativeType();
d = this.isValidPortraitCompanion(c, d, e) ||
this.isValidLandscapeCompanion(c, d, e);
if (a && d) {
return a;
}
}
}
return null;
};
ha.prototype.getCompanionClickTrackingUrls = function() {
var b = this.getAd();
if (b && (b = b.getCompanionAds())) {
b = h.makeIterator(b);
for (var a = b.next(); !a.done; a = b.next()) {
var c = a.value;
a = c.getCompanionClickTrackingURLTemplates();
var d = c.getHeight(), e = c.getWidth();
c = c.getCreativeType();
d = this.isValidPortraitCompanion(c, d, e) ||
this.isValidLandscapeCompanion(c, d, e);
if (0 < a.length && d) {
return a;
}
}
}
return [];
};
ha.prototype.getVideoMediaFiles = function() {
var b = this.getAd(), a = [];
if (b) {
b = h.makeIterator(b.getCreatives());
for (var c = b.next(); !c.done; c = b.next()) {
c = h.makeIterator(c.value.getMediaFiles());
for (var d = c.next(); !d.done; d = c.next()) {
d = d.value;
var e = d.getMIMEType();
e = e && this.isSupportedMIMEType(e);
var f = d.getFileURL();
e && f && a.push(d);
}
}
}
return a;
};
ha.prototype.getDTO = function() {
for (var b = [], a = h.makeIterator(this.get("ads")), c = a.next(); !c.done; c
= a.next()) {
b.push(c.value.getDTO());
}
return {ads:b, parseErrorURLTemplates:this.get("parseErrorURLTemplates"),
additionalTrackingEvents:this.get("additionalTrackingEvents")};
};
ha.prototype.getCompanionCreativeViewTrackingUrls = function() {
var b = this.getAd();
return b ? b.getCompanionCreativeViewTrackingUrls() : [];
};
ha.prototype.isVPAIDCampaign = function() {
var b = this.getAd(), a = 0, c = 0;
if (b) {
b = b.getCreatives();
b = h.makeIterator(b);
for (var d = b.next(); !d.done; d = b.next()) {
d = d.value.getMediaFiles();
d = h.makeIterator(d);
for (var e = d.next(); !e.done; e = d.next()) {
e = e.value, c += 1, "VPAID" === e.getApiFramework() && (a += 1);
}
}
}
return 0 < a && a === c ? !0 : !1;
};
ha.prototype.isValidLandscapeCompanion = function(b, a, c) {
return this.isValidCompanionCreativeType(b) && a < c && 320 <= a && 480 <= c;
};
ha.prototype.isValidPortraitCompanion = function(b, a, c) {
return this.isValidCompanionCreativeType(b) && a > c && 480 <= a && 320 <= c;
};
ha.prototype.isValidCompanionCreativeType = function(b) {
var a = /(jpe?g|gif|png)/gi;
return !!b && a.test(b);
};
ha.prototype.isSupportedMIMEType = function(b) {
b = b.toLowerCase();
return "video/mp4" === b;
};
h.inherits(Ld, z);
Ld.prototype.getType = function() {
return this.get("type");
};
Ld.prototype.getTrackingEvents = function() {
return this.get("trackingEvents");
};
Ld.prototype.addTrackingEvent = function(b, a) {
null == this.get("trackingEvents")[b] && (this.get("trackingEvents")[b] = []);
this.get("trackingEvents")[b].push(a);
};
Ld.prototype.getDTO = function() {
return {type:this.getType(), trackingEvents:this.getTrackingEvents()};
};
h.inherits(Za, Ld);
Za.prototype.setAdParameters = function(b) {
this.set("adParameters", b);
};
Za.prototype.getDuration = function() {
return this.get("duration");
};
Za.prototype.setDuration = function(b) {
this.set("duration", b);
};
Za.prototype.getSkipDelay = function() {
return this.get("skipDelay");
};
Za.prototype.setSkipDelay = function(b) {
this.set("skipDelay", b);
};
Za.prototype.getMediaFiles = function() {
return this.get("mediaFiles");
};
Za.prototype.addMediaFile = function(b) {
this.get("mediaFiles").push(b);
};
Za.prototype.getVideoClickThroughURLTemplate = function() {
return this.get("videoClickThroughURLTemplate");
};
Za.prototype.setVideoClickThroughURLTemplate = function(b) {
this.set("videoClickThroughURLTemplate", b || null);
};
Za.prototype.getVideoClickTrackingURLTemplates = function() {
return this.get("videoClickTrackingURLTemplates");
};
Za.prototype.addVideoClickTrackingURLTemplate = function(b) {
this.get("videoClickTrackingURLTemplates").push(b);
};
Za.prototype.getVideoCustomClickURLTemplates = function() {
return this.get("videoCustomClickURLTemplates");
};
Za.prototype.getAdParameters = function() {
return this.get("adParameters");
};
Za.prototype.getDTO = function() {
for (var b = [], a = h.makeIterator(this.getMediaFiles()), c = a.next(); !
c.done; c = a.next()) {
b.push(c.value.getDTO());
}
return {vastCreative:Ld.prototype.getDTO.call(this),
duration:this.getDuration(), skipDelay:this.getSkipDelay(), mediaFiles:b,
videoClickThroughURLTemplate:this.getVideoClickThroughURLTemplate(),
videoClickTrackingURLTemplates:this.getVideoClickTrackingURLTemplates(),
videoCustomClickURLTemplates:this.getVideoCustomClickURLTemplates(),
adParameters:this.getAdParameters()};
};
h.inherits(ea, z);
ea.prototype.getId = function() {
return this.get("id");
};
ea.prototype.setId = function(b) {
this.set("id", b);
};
ea.prototype.getCreatives = function() {
return this.get("creatives");
};
ea.prototype.getCreative = function() {
return this.getCreatives() && 0 < this.getCreatives().length ?
this.getCreatives()[0] : null;
};
ea.prototype.getAdVerifications = function() {
return this.get("adVerifications");
};
ea.prototype.getAdVerification = function() {
return this.getAdVerifications() && 0 < this.getAdVerifications().length ?
this.getAdVerifications()[0] : null;
};
ea.prototype.addCreative = function(b) {
this.get("creatives").push(b);
};
ea.prototype.getCompanionAds = function() {
return this.get("companionAds");
};
ea.prototype.addCompanionAd = function(b) {
this.get("companionAds").push(b);
};
ea.prototype.getUnparseableCompanionAds = function() {
return this.get("unparseableCompanionAds");
};
ea.prototype.addUnparseableCompanionAd = function(b) {
this.get("unparseableCompanionAds").push(b);
};
ea.prototype.addAdVerifications = function(b) {
this.set("adVerifications", this.get("adVerifications").concat(b));
};
ea.prototype.getErrorURLTemplates = function() {
return this.get("errorURLTemplates");
};
ea.prototype.addErrorURLTemplate = function(b) {
this.get("errorURLTemplates").push(b);
};
ea.prototype.getImpressionURLTemplates = function() {
return this.get("impressionURLTemplates");
};
ea.prototype.addImpressionURLTemplate = function(b) {
this.get("impressionURLTemplates").push(b);
};
ea.prototype.getWrapperURL = function() {
return this.get("wrapperURLs")[0];
};
ea.prototype.getWrapperURLs = function() {
return this.get("wrapperURLs");
};
ea.prototype.addWrapperURL = function(b) {
this.get("wrapperURLs").push(b);
};
ea.prototype.getTrackingEventUrls = function(b) {
var a = this.getCreative();
return a && a.getTrackingEvents() ? a.getTrackingEvents()[b] : null;
};
ea.prototype.getDuration = function() {
var b = this.getCreative();
return b ? b.getDuration() : null;
};
ea.prototype.getVideoClickThroughURLTemplate = function() {
var b = this.getCreative();
return b instanceof Za ? b.getVideoClickThroughURLTemplate() : null;
};
ea.prototype.getVideoClickTrackingURLTemplates = function() {
var b = this.getCreative();
return b instanceof Za ? b.getVideoClickTrackingURLTemplates() : [];
};
ea.prototype.addVideoClickTrackingURLTemplate = function(b) {
var a = this.getCreative();
a instanceof Za && a.addVideoClickTrackingURLTemplate(b);
};
ea.prototype.getDTO = function() {
for (var b = [], a = h.makeIterator(this.get("creatives")), c = a.next(); !
c.done; c = a.next()) {
b.push(c.value.getDTO());
}
a = [];
c = h.makeIterator(this.get("companionAds"));
for (var d = c.next(); !d.done; d = c.next()) {
a.push(d.value.getDTO());
}
return {id:this.getId(), errorURLTemplates:this.getErrorURLTemplates(),
impressionURLTemplates:this.getImpressionURLTemplates(),
wrapperURLs:this.getWrapperURLs(), vastCreatives:b, companionAds:a};
};
ea.prototype.getCompanionCreativeViewTrackingUrls = function() {
return this.getCompanionEventTrackingUrls("creativeView");
};
ea.prototype.getCompanionEventTrackingUrls = function(b) {
var a = [], c = this.getCompanionAds();
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
a = a.concat(d.value.getEventTrackingUrls(b));
}
return a;
};
h.inherits(kb, z);
kb.prototype.setCompanionClickThroughURLTemplate = function(b) {
this.set("companionClickThroughURLTemplate", b);
};
kb.prototype.setStaticResourceURL = function(b) {
this.set("staticResourceURL", b);
};
kb.prototype.setCreativeType = function(b) {
this.set("creativeType", b);
};
kb.prototype.addCompanionClickTrackingURLTemplate = function(b) {
this.getCompanionClickTrackingURLTemplates().push(b);
};
kb.prototype.addTrackingEvent = function(b, a) {
var c = this.get("trackingEvents");
c[b] ? c[b].push(a) : c[b] = [a];
};
kb.prototype.getId = function() {
return this.get("id");
};
kb.prototype.getCreativeType = function() {
return this.get("creativeType");
};
kb.prototype.getType = function() {
return this.get("type");
};
kb.prototype.getStaticResourceURL = function() {
return this.get("staticResourceURL");
};
kb.prototype.getCompanionClickThroughURLTemplate = function() {
return this.get("companionClickThroughURLTemplate");
};
kb.prototype.getCompanionClickTrackingURLTemplates = function() {
return this.get("companionClickTrackingURLTemplates");
};
kb.prototype.getHeight = function() {
return this.get("height");
};
kb.prototype.getWidth = function() {
return this.get("width");
};
kb.prototype.getDTO = function() {
return {id:this.getId(), width:this.getWidth(), height:this.getHeight(),
type:this.getType(), staticResourceURL:this.getStaticResourceURL(),
creativeType:this.getCreativeType(),
companionClickThroughURLTemplate:this.getCompanionClickThroughURLTemplate(),
companionClickTrackingURLTemplates:this.getCompanionClickTrackingURLTemplates()};
};
kb.prototype.getTrackingEvents = function() {
return this.get("trackingEvents") || {};
};
kb.prototype.getEventTrackingUrls = function(b) {
var a = this.getTrackingEvents();
return a ? a[b] || [] : [];
};
h.inherits(Db, z);
Db.prototype.getFileURL = function() {
return this.get("fileURL");
};
Db.prototype.getDeliveryType = function() {
return this.get("deliveryType");
};
Db.prototype.getMIMEType = function() {
return this.get("mimeType");
};
Db.prototype.getCodec = function() {
return this.get("codec");
};
Db.prototype.getBitrate = function() {
return this.get("bitrate");
};
Db.prototype.getMinBitrate = function() {
return this.get("minBitrate");
};
Db.prototype.getMaxBitrate = function() {
return this.get("maxBitrate");
};
Db.prototype.getWidth = function() {
return this.get("width");
};
Db.prototype.getHeight = function() {
return this.get("height");
};
Db.prototype.getApiFramework = function() {
return this.get("apiFramework");
};
Db.prototype.getScalable = function() {
return this.get("scalable");
};
Db.prototype.getMaintainAspectRation = function() {
return this.get("maintainAspectRatio");
};
Db.prototype.getFileSize = function() {
return this.get("fileSize");
};
Db.prototype.getDTO = function() {
return {fileURL:this.getFileURL(), deliveryType:this.getDeliveryType(),
mimeType:this.getMIMEType(), codec:this.getCodec(), bitrate:this.getBitrate(),
minBitrate:this.getMinBitrate(), maxBitrate:this.getMaxBitrate(),
width:this.getWidth(), height:this.getHeight(),
apiFramework:this.getApiFramework(), scalable:this.getScalable(),
maintainAspectRatio:this.getMaintainAspectRation(), fileSize:this.getFileSize()};
};
cc.invalidUrlError = function(b, a) {
return Error("VAST " + b + ' contains invalid url("' + a + '")');
};
cc.formatErrors = function(b) {
return b.map(function(a) {
return a.message;
}).join("\n ");
};
xf.prototype.getErrors = function() {
return this._errors;
};
xf.prototype.validate = function(b) {
var a = this, c = b.getTrackingEvents();
Object.keys(c).map(function(b) {
c[b].map(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("creative
trackingEvents", b));
});
});
};
ee.prototype.getErrors = function() {
return this._errors;
};
ee.prototype.validate = function(b) {
this._errors = this._errors.concat((new xf(b)).getErrors());
this.validateDuration(b);
this.validateVideoClickThroughURLTemplate(b);
this.validateVideoClickTrackingURLTemplates(b);
this.validateVideoCustomClickURLTemplates(b);
};
ee.prototype.validateDuration = function(b) {
-1 === b.getDuration() && this._errors.push(Error("VAST linear creative is
missing valid duration"));
};
ee.prototype.validateVideoClickThroughURLTemplate = function(b) {
(b = b.getVideoClickThroughURLTemplate()) && !u.isValidProtocol(b) &&
this._errors.push(cc.invalidUrlError("linear creative
videoClickThroughURLTemplate", b));
};
ee.prototype.validateVideoClickTrackingURLTemplates = function(b) {
var a = this;
b.getVideoClickTrackingURLTemplates().map(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("linear creative
videoClickTrackingURLTemplates", b));
});
};
ee.prototype.validateVideoCustomClickURLTemplates = function(b) {
var a = this;
b.getVideoCustomClickURLTemplates().map(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("linear creative
videoCustomClickURLTemplates", b));
});
};
dd.prototype.getErrors = function() {
return this._errors;
};
dd.prototype.validate = function(b) {
this.validateStaticResourceUrl(b);
this.validateCreativeType(b);
this.validateCompanionClickThroughURLTemplate(b);
this.validateCompanionClickTrackingURLTemplates(b);
this.validateTrackingEvents(b);
};
dd.prototype.validateStaticResourceUrl = function(b) {
var a = b.getId();
b = b.getStaticResourceURL();
null === b ? this._errors.push(Error("VAST Companion ad(" + a + ") is missing
required StaticResource Element")) : u.isValidProtocol(b) ||
this._errors.push(cc.invalidUrlError("companion ad(" + a + ") staticResourceUrl",
b));
};
dd.prototype.validateCreativeType = function(b) {
var a = b.getId();
b = b.getCreativeType();
null === b ? this._errors.push(Error("VAST Companion ad(" + a + ')
"StaticResource" is missing required "creativeType" attribute')) : -1 ===
dd._supportedCreativeTypes.indexOf(b.toLowerCase()) &&
this._errors.push(Error("VAST Companion ad(" + a + ') "StaticResource" attribute
"creativeType=' + b + '" is not supported'));
};
dd.prototype.validateCompanionClickThroughURLTemplate = function(b) {
var a = b.getId();
b = b.getCompanionClickThroughURLTemplate();
null === b ? this._errors.push(Error("VAST Companion ad(" + a + ") is missing
required CompanionClickThrough Element")) : u.isValidProtocol(b) ||
this._errors.push(cc.invalidUrlError("companion ad(" + a + ")
companionClickThroughURLTemplate", b));
};
dd.prototype.validateCompanionClickTrackingURLTemplates = function(b) {
var a = b.getId();
b = b.getCompanionClickTrackingURLTemplates();
b = h.makeIterator(b);
for (var c = b.next(); !c.done; c = b.next()) {
c = c.value, u.isValidProtocol(c) ||
this._errors.push(cc.invalidUrlError("companion ad(" + a + ")
companionClickTrackingURLTemplates", c));
}
};
dd.prototype.validateTrackingEvents = function(b) {
var a = this, c = b.getTrackingEvents();
Object.keys(c).map(function(b) {
c[b].map(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("companion ad
trackingEvents", b));
});
});
};
dd._supportedCreativeTypes = ["image/jpeg", "image/jpg", "image/png",
"image/gif"];
Kd.prototype.getErrors = function() {
return this._errors;
};
Kd.prototype.validate = function(b) {
this.validateCreatives(b);
this.validateCompanionAds(b);
this.validateErrorURLTemplates(b);
this.validateImpressionURLTemplates(b);
this.validateWrapperURLs(b);
};
Kd.prototype.validateCreatives = function(b) {
var a = this;
b.getCreatives().forEach(function(b) {
a._errors = b instanceof Za ? a._errors.concat((new ee(b)).getErrors()) :
a._errors.concat((new xf(b)).getErrors());
});
};
Kd.prototype.validateCompanionAds = function(b) {
var a = this;
b.getCompanionAds().forEach(function(b) {
a._errors = a._errors.concat((new dd(b)).getErrors());
});
};
Kd.prototype.validateErrorURLTemplates = function(b) {
var a = this;
b.getErrorURLTemplates().forEach(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("VastAd
errorURLTemplates", b));
});
};
Kd.prototype.validateImpressionURLTemplates = function(b) {
var a = this;
b.getImpressionURLTemplates().forEach(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("VastAd
impressionURLTemplates", b));
});
};
Kd.prototype.validateWrapperURLs = function(b) {
var a = this;
b.getWrapperURLs().forEach(function(b) {
u.isValidProtocol(b) || a._errors.push(cc.invalidUrlError("VastAd
wrapperURLs", b));
});
};
h.inherits(de, z);
de.prototype.getResourceUrl = function() {
return this.get("resourceUrl");
};
de.prototype.getApiFramework = function() {
return this.get("apiFramework");
};
de.prototype.getBrowserOptional = function() {
return this.get("browserOptional");
};
de.prototype.getType = function() {
return this.get("type");
};
de.prototype.getDTO = function() {
return {resourceUrl:this.getResourceUrl(), apiFramework:this.getApiFramework(),
browserOptional:this.getBrowserOptional(), type:this.getType()};
};
var eh;
(function(b) {
b[b.VERIFICATION_RESOURCE_REJECTED = 1] = "VERIFICATION_RESOURCE_REJECTED";
b[b.VERIFICATION_NOT_SUPPORTED = 2] = "VERIFICATION_NOT_SUPPORTED";
b[b.ERROR_RESOURCE_LOADING = 3] = "ERROR_RESOURCE_LOADING";
})(eh || (eh = {}));
h.inherits(rd, z);
rd.prototype.getVerificationVendor = function() {
return this.get("verificationVendor");
};
rd.prototype.getVerficationResources = function() {
return this.get("verificationResources");
};
rd.prototype.getVerificationTrackingEvent = function() {
return this.get("verificationTrackingEvent");
};
rd.prototype.getVerificationParameters = function() {
return this.get("verificationParameters");
};
rd.prototype.getFormattedVerificationTrackingEvent = function(b) {
var a = this.getVerificationTrackingEvent();
a && (a = a.replace("%5BREASON%5D", b.toString()));
return a;
};
rd.prototype.setVerificationTrackingEvent = function(b) {
this.set("verificationTrackingEvent", b);
};
rd.prototype.getDTO = function() {
return {verificationVendor:this.getVerificationVendor(),
verificationResources:this.getVerficationResources(),
verificationTrackingEvent:this.getVerificationTrackingEvent(),
verificationParameters:this.getVerificationParameters()};
};
var fa;
(function(b) {
b.ERROR = "Error";
b.AD = "Ad";
b.WRAPPER = "Wrapper";
b.INLINE = "InLine";
b.VAST_AD_TAG_URI = "VASTAdTagURI";
b.IMPRESSION = "Impression";
b.LINEAR = "Linear";
b.COMPANION = "Companion";
b.DURATION = "Duration";
b.CLICK_THROUGH = "ClickThrough";
b.CLICK_TRACKING = "ClickTracking";
b.TRACKING = "Tracking";
b.MEDIA_FILE = "MediaFile";
b.AD_PARAMETERS = "AdParameters";
b.STATIC_RESOURCE = "StaticResource";
b.COMPANION_CLICK_THROUGH = "CompanionClickThrough";
b.COMPANION_CLICK_TRACKING = "CompanionClickTracking";
b.PARSE_ERROR = "parsererror";
b.VAST = "VAST";
b.EXTENSION = "Extension";
b.VERIFICATION = "Verification";
b.AD_VERIFICATIONS = "AdVerifications";
b.JS_RESOURCE = "JavaScriptResource";
b.EX_RESOURCE = "ExecutableResource";
b.VERIFICATION_PARAMETERS = "VerificationParameters";
})(fa || (fa = {}));
var Da;
(function(b) {
b.ID = "id";
b.SKIP_OFFSET = "skipoffset";
b.EVENT = "event";
b.DELIVERY = "delivery";
b.CODEC = "codec";
b.TYPE = "type";
b.BITRATE = "bitrate";
b.MIN_BITRATE = "minBitrate";
b.MAX_BITRATE = "maxBitrate";
b.WIDTH = "width";
b.HEIGHT = "height";
b.API_FRAMEWORK = "apiFramework";
b.CREATIVE_TYPE = "creativeType";
b.BROWSER_OPTIONAL = "browserOptional";
b.VENDOR = "vendor";
})(Da || (Da = {}));
var Dg;
(Dg || (Dg = {})).VERIFICATION_NOT_EXECUTED = "verificationNotExecuted";
var Eg;
(Eg || (Eg = {})).AD_VERIFICATIONS = "AdVerifications";
Ja.prototype.setMaxWrapperDepth = function(b) {
this._maxWrapperDepth = b;
};
Ja.prototype.parseVast = function(b, a) {
var c = this;
a = void 0 === a ? "https:" : a;
if (!b) {
throw Error("VAST data is missing");
}
b = this._domParser.parseFromString(b, "text/xml");
var d = [], e = [], f = b.getElementsByTagName(fa.PARSE_ERROR);
if (0 < f.length) {
b = [];
f = h.makeIterator(f);
for (var g = f.next(); !g.done; g = f.next()) {
g = g.value, g.textContent && b.push(g.textContent);
}
throw Error("VAST xml was not parseable:\n " + b.join("\n "));
}
if (!b || !b.documentElement || b.documentElement.nodeName !== fa.VAST) {
throw Error("VAST xml data is missing");
}
b = b.documentElement;
this.getChildrenNodesWithName(b, fa.ERROR).forEach(function(a) {
e.push(c.parseNodeText(a));
});
var l = [];
this.getNodesWithName(b, fa.AD).forEach(function(b) {
if (0 >= d.length) {
b = c.parseAdElement(b, a);
var e = (new Kd(b)).getErrors();
0 < e.length ? l = l.concat(e) : d.push(b);
}
});
if (0 < l.length) {
throw this.formatErrorMessage(l);
}
if (0 === d.length) {
throw Error("VAST Ad tag is missing");
}
return new ha(d, e);
};
Ja.prototype.retrieveVast = function(b, a, c, d, e, f) {
var g = this;
e = void 0 === e ? 0 : e;
0 === e && (this._rootWrapperVast = b);
try {
var l = this.parseVast(b, void 0 === f ? "https:" : f);
} catch (W) {
throw new dc(W, 0 < e ? {vast:b, wrapperDepth:e,
rootWrapperVast:this._rootWrapperVast} : {vast:b, wrapperDepth:e});
}
this.applyParentURLs(l, d);
b = l.getWrapperURL();
if (!b) {
return Promise.resolve(l);
}
if (e >= this._maxWrapperDepth) {
throw Error(Md.errorMap[Q.WRAPPER_DEPTH_LIMIT_REACHED]);
}
a.Sdk.logDebug("Unity Ads is requesting VAST ad unit from " + b);
var n = u.getProtocol(b);
return c.get(b, [], {retries:2, retryDelay:10000, followRedirects:!0,
retryWithConnectionEvents:!1}).then(function(b) {
return g.retrieveVast(b.response, a, c, l, e + 1, n);
});
};
Ja.prototype.getVideoSizeInBytes = function(b, a) {
return b * a * 1000 / 8;
};
Ja.prototype.formatErrorMessage = function(b) {
return Error("VAST parse encountered these errors while parsing:\n "
+ cc.formatErrors(b) + "\n ");
};
Ja.prototype.getChildrenNodesWithName = function(b, a) {
var c = [];
b = h.makeIterator(b.childNodes);
for (var d = b.next(); !d.done; d = b.next()) {
d = d.value, d.nodeName === a && c.push(d);
}
return c;
};
Ja.prototype.getNodesWithName = function(b, a) {
b = b.querySelectorAll(a);
return Array.prototype.slice.call(b);
};
Ja.prototype.getFirstNodeWithName = function(b, a) {
return b.querySelector(a);
};
Ja.prototype.applyParentURLs = function(b, a) {
if (a) {
var c = a.getAd(), d = b.getAd();
if (c && d) {
for (var e = h.makeIterator(c.getErrorURLTemplates()), f = e.next(); !
f.done; f = e.next()) {
d.addErrorURLTemplate(f.value);
}
e = h.makeIterator(c.getImpressionURLTemplates());
for (f = e.next(); !f.done; f = e.next()) {
d.addImpressionURLTemplate(f.value);
}
c = h.makeIterator(c.getVideoClickTrackingURLTemplates());
for (e = c.next(); !e.done; e = c.next()) {
d.addVideoClickTrackingURLTemplate(e.value);
}
d = h.makeIterator("creativeView start firstQuartile midpoint thirdQuartile
complete mute unmute".split(" "));
for (c = d.next(); !c.done; c = d.next()) {
for (c = c.value, e = h.makeIterator(a.getTrackingEventUrls(c)), f =
e.next(); !f.done; f = e.next()) {
b.addTrackingEventUrl(c, f.value);
}
}
}
}
};
Ja.prototype.parseNodeText = function(b) {
return b.textContent ? b.textContent.trim() : "";
};
Ja.prototype.parseAdElement = function(b, a) {
var c = this.getFirstNodeWithName(b, fa.INLINE) || this.getFirstNodeWithName(b,
fa.WRAPPER);
return c ? (a = this.parseAdContent(c, a), a.setId(b.getAttribute(Da.ID)), a) :
new ea;
};
Ja.prototype.parseAdContent = function(b, a) {
var c = this, d = new ea;
this.getNodesWithName(b, fa.VAST_AD_TAG_URI).forEach(function(b) {
(b = c.parseVastUrl(c.parseNodeText(b), a)) && d.addWrapperURL(b);
});
this.getNodesWithName(b, fa.ERROR).forEach(function(b) {
(b = c.parseVastUrl(c.parseNodeText(b), a)) && d.addErrorURLTemplate(b);
});
this.getNodesWithName(b, fa.IMPRESSION).forEach(function(b) {
(b = c.parseVastUrl(c.parseNodeText(b), a)) && d.addImpressionURLTemplate(b);
});
this.getNodesWithName(b, fa.LINEAR).forEach(function(b) {
b = c.parseCreativeLinearElement(b, a);
d.addCreative(b);
});
this.getNodesWithName(b, fa.COMPANION).forEach(function(b) {
c.getFirstNodeWithName(b, fa.STATIC_RESOURCE) ? (b =
c.parseCreativeStaticResourceCompanionAdElement(b, a), d.addCompanionAd(b)) :
d.addUnparseableCompanionAd(b.outerHTML);
});
this.getChildrenNodesWithName(b, fa.AD_VERIFICATIONS).forEach(function(b) {
b = c.parseAdVerification(b, a);
d.addAdVerifications(b);
});
this.getNodesWithName(b, fa.EXTENSION).forEach(function(b) {
var e = b.getAttribute(Da.TYPE);
e && e === Eg.AD_VERIFICATIONS && (b = c.parseAdVerification(b, a),
d.addAdVerifications(b));
});
return d;
};
Ja.prototype.parseAdVerification = function(b, a) {
var c = this, d = [];
this.getNodesWithName(b, fa.VERIFICATION).forEach(function(b) {
var e = [], g = b.getAttribute(Da.VENDOR) || "";
c.getNodesWithName(b, fa.JS_RESOURCE).forEach(function(b) {
var d = c.parseVastUrl(c.parseNodeText(b), a), f =
b.getAttribute(Da.API_FRAMEWORK);
b = "false" === b.getAttribute(Da.BROWSER_OPTIONAL) ? !1 : !0;
d && f && (d = new de(d, f, b), e.push(d));
});
var l = c.getFirstNodeWithName(b, fa.VERIFICATION_PARAMETERS), n;
l && (n = c.parseNodeText(l));
var W = new rd(g, e, n);
c.getNodesWithName(b, fa.TRACKING).forEach(function(b) {
var d = c.parseVastUrl(c.parseNodeText(b), a);
(b = b.getAttribute(Da.EVENT)) && b === Dg.VERIFICATION_NOT_EXECUTED && d
&& W.setVerificationTrackingEvent(d);
});
d.push(W);
});
return d;
};
Ja.prototype.getIntAttribute = function(b, a) {
b = b.getAttribute(a);
return parseInt(b || "0", 10);
};
Ja.prototype.parseCreativeLinearElement = function(b, a) {
var c = this, d = new Za, e = this.getFirstNodeWithName(b, fa.DURATION);
e && (e = this.parseNodeText(e), d.setDuration(this.parseDuration(e)));
var f = d.getDuration();
(e = b.getAttribute(Da.SKIP_OFFSET)) ? "%" === e.charAt(e.length - 1) ? (e =
parseInt(e, 10), d.setSkipDelay(d.getDuration() * (e / 100))) :
d.setSkipDelay(this.parseDuration(e)) : d.setSkipDelay(null);
(e = this.getFirstNodeWithName(b, fa.CLICK_THROUGH)) && (e =
this.parseVastUrl(this.parseNodeText(e), a)) &&
d.setVideoClickThroughURLTemplate(e);
this.getNodesWithName(b, fa.CLICK_TRACKING).forEach(function(b) {
(b = c.parseVastUrl(c.parseNodeText(b), a)) &&
d.addVideoClickTrackingURLTemplate(b);
});
this.getNodesWithName(b, fa.TRACKING).forEach(function(b) {
var e = c.parseVastUrl(c.parseNodeText(b), a);
(b = b.getAttribute(Da.EVENT)) && e && d.addTrackingEvent(b, e);
});
this.getNodesWithName(b, fa.MEDIA_FILE).forEach(function(b) {
var e = c.getIntAttribute(b, Da.BITRATE), g =
c.parseVastUrl(c.parseNodeText(b), a);
g && (b = new Db(g, b.getAttribute(Da.DELIVERY), b.getAttribute(Da.CODEC),
b.getAttribute(Da.TYPE), e, c.getIntAttribute(b, Da.MIN_BITRATE),
c.getIntAttribute(b, Da.MAX_BITRATE), c.getIntAttribute(b, Da.WIDTH),
c.getIntAttribute(b, Da.HEIGHT), b.getAttribute(Da.API_FRAMEWORK),
c.getVideoSizeInBytes(f, e)), d.addMediaFile(b));
});
if (b = this.getFirstNodeWithName(b, fa.AD_PARAMETERS)) {
b = this.parseNodeText(b), d.setAdParameters(b);
}
return d;
};
Ja.prototype.parseCreativeStaticResourceCompanionAdElement = function(b, a) {
var c = this, d = b.getAttribute(Da.ID), e = this.getIntAttribute(b,
Da.HEIGHT), f = this.getIntAttribute(b, Da.WIDTH), g = new kb(d, e, f);
this.getNodesWithName(b, fa.TRACKING).forEach(function(b) {
var d = c.parseVastUrl(c.parseNodeText(b), a);
b = b.getAttribute(Da.EVENT);
d && b && g.addTrackingEvent(b, d);
});
if (d = this.getFirstNodeWithName(b, fa.STATIC_RESOURCE)) {
e = d.getAttribute(Da.CREATIVE_TYPE) || d.getAttribute(Da.TYPE),
g.setCreativeType(e), (d = this.parseVastUrl(this.parseNodeText(d), a)) &&
g.setStaticResourceURL(d);
}
(d = this.getFirstNodeWithName(b, fa.COMPANION_CLICK_THROUGH)) && (d =
this.parseVastUrl(this.parseNodeText(d), a)) &&
g.setCompanionClickThroughURLTemplate(d);
this.getNodesWithName(b, fa.COMPANION_CLICK_TRACKING).forEach(function(b) {
(b = c.parseVastUrl(c.parseNodeText(b), a)) &&
g.addCompanionClickTrackingURLTemplate(b);
});
return g;
};
Ja.prototype.parseVastUrl = function(b, a) {
u.isRelativeProtocol(b) && (b = "" + a + b);
b = u.encodeUrlWithQueryParams(u.decodeProtocol(b));
if (u.isValidUrlCharacters(b) && u.isValidProtocol(b)) {
return b;
}
};
Ja.prototype.parseDuration = function(b) {
if (null == b) {
return -1;
}
var a = b.split(":");
if (3 !== a.length) {
return -1;
}
var c = a[2].split(".");
b = parseInt(c[0], 10);
2 === c.length && (b += parseFloat("0." + c[1]));
c = 60 * parseInt(a[1], 10);
a = 3600 * parseInt(a[0], 10);
return isNaN(a) || isNaN(c) || isNaN(b) || 3600 < c || 60 < b ? -1 : a + c + b;
};
Ja.DEFAULT_MAX_WRAPPER_DEPTH = 8;
var Ff;
(function(b) {
b.TIMESTAMP = "ts";
b.VIDEO_ID = "video_id";
})(Ff || (Ff = {}));
h.inherits(Cb, Yb);
Cb.prototype.parse = function(b, a) {
var c = this, d = b.getContent(), e = b.getCacheTTL();
return this.getVideoFromMarkup(d, a).catch(function(b) {
c._core.Sdk.logError("Unable to parse video from markup due to: " +
b.message);
if (c.isHttpResponseError(b)) {
throw c.reportHttpFailure(b, a), b;
}
return null;
}).then(function(f) {
f && c.updateFileID(f);
var g = {id:c.getProgrammaticCampaignId(), willExpireAt:e ? Date.now() + 1000
* e : void 0, contentType:Cb.ContentType, adType:b.getAdType() || void 0,
correlationId:b.getCorrelationId() || void 0, creativeId:b.getCreativeId() || void
0, seatId:b.getSeatId() || void 0, meta:void 0, session:a, mediaId:b.getMediaId(),
trackingUrls:b.getTrackingUrls() || {}, backupCampaign:!1};
f = Object.assign({}, g, {dynamicMarkup:d, useWebViewUserAgentForTracking:!0,
video:f});
return Promise.resolve(new hd(f));
});
};
Cb.prototype.getVideoFromMarkup = function(b, a) {
var c = this;
try {
var d = (new DOMParser).parseFromString(b, "text/html");
if (!d) {
return Promise.reject(Error("Markup is malformed"));
}
var e = d.querySelector("body script");
if (!e) {
return Promise.reject(Error("Could not find script tag within body"));
}
this._mediaFileUrl = this.getVideoFromScriptSource(e.textContent);
return this.getRealVideoURL(this._mediaFileUrl).then(function(b) {
return new Promise(function(d, e) {
var f = u.getQueryParameter(b, "mime"), g = null;
f && (g = f.split("/")[1]);
c._platform === p.ANDROID ? d(new Od({mediaFileURL:c._mediaFileUrl,
video:new pa(b, a), extension:null})) : g && c._platform === p.IOS ? d(new
Od({mediaFileURL:c._mediaFileUrl, video:new pa(b, a), extension:g})) : e(Error("iOS
precaching to file not supported for HTML5 video player"));
});
});
} catch (f) {
return Promise.reject(f);
}
};
Cb.prototype.getRealVideoURL = function(b) {
return this._requestManager.followRedirectChain(b);
};
Cb.prototype.getVideoFromScriptSource = function(b) {
if ((b = /'vast_xml':[\s]*'([^']*)/.exec(b)) && 2 === b.length && (b =
this.sanitizeXML(b[1]), b = this.parseVAST(b))) {
return b.getVideoUrl();
}
throw Error("Unable to match VAST XML");
};
Cb.prototype.parseVAST = function(b) {
return (new Ja).parseVast(b);
};
Cb.prototype.sanitizeXML = function(b) {
b = this.replaceHexChars(b);
return b.replace(/\\n/g, "");
};
Cb.prototype.replaceHexChars = function(b) {
return b.replace(/\\x([0-9A-Fa-f]{2})/g, function(a, b) {
return String.fromCharCode(parseInt(b, 16));
});
};
Cb.prototype.updateFileID = function(b) {
var a = this.getVideoID(b.getMediaFileURL()), c =
b.getVideo().getOriginalUrl();
b = b.getExtension();
a && c && (b ? wa.setFileID(c, a + "." + b) : wa.setFileID(c, a));
};
Cb.prototype.getVideoID = function(b) {
return (b = b.match(/video_id=([^&]*)/)) && 2 === b.length ? b[1] : null;
};
Cb.prototype.isHttpResponseError = function(b) {
return !!(b instanceof ed && b.nativeResponse);
};
Cb.prototype.reportHttpFailure = function(b, a) {
this._pts.reportError(Ef.AdmobTestHttpError, "AdMob", this.seatID);
var c = Math.floor(Date.now() / 1000), d =
u.getQueryParameter(this._mediaFileUrl, Ff.TIMESTAMP);
b.nativeResponse && ca.trigger("admob_http_parse_error",
{videoId:u.getQueryParameter(this._mediaFileUrl, Ff.VIDEO_ID), urlTimestamp:d,
adRequestTimestamp:Math.floor(m.getAdRequestTimestamp() / 1000),
failureTimestamp:c, tsDifference:d ? c - +d : void 0,
initialVideoUrl:this._mediaFileUrl, responseCode:b.nativeResponse.responseCode,
redirectedUrl:b.nativeResponse.url, headers:b.nativeResponse.headers,
response:b.nativeResponse.response}, a);
};
Cb.ContentType = "programmatic/admob-video";
re.prototype.getContentTypeHandlerMap = function() {
return this._contentTypeHandlerMap;
};
Wg.trigger = function(b, a) {
if (!a || "object" !== typeof a || Array.isArray(a)) {
a = {value:a};
}
return H.sendEvent("ads.sdk2.analytics", eb.ANONYMOUS, a);
};
E.setup = function(b) {
var a = this, c = b.get("test.clearTestMetaData", !1), d = b.getKeys("test");
return Promise.all([c, d]).then(function(c) {
var d = h.makeIterator(c), e = h.makeIterator(d.next().value);
c = e.next().value;
e = e.next().value;
d = d.next().value;
var l = !1;
c && "boolean" === typeof e && (l = e);
var n = [];
d.forEach(function(c) {
n.push(b.get("test." + c, l).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
b && (a._testEnvironment[c] = d);
}));
});
return Promise.all(n);
});
};
E.get = function(b) {
return E._testEnvironment[b];
};
E._testEnvironment = {};
var Qc;
(function(b) {
b[b.V4 = 4] = "V4";
b[b.V5 = 5] = "V5";
})(Qc || (Qc = {}));
w.getHeader = function(b, a) {
b = h.makeIterator(b);
for (var c = b.next(); !c.done; c = b.next()) {
var d = c.value;
c = d[0];
d = d[1];
if (c && c.match(new RegExp(a, "i"))) {
return d;
}
}
return null;
};
w.is2xxSuccessful = function(b) {
return 200 <= b && 300 > b;
};
w.is3xxRedirect = function(b) {
return 300 <= b && 400 > b;
};
w.getDefaultRequestOptions = function() {
return {retries:0, retryDelay:0, followRedirects:!1,
retryWithConnectionEvents:!1};
};
w.setAuctionProtocol = function(b, a, c, d) {
w._auctionProtocol || (a = E.get("forceAuctionProtocol"), "V5" === a ?
w._auctionProtocol = Qc.V5 : "V4" === a ? w._auctionProtocol = Qc.V4 :
E.get("creativeUrl") ? w._auctionProtocol = Qc.V4 : b.getTestMode() ?
w._auctionProtocol = Qc.V4 : O.isAuctionV4Game(d.getGameId()) && !
Cg.isValid(b.getAbGroup()) ? w._auctionProtocol = Qc.V4 : w._auctionProtocol =
Qc.V5);
};
w.setTestAuctionProtocol = function(b) {
w._auctionProtocol = b;
};
w.getAuctionProtocol = function() {
return w._auctionProtocol ? w._auctionProtocol : Qc.V4;
};
w.setAuthorizationHeaderForHost = function(b, a) {
w._authorizations.push({host:new RegExp(b), authorizationHeader:a.trim()});
};
w.clearAllAuthorization = function() {
w._authorizations = [];
};
w.applyAuthorizationHeader = function(b, a) {
a = void 0 === a ? [] : a;
if (0 === this._authorizations.length) {
return a;
}
for (var c = "", d = h.makeIterator(w._authorizations), e = d.next(); !e.done;
e = d.next()) {
if (e = e.value, e.host.test(b)) {
c = e.authorizationHeader;
break;
}
}
return 0 === c.length ? a : [].concat(h.arrayFromIterable(a),
[["Authorization", c]]);
};
w.prototype.get = function(b, a, c) {
a = void 0 === a ? [] : a;
if ("file://" === b.substring(0, 7)) {
return F.trigger("rejected_get_file_url", {url:b}), Promise.reject(1);
}
var d = w._callbackId++, e = this.registerCallback(d);
this.invokeRequest(d, {method:0, url:b, headers:w.applyAuthorizationHeader(b,
a), retryCount:0, options:this.getOptions(c)});
return e;
};
w.prototype.post = function(b, a, c, d) {
a = void 0 === a ? "" : a;
c = void 0 === c ? [] : c;
if ("file://" === b.substring(0, 7)) {
return F.trigger("rejected_post_file_url", {url:b}), Promise.reject(1);
}
c.push(["Content-Type", "application/json"]);
var e = w._callbackId++, f = this.registerCallback(e);
this.invokeRequest(e, {method:1, url:b, data:a,
headers:w.applyAuthorizationHeader(b, c), retryCount:0,
options:this.getOptions(d)});
return f;
};
w.prototype.head = function(b, a, c) {
a = void 0 === a ? [] : a;
if ("file://" === b.substring(0, 7)) {
return F.trigger("rejected_head_file_url", {url:b}), Promise.reject(1);
}
this._platform === p.ANDROID && 16 > this._deviceInfo.getApiLevel() &&
a.push(["Accept-Encoding", ""]);
var d = w._callbackId++, e = this.registerCallback(d);
this.invokeRequest(d, {method:2, url:b, headers:a, retryCount:0,
options:this.getOptions(c)});
return e;
};
w.prototype.followRedirectChain = function(b, a, c) {
var d = this, e = 0, f = [];
(void 0 === a ? 0 : a) && "undefined" !== typeof navigator &&
navigator.userAgent && f.push(["User-Agent", navigator.userAgent]);
return new Promise(function(a, l) {
function g(b) {
e++;
b = b.trim();
if (e >= w._redirectLimit) {
l(Error("redirect limit reached"));
} else {
if (-1 === b.indexOf("http")) {
a(b);
} else {
if (c) {
for (var n = h.makeIterator(c), W = n.next(); !W.done; W = n.next())
{
if (-1 !== b.indexOf(W.value)) {
a(b);
return;
}
}
}
d.head(b, f).then(function(c) {
if (w.is3xxRedirect(c.responseCode)) {
var d = w.getHeader(c.headers, "location");
d ? g(d) : l(Error(c.responseCode + ' response did not have a
"Location" header'));
} else {
w.is2xxSuccessful(c.responseCode) ? a(b) : l(Error("Request to " +
b + " failed with status " + c.responseCode));
}
}).catch(l);
}
}
}
g(b);
});
};
w.prototype.getOptions = function(b) {
return b ? b : w.getDefaultRequestOptions();
};
w.prototype.registerCallback = function(b) {
return new Promise(function(a, c) {
w._callbacks[b] = new rg(a, c);
});
};
w.prototype.invokeRequest = function(b, a) {
var c = w._connectTimeout, d = w._readTimeout;
a.options.timeout && (d = c = a.options.timeout);
w._requests[b] = a;
switch(a.method) {
case 0:
return this._core.Request.get(b.toString(), a.url, a.headers, c, d);
case 1:
return this._core.Request.post(b.toString(), a.url, a.data || "",
a.headers, c, d);
case 2:
return this._core.Request.head(b.toString(), a.url, a.headers, c, d);
default:
throw Error('Unsupported request method "' + a.method + '"');
}
};
w.prototype.finishRequest = function(b, a, c) {
var d = w._callbacks[b];
d && (0 === a ? d.resolve(c) : d.reject(c), delete w._callbacks[b], delete
w._requests[b]);
};
w.prototype.handleFailedRequest = function(b, a, c, d) {
var e = this;
a.retryCount < a.options.retries ? (a.retryCount++, setTimeout(function() {
e.invokeRequest(b, a);
}, a.options.retryDelay)) : a.options.retryWithConnectionEvents ||
this.finishRequest(b, 1, new ed(c, a, d));
};
w.prototype.onRequestComplete = function(b, a, c, d, e) {
b = parseInt(b, 10);
a = {url:a, response:c, responseCode:d, headers:e};
if (c = w._requests[b]) {
w.AllowedResponseCodes.exec(d.toString()) ? this.finishRequest(b, 0, a) :
w.RedirectResponseCodes.exec(d.toString()) ? c.options.followRedirects ? (d =
w.getHeader(e, "location")) && this.followRedirects(d) ? (c.url = d,
this.invokeRequest(b, c)) : this.finishRequest(b, 0, a) : this.finishRequest(b, 0,
a) : w.ErrorResponseCodes.exec(d.toString()) ? this.finishRequest(b, 1, new
ed("FAILED_WITH_ERROR_RESPONSE", c, a)) : this.finishRequest(b, 1, new
ed("FAILED_WITH_UNKNOWN_RESPONSE_CODE", c, a));
}
};
w.prototype.followRedirects = function(b) {
return !b.match(/^https?/i) || b.match(/^https:\/\/itunes\.apple\.com/i) ||
b.match(/\.apk$/i) ? !1 : !0;
};
w.prototype.onRequestFailed = function(b, a, c) {
b = parseInt(b, 10);
(a = w._requests[b]) && this.handleFailedRequest(b, a, c);
};
w.prototype.onNetworkConnected = function() {
for (var b in w._requests) {
if (w._requests.hasOwnProperty(b)) {
var a = w._requests[b];
a.options.retryWithConnectionEvents && a.options.retries === a.retryCount
&& this.invokeRequest(parseInt(b, 10), a);
}
}
};
w.AllowedResponseCodes = /2[0-9]{2}/;
w.RedirectResponseCodes = /30[0-8]/;
w.ErrorResponseCodes = /[4-5][0-9]{2}/;
w._connectTimeout = 30000;
w._readTimeout = 30000;
w._redirectLimit = 10;
w._callbackId = 1;
w._callbacks = {};
w._requests = {};
w._authorizations = [];
var ef;
(function(b) {
b[b.POST = 0] = "POST";
b[b.GET = 1] = "GET";
})(ef || (ef = {}));
var ff;
(function(b) {
b.ZONE = "%ZONE%";
b.SDK_VERSION = "%SDK_VERSION%";
b.GAMER_SID = "%GAMER_SID%";
})(ff || (ff = {}));
cd.prototype.replaceTemplateValuesAndEncodeUrls = function(b) {
var a = this;
return b.map(function(b) {
return a.replaceTemplateValuesAndEncodeUrl(b);
});
};
cd.prototype.clickAttributionEvent = function(b, a, c) {
var d = [];
"undefined" !== typeof navigator && navigator.userAgent && c && d.push(["User-
Agent", navigator.userAgent]);
return this._request.get(b, d, {retries:0, retryDelay:0, followRedirects:a,
retryWithConnectionEvents:!1});
};
cd.prototype.sendWithPost = function(b, a, c, d, e, f) {
return this.sendEvent(ef.POST, b, a, c, d, e, f);
};
cd.prototype.sendWithGet = function(b, a, c, d, e) {
return this.sendEvent(ef.GET, b, a, c, void 0, d, e);
};
cd.prototype.sendEvent = function(b, a, c, d, e, f, g) {
g = g || [];
w.getHeader(g, "User-Agent") || "undefined" !== typeof navigator &&
navigator.userAgent && !0 === f && g.push(["User-Agent", navigator.userAgent]);
d = this.replaceTemplateValuesAndEncodeUrl(d);
this._core.Sdk.logDebug("Unity Ads third party event: sending " + a + " event
to " + d + " with headers " + g + " (session " + c + ")");
f = {retries:0, retryDelay:0, followRedirects:!0, retryWithConnectionEvents:!
1};
switch(b) {
case ef.POST:
b = this._request.post(d, e, g, f);
break;
default:
b = this._request.get(d, g, f);
}
return b.catch(function(b) {
var e = u.parse(d), f = w.getAuctionProtocol();
e = {request:b.nativeRequest, event:a, sessionId:c, url:d, response:b,
host:e.host, protocol:e.protocol, auctionProtocol:f};
b instanceof ed && (b = new dc(Error(b.message), e));
O.shouldSampleAtTenPercent() && (-1 !== a.toLowerCase().indexOf("start") ||
-1 !== a.toLowerCase().indexOf("impression")) &&
F.trigger("third_party_sendevent_failed", e);
return Wg.trigger("third_party_event_failed", b);
});
};
cd.prototype.setTemplateValues = function(b) {
this._templateValues = b;
};
cd.prototype.setTemplateValue = function(b, a) {
this._templateValues[b] = a;
};
cd.prototype.sendPerformanceTrackingEvent = function(b, a) {
if (b instanceof D) {
var c = b.getTrackingUrls();
if (c && c[a] && 0 !== Object.keys(c[a]).length) {
c = h.makeIterator(c[a]);
for (var d = c.next(); !d.done; d = c.next()) {
(d = d.value) ? this.sendWithGet(a, b.getSession().getId(), d) :
ca.trigger("invalid_tracking_url", {eventUrl:d, event:a}, b.getSession());
}
}
}
return Promise.resolve();
};
cd.prototype.replaceTemplateValuesAndEncodeUrl = function(b) {
if (b) {
for (var a in this._templateValues) {
this._templateValues.hasOwnProperty(a) && (b = b.replace(a,
this._templateValues[a]));
}
}
return u.encode(b);
};
Lg.prototype.create = function(b) {
return new cd(this._core, this._requestManager, b);
};
qd.getSessionStorageKey = function(b) {
return "session." + b;
};
qd.getSessionStorageTimestampKey = function(b) {
return qd.getSessionStorageKey(b) + ".ts";
};
var ve;
(function(b) {
b[b.SET = 0] = "SET";
b[b.DELETE = 1] = "DELETE";
})(ve || (ve = {}));
Nc.prototype.set = function(b, a) {
this._batch.commands.push({type:ve.SET, key:b, value:a});
};
Nc.prototype.delete = function(b) {
this._batch.commands.push({type:ve.DELETE, key:b});
};
Nc.prototype.getType = function() {
return this._type;
};
Nc.prototype.getBatch = function() {
return this._batch;
};
vc.prototype.getEventStorageKey = function() {
return this.getEventsStorageKey() + "." + this._eventId;
};
vc.prototype.getEventsStorageKey = function() {
return qd.getSessionStorageKey(this._sessionId) + ".operative";
};
vc.prototype.storeFailedEvent = function(b, a) {
if (this._eventId) {
var c = new Nc(v.PRIVATE);
if (a.url) {
var d = a.url;
d = u.addParameters(d, {eventRetry:!0});
a.url = d;
}
c.set(this.getEventStorageKey(), a);
b.queue(c);
}
return Promise.resolve();
};
vc.prototype.deleteFailedEvent = function(b) {
if (this._eventId) {
var a = new Nc(v.PRIVATE);
a.delete(this.getEventStorageKey());
b.queue(a);
}
return Promise.resolve();
};
vc.prototype.sendFailedEvent = function(b, a) {
var c = this;
return this._eventId ? this._core.Storage.get(v.PRIVATE,
this.getEventStorageKey()).then(function(a) {
return b.post(a.url, a.data);
}).then(function() {
return c.deleteFailedEvent(a);
}).catch(function() {
}) : Promise.resolve();
};
vc.prototype.sendFailedEvents = function(b, a) {
var c = this;
return this._core.Storage.getKeys(v.PRIVATE, this.getEventsStorageKey(), !
1).then(function(d) {
return Promise.all(c.getPromisesForFailedEvents(b, a, d));
}).catch(function() {
return Promise.resolve([]);
});
};
vc.prototype.getPromisesForFailedEvents = function(b, a, c) {
var d = this, e = [];
c.map(function(c) {
c = new vc(d._core, d._sessionId, c);
e.push(c.sendFailedEvent(b, a));
});
return e;
};
var da;
(function(b) {
b[b.START = 0] = "START";
b[b.FIRST_QUARTILE = 1] = "FIRST_QUARTILE";
b[b.MIDPOINT = 2] = "MIDPOINT";
b[b.THIRD_QUARTILE = 3] = "THIRD_QUARTILE";
b[b.VIEW = 4] = "VIEW";
b[b.SKIP = 5] = "SKIP";
b[b.CLICK = 6] = "CLICK";
b[b.IMPRESSION = 7] = "IMPRESSION";
b[b.VAST_COMPLETE = 8] = "VAST_COMPLETE";
})(da || (da = {}));
h.inherits(Rb, z);
Rb.prototype.getId = function() {
return this.get("id");
};
Rb.prototype.getAdPlan = function() {
return this.get("adPlan");
};
Rb.prototype.setAdPlan = function(b) {
this.set("adPlan", b);
};
Rb.prototype.getEventSent = function(b) {
var a = this.get("eventSent");
return b in a ? a[b] : !1;
};
Rb.prototype.setEventSent = function(b) {
var a = this.get("eventSent");
b in a || (a[b] = !0);
this.set("eventSent", a);
};
Rb.prototype.setGameSessionCounters = function(b) {
this.set("gameSessionCounters", b);
};
Rb.prototype.getGameSessionCounters = function() {
return this.get("gameSessionCounters");
};
Rb.prototype.setPrivacy = function(b) {
this.set("privacy", b);
};
Rb.prototype.getPrivacy = function() {
return this.get("privacy");
};
Rb.prototype.setDeviceFreeSpace = function(b) {
this.set("deviceFreeSpace", b);
};
Rb.prototype.getDeviceFreeSpace = function() {
return this.get("deviceFreeSpace");
};
Rb.prototype.getDTO = function() {
return {id:this.getId(), eventSent:this.get("eventSent")};
};
Ya.init = function() {
this._totalViewCount = this._totalStartCount = this._adRequestCount = 0;
this._targetStartCounter = {};
this._targetViewCounter = {};
this._campaignStartCounter = {};
this._campaignViewCounter = {};
this._latestCampaignsStarts = {};
};
Ya.addStart = function(b) {
this._totalStartCount++;
var a = b.getId();
this._latestCampaignsStarts[a] = (new Date).toISOString();
if (this._campaignStartCounter[a]) {
var c = this._campaignStartCounter[a];
this._campaignStartCounter[a] = ++c;
} else {
this._campaignStartCounter[a] = 1;
}
if (b instanceof D || b instanceof L) {
b = b.getGameId(), this._targetStartCounter[b] ? (a =
this._targetStartCounter[b], this._targetStartCounter[b] = ++a) :
this._targetStartCounter[b] = 1;
}
};
Ya.addView = function(b) {
this._totalViewCount++;
var a = b.getId();
if (this._campaignViewCounter[a]) {
var c = this._campaignViewCounter[a];
this._campaignViewCounter[a] = ++c;
} else {
this._campaignViewCounter[a] = 1;
}
if (b instanceof D || b instanceof L) {
b = b.getGameId(), this._targetViewCounter[b] ? (a =
this._targetViewCounter[b], this._targetViewCounter[b] = ++a) :
this._targetViewCounter[b] = 1;
}
};
Ya.addAdRequest = function() {
this._adRequestCount++;
};
Ya.getCurrentCounters = function() {
return {adRequests:this._adRequestCount, starts:this._totalStartCount,
views:this._totalViewCount, startsPerCampaign:Object.assign({},
this._campaignStartCounter), startsPerTarget:Object.assign({},
this._targetStartCounter), viewsPerCampaign:Object.assign({},
this._campaignViewCounter), viewsPerTarget:Object.assign({},
this._targetViewCounter), latestCampaignsStarts:Object.assign({},
this._latestCampaignsStarts)};
};
Ya._adRequestCount = 0;
Ya._totalStartCount = 0;
Ya._totalViewCount = 0;
Ya._targetStartCounter = {};
Ya._targetViewCounter = {};
Ya._campaignStartCounter = {};
Ya._campaignViewCounter = {};
Ya._latestCampaignsStarts = {};
var Fd;
(function(b) {
b[b.STREAM_ALARM = 4] = "STREAM_ALARM";
b[b.STREAM_DTMF = 8] = "STREAM_DTMF";
b[b.STREAM_MUSIC = 3] = "STREAM_MUSIC";
b[b.STREAM_NOTIFICATION = 5] = "STREAM_NOTIFICATION";
b[b.STREAM_RING = 2] = "STREAM_RING";
b[b.STREAM_SYSTEM = 1] = "STREAM_SYSTEM";
b[b.STREAM_VOICE_CALL = 0] = "STREAM_VOICE_CALL";
})(Fd || (Fd = {}));
h.inherits(J, z);
J.prototype.fetch = function() {
var b = this, a = [];
a.push(this._core.DeviceInfo.getAdvertisingTrackingId().then(function(a) {
return b.set("advertisingIdentifier", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getLimitAdTrackingFlag().then(function(a) {
return b.set("limitAdTracking", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getOsVersion().then(function(a) {
return b.set("osVersion", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getModel().then(function(a) {
return b.set("model", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getScreenWidth().then(function(a) {
return b.set("screenWidth", Math.floor(a));
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getScreenHeight().then(function(a) {
return b.set("screenHeight", Math.floor(a));
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getSystemLanguage().then(function(a) {
return b.set("language", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.isRooted().then(function(a) {
return b.set("rooted", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getTimeZone(!1).then(function(a) {
return b.set("timeZone", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getTotalMemory().then(function(a) {
return b.set("totalMemory", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(this._core.DeviceInfo.getGLVersion().then(function(a) {
return b.set("glVersion", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
return Promise.all(a);
};
J.prototype.getAdvertisingIdentifier = function() {
return this.get("advertisingIdentifier");
};
J.prototype.getLimitAdTracking = function() {
return this.get("limitAdTracking");
};
J.prototype.getModel = function() {
return this.get("model");
};
J.prototype.getNetworkType = function() {
var b = this;
return this._core.DeviceInfo.getNetworkType().then(function(a) {
b.set("networkType", a);
return b.get("networkType");
});
};
J.prototype.getNetworkOperator = function() {
var b = this;
return this._platform === p.IOS || this._platform === p.ANDROID ?
this._core.DeviceInfo.getNetworkOperator().then(function(a) {
b.set("networkOperator", a);
return b.get("networkOperator");
}) : Promise.resolve(this.get("networkOperator"));
};
J.prototype.getNetworkOperatorName = function() {
var b = this;
return this._platform === p.IOS || this._platform === p.ANDROID ?
this._core.DeviceInfo.getNetworkOperatorName().then(function(a) {
b.set("networkOperatorName", a);
return b.get("networkOperatorName");
}) : Promise.resolve(this.get("networkOperatorName"));
};
J.prototype.getOsVersion = function() {
return this.get("osVersion");
};
J.prototype.getScreenWidth = function() {
var b = this;
return this._core.DeviceInfo.getScreenWidth().then(function(a) {
a = Math.floor(a);
b.set("screenWidth", a);
return a;
});
};
J.prototype.getScreenHeight = function() {
var b = this;
return this._core.DeviceInfo.getScreenHeight().then(function(a) {
a = Math.floor(a);
b.set("screenHeight", a);
return a;
});
};
J.prototype.isRooted = function() {
return this.get("rooted");
};
J.prototype.getConnectionType = function() {
var b = this;
return this._core.DeviceInfo.getConnectionType().then(function(a) {
b.set("connectionType", a);
return b.get("connectionType");
});
};
J.prototype.getTimeZone = function() {
return this.get("timeZone");
};
J.prototype.getTotalSpace = function() {
return this.get("totalInternalSpace");
};
J.prototype.getLanguage = function() {
return this.get("language");
};
J.prototype.getHeadset = function() {
var b = this;
return this._core.DeviceInfo.getHeadset().then(function(a) {
b.set("headset", a);
return b.get("headset");
});
};
J.prototype.getDeviceVolume = function(b) {
var a = this;
b = void 0 === b ? Fd.STREAM_SYSTEM : b;
return this._platform === p.IOS ?
this._core.DeviceInfo.Ios.getDeviceVolume().then(function(b) {
a.set("volume", b);
return a.get("volume");
}) : this._platform === p.ANDROID ?
this._core.DeviceInfo.Android.getDeviceVolume(b).then(function(b) {
a.set("volume", b);
return a.get("volume");
}) : Promise.resolve(this.get("volume"));
};
J.prototype.getScreenBrightness = function() {
var b = this;
return this._core.DeviceInfo.getScreenBrightness().then(function(a) {
b.set("screenBrightness", a);
return b.get("screenBrightness");
});
};
J.prototype.getBatteryLevel = function() {
var b = this;
return this._core.DeviceInfo.getBatteryLevel().then(function(a) {
b.set("batteryLevel", a);
return b.get("batteryLevel");
});
};
J.prototype.getBatteryStatus = function() {
var b = this;
return this._core.DeviceInfo.getBatteryStatus().then(function(a) {
b.set("batteryStatus", a);
return b.get("batteryStatus");
});
};
J.prototype.getFreeMemory = function() {
var b = this;
return this._core.DeviceInfo.getFreeMemory().then(function(a) {
b.set("freeMemory", a);
return b.get("freeMemory");
});
};
J.prototype.getTotalMemory = function() {
return this.get("totalMemory");
};
J.prototype.getDTO = function() {
var b = this;
return this.getAnonymousDTO().then(function(a) {
b.getAdvertisingIdentifier() && (a.advertisingTrackingId =
b.getAdvertisingIdentifier(), a.limitAdTracking = b.getLimitAdTracking());
return a;
});
};
J.prototype.getAnonymousDTO = function() {
var b = this;
return Promise.all([this.getConnectionType().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getNetworkType().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getNetworkOperator().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getNetworkOperatorName().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getHeadset().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getDeviceVolume().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getScreenWidth().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getScreenHeight().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getScreenBrightness().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getFreeSpace().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getBatteryLevel().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getBatteryStatus().catch(function(a) {
return b.handleDeviceInfoError(a);
}), this.getFreeMemory().catch(function(a) {
return b.handleDeviceInfoError(a);
})]).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var d = c.next().value, e = c.next().value, f = c.next().value, g =
c.next().value, l = c.next().value, n = c.next().value, W = c.next().value, r =
c.next().value, k = c.next().value, m = c.next().value, p = c.next().value;
c = c.next().value;
return {osVersion:b.getOsVersion(), deviceModel:b.getModel(),
connectionType:a, networkType:d, screenWidth:n, screenHeight:W, networkOperator:e,
networkOperatorName:f, timeZone:b.getTimeZone(), headset:g,
language:b.getLanguage(), deviceVolume:l, screenBrightness:r, freeSpaceInternal:k,
totalSpaceInternal:b.getTotalSpace(), batteryLevel:m, batteryStatus:p,
freeMemory:c, totalMemory:b.getTotalMemory(), rooted:b.isRooted()};
});
};
J.prototype.getStaticDTO = function() {
var b = this.getAnonymousStaticDTO();
this.getAdvertisingIdentifier() && (b.advertisingTrackingId =
this.getAdvertisingIdentifier(), b.limitAdTracking = this.getLimitAdTracking());
return b;
};
J.prototype.getAnonymousStaticDTO = function() {
return {osVersion:this.getOsVersion(), deviceModel:this.getModel(),
timeZone:this.getTimeZone(), language:this.getLanguage(),
totalSpaceInternal:this.getTotalSpace(), totalMemory:this.getTotalMemory(),
rooted:this.isRooted()};
};
J.prototype.handleDeviceInfoError = function(b) {
this._core.Sdk.logWarning(JSON.stringify(b));
};
J.Schema = {advertisingIdentifier:["string", "undefined", "null"],
connectionType:["string"], timeZone:["string"], volume:["number"], networkOperator:
["string", "null"], networkOperatorName:["string", "null"], screenWidth:
["integer"], screenHeight:["integer"], screenBrightness:["number"],
limitAdTracking:["boolean", "undefined"], osVersion:["string"], model:["string"],
rooted:["boolean"], language:["string"], freeInternalSpace:["number"],
totalInternalSpace:["number"], networkType:["number"], batteryLevel:["number"],
batteryStatus:["number"], freeMemory:["number"], totalMemory:["number"],
maxVolume:["number"], glVersion:["string"], headset:["boolean"]};
var we;
(function(b) {
b[b.VOLUME_CHANGED = 0] = "VOLUME_CHANGED";
})(we || (we = {}));
var Pd;
(function(b) {
b[b.EXTERNAL = 0] = "EXTERNAL";
b[b.INTERNAL = 1] = "INTERNAL";
})(Pd || (Pd = {}));
h.inherits(ia, B);
ia.prototype.getAndroidId = function() {
return this._nativeBridge.invoke(this._apiClass, "getAndroidId");
};
ia.prototype.getApiLevel = function() {
return this._nativeBridge.invoke(this._apiClass, "getApiLevel");
};
ia.prototype.getManufacturer = function() {
return this._nativeBridge.invoke(this._apiClass, "getManufacturer");
};
ia.prototype.getScreenLayout = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenLayout");
};
ia.prototype.getScreenDensity = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenDensity");
};
ia.prototype.isAppInstalled = function(b) {
return this._nativeBridge.invoke(this._apiClass, "isAppInstalled", [b]);
};
ia.prototype.getInstalledPackages = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getInstalledPackages", [b]);
};
ia.prototype.getPackageInfo = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getPackageInfo", [b]);
};
ia.prototype.getSystemProperty = function(b, a) {
return this._nativeBridge.invoke(this._apiClass, "getSystemProperty", [b, a]);
};
ia.prototype.getRingerMode = function() {
return this._nativeBridge.invoke(this._apiClass, "getRingerMode");
};
ia.prototype.getDeviceVolume = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getDeviceVolume", [b]);
};
ia.prototype.getDeviceMaxVolume = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getDeviceMaxVolume", [b]);
};
ia.prototype.registerVolumeChangeListener = function(b) {
return this._nativeBridge.invoke(this._apiClass,
"registerVolumeChangeListener", [b]);
};
ia.prototype.unregisterVolumeChangeListener = function(b) {
return this._nativeBridge.invoke(this._apiClass,
"unregisterVolumeChangeListener", [b]);
};
ia.prototype.getFreeSpace = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getFreeSpace", [Pd[b]]);
};
ia.prototype.getTotalSpace = function(b) {
return this._nativeBridge.invoke(this._apiClass, "getTotalSpace", [Pd[b]]);
};
ia.prototype.getSensorList = function() {
return this._nativeBridge.invoke(this._apiClass, "getSensorList");
};
ia.prototype.getBoard = function() {
return this._nativeBridge.invoke(this._apiClass, "getBoard");
};
ia.prototype.getBootloader = function() {
return this._nativeBridge.invoke(this._apiClass, "getBootloader");
};
ia.prototype.getBrand = function() {
return this._nativeBridge.invoke(this._apiClass, "getBrand");
};
ia.prototype.getDevice = function() {
return this._nativeBridge.invoke(this._apiClass, "getDevice");
};
ia.prototype.getHardware = function() {
return this._nativeBridge.invoke(this._apiClass, "getHardware");
};
ia.prototype.getHost = function() {
return this._nativeBridge.invoke(this._apiClass, "getHost");
};
ia.prototype.getProduct = function() {
return this._nativeBridge.invoke(this._apiClass, "getProduct");
};
ia.prototype.getSupportedAbis = function() {
return this._nativeBridge.invoke(this._apiClass, "getSupportedAbis");
};
ia.prototype.handleEvent = function(b, a) {
switch(b) {
case we[we.VOLUME_CHANGED]:
this.onVolumeChanged.trigger(a[0], a[1], a[2]);
break;
default:
B.prototype.handleEvent.call(this, b, a);
}
};
h.inherits(G, J);
G.prototype.fetch = function() {
var b = this;
return J.prototype.fetch.call(this).then(function() {
var a = [];
a.push(b._core.DeviceInfo.Android.getAndroidId().then(function(a) {
return b.set("androidId", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getApiLevel().then(function(a) {
return b.set("apiLevel", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getTotalSpace(Pd.INTERNAL).then(function(a)
{
return b.set("totalInternalSpace", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getTotalSpace(Pd.EXTERNAL).then(function(a)
{
return b.set("totalExternalSpace", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getManufacturer().then(function(a) {
return b.set("manufacturer", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getScreenDensity().then(function(a) {
return b.set("screenDensity", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getScreenLayout().then(function(a) {
return b.set("screenLayout", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));

a.push(b._core.DeviceInfo.Android.isAppInstalled(G.GooglePlayPackageName).then(func
tion(a) {
return b.set("isGoogleStoreInstalled", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));

a.push(b._core.DeviceInfo.Android.isAppInstalled(G.XiaomiPackageName).then(function
(a) {
return b.set("isXiaomiStoreInstalled", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));

a.push(b._core.DeviceInfo.Android.isAppInstalled(G.GoogleMapsPackageName).then(func
tion(a) {
return b.set("isGoogleMapsInstalled", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));

a.push(b._core.DeviceInfo.Android.isAppInstalled(G.TelephonyPackageName).then(funct
ion(a) {
return b.set("isTelephonyInstalled", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));

a.push(b._core.DeviceInfo.Android.getDeviceMaxVolume(Fd.STREAM_MUSIC).then(function
(a) {
return b.set("maxVolume", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getBoard().then(function(a) {
return b.set("board", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getBootloader().then(function(a) {
return b.set("bootLoader", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getBrand().then(function(a) {
return b.set("brand", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getDevice().then(function(a) {
return b.set("device", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getHardware().then(function(a) {
return b.set("hardware", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getHost().then(function(a) {
return b.set("host", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getProduct().then(function(a) {
return b.set("product", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
a.push(b._core.DeviceInfo.Android.getSupportedAbis().then(function(a) {
return b.set("supportedAbis", a);
}).catch(function(a) {
return b.handleDeviceInfoError(a);
}));
return Promise.all(a);
});
};
G.prototype.getStores = function() {
var b = "";
this.isGoogleStoreInstalled() && (b = "google");
this.isXiaomiStoreInstalled() && (b = "xiaomi");
this.isXiaomiStoreInstalled() && this.isGoogleStoreInstalled() && (b =
"xiaomi,google");
this.isXiaomiStoreInstalled() || this.isGoogleStoreInstalled() || (b = "none");
return b;
};
G.prototype.isGoogleStoreInstalled = function() {
return this.get("isGoogleStoreInstalled");
};
G.prototype.isXiaomiStoreInstalled = function() {
return this.get("isXiaomiStoreInstalled");
};
G.prototype.isGoogleMapsInstalled = function() {
return this.get("isGoogleMapsInstalled");
};
G.prototype.isTelephonyInstalled = function() {
return this.get("isTelephonyInstalled");
};
G.prototype.getAndroidId = function() {
return this.get("androidId");
};
G.prototype.getApiLevel = function() {
return this.get("apiLevel");
};
G.prototype.getManufacturer = function() {
return this.get("manufacturer");
};
G.prototype.getScreenLayout = function() {
return this.get("screenLayout");
};
G.prototype.getScreenDensity = function() {
return this.get("screenDensity");
};
G.prototype.getFreeSpaceExternal = function() {
var b = this;
return this._core.DeviceInfo.Android.getFreeSpace(Pd.EXTERNAL).then(function(a)
{
b.set("freeExternalSpace", a);
return b.get("freeExternalSpace");
});
};
G.prototype.getTotalSpaceExternal = function() {
return this.get("totalExternalSpace");
};
G.prototype.getRingerMode = function() {
var b = this;
return this._core.DeviceInfo.Android.getRingerMode().then(function(a) {
b.set("ringerMode", a);
return b.get("ringerMode");
});
};
G.prototype.getBoard = function() {
return this.get("board");
};
G.prototype.getBootloader = function() {
return this.get("bootLoader");
};
G.prototype.getBrand = function() {
return this.get("brand");
};
G.prototype.getDevice = function() {
return this.get("device");
};
G.prototype.getHardware = function() {
return this.get("hardware");
};
G.prototype.getHost = function() {
return this.get("host");
};
G.prototype.getProduct = function() {
return this.get("product");
};
G.prototype.getSupportedAbis = function() {
return this.get("supportedAbis");
};
G.prototype.getSensorList = function() {
var b = this;
return this._core.DeviceInfo.Android.getSensorList().then(function(a) {
b.set("sensorList", a);
return b.get("sensorList");
});
};
G.prototype.getFreeSpace = function() {
var b = this;
return this._core.DeviceInfo.Android.getFreeSpace(Pd.INTERNAL).then(function(a)
{
b.set("freeInternalSpace", a);
return b.get("freeInternalSpace");
});
};
G.prototype.getDTO = function() {
var b = this;
return J.prototype.getDTO.call(this).then(function(a) {
var c = Object.assign({}, a, {apiLevel:b.getApiLevel(),
deviceMake:b.getManufacturer(), screenLayout:b.getScreenLayout(),
screenDensity:b.getScreenDensity(), totalSpaceExternal:b.getTotalSpaceExternal()});
b.getAdvertisingIdentifier() || (c.androidId = b.getAndroidId());
return Promise.all([b.getFreeSpaceExternal().catch(function(a) {
return b.handleDeviceInfoError(a);
}), b.getRingerMode().catch(function(a) {
return b.handleDeviceInfoError(a);
})]).then(function(a) {
var b = h.makeIterator(a);
a = b.next().value;
b = b.next().value;
c.freeSpaceExternal = a;
c.ringerMode = b;
return c;
});
});
};
G.prototype.getAnonymousDTO = function() {
var b = this;
return J.prototype.getAnonymousDTO.call(this).then(function(a) {
var c = Object.assign({}, a, {apiLevel:b.getApiLevel(),
deviceMake:b.getManufacturer(), screenLayout:b.getScreenLayout(),
screenDensity:b.getScreenDensity(), totalSpaceExternal:b.getTotalSpaceExternal()});
return Promise.all([b.getFreeSpaceExternal().catch(function(a) {
return b.handleDeviceInfoError(a);
}), b.getRingerMode().catch(function(a) {
return b.handleDeviceInfoError(a);
})]).then(function(a) {
var b = h.makeIterator(a);
a = b.next().value;
b = b.next().value;
c.freeSpaceExternal = a;
c.ringerMode = b;
return c;
});
});
};
G.prototype.getStaticDTO = function() {
var b = Object.assign({}, J.prototype.getStaticDTO.call(this),
{apiLevel:this.getApiLevel(), deviceMake:this.getManufacturer(),
screenLayout:this.getScreenLayout(), screenDensity:this.getScreenDensity(),
totalSpaceExternal:this.getTotalSpaceExternal()});
this.getAdvertisingIdentifier() || (b.androidId = this.getAndroidId());
return b;
};
G.prototype.getAnonymousStaticDTO = function() {
return Object.assign({}, J.prototype.getAnonymousStaticDTO.call(this),
{apiLevel:this.getApiLevel(), deviceMake:this.getManufacturer(),
screenLayout:this.getScreenLayout(), screenDensity:this.getScreenDensity(),
totalSpaceExternal:this.getTotalSpaceExternal()});
};
G.GooglePlayPackageName = "com.android.vending";
G.XiaomiPackageName = "com.xiaomi.gamecenter";
G.GoogleMapsPackageName = "com.google.android.gms.maps";
G.TelephonyPackageName = "com.android.telephony";
h.inherits(ce, Ua);
ce.prototype.getName = function() {
return this.get("name");
};
ce.prototype.getVersion = function() {
return this.get("version");
};
ce.prototype.getDTO = function() {
return {frameworkName:this.getName(), frameworkVersion:this.getVersion()};
};
P.getEventKey = function(b, a) {
return qd.getSessionStorageKey(b) + ".operative." + a;
};
P.getUrlKey = function(b, a) {
return P.getEventKey(b, a) + ".url";
};
P.getDataKey = function(b, a) {
return P.getEventKey(b, a) + ".data";
};
P.setPreviousPlacementId = function(b) {
P.PreviousPlacementId = b;
};
P.getPreviousPlacementId = function() {
return P.PreviousPlacementId;
};
P.prototype.sendStart = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.START)) {
return Promise.resolve();
}
c.setEventSent(da.START);
Ya.addStart(this._campaign);
return this._metaDataManager.fetch(gd, !0, ["ordinal"]).then(function() {
return a.createUniqueEventMetadata(b, a._sessionManager.getGameSessionId(),
P.getPreviousPlacementId());
}).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
return a.sendEvent("start", b, c.getId(),
a.createVideoEventUrl("video_start"), JSON.stringify(d));
}).then(function() {
});
};
P.prototype.sendFirstQuartile = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.FIRST_QUARTILE)) {
return Promise.resolve(void 0);
}
c.setEventSent(da.FIRST_QUARTILE);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
a.sendEvent("first_quartile", b, c.getId(),
a.createVideoEventUrl("first_quartile"), JSON.stringify(d));
});
};
P.prototype.sendMidpoint = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.MIDPOINT)) {
return Promise.resolve(void 0);
}
c.setEventSent(da.MIDPOINT);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
a.sendEvent("midpoint", b, c.getId(), a.createVideoEventUrl("midpoint"),
JSON.stringify(d));
});
};
P.prototype.sendThirdQuartile = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.THIRD_QUARTILE)) {
return Promise.resolve(void 0);
}
c.setEventSent(da.THIRD_QUARTILE);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
a.sendEvent("third_quartile", b, c.getId(),
a.createVideoEventUrl("third_quartile"), JSON.stringify(d));
});
};
P.prototype.sendSkip = function(b) {
var a = this._campaign.getSession();
if (a.getEventSent(da.SKIP)) {
return Promise.resolve(void 0);
}
a.setEventSent(da.SKIP);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
c = c.next().value;
b.videoProgress && (c.skippedAt = b.videoProgress);
delete c.eventId;
delete c.apiLevel;
delete c.advertisingTrackingId;
delete c.limitAdTracking;
delete c.osVersion;
delete c.sid;
delete c.deviceMake;
delete c.deviceModel;
delete c.sdkVersion;
delete c.webviewUa;
delete c.networkType;
delete c.connectionType;
delete c.gameSessionCounters;
H.sendEvent("ads.sdk2.events.skip.json", eb.ANONYMOUS, Object.assign({id:a,
ts:(new Date).toISOString()}, c));
});
};
P.prototype.sendView = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.VIEW)) {
return Promise.resolve(void 0);
}
c.setEventSent(da.VIEW);
Ya.addView(this._campaign);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
a.sendEvent("view", b, c.getId(), a.createVideoEventUrl("video_end"),
JSON.stringify(d));
});
};
P.prototype.sendClick = function(b) {
var a = this, c = this._campaign.getSession();
if (c.getEventSent(da.CLICK)) {
return Promise.resolve(void 0);
}
c.setEventSent(da.CLICK);
return this.createUniqueEventMetadata(b,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(b) {
var d = h.makeIterator(b);
b = d.next().value;
d = d.next().value;
a.sendEvent("click", b, c.getId(), a.createClickEventUrl(),
JSON.stringify(d));
});
};
P.prototype.getClientInfo = function() {
return this._clientInfo;
};
P.prototype.sendEvent = function(b, a, c, d, e) {
var f = this;
if (!d) {
return Promise.resolve();
}
this._core.Sdk.logInfo("Unity Ads event: sending " + b + " event to " + d);
return this._request.post(d, e, [], {retries:2, retryDelay:10000,
followRedirects:!1, retryWithConnectionEvents:!1}).catch(function(g) {
O.shouldSampleAtTenPercent() && (g = {request:g.nativeRequest, event:b,
sessionId:c, url:d, response:g, data:e, campaignId:f._campaign.getId(),
creativeId:f._campaign.getCreativeId(), seatId:f._campaign.getSeatId(),
auctionProtocol:w.getAuctionProtocol()},
F.trigger("operative_event_manager_failed_post", g));
(new vc(f._core, c, a)).storeFailedEvent(f._storageBridge, {url:d, data:e});
});
};
P.prototype.createVideoEventUrl = function(b) {
F.trigger("operative_event_manager_url_error", {message:"Trying to use video-
event url generation from base operative event manager", eventType:b});
};
P.prototype.createClickEventUrl = function() {
F.trigger("operative_event_manager_url_error", {message:"Trying to use click-
event url generation from base operative event manager"});
};
P.prototype.createUniqueEventMetadata = function(b, a, c) {
var d = this;
return this._core.DeviceInfo.getUniqueEventId().then(function(e) {
return d.getInfoJson(b, e, a, c);
});
};
P.prototype.getInfoJson = function(b, a, c, d) {
var e = this, f = this._campaign.getSession();
return Promise.all([this._deviceInfo.getNetworkType(),
this._deviceInfo.getConnectionType(), this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight(), this._metaDataManager.fetch(gd),
this._metaDataManager.fetch(ce)]).then(function(g) {
var l = h.makeIterator(g), n = l.next().value, W = l.next().value, r =
l.next().value, k = l.next().value;
g = l.next().value;
l = l.next().value;
n = {eventId:a, auctionId:f.getId(), gameSessionId:c,
campaignId:e._campaign.getId(), adType:e._campaign.getAdType(),
correlationId:e._campaign.getCorrelationId(), seatId:e._campaign.getSeatId(),
placementId:b.placement.getId(),
advertisingTrackingId:e._deviceInfo.getAdvertisingIdentifier(),
limitAdTracking:e._deviceInfo.getLimitAdTracking(),
osVersion:e._deviceInfo.getOsVersion(), sid:e._playerMetadataServerId,
deviceModel:e._deviceInfo.getModel(), sdkVersion:e._clientInfo.getSdkVersion(),
previousPlacementId:d, bundleId:e._clientInfo.getApplicationName(),
meta:e._campaign.getMeta(), platform:p[e._platform].toLowerCase(),
language:e._deviceInfo.getLanguage(), cached:Oa.isCached(e._campaign),
cachedOrientation:Oa.getCachedVideoOrientation(e._campaign),
token:e._coreConfig.getToken(), gdprEnabled:e._adsConfig.isGDPREnabled(),
optOutEnabled:e._adsConfig.isOptOutEnabled(),
optOutRecorded:e._adsConfig.isOptOutRecorded(), privacy:f.getPrivacy(),
gameSessionCounters:f.getGameSessionCounters(),
networkType:n, connectionType:W, screenWidth:r, screenHeight:k,
isBackupCampaign:e._campaign.isBackupCampaign(),
deviceFreeSpace:f.getDeviceFreeSpace()};
e._platform === p.ANDROID && e._deviceInfo instanceof G && (n =
Object.assign({}, n, {apiLevel:e._deviceInfo.getApiLevel(),
deviceMake:e._deviceInfo.getManufacturer(),
screenDensity:e._deviceInfo.getScreenDensity(),
screenSize:e._deviceInfo.getScreenLayout()}),
e._deviceInfo.getAdvertisingIdentifier() || (n = Object.assign({}, n,
{androidId:e._deviceInfo.getAndroidId()})));
n.videoOrientation = b.videoOrientation;
"undefined" !== typeof navigator && navigator.userAgent && (n.webviewUa =
navigator.userAgent);
b.adUnitStyle && (n.adUnitStyle = b.adUnitStyle.getDTO());
g && (n.mediationName = g.getName(), n.mediationVersion = g.getVersion(),
n.mediationOrdinal = g.getOrdinal());
l && (n.frameworkName = l.getName(), n.frameworkVersion = l.getVersion());
return [a, n];
});
};
h.inherits(Ve, P);
Ve.prototype.createVideoEventUrl = function(b) {
return this._performanceCampaign.getVideoEventUrl(b);
};
Ve.prototype.createClickEventUrl = function() {
return u.addParameters(this._performanceCampaign.getClickUrl(), {redirect:!1});
};
Ve.prototype.getInfoJson = function(b, a, c, d) {
return P.prototype.getInfoJson.call(this, b, a, c, d).then(function(c) {
c = h.makeIterator(c);
c.next();
c = c.next().value;
b.asset && (c.unityCreativeId = b.asset.getCreativeId());
return [a, c];
});
};
h.inherits(Qb, P);
Qb.setTestBaseUrl = function(b) {
Qb.VideoEventBaseUrl = b + "/events/v2/brand/video";
};
Qb.prototype.createVideoEventUrl = function(b) {
return [Qb.VideoEventBaseUrl, b, this._clientInfo.getGameId(),
this._campaign.getId()].join("/");
};
Qb.prototype.createClickEventUrl = function() {
};
Qb.prototype.getInfoJson = function(b, a, c, d, e) {
var f = this;
return P.prototype.getInfoJson.call(this, b, a, c, e).then(function(b) {
b = h.makeIterator(b);
b.next();
b = b.next().value;
b.creativeId = f._campaign.getCreativeId();
return [a, b];
});
};
Qb.VideoEventBaseUrl =
"https://adserver.unityads.unity3d.com/events/v2/brand/video";
h.inherits(Ue, Qb);
Ue.prototype.createVideoEventUrl = function(b) {
var a = this._mraidCampaign.getVideoEventUrl(b);
return a ? a : Qb.prototype.createVideoEventUrl.call(this, b);
};
Ue.prototype.createClickEventUrl = function() {
var b = this._mraidCampaign.getClickUrl();
return b ? u.addParameters(b, {redirect:!1}) :
Qb.prototype.createClickEventUrl.call(this);
};
Ue.prototype.getInfoJson = function(b, a, c, d, e) {
return Qb.prototype.getInfoJson.call(this, b, a, c, e).then(function(c) {
c = h.makeIterator(c);
c.next();
c = c.next().value;
b.asset && (c.unityCreativeId = b.asset.getCreativeId());
return [a, c];
});
};
h.inherits(be, vc);
be.prototype.getEventsStorageKey = function() {
return qd.getSessionStorageKey(this._sessionId) + ".xpromooperative";
};
be.prototype.sendFailedEvent = function(b, a) {
var c = this;
return this._core.Storage.get(v.PRIVATE,
this.getEventStorageKey()).then(function(a) {
return H.sendEvent(a.kafkaType, eb.PERSONAL, JSON.parse(a.data));
}).then(function() {
return c.deleteFailedEvent(a);
}).catch(function() {
});
};
be.prototype.getPromisesForFailedEvents = function(b, a, c) {
var d = this, e = [];
c.map(function(c) {
c = new be(d._core, d._sessionId, c);
e.push(c.sendFailedEvent(b, a));
});
return e;
};
h.inherits(ae, P);
ae.prototype.sendStart = function(b) {
var a = this._campaign.getSession();
if (a.getEventSent(da.START)) {
return Promise.resolve();
}
a.setEventSent(da.START);
Ya.addStart(this._xPromoCampaign);
return
Xe.voidResult(this.sendHttpKafkaEvent("ads.xpromo.operative.videostart.v1.json",
"start", b));
};
ae.prototype.sendView = function(b) {
var a = this._campaign.getSession();
if (a.getEventSent(da.VIEW)) {
return Promise.resolve(void 0);
}
a.setEventSent(da.VIEW);
Ya.addView(this._xPromoCampaign);
return this.sendHttpKafkaEvent("ads.xpromo.operative.videoview.v1.json",
"view", b).then(function() {
});
};
ae.prototype.sendClick = function(b) {
var a = this._campaign.getSession();
if (a.getEventSent(da.CLICK)) {
return Promise.resolve(void 0);
}
a.setEventSent(da.CLICK);
return this.sendHttpKafkaEvent("ads.xpromo.operative.videoclick.v1.json",
"click", b).then(function() {
});
};
ae.prototype.sendHttpKafkaEvent = function(b, a, c) {
var d = this;
return this.createUniqueEventMetadata(c,
this._sessionManager.getGameSessionId(),
P.getPreviousPlacementId()).then(function(c) {
c = h.makeIterator(c);
var e = c.next().value, g = c.next().value;
delete g.eventId;
delete g.apiLevel;
delete g.advertisingTrackingId;
delete g.limitAdTracking;
delete g.osVersion;
delete g.sid;
delete g.deviceMake;
delete g.deviceModel;
delete g.sdkVersion;
delete g.webviewUa;
delete g.networkType;
delete g.connectionType;
return H.sendEvent(b, eb.PERSONAL, Object.assign({}, g, {id:e, ts:(new
Date).toISOString(), event_type:a, sourceGameId:d._clientInfo.getGameId(),
targetGameId:d._xPromoCampaign.getGameId().toString(),
creativePackId:d._xPromoCampaign.getCreativeId(),
targetStoreId:d._xPromoCampaign.getAppStoreId()})).catch(function() {
var a = d._campaign.getSession().getId();
return d._core.DeviceInfo.getUniqueEventId().then(function(c) {
(new be(d._core, a, c)).storeFailedEvent(d._storageBridge, {kafkaType:b,
data:JSON.stringify(g)});
return Promise.resolve({});
});
});
});
};
ae.prototype.createVideoEventUrl = function(b) {
return this._xPromoCampaign.getVideoEventUrl(b);
};
Vg.createOperativeEventManager = function(b) {
return b.campaign instanceof D ? new Ve(b) : b.campaign instanceof L ? new
ae(b) : b.campaign instanceof U ? new Ue(b) : new Qb(b);
};
Jd.prototype.onTouchStart = function(b) {
var a = this;
b.stopPropagation();
b.preventDefault();
this._onTouchMoveListener = function(b) {
return a.onTouchMove(b);
};
this._onTouchEndListener = function(b) {
return a.onTouchEnd(b);
};
this._onTouchCancelListener = function(b) {
return a.onTouchCancel(b);
};
this._element.addEventListener("touchmove", this._onTouchMoveListener, !1);
this._element.addEventListener("touchend", this._onTouchEndListener, !1);
this._element.addEventListener("touchcancel", this._onTouchCancelListener, !1);
this._moved = !1;
this._startX = b.touches[0].clientX;
this._startY = b.touches[0].clientY;
};
Jd.prototype.onTouchMove = function(b) {
var a = b.touches[0].clientY;
if (Math.abs(b.touches[0].clientX - this._startX) > Jd._moveTolerance ||
Math.abs(a - this._startY) > Jd._moveTolerance) {
this._moved = !0;
}
};
Jd.prototype.onTouchEnd = function(b) {
this._onTouchMoveListener && this._onTouchEndListener &&
this._onTouchCancelListener && (this._element.removeEventListener("touchmove",
this._onTouchMoveListener, !1), this._element.removeEventListener("touchend",
this._onTouchEndListener, !1), this._element.removeEventListener("touchcancel",
this._onTouchCancelListener, !1));
this._onTouchCancelListener = this._onTouchEndListener =
this._onTouchMoveListener = void 0;
if (!this._moved) {
var a = new MouseEvent("click", {view:window, bubbles:!0, cancelable:!0});
b.stopPropagation();
b.target && !b.target.dispatchEvent(a) && b.preventDefault();
}
};
Jd.prototype.onTouchCancel = function() {
this._moved = !1;
this._startY = this._startX = 0;
};
Jd._moveTolerance = 10;
Mc.prototype.onTouchStart = function(b) {
var a = this;
this._onTouchEndListener = function(b) {
return a.onTouchEnd(b);
};
this._onTouchCancelListener = function(b) {
return a.onTouchCancel(b);
};
this._onTouchMoveListener = function(b) {
return a.onTouchMove(b);
};
this._element.addEventListener("touchend", this._onTouchEndListener, !1);
this._element.addEventListener("touchcancel", this._onTouchCancelListener, !1);
this._element.addEventListener("touchmove", this._onTouchMoveListener, !1);
this._startX = b.touches[0].clientX;
this._startY = b.touches[0].clientY;
};
Mc.prototype.onTouchEnd = function(b) {
this._element.removeEventListener("touchend", this._onTouchEndListener, !1);
this._element.removeEventListener("touchcancel", this._onTouchCancelListener, !
1);
this._element.removeEventListener("touchmove", this._onTouchMoveListener, !1);
if (this.isSwipeEvent(this._startX, this._startY, b.changedTouches[0].clientX,
b.changedTouches[0].clientY)) {
var a = document.createEvent("MouseEvent");
a.initMouseEvent(this.getEventType(), !0, !0, window, 0, 0, 0, 0, 0, !1, !
1, !1, !1, 0, null);
b.stopPropagation();
b.target && !b.target.dispatchEvent(a) && b.preventDefault();
}
this._startY = this._startX = 0;
};
Mc.prototype.onTouchCancel = function() {
this._startY = this._startX = 0;
};
Mc.prototype.onTouchMove = function(b) {
b.preventDefault();
};
Mc._moveTolerance = 75;
h.inherits(wf, Mc);
wf.prototype.isSwipeEvent = function(b, a, c, d) {
b -= c;
return Math.abs(b) > Mc._moveTolerance && Math.abs(b) > Math.abs(a - d) ? !
0 : !1;
};
wf.prototype.getEventType = function() {
return "swipe";
};
h.inherits(vf, Mc);
vf.prototype.isSwipeEvent = function(b, a, c, d) {
var e = a - d;
return Math.abs(e) > Mc._moveTolerance && Math.abs(e) > Math.abs(b - c) &&
Math.abs(d) > Math.abs(a) ? !0 : !1;
};
vf.prototype.getEventType = function() {
return "swipedown";
};
I.addEventListener = function(b, a, c) {
"swipe" === b.event && (b.swipe = new wf(a));
"swipedown" === b.event && (b.swipe = new vf(a));
c && "click" === b.event && (b.tap = new Jd(a));
a.addEventListener(b.event, b.listener, !1);
};
I.prototype.addEventHandler = function(b) {
this._handlers.push(b);
return b;
};
I.prototype.removeEventHandler = function(b) {
this._handlers.length && (this._handlers = "undefined" !== typeof b ?
this._handlers.filter(function(a) {
return a !== b;
}) : []);
};
I.prototype.render = function() {
var b = this, a = this._container = document.createElement("div");
a.id = this._id;
a.innerHTML = this._template.render(this._templateData ? this._templateData :
{});
this._bindings.forEach(function(c) {
if (c.selector) {
for (var d = a.querySelectorAll(c.selector), e = 0; e < d.length; ++e) {
I.addEventListener(c, d[e], b._attachTap);
}
} else {
I.addEventListener(c, a, b._attachTap);
}
});
};
I.prototype.container = function() {
return this._container;
};
I.prototype.show = function() {
this._container && (this._container.style.visibility = "visible");
};
I.prototype.hide = function() {
this._container && (this._container.style.visibility = "hidden");
};
var xe;
(function(b) {
b.FILE_TOO_LARGE = "too_large_file";
b.VIDEO_TOO_LONG = "video_length_error";
b.VIDEO_PARSE_FAILURE = "parse_error";
b.USER_REPORT = "report";
})(xe || (xe = {}));
Te.report = function(b, a, c, d) {
b = Object.assign({}, d, {type:c, creativeId:b, seatId:a});
return H.sendEvent("ads.creative.blocking", eb.EMPTY, b);
};
uf.once = function(b, a) {
var c = b.subscribe(function() {
b.unsubscribe(c);
a();
});
return c;
};
uf.once1 = function(b, a) {
var c = b.subscribe(function(d) {
b.unsubscribe(c);
a(d);
});
return c;
};
uf.once2 = function(b, a) {
var c = b.subscribe(function(d, e) {
b.unsubscribe(c);
a(d, e);
});
return c;
};
var Id;
(function(b) {
b.NOT_SHOWING = "Ad is not showing";
b.OFFENSIVE = "Ad is very offensive";
b.MALFORMED = "Ad does not look right";
b.DISLIKE = "I don't like this ad";
b.OTHER = "Other";
})(Id || (Id = {}));
h.inherits(Pb, I);
Pb.createBuildInformation = function(b, a, c, d, e) {
var f = new Date;
Pb.buildInformation = {userAgent:window.navigator.userAgent, platform:b ===
p.IOS ? "iOS" : "Android", campaign:d.getId(), osVersion:c.getOsVersion(),
group:e.getAbGroup(), sdk:a.getSdkVersionName(), webview:a.getWebviewVersion(),
webviewHash:a.getWebviewHash(), app:a.getApplicationName(),
appVersion:a.getApplicationVersion(), creativeId:d.getCreativeId(),
seatId:d.getSeatId(), timestamp:f.toUTCString()};
};
Pb.prototype.setupReportListener = function(b) {
var a = this;
uf.once2(this._onReport, function(c, d) {
a.onUserReport(c, d, b);
a.timeoutAd(b);
});
};
Pb.prototype.onUserReport = function(b, a, c) {
c.getFinishState() !== na.COMPLETED && c.markAsSkipped();
var d = b.getCreativeId(), e = b.getSeatId();
Te.report(d, e, xe.USER_REPORT, {message:a});
a = {creativeId:d, reason:a, adType:c.description(), seatId:e};
ca.trigger("reported_ad", a, b.getSession());
};
Pb.prototype.timeoutAd = function(b) {
return new Promise(function() {
setTimeout(function() {
return b.hide();
}, 4000);
});
};
Ia.prototype.render = function(b) {
var a = this;
b.t = this._localization ? function(b) {
return a._localization.translate(b);
} : function(a) {
return a;
};
return this._templateFunction(b);
};
Ia._matcher = /<%=([\s\S]+?)%>|<%([\s\S]+?)%>|$/g;
Ia._escapes = {"'":"'", "\\":"\\", "\r":"r", "\n":"n", "\u2028":"u2028",
"\u2029":"u2029"};
Ia._escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g;
Ia._escapeChar = function(b) {
return "\\" + Ia._escapes[b];
};
var uc;
(function(b) {
b[b.PRIVACY = 0] = "PRIVACY";
b[b.BUILD = 1] = "BUILD";
b[b.REPORT = 2] = "REPORT";
})(uc || (uc = {}));
h.inherits(Lc, Pb);
Lc.prototype.show = function() {
var b = this;
Pb.prototype.show.call(this);
this.populateUserSummary();
if (this._gdprEnabled) {
var a = this._userPrivacyManager.isOptOutEnabled() ? "gdpr-refuse-radio" :
"gdpr-agree-radio";
this._container.querySelector("#" + a).checked = !0;
this._container.querySelector(".middle-link").style.visibility = "hidden";
}
if (a = this._container.querySelector("#gdpr-agree-radio")) {
a.onclick = function() {
document.getElementById("data-deletion-
container").classList.remove("active");
document.getElementById("data-deletion-request-
container").classList.remove("active");
b._dataDeletionConfirmation = !1;
};
}
};
Lc.prototype.onCloseEvent = function(b) {
var a = this;
b.preventDefault();
var c = this._container.querySelector("#gdpr-refuse-radio");
this._gdprEnabled && this._handlers.forEach(function(b) {
if (b.onGDPROptOut) {
b.onGDPROptOut(c.checked || a._dataDeletionConfirmation);
}
});
this._handlers.forEach(function(a) {
return a.onPrivacyClose();
});
};
Lc.prototype.onPrivacyEvent = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
if (a.onPrivacy) {
a.onPrivacy(b.target.href);
}
});
};
Lc.prototype.onDataDeletion = function(b) {
b.preventDefault();
this._dataDeletionConfirmation || document.getElementById("data-deletion-
container").classList.toggle("active");
};
Lc.prototype.onDataDeletionConfirmation = function(b) {
b.preventDefault();
this._dataDeletionConfirmation = !0;
document.getElementById("data-deletion-container").classList.toggle("active");
document.getElementById("data-deletion-request-
container").classList.add("active");
this._container.querySelector("#gdpr-refuse-radio").checked = !0;
};
Lc.prototype.onReportAd = function(b) {
b.preventDefault();
if (!this._reportSent) {
b = this._container.querySelector(".report-choice-radio:checked");
var a = this._container.querySelector(".report-confirmed-text");
b && b.id ? (this._reportSent = !0, this.handleReportText(!0, a),
this._onReport.trigger(this._campaign, b.id)) : this.handleReportText(!1, a);
}
};
Lc.prototype.handleReportText = function(b, a) {
a && (b ? (a.innerHTML = "Thank you for your help. Your Ad will close
shortly.", a.classList.contains("active") || a.classList.toggle("active")) :
(a.innerHTML = "Please select an option from the list above.",
a.classList.toggle("active")));
};
Lc.prototype.changePrivacyState = function(b, a) {
b.preventDefault();
b = this._container.querySelector(".left-side-link");
var c = this._container.querySelector(".middle-link"), d =
this._container.querySelector(".close-button"), e = this._container.classList;
switch(this._currentState) {
case uc.PRIVACY:
b.innerText = "Privacy info \ud83d\udc41";
d.innerText = "Close";
a ? (this._currentState = uc.BUILD, c.innerText = "Report Ad \u2691",
e.add("build")) : (this._currentState = uc.REPORT, c.innerText = "Build info
\u2699", e.add("report"));
break;
case uc.BUILD:
e.remove("build");
a ? (this._currentState = uc.PRIVACY, b.innerText = "Build info \u2699",
c.innerText = "Report Ad \u2691", d.innerText = "Confirm") : (this._currentState =
uc.REPORT, b.innerText = "Privacy info \ud83d\udc41", c.innerText = "Build info
\u2699", e.add("report"));
break;
case uc.REPORT:
e.remove("report"), c.innerText = "Report Ad \u2691", a ?
(this._currentState = uc.PRIVACY, b.innerText = "Build info \u2699", d.innerText =
"Confirm") : (this._currentState = uc.BUILD, b.innerText = "Privacy info
\ud83d\udc41", e.add("build"));
}
};
Lc.prototype.populateUserSummary = function() {
var b = this;
this._userSummaryObtained ||
this._userPrivacyManager.retrieveUserSummary().then(function(a) {
b._userSummaryObtained = !0;
document.getElementById("sorry-message").innerHTML = "";
document.getElementById("phone-type").innerHTML = " - Using " +
a.deviceModel;
document.getElementById("country").innerHTML = " - Located in " + a.country;
document.getElementById("game-plays-this-week").innerHTML = " - Used this app
" + a.gamePlaysThisWeek + " times this week";
document.getElementById("ads-seen-in-game").innerHTML = " - Seen " +
a.adsSeenInGameThisWeek + " ads in this app";
document.getElementById("games-installed-from-ads").innerHTML = " - Installed
" + a.installsFromAds + " apps based on those ads";
}).catch(function(a) {
F.trigger("user_summary_failed", a);
document.getElementById("sorry-message").innerHTML = "Sorry. We were unable
to deliver our collected information at this time.";
});
};
h.inherits(Ug, I);
h.inherits(kc, I);
kc.prototype.render = function() {
I.prototype.render.call(this);
this._personalizedExpSwitch = this._container.querySelector("#personalized-
experience-switch");
this._personalizedAdsSwitch = this._container.querySelector("#personalized-ads-
switch");
this._personalized3rdPartySwitch =
this._container.querySelector("#personalized-ads-3rd-party-switch");
};
kc.prototype.show = function() {
var b = this._userPrivacyManager.getGranularPermissions();
this._personalizedExpSwitch.checked = b.gameExp;
this._personalizedAdsSwitch.checked = b.ads;
this._personalized3rdPartySwitch.checked = b.external;
this.setSwitches();
};
kc.prototype.isPersonalizedExperienceChecked = function() {
return this._personalizedExpSwitch ? this._personalizedExpSwitch.checked : !1;
};
kc.prototype.isPersonalizedAdsChecked = function() {
return this._personalizedAdsSwitch ? this._personalizedAdsSwitch.checked : !1;
};
kc.prototype.isAds3rdPartyChecked = function() {
return this._personalized3rdPartySwitch ?
this._personalized3rdPartySwitch.checked : !1;
};
kc.prototype.checkCheckboxes = function(b) {
this._personalizedExpSwitch && this._personalizedAdsSwitch &&
this._personalized3rdPartySwitch && (this._personalizedExpSwitch.checked = b,
this._personalizedAdsSwitch.checked = b, this._personalized3rdPartySwitch.checked =
b, this.setSwitches());
};
kc.prototype.setSwitches = function() {
this._personalizedAdsSwitch.checked ? this._container.querySelector("#third-
party-switch").classList.remove("disabled") :
(this._personalized3rdPartySwitch.checked = !1,
this._container.querySelector("#third-party-switch").classList.add("disabled"));
};
kc.prototype.onExpSwitchChange = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
return a.onSwitchGroupSelectionChange();
});
};
kc.prototype.onAdsSwitchChange = function(b) {
b.preventDefault();
this.setSwitches();
this._handlers.forEach(function(a) {
return a.onSwitchGroupSelectionChange();
});
};
kc.prototype.on3rdPartySwitchChange = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
return a.onSwitchGroupSelectionChange();
});
};
var ec;
(function(b) {
b[b.THIRD_PARTIES = 0] = "THIRD_PARTIES";
b[b.DATA = 1] = "DATA";
b[b.DEMOGRAPHIC_INFO = 2] = "DEMOGRAPHIC_INFO";
b[b.MOBILE_IDENTIFIERS = 3] = "MOBILE_IDENTIFIERS";
b[b.PERSONALIZATION = 4] = "PERSONALIZATION";
b[b.MEASUREMENT = 5] = "MEASUREMENT";
})(ec || (ec = {}));
h.inherits(tc, I);
tc.prototype.showParagraphAndScrollToSection = function(b) {
switch(b) {
case ec.THIRD_PARTIES:
var a = b = this._container.querySelector(".third-party");
break;
case ec.DATA:
a = b = this._container.querySelector(".what-we-collect");
break;
case ec.DEMOGRAPHIC_INFO:
b = this._container.querySelector(".what-we-collect");
a = this._container.querySelector(".measurement-paragraph");
break;
case ec.MOBILE_IDENTIFIERS:
a = b = this._container.querySelector(".what-we-collect");
break;
case ec.PERSONALIZATION:
a = b = this._container.querySelector(".what-we-collect");
break;
case ec.MEASUREMENT:
b = this._container.querySelector(".what-we-collect");
a = this._container.querySelector(".measurement-paragraph");
break;
default:
a = b = null;
}
b && b && b.parentElement && b.parentElement.classList.add("show-description");
a && a.scrollIntoView(!0);
};
tc.prototype.fillPersonalInfoFields = function() {
this._userPrivacyManager.retrieveUserSummary().then(function(b) {
document.getElementById("sorry-message").innerHTML = "";
document.getElementById("phone-type").innerHTML = "Using " + b.deviceModel;
document.getElementById("country").innerHTML = "Located in " + b.country;
document.getElementById("game-plays-this-week").innerHTML = "Used this app "
+ b.gamePlaysThisWeek + " times this week";
document.getElementById("ads-seen-in-game").innerHTML = "Seen " +
b.adsSeenInGameThisWeek + " ads in this app";
document.getElementById("games-installed-from-ads").innerHTML = "Installed "
+ b.installsFromAds + " apps based on those ads";
}).catch(function(b) {
F.trigger("gdpr_personal_info_failed", b);
document.getElementById("sorry-message").innerHTML = "Sorry. We were unable
to deliver our collected information at this time.";
});
};
tc.prototype.onWhatWeCollectEvent = function(b) {
b.preventDefault();
this.fillPersonalInfoFields();
b = this._container.querySelector(".what-we-collect");
this.toggleDescription(b);
};
tc.prototype.onDataTransferEvent = function(b) {
b.preventDefault();
b = this._container.querySelector(".data-transfer");
this.toggleDescription(b);
};
tc.prototype.onThirdPartyEvent = function(b) {
b.preventDefault();
b = this._container.querySelector(".third-party");
this.toggleDescription(b);
};
tc.prototype.onChangingPrivacyChoiceEvent = function(b) {
b.preventDefault();
b = this._container.querySelector(".changing-privacy-choice");
this.toggleDescription(b);
};
tc.prototype.onPrivacyPolicyEvent = function(b) {
b.preventDefault();
b = this._container.querySelector(".privacy-policy");
this.toggleDescription(b);
};
tc.prototype.toggleDescription = function(b) {
b && b.parentElement && (b.parentElement.classList.contains("show-description")
? b.parentElement.classList.remove("show-description") :
b.parentElement.classList.add("show-description"));
};
tc.prototype.onPrivacyEvent = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
return a.onPrivacy(b.target.href);
});
};
var Gc;
(function(b) {
b.HOMESCREEN = "homescreen";
b.INTRO = "intro";
b.MY_CHOICES = "mychoices";
})(Gc || (Gc = {}));
h.inherits(Aa, I);
Aa.prototype.testAutoConsentAll = function() {
var b = new Event("testAutoConsent");
this.onAcceptAllEvent(b);
};
Aa.prototype.testAutoConsent = function(b) {
this._handlers.forEach(function(a) {
return a.onConsent(b, yc.USER);
});
this._handlers.forEach(function(a) {
return a.onClose();
});
};
Aa.prototype.render = function() {
I.prototype.render.call(this);
this._switchGroup.render();
this._container.querySelector(".switch-group-
container").appendChild(this._switchGroup.container());
this._privacyRowItemContainer.render();
this._container.querySelector(".privacy-
container").appendChild(this._privacyRowItemContainer.container());
this._consentButtonContainer = this._container.querySelector(".consent-button-
container");
this._platform === p.ANDROID && this._apiLevel && 19 >= this._apiLevel ?
this._container.classList.add("android4-ios7-ios8") : this._platform === p.IOS &&
this._osVersion && (this._osVersion.match(/^8/) || this._osVersion.match(/^7/)) &&
this._container.classList.add("android4-ios7-ios8");
this._landingPage === Gc.HOMESCREEN && this._container.querySelector("#consent-
my-choices").classList.add("show-back-button");
this._isCtaAbTest && this._container.querySelector("#consent-
homescreen").classList.add("no-borders-test");
this.showPage(this._landingPage);
};
Aa.prototype.show = function() {
I.prototype.show.call(this);
this._switchGroup.show();
};
Aa.prototype.onSwitchGroupSelectionChange = function() {
this._consentButtonContainer && (this.shouldShowSaveMyChoices() ?
this._consentButtonContainer.classList.add("show-save-my-choices-button") :
this._consentButtonContainer.classList.remove("show-save-my-choices-button"));
};
Aa.prototype.onPrivacy = function(b) {
this._handlers.forEach(function(a) {
return a.onPrivacy(b);
});
};
Aa.prototype.shouldShowSaveMyChoices = function() {
return this._switchGroup.isPersonalizedExperienceChecked() ||
this._switchGroup.isPersonalizedAdsChecked() ||
this._switchGroup.isAds3rdPartyChecked();
};
Aa.prototype.closeWithAnimation = function(b) {
var a = this;
this.container().classList.add("prevent-clicks");
var c = new Ug(this._platform);
c.render();
b.appendChild(c.container());
b.classList.add("click-animation");
setTimeout(function() {
a._handlers.forEach(function(a) {
return a.onClose();
});
}, 1500);
};
Aa.prototype.showPage = function(b) {
var a = this;
this._currentPage = b;
[Gc.HOMESCREEN, Gc.INTRO, Gc.MY_CHOICES].forEach(function(c) {
c === b ? a.container().classList.add(b) : a.container().classList.remove(c);
});
};
Aa.prototype.onContinueEvent = function(b) {
b.preventDefault();
this.container().classList.remove("intro");
};
Aa.prototype.onAcceptAllEvent = function(b) {
b.preventDefault();
var a = {all:!0};
this._handlers.forEach(function(b) {
return b.onConsent(a, yc.NO_REVIEW);
});
b = this._container.querySelector(".accept-all");
this.closeWithAnimation(b);
};
Aa.prototype.onAgreeEvent = function(b) {
b.preventDefault();
this._switchGroup.checkCheckboxes(!0);
var a = {gameExp:!0, ads:!0, external:!0};
this._handlers.forEach(function(b) {
return b.onConsent(a, yc.USER);
});
b = this._container.querySelector(".agree");
this.closeWithAnimation(b);
};
Aa.prototype.onDisagreeEvent = function(b) {
b.preventDefault();
var a = {gameExp:!1, ads:!1, external:!1};
this._handlers.forEach(function(b) {
return b.onConsent(a, yc.USER);
});
b = this._container.querySelector(".disagree");
this.closeWithAnimation(b);
};
Aa.prototype.onSaveMyChoicesEvent = function(b) {
b.preventDefault();
var a = {gameExp:this._switchGroup.isPersonalizedExperienceChecked(),
ads:this._switchGroup.isPersonalizedAdsChecked(),
external:this._switchGroup.isAds3rdPartyChecked()};
this._handlers.forEach(function(b) {
return b.onConsent(a, yc.USER);
});
b = this._container.querySelector(".save-my-choices");
this.closeWithAnimation(b);
};
Aa.prototype.onOptionsEvent = function(b) {
b.preventDefault();
this.showPage(Gc.MY_CHOICES);
};
Aa.prototype.onThirdPartiesLinkEvent = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.THIRD_PARTIES);
};
Aa.prototype.onDataLinkEvent = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.DATA);
};
Aa.prototype.onDemographicInfoLinkEvent = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.DEMOGRAPHIC_INFO);
};
Aa.prototype.onMobileIdentifiersLinkEvent = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.MOBILE_IDENTIFIERS);
};
Aa.prototype.onPersonalizationLink = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.PERSONALIZATION);
};
Aa.prototype.onMeasurementLinkEvent = function(b) {
b.preventDefault();
this.showMyChoicesPageAndScrollToParagraph(ec.MEASUREMENT);
};
Aa.prototype.onBackButtonEvent = function(b) {
b.preventDefault();
this.showPage(Gc.HOMESCREEN);
};
Aa.prototype.showMyChoicesPageAndScrollToParagraph = function(b) {
this.showPage(Gc.MY_CHOICES);
this._privacyRowItemContainer.showParagraphAndScrollToSection(b);
};
Se.prototype.onPrivacy = function(b) {
this._platform === p.IOS ? this._core.iOS.UrlScheme.open(b) : this._platform
=== p.ANDROID &&
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:b});
};
Se.prototype.onPrivacyClose = function() {
};
Se.prototype.onGDPROptOut = function(b) {
this._configuration.isOptOutRecorded() ? b !==
this._configuration.isOptOutEnabled() && (this._configuration.setOptOutEnabled(b),
b ? this._privacyManager.sendGDPREvent(id.OPTOUT, yc.USER) :
this._privacyManager.sendGDPREvent(id.OPTIN)) :
(this._configuration.setOptOutRecorded(!0),
this._configuration.setOptOutEnabled(b), b ?
this._privacyManager.sendGDPREvent(id.OPTOUT, yc.USER) :
this._privacyManager.sendGDPREvent(id.SKIP));
};
Se.prototype.onPersonalizedConsent = function(b) {
this._configuration.getGamePrivacy().isEnabled() && sg(b) &&
this._privacyManager.updateUserPrivacy(b, yc.USER, Gc.MY_CHOICES);
};
h.inherits(lc, I);
lc.setAutoSkip = function(b) {
lc.AutoSkip = b;
};
lc.prototype.setSkipDuration = function(b) {
this._skipDuration = this._skipRemaining = 1000 * b;
};
lc.prototype.setVideoDuration = function(b) {
this._videoDuration = b;
};
lc.prototype.isMuted = function() {
return this._muted;
};
lc.prototype.setFadeEnabled = function(b) {
this._fadeEnabled !== b && (this._fadeEnabled = b);
};
lc.prototype.isPrivacyShowing = function() {
return this._isPrivacyShowing;
};
lc.AutoSkip = !1;
Ba.getLanguageMap = function(b, a) {
var c = Ba._languageMap[b];
if (c) {
return c[a];
}
for (var d in Ba._languageMap) {
if (Ba._languageMap.hasOwnProperty(d) && b.match(d)) {
return Ba._languageMap[d][a];
}
}
};
Ba.setLanguageMap = function(b, a, c) {
Ba._languageMap || (Ba._languageMap = {});
Ba._languageMap[b] || (Ba._languageMap[b] = {});
Ba._languageMap[b][a] = c;
};
Ba.getLocalizedAbbreviations = function(b) {
var a = Ba._localizedAbbreviations[b];
if (a) {
return a;
}
for (var c in Ba._localizedAbbreviations) {
if (Ba._localizedAbbreviations.hasOwnProperty(c) && b.match(c)) {
return Ba._localizedAbbreviations[c];
}
}
};
Ba.prototype.translate = function(b) {
var a = Ba.getLanguageMap(this._language, this._namespace);
return a && b in a ? a[b] : b;
};
Ba.prototype.abbreviate = function(b) {
var a = Ba.getLocalizedAbbreviations(this._language);
return a ? 1000000 <= b ? Math.floor(b / 1000000).toString() + " " +
a.million : 10000 <= b ? Math.floor(b / 1000).toString() + " " + a.thousand :
b.toString() : b.toString();
};
Ba._languageMap = {"en.*":{endscreen:JSON.parse('{\n "Ratings": "Ratings",\n
"Download For Free": "Download For Free"\n}\n'), overlay:JSON.parse('{\n "Learn
More": "Learn More",\n "Install Now": "Install Now"\n}\n'),
loadingscreen:JSON.parse('{\n "Try the playable demo": "Try the playable
demo"\n}\n')}, "ru.*":{endscreen:JSON.parse('{\n "Ratings":
"\u041e\u0446\u0435\u043d\u043a\u0438",\n "Download For Free":
"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "\u0423\u0437\u043d\u0430\u0442\u044c
\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435",\n "Install Now":
"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c"\n}\n'),
loadingscreen:JSON.parse('{\n "Try the playable demo":
"\u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c
\u0434\u0435\u043c\u043e"\n}\n')}, "ja.*":{endscreen:JSON.parse('{\n "Ratings":
"\u8a55\u4fa1",\n "Download For Free":
"\u7121\u6599\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "\u3082\u3063\u3068\u307f\u308b",\n
"Install Now": "\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb"\n}\n')}, "ko.*":
{endscreen:JSON.parse('{\n "Ratings": "\ud3c9\uc810",\n "Download For Free":
"\ubb34\ub8cc \ub2e4\uc6b4\ub85c\ub4dc"\n}\n'), overlay:JSON.parse('{\n "Learn
More": "\ub354 \uc54c\uc544\ubcf4\uae30",\n "Install Now":
"\ub2e4\uc6b4\ub85c\ub4dc"\n}\n')}, "it.*":{endscreen:JSON.parse('{\n "Ratings":
"Valutazioni",\n "Download For Free": "Scarica gratis"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Altre info",\n "Install Now": "Installa
Ora"\n}\n'), loadingscreen:JSON.parse('{\n "Try the playable demo": "Prova la demo
giocabile"\n}\n')}, "de.*":{endscreen:JSON.parse('{\n "Ratings": "Bewertungen",\n
"Download For Free": "Gratis Download"\n}\n'), overlay:JSON.parse('{\n "Learn
More": "Erfahre mehr",\n "Install Now": "Installieren"\n}\n'),
loadingscreen:JSON.parse('{\n "Try the playable demo": "Probier die Demo
f\u00fcr"\n}\n')}, "zh(_TW|_HK|_MO|_#?Hant)?(_TW|_HK|_MO|_#?Hant)+$":
{endscreen:JSON.parse('{\n "Ratings": "\u8a55\u5206",\n "Download For Free":
"\u514d\u8cbb\u4e0b\u8f09"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "\u4e86\u89e3\u66f4\u591a",\n "Install
Now": "\u7acb\u5373\u4e0b\u8f7d"\n}\n'), loadingscreen:JSON.parse('{\n "Try the
playable demo": "\u8bd5\u73a9\u4e00\u4e0b\u6e38\u620f"\n}\n')}, "zh(((_#?Hans)?
(_\\D\\D)?)|((_\\D\\D)?(_#?Hans)?))$":{endscreen:JSON.parse('{\n "Ratings":
"\u8bc4\u4ef7",\n "Download For Free": "\u514d\u8d39\u4e0b\u8f7d"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "\u66f4\u591a\u4fe1\u606f",\n "Install
Now": "\u7acb\u5373\u4e0b\u8f09"\n}\n'),
loadingscreen:JSON.parse('{\n "Try the playable demo":
"\u8bd5\u73a9\u4e00\u4e0b\u6e38\u620f"\n}\n')}, "fi.*":{endscreen:JSON.parse('{\n
"Ratings": "Suosio",\n "Download For Free": "Lataa ilmaiseksi"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Lis\u00e4\u00e4 tietoa",\n "Install Now":
"Asenna nyt"\n}\n'), loadingscreen:JSON.parse('{\n "Try the playable demo":
"Kokeile pelattavaa demoa"\n}\n')}, "es.*":{endscreen:JSON.parse('{\n "Ratings":
"Valoraciones",\n "Download For Free": "Descarga gratis"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "M\u00e1s informaci\u00f3n",\n "Install
Now": "Instalar Ahora"\n}\n'), loadingscreen:JSON.parse('{\n "Try the playable
demo": "Prueba la demo"\n}\n')}, "fr.*":{endscreen:JSON.parse('{\n "Ratings":
"Notes",\n "Download For Free": "T\u00e9l\u00e9chargement gratuit"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Plus d\'infos",\n "Install Now":
"Installer"\n}\n'), loadingscreen:JSON.parse('{\n "Try the playable demo":
"Essayez la d\u00e9mo jouable"\n}\n')},
"tr.*":{endscreen:JSON.parse('{\n "Ratings": "Oylar",\n "Download For Free":
"Bedava indir"\n}\n'), overlay:JSON.parse('{\n "Learn More": "Daha fazla bilgi",\n
"Install Now": "\u015eimdi Kur"\n}\n')}, da_DK:{endscreen:JSON.parse('{\n
"Ratings": "Anmeldelser",\n "Download For Free": "Download gratis"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Mere information",\n "Install Now":
"Install\u00e9r nu"\n}\n')}, "nb.*":{endscreen:JSON.parse('{\n "Ratings":
"Anmeldelser",\n "Download For Free": "Last ned gratis"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Les mer",\n "Install Now": "Installare
n\u00e5"\n}\n')}, "lt.*":{endscreen:JSON.parse('{\n "Ratings":
"\u012evertinimai",\n "Download For Free": "Atsisi\u0173sti nemokamai"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "Daugiau informacijos",\n "Install Now":
"Atsisi\u0173sti"\n}\n')}, "is.*":{endscreen:JSON.parse('{\n "Ratings":
"Einkunnir",\n "Download For Free": "Fr\u00edtt Ni\u00f0urhal"\n}\n'),
overlay:JSON.parse('{\n "Learn More": "L\u00e6ra meira",\n "Install Now": "Setja
upp"\n}\n')},
"ro.*":{endscreen:JSON.parse('{\n "Ratings": "Note",\n "Download For Free":
"Descarc\u0103 gratis"\n}\n'), overlay:JSON.parse('{\n "Learn More": "Afl\u0103
mai multe",\n "Install Now": "Descarc\u0103"\n}\n')}, "pt.*":
{endscreen:JSON.parse('{\n "Ratings": "Avalia\u00e7\u00f5es",\n "Download For
Free": "Baixe de Gra\u00e7a"\n}\n'), overlay:JSON.parse('{\n "Learn More": "Saiba
Mais",\n "Install Now": "Instale Agora"\n}\n'), loadingscreen:JSON.parse('{\n
"Try the playable demo": "Teste o demo"\n}\n')}};
Ba._localizedAbbreviations = {"en.*":{thousand:"k", million:"m"}, "zh.*":
{thousand:"\u5343", million:"\u767e\u4e07"}};
h.inherits(T, lc);
T.prototype.hide = function() {
lc.prototype.hide.call(this);
this.cleanUpPrivacy();
this._showGDPRBanner && this._handlers.forEach(function(b) {
return b.onGDPRPopupSkipped();
});
};
T.prototype.render = function() {
lc.prototype.render.call(this);
this.setupElementReferences();
this.choosePrivacyShown();
"CN" === this._country && this._chinaAdvertisementElement &&
(this._chinaAdvertisementElement.style.display = "block");
(O.isCloseIconSkipEnabled(this._gameId) || this._useCloseIconInsteadOfSkipIcon)
&& this._skipButtonElement.classList.add("close-icon-skip");
};
T.prototype.setSpinnerEnabled = function(b) {
this._spinnerEnabled !== b && (this._spinnerEnabled = b,
this._spinnerElement.style.display = b ? "block" : "none");
};
T.prototype.setSkipEnabled = function(b) {
this._skipEnabled !== b && (this._skipEnabled = b);
};
T.prototype.setVideoDurationEnabled = function(b) {
this._videoDurationEnabled !== b && (this._videoDurationEnabled = b);
};
T.prototype.setVideoProgress = function(b) {
var a = this;
T.AutoSkip && this._handlers.forEach(function(a) {
return a.onOverlaySkip(b);
});
this._fadeEnabled && !this._fadeTimer && (!this._skipEnabled || 0 >=
this._skipRemaining) && (this._fadeTimer = window.setTimeout(function() {
a.fadeOut();
a._fadeTimer = void 0;
}, 3000));
this._videoProgress = b;
this._skipRemaining = this._skipDuration - this._videoProgress;
var c = this._skipUnderTimerExperimentEnabled ? Math.ceil(this._skipRemaining /
1000) : Math.ceil((this._videoDuration - this._videoProgress) / 1000);
"number" === typeof c && !isNaN(c) && 0 < c && (this._timerElement.innerText =
c.toString());
0 >= this._skipRemaining && (this._skipUnderTimerExperimentEnabled &&
this.hideTimerButton(), this.showSkipButton(),
this._chinaAdvertisementElement.classList.add("with-skip-button"));
(this._campaign instanceof D || this._campaign instanceof L) && !
this._skipEnabled && 5000 < this._videoProgress && this.showCallButton();
};
T.prototype.setMuteEnabled = function(b) {
this._muteEnabled !== b && (this._muteEnabled = b,
this._muteButtonElement.style.display = b ? "block" : "none");
};
T.prototype.setDebugMessage = function(b) {
this._debugMessageElement.innerHTML = b;
};
T.prototype.setDebugMessageVisible = function(b) {
this._debugMessageVisible !== b && (this._debugMessageElement.style.display = b
? "block" : "none");
};
T.prototype.setCallButtonVisible = function(b) {
this._callButtonVisible !== b && (this._callButtonElement.style.display = b ?
"block" : "none");
};
T.prototype.setCallButtonEnabled = function(b) {
this._callButtonEnabled !== b && (this._callButtonEnabled = b);
};
T.prototype.isMuted = function() {
return this._muted;
};
T.prototype.onPrivacyClose = function() {
this._privacy && this._privacy.hide();
this._isPrivacyShowing = !1;
this._ads.VideoPlayer.play();
};
T.prototype.choosePrivacyShown = function() {
this._showPrivacyDuringVideo ? this._showGDPRBanner ?
(this._container.classList.add("show-gdpr-banner"),
this._container.classList.remove("show-gdpr-button")) :
(this._container.classList.remove("show-gdpr-banner"),
this._container.classList.add("show-gdpr-button")) :
(this._container.classList.remove("show-gdpr-banner"),
this._container.classList.remove("show-gdpr-button"));
};
T.prototype.onGDPRPopupEvent = function(b) {
b.preventDefault();
b.stopPropagation();
this._isPrivacyShowing = !0;
this._showGDPRBanner = !1;
this.choosePrivacyShown();
this._ads.VideoPlayer.pause();
this._privacy && this._privacy.show();
};
T.prototype.onPrivacyEvent = function(b) {
this._isPrivacyShowing = !0;
b.preventDefault();
b.stopPropagation();
this._ads.VideoPlayer.pause();
this._privacy && this._privacy.show();
};
T.prototype.onSkipEvent = function(b) {
var a = this;
b.preventDefault();
b.stopPropagation();
this._skipEnabled && this._videoProgress > this._skipDuration &&
this._handlers.forEach(function(b) {
return b.onOverlaySkip(a._videoProgress);
});
};
T.prototype.onMuteEvent = function(b) {
var a = this;
b.preventDefault();
b.stopPropagation();
this.resetFadeTimer();
this._muted ? (this._muteButtonElement.classList.remove("muted"), this._muted =
!1) : (this._muteButtonElement.classList.add("muted"), this._muted = !0);
this._handlers.forEach(function(b) {
return b.onOverlayMute(a._muted);
});
};
T.prototype.onCallButtonEvent = function(b) {
this._callButtonEnabled && (b.preventDefault(), b.stopPropagation(),
this.resetFadeTimer(), this._handlers.forEach(function(a) {
return a.onOverlayCallButton();
}), this.triggerOnOverlayDownload());
};
T.prototype.triggerOnOverlayDownload = function() {
var b = this;
if (this._campaign instanceof D || this._campaign instanceof L) {
var a = this._campaign;
this._handlers.filter(function(a) {
return "function" === typeof a.onOverlayDownload;
}).forEach(function(c) {
if ("function" === typeof c.onOverlayDownload) {
c.onOverlayDownload({clickAttributionUrl:a.getClickAttributionUrl(),
clickAttributionUrlFollowsRedirects:a.getClickAttributionUrlFollowsRedirects(),
bypassAppSheet:a.getBypassAppSheet(), appStoreId:a.getAppStoreId(),
store:a.getStore(), videoDuration:b._videoDuration, videoProgress:b._videoProgress,
appDownloadUrl:a instanceof D ? a.getAppDownloadUrl() : void 0,
skipEnabled:b._skipEnabled});
}
});
}
};
T.prototype.onPauseForTestingEvent = function(b) {
b.preventDefault();
b.stopPropagation();
this.resetFadeTimer();
this._handlers.forEach(function(a) {
return a.onOverlayPauseForTesting(!0);
});
};
T.prototype.onClick = function() {
this.resetFadeTimer();
this._areControlsVisible ? this.fadeOut() : this.fadeIn();
};
T.prototype.setupElementReferences = function() {
this._skipButtonElement = this._container.querySelector(".skip-button");
this._spinnerElement = this._container.querySelector(".buffering-spinner");
this._muteButtonElement = this._container.querySelector(".mute-button");
this._debugMessageElement = this._container.querySelector(".debug-message-
text");
this._callButtonElement = this._container.querySelector(".call-button");
this._timerElement = this._container.querySelector(".timer");
this._chinaAdvertisementElement = this._container.querySelector(".china-
advertisement");
this._timerButton = this._container.querySelector(".timer-button");
};
T.prototype.showSkipButton = function() {
this._skipEnabled && (this._skipButtonElement.classList.add("show-skip-
button"), (this._campaign instanceof D || this._campaign instanceof L) &&
this.showCallButton());
};
T.prototype.hideTimerButton = function() {
this._timerButton.style.display = "none";
};
T.prototype.resetFadeTimer = function() {
this._fadeTimer && (clearTimeout(this._fadeTimer), this._fadeTimer = void 0);
};
T.prototype.showCallButton = function() {
this._callButtonElement.classList.add("show-call-button");
this._callButtonElement.classList.add("show-go-text");
};
T.prototype.fadeIn = function() {
var b = this;
this._container && (this._container.classList.add("fade-in"),
this._areControlsVisible = !0, this._campaign instanceof D || this._campaign
instanceof L || setTimeout(function() {
b.showCallButton();
}, 500));
};
T.prototype.fadeOut = function() {
this._container.classList.remove("fade-in");
this._areControlsVisible = !1;
};
T.prototype.cleanUpPrivacy = function() {
if (this._privacy) {
this._privacy.hide();
var b = this._privacy.container();
b && b.parentElement && b.parentElement.removeChild(b);
delete this._privacy;
}
};
var Ub;
(function(b) {
b[b.INITIAL = 0] = "INITIAL";
b[b.PERSONALIZATION = 1] = "PERSONALIZATION";
b[b.DATA = 2] = "DATA";
b[b.REPORT = 3] = "REPORT";
b[b.BUILD_INFO = 4] = "BUILD_INFO";
})(Ub || (Ub = {}));
h.inherits(Xa, Pb);
Xa.prototype.render = function() {
Pb.prototype.render.call(this);
this._privacyRowItemContainer.render();
this._container.querySelector(".info-
container").appendChild(this._privacyRowItemContainer.container());
this._personalizationSwitchGroup.render();
this._container.querySelector(".checkbox-group-
container").appendChild(this._personalizationSwitchGroup.container());
this.showView(Ub.INITIAL);
};
Xa.prototype.onPrivacy = function(b) {
this._handlers.forEach(function(a) {
if (a.onPrivacy) {
a.onPrivacy(b);
}
});
};
Xa.prototype.hide = function() {
Pb.prototype.hide.call(this);
this._currentViewState === Ub.PERSONALIZATION &&
this.triggerPersonalizedConsent();
};
Xa.prototype.onCloseEvent = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
return a.onPrivacyClose();
});
};
Xa.prototype.onPrivacyEvent = function(b) {
b.preventDefault();
this._handlers.forEach(function(a) {
if (a.onPrivacy) {
a.onPrivacy(b.target.href);
}
});
};
Xa.prototype.onBackButtonEvent = function(b) {
b.preventDefault();
this._currentViewState === Ub.PERSONALIZATION &&
this.triggerPersonalizedConsent();
this.showView(Ub.INITIAL);
};
Xa.prototype.onPersonalizationButtonEvent = function(b) {
b.preventDefault();
this.showView(Ub.PERSONALIZATION);
};
Xa.prototype.onDeleteDataButtonEvent = function(b) {
b.preventDefault();
this.showView(Ub.DATA);
};
Xa.prototype.onReportAdButtonEvent = function(b) {
b.preventDefault();
this.showView(Ub.REPORT);
};
Xa.prototype.onBuildInfoButtonEvent = function(b) {
b.preventDefault();
this.showView(Ub.BUILD_INFO);
};
Xa.prototype.onReportAdEvent = function(b) {
b.preventDefault();
if (!this._reportSent) {
b = this._container.querySelector(".report-choice-radio:checked");
var a = this._container.querySelector(".report-confirmed-text");
b && b.id ? (this._reportSent = !0, this.handleReportText(!0, a),
this._onReport.trigger(this._campaign, b.id)) : this.handleReportText(!1, a);
}
};
Xa.prototype.handleReportText = function(b, a) {
a && (b ? (a.innerHTML = "Thank you for your help. Your Ad will close
shortly.", a.classList.contains("active") || a.classList.toggle("active")) :
(a.innerHTML = "Please select an option from the list above.",
a.classList.toggle("active")));
};
Xa.prototype.triggerPersonalizedConsent = function() {
var b =
{gameExp:this._personalizationSwitchGroup.isPersonalizedExperienceChecked(),
ads:this._personalizationSwitchGroup.isPersonalizedAdsChecked(),
external:this._personalizationSwitchGroup.isAds3rdPartyChecked()};
this._handlers.forEach(function(a) {
if (a.onPersonalizedConsent) {
a.onPersonalizedConsent(b);
}
});
};
Xa.prototype.showView = function(b) {
var a = this;
this._currentViewState = b;
switch(b) {
case Ub.INITIAL:
var c = "initial";
break;
case Ub.PERSONALIZATION:
c = "personalization";
break;
case Ub.DATA:
c = "data";
break;
case Ub.REPORT:
c = "report";
break;
case Ub.BUILD_INFO:
c = "build-info";
break;
default:
c = "initial";
}
["initial", "personalization", "data", "report", "build-
info"].forEach(function(b) {
b === c ? (a.container().classList.add(c), "personalization" === b &&
a._personalizationSwitchGroup.show()) : a.container().classList.remove(b);
});
};
Xa.prototype.onDeleteYourDataButtonEvent = function(b) {
b.preventDefault();
this._container.querySelector(".delete-data-
container").classList.add("active");
};
Xa.prototype.onDataDeletionConfirmationEvent = function(b) {
b.preventDefault();
b = this._container.querySelector(".delete-data-container");
b.classList.remove("active");
b.classList.add("data-deletion-confirmed");
this._personalizationSwitchGroup.checkCheckboxes(!1);
this.triggerPersonalizedConsent();
};
Xa.prototype.onDataDeletionCancelEvent = function(b) {
b.preventDefault();
this._container.querySelector(".delete-data-
container").classList.remove("active");
};
Xa.prototype.onViewContainerEvent = function(b) {
b.stopPropagation();
};
Na.setForcedGDPRBanner = function(b) {
Na._forceGDPRBanner = b;
};
Na.prototype.create = function(b, a, c, d, e) {
this._campaign = b;
this._placement = a;
this._orientation = c;
this._options = e;
this._playerMetadataServerId = d;
b = this.getBaseParameters();
return this.createParameters(b);
};
Na.prototype.getBaseParameters = function() {
var b = {};
return {platform:this._platform, core:this._core, ads:this._ads,
store:this._store, forceOrientation:this._orientation,
focusManager:this._focusManager, container:this._container,
deviceInfo:this._deviceInfo, clientInfo:this._clientInfo,
thirdPartyEventManager:this._thirdPartyEventManagerFactory.create((b[ff.ZONE] =
this._placement.getId(), b[ff.SDK_VERSION] =
this._clientInfo.getSdkVersion().toString(), b[ff.GAMER_SID] =
this._playerMetadataServerId || "", b)),
operativeEventManager:this.getOperativeEventManager(),
placement:this._placement, campaign:this._campaign,
coreConfig:this._coreConfig, adsConfig:this._adsConfig,
request:this._requestManager, privacyManager:this._privacyManager,
programmaticTrackingService:this._programmaticTrackingService,
gameSessionId:this._sessionManager.getGameSessionId(), options:this._options,
privacy:this.createPrivacy()};
};
Na.prototype.getOperativeEventManager = function() {
return Vg.createOperativeEventManager({platform:this._platform,
core:this._core, ads:this._ads, request:this._requestManager,
metaDataManager:this._metadataManager, sessionManager:this._sessionManager,
clientInfo:this._clientInfo, deviceInfo:this._deviceInfo,
coreConfig:this._coreConfig, adsConfig:this._adsConfig,
storageBridge:this._storageBridge, campaign:this._campaign,
playerMetadataServerId:this._playerMetadataServerId});
};
Na.prototype.createPrivacy = function() {
var b = this._adsConfig.getGamePrivacy().isEnabled() ? new Xa(this._platform,
this._campaign, this._privacyManager, this._adsConfig.isGDPREnabled(),
this._coreConfig.isCoppaCompliant()) : new Lc(this._platform, this._campaign,
this._privacyManager, this._adsConfig.isGDPREnabled(),
this._coreConfig.isCoppaCompliant());
var a = new Se({platform:this._platform, core:this._core,
privacyManager:this._privacyManager, adsConfig:this._adsConfig});
b.addEventHandler(a);
return b;
};
Na.prototype.showGDPRBanner = function(b) {
return Na._forceGDPRBanner ? !0 : nb.LEGITIMATE_INTEREST !==
b.adsConfig.getGamePrivacy().getMethod() ? !1 : b.adsConfig.isGDPREnabled() ? !
b.adsConfig.isOptOutRecorded() : !1;
};
Na.prototype.getVideo = function(b, a) {
b = Oa.getOrientedVideo(b, a);
if (!b) {
throw new hb("Unable to select an oriented video");
}
return b;
};
Na.prototype.createEndScreenParameters = function(b, a, c) {
var d = this.showGDPRBanner(c);
return {platform:c.platform, core:c.core, language:c.deviceInfo.getLanguage(),
gameId:c.clientInfo.getGameId(), targetGameName:a,
abGroup:c.coreConfig.getAbGroup(), privacy:b, showGDPRBanner:d, adUnitStyle:void 0,
campaignId:void 0, osVersion:void 0};
};
Na.prototype.createOverlay = function(b, a, c) {
a = new T(b, a, this.showGDPRBanner(b), c);
b.placement.disableVideoControlsFade() && a.setFadeEnabled(!1);
return a;
};
var Ob;
(function(b) {
b.OPEN_URL = "openUrl";
b.CLOSE = "close";
b.FORCE_ORIENTATION = "forceOrientation";
b.CLICK = "click";
b.VIDEO_START = "videoStart";
b.GRANT_REWARD = "grantReward";
b.DISABLE_BACK_BUTTON = "disableBackButton";
b.OPEN_STORE_OVERLAY = "openStoreOverlay";
b.OPEN_IN_APP_STORE = "openInAppStore";
b.FETCH_APP_STORE_OVERLAY = "fetchAppStoreOverlay";
b.TRACKING = "tracking";
b.GET_CLICK_SIGNAL = "getClickSignal";
b.USER_SEEKED = "seeked";
})(Ob || (Ob = {}));
$d.prototype.connect = function(b) {
this._iframe = b;
window.addEventListener("message", this._messageListener);
};
$d.prototype.disconnect = function() {
window.removeEventListener("message", this._messageListener);
};
$d.prototype.onBackPressed = function() {
this.postMessage("back");
};
$d.prototype.sendClickSignalResponse = function(b) {
this.postMessage("clickSignal", b);
};
$d.prototype.onMessage = function(b) {
b = b.data;
if ("afma" === b.type && (this._core.Sdk.logInfo("afma: event=" + b.event + ",
data=" + JSON.stringify(b.data)), b.event in this._afmaHandlers)) {
(0,this._afmaHandlers[b.event])(b);
}
};
$d.prototype.postMessage = function(b, a) {
this._iframe.contentWindow.postMessage({type:"afma", event:b, data:a}, "*");
};
var mg;
(mg || (mg = {})).ORIENTATION = "orientation";
Re.prototype.connect = function() {
window.addEventListener("message", this._messageListener, !1);
};
Re.prototype.disconnect = function() {
window.removeEventListener("message", this._messageListener);
};
Re.prototype.onMessage = function(b) {
b = b.data;
if ("mraid" === b.type && (this._core.Sdk.logDebug("mraid: event=" + b.event +
", data=" + b.data), b.event in this._mraidHandlers)) {
(0,this._mraidHandlers[b.event])(b);
}
};
Re.prototype.handleSetOrientationProperties = function(b) {
var a = ja.NONE;
if (b.forceOrientation) {
switch(b.forceOrientation) {
case "landscape":
a = ja.LANDSCAPE;
break;
case "portrait":
a = ja.PORTRAIT;
break;
case "none":
a = ja.NONE;
}
}
this._handler.onSetOrientationProperties(b.allowOrientation, a);
};
h.inherits(ma, I);
ma.prototype.render = function() {
I.prototype.render.call(this);
this.setupIFrame();
this._gdprBanner = this._container.querySelector(".gdpr-pop-up");
this._privacyButton = this._container.querySelector(".privacy-button");
};
ma.prototype.show = function() {
I.prototype.show.call(this);
this._afmaBridge.connect(this._iframe);
this._mraidBridge.connect(this._iframe);
this._handlers.forEach(function(b) {
return b.onShow();
});
this.choosePrivacyShown();
};
ma.prototype.hide = function() {
this._mraidBridge.disconnect();
this._afmaBridge.disconnect();
I.prototype.hide.call(this);
this._privacy && (this._privacy.removeEventHandler(this), this._privacy.hide(),
this._privacy.container().parentElement.removeChild(this._privacy.container()));
this._showGDPRBanner && !this._gdprPopupClicked &&
this._handlers.forEach(function(b) {
return b.onGDPRPopupSkipped();
});
};
ma.prototype.onPrivacyClose = function() {
this._privacy && this._privacy.hide();
};
ma.prototype.onBackPressed = function() {
this._afmaBridge.onBackPressed();
};
ma.prototype.sendClickSignalResponse = function(b) {
this._afmaBridge.sendClickSignalResponse(b);
};
ma.prototype.choosePrivacyShown = function() {
this._showGDPRBanner && !this._gdprPopupClicked ?
(this._gdprBanner.style.visibility = "visible",
this._privacyButton.style.pointerEvents = "1", this._privacyButton.style.visibility
= "hidden") : (this._privacyButton.style.visibility = "visible",
this._gdprBanner.style.pointerEvents = "1", this._gdprBanner.style.visibility =
"hidden");
};
ma.prototype.setupIFrame = function() {
var b = this._iframe = this._container.querySelector("#admob-iframe");
this._iframe = b;
this.getIFrameSrcDoc().then(function(a) {
b.srcdoc = a;
});
};
ma.prototype.getIFrameSrcDoc = function() {
var b = this._campaign.getDynamicMarkup(), a = (new
DOMParser).parseFromString(b, "text/html");
if (!a) {
return Promise.reject(Error("Not a valid HTML document => " + b));
}
this.removeScriptTags(a);
this.injectVideoURL(a);
return this.injectScripts(a).then(function() {
return a.documentElement.outerHTML;
});
};
ma.prototype.injectVideoURL = function(b) {
var a = this._campaign.getVideo();
if (a) {
b = b.querySelector("body script");
var c = this.encodeURLForHTML(a.getMediaFileURL());
a = a.getVideo().getCachedUrl();
b && b.textContent && (a ? (a = this.encodeURLForHTML(a), a =
b.textContent.replace(c, a), b.textContent = a,
this._programmaticTrackingService.reportMetric(df.AdmobUsedCachedVideo).catch()) :
this._programmaticTrackingService.reportMetric(df.AdmobUsedStreamedVideo).catch());
}
};
ma.prototype.encodeURLForHTML = function(b) {
return b.replace(/[&=]/g, function(a) {
return "\\x" + a.charCodeAt(0).toString(16);
});
};
ma.prototype.removeScriptTags = function(b) {
this.removeScriptTag(b, "mraid.js");
this.removeScriptTag(b, "afma_unity_stub.js");
return b.documentElement.outerHTML;
};
ma.prototype.removeScriptTag = function(b, a) {
(b = b.querySelector('script[src^="' + a + '"]')) && b.parentNode &&
b.parentNode.removeChild(b);
};
ma.prototype.injectScripts = function(b) {
b = b.head || document.body;
this.injectScript(b, "<script>(function() {\n var MRAID = function() {\n
var state = 'loading';\n\n var listeners = {\n ready:
[],\n error: [],\n stateChange: [],\n
viewableChange: [],\n sizeChange: []\n };\n\n
var viewable = false;\n\n var orientationProperties = {\n
allowOrientationChange: true,\n forceOrientation: 'none'\n
};\n\n var trigger = function(event, parameters) {\n if(!
parameters) {\n parameters = [];\n }\n
if(event in listeners) {\n
listeners[event].forEach(function(listener) {\n
listener.apply(window, parameters);\n });\n }\n
};\n\n var width = window.innerWidth;\n var height =
window.innerHeight;\n\n var setState = function(newState) {\n
state = newState;\n trigger('stateChange', [newState]);\n
};\n\n window.addEventListener('message', function(event) {\n
if (event.data.type && event.data.type === 'mraid') {\n
switch(event.data.event) {\n case 'viewable':\n
viewable = event.data.value;\n trigger('viewableChange',
[viewable]);\n break;\n\n case
'resize':\n window.innerWidth = width = event.data.width;\n
window.innerHeight = height = event.data.height;\n
trigger('sizeChange', [width, height]);\n break;\n\n
default:\n
break;\n }\n }\n }, false);\n\n
window.addEventListener('resize', function(e) {\n width =
window.innerWidth;\n height = window.innerHeight;\n
trigger('sizeChange', [width, height]);\n });\n\n
window.addEventListener('DOMContentLoaded', function() {\n
window.mraid.postMessage('loaded');\n setState('default');\n
trigger('ready');\n }, false);\n\n this.postMessage =
function(event, data) {\n window.parent.postMessage({\n
type: 'mraid',\n event: event,\n data: data\n
}, '*');\n };\n\n this.addEventListener = function(event,
listener) {\n if(event in listeners) {\n
listeners[event].push(listener);\n }\n };\n\n
this.createCalendarEvent = function() {\n trigger('error', ['not
implemented', 'createCalendarEvent']);\n };\n\n this.close =
function() {\n setState('hidden');\n
this.postMessage('close');\n };\n\n this.expand = function()
{\n trigger('error', ['not implemented',
'expand']);\n };\n\n this.getCurrentPosition =
this.getDefaultPosition = function() {\n return {\n
x: 0,\n y: 0,\n width: width,\n
height: height\n };\n };\n\n
this.getExpandProperties = function() {\n trigger('error', ['not
implemented', 'getExpandProperties']);\n };\n\n
this.getMaxSize = this.getScreenSize = function() {\n return {\n
width: width,\n height:
height\n };\n };\n\n
this.getOrientationProperties = function() {\n return
orientationProperties;\n };\n\n this.getPlacementType =
function() {\n return 'interstitial';\n };\n\n
this.getResizeProperties = function() {\n trigger('error', ['not
implemented', 'getResizeProperties']);\n };\n\n this.getState
= function() {\n return state;\n };\n\n
this.getVersion = function() {\n return '2.0';\n };\n\n
this.isViewable = function() {\n return
viewable;\n };\n\n this.open = function(url) {\n
this.postMessage('open', {\n url: url,\n });\n
};\n\n this.playVideo = function() {\n trigger('error',
['not implemented', 'playVideo']);\n };\n\n
this.removeEventListener = function(event, listener) {\n if(event in
listeners) {\n var index = listeners[event].indexOf(listener);\n
if(index !== -1) {\n listeners[event].splice(index, 1);\n
}\n }\n };\n\n this.resize = function() {\n
trigger('error', ['not implemented', 'resize']);\n };\n\n
this.setExpandProperties = function() {\n trigger('error', ['not
implemented', 'setExpandProperties']);\n };\n\n
this.setOrientationProperties = function(properties) {\n
orientationProperties = properties;\n
this.postMessage('orientation', {\n properties: properties,\n
});\n };\n\n this.setResizeProperties = function() {\n
trigger('error', ['not implemented', 'setResizeProperties']);\n };\n\n
this.storePicture = function() {\n trigger('error', ['not
implemented', 'storePicture']);\n };\n\n this.useCustomClose
= function() {\n trigger('error', ['not implemented',
'useCustomClose']);\n };\n\n this.sendAnalyticsEvent =
function(event, eventData) {\n this.postMessage('analyticsEvent',
{\n event: event,\n eventData: eventData,\n
});\n };\n\n this.setCustomMraidState = function(state) {\n
this.postMessage('customMraidState', {\n state: state,\n
});\n };\n };\n window.mraid = new MRAID();\n })
();\x3c/script>");
this.injectScript(b, '<script>function getQueryParams(f) {\n var e =
document.createElement("a");\n e.href = f;\n f = {};\n if (e.search) {\n e =
e.search.substring(1).split(/&/);\n for (var g = 0; g < e.length; g++) {\n
var h = e[g].split(/=/), k = h[0];\n h = h[1];\n f[k] ? f[k].push(h) :
f[k] = [h];\n }\n }\n return f;\n}\nfunction isObjectEmpty(f) {\n for (var e
in f) {\n if (f.hasOwnProperty(e)) {\n return !1;\n }\n }\n return !
0;\n}\n(function() {\n window.addEventListener("pageshow", function() {\n
AFMA_ReceiveMessage("onshow");\n });\n var f, e, g, h = 0, k = 0, n = 0, p = 0,
l;\n document.addEventListener("touchstart", function(b) {\n g = Date.now();\n
f = b.touches[0];\n k++;\n });\n document.addEventListener("touchend",
function(b) {\n l = Date.now() - g;\n e = b.changedTouches[0];\n h+
+;\n });\n document.addEventListener("touchmove", function(b) {\n n+
+;\n });\n document.addEventListener("touchcancel", function(b) {\n p+
+;\n });\n window.unity = window.unity || {};\n window.unity.afma = new
function() {\n var b = this;\n this.intentCallbacks = {};\n
this.intentCallbackId = 0;\n this.sentQuartiles = {};\n var g = [], m = 0, q
= !1, r = !1;\n document.addEventListener("DOMContentLoaded", function() {\n
b.postMessage("tracking", {event:"impression"});\n var a =
document.querySelector("video");\n null === a ? b.postMessage("tracking",
{event:"error", data:JSON.stringify("videoEl for admob is not found")}) :
(a.addEventListener("error", function() {\n b.postMessage("tracking",
{event:"error", data:JSON.stringify(a.error)});\n }),
a.addEventListener("timeupdate", function() {\n if (!a.seeking) {\n
m = a.currentTime;\n var c = Math.floor(a.currentTime / a.duration * 4);\n
if (0 !== c && !(c in b.sentQuartiles)) {\n b.sentQuartiles[c] = !0;\n
switch(c) {\n case 1:\n var d = "firstQuartile";\n
break;\n case 2:\n d = "midpoint";\n
break;\n case 3:\n d =
"thirdQuartile";\n }\n d && b.postMessage("tracking",
{event:d});\n }\n }\n }), a.addEventListener("stalled",
function() {\n b.postMessage("tracking", {event:"stalled",
data:JSON.stringify({buffered:a.buffered, currentSrc:a.currentSrc,
currentTime:a.currentTime, defaultPlaybackRate:a.defaultPlaybackRate,
duration:a.duration, ended:a.ended, error:a.error, hidden:a.hidden, loop:a.loop,
mediaKeys:a.mediaKeys, mozAudioCaptured:a.mozAudioCaptured,
mozDecodedFrames:a.mozDecodedFrames, mozFragmentEnd:a.mozFragmentEnd,
mozFrameDelay:a.mozFrameDelay, mozHasAudio:a.mozHasAudio,
mozPaintedFrames:a.mozPaintedFrames, mozPresentedFrames:a.mozPresentedFrames, \n
mozPreservesPitch:a.mozPreservesPitch, muted:a.muted, namespaceURI:a.namespaceURI,
networkState:a.networkState, paused:a.paused, playbackRate:a.playbackRate,
played:a.played, preload:a.preload, readyState:a.readyState, seeking:a.seeking,
src:a.src, volume:a.volume})});\n }), a.addEventListener("canplay", function()
{\n b.postMessage("tracking", {event:"loaded"});\n }),
a.addEventListener("seeking", function() {\n 0.01 < Math.abs(a.currentTime -
m) && (a.currentTime = m);\n q || (q = !0,
b.postMessage("seeked"));\n }), a.addEventListener("playing", function() {\n
r || (r = !0, b.postMessage("videoStart"));\n }));\n });\n
this.forceOrientation = function(a, c, d) {\n
this.postMessage("forceOrientation", {orientation:a, override:c,
animationDuration:d});\n };\n this.click = function(a) {\n var c =
b.getTouchInfo();\n this.postMessage("click", {url:a, touch:c});\n };\n
this.getClickSignals = function(a) {\n return null;\n };\n
this.appendClickSignals = function(a, c) {\n return a;\n };\n
this.getClickSignalsAsync = function(a) {\n return new Promise(function(a, d)
{\n b.requestClickSignal(a);\n });\n };\n
this.appendClickSignalsAsync = function(a, c) {\n return (c ?
Promise.resolve(c) : this.getClickSignalsAsync(a)).then(function(c) {\n var
d = c.encodedClickSignal, b = getQueryParams(a);\n b.ms || (a =
isObjectEmpty(b) ? a + "?ms=" + d : a + "&ms=" + d);\n return a = a +
"&rvdt=" + c.rvdt;\n });\n };\n this.requestClickSignal = function(a)
{\n g.push(a);\n a = this.getTouchInfo();\n
this.postMessage("getClickSignal", a);\n };\n this.getTouchInfo = function()
{\n var a = {counts:{up:h, down:k, move:n, cancel:p}};\n f && (a.start =
{x:f.clientX || 0.0, y:f.clientY || 0.0});\n e && (a.end = {x:e.clientX ||
0.0, y:e.clientY || 0.0}, a.diameter = 2 * e.radiusX, a.pressure = e.force ||
0.0);\n l && (a.duration = l);\n return a;\n };\n
this.onReceiveClickSignal = function(a) {\n for (var c = 0, d = g.length; c <
d; c++) {\n g[c](a);\n }\n g = [];\n };\n
this.notifyRewardedVideoStart = function() {\n };\n this.grantReward =
function() {\n this.postMessage("grantReward");\n };\n this.close =
function(a) {\n this.postMessage("close");\n };\n this.disableBackButton
= function(a) {\n this.postMessage("disableBackButton",
{disabled:a});\n };\n this.openIntent = function(a, c, d) {\n
this.postMessage("openIntent", {url:a, action:c, mimeType:d});\n return !1;\n
};\n this.openIntentExtended = function(a) {\n return
this.openIntent(a.url, a.action, a.mimeType);\n };\n this.openUrl =
function(a) {\n this.postMessage("openUrl", {url:a});\n };\n
this.openDeepLinkUrl = function(a, c, d, b) {\n this.postMessage("openUrl",
{url:a});\n c();\n };\n this.openBrowser = function(a) {\n
this.postMessage("openUrl", {url:a});\n };\n this.openNativeApp = function(a)
{\n this.postMessage("openUrl", {url:a});\n };\n this.openSystemBrowser
= function(a, c) {\n this.postMessage("openUrl", {url:a});\n };\n
this.openStoreOverlay = function(a) {\n this.postMessage("openStoreOverlay",
{url:a});\n };\n this.openInAppStore = function(a, c, d) {\n
this.postMessage("openInAppStore", {productId:a, url:c});\n };\n
this.fetchAppStoreOverlay = function(a) {\n
this.postMessage("fetchAppStoreOverlay", {productId:a});\n };\n
this.canOpenUrls = function(a, c, d, b) {\n d = {};\n if (a.length) {\n
for (b = 0; b < a.length; b++) {\n d[a[b]] = !0;\n }\n } else
{\n d[a] = !0;\n }\n c("openableURLs", d);\n };\n
this.canOpenIntents = function(a, c, b, e) {\n b = {};\n for (e = 0; e <
a.length; e++) {\n b[a[e].id] = !0;\n }\n c("openableIntents",
b);\n };\n this.postMessage = function(a, b) {\n
window.parent.postMessage({type:"afma", event:a, data:b}, "*");\n };\n
this.setOrienationProperties = function(a) {\n
window.mraid.setOrienationProperties(a);\n };\n this.useCustomClose =
function(a) {\n };\n window.addEventListener("message", function(a) {\n
"afma" === a.data.type && ("back" === a.data.event ? (console.log("calling AFMA
back function", a), AFMA_ReceiveMessage("onbackblocked")) : "clickSignal" ===
a.data.event && (console.log("recieved click signal", a),
b.onReceiveClickSignal(a.data.data)));\n });\n };\n})();\x3c/script>');
return Promise.resolve();
};
ma.prototype.injectScript = function(b, a) {
b.innerHTML = a + b.innerHTML;
};
ma.prototype.onClose = function() {
this._handlers.forEach(function(b) {
return b.onClose();
});
};
ma.prototype.onAttribution = function(b, a) {
this._handlers.forEach(function(c) {
return c.onAttribution(b, a);
});
};
ma.prototype.onOpenURL = function(b) {
this._handlers.forEach(function(a) {
return a.onOpenURL(b);
});
};
ma.prototype.onGrantReward = function() {
this._handlers.forEach(function(b) {
return b.onGrantReward();
});
};
ma.prototype.onVideoStart = function() {
this._handlers.forEach(function(b) {
return b.onVideoStart();
});
};
ma.prototype.onSetOrientationProperties = function(b, a) {
this._handlers.forEach(function(c) {
return c.onSetOrientationProperties(b, a);
});
};
ma.prototype.onClickSignalRequest = function(b) {
this._handlers.forEach(function(a) {
return a.onClickSignalRequest(b);
});
};
ma.prototype.onTrackingEvent = function(b, a) {
this._handlers.forEach(function(c) {
return c.onTrackingEvent(b, a);
});
};
ma.prototype.onUserSeeked = function() {

this._programmaticTrackingService.reportMetric(df.AdmobUserVideoSeeked).catch();
};
ma.prototype.onGDPRPopupEvent = function(b) {
b.preventDefault();
this._gdprPopupClicked || (this._gdprPopupClicked = !0,
this.choosePrivacyShown());
this._privacy.show();
};
ma.prototype.onPrivacyEvent = function(b) {
b.preventDefault();
this._privacy.show();
};
h.inherits(kg, Na);
kg.prototype.createParameters = function(b) {
var a = this.showGDPRBanner(b);
a = new ma(b.platform, b.core, this._adMobSignalFactory, b.container,
b.campaign, b.deviceInfo.getLanguage(), b.clientInfo.getGameId(), b.privacy, a,
b.programmaticTrackingService);
return Object.assign({}, b, {adMobSignalFactory:this._adMobSignalFactory,
view:a});
};
h.inherits(Tg, re);
h.inherits(X, z);
X.prototype.getSequenceNumber = function() {
return this.get("sequenceNumber");
};
X.prototype.getGranularSpeedBucket = function() {
return this.get("granularSpeedBucket");
};
X.prototype.getIsNetworkMetered = function() {
return this.get("isNetworkMetered");
};
X.prototype.getDeviceSubModel = function() {
return this.get("deviceSubModel");
};
X.prototype.getNumPriorUserRequests = function() {
return this.get("numPriorUserRequests");
};
X.prototype.getIsDeviceCharging = function() {
return this.get("isDeviceCharging");
};
X.prototype.getDeviceBatteryLevel = function() {
return this.get("deviceBatteryLevel");
};
X.prototype.getAndroidMarketVersion = function() {
return this.get("androidMarketVersion");
};
X.prototype.getAdLoadDuration = function() {
return this.get("adLoadDuration");
};
X.prototype.getPriorClickCount = function() {
return this.get("priorClickCount");
};
X.prototype.getDeviceIncapabilities = function() {
return this.get("deviceIncapabilities");
};
X.prototype.getHasIAPCapability = function() {
return this.get("hasIAPCapability");
};
X.prototype.getAdtest = function() {
return this.get("adtest");
};
X.prototype.getIsJailbroken = function() {
return this.get("isJailbroken");
};
X.prototype.getIUSizes = function() {
return this.get("iuSizes");
};
X.prototype.setSequenceNumber = function(b) {
this.set("sequenceNumber", b);
};
X.prototype.setGranularSpeedBucket = function(b) {
this.set("granularSpeedBucket", b);
};
X.prototype.setIsNetworkMetered = function(b) {
this.set("isNetworkMetered", b);
};
X.prototype.setDeviceSubModel = function(b) {
this.set("deviceSubModel", b);
};
X.prototype.setNumPriorUserRequests = function(b) {
this.set("numPriorUserRequests", b);
};
X.prototype.setIsDeviceCharging = function(b) {
this.set("isDeviceCharging", b);
};
X.prototype.setDeviceBatteryLevel = function(b) {
this.set("deviceBatteryLevel", b);
};
X.prototype.setAndroidMarketVersion = function(b) {
this.set("androidMarketVersion", b);
};
X.prototype.setAdLoadDuration = function(b) {
this.set("adLoadDuration", b);
};
X.prototype.setPriorClickCount = function(b) {
this.set("priorClickCount", b);
};
X.prototype.setDeviceIncapabilities = function(b) {
this.set("deviceIncapabilities", b);
};
X.prototype.setHasIAPCapability = function(b) {
this.set("hasIAPCapability", b);
};
X.prototype.setAdtest = function(b) {
this.set("adtest", b);
};
X.prototype.setIsJailbroken = function(b) {
this.set("isJailbroken", b);
};
X.prototype.setIUSizes = function(b) {
this.set("iuSizes", b);
};
X.prototype.getDTO = function() {
return {seq_num:this.getSequenceNumber(),
granular_speed_bucket:this.getGranularSpeedBucket(),
network_metered:this.getIsNetworkMetered(),
mobile_device_submodel:this.getDeviceSubModel(),
prior_user_requests:this.getNumPriorUserRequests(),
device_battery_charging:this.getIsDeviceCharging(),
device_battery_level:this.getDeviceBatteryLevel(),
android_market_version:this.getAndroidMarketVersion(),
prior_click_count:this.getPriorClickCount(),
device_incapabilities:this.getDeviceIncapabilities(),
ios_jailbroken:this.getIsJailbroken(), iu_sizes:this.getIUSizes(),
ad_load_duration:this.getAdLoadDuration()};
};
var Fg = "undefined" !== typeof window ? window : "undefined" !== typeof global ?
global : "undefined" !== typeof self ? self : {}, Dh = $e(function(b, a) {
a.length = function(a) {
var b = a.length;
if (!b) {
return 0;
}
for (var c = 0; 1 < --b % 4 && "=" === a.charAt(b);) {
++c;
}
return Math.ceil(3 * a.length) / 4 - c;
};
var c = Array(64), d = Array(123);
for (b = 0; 64 > b;) {
d[c[b] = 26 > b ? b + 65 : 52 > b ? b + 71 : 62 > b ? b - 4 : b - 59 | 43] =
b++;
}
a.encode = function(a, b, d) {
for (var e = null, f = [], g = 0, r = 0, k; b < d;) {
var m = a[b++];
switch(r) {
case 0:
f[g++] = c[m >> 2];
k = (m & 3) << 4;
r = 1;
break;
case 1:
f[g++] = c[k | m >> 4];
k = (m & 15) << 2;
r = 2;
break;
case 2:
f[g++] = c[k | m >> 6], f[g++] = c[m & 63], r = 0;
}
8191 < g && ((e || (e = [])).push(String.fromCharCode.apply(String, f)), g
= 0);
}
r && (f[g++] = c[k], f[g++] = 61, 1 === r && (f[g++] = 61));
return e ? (g && e.push(String.fromCharCode.apply(String, f.slice(0, g))),
e.join("")) : String.fromCharCode.apply(String, f.slice(0, g));
};
a.decode = function(a, b, c) {
for (var e = c, f = 0, g, r = 0; r < a.length;) {
var k = a.charCodeAt(r++);
if (61 === k && 1 < f) {
break;
}
if (void 0 === (k = d[k])) {
throw Error("invalid encoding");
}
switch(f) {
case 0:
g = k;
f = 1;
break;
case 1:
b[c++] = g << 2 | (k & 48) >> 4;
g = k;
f = 2;
break;
case 2:
b[c++] = (g & 15) << 4 | (k & 60) >> 2;
g = k;
f = 3;
break;
case 3:
b[c++] = (g & 3) << 6 | k, f = 0;
}
}
if (1 === f) {
throw Error("invalid encoding");
}
return c - e;
};
a.test = function(a) {
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?
$/.test(a);
};
});
Bf.prototype.on = function(b, a, c) {
(this._listeners[b] || (this._listeners[b] = [])).push({fn:a, ctx:c || this});
return this;
};
Bf.prototype.off = function(b, a) {
if (void 0 === b) {
this._listeners = {};
} else {
if (void 0 === a) {
this._listeners[b] = [];
} else {
b = this._listeners[b];
for (var c = 0; c < b.length;) {
b[c].fn === a ? b.splice(c, 1) : ++c;
}
}
}
return this;
};
Bf.prototype.emit = function(b) {
var a = this._listeners[b];
if (a) {
for (var c = [], d = 1; d < arguments.length;) {
c.push(arguments[d++]);
}
for (d = 0; d < a.length;) {
a[d].fn.apply(a[d++].ctx, c);
}
}
return this;
};
var Eh = Yg(Yg), Fh = $e(function(b, a) {
a.length = function(a) {
for (var b = 0, c, f = 0; f < a.length; ++f) {
c = a.charCodeAt(f), 128 > c ? b += 1 : 2048 > c ? b += 2 : 55296 === (c &
64512) && 56320 === (a.charCodeAt(f + 1) & 64512) ? (++f, b += 4) : b += 3;
}
return b;
};
a.read = function(a, b, e) {
if (1 > e - b) {
return "";
}
for (var c = null, d = [], l = 0, n; b < e;) {
n = a[b++], 128 > n ? d[l++] = n : 191 < n && 224 > n ? d[l++] = (n & 31)
<< 6 | a[b++] & 63 : 239 < n && 365 > n ? (n = ((n & 7) << 18 | (a[b++] & 63) << 12
| (a[b++] & 63) << 6 | a[b++] & 63) - 65536, d[l++] = 55296 + (n >> 10), d[l++] =
56320 + (n & 1023)) : d[l++] = (n & 15) << 12 | (a[b++] & 63) << 6 | a[b++] & 63,
8191 < l && ((c || (c = [])).push(String.fromCharCode.apply(String, d)), l = 0);
}
return c ? (l && c.push(String.fromCharCode.apply(String, d.slice(0, l))),
c.join("")) : String.fromCharCode.apply(String, d.slice(0, l));
};
a.write = function(a, b, e) {
for (var c = e, d, l, n = 0; n < a.length; ++n) {
d = a.charCodeAt(n), 128 > d ? b[e++] = d : (2048 > d ? b[e++] = d >> 6 |
192 : (55296 === (d & 64512) && 56320 === ((l = a.charCodeAt(n + 1)) & 64512) ? (d
= 65536 + ((d & 1023) << 10) + (l & 1023), ++n, b[e++] = d >> 18 | 240, b[e++] = d
>> 12 & 63 | 128) : b[e++] = d >> 12 | 224, b[e++] = d >> 6 & 63 | 128), b[e++] = d
& 63 | 128);
}
return e - c;
};
}), ge = lb.zero = new lb(0, 0);
ge.toNumber = function() {
return 0;
};
ge.zzEncode = ge.zzDecode = function() {
return this;
};
ge.length = function() {
return 1;
};
var Gh = lb.zeroHash = "\x00\x00\x00\x00\x00\x00\x00\x00";
lb.fromNumber = function(b) {
if (0 === b) {
return ge;
}
var a = 0 > b;
a && (b = -b);
var c = b >>> 0;
b = (b - c) / 4294967296 >>> 0;
a && (b = ~b >>> 0, c = ~c >>> 0, 4294967295 < ++c && (c = 0, 4294967295 < ++b
&& (b = 0)));
return new lb(c, b);
};
lb.from = function(b) {
if ("number" === typeof b) {
return lb.fromNumber(b);
}
if (S.isString(b)) {
if (S.Long) {
b = S.Long.fromString(b);
} else {
return lb.fromNumber(parseInt(b, 10));
}
}
return b.low || b.high ? new lb(b.low >>> 0, b.high >>> 0) : ge;
};
lb.prototype.toNumber = function(b) {
if (!b && this.hi >>> 31) {
b = ~this.lo + 1 >>> 0;
var a = ~this.hi >>> 0;
b || (a = a + 1 >>> 0);
return -(b + 4294967296 * a);
}
return this.lo + 4294967296 * this.hi;
};
lb.prototype.toLong = function(b) {
return S.Long ? new S.Long(this.lo | 0, this.hi | 0, !!b) : {low:this.lo | 0,
high:this.hi | 0, unsigned:!!b};
};
var Qd = String.prototype.charCodeAt;
lb.fromHash = function(b) {
return b === Gh ? ge : new lb((Qd.call(b, 0) | Qd.call(b, 1) << 8 | Qd.call(b,
2) << 16 | Qd.call(b, 3) << 24) >>> 0, (Qd.call(b, 4) | Qd.call(b, 5) << 8 |
Qd.call(b, 6) << 16 | Qd.call(b, 7) << 24) >>> 0);
};
lb.prototype.toHash = function() {
return String.fromCharCode(this.lo & 255, this.lo >>> 8 & 255, this.lo >>> 16 &
255, this.lo >>> 24, this.hi & 255, this.hi >>> 8 & 255, this.hi >>> 16 & 255,
this.hi >>> 24);
};
lb.prototype.zzEncode = function() {
var b = this.hi >> 31;
this.hi = ((this.hi << 1 | this.lo >>> 31) ^ b) >>> 0;
this.lo = (this.lo << 1 ^ b) >>> 0;
return this;
};
lb.prototype.zzDecode = function() {
var b = -(this.lo & 1);
this.lo = ((this.lo >>> 1 | this.hi << 31) ^ b) >>> 0;
this.hi = (this.hi >>> 1 ^ b) >>> 0;
return this;
};
lb.prototype.length = function() {
var b = this.lo, a = (this.lo >>> 28 | this.hi << 4) >>> 0, c = this.hi >>> 24;
return 0 === c ? 0 === a ? 16384 > b ? 128 > b ? 1 : 2 : 2097152 > b ? 3 : 4 :
16384 > a ? 128 > a ? 5 : 6 : 2097152 > a ? 7 : 8 : 128 > c ? 9 : 10;
};
var S = $e(function(b, a) {
function c(a, b, c) {
for (var d = Object.keys(b), e = 0; e < d.length; ++e) {
void 0 !== a[d[e]] && c || (a[d[e]] = b[d[e]]);
}
return a;
}
function d(a) {
function b(a, d) {
if (!(this instanceof b)) {
return new b(a, d);
}
Object.defineProperty(this, "message", {get:function() {
return a;
}});
Error.captureStackTrace ? Error.captureStackTrace(this, b) :
Object.defineProperty(this, "stack", {value:Error().stack || ""});
d && c(this, d);
}
(b.prototype = Object.create(Error.prototype)).constructor = b;
Object.defineProperty(b.prototype, "name", {get:function() {
return a;
}});
b.prototype.toString = function() {
return this.name + ": " + this.message;
};
return b;
}
a.asPromise = uh;
a.base64 = Dh;
a.EventEmitter = Bf;
a.float = Eh;
a.inquire = th;
a.utf8 = Fh;
a.pool = sh;
a.LongBits = lb;
a.global = "undefined" !== typeof window && window || "undefined" !== typeof Fg
&& Fg || "undefined" !== typeof self && self || Fg;
a.emptyArray = Object.freeze ? Object.freeze([]) : [];
a.emptyObject = Object.freeze ? Object.freeze({}) : {};
a.isNode = !!(a.global.process && a.global.process.versions &&
a.global.process.versions.node);
a.isInteger = Number.isInteger || function(a) {
return "number" === typeof a && isFinite(a) && Math.floor(a) === a;
};
a.isString = function(a) {
return "string" === typeof a || a instanceof String;
};
a.isObject = function(a) {
return a && "object" === typeof a;
};
a.isset = a.isSet = function(a, b) {
var c = a[b];
return null != c && a.hasOwnProperty(b) ? "object" !== typeof c || 0 <
(Array.isArray(c) ? c.length : Object.keys(c).length) : !1;
};
a.Buffer = function() {
try {
var b = a.inquire("buffer").Buffer;
return b.prototype.utf8Write ? b : null;
} catch (f) {
return null;
}
}();
a._Buffer_from = null;
a._Buffer_allocUnsafe = null;
a.newBuffer = function(b) {
return "number" === typeof b ? a.Buffer ? a._Buffer_allocUnsafe(b) : new
a.Array(b) : a.Buffer ? a._Buffer_from(b) : "undefined" === typeof Uint8Array ? b :
new Uint8Array(b);
};
a.Array = "undefined" !== typeof Uint8Array ? Uint8Array : Array;
a.Long = a.global.dcodeIO && a.global.dcodeIO.Long || a.global.Long ||
a.inquire("long");
a.key2Re = /^true|false|0|1$/;
a.key32Re = /^-?(?:0|[1-9][0-9]*)$/;
a.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;
a.longToHash = function(b) {
return b ? a.LongBits.from(b).toHash() : a.LongBits.zeroHash;
};
a.longFromHash = function(b, c) {
b = a.LongBits.fromHash(b);
return a.Long ? a.Long.fromBits(b.lo, b.hi, c) : b.toNumber(!!c);
};
a.merge = c;
a.lcFirst = function(a) {
return a.charAt(0).toLowerCase() + a.substring(1);
};
a.newError = d;
a.ProtocolError = d("ProtocolError");
a.oneOfGetter = function(a) {
for (var b = {}, c = 0; c < a.length; ++c) {
b[a[c]] = 1;
}
return function() {
for (var a = Object.keys(this), c = a.length - 1; -1 < c; --c) {
if (1 === b[a[c]] && void 0 !== this[a[c]] && null !== this[a[c]]) {
return a[c];
}
}
};
};
a.oneOfSetter = function(a) {
return function(b) {
for (var c = 0; c < a.length; ++c) {
a[c] !== b && delete this[a[c]];
}
};
};
a.toJSONOptions = {longs:String, enums:String, bytes:String, json:!0};
a._configure = function() {
var b = a.Buffer;
b ? (a._Buffer_from = b.from !== Uint8Array.from && b.from || function(a, c)
{
return new b(a, c);
}, a._Buffer_allocUnsafe = b.allocUnsafe || function(a) {
return new b(a);
}) : a._Buffer_from = a._Buffer_allocUnsafe = null;
};
}), yg = aa, fh, Gf = S.LongBits, gh = S.base64, hh = S.utf8;
aa.create = S.Buffer ? function() {
return (aa.create = function() {
return new fh;
})();
} : function() {
return new aa;
};
aa.alloc = function(b) {
return new S.Array(b);
};
S.Array !== Array && (aa.alloc = S.pool(aa.alloc, S.Array.prototype.subarray));
aa.prototype._push = function(b, a, c) {
this.tail = this.tail.next = new af(b, a, c);
this.len += a;
return this;
};
vg.prototype = Object.create(af.prototype);
vg.prototype.fn = function(b, a, c) {
for (; 127 < b;) {
a[c++] = b & 127 | 128, b >>>= 7;
}
a[c] = b;
};
aa.prototype.uint32 = function(b) {
this.len += (this.tail = this.tail.next = new vg(128 > (b >>>= 0) ? 1 : 16384 >
b ? 2 : 2097152 > b ? 3 : 268435456 > b ? 4 : 5, b)).len;
return this;
};
aa.prototype.int32 = function(b) {
return 0 > b ? this._push(wg, 10, Gf.fromNumber(b)) : this.uint32(b);
};
aa.prototype.sint32 = function(b) {
return this.uint32((b << 1 ^ b >> 31) >>> 0);
};
aa.prototype.uint64 = function(b) {
b = Gf.from(b);
return this._push(wg, b.length(), b);
};
aa.prototype.int64 = aa.prototype.uint64;
aa.prototype.sint64 = function(b) {
b = Gf.from(b).zzEncode();
return this._push(wg, b.length(), b);
};
aa.prototype.bool = function(b) {
return this._push(ug, 1, b ? 1 : 0);
};
aa.prototype.fixed32 = function(b) {
return this._push(xg, 4, b >>> 0);
};
aa.prototype.sfixed32 = aa.prototype.fixed32;
aa.prototype.fixed64 = function(b) {
b = Gf.from(b);
return this._push(xg, 4, b.lo)._push(xg, 4, b.hi);
};
aa.prototype.sfixed64 = aa.prototype.fixed64;
aa.prototype.float = function(b) {
return this._push(S.float.writeFloatLE, 4, b);
};
aa.prototype.double = function(b) {
return this._push(S.float.writeDoubleLE, 8, b);
};
var Hh = S.Array.prototype.set ? function(b, a, c) {
a.set(b, c);
} : function(b, a, c) {
for (var d = 0; d < b.length; ++d) {
a[c + d] = b[d];
}
};
aa.prototype.bytes = function(b) {
var a = b.length >>> 0;
if (!a) {
return this._push(ug, 1, 0);
}
if (S.isString(b)) {
var c = aa.alloc(a = gh.length(b));
gh.decode(b, c, 0);
b = c;
}
return this.uint32(a)._push(Hh, a, b);
};
aa.prototype.string = function(b) {
var a = hh.length(b);
return a ? this.uint32(a)._push(hh.write, a, b) : this._push(ug, 1, 0);
};
aa.prototype.fork = function() {
this.states = new vh(this);
this.head = this.tail = new af(tg, 0, 0);
this.len = 0;
return this;
};
aa.prototype.reset = function() {
this.states ? (this.head = this.states.head, this.tail = this.states.tail,
this.len = this.states.len, this.states = this.states.next) : (this.head =
this.tail = new af(tg, 0, 0), this.len = 0);
return this;
};
aa.prototype.ldelim = function() {
var b = this.head, a = this.tail, c = this.len;
this.reset().uint32(c);
c && (this.tail.next = b.next, this.tail = a, this.len += c);
return this;
};
aa.prototype.finish = function() {
for (var b = this.head.next, a = this.constructor.alloc(this.len), c = 0; b;) {
b.fn(b.val, a, c), c += b.len, b = b.next;
}
return a;
};
aa._configure = function(b) {
fh = b;
};
(fe.prototype = Object.create(yg.prototype)).constructor = fe;
var Hf = S.Buffer;
fe.alloc = function(b) {
return (fe.alloc = S._Buffer_allocUnsafe)(b);
};
var Ih = Hf && Hf.prototype instanceof Uint8Array && "set" ===
Hf.prototype.set.name ? function(b, a, c) {
a.set(b, c);
} : function(b, a, c) {
if (b.copy) {
b.copy(a, c, 0, b.length);
} else {
for (var d = 0; d < b.length;) {
a[c++] = b[d++];
}
}
};
fe.prototype.bytes = function(b) {
S.isString(b) && (b = S._Buffer_from(b, "base64"));
var a = b.length >>> 0;
this.uint32(a);
a && this._push(Ih, a, b);
return this;
};
fe.prototype.string = function(b) {
var a = Hf.byteLength(b);
this.uint32(a);
a && this._push(wh, a, b);
return this;
};
var Ag = bb, ih, ch = S.LongBits, Jh = S.utf8, jh = "undefined" !== typeof
Uint8Array ? function(b) {
if (b instanceof Uint8Array || Array.isArray(b)) {
return new bb(b);
}
throw Error("illegal buffer");
} : function(b) {
if (Array.isArray(b)) {
return new bb(b);
}
throw Error("illegal buffer");
};
bb.create = S.Buffer ? function(b) {
return (bb.create = function(a) {
return S.Buffer.isBuffer(a) ? new ih(a) : jh(a);
})(b);
} : jh;
bb.prototype._slice = S.Array.prototype.subarray || S.Array.prototype.slice;
bb.prototype.uint32 = function() {
var b = 4294967295;
return function() {
b = (this.buf[this.pos] & 127) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
b = (b | (this.buf[this.pos] & 127) << 7) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
b = (b | (this.buf[this.pos] & 127) << 14) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
b = (b | (this.buf[this.pos] & 127) << 21) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
b = (b | (this.buf[this.pos] & 15) << 28) >>> 0;
if (128 > this.buf[this.pos++]) {
return b;
}
if ((this.pos += 5) > this.len) {
throw this.pos = this.len, Oc(this, 10);
}
return b;
};
}();
bb.prototype.int32 = function() {
return this.uint32() | 0;
};
bb.prototype.sint32 = function() {
var b = this.uint32();
return b >>> 1 ^ -(b & 1) | 0;
};
bb.prototype.bool = function() {
return 0 !== this.uint32();
};
bb.prototype.fixed32 = function() {
if (this.pos + 4 > this.len) {
throw Oc(this, 4);
}
return Cf(this.buf, this.pos += 4);
};
bb.prototype.sfixed32 = function() {
if (this.pos + 4 > this.len) {
throw Oc(this, 4);
}
return Cf(this.buf, this.pos += 4) | 0;
};
bb.prototype.float = function() {
if (this.pos + 4 > this.len) {
throw Oc(this, 4);
}
var b = S.float.readFloatLE(this.buf, this.pos);
this.pos += 4;
return b;
};
bb.prototype.double = function() {
if (this.pos + 8 > this.len) {
throw Oc(this, 4);
}
var b = S.float.readDoubleLE(this.buf, this.pos);
this.pos += 8;
return b;
};
bb.prototype.bytes = function() {
var b = this.uint32(), a = this.pos, c = this.pos + b;
if (c > this.len) {
throw Oc(this, b);
}
this.pos += b;
return Array.isArray(this.buf) ? this.buf.slice(a, c) : a === c ? new
this.buf.constructor(0) : this._slice.call(this.buf, a, c);
};
bb.prototype.string = function() {
var b = this.bytes();
return Jh.read(b, 0, b.length);
};
bb.prototype.skip = function(b) {
if ("number" === typeof b) {
if (this.pos + b > this.len) {
throw Oc(this, b);
}
this.pos += b;
} else {
do {
if (this.pos >= this.len) {
throw Oc(this);
}
} while (this.buf[this.pos++] & 128);
}
return this;
};
bb.prototype.skipType = function(b) {
switch(b) {
case 0:
this.skip();
break;
case 1:
this.skip(8);
break;
case 2:
this.skip(this.uint32());
break;
case 3:
for (; 4 !== (b = this.uint32() & 7);) {
this.skipType(b);
}
break;
case 5:
this.skip(4);
break;
default:
throw Error("invalid wire type " + b + " at offset " + this.pos);
}
return this;
};
bb._configure = function(b) {
ih = b;
var a = S.Long ? "toLong" : "toNumber";
S.merge(bb.prototype, {int64:function() {
return zg.call(this)[a](!1);
}, uint64:function() {
return zg.call(this)[a](!0);
}, sint64:function() {
return zg.call(this).zzDecode()[a](!1);
}, fixed64:function() {
return dh.call(this)[a](!0);
}, sfixed64:function() {
return dh.call(this)[a](!1);
}});
};
(bf.prototype = Object.create(Ag.prototype)).constructor = bf;
S.Buffer && (bf.prototype._slice = S.Buffer.prototype.slice);
bf.prototype.string = function() {
var b = this.uint32();
return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + b,
this.len));
};
(cf.prototype = Object.create(S.EventEmitter.prototype)).constructor = cf;
cf.prototype.rpcCall = function g(a, c, d, e, f) {
if (!e) {
throw TypeError("request must be specified");
}
var l = this;
if (!f) {
return S.asPromise(g, l, a, c, d, e);
}
if (l.rpcImpl) {
try {
return l.rpcImpl(a, c[l.requestDelimited ? "encodeDelimited" : "encode"]
(e).finish(), function(c, e) {
if (c) {
return l.emit("error", c, a), f(c);
}
if (null === e) {
l.end(!0);
} else {
if (!(e instanceof d)) {
try {
e = d[l.responseDelimited ? "decodeDelimited" : "decode"](e);
} catch (r) {
return l.emit("error", r, a), f(r);
}
}
l.emit("data", e, a);
return f(null, e);
}
});
} catch (n) {
l.emit("error", n, a), setTimeout(function() {
f(n);
}, 0);
}
} else {
setTimeout(function() {
f(Error("already ended"));
}, 0);
}
};
cf.prototype.end = function(a) {
this.rpcImpl && (a || this.rpcImpl(null, null, null), this.rpcImpl = null,
this.emit("end").off());
return this;
};
var Kh = $e(function(a, c) {
c.Service = cf;
}), Lh = {}, If = $e(function(a, c) {
function d() {
e.Reader._configure(e.BufferReader);
e.util._configure();
}
var e = c;
e.build = "minimal";
e.Writer = yg;
e.BufferWriter = fe;
e.Reader = Ag;
e.BufferReader = bf;
e.util = S;
e.rpc = Kh;
e.roots = Lh;
e.configure = d;
e.Writer._configure(e.BufferWriter);
d();
}), x = If.util, kh = If.roots, Jf = If.Reader, lh = If.Writer, Gg =
kh["default"] || (kh["default"] = {}), Kf = Gg.unity_proto = function() {
var a = {};
a.UnityProto = function() {
function a(a) {
this.encryptedBlobs = [];
if (a) {
for (var c = Object.keys(a), d = 0; d < c.length; ++d) {
null != a[c[d]] && (this[c[d]] = a[c[d]]);
}
}
}
a.prototype.encryptedBlobs = x.emptyArray;
a.prototype.encryptionMethod = 3;
a.prototype.protoName = 2;
a.encode = function(a, c) {
c || (c = lh.create());
if (null != a.encryptedBlobs && a.encryptedBlobs.length) {
for (var d = 0; d < a.encryptedBlobs.length; ++d) {
c.uint32(10).bytes(a.encryptedBlobs[d]);
}
}
null != a.protoName && a.hasOwnProperty("protoName") &&
c.uint32(24).int32(a.protoName);
null != a.encryptionMethod && a.hasOwnProperty("encryptionMethod") &&
c.uint32(32).int32(a.encryptionMethod);
return c;
};
a.decode = function(a, c) {
a instanceof Jf || (a = Jf.create(a));
c = void 0 === c ? a.len : a.pos + c;
for (var d = new Gg.unity_proto.UnityProto; a.pos < c;) {
var e = a.uint32();
switch(e >>> 3) {
case 1:
d.encryptedBlobs && d.encryptedBlobs.length || (d.encryptedBlobs =
[]);
d.encryptedBlobs.push(a.bytes());
break;
case 4:
d.encryptionMethod = a.int32();
break;
case 3:
d.protoName = a.int32();
break;
default:
a.skipType(e & 7);
}
}
return d;
};
a.EncryptionMethod = function() {
var a = {}, c = Object.create(a);
c[a[3] = "UNENCRYPTED"] = 3;
return c;
}();
a.ProtoName = function() {
var a = {}, c = Object.create(a);
c[a[2] = "UNITY_INFO"] = 2;
return c;
}();
return a;
}();
a.UnityInfo = function() {
function a(a) {
if (a) {
for (var c = Object.keys(a), d = 0; d < c.length; ++d) {
null != a[c[d]] && (this[c[d]] = a[c[d]]);
}
}
}
a.prototype.field_1 = "";
a.prototype.field_2 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_3 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_4 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_5 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_6 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_7 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_8 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_9 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_10 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_11 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_12 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_13 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_14 = !1;
a.prototype.field_15 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_16 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_17 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_18 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_19 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_20 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_21 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_22 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_23 = "";
a.prototype.field_24 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_25 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_26 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_27 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_28 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_29 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_30 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_31 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_32 = !1;
a.prototype.field_33 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_34 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_35 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_36 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_37 = "";
a.prototype.field_38 = "";
a.prototype.field_39 = "";
a.prototype.field_40 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_41 = "";
a.prototype.field_42 = "";
a.prototype.field_43 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_44 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_45 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_46 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_47 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_48 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_49 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.prototype.field_50 = x.Long ? x.Long.fromBits(0, 0, !1) : 0;
a.encode = function(a, c) {
c || (c = lh.create());
null != a.field_1 && a.hasOwnProperty("field_1") &&
c.uint32(10).string(a.field_1);
null != a.field_2 && a.hasOwnProperty("field_2") &&
c.uint32(16).int64(a.field_2);
null != a.field_3 && a.hasOwnProperty("field_3") &&
c.uint32(24).int64(a.field_3);
null != a.field_4 && a.hasOwnProperty("field_4") &&
c.uint32(32).int64(a.field_4);
null != a.field_5 && a.hasOwnProperty("field_5") &&
c.uint32(40).int64(a.field_5);
null != a.field_6 && a.hasOwnProperty("field_6") &&
c.uint32(48).int64(a.field_6);
null != a.field_7 && a.hasOwnProperty("field_7") &&
c.uint32(56).int64(a.field_7);
null != a.field_8 && a.hasOwnProperty("field_8") &&
c.uint32(64).int64(a.field_8);
null != a.field_9 && a.hasOwnProperty("field_9") &&
c.uint32(72).int64(a.field_9);
null != a.field_10 && a.hasOwnProperty("field_10") &&
c.uint32(80).int64(a.field_10);
null != a.field_11 && a.hasOwnProperty("field_11") &&
c.uint32(88).int64(a.field_11);
null != a.field_12 && a.hasOwnProperty("field_12") &&
c.uint32(96).int64(a.field_12);
null != a.field_13 && a.hasOwnProperty("field_13") &&
c.uint32(104).int64(a.field_13);
null != a.field_14 && a.hasOwnProperty("field_14") &&
c.uint32(112).bool(a.field_14);
null != a.field_15 && a.hasOwnProperty("field_15") &&
c.uint32(120).int64(a.field_15);
null != a.field_16 && a.hasOwnProperty("field_16") &&
c.uint32(128).int64(a.field_16);
null != a.field_17 && a.hasOwnProperty("field_17") &&
c.uint32(136).int64(a.field_17);
null != a.field_18 && a.hasOwnProperty("field_18") &&
c.uint32(144).int64(a.field_18);
null != a.field_19 && a.hasOwnProperty("field_19") &&
c.uint32(152).int64(a.field_19);
null != a.field_20 && a.hasOwnProperty("field_20") &&
c.uint32(160).int64(a.field_20);
null != a.field_21 && a.hasOwnProperty("field_21") &&
c.uint32(168).int64(a.field_21);
null != a.field_22 && a.hasOwnProperty("field_22") &&
c.uint32(176).int64(a.field_22);
null != a.field_23 && a.hasOwnProperty("field_23") &&
c.uint32(186).string(a.field_23);
null != a.field_24 && a.hasOwnProperty("field_24") &&
c.uint32(192).int64(a.field_24);
null != a.field_25 && a.hasOwnProperty("field_25") &&
c.uint32(200).int64(a.field_25);
null != a.field_26 && a.hasOwnProperty("field_26") &&
c.uint32(208).int64(a.field_26);
null != a.field_27 && a.hasOwnProperty("field_27") &&
c.uint32(216).int64(a.field_27);
null != a.field_28 && a.hasOwnProperty("field_28") &&
c.uint32(224).int64(a.field_28);
null != a.field_29 && a.hasOwnProperty("field_29") &&
c.uint32(232).int64(a.field_29);
null != a.field_30 && a.hasOwnProperty("field_30") &&
c.uint32(240).int64(a.field_30);
null != a.field_31 && a.hasOwnProperty("field_31") &&
c.uint32(248).int64(a.field_31);
null != a.field_32 && a.hasOwnProperty("field_32") &&
c.uint32(256).bool(a.field_32);
null != a.field_33 && a.hasOwnProperty("field_33") &&
c.uint32(264).int64(a.field_33);
null != a.field_34 && a.hasOwnProperty("field_34") &&
c.uint32(272).int64(a.field_34);
null != a.field_35 && a.hasOwnProperty("field_35") &&
c.uint32(280).int64(a.field_35);
null != a.field_36 && a.hasOwnProperty("field_36") &&
c.uint32(288).int64(a.field_36);
null != a.field_37 && a.hasOwnProperty("field_37") &&
c.uint32(298).string(a.field_37);
null != a.field_38 && a.hasOwnProperty("field_38") &&
c.uint32(306).string(a.field_38);
null != a.field_39 && a.hasOwnProperty("field_39") &&
c.uint32(314).string(a.field_39);
null != a.field_40 && a.hasOwnProperty("field_40") &&
c.uint32(320).int64(a.field_40);
null != a.field_41 && a.hasOwnProperty("field_41") &&
c.uint32(330).string(a.field_41);
null != a.field_42 && a.hasOwnProperty("field_42") &&
c.uint32(338).string(a.field_42);
null != a.field_43 && a.hasOwnProperty("field_43") &&
c.uint32(344).int64(a.field_43);
null != a.field_44 && a.hasOwnProperty("field_44") &&
c.uint32(352).int64(a.field_44);
null != a.field_45 && a.hasOwnProperty("field_45") &&
c.uint32(360).int64(a.field_45);
null != a.field_46 && a.hasOwnProperty("field_46") &&
c.uint32(368).int64(a.field_46);
null != a.field_47 && a.hasOwnProperty("field_47") &&
c.uint32(376).int64(a.field_47);
null != a.field_48 && a.hasOwnProperty("field_48") &&
c.uint32(384).int64(a.field_48);
null != a.field_49 && a.hasOwnProperty("field_49") &&
c.uint32(392).int64(a.field_49);
null != a.field_50 && a.hasOwnProperty("field_50") &&
c.uint32(400).int64(a.field_50);
return c;
};
a.decode = function(a, c) {
a instanceof Jf || (a = Jf.create(a));
c = void 0 === c ? a.len : a.pos + c;
for (var d = new Gg.unity_proto.UnityInfo; a.pos < c;) {
var e = a.uint32();
switch(e >>> 3) {
case 1:
d.field_1 = a.string();
break;
case 2:
d.field_2 = a.int64();
break;
case 3:
d.field_3 = a.int64();
break;
case 4:
d.field_4 = a.int64();
break;
case 5:
d.field_5 = a.int64();
break;
case 6:
d.field_6 = a.int64();
break;
case 7:
d.field_7 = a.int64();
break;
case 8:
d.field_8 = a.int64();
break;
case 9:
d.field_9 = a.int64();
break;
case 10:
d.field_10 = a.int64();
break;
case 11:
d.field_11 = a.int64();
break;
case 12:
d.field_12 = a.int64();
break;
case 13:
d.field_13 = a.int64();
break;
case 14:
d.field_14 = a.bool();
break;
case 15:
d.field_15 = a.int64();
break;
case 16:
d.field_16 = a.int64();
break;
case 17:
d.field_17 = a.int64();
break;
case 18:
d.field_18 = a.int64();
break;
case 19:
d.field_19 = a.int64();
break;
case 20:
d.field_20 = a.int64();
break;
case 21:
d.field_21 = a.int64();
break;
case 22:
d.field_22 = a.int64();
break;
case 23:
d.field_23 = a.string();
break;
case 24:
d.field_24 = a.int64();
break;
case 25:
d.field_25 = a.int64();
break;
case 26:
d.field_26 = a.int64();
break;
case 27:
d.field_27 = a.int64();
break;
case 28:
d.field_28 = a.int64();
break;
case 29:
d.field_29 = a.int64();
break;
case 30:
d.field_30 = a.int64();
break;
case 31:
d.field_31 = a.int64();
break;
case 32:
d.field_32 = a.bool();
break;
case 33:
d.field_33 = a.int64();
break;
case 34:
d.field_34 = a.int64();
break;
case 35:
d.field_35 = a.int64();
break;
case 36:
d.field_36 = a.int64();
break;
case 37:
d.field_37 = a.string();
break;
case 38:
d.field_38 = a.string();
break;
case 39:
d.field_39 = a.string();
break;
case 40:
d.field_40 = a.int64();
break;
case 41:
d.field_41 = a.string();
break;
case 42:
d.field_42 = a.string();
break;
case 43:
d.field_43 = a.int64();
break;
case 44:
d.field_44 = a.int64();
break;
case 45:
d.field_45 = a.int64();
break;
case 46:
d.field_46 = a.int64();
break;
case 47:
d.field_47 = a.int64();
break;
case 48:
d.field_48 = a.int64();
break;
case 49:
d.field_49 = a.int64();
break;
case 50:
d.field_50 = a.int64();
break;
default:
a.skipType(e & 7);
}
}
return d;
};
return a;
}();
return a;
}();
h.inherits(t, z);
t.prototype.getSdkVersion = function() {
return this.get("sdkVersion");
};
t.prototype.setSdkVersion = function(a) {
this.set("sdkVersion", a);
};
t.prototype.getBatteryLevel = function() {
return this.get("batteryLevel");
};
t.prototype.setBatteryLevel = function(a) {
this.set("batteryLevel", a);
};
t.prototype.getBatteryState = function() {
return this.get("batteryState");
};
t.prototype.setBatteryState = function(a) {
this.set("batteryState", a);
};
t.prototype.getAccelerometerX = function() {
return this.get("accelerometerX");
};
t.prototype.setAccelerometerX = function(a) {
this.set("accelerometerX", a);
};
t.prototype.getAccelerometerY = function() {
return this.get("accelerometerY");
};
t.prototype.setAccelerometerY = function(a) {
this.set("accelerometerY", a);
};
t.prototype.getAccelerometerZ = function() {
return this.get("accelerometerZ");
};
t.prototype.setAccelerometerZ = function(a) {
this.set("accelerometerZ", a);
};
t.prototype.getNetworkType = function() {
return this.get("networkType");
};
t.prototype.setNetworkType = function(a) {
this.set("networkType", a);
};
t.prototype.getDeviceOrientation = function() {
return this.get("deviceOrientation");
};
t.prototype.setDeviceOrientation = function(a) {
this.set("deviceOrientation", a);
};
t.prototype.getTouchXUp = function() {
return this.get("touchXUp");
};
t.prototype.setTouchXUp = function(a) {
this.set("touchXUp", a);
};
t.prototype.getTouchXDown = function() {
return this.get("touchXDown");
};
t.prototype.setTouchXDown = function(a) {
this.set("touchXDown", a);
};
t.prototype.getTouchYUp = function() {
return this.get("touchYUp");
};
t.prototype.setTouchYUp = function(a) {
this.set("touchYUp", a);
};
t.prototype.getTouchYDown = function() {
return this.get("touchYDown");
};
t.prototype.setTouchYDown = function(a) {
this.set("touchYDown", a);
};
t.prototype.getTouchDuration = function() {
return this.get("touchDuration");
};
t.prototype.setTouchDuration = function(a) {
this.set("touchDuration", a);
};
t.prototype.getTouchPressure = function() {
return this.get("touchPressure");
};
t.prototype.setTouchPressure = function(a) {
this.set("touchPressure", a);
};
t.prototype.getTouchDiameter = function() {
return this.get("touchDiameter");
};
t.prototype.setTouchDiameter = function(a) {
this.set("touchDiameter", a);
};
t.prototype.getCpuCount = function() {
return this.get("cpuCount");
};
t.prototype.setCpuCount = function(a) {
this.set("cpuCount", a);
};
t.prototype.getTouchUpTotal = function() {
return this.get("touchUpTotal");
};
t.prototype.setTouchUpTotal = function(a) {
this.set("touchUpTotal", a);
};
t.prototype.getTouchDownTotal = function() {
return this.get("touchDownTotal");
};
t.prototype.setTouchDownTotal = function(a) {
this.set("touchDownTotal", a);
};
t.prototype.getTouchMoveTotal = function() {
return this.get("touchMoveTotal");
};
t.prototype.setTouchMoveTotal = function(a) {
this.set("touchMoveTotal", a);
};
t.prototype.getTouchCancelTotal = function() {
return this.get("touchCancelTotal");
};
t.prototype.setTouchCancelTotal = function(a) {
this.set("touchCancelTotal", a);
};
t.prototype.getOsVersion = function() {
return this.get("osVersion");
};
t.prototype.setOsVersion = function(a) {
this.set("osVersion", a);
};
t.prototype.getTimeZoneOffset = function() {
return this.get("timeZoneOffset");
};
t.prototype.setTimeZoneOffset = function(a) {
this.set("timeZoneOffset", a);
};
t.prototype.getUsbConnected = function() {
return this.get("usbConnected");
};
t.prototype.setUsbConnected = function(a) {
this.set("usbConnected", a);
};
t.prototype.getAppActive = function() {
return this.get("appActive");
};
t.prototype.setAppActive = function(a) {
this.set("appActive", a);
};
t.prototype.getAppUptime = function() {
return this.get("appUptime");
};
t.prototype.setAppUptime = function(a) {
this.set("appUptime", a);
};
t.prototype.getAppStartTime = function() {
return this.get("appStartTime");
};
t.prototype.setAppStartTime = function(a) {
this.set("appStartTime", a);
};
t.prototype.getRooted = function() {
return this.get("rooted");
};
t.prototype.setRooted = function(a) {
this.set("rooted", a);
};
t.prototype.getEventTimestamp = function() {
return this.get("eventTimestamp");
};
t.prototype.setEventTimestamp = function(a) {
this.set("eventTimestamp", a);
};
t.prototype.getApkHash = function() {
return this.get("apkHash");
};
t.prototype.setApkHash = function(a) {
this.set("apkHash", a);
};
t.prototype.getApkDeveloperSigningCertificateHash = function() {
return this.get("apkDeveloperSigningCertificateHash");
};
t.prototype.setApkDeveloperSigningCertificateHash = function(a) {
this.set("apkDeveloperSigningCertificateHash", a);
};
t.prototype.getAppVersionName = function() {
return this.get("appVersionName");
};
t.prototype.setAppVersionName = function(a) {
this.set("appVersionName", a);
};
t.prototype.getAppVersionCode = function() {
return this.get("appVersionCode");
};
t.prototype.setAppVersionCode = function(a) {
this.set("appVersionCode", a);
};
t.prototype.getAppIdName = function() {
return this.get("appIdName");
};
t.prototype.setAppIdName = function(a) {
this.set("appIdName", a);
};
t.prototype.getAppInstaller = function() {
return this.get("appInstaller");
};
t.prototype.setAppInstaller = function(a) {
this.set("appInstaller", a);
};
t.prototype.getDeviceUptime = function() {
return this.get("deviceUptime");
};
t.prototype.setDeviceUptime = function(a) {
this.set("deviceUptime", a);
};
t.prototype.getDeviceElapsedRealtime = function() {
return this.get("deviceElapsedRealtime");
};
t.prototype.setDeviceElapsedRealtime = function(a) {
this.set("deviceElapsedRealtime", a);
};
t.prototype.getAdbEnabled = function() {
return this.get("adbEnabled");
};
t.prototype.setAdbEnabled = function(a) {
this.set("adbEnabled", a);
};
t.prototype.getTimeOnScreen = function() {
return this.get("timeOnScreen");
};
t.prototype.setTimeOnScreen = function(a) {
this.set("timeOnScreen", a);
};
t.prototype.getMinimumAlpha = function() {
return this.get("minimumAlpha");
};
t.prototype.setMinimumAlpha = function(a) {
this.set("minimumAlpha", a);
};
t.prototype.getAdViewWidth = function() {
return this.get("adViewWidth");
};
t.prototype.setAdViewWidth = function(a) {
this.set("adViewWidth", a);
};
t.prototype.getAdViewHeight = function() {
return this.get("adViewHeight");
};
t.prototype.setAdViewHeight = function(a) {
this.set("adViewHeight", a);
};
t.prototype.getAndroidTouchObscured = function() {
return this.get("androidTouchObscured");
};
t.prototype.setAndroidTouchObscured = function(a) {
this.set("androidTouchObscured", a);
};
t.prototype.getTouchToolType = function() {
return this.get("touchToolType");
};
t.prototype.setTouchToolType = function(a) {
this.set("touchToolType", a);
};
t.prototype.getTouchSource = function() {
return this.get("touchSource");
};
t.prototype.setTouchSource = function(a) {
this.set("touchSource", a);
};
t.prototype.getTouchDeviceId = function() {
return this.get("touchDeviceId");
};
t.prototype.setTouchDeviceId = function(a) {
this.set("touchDeviceId", a);
};
t.prototype.getTouchDistance = function() {
return this.get("touchDistance");
};
t.prototype.setTouchDistance = function(a) {
this.set("touchDistance", a);
};
t.prototype.getAdViewX = function() {
return this.get("adViewX");
};
t.prototype.setAdViewX = function(a) {
this.set("adViewX", a);
};
t.prototype.getAdViewY = function() {
return this.get("adViewY");
};
t.prototype.setAdViewY = function(a) {
this.set("adViewY", a);
};
t.prototype.getScreenWidth = function() {
return this.get("screenWidth");
};
t.prototype.setScreenWidth = function(a) {
this.set("screenWidth", a);
};
t.prototype.getScreenHeight = function() {
return this.get("screenHeight");
};
t.prototype.setScreenHeight = function(a) {
this.set("screenHeight", a);
};
t.prototype.getBase64ProtoBuf = function() {
var a = {field_1:this.getSdkVersion(), field_2:this.getBatteryLevel(),
field_3:this.getBatteryState(), field_4:this.getAccelerometerX(),
field_5:this.getAccelerometerY(), field_6:this.getAccelerometerZ(),
field_7:this.getTouchXUp(), field_8:this.getTouchYUp(),
field_9:this.getTouchXDown(), field_10:this.getTouchYDown(),
field_11:this.getTouchDuration(), field_12:this.getTouchPressure(),
field_13:this.getTouchDiameter(), field_14:this.getAndroidTouchObscured(),
field_15:this.getTouchToolType(),
field_16:this.getTouchSource(), field_17:this.getTouchDeviceId(),
field_18:this.getTouchDistance(), field_19:this.getTouchUpTotal(),
field_20:this.getTouchDownTotal(), field_21:this.getTouchMoveTotal(),
field_22:this.getTouchCancelTotal(), field_23:this.getOsVersion(),
field_24:this.getCpuCount(), field_25:this.getDeviceUptime(),
field_26:this.getDeviceElapsedRealtime(), field_27:this.getTimeZoneOffset(),
field_28:this.getUsbConnected(), field_29:this.getAdbEnabled(),
field_30:this.getRooted(),
field_31:this.getNetworkType(), field_32:this.getAppActive(),
field_33:this.getAppUptime(), field_34:this.getAppStartTime(),
field_35:this.getEventTimestamp(), field_36:this.getTimeOnScreen(),
field_37:this.getApkHash(), field_38:this.getApkDeveloperSigningCertificateHash(),
field_39:this.getAppVersionName(), field_40:this.getAppVersionCode(),
field_41:this.getAppIdName(), field_42:this.getAppInstaller(),
field_43:this.getAdViewWidth(), field_44:this.getAdViewHeight(),
field_45:this.getAdViewX(),
field_46:this.getAdViewY(), field_47:this.getMinimumAlpha(),
field_48:this.getScreenWidth(), field_49:this.getScreenHeight(),
field_50:this.getDeviceOrientation()};
a = {encryptedBlobs:[Kf.UnityInfo.encode(a).finish()],
encryptionMethod:Kf.UnityProto.EncryptionMethod.UNENCRYPTED,
protoName:Kf.UnityProto.ProtoName.UNITY_INFO};
a = Kf.UnityProto.encode(a).finish();
return x.base64.encode(a, 0, a.byteLength);
};
t.prototype.getBase64ProtoBufNonEncoded = function() {
var a = this.getBase64ProtoBuf();
a = a.replace(/\//g, "_");
a = a.replace(/\+/g, "-");
return a = a.replace(/[=]+$/, "");
};
t.prototype.getDTO = function() {
return {sdkVersion:this.getSdkVersion(), batteryLevel:this.getBatteryLevel(),
batteryState:this.getBatteryState(), accelerometerX:this.getAccelerometerX(),
accelerometerY:this.getAccelerometerY(), accelerometerZ:this.getAccelerometerZ(),
networkType:this.getNetworkType(), deviceOrientation:this.getDeviceOrientation(),
touchXUp:this.getTouchXUp(), touchXDown:this.getTouchXDown(),
touchYUp:this.getTouchYUp(), touchYDown:this.getTouchYDown(),
touchDuration:this.getTouchDuration(), touchPressure:this.getTouchPressure(),
touchDiameter:this.getTouchDiameter(), cpuCount:this.getCpuCount(),
touchUpTotal:this.getTouchUpTotal(), touchDownTotal:this.getTouchDownTotal(),
touchMoveTotal:this.getTouchMoveTotal(),
touchCancelTotal:this.getTouchCancelTotal(), osVersion:this.getOsVersion(),
timeZoneOffset:this.getTimeZoneOffset(), usbConnected:this.getUsbConnected(),
appActive:this.getAppActive(), appUptime:this.getAppUptime(),
appStartTime:this.getAppStartTime(), rooted:this.getRooted(),
eventTimestamp:this.getEventTimestamp(),
apkHash:this.getApkHash(),
apkDeveloperSigningCertificateHash:this.getApkDeveloperSigningCertificateHash(),
appVersionName:this.getAppVersionName(), appVersionCode:this.getAppVersionCode(),
appIdName:this.getAppIdName(), appInstaller:this.getAppInstaller(),
deviceUptime:this.getDeviceUptime(),
deviceElapsedRealtime:this.getDeviceElapsedRealtime(),
adbEnabled:this.getAdbEnabled(), timeOnScreen:this.getTimeOnScreen(),
minimumAlpha:this.getMinimumAlpha(), adViewWidth:this.getAdViewWidth(),
adViewHeight:this.getAdViewHeight(),
androidTouchObscured:this.getAndroidTouchObscured(),
touchToolType:this.getTouchToolType(), touchSource:this.getTouchSource(),
touchDeviceId:this.getTouchDeviceId(), touchDistance:this.getTouchDistance(),
adViewX:this.getAdViewX(), adViewY:this.getAdViewY(),
screenWidth:this.getScreenWidth(), screenHeight:this.getScreenHeight()};
};
h.inherits(Qa, J);
Qa.prototype.fetch = function() {
var a = this;
return J.prototype.fetch.call(this).then(function() {
var c = [];
c.push(a._core.DeviceInfo.Ios.getUserInterfaceIdiom().then(function(c) {
return a.set("userInterfaceIdiom", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.getScreenScale().then(function(c) {
return a.set("screenScale", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.isSimulator().then(function(c) {
return a.set("simulator", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.getTotalSpace().then(function(c) {
return a.set("totalInternalSpace", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.getStatusBarHeight().then(function(c) {
return a.set("statusBarHeight", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.getStatusBarWidth().then(function(c) {
return a.set("statusBarWidth", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
c.push(a._core.DeviceInfo.Ios.getDeviceMaxVolume().then(function(c) {
return a.set("maxVolume", c);
}).catch(function(c) {
return a.handleDeviceInfoError(c);
}));
return Promise.all(c);
});
};
Qa.prototype.getStores = function() {
return "apple";
};
Qa.prototype.getScreenScale = function() {
return this.get("screenScale");
};
Qa.prototype.getUserInterfaceIdiom = function() {
return this.get("userInterfaceIdiom");
};
Qa.prototype.isSimulator = function() {
return this.get("simulator");
};
Qa.prototype.getStatusBarHeight = function() {
return this.get("statusBarHeight");
};
Qa.prototype.getStatusBarWidth = function() {
return this.get("statusBarWidth");
};
Qa.prototype.isStatusBarHidden = function() {
var a = this;
return this._core.DeviceInfo.Ios.isStatusBarHidden().then(function(c) {
a.set("statusBarHidden", c);
return a.get("statusBarHidden");
});
};
Qa.prototype.getSensorList = function() {
var a = this;
return this._core.DeviceInfo.Ios.getSensorList().then(function(c) {
a.set("sensorList", c);
return a.get("sensorList");
});
};
Qa.prototype.getFreeSpace = function() {
var a = this;
return this._core.DeviceInfo.Ios.getFreeSpace().then(function(c) {
a.set("freeInternalSpace", c);
return a.get("freeInternalSpace");
});
};
Qa.prototype.getDTO = function() {
var a = this;
return J.prototype.getDTO.call(this).then(function(c) {
return Object.assign({}, c, {screenScale:a.getScreenScale(),
userInterfaceIdiom:a.getUserInterfaceIdiom(), simulator:a.isSimulator()});
});
};
Qa.prototype.getAnonymousDTO = function() {
var a = this;
return J.prototype.getAnonymousDTO.call(this).then(function(c) {
return Object.assign({}, c, {screenScale:a.getScreenScale(),
userInterfaceIdiom:a.getUserInterfaceIdiom(), simulator:a.isSimulator()});
});
};
Qa.prototype.getStaticDTO = function() {
return Object.assign({}, J.prototype.getStaticDTO.call(this),
{screenScale:this.getScreenScale(),
userInterfaceIdiom:this.getUserInterfaceIdiom(), simulator:this.isSimulator()});
};
Qa.prototype.getAnonymousStaticDTO = function() {
return Object.assign({}, J.prototype.getAnonymousStaticDTO.call(this),
{screenScale:this.getScreenScale(),
userInterfaceIdiom:this.getUserInterfaceIdiom(), simulator:this.isSimulator()});
};
Ha.prototype.getOptionalSignal = function() {
var a = this, c = new X;
c.setSequenceNumber(m.getAdRequestOrdinal());
c.setIsJailbroken(this._deviceInfo.isRooted());
c.setDeviceIncapabilities(this.checkDeviceIncapabilities());
c.setDeviceSubModel(this._deviceInfo.getModel());
c.setIsNetworkMetered(!1);
var d = [];
d.push(this._deviceInfo.getBatteryLevel().then(function(a) {
c.setDeviceBatteryLevel(a);
}).catch(function() {
a.logFailure("batteryLevel");
}));
d.push(this._deviceInfo.getBatteryStatus().then(function(d) {
c.setIsDeviceCharging(2 === a.getBatteryStatus(a._platform, d));
}).catch(function() {
a.logFailure("batteryStatus");
}));
d.push(Sb.getRequestCount(this._core).then(function(a) {
"number" === typeof a && c.setNumPriorUserRequests(a);
}).catch(function() {
a.logFailure("numPriorUserRequets");
}));
this._platform === p.ANDROID &&
d.push(this._core.DeviceInfo.Android.getPackageInfo(this._clientInfo.getApplication
Name()).then(function(a) {
a.versionCode && a.packageName ? c.setAndroidMarketVersion(a.versionCode +
"." + a.packageName) : c.setAndroidMarketVersion("null");
}).catch(function() {
a.logFailure("androidMarketVersion");
}));
d.push(Sb.getClickCount(this._core).then(function(a) {
"number" === typeof a && c.setPriorClickCount(a);
}).catch(function() {
a.logFailure("priorClickCount");
}));
d.push(Sb.getPriorRequestToReadyTime(this._core).then(function(a) {
"number" === typeof a && c.setAdLoadDuration(a);
}).catch(function() {
a.logFailure("PriorRequestToReadyTime");
}));
d.push(Promise.all([this._deviceInfo.getConnectionType(),
this._deviceInfo.getNetworkType()]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
"wifi" === d ? c.setGranularSpeedBucket("wi") : "cellular" === d ?
c.setGranularSpeedBucket(a.getNetworkValue(e)) :
c.setGranularSpeedBucket("unknown");
}).catch(function() {
a.logFailure("granularSpeedBucket");
}));
d.push(Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight()]).then(function(a) {
var d = h.makeIterator(a);
a = d.next().value;
d = d.next().value;
c.setIUSizes(a + "x" + d + "|" + d + "x" + a);
}).catch(function() {
a.logFailure("iuSizes");
}));
return Promise.all(d).then(function() {
return c;
});
};
Ha.prototype.getAdRequestSignal = function() {
return this.getCommonSignal();
};
Ha.prototype.setAdmobPackageInfo = function(a, c) {
this._packageInstaller = a;
this._packageVersionCode = c;
};
Ha.prototype.getClickSignal = function(a, c) {
var d = this;
return this.getCommonSignal().then(function(e) {
a.diameter && e.setTouchDiameter(a.diameter);
a.pressure && e.setTouchPressure(a.pressure);
a.start && (e.setTouchXDown(a.start.x), e.setTouchYDown(a.start.y));
a.end && (e.setTouchXUp(a.end.x), e.setTouchYUp(a.end.y));
a.duration && e.setTouchDuration(a.duration);
e.setTouchDownTotal(a.counts.down);
e.setTouchUpTotal(a.counts.up);
e.setTouchMoveTotal(a.counts.move);
e.setTouchCancelTotal(a.counts.cancel);
e.setTimeOnScreen(c.getTimeOnScreen());
e.getScreenWidth() && e.getScreenHeight() && (d._platform === p.IOS &&
d._deviceInfo instanceof Qa && d._deviceInfo.getScreenScale() ?
(e.setAdViewWidth(d.getIosViewWidth(e.getScreenWidth(),
d._deviceInfo.getScreenScale())),
e.setAdViewHeight(d.getIosViewHeight(e.getScreenHeight(),
d._deviceInfo.getScreenScale()))) : d._deviceInfo instanceof G &&
d._deviceInfo.getScreenDensity() &&
(e.setAdViewWidth(d.getAndroidViewWidth(e.getScreenWidth(),
d._deviceInfo.getScreenDensity())),
e.setAdViewHeight(d.getAndroidViewHeight(e.getScreenHeight(),
d._deviceInfo.getScreenDensity()))));
e.setAdViewX(0);
e.setAdViewY(0);
return e;
});
};
Ha.prototype.getCommonSignal = function() {
var a = this, c = new t;
c.setEventTimestamp(this.getEventTimestamp());
c.setSdkVersion(this.getSdkVersion(this._platform, this._clientInfo));
c.setOsVersion(this.getOsVersion(this._platform, this._deviceInfo));
c.setTimeZoneOffset(this.getTimeZoneOffset());
c.setAppActive(this._focusManager.isAppForeground());
c.setAppUptime(this.getAppUptime(this._clientInfo));
c.setAppStartTime(this.getAppStartTime(this._clientInfo));
c.setRooted(this.getRooted(this._deviceInfo));
c.setAppVersionName(this._clientInfo.getApplicationVersion());
c.setAppIdName(this._clientInfo.getApplicationName());
var d = [];
d.push(this._deviceInfo.getBatteryLevel().then(function(a) {
c.setBatteryLevel(Math.round(100 * a));
}).catch(function() {
a.logFailure("batteryLevel");
}));
d.push(this._deviceInfo.getBatteryStatus().then(function(d) {
c.setBatteryState(a.getBatteryStatus(a._platform, d));
}).catch(function() {
a.logFailure("batteryStatus");
}));
d.push(this._deviceInfo.getConnectionType().then(function(d) {
c.setNetworkType(a.getNetworkType(d));
}).catch(function() {
a.logFailure("connectionType");
}));
d.push(Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight()]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
a._platform === p.IOS && a._deviceInfo instanceof Qa ? (c.setScreenWidth(d *
a._deviceInfo.getScreenScale()), c.setScreenHeight(e *
a._deviceInfo.getScreenScale())) : (c.setScreenWidth(d), c.setScreenHeight(e));
c.setDeviceOrientation(a.getDeviceScreenOrientation(d, e));
}).catch(function() {
a.logFailure("screenWidth");
}));
this._platform === p.ANDROID && (this._packageInstaller &&
this._packageVersionCode ? (c.setAppInstaller(this._packageInstaller),
c.setAppVersionCode(this._packageVersionCode)) :
d.push(this._core.DeviceInfo.Android.getPackageInfo(this._clientInfo.getApplication
Name()).then(function(d) {
d.installer ? (c.setAppInstaller(d.installer), a._packageInstaller =
d.installer) : c.setAppInstaller("unknown");
d.versionCode && c.setAppVersionCode(d.versionCode);
}).catch(function() {
a.logFailure("packageInfo");
})));
return Promise.all(d).then(function() {
return c;
});
};
Ha.prototype.logFailure = function(a) {
F.trigger("signal_failed", {signal:a});
};
Ha.prototype.getEventTimestamp = function() {
return Math.round(Date.now() / 1000);
};
Ha.prototype.getSdkVersion = function(a) {
return a === p.IOS ? "unity-ios-v" + this._clientInfo.getSdkVersionName() :
"unity-android-v" + this._clientInfo.getSdkVersionName();
};
Ha.prototype.getNetworkType = function(a) {
return "wifi" === a ? 1 : "cellular" === a ? 0 : -1;
};
Ha.prototype.getOsVersion = function(a, c) {
return a === p.IOS ? c.getModel().split(" ")[0].replace(/[0-9]+,[0-9]+$/, "") +
" " + c.getOsVersion() : c.getOsVersion();
};
Ha.prototype.getTimeZoneOffset = function() {
return -1 * (new Date).getTimezoneOffset() + 1440;
};
Ha.prototype.getAppUptime = function(a) {
return Math.round((Date.now() - a.getInitTimestamp()) / 1000);
};
Ha.prototype.getAppStartTime = function(a) {
return Math.round(a.getInitTimestamp() / 1000);
};
Ha.prototype.getRooted = function(a) {
return a instanceof Qa && a.isSimulator() ? 2 : a.isRooted() ? 1 : 0;
};
Ha.prototype.getIosViewWidth = function(a, c) {
return a / c;
};
Ha.prototype.getIosViewHeight = function(a, c) {
return a / c;
};
Ha.prototype.getAndroidViewWidth = function(a, c) {
return a / (c / 160);
};
Ha.prototype.getAndroidViewHeight = function(a, c) {
return a / (c / 160);
};
Ha.prototype.getBatteryStatus = function(a, c) {
if (a === p.IOS) {
return c;
}
switch(c) {
case 1:
return 0;
case 2:
return 2;
case 3:
return 1;
case 4:
return 1;
case 5:
return 3;
default:
return 0;
}
};
Ha.prototype.getDeviceScreenOrientation = function(a, c) {
return a === c ? 20 : a > c ? 3 : 1;
};
Ha.prototype.checkDeviceIncapabilities = function() {
var a = "";
this._deviceInfo instanceof G ? (this._deviceInfo.isGoogleStoreInstalled() ||
(a += "a"), this._deviceInfo.isGoogleMapsInstalled() || (a += "m"),
this._deviceInfo.isTelephonyInstalled() || (a += "t")) : a += "atm";
return a;
};
Ha.prototype.getNetworkValue = function(a) {
var c = "unknown";
if (0 === a) {
c = "unknown";
} else {
if (1 === a || 16 === a || 2 === a || 4 === a || 7 === a || 11 === a) {
c = "ed";
} else {
if (3 === a || 5 === a || 6 === a || 8 === a || 9 === a || 10 === a || 12
=== a || 14 === a || 15 === a || 17 === a) {
c = "3g";
} else {
if (13 === a || 18 === a || 19 === a) {
c = "4g";
}
}
}
}
return c;
};
var Ka;
(function(a) {
a[a.SCREEN_ORIENTATION_UNSPECIFIED = -1] = "SCREEN_ORIENTATION_UNSPECIFIED";
a[a.SCREEN_ORIENTATION_LANDSCAPE = 0] = "SCREEN_ORIENTATION_LANDSCAPE";
a[a.SCREEN_ORIENTATION_PORTRAIT = 1] = "SCREEN_ORIENTATION_PORTRAIT";
a[a.SCREEN_ORIENTATION_USER = 2] = "SCREEN_ORIENTATION_USER";
a[a.SCREEN_ORIENTATION_BEHIND = 3] = "SCREEN_ORIENTATION_BEHIND";
a[a.SCREEN_ORIENTATION_SENSOR = 4] = "SCREEN_ORIENTATION_SENSOR";
a[a.SCREEN_ORIENTATION_NOSENSOR = 5] = "SCREEN_ORIENTATION_NOSENSOR";
a[a.SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6] =
"SCREEN_ORIENTATION_SENSOR_LANDSCAPE";
a[a.SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7] =
"SCREEN_ORIENTATION_SENSOR_PORTRAIT";
a[a.SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8] =
"SCREEN_ORIENTATION_REVERSE_LANDSCAPE";
a[a.SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9] =
"SCREEN_ORIENTATION_REVERSE_PORTRAIT";
a[a.SCREEN_ORIENTATION_FULL_SENSOR = 10] = "SCREEN_ORIENTATION_FULL_SENSOR";
a[a.SCREEN_ORIENTATION_USER_LANDSCAPE = 11] =
"SCREEN_ORIENTATION_USER_LANDSCAPE";
a[a.SCREEN_ORIENTATION_USER_PORTRAIT = 12] =
"SCREEN_ORIENTATION_USER_PORTRAIT";
a[a.SCREEN_ORIENTATION_FULL_USER = 13] = "SCREEN_ORIENTATION_FULL_USER";
a[a.SCREEN_ORIENTATION_LOCKED = 14] = "SCREEN_ORIENTATION_LOCKED";
})(Ka || (Ka = {}));
var ob;
(function(a) {
a[a.ROTATION_0 = 0] = "ROTATION_0";
a[a.ROTATION_90 = 1] = "ROTATION_90";
a[a.ROTATION_180 = 2] = "ROTATION_180";
a[a.ROTATION_270 = 3] = "ROTATION_270";
})(ob || (ob = {}));
h.inherits(rb, bc);
rb.prototype.open = function(a, c, d, e, f, g, l, n, k) {
this._activityId++;
this._currentActivityFinished = !1;
this._androidOptions = k;
0 === c.length && (c = ["webview"]);
this._lockedOrientation = (l = bc.getForcedOrientation()) ? l : e;
e = [];
f && (e = [4]);
f = this.isHardwareAccelerationAllowed();
this._core.Sdk.logInfo("Opening " + a.description() + " ad unit with
orientation " + ja[this._lockedOrientation] + ", hardware acceleration " + (f ?
"enabled" : "disabled"));
return this._ads.Android.AdUnit.open(this._activityId, c,
this.getOrientation(d, this._lockedOrientation, k), e, 1, f, g);
};
rb.prototype.close = function() {
if (this._currentActivityFinished) {
return Promise.resolve();
}
this._currentActivityFinished = !0;
return this._ads.Android.AdUnit.close();
};
rb.prototype.reconfigure = function(a) {
var c = this, d = [];
return Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight()]).then(function(e) {
var f = h.makeIterator(e);
e = f.next().value;
f = f.next().value;
switch(a) {
case 0:
d.push(c._ads.Android.AdUnit.setViews(["webview"]));

d.push(c._ads.Android.AdUnit.setOrientation(Ka.SCREEN_ORIENTATION_FULL_SENSOR));
break;
case 1:

d.push(c._ads.Android.AdUnit.setOrientation(Ka.SCREEN_ORIENTATION_LANDSCAPE));
d.push(c._ads.Android.AdUnit.setViewFrame("videoplayer", 0, 0, f, e));
break;
case 2:
d.push(c._ads.Android.AdUnit.setViews(["webplayer", "webview"])),
d.push(c._ads.Android.AdUnit.setOrientation(Ka.SCREEN_ORIENTATION_FULL_SENSOR));
}
return Promise.all(d);
});
};
rb.prototype.reorient = function(a, c) {
return this._ads.Android.AdUnit.setOrientation(this.getOrientation(a, c,
this._androidOptions));
};
rb.prototype.isPaused = function() {
return this._paused;
};
rb.prototype.setViewFrame = function(a, c, d, e, f) {
return this._ads.Android.AdUnit.setViewFrame(a, c, d, e, f);
};
rb.prototype.getViews = function() {
return this._ads.Android.AdUnit.getViews();
};
rb.prototype.getOrientation = function(a, c, d) {
var e = Ka.SCREEN_ORIENTATION_FULL_SENSOR;
a ? c === ja.PORTRAIT ? e = d.requestedOrientation ===
Ka.SCREEN_ORIENTATION_PORTRAIT ? Ka.SCREEN_ORIENTATION_PORTRAIT :
d.requestedOrientation === Ka.SCREEN_ORIENTATION_REVERSE_PORTRAIT ?
Ka.SCREEN_ORIENTATION_REVERSE_PORTRAIT : d.display &&
this.getNaturalRotation(d.display) === ob.ROTATION_0 ?
Ka.SCREEN_ORIENTATION_PORTRAIT : d.display && this.getNaturalRotation(d.display)
=== ob.ROTATION_180 ? Ka.SCREEN_ORIENTATION_REVERSE_PORTRAIT :
Ka.SCREEN_ORIENTATION_SENSOR_PORTRAIT : c === ja.LANDSCAPE &&
(e = d.requestedOrientation === Ka.SCREEN_ORIENTATION_LANDSCAPE ?
Ka.SCREEN_ORIENTATION_LANDSCAPE : d.requestedOrientation ===
Ka.SCREEN_ORIENTATION_REVERSE_LANDSCAPE ? Ka.SCREEN_ORIENTATION_REVERSE_LANDSCAPE :
d.display && this.getNaturalRotation(d.display) === ob.ROTATION_90 ?
Ka.SCREEN_ORIENTATION_LANDSCAPE : d.display && this.getNaturalRotation(d.display)
=== ob.ROTATION_270 ? Ka.SCREEN_ORIENTATION_REVERSE_LANDSCAPE :
Ka.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) : e = c === ja.PORTRAIT ?
Ka.SCREEN_ORIENTATION_PORTRAIT :
c === ja.LANDSCAPE ? Ka.SCREEN_ORIENTATION_LANDSCAPE :
Ka.SCREEN_ORIENTATION_LOCKED;
return e;
};
rb.prototype.onCreate = function(a) {
this._paused = !1;
a === this._activityId && this._handlers.forEach(function(a) {
return a.onContainerShow();
});
};
rb.prototype.onRestore = function(a) {
this._paused = !1;
a === this._activityId && this._handlers.forEach(function(a) {
return a.onContainerShow();
});
};
rb.prototype.onResume = function(a) {
this._paused = !1;
a === this._activityId && this._handlers.forEach(function(a) {
return a.onContainerForeground();
});
};
rb.prototype.onPause = function(a, c) {
this._paused = !0;
this._handlers.forEach(function(a) {
return a.onContainerBackground();
});
a && c === this._activityId && !this._currentActivityFinished &&
(this._currentActivityFinished = !0, this._handlers.forEach(function(a) {
return a.onContainerDestroy();
}));
};
rb.prototype.onDestroy = function(a, c) {
a && c === this._activityId && !this._currentActivityFinished &&
(this._currentActivityFinished = !0, this._handlers.forEach(function(a) {
return a.onContainerDestroy();
}));
};
rb.prototype.isHardwareAccelerationAllowed = function() {
return 18 > this._deviceInfo.getApiLevel() ? !1 : !0;
};
rb.prototype.getNaturalRotation = function(a) {
switch(a.rotation) {
case ob.ROTATION_0:
return a.width > a.height ? ob.ROTATION_90 : ob.ROTATION_0;
case ob.ROTATION_90:
return a.width < a.height ? ob.ROTATION_180 : ob.ROTATION_90;
case ob.ROTATION_180:
return a.width > a.height ? ob.ROTATION_270 : ob.ROTATION_180;
case ob.ROTATION_270:
return a.width < a.height ? ob.ROTATION_180 : ob.ROTATION_270;
default:
return a.rotation;
}
};
var ye;
(function(a) {
a[a.UNKNOWN = 0] = "UNKNOWN";
a[a.PORTRAIT = 1] = "PORTRAIT";
a[a.PORTRAIT_UPSIDE_DOWN = 2] = "PORTRAIT_UPSIDE_DOWN";
a[a.LANDSCAPE_RIGHT = 3] = "LANDSCAPE_RIGHT";
a[a.LANDSCAPE_LEFT = 4] = "LANDSCAPE_LEFT";
})(ye || (ye = {}));
var he;
(function(a) {
a[a.INTERFACE_ORIENTATION_MASK_PORTRAIT = 2] =
"INTERFACE_ORIENTATION_MASK_PORTRAIT";
a[a.INTERFACE_ORIENTATION_MASK_LANDSCAPE_LEFT = 16] =
"INTERFACE_ORIENTATION_MASK_LANDSCAPE_LEFT";
a[a.INTERFACE_ORIENTATION_MASK_LANDSCAPE_RIGHT = 8] =
"INTERFACE_ORIENTATION_MASK_LANDSCAPE_RIGHT";
a[a.INTERFACE_ORIENTATION_MASK_PORTRAIT_UPSIDE_DOWN = 4] =
"INTERFACE_ORIENTATION_MASK_PORTRAIT_UPSIDE_DOWN";
a[a.INTERFACE_ORIENTATION_MASK_LANDSCAPE = 24] =
"INTERFACE_ORIENTATION_MASK_LANDSCAPE";
a[a.INTERFACE_ORIENTATION_MASK_ALL = 30] = "INTERFACE_ORIENTATION_MASK_ALL";
a[a.INTERFACE_ORIENTATION_MASK_ALL_BUT_UPSIDE_DOWN = 26] =
"INTERFACE_ORIENTATION_MASK_ALL_BUT_UPSIDE_DOWN";
})(he || (he = {}));
h.inherits(ta, bc);
ta.prototype.open = function(a, c, d, e, f, g, l, n, k) {
var r = this;
this._options = k;
this._showing = !0;
0 === c.length && (c = ["webview"]);
(f = bc.getForcedOrientation()) ? (d = !1, this._lockedOrientation = f) :
this._lockedOrientation = e;
this._onAppBackgroundObserver =
this._focusManager.onAppBackground.subscribe(function() {
return r.onAppBackground();
});
this._onAppForegroundObserver =
this._focusManager.onAppForeground.subscribe(function() {
return r.onAppForeground();
});

this._core.iOS.Notification.addAVNotificationObserver(ta._audioSessionInterrupt,
["AVAudioSessionInterruptionTypeKey", "AVAudioSessionInterruptionOptionKey"]);

this._core.iOS.Notification.addAVNotificationObserver(ta._audioSessionRouteChange,
["AVAudioSessionRouteChangeReasonKey"]);
this._core.Sdk.logInfo("Opening " + a.description() + " ad with orientation " +
ja[this._lockedOrientation]);
a = !0;
n && (a = k.statusBarHidden);
return this._ads.iOS.AdUnit.open(c, this.getOrientation(k, d,
this._lockedOrientation), a, d, g, l);
};
ta.prototype.close = function() {
this._showing = !1;
O.isSimejiJapaneseKeyboardApp(this._clientInfo.getGameId()) && this.unPause();
this._focusManager.onAppBackground.unsubscribe(this._onAppBackgroundObserver);
this._focusManager.onAppForeground.unsubscribe(this._onAppForegroundObserver);

this._core.iOS.Notification.removeAVNotificationObserver(ta._audioSessionInterrupt)
;

this._core.iOS.Notification.removeAVNotificationObserver(ta._audioSessionRouteChang
e);
return this._ads.iOS.AdUnit.close();
};
ta.prototype.reconfigure = function(a) {
var c = this, d = [];
return Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight()]).then(function(e) {
var f = h.makeIterator(e);
e = f.next().value;
f = f.next().value + c._deviceInfo.getStatusBarHeight();
switch(a) {
case 0:
d.push(c._ads.iOS.AdUnit.setViews(["webview"]));

d.push(c._ads.iOS.AdUnit.setSupportedOrientations(he.INTERFACE_ORIENTATION_MASK_ALL
));
break;
case 1:
d.push(c._ads.iOS.AdUnit.setViewFrame("videoplayer", new sb(0), new
sb(0), new sb(e), new sb(f))), d.push(c._ads.iOS.AdUnit.setTransform(new
sb(1.57079632679))), d.push(c._ads.iOS.AdUnit.setViewFrame("adunit", new sb(0), new
sb(0), new sb(e), new sb(f)));
}
return Promise.all(d);
});
};
ta.prototype.reorient = function(a, c) {
var d = this;
return this._ads.iOS.AdUnit.setShouldAutorotate(a).then(function() {
if (d._options) {
return
d._ads.iOS.AdUnit.setSupportedOrientations(d.getOrientation(d._options, a, c));
}
});
};
ta.prototype.isPaused = function() {
return this._paused;
};
ta.prototype.pause = function() {
this._paused = !0;
};
ta.prototype.unPause = function() {
this._paused = !1;
};
ta.prototype.setViewFrame = function(a, c, d, e, f) {
return this._ads.iOS.AdUnit.setViewFrame(a, new sb(c), new sb(d), new sb(e),
new sb(f));
};
ta.prototype.getViews = function() {
return this._ads.iOS.AdUnit.getViews();
};
ta.prototype.getOrientation = function(a, c, d) {
c = a.supportedOrientations;
if (d === ja.LANDSCAPE) {
switch(a.statusBarOrientation) {
case ye.LANDSCAPE_LEFT:
c = he.INTERFACE_ORIENTATION_MASK_LANDSCAPE_LEFT;
break;
case ye.LANDSCAPE_RIGHT:
c = he.INTERFACE_ORIENTATION_MASK_LANDSCAPE_RIGHT;
}
} else {
if (d === ja.PORTRAIT) {
switch(a.statusBarOrientation) {
case ye.PORTRAIT:
c = he.INTERFACE_ORIENTATION_MASK_PORTRAIT;
break;
case ye.PORTRAIT_UPSIDE_DOWN:
c = he.INTERFACE_ORIENTATION_MASK_PORTRAIT_UPSIDE_DOWN;
}
}
}
(a.supportedOrientations & c) !== c && (c = a.supportedOrientations);
return c;
};
ta.prototype.onViewDidAppear = function() {
this._handlers.forEach(function(a) {
return a.onContainerShow();
});
};
ta.prototype.onViewDidDisappear = function() {
this._handlers.forEach(function(a) {
return a.onContainerDestroy();
});
};
ta.prototype.onMemoryWarning = function() {
this._handlers.forEach(function(a) {
return a.onContainerSystemMessage(Pc.MEMORY_WARNING);
});
};
ta.prototype.onAppBackground = function() {
this._paused = !0;
this._handlers.forEach(function(a) {
return a.onContainerBackground();
});
};
ta.prototype.onAppForeground = function() {
this._paused = !1;
this._handlers.forEach(function(a) {
return a.onContainerForeground();
});
};
ta.prototype.onNotification = function(a, c) {
if (this._showing) {
switch(a) {
case ta._audioSessionInterrupt:
0 === c.AVAudioSessionInterruptionTypeKey ? 1 ===
c.AVAudioSessionInterruptionOptionKey && this._handlers.forEach(function(a) {
return a.onContainerSystemMessage(Pc.AUDIO_SESSION_INTERRUPT_ENDED);
}) : 1 === c.AVAudioSessionInterruptionTypeKey &&
this._handlers.forEach(function(a) {
return a.onContainerSystemMessage(Pc.AUDIO_SESSION_INTERRUPT_BEGAN);
});
break;
case ta._audioSessionRouteChange:
3 !== c.AVAudioSessionRouteChangeReasonKey ?
this._handlers.forEach(function(a) {
return a.onContainerSystemMessage(Pc.AUDIO_SESSION_ROUTE_CHANGED);
}) : this._handlers.forEach(function(a) {
return a.onContainerSystemMessage(Pc.AUDIO_SESSION_CATEGORY_CHANGED);
});
}
}
};
ta._audioSessionInterrupt = "AVAudioSessionInterruptionNotification";
ta._audioSessionRouteChange = "AVAudioSessionRouteChangeNotification";
var bd;
(function(a) {
a[a.STARTED = 0] = "STARTED";
a[a.RESUMED = 1] = "RESUMED";
a[a.STOPPED = 2] = "STOPPED";
a[a.FINISHED = 3] = "FINISHED";
a[a.REDIRECTED = 4] = "REDIRECTED";
a[a.ERROR = 5] = "ERROR";
})(bd || (bd = {}));
jg.prototype.stop = function() {
this._cache.onStart.unsubscribe(this._startObserver);
this._cache.onRedirect.unsubscribe(this._redirectObserver);
this._cache.onFinish.unsubscribe(this._finishObserver);
this._cache.onStop.unsubscribe(this._stopObserver);
this._cache.onFinishError.unsubscribe(this._finishErrorObserver);
this._cache.onError.unsubscribe(this._errorObserver);
};
jg.prototype.sendDiagnostic = function(a, c) {
a = {eventTimestamp:Date.now(), eventType:bd[a],
creativeType:this._data.creativeType, size:c.contentLength,
downloadStartTimestamp:c.contentLength, targetGameId:this._data.targetGameId,
targetCampaignId:this._data.targetCampaignId};
H.sendEvent("ads.sdk2.events.creativedownload.json", eb.ANONYMOUS, a);
};
h.inherits(ig, B);
ig.prototype.getMetaData = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "getMetaData", [a, c]);
};
h.inherits(hg, B);
hg.prototype.getVideoInfo = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getVideoInfo", [a]);
};
var Gb;
(function(a) {
a[a.FILE_IO_ERROR = 0] = "FILE_IO_ERROR";
a[a.FILE_NOT_FOUND = 1] = "FILE_NOT_FOUND";
a[a.FILE_ALREADY_CACHING = 2] = "FILE_ALREADY_CACHING";
a[a.NOT_CACHING = 3] = "NOT_CACHING";
a[a.JSON_ERROR = 4] = "JSON_ERROR";
a[a.NO_INTERNET = 5] = "NO_INTERNET";
a[a.MALFORMED_URL = 6] = "MALFORMED_URL";
a[a.NETWORK_ERROR = 7] = "NETWORK_ERROR";
a[a.ILLEGAL_STATE = 8] = "ILLEGAL_STATE";
a[a.INVALID_ARGUMENT = 9] = "INVALID_ARGUMENT";
})(Gb || (Gb = {}));
var Ac;
(function(a) {
a[a.DOWNLOAD_STARTED = 0] = "DOWNLOAD_STARTED";
a[a.DOWNLOAD_PROGRESS = 1] = "DOWNLOAD_PROGRESS";
a[a.DOWNLOAD_END = 2] = "DOWNLOAD_END";
a[a.DOWNLOAD_STOPPED = 3] = "DOWNLOAD_STOPPED";
a[a.DOWNLOAD_ERROR = 4] = "DOWNLOAD_ERROR";
})(Ac || (Ac = {}));
h.inherits(fb, B);
fb.prototype.download = function(a, c, d) {
return this._nativeBridge.invoke(this._apiClass, "download", [a, c, d]);
};
fb.prototype.stop = function() {
return this._nativeBridge.invoke(this._apiClass, "stop");
};
fb.prototype.isCaching = function() {
return this._nativeBridge.invoke(this._apiClass, "isCaching");
};
fb.prototype.getFiles = function() {
return this._nativeBridge.invoke(this._apiClass, "getFiles");
};
fb.prototype.getFileInfo = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getFileInfo", [a]);
};
fb.prototype.getFilePath = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getFilePath", [a]);
};
fb.prototype.getHash = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getHash", [a]);
};
fb.prototype.deleteFile = function(a) {
return this._nativeBridge.invoke(this._apiClass, "deleteFile", [a]);
};
fb.prototype.setProgressInterval = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setProgressInterval", [a]);
};
fb.prototype.getProgressInterval = function() {
return this._nativeBridge.invoke(this._apiClass, "getProgressInterval");
};
fb.prototype.setTimeouts = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "setTimeouts", [a, c]);
};
fb.prototype.getTimeouts = function() {
return this._nativeBridge.invoke(this._apiClass, "getTimeouts");
};
fb.prototype.getFreeSpace = function() {
return this._nativeBridge.invoke(this._apiClass, "getFreeSpace");
};
fb.prototype.getTotalSpace = function() {
return this._nativeBridge.invoke(this._apiClass, "getTotalSpace");
};
fb.prototype.getFileContent = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "getFileContent", [a, c]);
};
fb.prototype.handleEvent = function(a, c) {
switch(a) {
case Ac[Ac.DOWNLOAD_STARTED]:
this.onDownloadStarted.trigger(c[0], c[1], c[2], c[3], c[4]);
break;
case Ac[Ac.DOWNLOAD_PROGRESS]:
this.onDownloadProgress.trigger(c[0], c[1], c[2]);
break;
case Ac[Ac.DOWNLOAD_END]:
this.onDownloadEnd.trigger(c[0], c[1], c[2], c[3], c[4], c[5]);
break;
case Ac[Ac.DOWNLOAD_STOPPED]:
this.onDownloadStopped.trigger(c[0], c[1], c[2], c[3], c[4], c[5]);
break;
case Ac[Ac.DOWNLOAD_ERROR]:
this.onDownloadError.trigger(c[0], c[1], c[2]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
gg.getFileInfo = function(a, c) {
return a.getFileInfo(c).catch(function() {
return Promise.resolve(void 0);
});
};
gg.isCached = function(a, c, d) {
var e = this;
return wa.getFileId(d, a).then(function(d) {
return e.getFileInfo(a, d).then(function(a) {
return a && a.found && 0 < a.size ? c.getFileInfo(d).then(function(a) {
return a.fullyDownloaded;
}).catch(function() {
return !1;
}) : !1;
});
});
};
var sa;
(function(a) {
a[a.OK = 0] = "OK";
a[a.STOPPED = 1] = "STOPPED";
a[a.FAILED = 2] = "FAILED";
})(sa || (sa = {}));
la.prototype.cache = function(a) {
var c = this;
return Promise.all([gg.isCached(this._core.Cache, this._cacheBookkeeping, a),
wa.getFileId(a, this._core.Cache)]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
if (d) {
return Promise.resolve([sa.OK, e]);
}
d = c.registerCallback(a, e, c._paused);
c._paused || c.downloadFile(a, e);
return d;
}).then(function(a) {
a = h.makeIterator(a);
var d = a.next().value, f = a.next().value;
if (d === sa.OK) {
return wa.getFileUrl(f, c._core.Cache).then(function(a) {
return [f, a];
});
}
throw d;
}).catch(function(a) {
throw a;
});
};
la.prototype.stop = function() {
var a = !1, c;
for (c in this._callbacks) {
if (this._callbacks.hasOwnProperty(c)) {
var d = this._callbacks[c];
d.networkRetry || d.paused ? this.fulfillCallback(c, sa.STOPPED) : a = !0;
}
}
a && this._core.Cache.stop();
};
la.prototype.isPaused = function() {
return this._paused;
};
la.prototype.getFreeSpace = function() {
return this._core.Cache.getFreeSpace().then(function(a) {
return a;
});
};
la.prototype.downloadFile = function(a, c) {
var d = this;
this._currentUrl = a;
"file://" === a.substring(0, 7) ? (F.trigger("rejected_cache_file_url", {url:a,
fileId:c}), this.fulfillCallback(a, sa.FAILED)) : this._core.Cache.download(a, c,
[]).catch(function(e) {
var f = d._callbacks[a];
if (f) {
switch(e) {
case Gb[Gb.FILE_ALREADY_CACHING]:
d._core.Sdk.logError("Unity Ads cache error: attempted to add second
download from " + a + " to " + c);
d.fulfillCallback(a, sa.FAILED);
break;
case Gb[Gb.NO_INTERNET]:
d.handleRetry(f, a, Gb[Gb.NO_INTERNET]);
break;
default:
d.fulfillCallback(a, sa.FAILED);
}
}
});
};
la.prototype.registerCallback = function(a, c, d, e) {
var f = this;
return new Promise(function(g, l) {
f._callbacks[a] = {fileId:c, networkRetry:!1, retryCount:0,
networkRetryCount:0, paused:d, startTimestamp:0, contentLength:0, resolve:g,
reject:l, originalUrl:e};
});
};
la.prototype.fulfillCallback = function(a, c) {
var d = this._callbacks[a], e = d.originalUrl ?
this._callbacks[d.originalUrl] : void 0;
c === sa.FAILED ? (d.reject(sa.FAILED), e && e.reject(sa.FAILED)) :
(d.resolve([c, d.fileId]), e && e.resolve([c, e.fileId]));
d.originalUrl && delete this._callbacks[d.originalUrl];
delete this._callbacks[a];
};
la.prototype.onDownloadStarted = function(a, c, d, e, f) {
this.updateProgress(0, !1);
var g = this._callbacks[a];
g ? (g.startTimestamp = Date.now(), g.contentLength = d,
this.onStart.trigger(la.getCacheEvent(g), c), 0 === c &&
this._cacheBookkeeping.writeFileEntry(g.fileId,
this._cacheBookkeeping.createFileInfo(!1, c, d, wa.getFileIdExtension(g.fileId))),
d > this._maxFileSize && (this._core.Cache.stop(),
this.onTooLargeFile.trigger(la.getCacheEvent(g), c, d, e, f))) :
F.trigger("cache_callback_error", {url:a, currentUrl:this._currentUrl,
callbacks:JSON.stringify(this._callbacks), size:c, totalSize:d, responseCode:e,
headers:f});
};
la.prototype.onDownloadProgress = function(a, c, d) {
this.updateProgress(c, !1);
this._core.Sdk.logDebug('Cache progress for "' + a + '": ' + Math.round(c / d *
100) + "%");
};
la.prototype.onDownloadEnd = function(a, c, d, e, f, g) {
this.updateProgress(c, !0);
if (e = this._callbacks[a]) {
if (w.AllowedResponseCodes.exec(f.toString())) {
this._cacheBookkeeping.writeFileEntry(e.fileId,
this._cacheBookkeeping.createFileInfo(!0, c, d, wa.getFileIdExtension(e.fileId))),
this.fulfillCallback(a, sa.OK), this.onFinish.trigger(la.getCacheEvent(e));
} else {
if (w.RedirectResponseCodes.exec(f.toString())) {
this.onRedirect.trigger(la.getCacheEvent(e));
this._cacheBookkeeping.removeFileEntry(e.fileId);
this._core.Cache.deleteFile(e.fileId);
var l = w.getHeader(g, "location");
if (l) {
c = e.fileId;
e.originalUrl && (c = this._callbacks[e.originalUrl].fileId, a =
e.originalUrl);
this.registerCallback(l, c, !1, a);
this.downloadFile(l, c);
return;
}
} else {
if (416 === f) {
this.onFinishError.trigger(la.getCacheEvent(e), c, d, f, g);
this.handleRequestRangeError(e, a);
return;
}
}
this.onFinishError.trigger(la.getCacheEvent(e), c, d, f, g);
this._cacheBookkeeping.removeFileEntry(e.fileId);
0 < c && this._core.Cache.deleteFile(e.fileId);
this.fulfillCallback(a, sa.FAILED);
}
}
};
la.prototype.onDownloadStopped = function(a, c, d) {
this.updateProgress(c, !0);
var e = this._callbacks[a];
e && (this._cacheBookkeeping.writeFileEntry(e.fileId,
this._cacheBookkeeping.createFileInfo(!1, c, d, wa.getFileIdExtension(e.fileId))),
this.onStop.trigger(la.getCacheEvent(e)), e.contentLength > this._maxFileSize ?
this.fulfillCallback(a, sa.FAILED) : e.paused || this.fulfillCallback(a,
sa.STOPPED));
};
la.prototype.onDownloadError = function(a, c, d) {
var e = this._callbacks[c];
if (e) {
switch(this.onError.trigger(la.getCacheEvent(e), c, d), a) {
case Gb[Gb.NETWORK_ERROR]:
this.handleRetry(e, c, a);
break;
case Gb[Gb.NO_INTERNET]:
this.handleRetry(e, c, a);
break;
default:
this.fulfillCallback(c, sa.FAILED);
}
}
};
la.prototype.handleRetry = function(a, c) {
var d = this;
a.retryCount < this._maxRetries ? (a.retryCount++, a.networkRetry = !0,
setTimeout(function() {
var a = d._callbacks[c];
a && a.networkRetry && (a.networkRetry = !1, d.downloadFile(c, a.fileId));
}, this._retryDelay)) : a.networkRetryCount < this._maxRetries ?
(a.networkRetryCount++, a.networkRetry = !0) : this.fulfillCallback(c, sa.FAILED);
};
la.prototype.handleRequestRangeError = function(a, c) {
var d = this;
Promise.all([this._core.Cache.getFileInfo(a.fileId),
this._request.head(c)]).then(function(e) {
var f = h.makeIterator(e);
e = f.next().value;
f = f.next().value;
var g = w.getHeader(f.headers, "Content-Length");
200 === f.responseCode && e.found && g && e.size === parseInt(g, 10) && 0 <
e.size ? (d._cacheBookkeeping.writeFileEntry(a.fileId,
d._cacheBookkeeping.createFileInfo(!0, e.size, e.size,
wa.getFileIdExtension(a.fileId))), d.fulfillCallback(c, sa.OK)) :
(d._cacheBookkeeping.removeFileEntry(a.fileId), e.found &&
d._core.Cache.deleteFile(a.fileId), d.fulfillCallback(c, sa.FAILED));
}).catch(function() {
d._cacheBookkeeping.removeFileEntry(a.fileId);
d.fulfillCallback(c, sa.FAILED);
});
};
la.prototype.onNetworkConnected = function() {
for (var a in this._callbacks) {
if (this._callbacks.hasOwnProperty(a)) {
var c = this._callbacks[a];
c.networkRetry && (c.networkRetry = !1, this.downloadFile(a, c.fileId));
}
}
};
la.prototype.pause = function(a) {
if (a !== this._paused) {
if (this._paused = a) {
var c = !1;
for (d in this._callbacks) {
this._callbacks.hasOwnProperty(d) && (a = this._callbacks[d], a.paused
= !0, a.networkRetry || (c = !0));
}
c && this._core.Cache.stop();
} else {
for (c in this._callbacks) {
if (this._callbacks.hasOwnProperty(c)) {
var d = this._callbacks[c];
d.paused && (d.paused = !1, this.downloadFile(c, d.fileId));
}
}
}
}
};
la.prototype.onStorageSet = function(a, c) {
a = !1;
c && c.caching && c.caching.pause && "value" in c.caching.pause &&
(this.pause(c.caching.pause.value), a = !0);
a && (this._core.Storage.delete(v.PUBLIC, "caching.pause"),
this._core.Storage.write(v.PUBLIC));
};
la.prototype.updateProgress = function(a, c) {
var d = a - this._currentDownloadPosition, e = Date.now() -
(this._lastProgressEvent || 0);
0 < a && 102400 < d && 512 < d / e && !this._fastConnectionDetected &&
(this._fastConnectionDetected = !0, this.onFastConnectionDetected.trigger());
c ? (this._currentDownloadPosition = 0, this._fastConnectionDetected = !1) :
(this._currentDownloadPosition = a, this._lastProgressEvent = Date.now());
};
la.getCacheEvent = function(a) {
return {fileId:a.fileId, startTimestamp:a.startTimestamp,
contentLength:a.contentLength};
};
var Rd;
(function(a) {
a[a.METADATA_KEY_DURATION = 9] = "METADATA_KEY_DURATION";
a[a.METADATA_KEY_VIDEO_HEIGHT = 19] = "METADATA_KEY_VIDEO_HEIGHT";
a[a.METADATA_KEY_VIDEO_WIDTH = 18] = "METADATA_KEY_VIDEO_WIDTH";
})(Rd || (Rd = {}));
Zd.getVideoInfo = function(a, c, d) {
return a === p.IOS ? c.Ios.getVideoInfo(d).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var d = c.next().value;
c = c.next().value;
return [a, d, c];
}) : c.Android.getMetaData(d, [Rd.METADATA_KEY_VIDEO_WIDTH,
Rd.METADATA_KEY_VIDEO_HEIGHT, Rd.METADATA_KEY_DURATION]).then(function(a) {
var c = 0, d = 0, e = 0;
a = h.makeIterator(a);
for (var n = a.next(); !n.done; n = a.next()) {
n = n.value;
var k = n[1];
switch(n[0]) {
case Rd.METADATA_KEY_VIDEO_WIDTH:
c = k;
break;
case Rd.METADATA_KEY_VIDEO_HEIGHT:
d = k;
break;
case Rd.METADATA_KEY_DURATION:
e = k;
}
}
return [c, d, e];
});
};
Zd.isVideoValid = function(a, c, d, e) {
var f = this;
return wa.getFileId(d.getOriginalUrl(), c).then(function(g) {
return Zd.getVideoInfo(a, c, g).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var g = c.next().value;
c = c.next().value;
var l = 0 < a && 0 < g && 0 < c && c <= f._maxVideoDuration, k =
"video_validation_failed";
c > f._maxVideoDuration && (k = "video_validation_failed_video_too_long");
l || ca.trigger(k, {url:d.getOriginalUrl(), width:a, height:g, duration:c},
e.getSession());
return l;
}).catch(function(a) {
ca.trigger("video_validation_failed", {url:d.getOriginalUrl(), error:a},
e.getSession());
return !1;
});
});
};
Zd._maxVideoDuration = 40000;
var yd;
(function(a) {
a[a.REQUIRED = 0] = "REQUIRED";
a[a.OPTIONAL = 1] = "OPTIONAL";
})(yd || (yd = {}));
Bb.prototype.setCacheDiagnostics = function(a) {
this._sendCacheDiagnostics = a;
};
Bb.prototype.setup = function(a) {
var c = this;
return this._cacheMode === Nb.DISABLED ? Promise.resolve(a) :
this.selectAssets(a).then(function(d) {
d = h.makeIterator(d);
var e = d.next().value, f = d.next().value;
d = c.cache(e, a, yd.REQUIRED).then(function() {
return c.validateVideos(e, a);
});
if (c._cacheMode === Nb.FORCED) {
return d.then(function() {
c.cache(f, a, yd.OPTIONAL).then(function() {
c._backupCampaignManager.storeCampaign(a);
}).catch(function() {
});
return a;
});
}
if (c._cacheMode === Nb.ADAPTIVE) {
if (c._fastConnectionDetected) {
d.then(function() {
return c.cache(f, a, yd.OPTIONAL);
}).catch(function() {
});
} else {
var g = c._queueId, l = c.registerCampaign(a, g);
c._queueId++;
d.then(function() {
var d = c._campaignQueue[g];
d && (d.resolved || (d.resolved = !0, d.resolve(a)), delete
c._campaignQueue[g]);
c.cache(f, a, yd.OPTIONAL).catch(function() {
});
return a;
}).catch(function(a) {
var d = c._campaignQueue[g];
d && (d.resolved || (d.resolved = !0, d.reject(a)), delete
c._campaignQueue[g]);
});
return l;
}
} else {
d.then(function() {
return c.cache(f, a, yd.OPTIONAL);
}).then(function() {
c._backupCampaignManager.storeCampaign(a);
}).catch(function() {
});
}
return Promise.resolve(a);
});
};
Bb.prototype.selectAssets = function(a) {
var c = a.getRequiredAssets(), d = a.getOptionalAssets();
return a instanceof D || a instanceof L ?
this.getOrientedVideo(a).then(function(a) {
return [[a], d];
}) : Promise.resolve([c, d]);
};
Bb.prototype.enableCaching = function() {
this._stopped = !1;
};
Bb.prototype.stopCaching = function() {
this._stopped = !0;
this._fastConnectionDetected = !1;
for (this._cache.stop(); this._requiredQueue.length;) {
var a = this._requiredQueue.shift();
a && a.reject(sa.STOPPED);
}
for (; this._optionalQueue.length;) {
(a = this._optionalQueue.shift()) && a.reject(sa.STOPPED);
}
};
Bb.prototype.checkFreeSpace = function() {
var a = this;
return this._cacheMode === Nb.DISABLED ? Promise.resolve() :
this._cache.getFreeSpace().then(function(c) {
20480 > c && (a._cacheMode = Nb.DISABLED, F.trigger("caching_disabled",
{freeCacheSpace:c}));
}).catch(function() {
F.trigger("cache_space_check_failed", {});
});
};
Bb.prototype.cache = function(a, c, d) {
var e = this, f = Promise.resolve(), g = {};
a = h.makeIterator(a);
for (var l = a.next(); !l.done; g = {$jscomp$loop$prop$asset$99:g.
$jscomp$loop$prop$asset$99}, l = a.next()) {
g.$jscomp$loop$prop$asset$99 = l.value, f = f.then(function(a) {
return function() {
if (e._stopped) {
return Promise.reject(sa.STOPPED);
}
var f = e.queueAsset(a.$jscomp$loop$prop$asset$99.getOriginalUrl(), d,
e.getCacheDiagnostics(a.$jscomp$loop$prop$asset$99, c)).then(function(c) {
var d = h.makeIterator(c);
c = d.next().value;
d = d.next().value;
a.$jscomp$loop$prop$asset$99.setFileId(c);
a.$jscomp$loop$prop$asset$99.setCachedUrl(d);
return c;
}).then(function(a) {
return d === yd.REQUIRED ?
e._cacheBookkeeping.writeFileForCampaign(c.getId(), a) : Promise.resolve();
});
e.executeAssetQueue(c);
return f;
};
}(g));
}
return f;
};
Bb.prototype.queueAsset = function(a, c, d) {
var e = this;
return new Promise(function(f, g) {
f = {url:a, diagnostics:d, resolve:f, reject:g};
c === yd.REQUIRED ? e._requiredQueue.push(f) : e._optionalQueue.push(f);
});
};
Bb.prototype.executeAssetQueue = function(a) {
var c = this;
if (!this._caching) {
var d = this._requiredQueue.shift();
d || (d = this._optionalQueue.shift());
if (d) {
var e = d;
this._caching = !0;
var f = this._cache.onTooLargeFile.subscribe(function(d, f, g, k, m) {
c.handleTooLargeFile(e.url, a, f, g, k, m);
}), g;
d.diagnostics && (g = new jg(this._cache, d.diagnostics));
this._cache.cache(e.url).then(function(d) {
var l = h.makeIterator(d);
d = l.next().value;
l = l.next().value;
c._cache.onTooLargeFile.unsubscribe(f);
g && g.stop();
e.resolve([d, l]);
c._caching = !1;
c.executeAssetQueue(a);
}).catch(function(d) {
c._cache.onTooLargeFile.unsubscribe(f);
g && g.stop();
e.reject(d);
c._caching = !1;
c.executeAssetQueue(a);
});
}
}
};
Bb.prototype.validateVideos = function(a, c) {
var d = [], e = {};
a = h.makeIterator(a);
for (var f = a.next(); !f.done; e = {$jscomp$loop$prop$asset$101:e.
$jscomp$loop$prop$asset$101}, f = a.next()) {
e.$jscomp$loop$prop$asset$101 = f.value, e.$jscomp$loop$prop$asset$101
instanceof pa && d.push(Zd.isVideoValid(this._platform, this._core.Cache, e.
$jscomp$loop$prop$asset$101, c).then(function(a) {
return function(c) {
if (!c) {
throw Error("Video failed to validate: " + a.
$jscomp$loop$prop$asset$101.getOriginalUrl());
}
};
}(e)));
}
return Promise.all(d);
};
Bb.prototype.getOrientedVideo = function(a) {
return Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight()]).then(function(c) {
c = h.makeIterator(c);
var d = c.next().value, e = c.next().value;
c = d >= e;
d = e > d;
e = a.getVideo();
var f = a.getPortraitVideo();
if (c) {
if (e) {
return e;
}
if (f) {
return f;
}
}
if (d) {
if (f) {
return f;
}
if (e) {
return e;
}
}
throw new hb("Unable to select oriented video for caching");
});
};
Bb.prototype.onFastConnectionDetected = function() {
this._fastConnectionDetected = !0;
for (var a in this._campaignQueue) {
if (this._campaignQueue.hasOwnProperty(a)) {
var c = this._campaignQueue[a];
c.resolved || (c.resolved = !0, c.resolve(c.campaign));
}
}
};
Bb.prototype.registerCampaign = function(a, c) {
var d = this;
return new Promise(function(e, f) {
d._campaignQueue[c] = {campaign:a, resolved:!1, resolve:e, reject:f};
});
};
Bb.prototype.getCacheDiagnostics = function(a, c) {
if (this._sendCacheDiagnostics) {
return {creativeType:a.getDescription(), targetGameId:c instanceof D ?
c.getGameId() : 0, targetCampaignId:c.getId()};
}
};
Bb.prototype.handleTooLargeFile = function(a, c, d, e, f, g) {
ca.trigger("too_large_file", {url:a, size:d, totalSize:e, responseCode:f,
headers:g}, c.getSession());
a = c.getSeatId();
void 0 !== a && (d = "", f = c.getAdType(), void 0 !== f && (d = f),
this._pts.reportError(Ef.TooLargeFile, d, a));
Te.report(c.getCreativeId(), a, xe.FILE_TOO_LARGE, {fileSize:Math.floor(e /
1048576)});
};
h.inherits(sc, z);
sc.getDefaultAdUnitStyle = function() {
return new sc({ctaButtonColor:"#167dfb"});
};
sc.validateIAdUnitStyle = function(a) {
var c = Object.assign({}, a);
a.ctaButtonColor && a.ctaButtonColor.match(/#[0-F]{6}/i) || (c.ctaButtonColor =
void 0);
return c;
};
sc.prototype.getCTAButtonColor = function() {
return this.get("ctaButtonColor");
};
sc.prototype.getDTO = function() {
return {ctaButtonColor:this.getCTAButtonColor()};
};
sc.Schema = {ctaButtonColor:["string", "undefined"]};
h.inherits(Ab, Fa);
Ab.prototype.getDescription = function() {
return "IMAGE";
};
Kc.prototype.loadSession = function(a) {
try {
var c = JSON.parse(a);
} catch (d) {
return;
}
if (c.id) {
return a = new Rb(c.id), c.adPlan && a.setAdPlan(c.adPlan),
a.setGameSessionCounters({adRequests:0, starts:0, views:0, startsPerCampaign:{},
startsPerTarget:{}, viewsPerCampaign:{}, viewsPerTarget:{}, latestCampaignsStarts:
{}}), c.privacy && a.setPrivacy(c.privacy), c.deviceFreeSpace &&
a.setDeviceFreeSpace(c.deviceFreeSpace), a;
}
};
Kc.prototype.loadAdUnitStyle = function(a) {
try {
var c = JSON.parse(a);
} catch (d) {
return;
}
if (c.ctaButtonColor) {
return new sc({ctaButtonColor:c.ctaButtonColor});
}
};
Kc.prototype.loadImage = function(a, c) {
try {
var d = JSON.parse(a);
} catch (e) {
return;
}
a = new Ab(d.url, c);
d.fileId && a.setFileId(d.fileId);
d.cachedUrl && a.setCachedUrl(d.cachedUrl);
return a;
};
Kc.prototype.loadVideo = function(a, c) {
try {
var d = JSON.parse(a);
} catch (e) {
return;
}
a = new pa(d.url, c, d.size, d.creativeId);
d.fileId && a.setFileId(d.fileId);
d.cachedUrl && a.setCachedUrl(d.cachedUrl);
return a;
};
Kc.prototype.loadHTML = function(a, c) {
try {
var d = JSON.parse(a);
} catch (e) {
return;
}
a = new te(d.url, c, d.creativeId);
d.fileId && a.setFileId(d.fileId);
d.cachedUrl && a.setCachedUrl(d.cachedUrl);
return a;
};
h.inherits(fg, Kc);
fg.prototype.load = function(a) {
try {
var c = JSON.parse(a);
} catch (f) {
return;
}
c.backupCampaign = !0;
c.session && (c.session = this.loadSession(c.session));
if (c.video) {
try {
var d = JSON.parse(c.video);
} catch (f) {
return;
}
d.video && (d.video = this.loadVideo(d.video, c.session));
c.video = new Od(d);
}
try {
var e = new hd(c);
} catch (f) {
return;
}
return e;
};
h.inherits(eg, Kc);
eg.prototype.load = function(a) {
try {
var c = JSON.parse(a);
} catch (e) {
return;
}
c.backupCampaign = !0;
c.session && (c.session = this.loadSession(c.session));
c.gameIcon && (c.gameIcon = this.loadImage(c.gameIcon, c.session));
c.landscapeImage && (c.landscapeImage = this.loadImage(c.landscapeImage,
c.session));
c.portraitImage && (c.portraitImage = this.loadImage(c.portraitImage,
c.session));
c.resourceAsset && (c.resourceAsset = this.loadHTML(c.resourceAsset,
c.session));
c.playableConfiguration && delete c.playableConfiguration;
try {
var d = new U(c);
} catch (e) {
return;
}
return d;
};
h.inherits(dg, Kc);
dg.prototype.load = function(a) {
try {
var c = JSON.parse(a);
} catch (e) {
return;
}
c.backupCampaign = !0;
c.session && (c.session = this.loadSession(c.session));
c.adUnitStyle && (c.adUnitStyle = this.loadAdUnitStyle(c.adUnitStyle));
c.gameIcon && (c.gameIcon = this.loadImage(c.gameIcon, c.session));
c.squareImage && (c.squareImage = this.loadImage(c.squareImage, c.session));
c.landscapeImage && (c.landscapeImage = this.loadImage(c.landscapeImage,
c.session));
c.portraitImage && (c.portraitImage = this.loadImage(c.portraitImage,
c.session));
c.video && (c.video = this.loadVideo(c.video, c.session));
c.streamingVideo && (c.streamingVideo = this.loadVideo(c.streamingVideo,
c.session));
c.videoPortrait && (c.videoPortrait = this.loadVideo(c.videoPortrait,
c.session));
c.streamingPortraitVideo && (c.streamingPortraitVideo =
this.loadVideo(c.streamingPortraitVideo, c.session));
try {
var d = new D(c);
} catch (e) {
return;
}
return d;
};
Lb.prototype.storePlacement = function(a, c, d) {
if (this._enabled && !(this._coreConfiguration.getTestMode() ||
this._deviceInfo instanceof G && 19 > this._deviceInfo.getApiLevel())) {
var e = "backupcampaign.placement." + a.getId(), f = new Nc(v.PRIVATE);
f.set(e + ".mediaid", c);
f.set(e + ".adtypes", JSON.stringify(a.getAdTypes()));
d && f.set(e + ".trackingurls", JSON.stringify(d));
this._platform === p.IOS && Cg.isValid(this._coreConfiguration.getAbGroup())
&& O.isAuctionV4Game(this._clientInfo.getGameId()) && F.trigger("store_placement",
{mediaId:c, adTypes:JSON.stringify(a.getAdTypes()), trackingUrls:d ?
JSON.stringify(d) : ""});
this._storageBridge.queue(f);
}
};
Lb.prototype.storeCampaign = function(a) {
if (!(!this._enabled || this._coreConfiguration.getTestMode() ||
this._deviceInfo instanceof G && 19 > this._deviceInfo.getApiLevel() ||
(this._campaignCount++, 3 < this._campaignCount))) {
var c = "backupcampaign.campaign." + a.getMediaId(), d =
this.getCampaignType(a);
if (d) {
var e = a.getWillExpireAt();
e || (e = Date.now() + Lb._maxExpiryDelay);
var f = new Nc(v.PRIVATE);
f.set(c + ".type", d);
f.set(c + ".data", a.toJSON());
f.set(c + ".willexpireat", e);
this._storageBridge.queue(f);
this._platform === p.IOS &&
Cg.isValid(this._coreConfiguration.getAbGroup()) &&
O.isAuctionV4Game(this._clientInfo.getGameId()) && F.trigger("store_campaign",
{campaignType:d, data:a.toJSON(), willExpireAt:e});
}
}
};
Lb.prototype.loadCampaign = function(a) {
var c = this;
if (!this._enabled || this._coreConfiguration.getTestMode()) {
return Promise.resolve(void 0);
}
var d = "backupcampaign.placement." + a.getId();
return Promise.all([this.getString(d + ".mediaid"), this.getString(d +
".adtypes")]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
if (d && e && e === JSON.stringify(a.getAdTypes())) {
return d = "backupcampaign.campaign." + d, Promise.all([c.getString(d +
".type"), c.getString(d + ".data"), c.getNumber(d +
".willexpireat")]).then(function(a) {
var d = h.makeIterator(a);
a = d.next().value;
var e = d.next().value;
d = d.next().value;
if (a && e && d && Date.now() < d) {
var f = c.getCampaignLoader(a);
if (f) {
if (f = f.load(e)) {
return c.verifyCachedFiles(f);
}
F.trigger("backup_campaign_loading_failed", {type:a, data:e,
willExpireAt:d, auctionProtocol:w.getAuctionProtocol()});
}
}
return Promise.resolve(void 0);
});
}
}).catch(function() {
});
};
Lb.prototype.loadTrackingUrls = function(a) {
return this.getString("backupcampaign.placement." + a.getId() +
".trackingurls").then(function(a) {
return JSON.parse(a);
}).catch(function() {
});
};
Lb.prototype.deleteBackupCampaigns = function() {
this._campaignCount = 0;
var a = new Nc(v.PRIVATE);
a.delete("backupcampaign");
this._storageBridge.queue(a);
};
Lb.prototype.setEnabled = function(a) {
this._enabled = a;
};
Lb.prototype.getCampaignType = function(a) {
if (a instanceof D) {
return "performance";
}
if (a instanceof hd) {
return "admob";
}
if (a instanceof U) {
return "mraid";
}
};
Lb.prototype.getCampaignLoader = function(a) {
if ("performance" === a) {
return new dg;
}
if ("admob" === a) {
return new fg;
}
if ("mraid" === a) {
return new eg;
}
};
Lb.prototype.getString = function(a) {
return this._core.Storage.get(v.PRIVATE, a);
};
Lb.prototype.getNumber = function(a) {
return this._core.Storage.get(v.PRIVATE, a);
};
Lb.prototype.verifyCachedFiles = function(a) {
var c = a.getRequiredAssets(), d = a.getOptionalAssets();
if (0 === c.length && 0 === d.length) {
return Promise.resolve(a);
}
var e = [];
if (a instanceof D) {
var f = a.getVideo(), g = a.getPortraitVideo();
f && f.isCached() && e.push(this.verifyCachedAsset(f));
g && g.isCached() && e.push(this.verifyCachedAsset(g));
}
c = h.makeIterator(c);
for (f = c.next(); !f.done; f = c.next()) {
e.push(this.verifyCachedAsset(f.value));
}
d = h.makeIterator(d);
for (c = d.next(); !c.done; c = d.next()) {
e.push(this.verifyCachedAsset(c.value));
}
return Promise.all(e).then(function() {
return a;
});
};
Lb.prototype.verifyCachedAsset = function(a) {
var c = this, d = a.getFileId();
return a.isCached() && d ? this._core.Cache.getFileInfo(d).then(function(e) {
if (e.found && 0 < e.size) {
if (c._platform === p.IOS) {
return wa.getFileUrl(d, c._core.Cache).then(function(c) {
a.setCachedUrl(c);
}).catch(function() {
a.setCachedUrl(void 0);
a.setFileId(void 0);
});
}
} else {
a.setCachedUrl(void 0), a.setFileId(void 0);
}
}) : Promise.resolve();
};
Lb._maxExpiryDelay = 6048E5;
Sg.prototype.handleCampaignError = function() {
return Promise.resolve();
};
Rg.getCampaignErrorHandler = function(a, c, d) {
switch(a) {
case mc.ProgrammaticVast:
return new ng(c, d);
default:
return new Sg;
}
};
rc.NoFillDelayInSeconds = 3600;
rc.ErrorRefillDelayInSeconds = 3600;
rc.ParsingErrorRefillDelayInSeconds = 60;
var gf;
(function(a) {
a[a.NORMAL = 0] = "NORMAL";
a[a.FREQUENCY_CAP_REACHED = 999] = "FREQUENCY_CAP_REACHED";
})(gf || (gf = {}));
h.inherits(ra, z);
ra.prototype.getPlacements = function() {
return this.get("placements");
};
ra.prototype.getContentType = function() {
return this.get("contentType");
};
ra.prototype.getContent = function() {
return this.get("content");
};
ra.prototype.getJsonContent = function() {
return vd.parse(this.getContent());
};
ra.prototype.getCacheTTL = function() {
return this.get("cacheTTL");
};
ra.prototype.getTrackingUrls = function() {
return this.get("trackingUrls");
};
ra.prototype.getAdType = function() {
return this.get("adType");
};
ra.prototype.getCreativeId = function() {
return this.get("creativeId");
};
ra.prototype.getSeatId = function() {
return this.get("seatId");
};
ra.prototype.getCorrelationId = function() {
return this.get("correlationId");
};
ra.prototype.getCategory = function() {
return this.get("appCategory");
};
ra.prototype.getSubCategory = function() {
return this.get("appSubCategory");
};
ra.prototype.getAdvertiserDomain = function() {
return this.get("advDomain");
};
ra.prototype.getAdvertiserCampaignId = function() {
return this.get("campaignId");
};
ra.prototype.getAdvertiserBundleId = function() {
return this.get("bundleId");
};
ra.prototype.getUseWebViewUserAgentForTracking = function() {
return this.get("useWebViewUserAgentForTracking");
};
ra.prototype.getBuyerId = function() {
return this.get("buyerId");
};
ra.prototype.getMediaId = function() {
return this.get("mediaId");
};
ra.prototype.getWidth = function() {
return this.get("width");
};
ra.prototype.getHeight = function() {
return this.get("height");
};
ra.prototype.isMoatEnabled = function() {
return this.get("isMoatEnabled");
};
ra.prototype.getStatusCode = function() {
return this.get("statusCode");
};
ra.prototype.getDTO = function() {
return {placements:this.getPlacements(), contentType:this.getContentType(),
content:this.getContent(), cacheTTL:this.getCacheTTL(),
trackingUrls:this.getTrackingUrls(), adType:this.getAdType(),
creativeId:this.getCreativeId(), seatId:this.getSeatId(),
correlationId:this.getCorrelationId(), appCategory:this.getCategory(),
appSubCategory:this.getSubCategory(),
useWebViewUserAgentForTracking:this.getUseWebViewUserAgentForTracking(),
buyerId:this.getBuyerId(), mediaId:this.getMediaId()};
};
ad.genTimestamp = function() {
return 1000 * Date.now();
};
ad.stripQueryAndFragment = function(a) {
return a.split(/[?#]/)[0];
};
ad.uuidv4 = function() {
return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(a) {
var c = 16 * Math.random() | 0;
return ("x" === a ? c : c & 3 | 8).toString(16);
});
};
var Hb;
(function(a) {
a.StatusCode = "status.code";
a.DeviceType = "device.type";
a.Error = "error";
a.ErrorMessage = "error.message";
})(Hb || (Hb = {}));
Qe.prototype.addTag = function(a, c) {
this.tags[a] = c;
};
Qe.prototype.addAnnotation = function(a) {
a = new rh(a);
this.annotations.push(a);
};
Qe.prototype.stop = function() {
this.duration = ad.genTimestamp() - this.timestamp;
};
h.inherits(sf, U);
h.inherits(Hd, z);
Hd.prototype.getPlacementId = function() {
return this.get("placementId");
};
Hd.prototype.getMediaId = function() {
return this.get("mediaId");
};
Hd.prototype.getTrackingUrls = function() {
return this.get("trackingUrls");
};
Hd.prototype.getDTO = function() {
return {placementId:this.getPlacementId(), mediaId:this.getMediaId(),
trackingUrls:this.getTrackingUrls()};
};
rf.create = function(a, c) {
return a.isRecorded() ? {method:a.getMethod(), firstRequest:!1,
permissions:a.getPermissions()} : {method:c.getMethod(), firstRequest:!0,
permissions:{}};
};
rf.createLegacy = function(a) {
return a.method === nb.DEFAULT ? {gdprEnabled:!1, optOutRecorded:!1,
optOutEnabled:!1} : {gdprEnabled:!0, optOutRecorded:!a.firstRequest,
optOutEnabled:this.IsOptOutEnabled(a)};
};
rf.IsOptOutEnabled = function(a) {
return a.method === nb.LEGITIMATE_INTEREST && a.firstRequest ? !1 : void 0 !==
a.permissions.profiling ? !a.permissions.profiling : !0;
};
var ie;
(function(a) {
a[a.WIFI_MIN = 5242880] = "WIFI_MIN";
a[a.WIFI_MAX = 10485760] = "WIFI_MAX";
a[a.CELL_MIN = 512000] = "CELL_MIN";
a[a.CELL_MAX = 3145728] = "CELL_MAX";
a[a.SDK_MAX = 20971520] = "SDK_MAX";
})(ie || (ie = {}));
Pe.getOptimizedVideoUrl = function(a, c) {
return c && "wifi" === c ? Pe.getVideoUrlInRange(a, ie.WIFI_MIN, ie.WIFI_MAX) :
Pe.getVideoUrlInRange(a, ie.CELL_MIN, ie.CELL_MAX);
};
Pe.getVideoUrlInRange = function(a, c, d) {
var e = null, f = Number.MAX_SAFE_INTEGER, g = Number.MAX_SAFE_INTEGER, l =
null, n = Number.MAX_SAFE_INTEGER;
a = h.makeIterator(a);
for (var k = a.next(); !k.done; k = a.next()) {
k = k.value;
var r = k.getFileSize(), m = k.getBitrate();
r >= c && r <= d ? r < f && (e = k.getFileURL(), f = r) : r <= ie.SDK_MAX &&
(Math.abs(r - c) < n || m < g) && (l = k.getFileURL(), n = Math.abs(r - c), g = m);
}
return e ? e : l;
};
h.inherits(ac, Yb);
ac.setVastParserMaxDepth = function(a) {
ac.VAST_PARSER_MAX_DEPTH = a;
};
ac.prototype.parse = function(a, c) {
var d = this;
void 0 !== ac.VAST_PARSER_MAX_DEPTH &&
this._vastParser.setMaxWrapperDepth(ac.VAST_PARSER_MAX_DEPTH);
return this.retrieveVast(a).then(function(e) {
return d._deviceInfo.getConnectionType().then(function(f) {
return d.parseVastToCampaign(e, c, a, f);
});
});
};
ac.prototype.retrieveVast = function(a) {
a = decodeURIComponent(a.getContent()).trim();
return this._vastParser.retrieveVast(a, this._coreApi, this._requestManager);
};
ac.prototype.parseVastToCampaign = function(a, c, d, e) {
var f = d.getCacheTTL();
f = {id:this.getProgrammaticCampaignId(), willExpireAt:f ? Date.now() + 1000 *
f : void 0, contentType:ac.ContentType, adType:d.getAdType() || void 0,
correlationId:d.getCorrelationId() || void 0, creativeId:d.getCreativeId() || void
0, seatId:d.getSeatId() || void 0, meta:void 0, session:c, mediaId:d.getMediaId(),
trackingUrls:d.getTrackingUrls() || {}, backupCampaign:!1};
var g;
a.getErrorURLTemplate() && (g = a.getErrorURLTemplate());
for (var l = [], n = h.makeIterator(a.getImpressionUrls()), k = n.next(); !
k.done; k = n.next()) {
k = k.value, u.isValid(k) && l.push(u.encodeUrlWithQueryParams(k));
}
n = a.getCompanionPortraitUrl();
if (n) {
if (!u.isValid(n)) {
throw new sd(Md.errorMap[Q.MEDIA_FILE_UNSUPPORTED], mc.ProgrammaticVast, g,
Q.MEDIA_FILE_UNSUPPORTED, n);
}
var r = new Ab(u.encode(n), c);
}
n = a.getCompanionLandscapeUrl();
if (n) {
if (!u.isValid(n)) {
throw new sd(Md.errorMap[Q.MEDIA_FILE_UNSUPPORTED], mc.ProgrammaticVast, g,
Q.MEDIA_FILE_UNSUPPORTED, n);
}
var m = new Ab(u.encode(n), c);
}
e = Pe.getOptimizedVideoUrl(a.getVideoMediaFiles(), e);
if (!e) {
throw new sd(Md.errorMap[Q.MEDIA_FILE_URL_NOT_FOUND], mc.ProgrammaticVast, g,
Q.MEDIA_FILE_URL_NOT_FOUND);
}
if (this._platform === p.IOS && !e.match(/^https:\/\//)) {
throw new sd(Md.errorMap[Q.MEDIA_FILE_UNSUPPORTED_IOS], mc.ProgrammaticVast,
g, Q.MEDIA_FILE_UNSUPPORTED_IOS, e);
}
if (!u.isValid(e)) {
throw new sd(Md.errorMap[Q.MEDIA_FILE_UNSUPPORTED], mc.ProgrammaticVast, g,
Q.MEDIA_FILE_UNSUPPORTED, e);
}
e = u.encode(e);
a = Object.assign({}, f, {vast:a, video:new pa(e, c), hasEndscreen:!!r || !!m,
portrait:r, landscape:m,
useWebViewUserAgentForTracking:d.getUseWebViewUserAgentForTracking(),
buyerId:d.getBuyerId() || void 0, appCategory:d.getCategory() || void 0,
appSubcategory:d.getSubCategory() || void 0,
advertiserDomain:d.getAdvertiserDomain() || void 0,
advertiserCampaignId:d.getAdvertiserCampaignId() || void 0,
advertiserBundleId:d.getAdvertiserBundleId() || void 0, impressionUrls:l,
isMoatEnabled:d.isMoatEnabled() ||
void 0});
a = new oa(a);
return Promise.resolve(a);
};
ac.ContentType = mc.ProgrammaticVast;
h.inherits(Hc, ac);
Hc.prototype.getWarnings = function(a) {
var c = [];
a = h.makeIterator(a.getAds());
for (var d = a.next(); !d.done; d = a.next()) {
c = c.concat(d.value.getUnparseableCompanionAds());
}
return c.map(function(a) {
return "Unsupported companionAd : " + a;
});
};
Hc.prototype.parse = function(a, c) {
var d = this;
void 0 !== ac.VAST_PARSER_MAX_DEPTH &&
this._vastParserStrict.setMaxWrapperDepth(ac.VAST_PARSER_MAX_DEPTH);
return this.retrieveVast(a).then(function(e) {
var f = d.getWarnings(e);
0 < f.length && ca.trigger("programmatic_vast_parser_strict_warning",
{warnings:f}, c);
if (e.isVPAIDCampaign()) {
throw new sd(Hc.MEDIA_FILE_GIVEN_VPAID_IN_VAST_AD_MESSAGE,
mc.ProgrammaticVast, void 0, Hc.MEDIA_FILE_GIVEN_VPAID_IN_VAST_AD);
}
return d._deviceInfo.getConnectionType().then(function(f) {
return d.parseVastToCampaign(e, c, a, f);
});
});
};
Hc.prototype.retrieveVast = function(a) {
a = decodeURIComponent(a.getContent()).trim();
return this._vastParserStrict.retrieveVast(a, this._coreApi,
this._requestManager);
};
Hc.MEDIA_FILE_GIVEN_VPAID_IN_VAST_AD_MESSAGE = "VAST ad contains media files
meant for VPAID";
Hc.MEDIA_FILE_GIVEN_VPAID_IN_VAST_AD = 499;
C.setCampaignId = function(a) {
C.CampaignId = a;
};
C.setSessionId = function(a) {
C.SessionId = a;
};
C.setCountry = function(a) {
C.Country = a;
};
C.setCampaignResponse = function(a) {
C.CampaignResponse = a;
};
C.setBaseUrl = function(a) {
C.BaseUrl = a + "/v4/games";
C.AuctionV5BaseUrl = a + "/v5/games";
};
C.prototype.request = function(a) {
var c = this;
if (this._requesting) {
return Promise.resolve();
}
Ya.addAdRequest();
var d = Ya.getCurrentCounters(), e =
rf.create(this._adsConfig.getUserPrivacy(), this._adsConfig.getGamePrivacy());
this._assetManager.enableCaching();
this._assetManager.checkFreeSpace();
this._requesting = !0;
this.resetRealtimeDataForPlacements();
var f = this._jaegerManager.startSpan("CampaignManagerRequest");
f.addTag(Hb.DeviceType, p[this._platform]);
return Promise.all([this.createRequestUrl(!1, a), this.createRequestBody(e, d,
a)]).then(function(a) {
a = h.makeIterator(a);
var g = a.next().value;
a = a.next().value;
c._core.Sdk.logInfo("Requesting ad plan from " + g);
var n = JSON.stringify(a);
m.setAdRequestTimestamp();
var k = Date.now();
return Promise.resolve().then(function() {
if (C.CampaignResponse) {
return Promise.resolve({url:g, response:C.CampaignResponse,
responseCode:200, headers:[]});
}
var a = [];
c._jaegerManager.isJaegerTracingEnabled() &&
a.push(c._jaegerManager.getTraceId(f));
return c._request.post(g, n, a, {retries:2, retryDelay:10000,
followRedirects:!1, retryWithConnectionEvents:!1});
}).then(function(a) {
a && a.responseCode && f.addTag(Hb.StatusCode, a.responseCode.toString());
if (a) {
return c.setSDKSignalValues(k), c._auctionProtocol === Qc.V5 ?
c.parseAuctionV5Campaigns(a, d, e).catch(function(a) {
c.handleGeneralError(a, "parse_auction_v5_campaigns_error");
}) : c.parseCampaigns(a, d, e).catch(function(a) {
c.handleGeneralError(a, "parse_campaigns_error");
});
}
throw new hb("Empty campaign response", "CampaignRequestError");
}).then(function() {
c._requesting = !1;
}).catch(function(a) {
c._requesting = !1;
return a instanceof ed && !a.nativeResponse ?
(c.onConnectivityError.trigger(c._adsConfig.getPlacementIds()),
Promise.resolve()) : c.handleGeneralError(a, "auction_request_failed");
});
}).then(function(a) {
c._jaegerManager.stop(f);
return a;
}).catch(function(a) {
f.addTag(Hb.Error, "true");
f.addTag(Hb.ErrorMessage, a.message);
f.addAnnotation(a.message);
c._jaegerManager.stop(f);
throw Error(a);
});
};
C.prototype.requestRealtime = function(a, c) {
var d = this;
return Promise.all([this.createRequestUrl(!0, void 0, c),
this.createRequestBody(c.getPrivacy(), c.getGameSessionCounters(), !1,
a)]).then(function(e) {
var f = h.makeIterator(e);
e = f.next().value;
f = f.next().value;
d._core.Sdk.logInfo("Requesting realtime ad plan from " + e);
f = JSON.stringify(f);
return d._request.post(e, f, [], {retries:0, retryDelay:0, followRedirects:!
1, retryWithConnectionEvents:!1, timeout:2000}).then(function(e) {
if (e) {
return d.parseRealtimeCampaign(e, c, a);
}
throw new hb("Empty realtime campaign response", "CampaignRequestError");
});
});
};
C.prototype.setPreviousPlacementId = function(a) {
this._previousPlacementId = a;
};
C.prototype.getPreviousPlacementId = function() {
return this._previousPlacementId;
};
C.prototype.getFullyCachedCampaigns = function() {
return this._core.Storage.getKeys(v.PRIVATE, "cache.campaigns", !
1).then(function(a) {
return a;
}).catch(function() {
return [];
});
};
C.prototype.resetRealtimeDataForPlacements = function() {
var a = this._adsConfig.getPlacements();
Object.keys(a).forEach(function(c) {
a[c].setRealtimeData(void 0);
});
};
C.prototype.parseCampaigns = function(a, c, d) {
var e = this;
try {
var f = vd.parse(a.response);
} catch (Yd) {
return F.trigger("auction_invalid_json", {response:a.response}),
Promise.reject(Error("Could not parse campaign JSON: " + Yd.message));
}
if (f.auctionId) {
this._lastAuctionId = f.auctionId;
} else {
throw Error("No auction ID found");
}
var g = this._sessionManager.create(f.auctionId);
g.setAdPlan(a.response);
g.setGameSessionCounters(c);
g.setPrivacy(d);
g.setDeviceFreeSpace(this._deviceFreeSpace);
a = f.statusCode || gf.NORMAL;
this._backupCampaignManager.deleteBackupCampaigns();
this._cacheBookkeeping.deleteCachedCampaignResponse();
if ("placements" in f) {
var l = {};
d = [];
c = this._adsConfig.getPlacements();
for (var n in c) {
if (c.hasOwnProperty(n)) {
var k = f.placements[n];
if (k) {
var r = new Hd(n, k);
l[k] ? l[k].push(r) : l[k] = [r];

this._backupCampaignManager.storePlacement(this._adsConfig.getPlacement(n), k);
} else {
d.push(n);
}
f.realtimeData && f.realtimeData[n] &&
this._adsConfig.getPlacement(n).setRealtimeData(f.realtimeData[n]);
}
}
c = 0;
n = [];
d = h.makeIterator(d);
for (k = d.next(); !k.done; k = d.next()) {
n.push(this.handleNoFill(k.value)), c = rc.NoFillDelayInSeconds;
}
d = 0;
for (var m in l) {
l.hasOwnProperty(m) && (d++, k = f.media[m].contentType, r =
f.media[m].cacheTTL ? f.media[m].cacheTTL : 3600, k && "comet/campaign" !== k &&
"undefined" !== typeof r && 0 < r && (r < c || 0 === c) && (c = r));
}
this._core.Sdk.logInfo("AdPlan received with " + d + " campaigns and
refreshDelay " + c);
this.onAdPlanReceived.trigger(c, d, a);
m = {};
for (var p in l) {
m.$jscomp$loop$prop$mediaId$89$103 = p;
if (l.hasOwnProperty(m.$jscomp$loop$prop$mediaId$89$103)) {
m.$jscomp$loop$prop$auctionResponse$104 = void 0;
try {
m.$jscomp$loop$prop$auctionResponse$104 = new ra(l[m.
$jscomp$loop$prop$mediaId$89$103], f.media[m.$jscomp$loop$prop$mediaId$89$103], m.
$jscomp$loop$prop$mediaId$89$103, f.correlationId, a),
n.push(this.handleCampaign(m.$jscomp$loop$prop$auctionResponse$104,
g).catch(function(a) {
return function(c) {
return c === sa.STOPPED ? Promise.resolve() : c === sa.FAILED ?
e.handlePlacementError(new hb("Caching failed", "CacheStatusFailed"), l[a.
$jscomp$loop$prop$mediaId$89$103], "campaign_caching_failed", g) : c ===
Gb[Gb.FILE_NOT_FOUND] ? e.handlePlacementError(new hb("Getting file path failed",
"GetFilePathFailed"), l[a.$jscomp$loop$prop$mediaId$89$103],
"campaign_caching_get_file_path_failed", g) : e.handleParseCampaignError(a.
$jscomp$loop$prop$auctionResponse$104.getContentType(),
c, l[a.$jscomp$loop$prop$mediaId$89$103], g);
};
}(m)));
} catch (Yd) {
this.handlePlacementError(Yd, l[m.$jscomp$loop$prop$mediaId$89$103],
"error_creating_handle_campaign_chain", g);
}
}
m = {$jscomp$loop$prop$mediaId$89$103:m.$jscomp$loop$prop$mediaId$89$103,
$jscomp$loop$prop$auctionResponse$104:m.$jscomp$loop$prop$auctionResponse$104};
}
return Promise.all(n);
}
throw Error("No placements found");
};
C.prototype.parseAuctionV5Campaigns = function(a, c, d) {
var e = this;
try {
var f = vd.parse(a.response);
} catch (Yd) {
return F.trigger("invalid_auction_v5_json", {response:a.response}),
Promise.reject(Error("Could not parse campaign JSON: " + Yd.message));
}
if (f.auctionId) {
this._lastAuctionId = f.auctionId;
} else {
throw Error("No auction ID found");
}
var g = this._sessionManager.create(f.auctionId);
g.setAdPlan(a.response);
g.setGameSessionCounters(c);
g.setPrivacy(d);
g.setDeviceFreeSpace(this._deviceFreeSpace);
a = f.statusCode || gf.NORMAL;
this._backupCampaignManager.deleteBackupCampaigns();
this._cacheBookkeeping.deleteCachedCampaignResponse();
if (!("placements" in f)) {
throw Error("No placements found");
}
var l = {};
c = [];
d = this._adsConfig.getPlacements();
for (var n in d) {
if (d.hasOwnProperty(n)) {
var k = void 0;
f.placements.hasOwnProperty(n) ?
f.placements[n].hasOwnProperty("mediaId") ? k = f.placements[n].mediaId :
ca.trigger("missing_auction_v5_mediaid", {placementId:n}, g) :
ca.trigger("missing_auction_v5_placement", {placementId:n}, g);
if (k) {
var m = void 0;
if (f.placements[n].hasOwnProperty("trackingId")) {
if (m = f.placements[n].trackingId, f.tracking[m]) {
m = f.tracking[m];
} else {
throw ca.trigger("invalid_auction_v5_tracking_id", {mediaId:k,
trackingId:m}, g), Error("Invalid tracking ID " + m);
}
} else {
throw ca.trigger("missing_auction_v5_tracking_id", {mediaId:k}, g),
Error("Missing tracking ID");
}

this._backupCampaignManager.storePlacement(this._adsConfig.getPlacement(n), k, m);
m = new Hd(n, k, m);
l[k] ? l[k].push(m) : l[k] = [m];
} else {
c.push(n);
}
f.realtimeData && f.realtimeData[n] &&
this._adsConfig.getPlacement(n).setRealtimeData(f.realtimeData[n]);
}
}
d = 0;
n = [];
c = h.makeIterator(c);
for (k = c.next(); !k.done; k = c.next()) {
n.push(this.handleNoFill(k.value)), d = rc.NoFillDelayInSeconds;
}
c = 0;
for (var p in l) {
l.hasOwnProperty(p) && (c++, k = f.media[p].contentType, m =
f.media[p].cacheTTL ? f.media[p].cacheTTL : 3600, k && "comet/campaign" !== k &&
"undefined" !== typeof m && 0 < m && (m < d || 0 === d) && (d = m));
}
this._core.Sdk.logInfo("AdPlan received with " + l + " campaigns and
refreshDelay " + d);
this.onAdPlanReceived.trigger(d, c, a);
p = {};
for (var q in l) {
p.$jscomp$loop$prop$mediaId$92$106 = q;
if (l.hasOwnProperty(p.$jscomp$loop$prop$mediaId$92$106)) {
p.$jscomp$loop$prop$auctionResponse$107 = void 0;
try {
p.$jscomp$loop$prop$auctionResponse$107 = new ra(l[p.
$jscomp$loop$prop$mediaId$92$106], f.media[p.$jscomp$loop$prop$mediaId$92$106], p.
$jscomp$loop$prop$mediaId$92$106, f.correlationId, a),
n.push(this.handleCampaign(p.$jscomp$loop$prop$auctionResponse$107,
g).catch(function(a) {
return function(c) {
return c === sa.STOPPED ? Promise.resolve() : c === sa.FAILED ?
e.handlePlacementError(new hb("Caching failed", "CacheStatusFailed"), l[a.
$jscomp$loop$prop$mediaId$92$106], "campaign_caching_failed", g) : c ===
Gb[Gb.FILE_NOT_FOUND] ? e.handlePlacementError(new hb("Getting file path failed",
"GetFilePathFailed"), l[a.$jscomp$loop$prop$mediaId$92$106],
"campaign_caching_get_file_path_failed", g) : e.handleParseCampaignError(a.
$jscomp$loop$prop$auctionResponse$107.getContentType(), c,
l[a.$jscomp$loop$prop$mediaId$92$106], g);
};
}(p)));
} catch (Yd) {
this.handlePlacementError(Yd, l[p.$jscomp$loop$prop$mediaId$92$106],
"error_creating_auction_v5_handle_campaign_chain", g);
}
}
p = {$jscomp$loop$prop$mediaId$92$106:p.$jscomp$loop$prop$mediaId$92$106,
$jscomp$loop$prop$auctionResponse$107:p.$jscomp$loop$prop$auctionResponse$107};
}
return Promise.all(n);
};
C.prototype.parseRealtimeCampaign = function(a, c, d) {
a = vd.parse(a.response);
if ("placements" in a) {
var e = a.placements[d.getId()];
if (e) {
var f = d.getCurrentCampaign();
if (f && f.getMediaId() === e) {
return Promise.resolve(f);
}
d = new Hd(d.getId(), e);
d = new ra([d], a.media[e], e, a.correlationId);
return this.handleRealtimeCampaign(d, c);
}
return Promise.resolve();
}
this._core.Sdk.logError("No placements found in realtime campaign json.");
return Promise.resolve();
};
C.prototype.handleCampaign = function(a, c) {
var d = this;
this._core.Sdk.logDebug("Parsing campaign " + a.getContentType() + ": " +
a.getContent());
99 === this._sessionManager.getGameSessionId() % 1000 &&
ca.trigger("ad_received", {contentType:a.getContentType(),
auctionProtocol:this._auctionProtocol,
abGroup:this._coreConfig.getAbGroup().valueOf()}, c);
try {
var e = this.getCampaignParser(a.getContentType());
e.setCreativeIdentification(a);
} catch (g) {
return Promise.reject(g);
}
var f = Date.now();
return e.parse(a, c).catch(function(f) {
if (f instanceof sd && f.contentType === mc.ProgrammaticVast && f.errorCode
=== Hc.MEDIA_FILE_GIVEN_VPAID_IN_VAST_AD) {
return e = d.getCampaignParser(mc.ProgrammaticVpaid), e.parse(a, c);
}
throw f;
}).then(function(e) {
for (var g = Date.now() - f, k = h.makeIterator(a.getPlacements()), p =
k.next(); !p.done; p = k.next()) {
m.setParseDuration(p.value.getPlacementId(), g);
}
e.setMediaId(a.getMediaId());
return d.setupCampaignAssets(a.getPlacements(), e, a.getContentType(), c);
}).catch(function(a) {
Te.report(e.creativeID, e.seatID, xe.VIDEO_PARSE_FAILURE,
{errorCode:a.errorCode || void 0, message:a.message || void 0});
throw a;
});
};
C.prototype.setupCampaignAssets = function(a, c, d, e) {
var f = this, g = Date.now();
return this._assetManager.setup(c).then(function() {
99 === f._sessionManager.getGameSessionId() % 1000 && ca.trigger("ad_ready",
{contentType:d, auctionProtocol:f._auctionProtocol,
abGroup:f._coreConfig.getAbGroup().valueOf()}, e);
if (c instanceof sf) {
var l = Date.now() - g, k = {type:"playable_caching_time"};
k.eventData = {contentType:d};
k.timeFromShow = l / 1000;
k.timeFromPlayableStart = 0;
k.backgroundTime = 0;
k.auctionId = c.getSession().getId();
if (l = c.getResourceUrl()) {
k.url = l.getOriginalUrl();
}
H.sendEvent("ads.sdk2.events.playable.json", eb.ANONYMOUS, k);
}
k = h.makeIterator(a);
for (l = k.next(); !l.done; l = k.next()) {
l = l.value, f.onCampaign.trigger(l.getPlacementId(), c,
l.getTrackingUrls());
}
});
};
C.prototype.handleRealtimeCampaign = function(a, c) {
this._core.Sdk.logDebug("Parsing campaign " + a.getContentType() + ": " +
a.getContent());
return this.getCampaignParser(a.getContentType()).parse(a, c).then(function(c)
{
c.setMediaId(a.getMediaId());
return c;
});
};
C.prototype.getCampaignParser = function(a) {
return this._contentTypeHandlerManager.getParser(a);
};
C.prototype.handleNoFill = function(a) {
this._core.Sdk.logDebug("PLC no fill for placement " + a);
this.onNoFill.trigger(a);
return Promise.resolve();
};
C.prototype.handleGeneralError = function(a, c, d) {
return this.handleError(a, this._adsConfig.getPlacementIds(), c, d);
};
C.prototype.handlePlacementError = function(a, c, d, e) {
return this.handleError(a, c.map(function(a) {
return a.getPlacementId();
}), d, e);
};
C.prototype.handleError = function(a, c, d, e) {
this._core.Sdk.logDebug("PLC error " + a);
this.onError.trigger(a, c, d, e);
return Promise.resolve();
};
C.prototype.handleParseCampaignError = function(a, c, d, e) {
Rg.getCampaignErrorHandler(a, this._core,
this._request).handleCampaignError(c);
return this.handlePlacementError(c, d, "parse_campaign_" + a.replace(/[\/-]/g,
"_") + "_error", e);
};
C.prototype.getBaseUrl = function() {
return this._coreConfig.getTestMode() ? [C.TestModeUrl,
this._clientInfo.getGameId(), "requests"].join("/") : this._auctionProtocol ===
Qc.V5 ? [C.AuctionV5BaseUrl, this._clientInfo.getGameId(), "requests"].join("/") :
[C.BaseUrl, this._clientInfo.getGameId(), "requests"].join("/");
};
C.prototype.createRequestUrl = function(a, c, d) {
var e = this;
if (a && this._realtimeUrl) {
return d && (this._realtimeUrl = u.addParameters(this._realtimeUrl,
{auctionId:d.getId()})), Promise.resolve(this._realtimeUrl);
}
this._realtimeUrl = void 0;
var f = this.getBaseUrl();
this._deviceInfo.getAdvertisingIdentifier() ? f = u.addParameters(f,
{advertisingTrackingId:this._deviceInfo.getAdvertisingIdentifier(),
limitAdTracking:this._deviceInfo.getLimitAdTracking()}) : this._platform ===
p.ANDROID && this._deviceInfo instanceof G && (f = u.addParameters(f,
{androidId:this._deviceInfo.getAndroidId()}));
c && this._lastAuctionId && (f = u.addParameters(f,
{auctionId:this._lastAuctionId}));
f = u.addParameters(f, {deviceModel:this._deviceInfo.getModel(),
platform:p[this._platform].toLowerCase(),
sdkVersion:this._clientInfo.getSdkVersion(), stores:this._deviceInfo.getStores()});
this._platform === p.IOS && this._deviceInfo instanceof Qa ? f =
u.addParameters(f, {osVersion:this._deviceInfo.getOsVersion(),
screenScale:this._deviceInfo.getScreenScale()}) : this._platform === p.ANDROID &&
this._deviceInfo instanceof G && (f = u.addParameters(f,
{deviceMake:this._deviceInfo.getManufacturer(),
screenSize:this._deviceInfo.getScreenLayout(),
screenDensity:this._deviceInfo.getScreenDensity(),
apiLevel:this._deviceInfo.getApiLevel()}));
this._coreConfig.getTestMode() && (f = u.addParameters(f, {test:!0}));
C.CampaignId && (f = u.addParameters(f, {forceCampaignId:C.CampaignId}));
C.SessionId && (f = u.addParameters(f, {forceSessionId:C.SessionId}));
C.AbGroup && (f = u.addParameters(f, {forceAbGroup:C.AbGroup}));
C.Country && (f = u.addParameters(f, {force_country:C.Country}));
return Promise.all([this._deviceInfo.getScreenWidth(),
this._deviceInfo.getScreenHeight(), this._deviceInfo.getConnectionType(),
this._deviceInfo.getNetworkType()]).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var d = c.next().value, g = c.next().value;
c = c.next().value;
f = u.addParameters(f, {screenWidth:a, screenHeight:d, connectionType:g,
networkType:c});
e._deviceConnectionType = g;
return e._realtimeUrl = f;
});
};
C.prototype.createRequestBody = function(a, c, d, e) {
var f = this, g = {};
if (e && this._realtimeBody) {
d = this._adsConfig.getPlacements();
for (var l in d) {
d.hasOwnProperty(l) && (g[l] = {adTypes:d[l].getAdTypes(),
allowSkip:d[l].allowSkip()});
}
e.getRealtimeData() && (l = {}, l[e.getId()] = e.getRealtimeData(),
this._realtimeBody.realtimeData = l);
return this._deviceInfo.getFreeSpace().then(function(a) {
f._realtimeBody && (f._realtimeBody.deviceFreeSpace = a);
return f._realtimeBody;
}).catch(function() {
return f._realtimeBody;
});
}
this._realtimeBody = void 0;
var k = {bundleVersion:this._clientInfo.getApplicationVersion(),
bundleId:this._clientInfo.getApplicationName(),
coppa:this._coreConfig.isCoppaCompliant(), language:this._deviceInfo.getLanguage(),
gameSessionId:this._sessionManager.getGameSessionId(),
timeZone:this._deviceInfo.getTimeZone(), simulator:this._deviceInfo instanceof Qa ?
this._deviceInfo.isSimulator() : void 0, token:this._coreConfig.getToken()};
this.getPreviousPlacementId() && (k.previousPlacementId =
this.getPreviousPlacementId());
"undefined" !== typeof navigator && navigator.userAgent && "string" === typeof
navigator.userAgent && (k.webviewUa = navigator.userAgent);
d && (k.nofillRetry = !0);
return Promise.all([this._deviceInfo.getFreeSpace(),
this._deviceInfo.getNetworkOperator(), this._deviceInfo.getNetworkOperatorName(),
this._deviceInfo.getHeadset(), this._deviceInfo.getDeviceVolume(),
this.getFullyCachedCampaigns(), this.getVersionCode(),
this._adMobSignalFactory.getAdRequestSignal().then(function(a) {
return a.getBase64ProtoBufNonEncoded();
}), this._adMobSignalFactory.getOptionalSignal().then(function(a) {
return a.getDTO();
})]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
var l = e.next().value, n = e.next().value, p = e.next().value, q =
e.next().value, t = e.next().value, v = e.next().value, u = e.next().value;
e = e.next().value;
f._deviceFreeSpace = d;
k.deviceFreeSpace = d;
k.networkOperator = l;
k.networkOperatorName = n;
k.wiredHeadset = p;
k.volume = q;
k.requestSignal = u;
k.ext = e;
t && 0 < t.length && (k.cachedCampaigns = t);
v && (k.versionCode = v);
return Promise.all([f._metaDataManager.fetch(gd),
f._metaDataManager.fetch(ce)]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
d && (k.mediationName = d.getName(), k.mediationVersion = d.getVersion(),
d.getOrdinal() && (k.mediationOrdinal = d.getOrdinal()));
e && (k.frameworkName = e.getName(), k.frameworkVersion = e.getVersion());
var l = f._adsConfig.getPlacements();
Object.keys(l).forEach(function(a) {
var c = l[a];
g[a] = {adTypes:c.getAdTypes(), allowSkip:c.allowSkip(),
auctionType:c.getAuctionType()};
});
k.placements = g;
k.properties = f._coreConfig.getProperties();
k.sessionDepth = m.getAdRequestOrdinal();
k.projectId = f._coreConfig.getUnityProjectId();
k.gameSessionCounters = c;
k.gdprEnabled = f._adsConfig.isGDPREnabled();
k.optOutEnabled = f._adsConfig.isOptOutEnabled();
k.optOutRecorded = f._adsConfig.isOptOutRecorded();
k.privacy = a;
k.abGroup = f._coreConfig.getAbGroup();
if (d = f._coreConfig.getOrganizationId()) {
k.organizationId = d;
}
return f._realtimeBody = k;
});
});
};
C.prototype.getVersionCode = function() {
return this._platform === p.ANDROID ?
this._core.DeviceInfo.Android.getPackageInfo(this._clientInfo.getApplicationName())
.then(function(a) {
if (a.versionCode) {
return a.versionCode;
}
}).catch(function() {
}) : Promise.resolve(void 0);
};
C.prototype.setSDKSignalValues = function(a) {
var c = this;
m.setAdRequestDuration(Date.now() - a);
m.increaseAdRequestOrdinal();
Sb.getRequestCount(this._core).then(function(a) {
"number" === typeof a && Sb.setRequestCount(a + 1, c._core);
}).catch(function() {
F.trigger("request_count_failure", {signal:"requestCount"});
});
};
C.BaseUrl = "https://auction.unityads.unity3d.com/v4/games";
C.AuctionV5BaseUrl = "https://auction.unityads.unity3d.com/v5/games";
C.TestModeUrl = "https://auction.unityads.unity3d.com/v4/test/games";
nf.prototype.addHandler = function(a, c) {
if (a in this._parsers || a in this._factories) {
throw Error("Handler already defined for content-type: " + a);
}
this._parsers[a] = c.parser;
this._factories[a] = c.factory;
};
nf.prototype.getParser = function(a) {
if (a in this._parsers) {
return this._parsers[a];
}
throw Error("Unsupported content-type: " + a);
};
nf.prototype.getFactory = function(a) {
if (a in this._factories) {
return this._factories[a];
}
throw Error("Unsupported content-type: " + a);
};
var va;
(function(a) {
a[a.READY = 0] = "READY";
a[a.NOT_AVAILABLE = 1] = "NOT_AVAILABLE";
a[a.DISABLED = 2] = "DISABLED";
a[a.WAITING = 3] = "WAITING";
a[a.NO_FILL = 4] = "NO_FILL";
})(va || (va = {}));
h.inherits(ua, z);
ua.prototype.getId = function() {
return this.get("id");
};
ua.prototype.getName = function() {
return this.get("name");
};
ua.prototype.isDefault = function() {
return this.get("default");
};
ua.prototype.allowSkip = function() {
return this.get("allowSkip");
};
ua.prototype.allowSkipInSeconds = function() {
return this.get("skipInSeconds");
};
ua.prototype.disableBackButton = function() {
return this.get("disableBackButton");
};
ua.prototype.muteVideo = function() {
return this.get("muteVideo");
};
ua.prototype.skipEndCardOnClose = function() {
return this.get("skipEndCardOnClose");
};
ua.prototype.disableVideoControlsFade = function() {
return this.get("disableVideoControlsFade");
};
ua.prototype.useCloseIconInsteadOfSkipIcon = function() {
return this.get("useCloseIconInsteadOfSkipIcon");
};
ua.prototype.getAdTypes = function() {
return this.get("adTypes");
};
ua.prototype.getState = function() {
return this.get("state");
};
ua.prototype.getAuctionType = function() {
return this.get("auctionType");
};
ua.prototype.setState = function(a) {
this.getState() !== a && (this.set("previousState", this.getState()),
this.setPlacementStateChanged(!0));
this.set("state", a);
};
ua.prototype.getPlacementStateChanged = function() {
return this.get("placementStateChanged");
};
ua.prototype.setPlacementStateChanged = function(a) {
this.set("placementStateChanged", a);
};
ua.prototype.getPreviousState = function() {
return this.get("previousState");
};
ua.prototype.getCurrentCampaign = function() {
return this.get("currentCampaign");
};
ua.prototype.setCurrentCampaign = function(a) {
this.set("currentCampaign", a);
};
ua.prototype.getCurrentTrackingUrls = function() {
return this.get("currentTrackingUrls");
};
ua.prototype.setCurrentTrackingUrls = function(a) {
this.set("currentTrackingUrls", a);
};
ua.prototype.getRealtimeData = function() {
return this.get("realtimeData");
};
ua.prototype.setRealtimeData = function(a) {
this.set("realtimeData", a);
};
ua.prototype.getDTO = function() {
return {id:this.getId(), name:this.getName(), "default":this.isDefault(),
allowSkip:this.allowSkip(), skipInSeconds:this.allowSkipInSeconds(),
disableBackButton:this.disableBackButton(), muteVideo:this.muteVideo(),
skipEndCardOnClose:this.skipEndCardOnClose(),
disableVideoControlsFade:this.disableVideoControlsFade(),
useCloseIconInsteadOfSkipIcon:this.useCloseIconInsteadOfSkipIcon(),
adTypes:this.getAdTypes(), state:va[this.getState()].toLowerCase()};
};
Qg.getNextUTCDayDeltaSeconds = function(a) {
var c = new Date(a + 864E5);
c.setUTCHours(0, 0, 0, 0);
return Math.floor((c.getTime() - a) / 1000);
};
h.inherits(ka, rc);
ka.prototype.getCampaign = function(a) {
if (a = this._adsConfig.getPlacement(a)) {
return a.getCurrentCampaign();
}
};
ka.prototype.setCurrentAdUnit = function(a) {
var c = this, d = this._currentAdUnit = a, e =
this._currentAdUnit.onStart.subscribe(function() {
d.onStart.unsubscribe(e);
c.invalidateCampaigns(!0, c._adsConfig.getPlacementIds());
c.setPlacementStates(va.WAITING, c._adsConfig.getPlacementIds());
});
this._currentAdUnit.onStartProcessed.subscribe(function() {
return c.onAdUnitStartProcessed();
});
this._currentAdUnit.onClose.subscribe(function() {
return c.onAdUnitClose();
});
this._currentAdUnit.onFinish.subscribe(function() {
return c.onAdUnitFinish();
});
};
ka.prototype.refresh = function(a) {
return this.shouldRefill(this._refillTimestamp) ?
(this.setPlacementStates(va.WAITING, this._adsConfig.getPlacementIds()),
this._refillTimestamp = 0, this.invalidateCampaigns(!1,
this._adsConfig.getPlacementIds()), this._campaignCount = 0,
this._campaignManager.request(a)) : this.checkForExpiredCampaigns() ?
this.onCampaignExpired() : Promise.resolve();
};
ka.prototype.refreshWithBackupCampaigns = function(a) {
var c = this;
this.setPlacementStates(va.WAITING, this._adsConfig.getPlacementIds());
this._refillTimestamp = 0;
this.invalidateCampaigns(!1, this._adsConfig.getPlacementIds());
this._campaignCount = 0;
var d = [this._campaignManager.request()], e = this._adsConfig.getPlacements(),
f = {}, g;
for (g in this._adsConfig.getPlacements()) {
f.$jscomp$loop$prop$placement$109 = g;
if (e.hasOwnProperty(f.$jscomp$loop$prop$placement$109)) {
var k = Promise.all([a.loadCampaign(this._adsConfig.getPlacement(f.
$jscomp$loop$prop$placement$109)),
a.loadTrackingUrls(this._adsConfig.getPlacement(f.
$jscomp$loop$prop$placement$109))]).then(function(a) {
return function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
d && c.setPlacementReady(a.$jscomp$loop$prop$placement$109, d, e);
};
}(f));
d.push(k);
}
f = {$jscomp$loop$prop$placement$109:f.$jscomp$loop$prop$placement$109};
}
return Promise.all(d);
};
ka.prototype.shouldRefill = function(a) {
return this._needsRefill || 0 !== a && Date.now() > a ? !0 : !1;
};
ka.prototype.setPlacementState = function(a, c) {
this._adsConfig.getPlacement(a).setState(c);
};
ka.prototype.sendPlacementStateChanges = function(a) {
var c = this._adsConfig.getPlacement(a);
c.getPlacementStateChanged() && (c.setPlacementStateChanged(!1),
this._ads.Placement.setPlacementState(a, c.getState()),
this._ads.Listener.sendPlacementStateChangedEvent(a, va[c.getPreviousState()],
va[c.getState()]));
c.getState() === va.READY && this._ads.Listener.sendReadyEvent(a);
};
ka.prototype.setPlacementStates = function(a, c) {
for (var d = h.makeIterator(c), e = d.next(); !e.done; e = d.next()) {
this.setPlacementState(e.value, a);
}
a = h.makeIterator(c);
for (e = a.next(); !e.done; e = a.next()) {
this.sendPlacementStateChanges(e.value);
}
};
ka.prototype.invalidateCampaigns = function(a, c) {
this._needsRefill = a;
a = h.makeIterator(c);
for (c = a.next(); !c.done; c = a.next()) {
this._adsConfig.getPlacement(c.value).setCurrentCampaign(void 0);
}
};
ka.prototype.checkForExpiredCampaigns = function() {
for (var a in this._adsConfig.getPlacements()) {
if (this._adsConfig.getPlacements().hasOwnProperty(a)) {
var c = this._adsConfig.getPlacement(a).getCurrentCampaign();
if (c && c.isExpired()) {
return !0;
}
}
}
return !1;
};
ka.prototype.onCampaignExpired = function() {
this._core.Sdk.logDebug("Unity Ads campaign has expired, requesting new ads");
this.setPlacementStates(va.NO_FILL, this._adsConfig.getPlacementIds());
this.invalidateCampaigns(!1, this._adsConfig.getPlacementIds());
return this._campaignManager.request();
};
ka.prototype.onCampaign = function(a, c, d) {
this._parsingErrorCount = 0;
this.setPlacementReady(a, c, d);
};
ka.prototype.setPlacementReady = function(a, c, d) {
this.setCampaignForPlacement(a, c, d);
this.handlePlacementState(a, va.READY);
};
ka.prototype.onNoFill = function(a) {
this._parsingErrorCount = 0;
this._core.Sdk.logDebug("Unity Ads server returned no fill, no ads to show, for
placement: " + a);
this.setCampaignForPlacement(a, void 0, void 0);
this.handlePlacementState(a, va.NO_FILL);
};
ka.prototype.onError = function(a, c, d, e) {
var f = this;
this.invalidateCampaigns(this._needsRefill, c);
a instanceof Error && (a = {message:a.message, name:a.name, stack:a.stack});
e ? ca.trigger(d, {error:a, auctionProtocol:w.getAuctionProtocol()}, e) :
F.trigger(d, {error:a, auctionProtocol:w.getAuctionProtocol()});
this._core.Sdk.logError(JSON.stringify(a));
a = Date.now() + 1000 * rc.ErrorRefillDelayInSeconds;
if (0 === this._refillTimestamp || this._refillTimestamp > a) {
this._refillTimestamp = a, this._core.Sdk.logDebug("Unity Ads will refresh
ads in " + rc.ErrorRefillDelayInSeconds + " seconds");
}
if (this._currentAdUnit && this._currentAdUnit.isShowing()) {
var g = this._currentAdUnit.onClose.subscribe(function() {
f._currentAdUnit.onClose.unsubscribe(g);
f.setPlacementStates(va.NO_FILL, c);
});
} else {
this.setPlacementStates(va.NO_FILL, c);
}
1 === this._campaignCount && (this._parsingErrorCount++, 1 ===
this._parsingErrorCount && 0 < rc.ParsingErrorRefillDelayInSeconds && (a =
rc.ParsingErrorRefillDelayInSeconds + Math.random() *
rc.ParsingErrorRefillDelayInSeconds, this._core.Sdk.logDebug("Unity Ads retrying
failed campaign in " + a + " seconds"), this._refillTimestamp = Date.now() + 1000 *
rc.ParsingErrorRefillDelayInSeconds, setTimeout(function() {
f._core.Sdk.logDebug("Unity Ads retrying failed campaign now");
f.refresh();
}, 1000 * a)));
};
ka.prototype.onConnectivityError = function(a) {
var c = this;
this.invalidateCampaigns(this._needsRefill, a);
this._refillTimestamp = Date.now();
this._core.Sdk.logDebug("Unity Ads failed to contact server, retrying after
next system event");
if (this._currentAdUnit && this._currentAdUnit.isShowing()) {
var d = this._currentAdUnit.onClose.subscribe(function() {
c._currentAdUnit.onClose.unsubscribe(d);
c.setPlacementStates(va.NO_FILL, a);
});
} else {
this.setPlacementStates(va.NO_FILL, a);
}
};
ka.prototype.onAdPlanReceived = function(a, c, d) {
var e = this;
this._campaignCount = c;
if (d === gf.FREQUENCY_CAP_REACHED) {
a = Date.now(), this._refillTimestamp = a + 1000 *
Qg.getNextUTCDayDeltaSeconds(a);
} else {
if (0 === c) {
this._noFills++;
c = 0;
if (0 < this._noFills && 15 > this._noFills) {
for (c = 20, d = 1; d < this._noFills; d++) {
c *= 1.5;
}
}
if (0 < c) {
this._refillTimestamp = Date.now() + 1000 * c;
c += 10 * Math.random();
this._core.Sdk.logDebug("Unity Ads ad plan will be refreshed in " + c + "
seconds");
setTimeout(function() {
e.refresh(!0);
}, 1000 * c);
return;
}
} else {
this._noFills = 0;
}
0 < a && (this._refillTimestamp = Date.now() + 1000 * a,
this._core.Sdk.logDebug("Unity Ads ad plan will expire in " + a + " seconds"),
O.isTimerExpirationExperiment(this._clientInfo.getGameId()) &&
setTimeout(function() {
e._focusManager.isAppForeground() && e.refresh();
}, 1000 * a + 1));
}
};
ka.prototype.setCampaignForPlacement = function(a, c, d) {
if (a = this._adsConfig.getPlacement(a)) {
a.setCurrentCampaign(c), a.setCurrentTrackingUrls(d);
}
};
ka.prototype.handlePlacementState = function(a, c) {
var d = this;
if (this._currentAdUnit && this._currentAdUnit.isShowing()) {
var e = this._currentAdUnit.onClose.subscribe(function() {
d._currentAdUnit.onClose.unsubscribe(e);
d._core.Sdk.logDebug("Unity Ads placement " + a + " status set to " +
va[c]);
d.setPlacementState(a, c);
d.sendPlacementStateChanges(a);
c === va.READY && (m.setReadyEventTimestamp(a), m.sendReadyEvent(a),
Sb.setPriorRequestToReadyTime(m.getRequestToReadyTime(a), d._core),
d._core.Sdk.logDebug("Unity Ads placement " + a + " request to ready time took " +
m.getRequestToReadyTime(a)));
});
} else {
this._core.Sdk.logDebug("Unity Ads placement " + a + " status set to " +
va[c]), this.setPlacementState(a, c), this.sendPlacementStateChanges(a), c ===
va.READY && (m.setReadyEventTimestamp(a), m.sendReadyEvent(a),
Sb.setPriorRequestToReadyTime(m.getRequestToReadyTime(a), this._core),
this._core.Sdk.logDebug("Unity Ads placement " + a + " request to ready time took "
+ m.getRequestToReadyTime(a)));
}
};
ka.prototype.onActivityResumed = function(a) {
"com.unity3d.ads.adunit.AdUnitActivity" !== a &&
"com.unity3d.ads.adunit.AdUnitTransparentActivity" !== a &&
"com.unity3d.ads.adunit.AdUnitTransparentSoftwareActivity" !== a &&
"com.unity3d.ads.adunit.AdUnitSoftwareActivity" !== a && this.refresh();
};
ka.prototype.onAppForeground = function() {
this.refresh();
};
ka.prototype.onScreenOn = function() {
this.refresh();
};
ka.prototype.onAdUnitFinish = function() {
this.refresh();
};
ka.prototype.onAdUnitClose = function() {
this._core.Sdk.logInfo("Closing Unity Ads ad unit");
this.refresh();
};
ka.prototype.onAdUnitStartProcessed = function() {
var a = this;
this._currentAdUnit && setTimeout(function() {
a._currentAdUnit && a._currentAdUnit.isCached() && a.refresh();
}, this._startRefreshMagicConstant);
};
ka.prototype.onNetworkConnected = function() {
this._currentAdUnit && this._currentAdUnit.isShowing() || this.refresh();
};
Jc.prototype.addCampaignPlacementIds = function(a, c) {
this._placementCampaignMap[a] = c;
};
Jc.prototype.getPlacementCampaignMap = function(a) {
var c = this, d = {};
Object.keys(this._placementCampaignMap).forEach(function(e) {
c._placementCampaignMap[e].getAdType() === a && (d[e] =
c._placementCampaignMap[e]);
});
return d;
};
Jc.prototype.clear = function() {
this._placementCampaignMap = {};
};
Jc.prototype.setPlacementState = function(a, c) {
var d = this._configuration.getPlacement(a), e = d.getState();
d && (d.setState(c), this.sendPlacementStateChange(a, e, c));
};
Jc.prototype.setAllPlacementStates = function(a) {
for (var c = h.makeIterator(this._configuration.getPlacementIds()), d =
c.next(); !d.done; d = c.next()) {
this.setPlacementState(d.value, a);
}
};
Jc.prototype.setPlacementReady = function(a, c) {
var d = this._configuration.getPlacement(a);
d && (this.setPlacementState(a, va.READY), d.setCurrentCampaign(c));
};
Jc.prototype.setCampaign = function(a, c) {
(a = this._configuration.getPlacement(a)) && a.setCurrentCampaign(c);
};
Jc.prototype.getCampaign = function(a) {
if (a = this._configuration.getPlacement(a)) {
return a.getCurrentCampaign();
}
};
Jc.prototype.clearCampaigns = function() {
for (var a = h.makeIterator(this._configuration.getPlacementIds()), c =
a.next(); !c.done; c = a.next()) {
this._configuration.getPlacement(c.value).setCurrentCampaign(void 0);
}
};
Jc.prototype.sendPlacementStateChange = function(a, c, d) {
c !== d && (this._ads.Placement.setPlacementState(a, d),
this._ads.Listener.sendPlacementStateChangedEvent(a, va[c], va[d]), d === va.READY
&& (this._ads.Listener.sendReadyEvent(a), m.setReadyEventTimestamp(a),
m.sendReadyEvent(a)));
};
Uc.prototype.create = function(a) {
this.startNewSession(a);
return new Rb(a);
};
Uc.prototype.startNewSession = function(a) {
a = qd.getSessionStorageTimestampKey(a);
var c = Date.now(), d = new Nc(v.PRIVATE);
d.set(a, c);
this._storageBridge.queue(d);
};
Uc.prototype.sendUnsentSessions = function() {
var a = this;
return this.getUnsentSessions().then(function(c) {
c = c.map(function(c) {
return a.isSessionOutdated(c).then(function(d) {
return d ? a.deleteSession(c) : a.sendUnsentEvents(c);
});
});
return Promise.all(c).catch(function(a) {
F.trigger("sending_stored_events_failed", a);
return Promise.resolve([]);
});
});
};
Uc.prototype.setGameSessionId = function(a) {
this._gameSessionId = a;
};
Uc.prototype.getGameSessionId = function() {
return this._gameSessionId;
};
Uc.prototype.deleteSession = function(a) {
var c = new Nc(v.PRIVATE);
c.delete(qd.getSessionStorageKey(a));
this._storageBridge.queue(c);
return Promise.resolve([]);
};
Uc.prototype.getUnsentSessions = function() {
return this._core.Storage.getKeys(v.PRIVATE, "session", !1);
};
Uc.prototype.isSessionOutdated = function(a) {
return this._core.Storage.get(v.PRIVATE,
qd.getSessionStorageTimestampKey(a)).then(function(a) {
var c = (new Date).getTime() - 6048E5, e = (new Date).getTime();
return !(a > c && a < e);
}).catch(function() {
return !0;
});
};
Uc.prototype.sendUnsentEvents = function(a) {
var c = [], d = new vc(this._core, a);
c.push(d.sendFailedEvents(this._request, this._storageBridge));
a = new be(this._core, a);
c.push(a.sendFailedEvents(this._request, this._storageBridge));
return Promise.all(c);
};
var pb;
(function(a) {
a[a.ON_START = 0] = "ON_START";
a[a.ON_CREATE = 1] = "ON_CREATE";
a[a.ON_RESUME = 2] = "ON_RESUME";
a[a.ON_DESTROY = 3] = "ON_DESTROY";
a[a.ON_PAUSE = 4] = "ON_PAUSE";
a[a.KEY_DOWN = 5] = "KEY_DOWN";
a[a.ON_RESTORE = 6] = "ON_RESTORE";
a[a.ON_STOP = 7] = "ON_STOP";
})(pb || (pb = {}));
var mh;
(function(a) {
a[a.ADUNIT_NULL = 0] = "ADUNIT_NULL";
a[a.ACTIVITY_ID = 1] = "ACTIVITY_ID";
a[a.GENERIC = 2] = "GENERIC";
a[a.ORIENTATION = 3] = "ORIENTATION";
a[a.SCREENVISIBILITY = 4] = "SCREENVISIBILITY";
a[a.CORRUPTED_VIEWLIST = 5] = "CORRUPTED_VIEWLIST";
a[a.CORRUPTED_KEYEVENTLIST = 6] = "CORRUPTED_KEYEVENTLIST";
a[a.SYSTEM_UI_VISIBILITY = 7] = "SYSTEM_UI_VISIBILITY";
a[a.UNKNOWN_VIEW = 8] = "UNKNOWN_VIEW";
})(mh || (mh = {}));
h.inherits(Xb, B);
Xb.prototype.open = function(a, c, d, e, f, g, k) {
e = void 0 === e ? [] : e;
return this._nativeBridge.invoke(this._apiClass, "open", [a, c, d, e, void 0
=== f ? 0 : f, void 0 === g ? !0 : g, void 0 === k ? !1 : k]);
};
Xb.prototype.close = function() {
return this._nativeBridge.invoke(this._apiClass, "close");
};
Xb.prototype.setViews = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setViews", [a]);
};
Xb.prototype.getViews = function() {
return this._nativeBridge.invoke(this._apiClass, "getViews");
};
Xb.prototype.setOrientation = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setOrientation", [a]);
};
Xb.prototype.getOrientation = function() {
return this._nativeBridge.invoke(this._apiClass, "getOrientation");
};
Xb.prototype.setKeepScreenOn = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setKeepScreenOn", [a]);
};
Xb.prototype.setSystemUiVisibility = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setSystemUiVisibility", [a]);
};
Xb.prototype.setKeyEventList = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setKeyEventList", [a]);
};
Xb.prototype.setViewFrame = function(a, c, d, e, f) {
return this._nativeBridge.invoke(this._apiClass, "setViewFrame", [a, c, d, e,
f]);
};
Xb.prototype.getViewFrame = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getViewFrame", [a]);
};
Xb.prototype.handleEvent = function(a, c) {
switch(a) {
case pb[pb.ON_START]:
this.onStart.trigger(c[0]);
break;
case pb[pb.ON_CREATE]:
this.onCreate.trigger(c[0]);
break;
case pb[pb.ON_RESUME]:
this.onResume.trigger(c[0]);
break;
case pb[pb.ON_DESTROY]:
this.onDestroy.trigger(c[0], c[1]);
break;
case pb[pb.ON_PAUSE]:
this.onPause.trigger(c[0], c[1]);
break;
case pb[pb.KEY_DOWN]:
this.onKeyDown.trigger(c[0], c[1], c[2], c[3], c[4]);
break;
case pb[pb.ON_RESTORE]:
this.onRestore.trigger(c[0]);
break;
case pb[pb.ON_STOP]:
this.onStop.trigger(c[0]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
h.inherits(pd, B);
pd.prototype.addEventHandler = function(a) {
this._handlers.push(a);
return a;
};
pd.prototype.removeEventHandler = function(a) {
this._handlers.length && (this._handlers = "undefined" !== typeof a ?
this._handlers.filter(function(c) {
return c !== a;
}) : []);
};
var Lf;
(function(a) {
a[a.INFO = 0] = "INFO";
})(Lf || (Lf = {}));
var Bc;
(function(a) {
a[a.VIDEOVIEW_NULL = 0] = "VIDEOVIEW_NULL";
a[a.API_LEVEL_ERROR = 1] = "API_LEVEL_ERROR";
a[a.GENERIC_ERROR = 2] = "GENERIC_ERROR";
a[a.PAUSE_ERROR = 3] = "PAUSE_ERROR";
a[a.PREPARE_ERROR = 4] = "PREPARE_ERROR";
a[a.SEEKTO_ERROR = 5] = "SEEKTO_ERROR";
a[a.ILLEGAL_STATE = 6] = "ILLEGAL_STATE";
})(Bc || (Bc = {}));
h.inherits(He, pd);
He.prototype.setInfoListenerEnabled = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setInfoListenerEnabled",
[a]);
};
He.prototype.handleEvent = function(a, c) {
switch(a) {
case Lf[Lf.INFO]:
this._handlers.forEach(function(a) {
return a.onInfo(c[0], c[1], c[2]);
});
break;
case Bc[Bc.GENERIC_ERROR]:
this._handlers.forEach(function(a) {
return a.onGenericError(c[0], c[1], c[2]);
});
break;
case Bc[Bc.PAUSE_ERROR]:
this._handlers.forEach(function(a) {
return a.onPauseError(c[0]);
});
break;
case Bc[Bc.PREPARE_ERROR]:
this._handlers.forEach(function(a) {
return a.onPrepareError(c[0]);
});
break;
case Bc[Bc.SEEKTO_ERROR]:
this._handlers.forEach(function(a) {
return a.onSeekToError(c[0]);
});
break;
case Bc[Bc.ILLEGAL_STATE]:
this._handlers.forEach(function(a) {
return a.onIllegalStateError(c[0], c[1]);
});
break;
default:
throw Error("VideoPlayer event " + a + " does not have an observable");
}
};
var fc;
(function(a) {
a[a.VIEW_CONTROLLER_INIT = 0] = "VIEW_CONTROLLER_INIT";
a[a.VIEW_CONTROLLER_DID_LOAD = 1] = "VIEW_CONTROLLER_DID_LOAD";
a[a.VIEW_CONTROLLER_DID_APPEAR = 2] = "VIEW_CONTROLLER_DID_APPEAR";
a[a.VIEW_CONTROLLER_WILL_DISAPPEAR = 3] = "VIEW_CONTROLLER_WILL_DISAPPEAR";
a[a.VIEW_CONTROLLER_DID_DISAPPEAR = 4] = "VIEW_CONTROLLER_DID_DISAPPEAR";
a[a.VIEW_CONTROLLER_DID_RECEIVE_MEMORY_WARNING = 5] =
"VIEW_CONTROLLER_DID_RECEIVE_MEMORY_WARNING";
})(fc || (fc = {}));
var nh;
(function(a) {
a[a.ADUNIT_NULL = 0] = "ADUNIT_NULL";
a[a.NO_ROTATION_Z = 1] = "NO_ROTATION_Z";
a[a.UNKNOWN_VIEW = 2] = "UNKNOWN_VIEW";
})(nh || (nh = {}));
h.inherits(ib, B);
ib.prototype.open = function(a, c, d, e, f, g) {
return this._nativeBridge.invoke(this._apiClass, "open", [a, c, d, e, f, g]);
};
ib.prototype.close = function() {
return this._nativeBridge.invoke(this._apiClass, "close");
};
ib.prototype.setViews = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setViews", [a]);
};
ib.prototype.getViews = function() {
return this._nativeBridge.invoke(this._apiClass, "getViews");
};
ib.prototype.setSupportedOrientations = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setSupportedOrientations",
[a]);
};
ib.prototype.getSupportedOrientations = function() {
return this._nativeBridge.invoke(this._apiClass, "getSupportedOrientations");
};
ib.prototype.setKeepScreenOn = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setKeepScreenOn", [a]);
};
ib.prototype.setStatusBarHidden = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setStatusBarHidden", [a]);
};
ib.prototype.getStatusBarHidden = function() {
return this._nativeBridge.invoke(this._apiClass, "getStatusBarHidden");
};
ib.prototype.setShouldAutorotate = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setShouldAutorotate", [a]);
};
ib.prototype.getShouldAutorotate = function() {
return this._nativeBridge.invoke(this._apiClass, "getShouldAutorotate");
};
ib.prototype.setTransform = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setTransform", [a]);
};
ib.prototype.getTransform = function() {
return this._nativeBridge.invoke(this._apiClass, "getTransform");
};
ib.prototype.setViewFrame = function(a, c, d, e, f) {
return this._nativeBridge.invoke(this._apiClass, "setViewFrame", [a, c, d, e,
f]);
};
ib.prototype.getViewFrame = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getViewFrame", [a]);
};
ib.prototype.handleEvent = function(a, c) {
switch(a) {
case fc[fc.VIEW_CONTROLLER_INIT]:
this.onViewControllerInit.trigger();
break;
case fc[fc.VIEW_CONTROLLER_DID_LOAD]:
this.onViewControllerDidLoad.trigger();
break;
case fc[fc.VIEW_CONTROLLER_DID_APPEAR]:
this.onViewControllerDidAppear.trigger();
break;
case fc[fc.VIEW_CONTROLLER_WILL_DISAPPEAR]:
this.onViewControllerWillDisappear.trigger();
break;
case fc[fc.VIEW_CONTROLLER_DID_DISAPPEAR]:
this.onViewControllerDidDisappear.trigger();
break;
case fc[fc.VIEW_CONTROLLER_DID_RECEIVE_MEMORY_WARNING]:
this.onViewControllerDidReceiveMemoryWarning.trigger();
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
var jd;
(function(a) {
a[a.LIKELY_TO_KEEP_UP = 0] = "LIKELY_TO_KEEP_UP";
a[a.BUFFER_EMPTY = 1] = "BUFFER_EMPTY";
a[a.BUFFER_FULL = 2] = "BUFFER_FULL";
a[a.GENERIC_ERROR = 3] = "GENERIC_ERROR";
a[a.VIDEOVIEW_NULL = 4] = "VIDEOVIEW_NULL";
})(jd || (jd = {}));
h.inherits(mf, pd);
mf.prototype.handleEvent = function(a, c) {
switch(a) {
case jd[jd.LIKELY_TO_KEEP_UP]:
this._handlers.forEach(function(a) {
return a.onLikelyToKeepUp(c[0], c[1]);
});
break;
case jd[jd.BUFFER_EMPTY]:
this._handlers.forEach(function(a) {
return a.onBufferEmpty(c[0], c[1]);
});
break;
case jd[jd.BUFFER_FULL]:
this._handlers.forEach(function(a) {
return a.onBufferFull(c[0], c[1]);
});
break;
case jd[jd.GENERIC_ERROR]:
this._handlers.forEach(function(a) {
return a.onGenericError(c[0], c[1]);
});
break;
default:
throw Error("VideoPlayer event " + a + " does not have an observable");
}
};
h.inherits(Bd, B);
Bd.prototype.sendReadyEvent = function(a) {
return this._nativeBridge.invoke(this._apiClass, "sendReadyEvent", [a]);
};
Bd.prototype.sendStartEvent = function(a) {
return this._nativeBridge.invoke(this._apiClass, "sendStartEvent", [a]);
};
Bd.prototype.sendFinishEvent = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "sendFinishEvent", [a,
na[c]]);
};
Bd.prototype.sendClickEvent = function(a) {
return this._nativeBridge.invoke(this._apiClass, "sendClickEvent", [a]);
};
Bd.prototype.sendPlacementStateChangedEvent = function(a, c, d) {
return this._nativeBridge.invoke(this._apiClass,
"sendPlacementStateChangedEvent", [a, c, d]);
};
Bd.prototype.sendErrorEvent = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "sendErrorEvent", [a, c]);
};
h.inherits(Ge, B);
Ge.prototype.setDefaultPlacement = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setDefaultPlacement", [a]);
};
Ge.prototype.setPlacementState = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "setPlacementState", [a,
va[c]]);
};
Ge.prototype.setPlacementAnalytics = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setPlacementAnalytics", [a]);
};
var qb;
(function(a) {
a[a.PROGRESS = 0] = "PROGRESS";
a[a.COMPLETED = 1] = "COMPLETED";
a[a.PREPARED = 2] = "PREPARED";
a[a.PREPARE_TIMEOUT = 3] = "PREPARE_TIMEOUT";
a[a.PLAY = 4] = "PLAY";
a[a.PAUSE = 5] = "PAUSE";
a[a.SEEKTO = 6] = "SEEKTO";
a[a.STOP = 7] = "STOP";
})(qb || (qb = {}));
h.inherits(Wb, pd);
Wb.prototype.setProgressEventInterval = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setProgressEventInterval",
[a]);
};
Wb.prototype.getProgressEventInterval = function() {
return this._nativeBridge.invoke(this._apiClass, "getProgressEventInterval");
};
Wb.prototype.prepare = function(a, c, d) {
return this._nativeBridge.invoke(this._apiClass, "prepare", [a, c, d]);
};
Wb.prototype.play = function() {
return this._nativeBridge.invoke(this._apiClass, "play");
};
Wb.prototype.pause = function() {
return this._nativeBridge.invoke(this._apiClass, "pause");
};
Wb.prototype.stop = function() {
return this._nativeBridge.invoke(this._apiClass, "stop");
};
Wb.prototype.seekTo = function(a) {
return this._nativeBridge.invoke(this._apiClass, "seekTo", [a]);
};
Wb.prototype.getCurrentPosition = function() {
return this._nativeBridge.invoke(this._apiClass, "getCurrentPosition");
};
Wb.prototype.getVolume = function() {
return this._nativeBridge.invoke(this._apiClass, "getVolume");
};
Wb.prototype.setVolume = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setVolume", [a]);
};
Wb.prototype.setAutomaticallyWaitsToMinimizeStalling = function(a) {
return this._nativeBridge.invoke(this._apiClass,
"setAutomaticallyWaitsToMinimizeStalling", [a]);
};
Wb.prototype.handleEvent = function(a, c) {
switch(a) {
case qb[qb.PROGRESS]:
this._handlers.forEach(function(a) {
return a.onProgress(c[0]);
});
break;
case qb[qb.COMPLETED]:
this._handlers.forEach(function(a) {
return a.onCompleted(c[0]);
});
break;
case qb[qb.PREPARED]:
this._handlers.forEach(function(a) {
return a.onPrepared(c[0], c[1], c[2], c[3]);
});
break;
case qb[qb.PREPARE_TIMEOUT]:
this._handlers.forEach(function(a) {
return a.onPrepareTimeout(c[0]);
});
break;
case qb[qb.PLAY]:
this._handlers.forEach(function(a) {
return a.onPlay(c[0]);
});
break;
case qb[qb.PAUSE]:
this._handlers.forEach(function(a) {
return a.onPause(c[0]);
});
break;
case qb[qb.SEEKTO]:
this._handlers.forEach(function(a) {
return a.onSeek(c[0]);
});
break;
case qb[qb.STOP]:
this._handlers.forEach(function(a) {
return a.onStop(c[0]);
});
break;
default:
this._nativeBridge.getPlatform() === p.IOS ? this.iOS.handleEvent(a, c) :
this._nativeBridge.getPlatform() === p.ANDROID && this.Android.handleEvent(a, c);
}
};
h.inherits(Sa, z);
Sa.prototype.getCacheMode = function() {
return this.get("cacheMode");
};
Sa.prototype.getPlacement = function(a) {
return this.getPlacements()[a];
};
Sa.prototype.removePlacements = function(a) {
var c = this.getPlacements();
a.forEach(function(a) {
delete c[a];
});
this.set("placements", c);
};
Sa.prototype.getPlacementIds = function() {
var a = [], c;
for (c in this.getPlacements()) {
this.getPlacements().hasOwnProperty(c) && a.push(c);
}
return a;
};
Sa.prototype.getPlacements = function() {
return this.get("placements");
};
Sa.prototype.getPlacementCount = function() {
if (!this.getPlacements()) {
return 0;
}
var a = 0, c;
for (c in this.getPlacements()) {
this.getPlacements().hasOwnProperty(c) && a++;
}
return a;
};
Sa.prototype.getDefaultPlacement = function() {
return this.get("defaultPlacement");
};
Sa.prototype.getDefaultBannerPlacement = function() {
return this.get("defaultBannerPlacement");
};
Sa.prototype.isGDPREnabled = function() {
return this.get("gdprEnabled");
};
Sa.prototype.setGDPREnabled = function(a) {
this.set("gdprEnabled", a);
};
Sa.prototype.isOptOutRecorded = function() {
return this.get("optOutRecorded");
};
Sa.prototype.setOptOutRecorded = function(a) {
this.set("optOutRecorded", a);
};
Sa.prototype.isOptOutEnabled = function() {
return this.get("optOutEnabled");
};
Sa.prototype.setOptOutEnabled = function(a) {
this.set("optOutEnabled", a);
};
Sa.prototype.getGamePrivacy = function() {
return this.get("gamePrivacy");
};
Sa.prototype.getUserPrivacy = function() {
return this.get("userPrivacy");
};
Sa.prototype.getDTO = function() {
var a = [], c;
for (c in this.getPlacements()) {
this.getPlacements().hasOwnProperty(c) && a.push(this.getPlacements()
[c].getDTO());
}
var d;
(c = this.getDefaultPlacement()) && (d = c.getId());
return {cacheMode:Nb[this.getCacheMode()].toLowerCase(), placements:a,
defaultPlacement:d, gamePrivacy:this.getGamePrivacy().getDTO(),
userPrivacy:this.getUserPrivacy().getDTO(), optOutEnabled:this.isOptOutEnabled(),
optOutRecorded:this.isOptOutEnabled()};
};
Sa.Schema = {cacheMode:["number"], placements:["object"], defaultPlacement:
["object"], gdprEnabled:["boolean"], optOutRecorded:["boolean"], optOutEnabled:
["boolean"], defaultBannerPlacement:["string", "undefined"], gamePrivacy:
["object"], userPrivacy:["object"]};
Fe.parse = function(a) {
var c = a.placements, d = {}, e;
if (c) {
c.forEach(function(a) {
a = new ua(a);
d[a.getId()] = a;
a.isDefault() && (e = a);
});
} else {
throw Error("No placements in configuration response");
}
if (!e) {
throw Error("No default placement in configuration response");
}
a = {cacheMode:this.parseCacheMode(a), placements:d, defaultPlacement:e,
gdprEnabled:a.gdprEnabled, optOutRecorded:a.optOutRecorded,
optOutEnabled:a.optOutEnabled, defaultBannerPlacement:void 0,
gamePrivacy:this.parseGamePrivacy(a), userPrivacy:this.parseUserPrivacy(a)};
return new Sa(a);
};
Fe.parseGamePrivacy = function(a) {
return a.gamePrivacy && a.gamePrivacy.method ? new wd(a.gamePrivacy) : !0 ===
a.gdprEnabled ? new wd({method:nb.LEGITIMATE_INTEREST}) : new
wd({method:nb.DEFAULT});
};
Fe.parseUserPrivacy = function(a) {
return a.userPrivacy ? new fd(a.userPrivacy) : new fd({method:nb.DEFAULT,
version:0, permissions:{profiling:!1}});
};
Fe.parseCacheMode = function(a) {
switch(a.assetCaching) {
case "forced":
return Nb.FORCED;
case "allowed":
return Nb.ALLOWED;
case "disabled":
return Nb.DISABLED;
case "adaptive":
return Nb.ADAPTIVE;
default:
throw Error('Unknown assetCaching value "' + a.assetCaching + '"');
}
};
h.inherits(Ea, Z);
Ea.prototype.show = function() {
var a = this;
this.setShowing(!0);
this.setShowingMRAID(!0);
this._mraid.show();
this._ads.Listener.sendStartEvent(this._placement.getId());

this._operativeEventManager.sendStart(this.getOperativeEventParams()).then(function
() {
a.onStartProcessed.trigger();
});
O.isLoopMeSeat(this._campaign.getSeatId()) || this.sendImpression();
this._container.addEventHandler(this);
return this._container.open(this, ["webview"],
this._orientationProperties.allowOrientationChange,
this._orientationProperties.forceOrientation, !0, !1, !0, !1,
this._options).then(function() {
a.onStart.trigger();
});
};
Ea.prototype.hide = function() {
var a = this;
if (!this.isShowing()) {
return Promise.resolve();
}
this.setShowing(!1);
this.setShowingMRAID(!1);
this._mraid && this._mraid.hide();
this.removeEndScreenContainer();
this.removePrivacyContainer();
this.sendFinishOperativeEvents();
this.onFinish.trigger();
this.removeMraidContainer();
this.unsetReferences();
this._ads.Listener.sendFinishEvent(this._placement.getId(),
this.getFinishState());
this._container.removeEventHandler(this);
return this._container.close().then(function() {
a.onClose.trigger();
});
};
Ea.prototype.setOrientationProperties = function(a) {
this._orientationProperties = a;
};
Ea.prototype.description = function() {
return "mraid";
};
Ea.prototype.sendClick = function() {
this.sendTrackingEvent("click");
};
Ea.prototype.sendImpression = function() {
this.sendTrackingEvent("impression");
};
Ea.prototype.getEndScreen = function() {
return this._endScreen;
};
Ea.prototype.getMRAIDView = function() {
return this._mraid;
};
Ea.prototype.setShowingMRAID = function(a) {
this._showingMRAID = a;
};
Ea.prototype.isShowingMRAID = function() {
return this._showingMRAID;
};
Ea.prototype.onContainerShow = function() {
var a = this;
this._mraid.setViewableState(!0);
Z.getAutoClose() && setTimeout(function() {
a.setFinishState(na.COMPLETED);
a.hide();
}, Z.getAutoCloseDelay());
};
Ea.prototype.onContainerDestroy = function() {
this.isShowing() && (this.setFinishState(na.SKIPPED), this.hide());
};
Ea.prototype.onContainerBackground = function() {
this.isShowing() && (this._mraid.setViewableState(!1),
O.isSimejiJapaneseKeyboardApp(this._clientInfo.getGameId()) &&
(this.setFinishState(na.SKIPPED), this.hide()));
};
Ea.prototype.onContainerForeground = function() {
this.isShowing() && this._mraid.setViewableState(!0);
};
Ea.prototype.onContainerSystemMessage = function() {
};
Ea.prototype.unsetReferences = function() {
delete this._mraid;
delete this._endScreen;
delete this._privacy;
};
Ea.prototype.sendTrackingEvent = function(a) {
var c = this._campaign.getSession().getId();
if (this._additionalTrackingEvents && this._additionalTrackingEvents[a]) {
var d = this._additionalTrackingEvents[a];
if (d) {
d = h.makeIterator(d);
for (var e = d.next(); !e.done; e = d.next()) {
this._thirdPartyEventManager.sendWithGet("mraid " + a, c, e.value,
this._campaign.getUseWebViewUserAgentForTracking());
}
}
}
};
Ea.prototype.getOperativeEventParams = function() {
return {placement:this._placement, asset:this._campaign.getResourceUrl()};
};
Ea.prototype.removeEndScreenContainer = function() {
if (this._endScreen) {
this._endScreen.hide();
var a = this._endScreen.container();
a && a.parentElement &&
a.parentElement.removeChild(this._endScreen.container());
}
};
Ea.prototype.removePrivacyContainer = function() {
if (this._privacy) {
var a = this._privacy.container();
a && a.parentElement && a.parentElement.removeChild(a);
}
};
Ea.prototype.removeMraidContainer = function() {
if (this._mraid) {
var a = this._mraid.container();
a && a.parentElement && a.parentElement.removeChild(a);
}
};
Ea.prototype.sendFinishOperativeEvents = function() {
var a = this.getOperativeEventParams(), c = this.getFinishState();
c === na.COMPLETED ?
(this._campaign.getSession().getEventSent(da.THIRD_QUARTILE) ||
this._operativeEventManager.sendThirdQuartile(a),
this._campaign.getSession().getEventSent(da.VIEW) ||
this._operativeEventManager.sendView(a), this.sendTrackingEvent("complete")) : c
=== na.SKIPPED && this._operativeEventManager.sendSkip(a);
};
h.inherits(Wa, nd);
Wa.prototype.onMraidClick = function() {
this._ads.Listener.sendClickEvent(this._placement.getId());
return Promise.resolve();
};
Wa.prototype.onMraidReward = function() {
this._operativeEventManager.sendThirdQuartile(this.getOperativeEventParams());
};
Wa.prototype.onMraidSkip = function() {
this._adUnit.setFinishState(na.SKIPPED);
this._adUnit.hide();
};
Wa.prototype.onMraidClose = function() {
this._adUnit.setFinishState(na.COMPLETED);
this._adUnit.hide();
};
Wa.prototype.onMraidOrientationProperties = function(a) {
this._adUnit.isShowing() ? this._platform === p.IOS ?
this._adUnit.getContainer().reorient(!0, a.forceOrientation) :
this._adUnit.getContainer().reorient(a.allowOrientationChange,
a.forceOrientation) : this._adUnit.setOrientationProperties(a);
};
Wa.prototype.onPlayableAnalyticsEvent = function() {
};
Wa.prototype.onMraidShowEndScreen = function() {
var a = this._adUnit.getEndScreen();
a && (this._adUnit.setShowingMRAID(!1), this._adUnit.getMRAIDView().hide(),
a.show());
};
Wa.prototype.onCustomImpressionEvent = function() {
this._customImpressionFired || (this._adUnit.sendImpression(),
this._customImpressionFired = !0);
};
Wa.prototype.onWebViewFullScreen = function() {
return Promise.resolve();
};
Wa.prototype.onWebViewReduceSize = function() {
return Promise.resolve();
};
Wa.prototype.sendTrackingEvents = function() {
var a = this.getOperativeEventParams();
this._campaign.getSession().getEventSent(da.THIRD_QUARTILE) ||
this._operativeEventManager.sendThirdQuartile(a);
this._campaign.getSession().getEventSent(da.VIEW) ||
this._operativeEventManager.sendView(a);
this._campaign.getSession().getEventSent(da.CLICK) ||
this._operativeEventManager.sendClick(a);
this._adUnit.sendClick();
};
Wa.prototype.openUrl = function(a) {
return this._platform === p.IOS ? this._core.iOS.UrlScheme.open(a) :
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
Wa.prototype.getOperativeEventParams = function() {
return {placement:this._placement, asset:this._campaign.getResourceUrl()};
};
var je;
(function(a) {
a[a.LOW = 4000] = "LOW";
a[a.MID = 8000] = "MID";
a[a.HIGH = 12000] = "HIGH";
})(je || (je = {}));
Xd.getClickDelayRange = function(a) {
return a <= je.LOW ? "LOW" : a > je.LOW && a <= je.MID ? "MID" : a > je.MID &&
a <= je.HIGH ? "HIGH" : "VERY_HIGH";
};
Xd.sendClickDiagnosticsEvent = function(a, c, d, e, f, g) {
g && 1 === g % 10 && ca.trigger("click_delay", {duration:a,
delayRange:Xd.getClickDelayRange(a), delayedUrl:c, location:d,
seatId:e.getSeatId(), creativeId:e.getCreativeId(), abGroup:f}, e.getSession());
};
h.inherits(qe, Wa);
qe.prototype.onMraidClick = function(a) {
var c = this;
Wa.prototype.onMraidClick.call(this, a);
this.sendTrackingEvents();
var d = Date.now();
if (this._campaign.getClickAttributionUrl()) {
if (this.handleClickAttribution(), !
this._campaign.getClickAttributionUrlFollowsRedirects()) {
var e = u.getAppStoreUrlTemplates(this._platform);
return this._request.followRedirectChain(a,
this._campaign.getUseWebViewUserAgentForTracking(), e).catch(function() {
return a;
}).then(function(e) {
return c.openUrlOnCallButton(e, Date.now() - d, a);
});
}
} else {
return this.openUrlOnCallButton(a, Date.now() - d, a);
}
return Promise.resolve();
};
qe.prototype.onPlayableAnalyticsEvent = function(a, c, d, e, f) {
var g = {};
g.type = e;
g.eventData = f;
g.timeFromShow = a;
g.timeFromPlayableStart = c;
g.backgroundTime = d;
if (a = this._campaign.getResourceUrl()) {
g.url = a.getOriginalUrl();
}
g.auctionId = this._campaign.getSession().getId();
g.abGroup = this._coreConfig.getAbGroup();
H.sendEvent("ads.sdk2.events.playable.json", eb.ANONYMOUS, g);
};
qe.prototype.handleClickAttribution = function() {
var a = this, c = this._campaign.getClickAttributionUrl();
this._campaign.getClickAttributionUrlFollowsRedirects() && c ?
this._thirdPartyEventManager.clickAttributionEvent(c, !0,
this._campaign.getUseWebViewUserAgentForTracking()).then(function(c) {
var d = w.getHeader(c.headers, "location");
d ? a.openUrl(d) : F.trigger("mraid_click_attribution_misconfigured",
{url:a._campaign.getClickAttributionUrl(),
followsRedirects:a._campaign.getClickAttributionUrlFollowsRedirects(),
response:c});
}).catch(function(c) {
c instanceof ed && (c = new dc(Error(c.message), {request:c.nativeRequest,
auctionId:a._campaign.getSession().getId(),
url:a._campaign.getClickAttributionUrl(), response:c.nativeResponse}));
F.trigger("mraid_click_attribution_failed", c);
}) : c && this._thirdPartyEventManager.clickAttributionEvent(c, !1,
this._campaign.getUseWebViewUserAgentForTracking());
};
qe.prototype.openUrlOnCallButton = function(a, c, d) {
var e = this;
return this.openUrl(a).then(function() {
Xd.sendClickDiagnosticsEvent(c, d, "performance_mraid", e._campaign,
e._abGroup.valueOf(), e._gameSessionId);
});
};
h.inherits(Oe, Wa);
Oe.prototype.onMraidClick = function(a) {
var c = this;
this._jaegerSpan && this._jaegerSpan.addAnnotation("onMRAIDClick from
ProgrammaticMRAIDEventHandler after onBridgeOpen " + a);
Wa.prototype.onMraidClick.call(this, a);
this._mraidView.setCallButtonEnabled(!1);
var d = u.getAppStoreUrlTemplates(this._platform), e = Date.now();
return this._request.followRedirectChain(a,
this._campaign.getUseWebViewUserAgentForTracking(), d).then(function(d) {
c._jaegerSpan && c._jaegerSpan.addAnnotation("onMRAIDClick from
ProgrammaticMRAIDEventHandler after followRedirectChain success " + d);
return c.openUrlOnCallButton(d, Date.now() - e, a);
}).catch(function(d) {
c._jaegerSpan && c._jaegerSpan.addAnnotation("onMRAIDClick from
ProgrammaticMRAIDEventHandler after followRedirectChain fail " + d.message);
return c.openUrlOnCallButton(a, Date.now() - e, a);
});
};
Oe.prototype.openUrlOnCallButton = function(a, c, d) {
var e = this;
return this.openUrl(a).then(function() {
e._mraidView.setCallButtonEnabled(!0);
e.sendTrackingEvents();
e._jaegerSpan && e._jaegerSpan.addAnnotation("openUrlOnCallButton from
ProgrammaticMRAIDEventHandler after openURL success " + a);
Xd.sendClickDiagnosticsEvent(c, d, "programmatic_mraid", e._campaign,
e._abGroup.valueOf(), e._gameSessionId);
}).catch(function(a) {
e._jaegerSpan && e._jaegerSpan.addAnnotation("openUrlOnCallButton from
ProgrammaticMRAIDEventHandler after openURL fail " + a.message);
e._mraidView.setCallButtonEnabled(!0);
e.sendTrackingEvents();
});
};
Oe.prototype.setJaegerSpan = function(a) {
this._jaegerSpan = a;
};
h.inherits(Ke, Mb);
Ke.prototype.createAdUnit = function(a) {
var c = new Ea(a), d = this.getMRAIDEventHandler(c, a);
a.mraid.addEventHandler(d);
return c;
};
Ke.prototype.getMRAIDEventHandler = function(a, c) {
return O.isSonicPlayable(c.campaign.getCreativeId()) || c.campaign instanceof
sf ? new qe(a, c) : new Oe(a, c);
};
h.inherits(oe, Yb);
oe.prototype.parse = function(a, c) {
var d = a.getJsonContent();
if (!d) {
throw Error("Corrupted mraid content");
}
if (!d.markup) {
throw new dc(Error("MRAID Campaign missing markup"), {mraid:d});
}
var e = decodeURIComponent(d.markup), f = a.getCacheTTL();
f = {id:this.getProgrammaticCampaignId(), willExpireAt:f ? Date.now() + 1000 *
f : void 0, contentType:oe.ContentType, adType:a.getAdType() || void 0,
correlationId:a.getCorrelationId() || void 0, creativeId:a.getCreativeId() || void
0, seatId:a.getSeatId() || void 0, meta:d.meta, session:c, mediaId:a.getMediaId(),
trackingUrls:a.getTrackingUrls() || {}, backupCampaign:!1};
a = Object.assign({}, f, {resourceAsset:void 0, resource:e,
dynamicMarkup:d.dynamicMarkup, clickAttributionUrl:d.clickAttributionUrl ?
this.validateAndEncodeUrl(d.clickAttributionUrl, c) : void 0,
clickAttributionUrlFollowsRedirects:d.clickAttributionUrlFollowsRedirects,
clickUrl:d.clickUrl ? this.validateAndEncodeUrl(d.clickUrl, c) : void 0,
videoEventUrls:{}, gameName:void 0, gameIcon:void 0, rating:void 0,
ratingCount:void 0, landscapeImage:void 0, portraitImage:void 0,
bypassAppSheet:void 0,
store:void 0, appStoreId:void 0,
useWebViewUserAgentForTracking:a.getUseWebViewUserAgentForTracking() || !1,
playableConfiguration:void 0});
return Promise.resolve(new U(a));
};
oe.ContentType = "programmatic/mraid";
h.inherits(pe, Yb);
pe.prototype.parse = function(a, c) {
var d = a.getJsonContent();
if (!d) {
throw Error("Corrupted mraid-url content");
}
if (!d.inlinedUrl) {
throw new dc(Error("MRAID Campaign missing inlinedUrl"), {mraid:d});
}
var e = a.getCacheTTL();
e = {id:this.getProgrammaticCampaignId(), willExpireAt:e ? Date.now() + 1000 *
e : void 0, contentType:pe.ContentType, adType:a.getAdType() || void 0,
correlationId:a.getCorrelationId() || void 0, creativeId:a.getCreativeId() || void
0, seatId:a.getSeatId() || void 0, meta:d.meta, session:c, mediaId:a.getMediaId(),
trackingUrls:a.getTrackingUrls() || {}, backupCampaign:!1};
a = Object.assign({}, e, {resourceAsset:d.inlinedUrl ? new
te(this.validateAndEncodeUrl(d.inlinedUrl, c), c) : void 0, resource:void 0,
dynamicMarkup:d.dynamicMarkup, clickAttributionUrl:d.clickAttributionUrl ?
this.validateAndEncodeUrl(d.clickAttributionUrl, c) : void 0,
clickAttributionUrlFollowsRedirects:d.clickAttributionUrlFollowsRedirects,
clickUrl:d.clickUrl ? this.validateAndEncodeUrl(d.clickUrl, c) : void 0,
videoEventUrls:{},
useWebViewUserAgentForTracking:a.getUseWebViewUserAgentForTracking() ||
!1, gameName:void 0, gameIcon:void 0, rating:void 0, ratingCount:void 0,
landscapeImage:void 0, portraitImage:void 0, bypassAppSheet:void 0, store:void 0,
appStoreId:void 0, playableConfiguration:void 0});
return Promise.resolve(new U(a));
};
pe.ContentType = "programmatic/mraid-url";
Ne.parseFromString = function(a, c) {
return /^\s*text\/html\s*(?:;|$)/i.test(c) ? (c =
document.implementation.createHTMLDocument(""), -1 < a.toLowerCase().indexOf("<!
doctype") ? c.documentElement.innerHTML = a : c.body.innerHTML = a, c) :
Ne.nativeParse.apply(new DOMParser, [a, c]);
};
Ne.nativeParse = DOMParser.prototype.parseFromString;
cg.get = function(a) {
return new Promise(function(c, d) {
var e = new XMLHttpRequest;
e.addEventListener("load", function() {
200 <= e.status && 299 >= e.status || 0 === e.status && 0 ===
a.indexOf("file://") ? c(e.responseText) : d(Error("Request failed with status code
" + e.status));
});
e.addEventListener("error", function() {
d(Error("Error ocurred while executing request: status - " + e.status));
});
e.addEventListener("timeout", function() {
d(Error("Request timed out"));
});
e.addEventListener("abort", function() {
d(Error("Request was aborted"));
});
e.open("GET", decodeURIComponent(a));
e.send();
});
};
$b.prototype.getHandler = function() {
return this._handler;
};
$b.prototype.connect = function(a) {
this._eventAdapter = a;
this._isConnected || (this._eventAdapter.connect(), this._isConnected = !0);
};
$b.prototype.disconnect = function() {
this._eventAdapter.disconnect();
this._isConnected = !1;
};
$b.prototype.sendViewableEvent = function(a) {
this._eventAdapter.sendViewableEvent(a);
};
$b.prototype.onBridgeSetOrientationProperties = function(a, c) {
this._handler.onBridgeSetOrientationProperties(a, c);
};
$b.prototype.onBridgeOpen = function(a) {
this._handler.onBridgeOpen(a);
};
$b.prototype.onBridgeLoad = function() {
this._handler.onBridgeLoad();
};
$b.prototype.onBridgeAnalyticsEvent = function(a, c) {
this._handler.onBridgeAnalyticsEvent(a, c);
};
$b.prototype.onBridgeClose = function() {
this._handler.onBridgeClose();
};
$b.prototype.onBridgeStateChange = function(a) {
this._handler.onBridgeStateChange(a);
};
$b.prototype.onBridgeResizeWebview = function() {
this._handler.onBridgeResizeWebview();
};
$b.prototype.onBridgeSendStats = function(a, c, d) {
this._handler.onBridgeSendStats(a, c, d);
};
$b.prototype.onBridgeAREvent = function(a) {
this._handler.onBridgeAREvent(a);
};
h.inherits(K, I);
K.setDebugJsConsole = function(a) {
K.DebugJsConsole = a;
};
K.prototype.render = function() {
I.prototype.render.call(this);
this._closeElement = this._container.querySelector(".close-region");
this._gdprBanner = this._container.querySelector(".gdpr-pop-up");
this._privacyButton = this._container.querySelector(".privacy-button");
this.choosePrivacyShown();
};
K.prototype.hide = function() {
var a = this;
this.setViewableState(!1);
this._updateInterval && (clearInterval(this._updateInterval),
this._updateInterval = void 0);
I.prototype.hide.call(this);
if (this._privacy) {
this._privacy.removeEventHandler(this);
this._privacy.hide();
var c = this._privacy.container();
c && c.parentElement && c.parentElement.removeChild(c);
}
this._showGDPRBanner && !this._gdprPopupClicked &&
this._handlers.forEach(function(a) {
return a.onGDPRPopupSkipped();
});
void 0 !== this._stats && this._handlers.forEach(function(c) {
return c.onPlayableAnalyticsEvent(a._stats.averageFps,
a._stats.averagePlayFps, 0, "playable_performance_stats", a._stats);
});
};
K.prototype.createMRAID = function(a) {
var c = this, d = Date.now(), e = Date.now(), f = Date.now();
return this.fetchMRAID().then(function(d) {
e = f = Date.now();
if (d) {
var g = c._campaign.getDynamicMarkup();
g && (d = d.replace("{UNITY_DYNAMIC_MARKUP}", g));
K.DebugJsConsole && (a = a.replace('<script id="debug-js-
console">\x3c/script>', "<script type=\"text/javascript\">(function() {\n
function postConsoleLog(functionName, args) {\n return
window.parent.postMessage({\n type: 'consoleLog',\n
data: {\n functionName: functionName,\n args:
args\n }\n }, '*');\n }\n\n var
origConsoleLog = console.log;\n\n console.log = function() {\n
var argumentsArray = Array.prototype.slice.call(arguments);\n
postConsoleLog('console.log', argumentsArray.join(\" \"));\n return
origConsoleLog.apply(this, argumentsArray);\n };\n\n var
origConsoleWarn = console.warn;\n\n console.warn = function() {\n
var argumentsArray = Array.prototype.slice.call(arguments);\n
postConsoleLog('console.warn', argumentsArray.join(\" \"));\n return
origConsoleWarn.apply(this, argumentsArray);\n };\n\n var
origConsoleError = console.error;\n\n console.error = function() {\n
var argumentsArray = Array.prototype.slice.call(arguments);\n
postConsoleLog('console.error', argumentsArray.join(\" \"));\n return
origConsoleError.apply(this, argumentsArray);\n };\n\n var
origWindowOnError = window.onerror;\n\n window.onerror = function () {\n
var argumentsArray = Array.prototype.slice.call(arguments);\n
postConsoleLog('window.onerror', argumentsArray.join(\" \"));\n
if(origWindowOnError) {\n return origConsoleError.apply(this,
argumentsArray);\n }\n return false;\n };\n\n
const origXMLHttpRequestOpen = window.XMLHttpRequest.prototype.open;\n\n
window.XMLHttpRequest.prototype.open = function () {\n var
argumentsArray = Array.prototype.slice.call(arguments);\n
postConsoleLog('XMLHttpRequest.open', argumentsArray.join(\" \"));\n
return origXMLHttpRequestOpen.apply(this, argumentsArray);\n };\n })
();\x3c/script>"));
d = d.replace(/\$/g, "$$$");
d = c.replaceMraidSources(d);
return a.replace("<body></body>", "<body>" + d + "</body>");
}
throw new hb("Unable to fetch MRAID");
}).then(function(a) {
var g = (e - d) / 1000, k = (Date.now() - f) / 1000;
c._handlers.forEach(function(a) {
return a.onPlayableAnalyticsEvent(g, k, 0, "playable_fetching_time", {});
});
return a;
});
};
K.prototype.isKPIDataValid = function(a, c) {
var d = !0;
Object.keys(a).forEach(function(c) {
c = a[c];
if ("number" !== typeof c || isNaN(c) || 0 > c || 3600 < c) {
d = !1;
}
});
d || 999 !== this._gameSessionId % 1000 ||
F.trigger("playable_kpi_time_value_error", Object.assign({message:"Time value for
KPI looks unreasonable", kpi:c}, a));
return d;
};
K.prototype.setCallButtonEnabled = function(a) {
this._callButtonEnabled !== a && (this._callButtonEnabled = a);
};
K.prototype.isLoaded = function() {
return this._isLoaded;
};
K.prototype.choosePrivacyShown = function() {
this._showGDPRBanner && !this._gdprPopupClicked ?
(this._gdprBanner.style.visibility = "visible",
this._privacyButton.style.pointerEvents = "1", this._privacyButton.style.visibility
= "hidden") : (this._privacyButton.style.visibility = "visible",
this._gdprBanner.style.pointerEvents = "1", this._gdprBanner.style.visibility =
"hidden");
};
K.prototype.updateStats = function(a) {
this._stats = Object.assign({}, a, {averageFps:a.frameCount / a.totalTime,
averagePlayFps:a.frameCount / a.playTime});
};
K.prototype.prepareProgressCircle = function() {
var a = this;
if (this._placement.allowSkip()) {
var c = this._placement.allowSkipInSeconds();
this._closeRemaining = this._CLOSE_LENGTH;
var d = c;
this._updateInterval = window.setInterval(function() {
0 < a._closeRemaining && a._closeRemaining--;
0 < d && (d--, a.updateProgressCircle(a._closeElement, (c - d) / c));
0 >= d && (a._canSkip = !0, a._closeElement.style.opacity = "1",
a.updateProgressCircle(a._closeElement, 1));
0 >= a._closeRemaining && (clearInterval(a._updateInterval), a._canClose
= !0);
}, 1000);
} else {
this._closeRemaining = this._CLOSE_LENGTH, this._updateInterval =
window.setInterval(function() {
var c = (a._CLOSE_LENGTH - a._closeRemaining) / a._CLOSE_LENGTH;
0.75 <= c && !a._didReward && (a._handlers.forEach(function(a) {
return a.onMraidReward();
}), a._didReward = !0);
0 < a._closeRemaining && (a._closeRemaining--,
a.updateProgressCircle(a._closeElement, c));
0 >= a._closeRemaining && (clearInterval(a._updateInterval), a._canClose
= !0, a._closeElement.style.opacity = "1", a.updateProgressCircle(a._closeElement,
1));
}, 1000);
}
};
K.prototype.updateProgressCircle = function(a, c) {
var d = a.querySelector(".progress-wrapper");
if (this._platform === p.ANDROID && 15 > this._deviceInfo.getApiLevel()) {
d.style.display = "none", this._container.style.display = "none",
this._container.offsetHeight, this._container.style.display = "block";
} else {
var e = a.querySelector(".circle-left");
a = a.querySelector(".circle-right");
e.style.webkitTransform = "rotate(" + 360 * c + "deg)";
0.5 <= c && (d.style.webkitAnimationName = "close-progress-wrapper",
a.style.webkitAnimationName = "right-spin");
}
};
K.prototype.setAnalyticsBackgroundTime = function(a) {
a ? this._backgroundTimestamp && (this._backgroundTime += Date.now() -
this._backgroundTimestamp) : this._backgroundTimestamp = Date.now();
};
K.prototype.replaceMraidSources = function(a) {
var c = this._platform === p.IOS ? Ne.parseFromString(a, "text/html") : (new
DOMParser).parseFromString(a, "text/html");
if (!c) {
return this._core.Sdk.logWarning("Could not parse markup for campaign " +
this._campaign.getId()), a;
}
(a = c.documentElement.querySelector('script[src^="mraid.js"]')) &&
a.parentNode && a.parentNode.removeChild(a);
return c.documentElement.outerHTML;
};
K.prototype.fetchMRAID = function() {
var a = this._campaign.getResourceUrl();
if (a) {
if (this._platform === p.ANDROID) {
return cg.get(a.getUrl());
}
var c = a.getFileId();
return c ? this._core.Cache.getFileContent(c, "UTF-8") :
cg.get(a.getOriginalUrl());
}
return Promise.resolve(this._campaign.getResource());
};
K.prototype.onPrivacyClose = function() {
this._privacy && (this._privacy.hide(), this._privacyPanelOpen = !1);
};
K.prototype.onPrivacyEvent = function(a) {
a.preventDefault();
this._privacy.show();
this._privacyPanelOpen = !0;
};
K.prototype.onGDPRPopupEvent = function(a) {
a.preventDefault();
this._gdprPopupClicked = !0;
this._privacy.show();
this._privacyPanelOpen = !0;
};
K.prototype.onSetOrientationProperties = function(a, c) {
this._handlers.forEach(function(d) {
return d.onMraidOrientationProperties({allowOrientationChange:a,
forceOrientation:c});
});
};
K.prototype.onOpen = function(a) {
this._handlers.forEach(function(c) {
return c.onMraidClick(a);
});
};
K.prototype.onLoadedEvent = function() {
};
K.prototype.onAREvent = function() {
return Promise.resolve();
};
K.prototype.onBridgeSetOrientationProperties = function(a, c) {
this.onSetOrientationProperties(a, c);
};
K.prototype.onBridgeOpen = function(a) {
this.onOpen(encodeURI(a));
};
K.prototype.onBridgeLoad = function() {
this.onLoadedEvent();
};
K.prototype.onBridgeAnalyticsEvent = function(a, c) {
this.sendMraidAnalyticsEvent(a, c);
};
K.prototype.onBridgeClose = function() {
this._handlers.forEach(function(a) {
return a.onMraidClose();
});
};
K.prototype.onBridgeStateChange = function(a) {
"completed" === a && !this._placement.allowSkip() && 5 < this._closeRemaining
&& (this._closeRemaining = 5);
};
K.prototype.onBridgeResizeWebview = function() {
};
K.prototype.onBridgeSendStats = function(a, c, d) {
this.updateStats({totalTime:a, playTime:c, frameCount:d});
};
K.prototype.onBridgeAREvent = function(a) {
var c = this;
this.onAREvent(a).catch(function(a) {
return c._core.Sdk.logError("AR message error: " + a.toString());
});
};
var Ic;
(function(a) {
a.ORIENTATION = "orientation";
a.OPEN = "open";
a.LOADED = "loaded";
a.ANALYTICS_EVENT = "analyticsEvent";
a.CLOSE = "close";
a.STATE_CHANGE = "customMraidState";
a.RESIZE_WEBVIEW = "resizeWebview";
a.SEND_STATS = "sendStats";
a.AR = "ar";
a.CONSOLE_LOG = "consoleLog";
})(Ic || (Ic = {}));
od.prototype.handleSetOrientationProperties = function(a) {
var c = ja.NONE;
if (a.forceOrientation) {
switch(a.forceOrientation) {
case "landscape":
c = ja.LANDSCAPE;
break;
case "portrait":
c = ja.PORTRAIT;
break;
case "none":
c = ja.NONE;
}
}
this._handler.onBridgeSetOrientationProperties(a.allowOrientationChange, c);
};
od.prototype.handleOpen = function(a) {
this._handler.onBridgeOpen(a);
};
od.prototype.handleAnalyticsEvent = function(a, c) {
this._handler.onBridgeAnalyticsEvent(a, c);
};
od.prototype.handleCustomState = function(a) {
this._handler.onBridgeStateChange(a);
};
od.prototype.handleLoaded = function() {
this._handler.onBridgeLoad();
};
od.prototype.handleClose = function() {
this._handler.onBridgeClose();
};
od.prototype.handleSendStats = function(a, c, d) {
this._handler.onBridgeSendStats(a, c, d);
};
h.inherits($c, od);
$c.prototype.connect = function() {
window.addEventListener("message", this._messageListener, !1);
};
$c.prototype.disconnect = function() {
window.removeEventListener("message", this._messageListener);
};
$c.prototype.sendViewableEvent = function(a) {
this.postMessage("viewable", a);
};
$c.prototype.onMessage = function(a) {
a = a.data;
this._core.Sdk.logDebug("mraid: event=" + a.type + ", data=" + a);
if (a.type in this._mraidHandlers) {
(0,this._mraidHandlers[a.type])(a);
}
};
$c.prototype.postMessage = function(a, c) {
this._iframe.contentWindow && this._iframe.contentWindow.postMessage({type:a,
value:c}, "*");
};
$c.prototype.handleAr = function(a) {
this._handler.onBridgeAREvent(a);
};
$c.prototype.handleConsoleLog = function(a) {
this._core.Sdk.logDebug(a.data.functionName + ": " + a.data.args);
};
h.inherits(jc, K);
jc.prototype.render = function() {
K.prototype.render.call(this);
this._loadingScreen = this._container.querySelector(".loading-screen");
this.loadIframe();
};
jc.prototype.show = function() {
K.prototype.show.call(this);
this._showTimestamp = Date.now();
this.sendMraidAnalyticsEvent("playable_show");
this.showLoadingScreen();
};
jc.prototype.hide = function() {
this._loadingScreenTimeout && (clearTimeout(this._loadingScreenTimeout),
this._loadingScreenTimeout = void 0);
this._prepareTimeout && (clearTimeout(this._prepareTimeout),
this._prepareTimeout = void 0);
K.prototype.hide.call(this);
this._mraidAdapterContainer.disconnect();
};
jc.prototype.setViewableState = function(a) {
this._isLoaded && !this._loadingScreenTimeout &&
this._mraidAdapterContainer.sendViewableEvent(a);
this.setAnalyticsBackgroundTime(a);
};
jc.prototype.loadIframe = function() {
var a = this, c = this._iframe = this._container.querySelector("#mraid-
iframe");
this._mraidAdapterContainer.connect(new $c(this._core,
this._mraidAdapterContainer, c));
var d = this.setUpMraidContainer();
this.createMRAID(d).then(function(d) {
c.onload = function() {
return a.onIframeLoaded();
};
m.setFrameSetStartTimestamp(a._placement.getId());
a._core.Sdk.logDebug("Unity Ads placement " + a._placement.getId() + " set
iframe.src started " + m.getFrameSetStartTimestamp(a._placement.getId()));
c.srcdoc = d;
});
};
jc.prototype.setUpMraidContainer = function() {
var a = 0 === this._gameSessionId % 1000 ? "\x3c!-- DO NOT PUT A DOCTYPE HERE!
iOS will go crazy --\x3e<html lang=\"en\"><head><title>Unity Ads MRAID
WebView</title><meta charset=\"utf-8\"><meta name=\"viewport\"
content=\"width=device-width,height=device-height,initial-scale=1,minimum-
scale=1,maximum-scale=1,user-scalable=no\"><meta name=\"apple-mobile-web-app-
capable\" content=\"yes\"><meta name=\"apple-mobile-web-app-status-bar-style\"
content=\"black-translucent\"><meta name=\"format-detection\"
content=\"telephone=no\"><script>(function() {\n var MRAID = function()
{\n var state = 'loading';\n\n var listeners = {\n
ready: [],\n error: [],\n stateChange: [],\n
viewableChange: [],\n sizeChange: []\n };\n\n
var viewable = false;\n\n var orientationProperties = {\n
allowOrientationChange: true,\n forceOrientation: 'none'\n
};\n\n var trigger = function(event, parameters) {\n
if(!parameters) {\n parameters =
[];\n }\n if(event in listeners) {\n
for (var len = listeners[event].length, i = len - 1; i >= 0; i--) {\n
var listener = listeners[event][i];\n try {\n
listener.apply(window, parameters);\n } catch (e) {\n
console.log('Got error ', e);\n
window.parent.postMessage({\n type:
'diagnosticError',\n error: {\n
message: e.message\n }\n
}, '*');\n }\n }\n
}\n };\n\n var width = window.innerWidth;\n
var height = window.innerHeight;\n\n var playableConfiguration =
{};\n\n var setState = function(newState) {\n
state = newState;\n trigger('stateChange', [newState]);\n
};\n\n window.addEventListener('message', function(event) {\n
switch(event.data.type) {\n case 'viewable':\n
viewable = event.data.value;\n trigger('viewableChange',
[viewable]);\n break;\n\n case
'resize':\n window.innerWidth = width =
event.data.width;\n window.innerHeight = height =
event.data.height;\n trigger('sizeChange', [width,
height]);\n break;\n\n default:\n
break;\n }\n }, false);\n\n
window.addEventListener('resize', function(e) {\n width =
window.innerWidth;\n height = window.innerHeight;\n
trigger('sizeChange', [width, height]);\n });\n\n
window.addEventListener('DOMContentLoaded', function() {\n
window.parent.postMessage({\n type: 'loaded'\n
}, '*');\n setState('default');\n
trigger('ready');\n }, false);\n\n
this.addEventListener = function(event, listener) {\n if(event
in listeners) {\n listeners[event].push(listener);\n
}\n };\n\n this.createCalendarEvent = function() {\n
trigger('error', ['not implemented',
'createCalendarEvent']);\n };\n\n this.close =
function() {\n setState('hidden');\n
window.parent.postMessage({\n type: 'close'\n
}, '*');\n };\n\n this.expand = function() {\n
trigger('error', ['not implemented', 'expand']);\n };\n\n
this.getCurrentPosition = this.getDefaultPosition = function() {\n
return {\n x: 0,\n y: 0,\n
width: width,\n height: height\n };\n
};\n\n this.getExpandProperties = function() {\n
trigger('error', ['not implemented',
'getExpandProperties']);\n };\n\n this.getMaxSize =
this.getScreenSize = function() {\n return {\n
width: width,\n height: height\n };\n
};\n\n this.getOrientationProperties = function() {\n
return orientationProperties;\n };\n\n
this.getPlacementType = function() {\n return 'interstitial';\n
};\n\n this.getResizeProperties = function() {\n
trigger('error', ['not implemented',
'getResizeProperties']);\n };\n\n this.getState =
function() {\n return state;\n };\n\n
this.getVersion = function() {\n return
'2.0';\n };\n\n this.isViewable = function() {\n
return viewable;\n };\n\n this.open = function(url)
{\n window.parent.postMessage({\n type:
'open',\n url: url\n }, '*');\n
};\n\n this.playVideo = function() {\n
trigger('error', ['not implemented', 'playVideo']);\n };\n\n
this.removeEventListener = function(event, listener) {\n
if(event in listeners) {\n var index =
listeners[event].indexOf(listener);\n if(index !== -1) {\n
listeners[event].splice(index,
1);\n }\n }\n };\n\n
this.resize = function() {\n trigger('error', ['not
implemented', 'resize']);\n };\n\n
this.setExpandProperties = function() {\n trigger('error', ['not
implemented', 'setExpandProperties']);\n };\n\n
this.setOrientationProperties = function(properties) {\n
orientationProperties = properties;\n
window.parent.postMessage({\n type: 'orientation',\n
properties: properties\n }, '*');\n };\n\n
this.setResizeProperties = function() {\n trigger('error', ['not
implemented', 'setResizeProperties']);\n };\n\n
this.storePicture = function() {\n trigger('error', ['not
implemented', 'storePicture']);\n };\n\n
this.useCustomClose = function() {\n trigger('error', ['not
implemented', 'useCustomClose']);\n };\n\n
this.sendAnalyticsEvent = function(event, eventData) {\n
window.parent.postMessage({\n type: 'analyticsEvent',\n
event: event,\n eventData: eventData\n },
'*');\n };\n\n this.setCustomMraidState =
function(state) {\n window.parent.postMessage({\n
type: 'customMraidState',\n state: state\n
}, '*');\n };\n\n this.getConfiguration = function()
{\n return playableConfiguration;\n }\n
};\n\n var frameCount = 0;\n var playableStartTime =
undefined;\n var playableTime = 0;\n\n var lastFrameTime =
0;\n var originalRequestAnimationFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame;\n\n if (typeof
originalRequestAnimationFrame === 'function') {\n\n var sendStats =
function() {\n if (playableStartTime !== undefined) {\n
window.parent.postMessage({\n type: 'sendStats',\n
frameCount: frameCount,\n playTime: playableTime /
1000,\n totalTime: (Date.now() - playableStartTime) /
1000,\n },
'*');\n }\n };\n\n
window.requestAnimationFrame = window.webkitRequestAnimationFrame = function
(callback) {\n if (playableStartTime === undefined) {\n
playableStartTime = Date.now();\n }\n\n
return originalRequestAnimationFrame((time) => {\n if (time
- lastFrameTime > 16) {\n frameCount++;\n\n
if (lastFrameTime !== 0) {\n playableTime += (time -
lastFrameTime);\n }\n }\n
lastFrameTime = time;\n callback(time);\n
});\n };\n\n setInterval(sendStats, 500);\n
}\n\n window.mraid = new MRAID();\n })
();\x3c/script></head><body></body></html>" :
"\x3c!-- DO NOT PUT A DOCTYPE HERE! iOS will go crazy --\x3e<html
lang=\"en\"><head><title>Unity Ads MRAID WebView</title><meta charset=\"utf-
8\"><meta name=\"viewport\" content=\"width=device-width,height=device-
height,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\"><meta
name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta name=\"apple-mobile-
web-app-status-bar-style\" content=\"black-translucent\"><meta name=\"format-
detection\" content=\"telephone=no\"><script>(function() {\n var MRAID =
function() {\n var state = 'loading';\n\n var
listeners = {\n ready: [],\n error: [],\n
stateChange: [],\n viewableChange: []\n };\n\n
var viewable = false;\n\n var orientationProperties = {\n
allowOrientationChange: true,\n forceOrientation: 'none'\n
};\n\n var trigger = function(event, parameters) {\n
if(!parameters) {\n parameters =
[];\n }\n if(event in listeners) {\n
for (var len = listeners[event].length, i = len - 1; i >= 0; i--) {\n
var listener = listeners[event][i];\n try {\n
listener.apply(window, parameters);\n } catch (e) {\n
console.log('Got error ', e);\n
window.parent.postMessage({\n type:
'diagnosticError',\n error: {\n
message: e.message\n }\n
}, '*');\n }\n }\n
}\n };\n\n var width = window.innerWidth;\n
var height = window.innerHeight;\n\n var playableConfiguration =
{};\n\n var setState = function(newState) {\n
state = newState;\n trigger('stateChange', [newState]);\n
};\n\n window.addEventListener('message', function(event) {\n
switch(event.data.type) {\n case 'viewable':\n
viewable = event.data.value;\n trigger('viewableChange',
[viewable]);\n break;\n\n case
'resize':\n window.innerWidth = width =
event.data.width;\n window.innerHeight = height =
event.data.height;\n trigger('sizeChange', [width,
height]);\n break;\n\n default:\n
break;\n }\n }, false);\n\n
window.addEventListener('resize', function(e) {\n width =
window.innerWidth;\n height = window.innerHeight;\n
trigger('sizeChange', [width, height]);\n });\n\n
window.addEventListener('DOMContentLoaded', function() {\n
window.parent.postMessage({\n type: 'loaded'\n
}, '*');\n setState('default');\n
trigger('ready');\n }, false);\n\n
this.addEventListener = function(event, listener) {\n if(event
in listeners) {\n listeners[event].push(listener);\n
}\n };\n\n this.createCalendarEvent = function() {\n
trigger('error', ['not implemented',
'createCalendarEvent']);\n };\n\n this.close =
function() {\n setState('hidden');\n
window.parent.postMessage({\n type: 'close'\n
}, '*');\n };\n\n this.expand = function() {\n
trigger('error', ['not implemented', 'expand']);\n };\n\n
this.getCurrentPosition = this.getDefaultPosition = function() {\n
return {\n x: 0,\n y: 0,\n
width: width,\n height: height\n };\n
};\n\n this.getExpandProperties = function() {\n
trigger('error', ['not implemented',
'getExpandProperties']);\n };\n\n this.getMaxSize =
this.getScreenSize = function() {\n return {\n
width: width,\n height: height\n };\n
};\n\n this.getOrientationProperties = function() {\n
return orientationProperties;\n };\n\n
this.getPlacementType = function() {\n return 'interstitial';\n
};\n\n this.getResizeProperties = function() {\n
trigger('error', ['not implemented',
'getResizeProperties']);\n };\n\n this.getState =
function() {\n return state;\n };\n\n
this.getVersion = function() {\n return
'2.0';\n };\n\n this.isViewable = function() {\n
return viewable;\n };\n\n this.open = function(url)
{\n window.parent.postMessage({\n type:
'open',\n url: url\n }, '*');\n
};\n\n this.playVideo = function() {\n
trigger('error', ['not implemented', 'playVideo']);\n };\n\n
this.removeEventListener = function(event, listener) {\n
if(event in listeners) {\n var index =
listeners[event].indexOf(listener);\n if(index !== -1) {\n
listeners[event].splice(index,
1);\n }\n }\n };\n\n
this.resize = function() {\n trigger('error', ['not
implemented', 'resize']);\n };\n\n
this.setExpandProperties = function() {\n trigger('error', ['not
implemented', 'setExpandProperties']);\n };\n\n
this.setOrientationProperties = function(properties) {\n
orientationProperties = properties;\n
window.parent.postMessage({\n type: 'orientation',\n
properties: properties\n }, '*');\n };\n\n
this.setResizeProperties = function() {\n trigger('error', ['not
implemented', 'setResizeProperties']);\n };\n\n
this.storePicture = function() {\n trigger('error', ['not
implemented', 'storePicture']);\n };\n\n
this.useCustomClose = function() {\n trigger('error', ['not
implemented', 'useCustomClose']);\n };\n\n
this.sendAnalyticsEvent = function(event, eventData) {\n
window.parent.postMessage({\n type: 'analyticsEvent',\n
event: event,\n eventData: eventData\n },
'*');\n };\n\n this.setCustomMraidState =
function(state) {\n window.parent.postMessage({\n
type: 'customMraidState',\n state: state\n
}, '*');\n };\n\n this.getConfiguration = function()
{\n return playableConfiguration;\n };\n\n
this.supports = function() {\n return
false;\n };\n };\n window.mraid = new
MRAID();\n })();\x3c/script><script id=\"debug-js-
console\">\x3c/script></head><body></body></html>",
c = this._campaign.getPlayableConfiguration();
if (c) {
var d = "group" + this._abGroup;
this._configuration = c[d] ? c[d] : c.default ? c.default : {};
a = a.replace("var playableConfiguration = {};", "var playableConfiguration =
" + JSON.stringify(this._configuration) + ";");
}
return a;
};
jc.prototype.onIframeLoaded = function() {
this._isLoaded = !0;
this._loadingScreenTimeout || (clearTimeout(this._prepareTimeout),
this._prepareTimeout = void 0, this.showMRAIDAd());
var a = (Date.now() - m.getFrameSetStartTimestamp(this._placement.getId())) /
1000;
this._core.Sdk.logDebug("Unity Ads placement " + this._placement.getId() + "
iframe load duration " + a + " s");
this.isKPIDataValid({frameLoadDuration:a},
"playable_mraid_playable_loading_time") && this._handlers.forEach(function(c) {
return c.onPlayableAnalyticsEvent(a, 0, 0, "playable_loading_time", {});
});
};
jc.prototype.showLoadingScreen = function() {
var a = this;
this._loadingScreen.style.display = "block";
this._loadingScreenTimeout = window.setTimeout(function() {
a._isLoaded ? a.showMRAIDAd() : a._prepareTimeout =
window.setTimeout(function() {
a._canClose = !0;
a._closeElement.style.opacity = "1";
a._closeElement.style.display = "block";
a.updateProgressCircle(a._closeElement, 1);
var c = a._campaign.getResourceUrl();
ca.trigger("playable_prepare_timeout", {url:c ? c.getOriginalUrl() : ""},
a._campaign.getSession());
a._prepareTimeout = void 0;
}, 4500);
a._loadingScreenTimeout = void 0;
}, 2500);
};
jc.prototype.showMRAIDAd = function() {
var a = this;
this.prepareProgressCircle();
["webkitTransitionEnd", "transitionend"].forEach(function(c) {
"none" !== a._loadingScreen.style.display &&
a._loadingScreen.addEventListener(c, function() {
a._closeElement.style.display = "block";
a._playableStartTimestamp = Date.now();
a.sendMraidAnalyticsEvent("playable_start");
a._mraidAdapterContainer.sendViewableEvent(!0);
a._loadingScreen.style.display = "none";
}, !1);
});
this._loadingScreen.classList.add("hidden");
};
jc.prototype.onCloseEvent = function(a) {
a.preventDefault();
a.stopPropagation();
this._canSkip && !this._canClose ? (this._handlers.forEach(function(a) {
return a.onMraidSkip();
}), this.sendMraidAnalyticsEvent("playable_skip")) : this._canClose &&
(this._handlers.forEach(function(a) {
return a.onMraidClose();
}), this.sendMraidAnalyticsEvent("playable_close"));
};
jc.prototype.sendMraidAnalyticsEvent = function(a, c) {
var d = (Date.now() - this._showTimestamp - this._backgroundTime) / 1000, e =
this._backgroundTime / 1000, f = this._playableStartTimestamp ? (Date.now() -
this._playableStartTimestamp - this._backgroundTime) / 1000 : 0;
this.isKPIDataValid({timeFromShow:d, backgroundTime:e,
timeFromPlayableStart:f}, "playable_mraid_" + a) &&
this._handlers.forEach(function(g) {
return g.onPlayableAnalyticsEvent(d, f, e, a, c);
});
};
h.inherits(qc, K);
qc.prototype.render = function() {
K.prototype.render.call(this);
this.loadIframe();
};
qc.prototype.show = function() {
var a = this;
K.prototype.show.call(this);
this._showTimestamp = Date.now();
this.sendMraidAnalyticsEvent("playable_show");
this.prepareProgressCircle();
if (this._domContentLoaded) {
this.setViewableState(!0), this.sendCustomImpression();
} else {
var c = this.onLoaded.subscribe(function() {
a.setViewableState(!0);
a.sendCustomImpression();
a.onLoaded.unsubscribe(c);
});
}
};
qc.prototype.hide = function() {
K.prototype.hide.call(this);
this._mraidAdapterContainer.disconnect();
};
qc.prototype.setViewableState = function(a) {
this._domContentLoaded && this._mraidAdapterContainer.sendViewableEvent(a);
this.setAnalyticsBackgroundTime(a);
};
qc.prototype.sendMraidAnalyticsEvent = function(a, c) {
var d = (Date.now() - this._showTimestamp - this._backgroundTime) / 1000, e =
this._backgroundTime / 1000, f = this._playableStartTimestamp ? (Date.now() -
this._playableStartTimestamp - this._backgroundTime) / 1000 : 0;
this.isKPIDataValid({timeFromShow:d, backgroundTime:e,
timeFromPlayableStart:f}, "mraid_" + a) && this._handlers.forEach(function(g) {
return g.onPlayableAnalyticsEvent(d, f, e, a, c);
});
};
qc.prototype.onCloseEvent = function(a) {
a.preventDefault();
a.stopPropagation();
this._canSkip && !this._canClose ? (this._handlers.forEach(function(a) {
return a.onMraidSkip();
}), this.sendMraidAnalyticsEvent("playable_skip")) : this._canClose &&
(this._handlers.forEach(function(a) {
return a.onMraidClose();
}), this.sendMraidAnalyticsEvent("playable_close"));
};
qc.prototype.loadIframe = function() {
var a = this, c = this._iframe = this._container.querySelector("#mraid-
iframe");
this._mraidAdapterContainer.connect(new $c(this._core,
this._mraidAdapterContainer, c));
this.createMRAID(999 === this._gameSessionId % 1000 ? "\x3c!-- DO NOT PUT A
DOCTYPE HERE! iOS will go crazy --\x3e<html lang=\"en\"><head><title>Unity Ads
MRAID WebView</title><meta charset=\"utf-8\"><meta name=\"viewport\"
content=\"width=device-width,height=device-height,initial-scale=1,minimum-
scale=1,maximum-scale=1,user-scalable=no\"><meta name=\"apple-mobile-web-app-
capable\" content=\"yes\"><meta name=\"apple-mobile-web-app-status-bar-style\"
content=\"black-translucent\"><meta name=\"format-detection\"
content=\"telephone=no\"><script>(function() {\n var MRAID = function()
{\n var state = 'loading';\n\n var listeners = {\n
ready: [],\n error: [],\n stateChange: [],\n
viewableChange: [],\n sizeChange: []\n };\n\n
var viewable = false;\n\n var orientationProperties = {\n
allowOrientationChange: true,\n forceOrientation: 'none'\n
};\n\n var trigger = function(event, parameters) {\n
if(!parameters) {\n parameters =
[];\n }\n if(event in listeners) {\n
for (var len = listeners[event].length, i = len - 1; i >= 0; i--) {\n
var listener = listeners[event][i];\n try {\n
listener.apply(window, parameters);\n } catch (e) {\n
console.log('Got error ', e);\n
window.parent.postMessage({\n type:
'diagnosticError',\n error: {\n
message: e.message\n }\n
}, '*');\n }\n }\n
}\n };\n\n var width = window.innerWidth;\n
var height = window.innerHeight;\n\n var playableConfiguration =
{};\n\n var setState = function(newState) {\n
state = newState;\n trigger('stateChange', [newState]);\n
};\n\n window.addEventListener('message', function(event) {\n
switch(event.data.type) {\n case 'viewable':\n
viewable = event.data.value;\n trigger('viewableChange',
[viewable]);\n break;\n\n case
'resize':\n window.innerWidth = width =
event.data.width;\n window.innerHeight = height =
event.data.height;\n trigger('sizeChange', [width,
height]);\n break;\n\n default:\n
break;\n }\n }, false);\n\n
window.addEventListener('resize', function(e) {\n width =
window.innerWidth;\n height = window.innerHeight;\n
trigger('sizeChange', [width, height]);\n });\n\n
window.addEventListener('DOMContentLoaded', function() {\n
window.parent.postMessage({\n type: 'loaded'\n
}, '*');\n setState('default');\n
trigger('ready');\n }, false);\n\n
this.addEventListener = function(event, listener) {\n if(event
in listeners) {\n listeners[event].push(listener);\n
}\n };\n\n this.createCalendarEvent = function() {\n
trigger('error', ['not implemented',
'createCalendarEvent']);\n };\n\n this.close =
function() {\n setState('hidden');\n
window.parent.postMessage({\n type: 'close'\n
}, '*');\n };\n\n this.expand = function() {\n
trigger('error', ['not implemented', 'expand']);\n };\n\n
this.getCurrentPosition = this.getDefaultPosition = function() {\n
return {\n x: 0,\n y: 0,\n
width: width,\n height: height\n };\n
};\n\n this.getExpandProperties = function() {\n
trigger('error', ['not implemented',
'getExpandProperties']);\n };\n\n this.getMaxSize =
this.getScreenSize = function() {\n return {\n
width: width,\n height: height\n };\n
};\n\n this.getOrientationProperties = function() {\n
return orientationProperties;\n };\n\n
this.getPlacementType = function() {\n return 'interstitial';\n
};\n\n this.getResizeProperties = function() {\n
trigger('error', ['not implemented',
'getResizeProperties']);\n };\n\n this.getState =
function() {\n return state;\n };\n\n
this.getVersion = function() {\n return
'2.0';\n };\n\n this.isViewable = function() {\n
return viewable;\n };\n\n this.open = function(url)
{\n window.parent.postMessage({\n type:
'open',\n url: url\n }, '*');\n
};\n\n this.playVideo = function() {\n
trigger('error', ['not implemented', 'playVideo']);\n };\n\n
this.removeEventListener = function(event, listener) {\n
if(event in listeners) {\n var index =
listeners[event].indexOf(listener);\n if(index !== -1) {\n
listeners[event].splice(index,
1);\n }\n }\n };\n\n
this.resize = function() {\n trigger('error', ['not
implemented', 'resize']);\n };\n\n
this.setExpandProperties = function() {\n trigger('error', ['not
implemented', 'setExpandProperties']);\n };\n\n
this.setOrientationProperties = function(properties) {\n
orientationProperties = properties;\n
window.parent.postMessage({\n type: 'orientation',\n
properties: properties\n }, '*');\n };\n\n
this.setResizeProperties = function() {\n trigger('error', ['not
implemented', 'setResizeProperties']);\n };\n\n
this.storePicture = function() {\n trigger('error', ['not
implemented', 'storePicture']);\n };\n\n
this.useCustomClose = function() {\n trigger('error', ['not
implemented', 'useCustomClose']);\n };\n\n
this.sendAnalyticsEvent = function(event, eventData) {\n
window.parent.postMessage({\n type: 'analyticsEvent',\n
event: event,\n eventData: eventData\n },
'*');\n };\n\n this.setCustomMraidState =
function(state) {\n window.parent.postMessage({\n
type: 'customMraidState',\n state: state\n
}, '*');\n };\n\n this.getConfiguration = function()
{\n return playableConfiguration;\n }\n
};\n\n var frameCount = 0;\n var playableStartTime =
undefined;\n var playableTime = 0;\n\n var lastFrameTime =
0;\n var originalRequestAnimationFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame;\n\n if (typeof
originalRequestAnimationFrame === 'function') {\n\n var sendStats =
function() {\n if (playableStartTime !== undefined) {\n
window.parent.postMessage({\n type: 'sendStats',\n
frameCount: frameCount,\n playTime: playableTime /
1000,\n totalTime: (Date.now() - playableStartTime) /
1000,\n },
'*');\n }\n };\n\n
window.requestAnimationFrame = window.webkitRequestAnimationFrame = function
(callback) {\n if (playableStartTime === undefined) {\n
playableStartTime = Date.now();\n }\n\n
return originalRequestAnimationFrame((time) => {\n if (time
- lastFrameTime > 16) {\n frameCount++;\n\n
if (lastFrameTime !== 0) {\n playableTime += (time -
lastFrameTime);\n }\n }\n
lastFrameTime = time;\n callback(time);\n
});\n };\n\n
setInterval(sendStats, 500);\n }\n\n window.mraid = new
MRAID();\n })();\x3c/script></head><body></body></html>" :
"\x3c!-- DO NOT PUT A DOCTYPE HERE! iOS will go crazy --\x3e<html
lang=\"en\"><head><title>Unity Ads MRAID WebView</title><meta charset=\"utf-
8\"><meta name=\"viewport\" content=\"width=device-width,height=device-
height,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\"><meta
name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta name=\"apple-mobile-
web-app-status-bar-style\" content=\"black-translucent\"><meta name=\"format-
detection\" content=\"telephone=no\"><script>(function() {\n var MRAID =
function() {\n var state = 'loading';\n\n var
listeners = {\n ready: [],\n error: [],\n
stateChange: [],\n viewableChange: []\n };\n\n
var viewable = false;\n\n var orientationProperties = {\n
allowOrientationChange: true,\n forceOrientation: 'none'\n
};\n\n var trigger = function(event, parameters) {\n
if(!parameters) {\n parameters =
[];\n }\n if(event in listeners) {\n
for (var len = listeners[event].length, i = len - 1; i >= 0; i--) {\n
var listener = listeners[event][i];\n try {\n
listener.apply(window, parameters);\n } catch (e) {\n
console.log('Got error ', e);\n
window.parent.postMessage({\n type:
'diagnosticError',\n error: {\n
message: e.message\n }\n
}, '*');\n }\n }\n
}\n };\n\n var width = window.innerWidth;\n
var height = window.innerHeight;\n\n var playableConfiguration =
{};\n\n var setState = function(newState) {\n
state = newState;\n trigger('stateChange', [newState]);\n
};\n\n window.addEventListener('message', function(event) {\n
switch(event.data.type) {\n case 'viewable':\n
viewable = event.data.value;\n trigger('viewableChange',
[viewable]);\n break;\n\n case
'resize':\n window.innerWidth = width =
event.data.width;\n window.innerHeight = height =
event.data.height;\n trigger('sizeChange', [width,
height]);\n break;\n\n default:\n
break;\n }\n }, false);\n\n
window.addEventListener('resize', function(e) {\n width =
window.innerWidth;\n height = window.innerHeight;\n
trigger('sizeChange', [width, height]);\n });\n\n
window.addEventListener('DOMContentLoaded', function() {\n
window.parent.postMessage({\n type: 'loaded'\n
}, '*');\n setState('default');\n
trigger('ready');\n }, false);\n\n
this.addEventListener = function(event, listener) {\n if(event
in listeners) {\n listeners[event].push(listener);\n
}\n };\n\n this.createCalendarEvent = function() {\n
trigger('error', ['not implemented',
'createCalendarEvent']);\n };\n\n this.close =
function() {\n setState('hidden');\n
window.parent.postMessage({\n type: 'close'\n
}, '*');\n };\n\n this.expand = function() {\n
trigger('error', ['not implemented', 'expand']);\n };\n\n
this.getCurrentPosition = this.getDefaultPosition = function() {\n
return {\n x: 0,\n y: 0,\n
width: width,\n height: height\n };\n
};\n\n this.getExpandProperties = function() {\n
trigger('error', ['not implemented',
'getExpandProperties']);\n };\n\n this.getMaxSize =
this.getScreenSize = function() {\n return {\n
width: width,\n height: height\n };\n
};\n\n this.getOrientationProperties = function() {\n
return orientationProperties;\n };\n\n
this.getPlacementType = function() {\n return 'interstitial';\n
};\n\n this.getResizeProperties = function() {\n
trigger('error', ['not implemented',
'getResizeProperties']);\n };\n\n this.getState =
function() {\n return state;\n };\n\n
this.getVersion = function() {\n return
'2.0';\n };\n\n this.isViewable = function() {\n
return viewable;\n };\n\n this.open = function(url)
{\n window.parent.postMessage({\n type:
'open',\n url: url\n }, '*');\n
};\n\n this.playVideo = function() {\n
trigger('error', ['not implemented', 'playVideo']);\n };\n\n
this.removeEventListener = function(event, listener) {\n
if(event in listeners) {\n var index =
listeners[event].indexOf(listener);\n if(index !== -1) {\n
listeners[event].splice(index,
1);\n }\n }\n };\n\n
this.resize = function() {\n trigger('error', ['not
implemented', 'resize']);\n };\n\n
this.setExpandProperties = function() {\n trigger('error', ['not
implemented', 'setExpandProperties']);\n };\n\n
this.setOrientationProperties = function(properties) {\n
orientationProperties = properties;\n
window.parent.postMessage({\n type: 'orientation',\n
properties: properties\n }, '*');\n };\n\n
this.setResizeProperties = function() {\n trigger('error', ['not
implemented', 'setResizeProperties']);\n };\n\n
this.storePicture = function() {\n trigger('error', ['not
implemented', 'storePicture']);\n };\n\n
this.useCustomClose = function() {\n trigger('error', ['not
implemented', 'useCustomClose']);\n };\n\n
this.sendAnalyticsEvent = function(event, eventData) {\n
window.parent.postMessage({\n type: 'analyticsEvent',\n
event: event,\n eventData: eventData\n },
'*');\n };\n\n this.setCustomMraidState =
function(state) {\n window.parent.postMessage({\n
type: 'customMraidState',\n state: state\n
}, '*');\n };\n\n this.getConfiguration = function()
{\n return playableConfiguration;\n };\n\n
this.supports = function() {\n return
false;\n };\n };\n window.mraid = new
MRAID();\n })();\x3c/script><script id=\"debug-js-
console\">\x3c/script></head><body></body></html>").then(function(d) {
a._core.Sdk.logDebug("setting iframe srcdoc (" + d.length + ")");
m.setFrameSetStartTimestamp(a._placement.getId());
a._core.Sdk.logDebug("Unity Ads placement " + a._placement.getId() + " set
iframe.src started " + m.getFrameSetStartTimestamp(a._placement.getId()));
c.srcdoc = d;
O.isSonicPlayable(a._creativeId) && c.setAttribute("sandbox", "allow-scripts
allow-same-origin");
}).catch(function(c) {
a._core.Sdk.logError("failed to create mraid: " + c.message);
ca.trigger("create_mraid_error", {message:c.message},
a._campaign.getSession());
});
};
qc.prototype.onLoadedEvent = function() {
this._domContentLoaded = !0;
this.onLoaded.trigger();
var a = (Date.now() - m.getFrameSetStartTimestamp(this._placement.getId())) /
1000;
this._core.Sdk.logDebug("Unity Ads placement " + this._placement.getId() + "
iframe load duration " + a + " s");
this.isKPIDataValid({frameLoadDuration:a}, "mraid_playable_loading_time") &&
this._handlers.forEach(function(c) {
return c.onPlayableAnalyticsEvent(a, 0, 0, "playable_loading_time", {});
});
this._playableStartTimestamp = Date.now();
this.sendMraidAnalyticsEvent("playable_start");
};
qc.prototype.onOpen = function(a) {
this._callButtonEnabled && this._handlers.forEach(function(c) {
return c.onMraidClick(a);
});
};
qc.prototype.sendCustomImpression = function() {
O.isLoopMeSeat(this._campaign.getSeatId()) &&
this._handlers.forEach(function(a) {
return a.onCustomImpressionEvent();
});
};
h.inherits(hc, Na);
hc.setForcedExtendedMRAID = function(a) {
hc._forcedExtendedMRAID = a;
};
hc.setForcedARMRAID = function(a) {
hc._forcedARMRAID = a;
};
hc.prototype.createParameters = function(a) {
var c = a.campaign.getResourceUrl(), d = this.showGDPRBanner(a);
a.gameSessionId = a.gameSessionId || 0;
c = c && c.getOriginalUrl().match(/playables\/production\/unity/) ||
hc._forcedExtendedMRAID ? new jc(a.platform, a.core, a.deviceInfo, a.placement,
a.campaign, a.deviceInfo.getLanguage(), a.privacy, d, a.coreConfig.getAbGroup(),
a.gameSessionId) : new qc(a.platform, a.core, a.deviceInfo, a.placement,
a.campaign, a.privacy, d, a.coreConfig.getAbGroup(), a.gameSessionId);
return Object.assign({}, a, {mraid:c});
};
hc._forcedExtendedMRAID = !1;
hc._forcedARMRAID = !1;
h.inherits(Pg, re);
h.inherits(Cd, nd);
Cd.prototype.onEndScreenDownload = function(a) {
this._storeHandler.onDownload(a);
};
Cd.prototype.onEndScreenClose = function() {
this._adUnit.hide();
};
var Cc;
(function(a) {
a.START = "start";
a.CLICK = "click";
a.ENDCARD_CLICK = "videoEndCardClick";
a.FIRST_QUARTILE = "firstQuartile";
a.MIDPOINT = "midpoint";
a.THIRD_QUARTILE = "thirdQuartile";
a.ERROR = "error";
a.STALLED = "stalled";
a.LOADED_IMPRESSION = "loaded";
a.SHOW = "show";
a.COMPLETE = "complete";
a.SKIP = "skip";
})(Cc || (Cc = {}));
h.inherits(pc, Yb);
pc.prototype.parse = function(a, c) {
var d = a.getJsonContent();
switch("undefined" !== typeof d.store ? d.store : "") {
case "apple":
var e = xc.APPLE;
break;
case "google":
e = xc.GOOGLE;
break;
case "xiaomi":
e = xc.XIAOMI;
break;
case "standalone_android":
e = xc.STANDALONE_ANDROID;
break;
default:
throw Error('Unknown store value "' + d.store + '"');
}
var f = {id:d.id, willExpireAt:void 0, contentType:pc.ContentType, adType:void
0, correlationId:void 0, creativeId:a.getCreativeId() || void 0,
seatId:a.getSeatId() || void 0, meta:d.meta, session:c, mediaId:a.getMediaId(),
trackingUrls:a.getTrackingUrls() || {}, backupCampaign:!1};
if (d && d.mraidUrl) {
c = Object.assign({}, f,
{useWebViewUserAgentForTracking:a.getUseWebViewUserAgentForTracking(),
resourceAsset:d.mraidUrl ? new te(this.validateAndEncodeUrl(d.mraidUrl, c), c,
d.creativeId) : void 0, resource:void 0, dynamicMarkup:d.dynamicMarkup,
clickAttributionUrl:d.clickAttributionUrl ?
this.validateAndEncodeUrl(d.clickAttributionUrl, c) : void 0,
clickAttributionUrlFollowsRedirects:d.clickAttributionUrlFollowsRedirects,
clickUrl:d.clickUrl ? this.validateAndEncodeUrl(d.clickUrl, c) : void 0,
videoEventUrls:d.videoEventUrls ?
this.validateAndEncodeVideoEventUrls(d.videoEventUrls, c) : void 0,
gameName:d.gameName, gameIcon:d.gameIcon ? new
Ab(this.validateAndEncodeUrl(d.gameIcon, c), c) : void 0, rating:d.rating,
ratingCount:d.ratingCount, landscapeImage:d.endScreenLandscape ? new
Ab(this.validateAndEncodeUrl(d.endScreenLandscape, c), c) : void 0,
portraitImage:d.endScreenPortrait ? new
Ab(this.validateAndEncodeUrl(d.endScreenPortrait, c), c) : void 0,
bypassAppSheet:d.bypassAppSheet,
store:e, appStoreId:d.appStoreId, playableConfiguration:void 0});
c.contentType = pc.ContentTypeMRAID;
var g = new sf(c);
if (O.isPlayableConfigurationEnabled(d.mraidUrl)) {
var k = d.mraidUrl.replace(/index\.html/, "configuration.json");
this._requestManager.get(k).then(function(a) {
try {
var c = JSON.parse(a.response);
g.setPlayableConfiguration(c);
} catch (r) {
F.trigger("playable_configuration_invalid_json",
{playableConfigurationUrl:k});
}
}).catch(function() {
});
}
return Promise.resolve(g);
}
a = Object.assign({}, f, {appStoreId:d.appStoreId, gameId:d.gameId,
gameName:d.gameName, gameIcon:new Ab(this.validateAndEncodeUrl(d.gameIcon, c), c),
rating:d.rating, ratingCount:d.ratingCount, landscapeImage:d.endScreenLandscape ?
new Ab(this.validateAndEncodeUrl(d.endScreenLandscape, c), c) : void 0,
portraitImage:d.endScreenPortrait ? new
Ab(this.validateAndEncodeUrl(d.endScreenPortrait, c), c) : void 0,
squareImage:d.endScreen ? new Ab(this.validateAndEncodeUrl(d.endScreen, c), c) :
void 0,
clickAttributionUrl:d.clickAttributionUrl ?
this.validateAndEncodeUrl(d.clickAttributionUrl, c) : void 0,
clickAttributionUrlFollowsRedirects:d.clickAttributionUrlFollowsRedirects,
clickUrl:this.validateAndEncodeUrl(d.clickUrl, c),
videoEventUrls:this.validateAndEncodeVideoEventUrls(d.videoEventUrls, c),
bypassAppSheet:d.bypassAppSheet, store:e, adUnitStyle:d.adUnitStyle ?
this.parseAdUnitStyle(d.adUnitStyle, c) : void 0});
d.trailerDownloadable && d.trailerDownloadableSize && d.trailerStreaming &&
(a.video = new pa(this.validateAndEncodeUrl(d.trailerDownloadable, c), c,
d.trailerDownloadableSize, d.creativeId), a.streamingVideo = new
pa(this.validateAndEncodeUrl(d.trailerStreaming, c), c, void 0, d.creativeId));
d.trailerPortraitDownloadable && d.trailerPortraitDownloadableSize &&
d.trailerPortraitStreaming && (a.videoPortrait = new
pa(this.validateAndEncodeUrl(d.trailerPortraitDownloadable, c), c,
d.trailerPortraitDownloadableSize, d.portraitCreativeId), a.streamingPortraitVideo
= new pa(this.validateAndEncodeUrl(d.trailerPortraitStreaming, c), c, void 0,
d.portraitCreativeId));
d.appDownloadUrl && (a.appDownloadUrl = d.appDownloadUrl);
return Promise.resolve(new D(a));
};
pc.prototype.validateAndEncodeVideoEventUrls = function(a, c) {
if (a && null !== a) {
for (var d in a) {
a.hasOwnProperty(d) && (a[d] = this.validateAndEncodeUrl(a[d], c));
}
}
return a;
};
pc.prototype.parseAdUnitStyle = function(a) {
try {
var c = new sc(a);
} catch (d) {
}
return c;
};
pc.ContentType = "comet/campaign";
pc.ContentTypeVideo = "comet/video";
pc.ContentTypeMRAID = "comet/mraid-url";
h.inherits(qf, Cd);
qf.prototype.onKeyEvent = function(a) {
4 === a && this._adUnit.isShowing() && !this._adUnit.canShowVideo() &&
this._adUnit.hide();
};
qf.prototype.onEndScreenDownload = function(a) {
Cd.prototype.onEndScreenDownload.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.CLICK);
};
h.inherits(ic, M);
ic.prototype.hide = function() {
if (this._endScreen) {
this._endScreen.hide();
var a = this._endScreen.container();
a && a.parentElement && a.parentElement.removeChild(a);
}
this._privacy && (this._privacy.hide(), (a = this._privacy.container()) &&
a.parentElement && a.parentElement.removeChild(a));
return M.prototype.hide.call(this);
};
ic.prototype.description = function() {
return "performance";
};
ic.prototype.getEndScreen = function() {
return this._endScreen;
};
ic.prototype.onVideoError = function() {
var a = this.getEndScreen();
a && a.show();
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._performanceCampaign
, Cc.ERROR);
};
ic.prototype.unsetReferences = function() {
M.prototype.unsetReferences.call(this);
delete this._endScreen;
delete this._privacy;
};
h.inherits(jb, nd);
jb.prototype.onOverlaySkip = function() {
this._ads.VideoPlayer.pause();
this._adUnit.setVideoState(V.SKIPPED);
this._adUnit.setFinishState(na.SKIPPED);
this._operativeEventManager.sendSkip(this.getOperativeSkipEventParams());
this._adUnit.getContainer().reconfigure(0);
var a = this._adUnit.getOverlay();
a && a.hide();
this._adUnit.onFinish.trigger();
};
jb.prototype.onOverlayMute = function(a) {
this._ads.VideoPlayer.setVolume(new sb(a ? 0 : 1));
};
jb.prototype.onOverlayCallButton = function() {
};
jb.prototype.onOverlayPauseForTesting = function() {
};
jb.prototype.onOverlayClose = function() {
this._ads.VideoPlayer.pause();
this._adUnit.setActive(!1);
this._adUnit.setVideoState(V.SKIPPED);
this._adUnit.setFinishState(na.SKIPPED);
this._operativeEventManager.sendSkip(this.getOperativeSkipEventParams());
this._adUnit.onFinish.trigger();
this._adUnit.hide();
};
jb.prototype.onKeyEvent = function(a) {
if (4 === a && this.canSkipVideo()) {
if (this._placement.skipEndCardOnClose()) {
this.onOverlayClose();
} else {
this.onOverlaySkip(this._adUnit.getVideo().getPosition());
}
}
};
jb.prototype.canSkipVideo = function() {
if (!this._placement.allowSkip() || !this._adUnit.isShowing() || !
this._adUnit.canPlayVideo()) {
return !1;
}
var a = this._adUnit.getVideo().getPosition(), c = 1000 *
this._placement.allowSkipInSeconds();
return a >= c;
};
jb.prototype.getVideoOrientation = function() {
if (this._adUnit instanceof ic) {
return this._adUnit.getVideoOrientation();
}
};
jb.prototype.getOperativeSkipEventParams = function() {
return {placement:this._placement, videoOrientation:this.getVideoOrientation(),
adUnitStyle:this._adUnitStyle, asset:this._adUnit.getVideo(),
videoProgress:this._adUnit.getVideo().getPosition()};
};
h.inherits(gc, jb);
gc.prototype.onOverlayDownload = function(a) {
this.setCallButtonEnabled(!1);
if (!a.skipEnabled) {
var c = this.getOperativeEventParams(a);
this._operativeEventManager.sendThirdQuartile(c);
this._operativeEventManager.sendView(c);
}
this._storeHandler.onDownload(a);
if (a.skipEnabled) {
this.onOverlaySkip(a.videoProgress);
}
this.setCallButtonEnabled(!0);
};
gc.prototype.setCallButtonEnabled = function(a) {
this._overlay && this._overlay.setCallButtonEnabled(a);
};
gc.prototype.getOperativeEventParams = function(a) {
return {placement:this._placement, videoOrientation:this.getVideoOrientation(),
adUnitStyle:a.adUnitStyle, asset:this._adUnit.getVideo()};
};
h.inherits(pf, gc);
pf.prototype.onOverlayDownload = function(a) {
gc.prototype.onOverlayDownload.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.CLICK);
};
pf.prototype.onOverlaySkip = function(a) {
this._placement.skipEndCardOnClose() ? gc.prototype.onOverlayClose.call(this) :
(gc.prototype.onOverlaySkip.call(this, a), (a =
this._performanceAdUnit.getEndScreen()) && a.show(),
this._performanceAdUnit.onFinish.trigger());
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.SKIP);
};
h.inherits(N, Zc);
N.prototype.onProgress = function(a) {
var c = this, d = this._adUnit.getOverlay();
0 < a && this._adUnit.getVideoState() === V.READY &&
(this._adUnit.setVideoState(V.PLAYING), d && d.setSpinnerEnabled(!1));
0 < a && !this._video.hasStarted() && (this._video.setStarted(!0),
this.handleStartEvent(a));
if (0 <= a) {
var e = this._video.getPosition();
if (a > e + 1000000) {
this._core.Sdk.logError("Unity Ads video player ignoring too large progress
from " + e + " to " + a);
a = new dc(Error("Too large progress in video player"), {position:a,
lastPosition:e, duration:this._video.getDuration()});
ca.trigger("video_player_too_large_progress", a,
this._campaign.getSession());
return;
}
if (a === e) {
var f = this._video.getPositionRepeats(), g = 5000 /
this._adUnit.getProgressInterval();
if (f > g) {
this._core.Sdk.logError("Unity Ads video player stuck to " + a + "ms
position");
var k = {repeats:f, position:a, duration:this._video.getDuration(),
url:this._video.getUrl(), originalUrl:this._video.getOriginalUrl(),
cached:this._video.isCached(), cacheMode:this._adsConfig.getCacheMode(),
lowMemory:this._adUnit.isLowMemory()}, n = this._video.getFileId();
n ? this._core.Cache.getFileInfo(n).then(function(a) {
k.fileInfo = a;
return a.found ? Zd.getVideoInfo(c._platform, c._core.Cache,
n).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var d = c.next().value;
c = c.next().value;
k.videoInfo = {width:a, height:d, duration:c};
return k;
}) : k;
}).then(function(a) {
c.handleVideoError("video_player_stuck", a);
}).catch(function() {
c.handleVideoError("video_player_stuck", k);
}) : this.handleVideoError("video_player_stuck", k);
return;
}
this._video.setPositionRepeats(f + 1);
} else {
this._video.setPositionRepeats(0);
}
d && (0 < e && a > e && 100 > a - e ? d.setSpinnerEnabled(!0) :
d.setSpinnerEnabled(!1));
e = this._video.getQuartile();
this._video.setPosition(a);
0 === e && 1 === this._video.getQuartile() ? this.handleFirstQuartileEvent(a)
: 1 === e && 2 === this._video.getQuartile() ? this.handleMidPointEvent(a) : 2 ===
e && 3 === this._video.getQuartile() && this.handleThirdQuartileEvent(a);
}
d && d.setVideoProgress(a);
};
N.prototype.onCompleted = function(a) {
this._adUnit.setVideoState(V.COMPLETED);
this._adUnit.setFinishState(na.COMPLETED);
this.handleCompleteEvent(a);
this.afterVideoCompleted();
};
N.prototype.onPrepared = function(a, c) {
var d = this;
if (this._adUnit.getVideoState() !== V.ERRORED && this._adUnit.getVideoState()
=== V.PREPARING) {
this._adUnit.setVideoState(V.READY);
if (c > Zd._maxVideoDuration) {
var e = this._video.getOriginalUrl();
a = new dc(Error("Too long video"), {duration:c,
campaignId:this._campaign.getId(), url:a, originalUrl:e,
isCached:Oa.isCached(this._campaign)});
Te.report(this._campaign.getCreativeId(), this._campaign.getSeatId(),
xe.VIDEO_TOO_LONG, {videoLength:c});
return this.handleVideoError("video_too_long", a);
}
var f = this._adUnit.getOverlay();
this._video.setDuration(c);
f && (f.setVideoDuration(c), 0 < this._video.getPosition() &&
f.setVideoProgress(this._video.getPosition()), f.setMuteEnabled(!0),
f.setVideoDurationEnabled(!0));
E.get("debugOverlayEnabled") && f && f.setDebugMessageVisible(!0);
this._ads.VideoPlayer.setVolume(new sb(f && f.isMuted() ? 0 :
1)).then(function() {
0 < d._video.getPosition() ?
d._ads.VideoPlayer.seekTo(d._video.getPosition()).then(function() {
d._adUnit.getContainer().isPaused() || !f || f.isPrivacyShowing() ||
d._ads.VideoPlayer.play();
}) : d._adUnit.getContainer().isPaused() || !f || f.isPrivacyShowing() ||
d._ads.VideoPlayer.play();
});
}
};
N.prototype.onPrepareTimeout = function(a) {
this._core.Sdk.logError("Unity Ads video player prepare timeout " + a);
this.handleVideoError("video_player_prepare_timeout", {url:a,
position:this._video.getPosition()});
};
N.prototype.onPlay = function() {

this._ads.VideoPlayer.setProgressEventInterval(this._adUnit.getProgressInterval());
};
N.prototype.onPause = function() {
};
N.prototype.onSeek = function() {
};
N.prototype.onStop = function() {
};
N.prototype.handleStartEvent = function() {
var a = this;

this._operativeEventManager.sendStart(this.getOperativeEventParams()).then(function
() {
a._adUnit.onStartProcessed.trigger();
});
this._ads.Listener.sendStartEvent(this._placement.getId());
};
N.prototype.handleFirstQuartileEvent = function() {
this._operativeEventManager.sendFirstQuartile(this.getOperativeEventParams());
};
N.prototype.handleMidPointEvent = function() {
this._operativeEventManager.sendMidpoint(this.getOperativeEventParams());
};
N.prototype.handleThirdQuartileEvent = function() {
this._operativeEventManager.sendThirdQuartile(this.getOperativeEventParams());
};
N.prototype.handleCompleteEvent = function() {
this._operativeEventManager.sendView(this.getOperativeEventParams());
};
N.prototype.getOperativeEventParams = function() {
return {placement:this._placement, videoOrientation:this.getVideoOrientation(),
adUnitStyle:this._adUnitStyle, asset:this._video};
};
h.inherits(Yc, N);
Yc.prototype.onCompleted = function(a) {
N.prototype.onCompleted.call(this, a);
(a = this._performanceAdUnit.getEndScreen()) && a.show();
};
Yc.prototype.onPrepared = function(a, c, d, e) {
N.prototype.onPrepared.call(this, a, c, d, e);
if (a = this._adUnit.getOverlay()) {
a.setCallButtonVisible(!0), E.get("debugOverlayEnabled") &&
a.setDebugMessage("Performance Ad");
}
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.LOADED_IMPRESSION);
};
Yc.prototype.getVideoOrientation = function() {
return this._performanceAdUnit.getVideoOrientation();
};
Yc.prototype.handleStartEvent = function(a) {
N.prototype.handleStartEvent.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.START);
};
Yc.prototype.handleFirstQuartileEvent = function(a) {
N.prototype.handleFirstQuartileEvent.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.FIRST_QUARTILE);
};
Yc.prototype.handleMidPointEvent = function(a) {
N.prototype.handleMidPointEvent.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.MIDPOINT);
};
Yc.prototype.handleThirdQuartileEvent = function(a) {
N.prototype.handleThirdQuartileEvent.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.THIRD_QUARTILE);
};
Yc.prototype.handleCompleteEvent = function(a) {
N.prototype.handleCompleteEvent.call(this, a);
this._thirdPartyEventManager.sendPerformanceTrackingEvent(this._campaign,
Cc.COMPLETE);
};
Va.prototype.onDownload = function(a) {
this._ads.Listener.sendClickEvent(this._placement.getId());
a = this.getOperativeEventParams(a);
this._operativeEventManager.sendClick(a);
if (this._campaign instanceof L) {
a = this._campaign.getTrackingUrlsForEvent("click");
a = h.makeIterator(a);
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value, this._thirdPartyEventManager.sendWithGet("xpromo click",
this._campaign.getSession().getId(), c);
}
}
};
Va.prototype.handleClickAttribution = function(a) {
a.clickAttributionUrlFollowsRedirects && a.clickAttributionUrl ?
this.handleClickAttributionWithRedirects(a.clickAttributionUrl) :
a.clickAttributionUrl &&
this.handleClickAttributionWithoutRedirect(a.clickAttributionUrl);
};
Va.prototype.handleClickAttributionWithoutRedirect = function(a) {
var c = this;
this._thirdPartyEventManager.clickAttributionEvent(a, !1).catch(function(d) {
c.triggerDiagnosticsError(d, a);
});
};
Va.prototype.handleClickAttributionWithRedirects = function(a) {
var c = this;
this._thirdPartyEventManager.clickAttributionEvent(a, !0).then(function(d) {
var e = w.getHeader(d.headers, "location");
e ? c.openURL(e) : F.trigger("click_attribution_misconfigured", {url:a,
followsRedirects:!0, response:d});
}).catch(function(d) {
c.triggerDiagnosticsError(d, a);
});
};
Va.prototype.triggerDiagnosticsError = function(a, c) {
var d = this._campaign.getSession();
a instanceof ed && (a = new dc(Error(a.message), {request:a.nativeRequest,
auctionId:d.getId(), url:c, response:a.nativeResponse}));
ca.trigger("click_attribution_failed", a, d);
};
Va.prototype.getVideo = function() {
if (this._adUnit instanceof ic) {
return this._adUnit.getVideo();
}
};
Va.prototype.getVideoOrientation = function() {
return this._adUnit.getVideoOrientation();
};
Va.prototype.getOperativeEventParams = function(a) {
return {placement:this._placement, videoOrientation:this.getVideoOrientation(),
adUnitStyle:a.adUnitStyle, asset:this.getVideo()};
};
h.inherits(ne, Va);
ne.prototype.onDownload = function(a) {
Va.prototype.onDownload.call(this, a);
var c = We.isAppSheetBroken(this._deviceInfo.getOsVersion(),
this._deviceInfo.getModel());
a.clickAttributionUrl ? (this.handleClickAttribution(a),
a.clickAttributionUrlFollowsRedirects || this.openAppleAppStore(a, c)) :
this.openAppleAppStore(a, c);
};
ne.prototype.openAppleAppStore = function(a, c) {
var d = this, e = this.getAppleAppStoreUrl(a);
e ? c || a.bypassAppSheet ? this.openURL(e) :
this._store.iOS.AppSheet.canOpen().then(function(c) {
if (c) {
if (a.appStoreId) {
var f = {id:parseInt(a.appStoreId, 10)};
d._store.iOS.AppSheet.present(f).then(function() {
d._store.iOS.AppSheet.destroy(f);
}).catch(function(a) {
"APPSHEET_NOT_FOUND" === h.makeIterator(a).next().value &&
d.openURL(e);
});
} else {
F.trigger("no_appstore_id", {message:"trying to open ios appstore without
appstore id"});
}
} else {
d.openURL(e);
}
}) : F.trigger("no_appstore_url", {message:"cannot generate appstore url"});
};
ne.prototype.getAppleAppStoreUrl = function(a) {
if (a.appStoreId) {
return "https://itunes.apple.com/app/id" + a.appStoreId;
}
};
ne.prototype.openURL = function(a) {
this._core.iOS.UrlScheme.open(a);
};
h.inherits(me, Va);
me.prototype.onDownload = function(a) {
Va.prototype.onDownload.call(this, a);
a.clickAttributionUrl ? (this.handleClickAttribution(a),
a.clickAttributionUrlFollowsRedirects || this.openGoogleAppStore(a)) :
this.openGoogleAppStore(a);
};
me.prototype.openGoogleAppStore = function(a) {
var c = this._clientInfo.getApplicationName();
(a = this.getGoogleAppStoreUrl(a, c)) ?
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a}) :
F.trigger("no_appstore_url", {message:"cannot generate appstore url"});
};
me.prototype.getGoogleAppStoreUrl = function(a) {
if (a.appStoreId) {
return "market://details?id=" + a.appStoreId;
}
};
me.prototype.openURL = function(a) {
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
h.inherits(Me, Va);
Me.prototype.onDownload = function(a) {
Va.prototype.onDownload.call(this, a);
a.clickAttributionUrl &&
this.handleClickAttributionWithoutRedirect(a.clickAttributionUrl);
a.appDownloadUrl ? this.handleAppDownloadUrl(a.appDownloadUrl) :
F.trigger("standalone_android_misconfigured", {message:"missing appDownloadUrl"});
};
Me.prototype.handleAppDownloadUrl = function(a) {
a = decodeURIComponent(a);
this.openURL(a);
};
Me.prototype.openURL = function(a) {
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
h.inherits(le, Va);
le.prototype.onDownload = function(a) {
Va.prototype.onDownload.call(this, a);
a.clickAttributionUrl ? (this.handleClickAttribution(a),
a.clickAttributionUrlFollowsRedirects || this.openXiaomiAppStore(a)) :
this.openXiaomiAppStore(a);
};
le.prototype.openXiaomiAppStore = function(a) {
var c = this._clientInfo.getApplicationName();
(a = this.getXiaomiAppStoreUrl(a, c)) ? this.openURL(a) :
F.trigger("no_appstore_url", {message:"cannot generate appstore url"});
};
le.prototype.getXiaomiAppStoreUrl = function(a, c) {
if (a.appStoreId) {
return "migamecenter://details?pkgname=" + a.appStoreId +
"&channel=unityAds&from=" + c + "&trace=" + this._coreConfig.getToken();
}
};
le.prototype.openURL = function(a) {
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
Le.getNewStoreHandler = function(a) {
if (this.isAPKCampaign(a)) {
return new Me(a);
}
if (a.platform === p.IOS) {
return new ne(a);
}
if (this.isXiaomi(a)) {
return new le(a);
}
if (a.platform === p.ANDROID) {
return new me(a);
}
throw Error("Invalid store for creating new store handler");
};
Le.isXiaomi = function(a) {
return a.campaign instanceof D && a.campaign.getStore() === xc.XIAOMI;
};
Le.isAPKCampaign = function(a) {
return a.adUnit instanceof ic && a.campaign instanceof D &&
a.campaign.getStore() === xc.STANDALONE_ANDROID;
};
var ze;
(function(a) {
a[a.OPENED = 0] = "OPENED";
a[a.CLOSED = 1] = "CLOSED";
a[a.ERRORED = 2] = "ERRORED";
})(ze || (ze = {}));
h.inherits(Gd, ic);
Gd.prototype.onAppSheetOpened = function() {
this._appSheetState = ze.OPENED;
this.canShowVideo() && (this.setVideoState(V.PAUSED),
this._ads.VideoPlayer.pause());
};
Gd.prototype.onAppSheetClosed = function() {
this._appSheetState = ze.CLOSED;
this.canResumeVideo() && (this.setVideoState(V.PLAYING),
this._ads.VideoPlayer.play());
};
Gd.prototype.onAppSheetErrored = function() {
this._appSheetState = ze.ERRORED;
this.canResumeVideo() && (this.setVideoState(V.PLAYING),
this._ads.VideoPlayer.play());
};
Gd.prototype.canResumeVideo = function() {
return this.isShowing() && this.canShowVideo() && this.canPlayVideo();
};
Gd.prototype.isAppSheetOpen = function() {
return this._appSheetState === ze.OPENED;
};
Gd.prototype.hide = function() {
this._store.iOS.AppSheet.onOpen.unsubscribe(this._appSheetOpenObserver);
this._store.iOS.AppSheet.onClose.unsubscribe(this._appSheetCloseObserver);
this._store.iOS.AppSheet.onError.unsubscribe(this._appSheetErrorObserver);
return ic.prototype.hide.call(this);
};
h.inherits(Xc, Mb);
Xc.prototype.canCreateAdUnit = function(a) {
return a === Xc.ContentType || a === Xc.ContentTypeVideo || a ===
Xc.ContentTypeMRAID;
};
Xc.prototype.createAdUnit = function(a) {
var c = a.platform === p.IOS ? new Gd(a) : new ic(a), d =
Le.getNewStoreHandler({platform:a.platform, core:a.core, ads:a.ads, store:a.store,
thirdPartyEventManager:a.thirdPartyEventManager,
operativeEventManager:a.operativeEventManager, deviceInfo:a.deviceInfo,
clientInfo:a.clientInfo, placement:a.placement, adUnit:c, campaign:a.campaign,
coreConfig:a.coreConfig});
var e = new pf(c, a, d);
a.overlay.addEventHandler(e);
var f = new qf(c, a, d);
a.endScreen.addEventHandler(f);
d = this.getVideoEventHandlerParams(c, a.video, a.adUnitStyle, a);
this.prepareVideoPlayer(Yc, d);
if (a.platform === p.ANDROID) {
var g = a.ads.Android.AdUnit.onKeyDown.subscribe(function(c) {
f.onKeyEvent(c);
if (O.isCloseIconSkipEnabled(a.clientInfo.getGameId())) {
e.onKeyEvent(c);
}
});
c.onClose.subscribe(function() {
g && a.ads.Android.AdUnit.onKeyDown.unsubscribe(g);
});
}
return c;
};
Xc.ContentType = "comet/campaign";
Xc.ContentTypeVideo = "comet/video";
Xc.ContentTypeMRAID = "comet/mraid-url";
h.inherits(wb, I);
wb.prototype.render = function() {
I.prototype.render.call(this);
this._isSwipeToCloseEnabled && (this._container.querySelector(".btn-close-
region").style.display = "none");
var a = this._adUnitStyle && this._adUnitStyle.getCTAButtonColor() ?
this._adUnitStyle.getCTAButtonColor() : void 0;
a && (this._container.querySelector(".download-container").style.background =
a);
a = this.getEndscreenAlt();
"string" === typeof a && (this._container.classList.add(a),
document.documentElement.classList.add(a));
this._showGDPRBanner && this._container.classList.add("show-gdpr-banner");
this._platform === p.ANDROID && 19 >= this._apiLevel &&
this._container.classList.add("old-androids");
};
wb.prototype.show = function() {
var a = this;
I.prototype.show.call(this);
this._container.querySelector(".name-container").innerHTML = this._gameName + "
";
Z.getAutoClose() && setTimeout(function() {
a._handlers.forEach(function(a) {
return a.onEndScreenClose();
});
}, Z.getAutoCloseDelay());
this._container.classList.add("on-show");
};
wb.prototype.hide = function() {
I.prototype.hide.call(this);
this._showGDPRBanner && !this._gdprPopupClicked &&
this._handlers.forEach(function(a) {
return a.onGDPRPopupSkipped();
});
this._privacy && this._privacy.hide();
};
wb.prototype.onPrivacyClose = function() {
this._privacy && this._privacy.hide();
};
wb.prototype.getEndscreenAlt = function() {
};
wb.prototype.getTemplate = function() {
return '<div class="btn-close-region<%= data.endscreenAlt ? \' \' +
data.endscreenAlt : \'\' %>"><span class="icon-close"></span></div><div
class="campaign-container<%= data.endscreenAlt ? \' \' + data.endscreenAlt : \'\'
%>"><div class="game-background-container"><div class="game-background game-
background-landscape" style="background-image: url(\'<%= data.endScreenLandscape &&
data.endScreenLandscape.replace("file://", "") %>\')"></div><div class="game-
background game-background-portrait" style="background-image: url(\'<%=
data.endScreenPortrait && data.endScreenPortrait.replace("file://", "")
%>\')"></div><div class="gdpr-pop-up"><div class="icon-gdpr"></div><div
class="gdpr-text">Unity is personalizing your ads experience in this application.
<span class="gdpr-link">Tap here</span> to learn more about Unity and your privacy
choices.</div></div></div><div class="end-screen-info-background"><div class="end-
screen-info"><div class="column-container"><div class="game-icon"
style="background-image: url(\'<%= data.gameIcon &&
data.gameIcon.replace("file://", "") %>\')"></div><div class="name-container"> <%=
data.gameName %> </div><div class="store-container"> <% if(!!data.rating) { %>
<span class="game-rating"><span class="game-rating-stars-top" style="width: <%=
data.rating %>%"><span class="icon-star first-icon-star"></span> <span class="icon-
star"></span> <span class="icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> </span><span class="game-rating-stars-bottom"><span
class="icon-star first-icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> <span class="icon-star"></span> <span class="icon-
star"></span> </span></span> <% } %> <% if (!!data.ratingCount &&
data.ratingCount !== "0") { %> <span class="game-rating-count">(<span class="game-
rating-count-number"><%= data.ratingCount %></span>) </span> <% } %> </div><div
class="download-container"><span class="download-text"><%= data.t("Download For
Free") %></span></div></div></div><div class="bottom-container"><div
class="privacy-button"><span class="icon-gdpr"></span></div><div class="unityads-
logo"></div><div class="china-advertisement">\u5e7f\u544a</div></div></div></div>';
};
wb.prototype.onCloseEvent = function(a) {
a.preventDefault();
this._handlers.forEach(function(a) {
return a.onEndScreenClose();
});
};
wb.prototype.onPrivacyEvent = function(a) {
a.preventDefault();
this._showGDPRBanner && (this._gdprPopupClicked = !0,
this._container.classList.remove("show-gdpr-banner"));
this._privacy.show();
};
h.inherits(md, wb);
md.prototype.onDownloadEvent = function(a) {
var c = this;
a.preventDefault();
this._handlers.forEach(function(a) {
return
a.onEndScreenDownload({clickAttributionUrl:c._campaign.getClickAttributionUrl(),
clickAttributionUrlFollowsRedirects:c._campaign.getClickAttributionUrlFollowsRedire
cts(), bypassAppSheet:c._campaign.getBypassAppSheet(),
appStoreId:c._campaign.getAppStoreId(), store:c._campaign.getStore(),
appDownloadUrl:c._campaign.getAppDownloadUrl(), adUnitStyle:c._adUnitStyle});
});
};
md.prototype.render = function() {
wb.prototype.render.call(this);
document.documentElement.classList.add("performance-end-screen");
var a = this._container.querySelector(".china-advertisement");
"CN" === this._country && a && (a.style.display = "block");
};
md.prototype.getEndscreenAlt = function() {
if (this._campaign.getSquare()) {
return "square-end-screen";
}
};
md.prototype.getTemplate = function() {
return "square-end-screen" === this.getEndscreenAlt() ? '<div class="btn-close-
region<%= data.endscreenAlt ? \' \' + data.endscreenAlt : \'\' %>"><span
class="icon-close"></span></div><div class="campaign-container<%= data.endscreenAlt
? \' \' + data.endscreenAlt : \'\' %>"><div class="game-background game-background-
blurred" style="background-image: url(\'<%= data.endScreenSquare &&
data.endScreenSquare.replace("file://", "") %>\')"></div><div class="game-
background-container"><div class="game-image" style="background-image: url(\'<%=
data.endScreenSquare && data.endScreenSquare.replace("file://", "")
%>\')"></div><div class="gdpr-pop-up"><div class="icon-gdpr"></div><div
class="gdpr-text">Unity is personalizing your ads experience in this application.
<span class="gdpr-link">Tap here</span> to learn more about Unity and your privacy
choices.</div></div></div><div class="end-screen-info-background"><div class="end-
screen-info"><div class="column-container"><div class="game-icon"
style="background-image: url(\'<%= data.gameIcon &&
data.gameIcon.replace("file://", "") %>\')"></div><div class="name-container"> <%=
data.gameName %> </div><div class="store-container"> <% if(!!data.rating) { %>
<span class="game-rating"><span class="game-rating-stars-top" style="width: <%=
data.rating %>%"><span class="icon-star first-icon-star"></span> <span class="icon-
star"></span> <span class="icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> </span><span class="game-rating-stars-bottom"><span
class="icon-star first-icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> <span class="icon-star"></span> <span class="icon-
star"></span> </span></span> <% } %> <% if (!!data.ratingCount &&
data.ratingCount !== "0") { %> <span class="game-rating-count">(<span class="game-
rating-count-number"> <%= data.ratingCount %> </span>) </span> <% } %> </div><div
class="download-container"><span class="download-text"><%= data.t("Download For
Free") %></span></div></div></div><div class="bottom-container"><div
class="privacy-button"><span class="icon-gdpr"></span></div><div class="unityads-
logo"></div><div class="china-
advertisement">\u5e7f\u544a</div></div></div></div>' :
wb.prototype.getTemplate.call(this);
};
h.inherits(of, md);
of.prototype.show = function() {
var a = this;
md.prototype.show.call(this);
setTimeout(function() {
a._isCloseBlocked = !1;
}, 500);
};
of.prototype.onCloseEvent = function(a) {
this._isCloseBlocked || (a.preventDefault(), this._handlers.forEach(function(a)
{
return a.onEndScreenClose();
}));
};
h.inherits(bg, Na);
bg.prototype.createParameters = function(a) {
var c = a.placement.skipEndCardOnClose() || !1;
c = this.createOverlay(a, a.privacy, c);
var d = a.campaign.getAdUnitStyle() || sc.getDefaultAdUnitStyle(), e =
Object.assign({}, this.createEndScreenParameters(a.privacy,
a.campaign.getGameName(), a), {adUnitStyle:d, campaignId:a.campaign.getId(),
osVersion:a.deviceInfo.getOsVersion()});
e = O.isSkipUnderTimerExperimentEnabled(a.coreConfig, a.placement) ? new of(e,
a.campaign, a.coreConfig.getCountry()) : new md(e, a.campaign,
a.coreConfig.getCountry());
var f = this.getVideo(a.campaign, a.forceOrientation);
return Object.assign({}, a, {video:f, overlay:c, endScreen:e, adUnitStyle:d});
};
h.inherits(Og, re);
var Zb;
(function(a) {
a[a.PLAYING = 0] = "PLAYING";
a[a.PAUSED = 1] = "PAUSED";
a[a.COMPLETED = 2] = "COMPLETED";
a[a.STOPPED = 3] = "STOPPED";
})(Zb || (Zb = {}));
h.inherits(zb, I);
zb.prototype.render = function() {
I.prototype.render.call(this);
(this._iframe = this._container.querySelector("#moat-iframe")).srcdoc = "<!
doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><script>(function()
{\n var MoatMAPI = function() {\n var state =
'loading';\n\n var listeners = {\n stateChange:
[],\n exposureChange: [],\n
audioVolumeChange: []\n };\n\n var trigger =
function(event, parameters) {\n if(!parameters) {\n
parameters = [];\n }\n if(event in listeners)
{\n listeners[event].forEach(function(listener) {\n
listener.apply(window, parameters);\n });\n
}\n };\n\n var width = window.innerWidth;\n
var height = window.innerHeight;\n\n var setState =
function(newState) {\n state = newState;\n
trigger('stateChange', [newState]);\n };\n\n
window.addEventListener('message', function(event) {\n
switch(event.data.type) {\n case 'exposure':\n
trigger('exposureChange', [\n event.data.payload ?
100 : 0,\n {\n
inFocus: event.data.payload ? 1 : 0,\n
isAttached: 1,\n isHidden: 0,\n
opacity: 1,\n isCovered: 0\n
}\n ]);\n break;\n\n
case 'volume':\n trigger('audioVolumeChange',
[event.data.payload]);\n break;\n\n
case 'resize':\n width = event.data.width;\n
height = event.data.height;\n break;\n\n
default:\n break;\n }\n
}, false);\n\n window.addEventListener('DOMContentLoaded',
function() {\n window.parent.postMessage({\n
type: 'loaded'\n }, '*');\n
setState('default');\n trigger('ready');\n },
false);\n\n this.addEventListener = function(event, listener) {\n
if(event in listeners) {\n
listeners[event].push(listener);\n }\n };\n\n
this.removeEventListener = function(event, listener) {\n
if(event in listeners) {\n var index =
listeners[event].indexOf(listener);\n if(index !== -1) {\n
listeners[event].splice(index,
1);\n }\n }\n };\n\n
this.getScreenSize = function() {\n return {\n
width: width,\n height: height\n };\n
};\n\n this.getCurrentPosition = function() {\n
return {\n x: 0,\n y: 0,\n
width: width,\n height: height\n };\n
};\n\n this.getState = function() {\n return
state;\n };\n\n this.getVersion = function() {\n
return '3.0';\n };\n\n };\n window.MoatMAPI =
new MoatMAPI();\n })();\n\n var moat = undefined;\n
document.addEventListener('DOMContentLoaded', function() {\n
window.addEventListener('message', function(event) {\n if(event &&
event.data && event.data.type && event.data.data) {\n
switch(event.data.type) {\n case 'init':\n
var dummyElement = document.createElement('div');\n
document.body.appendChild(dummyElement);\n
window.MOATMAPI_ENV = event.data.data.moatData;\n moat =
initMoatTracking(dummyElement, event.data.data.ids,
event.data.data.duration, \"unityinappvideo254672075459\", event.data.data.url);\n
break;\n\n case 'videoEvent':\n
if(moat) {\n moat.dispatchEvent({\n
\"type\": event.data.data.type,\n \"adVolume\":
event.data.data.volume !== 0 ? 1 :
0,\n \"deviceVolume\": event.data.data.volume\n
});\n }\n break;\n\n
default:\n break;\n }\n
}\n }, false);\n\n });\x3c/script><script>/*Copyright (c) 2011-
2016 Moat Inc. All Rights Reserved.*/\n function initMoatTracking(c, d, e,
k, l) {\n var g = document.createElement(\"script\"), a = [];\n
d = {\n adData: {ids: d, duration: e, url: l}, dispatchEvent:
function(b) {\n this.sendEvent ? (a && (a.push(b), b = a, a = !
1), this.sendEvent(b)) : a.push(b)\n }\n };\n
e = \"_moatApi\" + Math.floor(1E8 * Math.random());\n var f, h;\n
try {\n f = c.ownerDocument, h = f.defaultView || f.parentWindow\n
} catch(b) {\n f = document, h = window\n }\n
h[e] = d;\n g.type = \"text/javascript\";\n g.onerror =
loadError;\n c && c.insertBefore(g, c.childNodes[0] || null);\n
g.src = \"https://z.moatads.com/\" + k + \"/moatvideo.js#\" + e;\n
return d\n }\n\n function loadError(e) {\n
window.parent.postMessage({\n type: 'MOATVideoError',\n
error: e.target.src + ' failed to download'\n },
'*');\n }\x3c/script></head><body></body></html>";
};
zb.prototype.play = function(a) {
if (this.getState() === Zb.STOPPED || this.getState() === Zb.PAUSED) {
this.setState(Zb.PLAYING), this.triggerVideoEvent("AdPlaying", a),
this.triggerViewabilityEvent("exposure", !0);
}
};
zb.prototype.pause = function(a) {
this.getState() === Zb.PLAYING && this._iframe.contentWindow &&
(this.setState(Zb.PAUSED), this.triggerVideoEvent("AdPaused", a),
this.triggerViewabilityEvent("exposure", !1));
};
zb.prototype.stop = function(a) {
if (this.getState() === Zb.PLAYING || this.getState() === Zb.PAUSED) {
this.setState(Zb.STOPPED), this.triggerVideoEvent("AdStopped", a);
}
};
zb.prototype.completed = function(a) {
this.getState() !== Zb.COMPLETED && (this.setState(Zb.COMPLETED),
this.triggerVideoEvent("AdVideoComplete", a));
};
zb.prototype.volumeChange = function(a) {
this.getState() !== Zb.COMPLETED && (this.triggerVideoEvent("AdVolumeChange",
a), this.triggerViewabilityEvent("volume", 100 * a));
};
zb.prototype.init = function(a, c, d, e, f) {
var g = this;
this._didInitMoat ? this._platform === p.ANDROID && this.play(f) :
(this._didInitMoat = !0, this._resizeDelayer = function(a) {
g._resizeTimeout = window.setTimeout(function() {
g._resizeHandler(a);
}, 200);
}, this._resizeHandler = function() {
g._iframe.contentWindow &&
g._iframe.contentWindow.postMessage({type:"resize", width:window.innerWidth,
height:window.innerHeight}, "*");
}, this._platform === p.IOS ? window.addEventListener("resize",
this._resizeDelayer, !1) : window.addEventListener("resize", this._resizeHandler, !
1), this._core.Sdk.logDebug("Calling MOAT init with: " + JSON.stringify(a) + "
duration: " + c + " url: " + d),
this._iframe.contentWindow.postMessage({type:"init", data:{ids:a, duration:c,
url:d, moatData:e}}, "*"), this._iframe.contentWindow.postMessage({type:"resize",
width:window.innerWidth, height:window.innerHeight}, "*"));
};
zb.prototype.addMessageListener = function() {
window.addEventListener("message", this._messageListener);
};
zb.prototype.removeMessageListener = function() {
window.removeEventListener("message", this._messageListener);
};
zb.prototype.triggerVideoEvent = function(a, c) {
this._core.Sdk.logDebug('Calling MOAT video event "' + a + '" with volume: ' +
c);
this._iframe.contentWindow &&
this._iframe.contentWindow.postMessage({type:"videoEvent", data:{type:a,
volume:c}}, "*");
};
zb.prototype.triggerViewabilityEvent = function(a, c) {
this._core.Sdk.logDebug('Calling MOAT viewability event "' + a + '" with
payload: ' + c);
this._iframe.contentWindow && this._iframe.contentWindow.postMessage({type:a,
payload:c}, "*");
};
zb.prototype.getState = function() {
return this._state;
};
zb.prototype.setState = function(a) {
this._state = a;
};
zb.prototype.onMessage = function(a) {
if (a && a.data && a.data.type) {
switch(a.data.type) {
case "MOATVideoError":
F.trigger("moat_video_error", a.data.error);
break;
case "loaded":
break;
default:
this._core.Sdk.logWarning("MOAT Unknown message type " + a.data.type);
}
}
};
yb.initMoat = function(a, c, d, e, f, g, k) {
this._moat = new zb(a, c);
this._moat.render();
this._moat.addMessageListener();
document.body.appendChild(this._moat.container());
d instanceof oa && (this._moatIds = {level1:d.getSeatId(),
level2:d.getBuyerId(), level3:d.getAdvertiserBundleId() ? d.getAdvertiserBundleId()
: d.getAdvertiserDomain(), level4:d.getCreativeId(), slicer1:e.getSdkVersionName(),
slicer2:e.getApplicationName(), slicer3:f.getName()}, this._moatData =
{SDK:"UnityAds", Version:"1.1", SDKVersion:e.getSdkVersionName(),
LimitAdTracking:g.getLimitAdTracking(), COPPA:k.isCoppaCompliant(),
bundle:e.getApplicationName()});
};
yb.getMoat = function() {
return this._moat;
};
yb.getMoatIds = function() {
return this._moatIds;
};
yb.getMoatData = function() {
return this._moatData;
};
h.inherits(Pa, M);
Pa.prototype.show = function() {
var a = this;
return M.prototype.show.call(this).then(function() {
a.isShowing() && a.canShowVideo() && a._moat && a._moat.play(a.getVolume());
});
};
Pa.prototype.hide = function() {
var a = this;
return (new Promise(function(a) {
setTimeout(a, 500);
})).then(function() {
var c = a.getEndScreen();
c && (c.hide(), c.remove());
a._moat && (a._moat.removeMessageListener(), (c = a._moat.container()) &&
c.parentElement && c.parentElement.removeChild(c));
return M.prototype.hide.call(a);
});
};
Pa.prototype.description = function() {
return "VAST";
};
Pa.prototype.getEvents = function() {
return this._events;
};
Pa.prototype.setEvents = function(a) {
this._events = a;
};
Pa.prototype.getVolume = function() {
return this._muted ? 0 : this._volume;
};
Pa.prototype.setVolume = function(a) {
this._volume = a;
};
Pa.prototype.setMuted = function(a) {
this._muted = a;
};
Pa.prototype.getMuted = function() {
return this._muted;
};
Pa.prototype.getEndScreen = function() {
return this._endScreen;
};
Pa.prototype.sendTrackingEvent = function(a, c) {
var d = this._vastCampaign.getVast().getTrackingEventUrls(a);
if (d) {
d = h.makeIterator(d);
for (var e = d.next(); !e.done; e = d.next()) {
this._thirdPartyEventManager.sendWithGet("vast " + a, c, e.value,
this._vastCampaign.getUseWebViewUserAgentForTracking());
}
}
};
Pa.prototype.getVideoClickThroughURL = function() {
var a = this._vastCampaign.getVast().getVideoClickThroughURL();
return this.isValidURL(a) ? a : null;
};
Pa.prototype.getCompanionClickThroughUrl = function() {
var a = this._vastCampaign.getVast().getCompanionClickThroughUrl();
return this.isValidURL(a) ? a : null;
};
Pa.prototype.sendCompanionClickTrackingEvent = function(a) {
var c = this._vastCampaign.getVast().getCompanionClickTrackingUrls();
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
this._thirdPartyEventManager.sendWithGet("vast companion click", a, d.value,
this._vastCampaign.getUseWebViewUserAgentForTracking());
}
};
Pa.prototype.sendCompanionTrackingEvent = function(a) {
var c = this._vastCampaign.getVast().getCompanionCreativeViewTrackingUrls();
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
this._thirdPartyEventManager.sendWithGet("companion", a, d.value,
this._vastCampaign.getUseWebViewUserAgentForTracking());
}
};
Pa.prototype.sendVideoClickTrackingEvent = function(a) {
this.sendTrackingEvent("click", a);
var c = this._vastCampaign.getVast().getVideoClickTrackingURLs();
if (c) {
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
this._thirdPartyEventManager.sendWithGet("vast video click", a, d.value,
this._vastCampaign.getUseWebViewUserAgentForTracking());
}
}
};
Pa.prototype.onContainerBackground = function() {
M.prototype.onContainerBackground.call(this);
this.isShowing() && this.canShowVideo() && this._moat &&
this._moat.pause(this.getVolume());
};
Pa.prototype.onContainerForeground = function() {
M.prototype.onContainerForeground.call(this);
this.isShowing() && this.canShowVideo() && this._moat &&
this._moat.play(this.getVolume());
};
Pa.prototype.onVideoError = function() {
var a = this.getEndScreen();
a ? a.show() : this.hide();
};
Pa.prototype.isValidURL = function(a) {
var c = /^(https?):\/\/.+$/;
return !!a && c.test(a);
};
h.inherits(Ed, jb);
Ed.prototype.onOverlaySkip = function(a) {
this._placement.skipEndCardOnClose() ? jb.prototype.onOverlayClose.call(this) :
(jb.prototype.onOverlaySkip.call(this, a), (a = this._vastAdUnit.getEndScreen()) ?
(a.show(), this._vastAdUnit.onFinish.trigger()) : this._vastAdUnit.hide());
};
Ed.prototype.onOverlayMute = function(a) {
jb.prototype.onOverlayMute.call(this, a);
a ? (this._moat && this._moat.volumeChange(0),
this._vastAdUnit.sendTrackingEvent("mute",
this._vastCampaign.getSession().getId())) : (this._moat &&
this._moat.volumeChange(this._vastAdUnit.getVolume()),
this._vastAdUnit.sendTrackingEvent("unmute",
this._vastCampaign.getSession().getId()));
};
Ed.prototype.onOverlayCallButton = function() {
var a = this;
jb.prototype.onOverlayCallButton.call(this);
this.setCallButtonEnabled(!1);
this._ads.Listener.sendClickEvent(this._placement.getId());
var c = this._vastAdUnit.getVideoClickThroughURL();
if (c) {
var d = this._vastCampaign.getUseWebViewUserAgentForTracking(), e =
Date.now(), f = u.getAppStoreUrlTemplates(this._platform);
return this._request.followRedirectChain(c, d, f).catch(function() {
return c;
}).then(function(d) {
return a.openUrlOnCallButton(d, Date.now() - e, c);
});
}
return Promise.reject(Error("No clickThroughURL was defined"));
};
Ed.prototype.openUrlOnCallButton = function(a, c, d) {
var e = this;
return this.openUrl(a).then(function() {
e.setCallButtonEnabled(!0);

e._vastAdUnit.sendVideoClickTrackingEvent(e._vastCampaign.getSession().getId());
Xd.sendClickDiagnosticsEvent(c, d, "vast_overlay", e._vastCampaign,
e._abGroup.valueOf(), e._gameSessionId);
}).catch(function() {
e.setCallButtonEnabled(!0);
});
};
Ed.prototype.openUrl = function(a) {
return this._platform === p.IOS ? this._core.iOS.UrlScheme.open(a) :
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
Ed.prototype.setCallButtonEnabled = function(a) {
this._vastOverlay && this._vastOverlay.setCallButtonEnabled(a);
};
Dd.prototype.onVastEndScreenClick = function() {
var a = this;
this.setCallButtonEnabled(!1);
var c = this._vastAdUnit.getCompanionClickThroughUrl() ||
this._vastAdUnit.getVideoClickThroughURL();
if (c) {
var d = this._vastCampaign.getUseWebViewUserAgentForTracking(), e =
Date.now(), f = u.getAppStoreUrlTemplates(this._platform);
return this._request.followRedirectChain(c, d, f).catch(function() {
return c;
}).then(function(d) {
return a.openUrlOnCallButton(d, Date.now() - e, c);
});
}
return Promise.reject(Error("There is no clickthrough URL for video or
companion"));
};
Dd.prototype.onVastEndScreenClose = function() {
this._vastAdUnit.hide();
};
Dd.prototype.onKeyEvent = function(a) {
4 === a && this._vastAdUnit.isShowing() && !this._vastAdUnit.canShowVideo() &&
this._vastAdUnit.hide();
};
Dd.prototype.onVastEndScreenShow = function() {
this._vastAdUnit.sendCompanionTrackingEvent(this._vastCampaign.getSession().getId()
);
};
Dd.prototype.openUrlOnCallButton = function(a, c, d) {
var e = this;
return this.onOpenUrl(a).then(function() {
e.setCallButtonEnabled(!0);

e._vastAdUnit.sendCompanionClickTrackingEvent(e._vastCampaign.getSession().getId())
;
e._vastAdUnit.sendTrackingEvent("videoEndCardClick",
e._vastCampaign.getSession().getId());
Xd.sendClickDiagnosticsEvent(c, d, "vast_endscreen", e._vastCampaign,
e._abGroup.valueOf(), e._gameSessionId);
}).catch(function() {
e.setCallButtonEnabled(!0);
});
};
Dd.prototype.onOpenUrl = function(a) {
return this._platform === p.IOS ? this._core.iOS.UrlScheme.open(a) :
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
Dd.prototype.setCallButtonEnabled = function(a) {
this._vastEndScreen && this._vastEndScreen.setCallButtonEnabled(a);
};
h.inherits(xb, N);
xb.prototype.onProgress = function(a) {
N.prototype.onProgress.call(this, a);
var c = yb.getMoat();
if (c) {
var d = this._vastAdUnit.getEvents(), e = d.shift();
e && (a / this._vastCampaign.getVideo().getDuration() >= e[0] ?
c.triggerVideoEvent(e[1], this._vastAdUnit.getVolume()) : d.unshift(e),
this._vastAdUnit.setEvents(d));
}
};
xb.prototype.onCompleted = function(a) {
N.prototype.onCompleted.call(this, a);
a = this._vastCampaign.getSession();
var c = yb.getMoat();
c && c.completed(this._vastAdUnit.getVolume());
if (a) {
if (a.getEventSent(da.VAST_COMPLETE)) {
return;
}
a.setEventSent(da.VAST_COMPLETE);
}
(a = this._vastAdUnit.getEndScreen()) ? a.show() : this._vastAdUnit.hide();
};
xb.prototype.onPrepared = function(a, c, d, e) {
N.prototype.onPrepared.call(this, a, c, d, e);
(d = this._adUnit.getOverlay()) && this._vastAdUnit.getVideoClickThroughURL()
&& (d.setCallButtonVisible(!0), d.setFadeEnabled(!1), E.get("debugOverlayEnabled")
&& d.setDebugMessage("Programmatic Ad"));
(d = yb.getMoat()) && d.init(yb.getMoatIds(), c / 1000, a, yb.getMoatData(),
this._vastAdUnit.getVolume());
};
xb.prototype.onPlay = function(a) {
N.prototype.onPlay.call(this, a);
a = this._vastCampaign.getSession();
var c = yb.getMoat();
c && c.play(this._vastAdUnit.getVolume());
if (a) {
if (a.getEventSent(da.IMPRESSION)) {
return;
}
a.setEventSent(da.IMPRESSION);
}
this.sendThirdPartyVastImpressionEvent();
this.sendThirdPartyTrackingEvent("creativeView");
this.sendThirdPartyTrackingEvent("start");
this.sendThirdPartyTrackingEvent("impression");
};
xb.prototype.onPause = function(a) {
N.prototype.onPause.call(this, a);
(a = yb.getMoat()) && a.pause(this._vastAdUnit.getVolume());
};
xb.prototype.onStop = function(a) {
N.prototype.onStop.call(this, a);
(a = yb.getMoat()) && a.stop(this._vastAdUnit.getVolume());
};
xb.prototype.onVolumeChange = function(a, c) {
var d = yb.getMoat();
d && (this._vastAdUnit.setVolume(a / c),
d.volumeChange(this._vastAdUnit.getVolume()));
};
xb.prototype.handleFirstQuartileEvent = function(a) {
N.prototype.handleFirstQuartileEvent.call(this, a);
this.sendThirdPartyTrackingEvent("firstQuartile");
};
xb.prototype.handleMidPointEvent = function(a) {
N.prototype.handleMidPointEvent.call(this, a);
this.sendThirdPartyTrackingEvent("midpoint");
};
xb.prototype.handleThirdQuartileEvent = function(a) {
N.prototype.handleThirdQuartileEvent.call(this, a);
this.sendThirdPartyTrackingEvent("thirdQuartile");
};
xb.prototype.handleCompleteEvent = function(a) {
N.prototype.handleCompleteEvent.call(this, a);
this.sendThirdPartyTrackingEvent("complete");
};
xb.prototype.sendThirdPartyVastImpressionEvent = function() {
var a = this._vastCampaign.getImpressionUrls();
if (a) {
a = h.makeIterator(a);
for (var c = a.next(); !c.done; c = a.next()) {
this.sendThirdPartyEvent("vast impression", c.value);
}
}
};
xb.prototype.sendThirdPartyTrackingEvent = function(a) {
var c = this._vastCampaign.getVast().getTrackingEventUrls(a);
if (c) {
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
this.sendThirdPartyEvent("vast " + a, d.value);
}
}
};
xb.prototype.sendThirdPartyEvent = function(a, c) {
this._thirdPartyEventManager.sendWithGet(a,
this._campaign.getSession().getId(), c,
this._vastCampaign.getUseWebViewUserAgentForTracking());
};
h.inherits($f, Mb);
$f.prototype.createAdUnit = function(a) {
void 0 !== a.campaign.getAdvertiserDomain() && a.campaign.isMoatEnabled() &&
yb.initMoat(a.platform, a.core, a.campaign, a.clientInfo, a.placement,
a.deviceInfo, a.coreConfig);
var c = new Pa(a), d = new Ed(c, a);
a.overlay.addEventHandler(d);
if (a.campaign.hasEndscreen() && a.endScreen) {
var e = new Dd(c, a);
a.endScreen.addEventHandler(e);
if (a.platform === p.ANDROID) {
var f = a.ads.Android.AdUnit.onKeyDown.subscribe(function(c) {
e.onKeyEvent(c);
if (O.isCloseIconSkipEnabled(a.clientInfo.getGameId())) {
d.onKeyEvent(c);
}
});
c.onClose.subscribe(function() {
a.ads.Android.AdUnit.onKeyDown.unsubscribe(f);
});
}
}
var g = this.getVideoEventHandlerParams(c, a.campaign.getVideo(), void 0, a), k
= this.prepareVideoPlayer(xb, g);
if (a.platform === p.ANDROID) {
a.core.DeviceInfo.Android.registerVolumeChangeListener(Fd.STREAM_MUSIC);
var n = a.core.DeviceInfo.Android.onVolumeChanged.subscribe(function(a, c, d)
{
return k.onVolumeChange(c, d);
});
} else {
if (a.platform === p.IOS) {
a.core.DeviceInfo.Ios.registerVolumeChangeListener();
var m = a.core.DeviceInfo.Ios.onVolumeChanged.subscribe(function(a, c) {
return k.onVolumeChange(a, c);
});
}
}
c.onClose.subscribe(function() {
n &&
(a.core.DeviceInfo.Android.unregisterVolumeChangeListener(Fd.STREAM_MUSIC),
a.core.DeviceInfo.Android.onVolumeChanged.unsubscribe(n));
m && (a.core.DeviceInfo.Ios.unregisterVolumeChangeListener(),
a.core.DeviceInfo.Ios.onVolumeChanged.unsubscribe(m));
});
return c;
};
h.inherits(ag, T);
ag.prototype.cleanUpPrivacy = function() {
!this._hasEndcard && this._privacy && (this._privacy.hide(),
document.body.removeChild(this._privacy.container()), delete this._privacy);
};
h.inherits(Wc, I);
Wc.prototype.render = function() {
I.prototype.render.call(this);
var a = this._container.querySelector(".china-advertisement");
"CN" === this._country && a && (a.style.display = "block");
this._isSwipeToCloseEnabled && (this._container.querySelector(".btn-close-
region").style.display = "none");
};
Wc.prototype.show = function() {
var a = this;
I.prototype.show.call(this);
this._handlers.forEach(function(a) {
return a.onVastEndScreenShow();
});
Z.getAutoClose() && setTimeout(function() {
a._handlers.forEach(function(a) {
return a.onVastEndScreenClose();
});
}, Z.getAutoCloseDelay());
};
Wc.prototype.remove = function() {
if (this._privacy) {
this._privacy.hide();
var a = this._privacy.container();
a && a.parentElement && a.parentElement.removeChild(a);
delete this._privacy;
}
(a = this.container()) && a.parentElement &&
a.parentElement.removeChild(this.container());
};
Wc.prototype.onPrivacyClose = function() {
this._privacy && this._privacy.hide();
};
Wc.prototype.setCallButtonEnabled = function(a) {
this._callButtonEnabled !== a && (this._callButtonEnabled = a);
};
Wc.prototype.onCloseEvent = function(a) {
a.preventDefault();
this._handlers.forEach(function(a) {
return a.onVastEndScreenClose();
});
};
Wc.prototype.onClickEvent = function(a) {
this._callButtonEnabled && (a.preventDefault(),
this._handlers.forEach(function(a) {
return a.onVastEndScreenClick();
}));
};
Wc.prototype.onPrivacyEvent = function(a) {
a.preventDefault();
this._privacy.show();
};
h.inherits(Zf, Na);
Zf.prototype.createParameters = function(a) {
var c = new ag(a, a.privacy, this.showGDPRBanner(a));
c = Object.assign({}, a, {video:a.campaign.getVideo(), overlay:c});
if (a.campaign.hasEndscreen()) {
var d = {campaign:a.campaign, clientInfo:a.clientInfo,
country:a.coreConfig.getCountry()};
a = new Wc(a.platform, d, a.privacy);
c.endScreen = a;
}
return c;
};
h.inherits(Ng, re);
h.inherits(Yf, gc);
Yf.prototype.onOverlaySkip = function(a) {
this._placement.skipEndCardOnClose() ? gc.prototype.onOverlayClose.call(this) :
(gc.prototype.onOverlaySkip.call(this, a), (a = this._xPromoAdUnit.getEndScreen())
&& a.show(), this._xPromoAdUnit.onFinish.trigger());
};
h.inherits(Xf, Cd);
Xf.prototype.onKeyEvent = function(a) {
4 === a && this._adUnit.isShowing() && !this._adUnit.canShowVideo() &&
this._adUnit.hide();
};
h.inherits(Vc, N);
Vc.prototype.onCompleted = function(a) {
N.prototype.onCompleted.call(this, a);
(a = this._xpromoAdUnit.getEndScreen()) && a.show();
};
Vc.prototype.onPrepared = function(a, c, d, e) {
N.prototype.onPrepared.call(this, a, c, d, e);
if (a = this._adUnit.getOverlay()) {
a.setCallButtonVisible(!0), E.get("debugOverlayEnabled") &&
a.setDebugMessage("XPromo");
}
};
Vc.prototype.handleStartEvent = function() {
var a = this;

this._xpromoOperativeEventManager.sendStart(this.getXPromoOperativeEventParams()).t
hen(function() {
a._adUnit.onStartProcessed.trigger();
});
var c = this._xpromoCampaign.getTrackingUrlsForEvent("start");
c = h.makeIterator(c);
for (var d = c.next(); !d.done; d = c.next()) {
d = d.value, this._thirdPartyEventManager.sendWithGet("xpromo start",
this._xpromoCampaign.getSession().getId(), d);
}
this._ads.Listener.sendStartEvent(this._placement.getId());
};
Vc.prototype.handleFirstQuartileEvent = function() {
};
Vc.prototype.handleMidPointEvent = function() {
};
Vc.prototype.handleCompleteEvent = function() {

this._xpromoOperativeEventManager.sendView(this.getXPromoOperativeEventParams());
var a = this._xpromoCampaign.getTrackingUrlsForEvent("view");
a = h.makeIterator(a);
for (var c = a.next(); !c.done; c = a.next()) {
c = c.value, this._thirdPartyEventManager.sendWithGet("xpromo view",
this._xpromoCampaign.getSession().getId(), c);
}
};
Vc.prototype.getVideoOrientation = function() {
return this._xpromoAdUnit.getVideoOrientation();
};
Vc.prototype.getXPromoOperativeEventParams = function() {
return {placement:this._placement,
videoOrientation:this.getVideoOrientation()};
};
h.inherits(Wd, M);
Wd.prototype.hide = function() {
var a = this.getEndScreen();
a && (a.hide(), (a = a.container()) && a.parentElement &&
a.parentElement.removeChild(a));
this._privacy.hide();
(a = this._privacy.container()) && a.parentElement &&
a.parentElement.removeChild(a);
return M.prototype.hide.call(this);
};
Wd.prototype.description = function() {
return "xpromo";
};
Wd.prototype.getEndScreen = function() {
return this._endScreen;
};
Wd.prototype.onVideoError = function() {
var a = this.getEndScreen();
a && a.show();
};
Wd.prototype.unsetReferences = function() {
M.prototype.unsetReferences.call(this);
delete this._endScreen;
delete this._privacy;
};
h.inherits(Vf, Mb);
Vf.prototype.createAdUnit = function(a) {
var c = new Wd(a), d = Le.getNewStoreHandler({platform:a.platform, core:a.core,
ads:a.ads, store:a.store, thirdPartyEventManager:a.thirdPartyEventManager,
operativeEventManager:a.operativeEventManager, deviceInfo:a.deviceInfo,
clientInfo:a.clientInfo, placement:a.placement, adUnit:c, campaign:a.campaign,
coreConfig:a.coreConfig}), e = new Yf(c, a, d);
a.overlay.addEventHandler(e);
var f = new Xf(c, a, d);
a.endScreen.addEventHandler(f);
d = this.getVideoEventHandlerParams(c, a.video, void 0, a);
this.prepareVideoPlayer(Vc, d);
if (a.platform === p.ANDROID) {
var g = a.ads.Android.AdUnit.onKeyDown.subscribe(function(c) {
f.onKeyEvent(c);
if (O.isCloseIconSkipEnabled(a.clientInfo.getGameId())) {
e.onKeyEvent(c);
}
});
c.onClose.subscribe(function() {
g && a.ads.Android.AdUnit.onKeyDown.unsubscribe(g);
});
}
return c;
};
h.inherits(Vd, Yb);
Vd.prototype.parse = function(a, c) {
var d = a.getJsonContent();
switch("undefined" !== typeof d.store ? d.store : "") {
case "apple":
var e = xc.APPLE;
break;
case "google":
e = xc.GOOGLE;
break;
case "xiaomi":
e = xc.XIAOMI;
break;
case "standalone_android":
throw Error("Android APK not supported on cross promotion.");
default:
throw Error('Unknown store value "' + d.store + '"');
}
a = {id:d.id, willExpireAt:void 0, contentType:Vd.ContentType, adType:void 0,
correlationId:void 0, creativeId:a.getCreativeId() || void 0, seatId:a.getSeatId()
|| void 0, meta:d.meta, session:c, mediaId:a.getMediaId(),
trackingUrls:a.getTrackingUrls() ?
this.validateAndEncodeTrackingUrls(a.getTrackingUrls(), c) : {}, backupCampaign:!
1};
e = Object.assign({}, a, {appStoreId:d.appStoreId, gameId:d.gameId,
gameName:d.gameName, gameIcon:new Ab(this.validateAndEncodeUrl(d.gameIcon, c), c),
rating:d.rating, ratingCount:d.ratingCount, landscapeImage:d.endScreenLandscape ?
new Ab(this.validateAndEncodeUrl(d.endScreenLandscape, c), c) : void 0,
portraitImage:d.endScreenPortrait ? new
Ab(this.validateAndEncodeUrl(d.endScreenPortrait, c), c) : void 0,
squareImage:d.endScreen ? new Ab(this.validateAndEncodeUrl(d.endScreen, c), c) :
void 0,
clickAttributionUrl:d.clickAttributionUrl ?
this.validateAndEncodeUrl(d.clickAttributionUrl, c) : void 0,
clickAttributionUrlFollowsRedirects:d.clickAttributionUrlFollowsRedirects,
bypassAppSheet:d.bypassAppSheet,
videoEventUrls:this.validateAndEncodeVideoEventUrls(d.videoEventUrls, c),
store:e});
d.trailerDownloadable && d.trailerDownloadableSize && d.trailerStreaming &&
(e.video = new pa(this.validateAndEncodeUrl(d.trailerDownloadable, c), c,
d.trailerDownloadableSize), e.streamingVideo = new
pa(this.validateAndEncodeUrl(d.trailerStreaming, c), c));
d.trailerPortraitDownloadable && d.trailerPortraitDownloadableSize &&
d.trailerPortraitStreaming && (e.videoPortrait = new
pa(this.validateAndEncodeUrl(d.trailerPortraitDownloadable, c), c,
d.trailerPortraitDownloadableSize), e.streamingPortraitVideo = new
pa(this.validateAndEncodeUrl(d.trailerPortraitStreaming, c), c));
return Promise.resolve(new L(e));
};
Vd.prototype.validateAndEncodeVideoEventUrls = function(a, c) {
if (a && null !== a) {
for (var d in a) {
a.hasOwnProperty(d) && (a[d] = this.validateAndEncodeUrl(a[d], c));
}
}
return a;
};
Vd.ContentType = "xpromo/video";
h.inherits(Je, wb);
Je.prototype.onDownloadEvent = function(a) {
var c = this;
a.preventDefault();
this._handlers.forEach(function(a) {
return
a.onEndScreenDownload({clickAttributionUrl:c._campaign.getClickAttributionUrl(),
clickAttributionUrlFollowsRedirects:c._campaign.getClickAttributionUrlFollowsRedire
cts(), bypassAppSheet:c._campaign.getBypassAppSheet(),
appStoreId:c._campaign.getAppStoreId(), store:c._campaign.getStore()});
});
};
Je.prototype.getEndscreenAlt = function() {
if (this._campaign.getSquare()) {
return "square-end-screen";
}
};
Je.prototype.getTemplate = function() {
return "square-end-screen" === this.getEndscreenAlt() ? '<div class="btn-close-
region<%= data.endscreenAlt ? \' \' + data.endscreenAlt : \'\' %>"><span
class="icon-close"></span></div><div class="campaign-container<%= data.endscreenAlt
? \' \' + data.endscreenAlt : \'\' %>"><div class="game-background game-background-
blurred" style="background-image: url(\'<%= data.endScreenSquare &&
data.endScreenSquare.replace("file://", "") %>\')"></div><div class="game-
background-container"><div class="game-image" style="background-image: url(\'<%=
data.endScreenSquare && data.endScreenSquare.replace("file://", "")
%>\')"></div><div class="gdpr-pop-up"><div class="icon-gdpr"></div><div
class="gdpr-text">Unity is personalizing your ads experience in this application.
<span class="gdpr-link">Tap here</span> to learn more about Unity and your privacy
choices.</div></div></div><div class="end-screen-info-background"><div class="end-
screen-info"><div class="column-container"><div class="game-icon"
style="background-image: url(\'<%= data.gameIcon &&
data.gameIcon.replace("file://", "") %>\')"></div><div class="name-container"> <%=
data.gameName %> </div><div class="store-container"> <% if(!!data.rating) { %>
<span class="game-rating"><span class="game-rating-stars-top" style="width: <%=
data.rating %>%"><span class="icon-star first-icon-star"></span> <span class="icon-
star"></span> <span class="icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> </span><span class="game-rating-stars-bottom"><span
class="icon-star first-icon-star"></span> <span class="icon-star"></span> <span
class="icon-star"></span> <span class="icon-star"></span> <span class="icon-
star"></span> </span></span> <% } %> <% if (!!data.ratingCount &&
data.ratingCount !== "0") { %> <span class="game-rating-count">(<span class="game-
rating-count-number"> <%= data.ratingCount %> </span>) </span> <% } %> </div><div
class="download-container"><span class="download-text"><%= data.t("Download For
Free") %></span></div></div></div><div class="bottom-container"><div
class="privacy-button"><span class="icon-gdpr"></span></div><div class="unityads-
logo"></div><div class="china-
advertisement">\u5e7f\u544a</div></div></div></div>' :
wb.prototype.getTemplate.call(this);
};
h.inherits(Wf, Na);
Wf.prototype.createParameters = function(a) {
var c = a.placement.skipEndCardOnClose() || !1;
c = this.createOverlay(a, a.privacy, c);
var d = this.createEndScreenParameters(a.privacy, a.campaign.getGameName(), a);
d = new Je(d, a.campaign);
var e = this.getVideo(a.campaign, a.forceOrientation);
return Object.assign({}, a, {video:e, overlay:c, endScreen:d});
};
h.inherits(Mg, re);
h.inherits(Ie, Ua);
Ie.prototype.fetch = function(a, c, d) {
var e = this;
return Ua.prototype.fetch.call(this, a, c, d).then(function(a) {
return a ? c.Storage.delete(v.PUBLIC, e.getCategory()).then(function() {
c.Storage.write(v.PUBLIC);
return !0;
}) : Promise.resolve(!1);
});
};
Ie.prototype.getServerId = function() {
return this.get("server_id");
};
Ie.prototype.getDTO = function() {
return {sid:this.getServerId()};
};
oc.prototype.show = function(a) {
var c = this;
this._showing = !0;
return this._adUnitContainer.open(this, ["webview"], !1, ja.NONE, !0, !0, !0, !
1, a).then(function() {
var a = new Promise(function(a) {
c._donePromiseResolve = a;
});
c._adUnitContainer.addEventHandler(c);
c._unityConsentView.render();
document.body.appendChild(c._unityConsentView.container());
c._unityConsentView.show();
if (E.get("autoAcceptConsent")) {
var e = JSON.parse(E.get("autoAcceptConsent"));
c.handleAutoConsent(e);
}
return a;
}).catch(function(a) {
c._core.Sdk.logWarning("Error opening Consent view " + a);
});
};
oc.prototype.onContainerShow = function() {
};
oc.prototype.onContainerDestroy = function() {
var a = this;
this._showing && (this._showing = !1,
this._adUnitContainer.removeEventHandler(this),
this._unityConsentView.container().parentElement &&
document.body.removeChild(this._unityConsentView.container()),
setTimeout(function() {
a._donePromiseResolve();
}, 0));
};
oc.prototype.onContainerBackground = function() {
};
oc.prototype.onContainerForeground = function() {
};
oc.prototype.onContainerSystemMessage = function() {
};
oc.prototype.onConsent = function(a, c) {
this._privacyManager.updateUserPrivacy(a, c, this._landingPage);
};
oc.prototype.onClose = function() {
var a = this;
this._adUnitContainer.close().then(function() {
if (a._platform !== p.IOS) {
a.onContainerDestroy();
}
});
};
oc.prototype.onPrivacy = function(a) {
this._platform === p.IOS ? this._core.iOS.UrlScheme.open(a) : this._platform
=== p.ANDROID &&
this._core.Android.Intent.launch({action:"android.intent.action.VIEW", uri:a});
};
oc.prototype.handleAutoConsent = function(a) {
var c = this;
setTimeout(function() {
a.hasOwnProperty("all") && (c._core.Sdk.logInfo("setting autoAcceptConsent
with All True based on " + JSON.stringify(a)),
c._unityConsentView.testAutoConsentAll());
a.hasOwnProperty("ads") && (c._core.Sdk.logInfo("setting autoAcceptConsent
with Personalized Consent based on " + JSON.stringify(a)),
c._unityConsentView.testAutoConsent(a));
}, 3000);
};
oc.prototype.description = function() {
return "Consent";
};
Fc.prototype.initialize = function(a) {
var c = this;
return Promise.resolve().then(function() {
m.setInitTimestamp();
Ya.init();
return c.setupTestEnvironment();
}).then(function() {
c.PrivacyManager = new ab(c._core.NativeBridge.getPlatform(), c._core.Api,
c._core.Config, c.Config, c._core.ClientInfo, c._core.DeviceInfo,
c._core.RequestManager);
c.PlacementManager = new Jc(c.Api, c.Config);
return c.PrivacyManager.getConsentAndUpdateConfiguration().catch(function() {
});
}).then(function() {
var d = c.Config.getDefaultPlacement();
c.Api.Placement.setDefaultPlacement(d.getId());
yh.isValid(c._core.Config.getAbGroup()) &&
c.BackupCampaignManager.setEnabled(!1);
c.AssetManager = new Bb(c._core.NativeBridge.getPlatform(), c._core.Api,
c._core.CacheManager, c.Config.getCacheMode(), c._core.DeviceInfo,
c._core.CacheBookkeeping, c.ProgrammaticTrackingService, c.BackupCampaignManager);
0 === c.SessionManager.getGameSessionId() % 10000 &&
c.AssetManager.setCacheDiagnostics(!0);
[new Tg(c._core, c), new Pg(c._core, c), new Og(c._core, c), new Ng(c._core,
c), new Mg(c._core, c)].forEach(function(a) {
a = a.getContentTypeHandlerMap();
for (var d in a) {
a.hasOwnProperty(d) && c.ContentTypeHandlerManager.addHandler(d, a[d]);
}
});
w.setAuctionProtocol(c._core.Config, c.Config,
c._core.NativeBridge.getPlatform(), c._core.ClientInfo);
c.CampaignManager = new C(c._core.NativeBridge.getPlatform(), c._core.Api,
c._core.Config, c.Config, c.AssetManager, c.SessionManager, c.AdMobSignalFactory,
c._core.RequestManager, c._core.ClientInfo, c._core.DeviceInfo,
c._core.MetaDataManager, c._core.CacheBookkeeping, c.ContentTypeHandlerManager,
c._core.JaegerManager, c.BackupCampaignManager);
c.RefreshManager = new ka(c._core.NativeBridge.getPlatform(), c._core.Api,
c._core.Config, c.Api, c._core.WakeUpManager, c.CampaignManager, c.Config,
c._core.FocusManager, c.SessionManager, c._core.ClientInfo, c._core.RequestManager,
c._core.CacheManager);
m.initialize(c._core.Api, c._core.RequestManager, c._core.Config, c.Config,
c.SessionManager, c.CampaignManager, c._core.MetaDataManager, c._core.ClientInfo,
c._core.CacheManager);
var e = c._core.JaegerManager.startSpan("Refresh", a.id, a.traceId);
e.addTag(Hb.DeviceType, p[c._core.NativeBridge.getPlatform()]);
return
c.RefreshManager.refreshWithBackupCampaigns(c.BackupCampaignManager).then(function(
a) {
c._core.JaegerManager.stop(e);
return a;
}).catch(function(a) {
e.addTag(Hb.Error, "true");
e.addTag(Hb.ErrorMessage, a.message);
c._core.JaegerManager.stop(e);
throw a;
});
}).then(function() {
return c.SessionManager.sendUnsentSessions();
});
};
Fc.prototype.isConsentShowRequired = function() {
var a = this.Config.getGamePrivacy(), c = this.Config.getUserPrivacy();
if (!a.isEnabled() && a.getMethod() !== nb.UNITY_CONSENT) {
return !1;
}
if (!c.isRecorded()) {
return !0;
}
var d = a.getMethod() !== c.getMethod();
a = a.getVersion() > c.getVersion();
return d || a;
};
Fc.prototype.showConsentIfNeeded = function(a) {
if (!this.isConsentShowRequired()) {
return Promise.resolve();
}
O.shouldSampleAtOnePercent() && F.trigger("consent_show",
{adsConfig:JSON.stringify(this.Config.getDTO())});
return this._core.Config.isCoppaCompliant() ? (F.trigger("consent_with_coppa",
{coreConfig:this._core.Config.getDTO(), adsConfig:this.Config.getDTO()}),
Promise.resolve()) : (new oc({abGroup:this._core.Config.getAbGroup(),
platform:this._core.NativeBridge.getPlatform(), privacyManager:this.PrivacyManager,
adUnitContainer:this.Container, adsConfig:this.Config, core:this._core.Api,
deviceInfo:this._core.DeviceInfo})).show(a);
};
Fc.prototype.show = function(a, c, d) {
var e = this;
d(wc.OK);
if (this._showing) {
this.showError(!1, a, "Can't show a new ad unit when ad unit is already
open");
} else {
var f = this.Config.getPlacement(a);
if (f) {
var g = this.RefreshManager.getCampaign(a);
if (g) {
if (m.sendShowEvent(a), g.isExpired()) {
this.showError(!0, a, "Campaign has expired"),
this.RefreshManager.refresh(), a = new dc(Error("Campaign expired"), {id:g.getId(),
willExpireAt:g.getWillExpireAt(), contentType:g.getContentType()}),
ca.trigger("campaign_expired", a, g.getSession());
} else {
if ((a = f.getCurrentTrackingUrls()) && g.setTrackingUrls(a),
this.resetOutdatedUserPrivacy(), f.getRealtimeData() && !
this.isConsentShowRequired()) {
this._core.Api.Sdk.logInfo("Unity Ads is requesting realtime fill for
placement " + f.getId());
var k = Date.now();
Xe.withTimeout(this.CampaignManager.requestRealtime(f,
g.getSession()), 1500).then(function(a) {
e._requestDelay = Date.now() - k;
e._core.Api.Sdk.logInfo("Unity Ads received a realtime request in "
+ e._requestDelay + " ms.");
a ? (e._core.Api.Sdk.logInfo("Unity Ads received new fill for
placement " + f.getId() + ", streaming new ad unit"), e._wasRealtimePlacement = !0,
f.setCurrentCampaign(a), e.showAd(f, a, c)) : (ca.trigger("realtime_no_fill", {},
g.getSession()), e._core.Api.Sdk.logInfo("Unity Ads received no new fill for
placement " + f.getId() + ", opening old ad unit"), e.showAd(f, g, c));
}).catch(function(a) {
a instanceof og && F.trigger("realtime_network_timeout",
{auctionId:g.getSession().getId()});
F.trigger("realtime_error", {error:a});
e._core.Api.Sdk.logInfo("Unity Ads realtime fill request for
placement " + f.getId() + " failed, opening old ad unit");
e.showAd(f, g, c);
});
} else {
this.showConsentIfNeeded(c).then(function() {
e.showAd(f, g, c);
});
}
}
} else {
this.showError(!0, a, "Campaign not found");
}
} else {
this.showError(!0, a, "No such placement: " + a);
}
}
};
Fc.prototype.resetOutdatedUserPrivacy = function() {
var a = this.Config.getGamePrivacy(), c = this.Config.getUserPrivacy(), d =
a.getMethod() !== nb.DEFAULT;
a = c.getMethod() !== a.getMethod();
d && a && c.clear();
};
Fc.prototype.showAd = function(a, c, d) {
var e = this;
this._core.Config.getAbGroup();
var f = Date.now();
this._showing = !0;
this.Config.getCacheMode() !== Nb.DISABLED && this.AssetManager.stopCaching();
Promise.all([this._core.DeviceInfo.getScreenWidth(),
this._core.DeviceInfo.getScreenHeight(), this._core.DeviceInfo.getConnectionType(),
this._core.MetaDataManager.fetch(Ie, !1)]).then(function(g) {
var k = h.makeIterator(g);
g = k.next().value;
var n = k.next().value, m = k.next().value;
k = k.next().value;
var r;
k && (r = k.getServerId());
if (c.isConnectionNeeded() && "none" === m) {
e._showing = !1, e.showError(!0, a.getId(), "No connection"), r = new
dc(Error("No connection is available"), {id:c.getId()}),
ca.trigger("mraid_no_connection", r, c.getSession());
} else {
g = g >= n ? ja.LANDSCAPE : ja.PORTRAIT;
Pb.createBuildInformation(e._core.NativeBridge.getPlatform(),
e._core.ClientInfo, e._core.DeviceInfo, c, e._core.Config);
e._currentAdUnit = e.getAdUnitFactory(c).create(c, a, g, r || "", d);
e.RefreshManager.setCurrentAdUnit(e._currentAdUnit);
e._currentAdUnit.onClose.subscribe(function() {
return e.onAdUnitClose();
});
if (e._core.NativeBridge.getPlatform() === p.IOS && (c instanceof D || c
instanceof L) && !We.isAppSheetBroken(e._core.DeviceInfo.getOsVersion(),
e._core.DeviceInfo.getModel()) && !c.getBypassAppSheet()) {
var q = {id:parseInt(c.getAppStoreId(), 10)};
e._store.Api.iOS.AppSheet.prepare(q).then(function() {
var a = e._store.Api.iOS.AppSheet.onClose.subscribe(function() {
e._store.Api.iOS.AppSheet.prepare(q);
});
e._currentAdUnit.onClose.subscribe(function() {
e._store.Api.iOS.AppSheet.onClose.unsubscribe(a);
O.isSimejiJapaneseKeyboardApp(e._core.ClientInfo.getGameId()) ?
e._store.Api.iOS.AppSheet.destroy() : e._store.Api.iOS.AppSheet.destroy(q);
});
});
}
P.setPreviousPlacementId(e.CampaignManager.getPreviousPlacementId());
e.CampaignManager.setPreviousPlacementId(a.getId());
e._wasRealtimePlacement && e._currentAdUnit.onStart.subscribe(function() {
var a = Date.now() - f;
F.trigger("realtime_delay", {requestDelay:e._requestDelay, startDelay:a,
totalDelay:e._requestDelay + a, auctionId:c.getSession().getId(),
adUnitDescription:e._currentAdUnit.description()});
});
e._wasRealtimePlacement = !1;
e._currentAdUnit.show().then(function() {
e.BackupCampaignManager.deleteBackupCampaigns();
});
}
});
};
Fc.prototype.getAdUnitFactory = function(a) {
a = a.getContentType();
return this.ContentTypeHandlerManager.getFactory(a);
};
Fc.prototype.showError = function(a, c, d) {
this._core.Api.Sdk.logError("Show invocation failed: " + d);
this.Api.Listener.sendErrorEvent(zc[zc.SHOW_ERROR], d);
a && this.Api.Listener.sendFinishEvent(c, na.ERROR);
};
Fc.prototype.onAdUnitClose = function() {
this._showing = !1;
};
Fc.prototype.setupTestEnvironment = function() {
E.get("serverUrl") && (Qb.setTestBaseUrl(E.get("serverUrl")),
C.setBaseUrl(E.get("serverUrl")));
E.get("campaignId") && (C.setCampaignId(E.get("campaignId")),
this.BackupCampaignManager.setEnabled(!1));
E.get("sessionId") && C.setSessionId(E.get("sessionId"));
E.get("country") && C.setCountry(E.get("country"));
E.get("autoSkip") && T.setAutoSkip(E.get("autoSkip"));
E.get("autoClose") && Z.setAutoClose(E.get("autoClose"));
E.get("autoCloseDelay") && Z.setAutoCloseDelay(E.get("autoCloseDelay"));
E.get("forcedOrientation") &&
bc.setForcedOrientation(E.get("forcedOrientation"));
E.get("forcedPlayableMRAID") &&
hc.setForcedExtendedMRAID(E.get("forcedPlayableMRAID"));
E.get("forcedGDPRBanner") && Na.setForcedGDPRBanner(E.get("forcedGDPRBanner"));
var a = !1;
E.get("forcedARMRAID") && (a = E.get("forcedARMRAID"), hc.setForcedARMRAID(a));
if (E.get("creativeUrl")) {
var c = this._creativeUrl = E.get("creativeUrl"), d = "", e =
this._core.NativeBridge.getPlatform();
e === p.ANDROID ? d = '{\n "correlationId": "PFweE7m9HRHUg2y08qU1PL",\n
"placements": {\n "defaultVideoAndPictureZone": "000000000000000000000000",\n
"incentivizedZone": "000000000000000000000000"\n },\n "media": {\n
"000000000000000000000000": {\n "contentType": "comet/campaign",\n
"content":
"{\\"id\\":\\"000000000000000000000000\\",\\"platform\\":\\"android\\",\\"store\\":
\\"google\\",\\"appStoreId\\":\\"com.iUnity.angryBots\\",\\"gameId\\":11017,\\"game
Name\\":\\"Test game android\\",\\"gameIcon\\":\\"http://cdn-
highwinds.unityads.unity3d.com/impact/11017/test_game_icon.png\\",\\"rating\\":4.5,
\\"ratingCount\\":10000,\\"bypassAppSheet\\":false,\\"mraidUrl\\":\\"{CREATIVE_URL_
PLACEHOLDER}\\"}",\n "trackingUrls": {},\n "campaignId":
"000000000000000000000000",\n "seatId": 9000,\n "adType":
"MRAID"\n }\n },\n "auctionId": "a15a4fb6-f9ce-4b09-a0cc-
0672f1de4d20"\n}\n'.replace("{CREATIVE_URL_PLACEHOLDER}",
c) : e === p.IOS && (d = '{\n "correlationId": "S8z40tOCRnTjCmX59PWh48",\n
"placements": {\n "defaultVideoAndPictureZone": "000000000000000000000000",\n
"incentivizedZone": "000000000000000000000000"\n },\n "media": {\n
"000000000000000000000000": {\n "contentType": "comet/campaign",\n
"content":
"{\\"id\\":\\"000000000000000000000000\\",\\"platform\\":\\"ios\\",\\"store\\":\\"a
pple\\",\\"appStoreId\\":\\"453467175\\",\\"gameId\\":11017,\\"gameName\\":\\"Test
game ios\\",\\"gameIcon\\":\\"https://cdn-
highwinds.unityads.unity3d.com/impact/11017/test_game_icon.png\\",\\"rating\\":4.5,
\\"ratingCount\\":10000,\\"bypassAppSheet\\":false,\\"mraidUrl\\":\\"{CREATIVE_URL_
PLACEHOLDER}\\"}",\n "trackingUrls": {},\n "campaignId":
"000000000000000000000000",\n "seatId": 9000,\n "adType":
"MRAID"\n }\n },\n "auctionId": "a15a4fb6-f9ce-4b09-a0cc-
0672f1de4d20"\n}\n'.replace("{CREATIVE_URL_PLACEHOLDER}",
c));
d = a ? d.replace("{AD_TYPE_PLACEHOLDER}", "MRAID_AR") :
d.replace("{AD_TYPE_PLACEHOLDER}", "MRAID");
C.setCampaignResponse(d);
}
E.get("debugJsConsole") && K.setDebugJsConsole(E.get("debugJsConsole"));
};
Ec.prototype.getUserId = function() {
var a = this;
return this.getValue("analytics.userid").then(function(c) {
return c ? c : a._core.DeviceInfo.getUniqueEventId().then(function(a) {
return a.toLowerCase().replace(/-/g, "");
});
});
};
Ec.prototype.getSessionId = function(a) {
var c = this;
return a ? this.getValue("analytics.sessionid").then(function(a) {
return a ? a : c.getIntegerId();
}).catch(function() {
return c.getIntegerId();
}) : this.getIntegerId();
};
Ec.prototype.getAppVersion = function() {
return this.getValue("analytics.appversion");
};
Ec.prototype.getOsVersion = function() {
return this.getValue("analytics.osversion");
};
Ec.prototype.getIAPTransactions = function() {
var a = this;
return this._core.Storage.get(v.PUBLIC, "iap.purchases").then(function(c) {
a._core.Storage.delete(v.PUBLIC, "iap.purchases");
a._core.Storage.write(v.PUBLIC);
return c;
}).catch(function(a) {
a = h.makeIterator(a).next().value;
switch(a) {
case mb[mb.COULDNT_GET_VALUE]:
return [];
case mb[mb.COULDNT_GET_STORAGE]:
return [];
default:
throw Error(a);
}
});
};
Ec.prototype.setIds = function(a, c) {
this._core.Storage.set(v.PRIVATE, "analytics.userid", a);
this._core.Storage.set(v.PRIVATE, "analytics.sessionid", c);
this._core.Storage.write(v.PRIVATE);
};
Ec.prototype.setSessionId = function(a) {
this._core.Storage.set(v.PRIVATE, "analytics.sessionid", a);
};
Ec.prototype.setVersions = function(a, c) {
this._core.Storage.set(v.PRIVATE, "analytics.appversion", a);
this._core.Storage.set(v.PRIVATE, "analytics.osversion", c);
this._core.Storage.write(v.PRIVATE);
};
Ec.prototype.getIntegerId = function() {
return this._core.DeviceInfo.getUniqueEventId().then(function(a) {
return parseInt(a.replace(/-/g, "").substring(0, 12), 16);
});
};
Ec.prototype.getValue = function(a) {
return this._core.Storage.get(v.PRIVATE, a).then(function(a) {
return a;
}).catch(function(a) {
a = h.makeIterator(a).next().value;
switch(a) {
case mb[mb.COULDNT_GET_VALUE]:
break;
case mb[mb.COULDNT_GET_STORAGE]:
break;
default:
throw Error(a);
}
});
};
Ra.getCommonObject = function(a, c, d, e, f, g) {
return {common:{appid:g.getUnityProjectId(), userid:c, sessionid:d, platform:a
=== p.IOS ? "IPhonePlayer" : "AndroidPlayer", platformid:a === p.IOS ? 8 : 11,
sdk_ver:e.getSdkVersionName(), adsid:Ra.getAdvertisingIdentifier(f),
ads_tracking:f.getLimitAdTracking() ? !1 : !0, ads_coppa:g.isCoppaCompliant(),
ads_gameid:e.getGameId(), ads_sdk:!0, iap_ver:"ads sdk",
gamer_token:g.getToken()}};
};
Ra.getDeviceInfoObject = function(a, c, d, e) {
return Promise.all([Ra.getScreen(a, c, e), Ra.getDeviceModel(a, c,
e)]).then(function(c) {
var f = h.makeIterator(c);
c = f.next().value;
f = f.next().value;
return {type:"analytics.deviceInfo.v1", msg:{ts:Date.now(),
app_ver:d.getApplicationVersion(), adsid:e.getAdvertisingIdentifier(),
ads_tracking:e.getLimitAdTracking() ? !1 : !0, os_ver:Ra.getOsVersion(a, e),
model:f, app_name:d.getApplicationName(), ram:Math.round(e.getTotalMemory() /
1024), screen:c, lang:e.getLanguage().split("_")[0], rooted_jailbroken:e.isRooted()
? !0 : !1}};
});
};
Ra.getStartObject = function() {
return {type:"analytics.appStart.v1", msg:{ts:Date.now()}};
};
Ra.getInstallObject = function(a) {
return {type:"analytics.appInstall.v1", msg:{ts:Date.now(),
app_ver:a.getApplicationVersion()}};
};
Ra.getUpdateObject = function(a) {
return {type:"analytics.appUpdate.v1", msg:{ts:Date.now(),
app_ver:a.getApplicationVersion()}};
};
Ra.getRunningObject = function(a) {
return {type:"analytics.appRunning.v1", msg:{ts:Date.now(), duration:a,
local_time_offset:-6E4 * (new Date).getTimezoneOffset()}};
};
Ra.getOsVersion = function(a, c) {
return a === p.IOS ? "iOS " + c.getOsVersion() : a === p.ANDROID && c
instanceof G ? "Android OS " + c.getOsVersion() + " / API-" + c.getApiLevel() : "";
};
Ra.getAdvertisingIdentifier = function(a) {
if (a = a.getAdvertisingIdentifier()) {
return a.toLowerCase();
}
};
Ra.getScreen = function(a, c, d) {
return a === p.IOS ? Promise.all([d.getScreenWidth(), d.getScreenHeight(),
c.DeviceInfo.Ios.isStatusBarHidden(),
c.DeviceInfo.Ios.getStatusBarHeight()]).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
var e = c.next().value, k = c.next().value;
c = c.next().value;
var n = a, m = e;
k || (m += c);
m > n && (n = e, m = a);
d instanceof Qa && (n *= d.getScreenScale(), m *= d.getScreenScale());
return Promise.resolve(n + " x " + m);
}) : Promise.all([d.getScreenWidth(), d.getScreenHeight()]).then(function(a) {
var c = h.makeIterator(a);
a = c.next().value;
c = c.next().value;
var d = a, e = c;
e > d && (d = c, e = a);
return Promise.resolve(d + " x " + e);
});
};
Ra.getDeviceModel = function(a, c, d) {
return a === p.IOS ? Promise.resolve(d.getModel()) : a === p.ANDROID && d
instanceof G ? c.DeviceInfo.Android.getDevice().then(function(a) {
return d.getManufacturer() + "/" + d.getModel() + "/" + a;
}) : Promise.resolve("");
};
Y.prototype.init = function() {
var a = this;
return this._clientInfo.isReinitialized() ?
Promise.all([this._storage.getUserId(),
this._storage.getSessionId(this._clientInfo.isReinitialized())]).then(function(c) {
var d = h.makeIterator(c);
c = d.next().value;
d = d.next().value;
a._userId = c;
a._sessionId = d;
a.subscribeListeners();
}) : Promise.all([this._storage.getUserId(),
this._storage.getSessionId(this._clientInfo.isReinitialized()),
this._storage.getAppVersion(), this._storage.getOsVersion()]).then(function(c) {
var d = h.makeIterator(c), e = d.next().value, f = d.next().value;
c = d.next().value;
d = d.next().value;
a._userId = e;
a._sessionId = f;
a._storage.setIds(e, f);
a.sendNewSession();
e = !1;
c ? a._clientInfo.getApplicationVersion() !== c && (a.sendAppUpdate(), e = !
0) : (a.sendNewInstall(), e = !0);
d && a._deviceInfo.getOsVersion() !== d && (e = !0);
e && (a.sendDeviceInfo(),
a._storage.setVersions(a._clientInfo.getApplicationVersion(),
a._deviceInfo.getOsVersion()));
a.subscribeListeners();
});
};
Y.prototype.getGameSessionId = function() {
return this._sessionId;
};
Y.prototype.subscribeListeners = function() {
var a = this;
this._focusManager.onAppForeground.subscribe(function() {
return a.onAppForeground();
});
this._focusManager.onAppBackground.subscribe(function() {
return a.onAppBackground();
});
this._focusManager.onActivityResumed.subscribe(function(c) {
return a.onActivityResumed(c);
});
this._focusManager.onActivityPaused.subscribe(function(c) {
return a.onActivityPaused(c);
});
};
Y.prototype.sendNewSession = function() {
this.send(Ra.getStartObject());
};
Y.prototype.sendAppRunning = function() {
this.send(Ra.getRunningObject(Math.round((this._bgTimestamp -
this._clientInfo.getInitTimestamp()) / 1000)));
};
Y.prototype.sendNewInstall = function() {
this.send(Ra.getInstallObject(this._clientInfo));
};
Y.prototype.sendAppUpdate = function() {
this.send(Ra.getUpdateObject(this._clientInfo));
};
Y.prototype.sendDeviceInfo = function() {
var a = this;
Ra.getDeviceInfoObject(this._platform, this._core, this._clientInfo,
this._deviceInfo).then(function(c) {
a.send(c);
});
};
Y.prototype.onAppForeground = function() {
var a = this;
this._bgTimestamp && Date.now() - this._bgTimestamp > this._newSessionTreshold
&& this._storage.getSessionId(!1).then(function(c) {
a._sessionId = c;
a._storage.setIds(a._userId, a._sessionId);
a.sendNewSession();
});
};
Y.prototype.onAppBackground = function() {
this._bgTimestamp = Date.now();
this.sendAppRunning();
};
Y.prototype.onActivityResumed = function(a) {
var c = this;
this._topActivity === a && this._bgTimestamp && Date.now() - this._bgTimestamp
> this._newSessionTreshold && this._storage.getSessionId(!1).then(function(a) {
c._sessionId = a;
c._storage.setIds(c._userId, c._sessionId);
c.sendNewSession();
});
this._topActivity = a;
};
Y.prototype.onActivityPaused = function(a) {
this._topActivity !== a && this._topActivity || (this._bgTimestamp =
Date.now(), this.sendAppRunning());
this._topActivity || (this._topActivity = a);
};
Y.prototype.onPostEvent = function(a) {
var c = this, d = [];
a = h.makeIterator(a);
for (var e = a.next(); !e.done; e = a.next()) {
e = this.parseAnalyticsEvent(e.value).then(function(a) {
a && (a = {identifier:ad.uuidv4(), event:a, posting:!1},
c._analyticsEventQueue[a.identifier] = a);
}), d.push(e);
}
Promise.all(d).then(function() {
c.flushEvents();
}).catch(function() {
c.flushEvents();
});
};
Y.prototype.send = function(a) {
var c = Ra.getCommonObject(this._platform, this._userId, this._sessionId,
this._clientInfo, this._deviceInfo, this._configuration);
a = JSON.stringify(c) + "\n" + JSON.stringify(a) + "\n";
return this._request.post(this._endpoint, a);
};
Y.prototype.sendEvents = function(a) {
var c = this, d = Ra.getCommonObject(this._platform, this._userId,
this._sessionId, this._clientInfo, this._deviceInfo, this._configuration);
d = JSON.stringify(d) + "\n" + a.map(function(a) {
return JSON.stringify(a.event);
}).join("\n");
return this._request.post(this._cdpEndpoint, d).then(function() {
for (var d = h.makeIterator(a), f = d.next(); !f.done; f = d.next()) {
delete c._analyticsEventQueue[f.value.identifier];
}
}).catch(function(d) {
a.map(function(a) {
a.posting = !1;
});
c._core.Sdk.logError(d.message);
throw d;
});
};
Y.prototype.flushEvents = function() {
for (var a = [], c = [], d =
h.makeIterator(Object.keys(this._analyticsEventQueue)), e = d.next(); !e.done; e =
d.next()) {
e = this._analyticsEventQueue[e.value], 10 === a.length &&
(c.push(this.sendEvents(a)), a = []), e.posting || (e.posting = !0, a.push(e));
}
0 < a.length && c.push(this.sendEvents(a));
return Promise.all(c);
};
Y.prototype.buildMonetizationExtras = function() {
return {gamer_token:this._configuration.getToken(),
game_id:this._clientInfo.getGameId()};
};
Y.prototype.parseAnalyticsEvent = function(a) {
try {
if (this.isItemAcquired(a)) {
return this.buildItemAcquired(a);
}
if (this.isItemSpent(a)) {
return this.buildItemSpent(a);
}
if (this.isLevelFailed(a)) {
return this.buildLevelFailed(a);
}
if (this.isLevelUp(a)) {
return this.buildLevelUp(a);
}
if (this.isAdComplete(a)) {
return this.buildAdComplete(a);
}
if (this.isIapTransaction(a)) {
return this.buildIapTransaction(a);
}
this._core.Sdk.logError("parseAnalyticsEvent was not able to parse event");
return Promise.resolve(null);
} catch (c) {
return this._core.Sdk.logError(c), Promise.resolve(null);
}
};
Y.prototype.buildIapTransaction = function(a) {
a.msg.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
a.msg.transactionid = 0;
a.msg.iap_service = !1;
return Promise.resolve(a);
};
Y.prototype.isIapTransaction = function(a) {
if (a && a.msg && "analytics.transaction.v1" === a.type) {
a = a.msg;
if (!a.ts) {
throw Error('AnalyticsIapTransactionEvent is missing field : "ts"');
}
if (!a.productid) {
throw Error('AnalyticsIapTransactionEvent is missing field : "productid"');
}
if (!a.amount) {
throw Error('AnalyticsIapTransactionEvent is missing field : "amount"');
}
if (!a.currency) {
throw Error('AnalyticsIapTransactionEvent is missing field : "currency"');
}
if (null === a.promo || void 0 === a.promo) {
throw Error('AnalyticsIapTransactionEvent is missing field : "promo"');
}
if (!a.receipt) {
throw Error('AnalyticsIapTransactionEvent is missing field : "receipt"');
}
return !0;
}
return !1;
};
Y.prototype.buildAdComplete = function(a) {
var c = (new Date).getTime();
a.msg.t_since_start = 1000 * (c - a.msg.ts);
a.msg.custom_params.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
return Promise.resolve(a);
};
Y.prototype.isAdComplete = function(a) {
if (a && a.msg && "analytics.custom.v1" === a.type && (a = a.msg, a.ts &&
a.name && a.custom_params && "ad_complete" === a.name)) {
a = a.custom_params;
if (void 0 === a.rewarded || null === a.rewarded) {
throw Error('AnalyticsAdCompleteEvent is missing field : "rewarded"');
}
if (!a.network) {
throw Error('AnalyticsAdCompleteEvent is missing field : "network"');
}
if (!a.placement_id) {
throw Error('AnalyticsAdCompleteEvent is missing field : "placement_id"');
}
return !0;
}
return !1;
};
Y.prototype.buildLevelFailed = function(a) {
var c = (new Date).getTime();
a.msg.t_since_start = 1000 * (c - a.msg.ts);
a.msg.custom_params.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
return Promise.resolve(a);
};
Y.prototype.isLevelFailed = function(a) {
if (a && a.msg && "analytics.custom.v1" === a.type && (a = a.msg, a.ts &&
a.name && a.custom_params && "level_fail" === a.name)) {
if (!a.custom_params.level_index) {
throw Error('AnalyticsLevelFailedEvent is missing field : "level_index"');
}
return !0;
}
return !1;
};
Y.prototype.buildLevelUp = function(a) {
var c = (new Date).getTime();
a.msg.t_since_start = 1000 * (c - a.msg.ts);
a.msg.custom_params.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
return Promise.resolve(a);
};
Y.prototype.isLevelUp = function(a) {
if (a && a.msg && "analytics.custom.v1" === a.type && (a = a.msg, a.ts &&
a.name && a.custom_params && "level_up" === a.name)) {
if (!a.custom_params.new_level_index) {
throw Error('AnalyticsLevelUpEvent is missing field : "new_level_index"');
}
return !0;
}
return !1;
};
Y.prototype.buildItemSpent = function(a) {
var c = (new Date).getTime();
a.msg.t_since_start = 1000 * (c - a.msg.ts);
a.msg.custom_params.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
return Promise.resolve(a);
};
Y.prototype.isItemSpent = function(a) {
if (a && a.msg && a.type && "analytics.custom.v1" === a.type && (a = a.msg,
a.ts && a.name && a.custom_params && "item_spent" === a.name)) {
a = a.custom_params;
if (!a.currency_type) {
throw Error('AnalyticsItemSpentEvent is missing field : "currency_type"');
}
if (!a.transaction_context) {
throw Error('AnalyticsItemSpentEvent is missing field :
"transaction_context"');
}
if (!a.amount) {
throw Error('AnalyticsItemSpentEvent is missing field : "amount"');
}
if (!a.item_id) {
throw Error('AnalyticsItemSpentEvent is missing field : "item_id"');
}
if (!a.balance) {
throw Error('AnalyticsItemSpentEvent is missing field : "balance"');
}
if (!a.item_type) {
throw Error('AnalyticsItemSpentEvent is missing field : "item_type"');
}
if (!a.level) {
throw Error('AnalyticsItemSpentEvent is missing field : "level"');
}
if (!a.transaction_id) {
throw Error('AnalyticsItemSpentEvent is missing field : "transaction_id"');
}
return !0;
}
return !1;
};
Y.prototype.buildItemAcquired = function(a) {
var c = (new Date).getTime();
a.msg.t_since_start = 1000 * (c - a.msg.ts);
a.msg.custom_params.unity_monetization_extras =
JSON.stringify(this.buildMonetizationExtras());
return Promise.resolve(a);
};
Y.prototype.isItemAcquired = function(a) {
if (a && a.msg && a.type && "analytics.custom.v1" === a.type && (a = a.msg,
a.ts && a.name && a.custom_params && "item_acquired" === a.name)) {
a = a.custom_params;
if (!a.currency_type) {
throw Error('AnalyticsItemAcquiredEvent is missing field :
"currency_type"');
}
if (!a.transaction_context) {
throw Error('AnalyticsItemAcquiredEvent is missing field :
"transaction_context"');
}
if (!a.amount) {
throw Error('AnalyticsItemAcquiredEvent is missing field : "amount"');
}
if (!a.item_id) {
throw Error('AnalyticsItemAcquiredEvent is missing field : "item_id"');
}
if (!a.balance) {
throw Error('AnalyticsItemAcquiredEvent is missing field : "balance"');
}
if (!a.item_type) {
throw Error('AnalyticsItemAcquiredEvent is missing field : "item_type"');
}
if (!a.level) {
throw Error('AnalyticsItemAcquiredEvent is missing field : "level"');
}
if (!a.transaction_id) {
throw Error('AnalyticsItemAcquiredEvent is missing field :
"transaction_id"');
}
return !0;
}
return !1;
};
Y.storageAnalyticsQueueKey = "analytics.event.queue";
Kg.prototype.initialize = function() {
var a = this;
return this._core.Config.isAnalyticsEnabled() ||
O.isExampleGameId(this._core.ClientInfo.getGameId()) ?
this.AnalyticsManager.init().then(function() {
return a.AnalyticsManager.getGameSessionId();
}) :
this.AnalyticsStorage.getSessionId(this._core.ClientInfo.isReinitialized()).then(fu
nction(c) {
a.AnalyticsStorage.setSessionId(c);
return c;
});
};
h.inherits(Uf, hb);
var Vb;
(function(a) {
a.CAMPAIGN = "campaign";
a.FILES = "files";
a.CAMPAIGNS = "campaigns";
})(Vb || (Vb = {}));
Jb.prototype.cleanCache = function() {
var a = this;
return Promise.all([this.getFilesKeys(), this._core.Cache.getFiles(),
this.getCacheCampaigns()]).then(function(c) {
c = h.makeIterator(c);
var d = c.next().value, e = c.next().value;
c = c.next().value;
if (!e || !e.length) {
var f = 0;
if (c) {
for (var g in c) {
c.hasOwnProperty(g) && f++;
}
}
return d && 0 < d.length || 0 < f ? a.deleteCacheBookKeepingData() :
a.cleanCacheBookKeeping();
}
return a.cleanCacheBookKeeping().then(function() {
var c = [], f = (new Date).getTime() - 18144E5, g = [], k = [], m = 0, p =
0, q = 0;
e.sort(function(a, c) {
return c.mtime - a.mtime;
});
for (var t = h.makeIterator(e), u = t.next(); !u.done; u = t.next()) {
u = u.value, m += u.size, u.mtime < f || 52428800 < m ? (k.push(u.id), p
+= u.size) : (g.push(u.id), q += u.size);
}
0 < k.length ? a._core.Sdk.logDebug("Unity Ads cache: Deleting " + k.length
+ " old files (" + p / 1024 + "kB), keeping " + g.length + " cached files (" + q /
1024 + "kB)") : a._core.Sdk.logDebug("Unity Ads cache: Keeping " + g.length + "
cached files (" + q / 1024 + "kB)");
var w = !1;
k.map(function(e) {
-1 !== d.indexOf(wa.getFileIdHash(e)) &&
(c.push(a._core.Storage.delete(v.PRIVATE, a.makeCacheKey(Vb.FILES,
wa.getFileIdHash(e))).catch(function() {
a._core.Sdk.logDebug("Error while removing file storage entry");
})), w = !0);
c.push(a._core.Cache.deleteFile(e));
});
w && c.push(a._core.Storage.write(v.PRIVATE));
g.map(function(d) {
c.push(a.getFileInfo(d).then(function(c) {
return !0 === c.fullyDownloaded ? Promise.all([]) :
Promise.all([a._core.Sdk.logDebug("Unity ads cache: Deleting partial download " +
d), a._core.Storage.delete(v.PRIVATE, a.makeCacheKey(Vb.FILES,
wa.getFileIdHash(d))).catch(function() {
a._core.Sdk.logDebug("Error while removing file storage entry for
partially downloaded file");
}), a._core.Storage.write(v.PRIVATE), a._core.Cache.deleteFile(d)]);
}).catch(function() {
return Promise.all([a._core.Sdk.logDebug("Unity ads cache: Deleting
desynced download " + d), a._core.Cache.deleteFile(d)]);
}));
});
return Promise.all([a._core.Cache.getFiles(),
a.getCacheCampaigns()]).then(function(d) {
d = h.makeIterator(d);
var e = d.next().value;
d = d.next().value;
var f = [];
e.map(function(a) {
f.push(wa.getFileIdHash(a.id));
});
e = !1;
var g = {}, k;
for (k in d) {
g.$jscomp$loop$prop$campaignId$111 = k;
if (d.hasOwnProperty(g.$jscomp$loop$prop$campaignId$111)) {
for (var l in d[g.$jscomp$loop$prop$campaignId$111]) {
if (d[g.$jscomp$loop$prop$campaignId$111].hasOwnProperty(l) && -1
=== f.indexOf(l)) {
c.push(a._core.Storage.delete(v.PRIVATE,
a.makeCacheKey(Vb.CAMPAIGNS, g.$jscomp$loop$prop$campaignId$111)).catch(function(c)
{
return function(d) {
F.trigger("clean_cache_delete_storage_entry_failed",
{cleanCacheError:d, cleanCacheKey:a.makeCacheKey(Vb.CAMPAIGNS, c.
$jscomp$loop$prop$campaignId$111), cleanCacheErrorType:"deleteUncachedCampaign"});
};
}(g)));
e = !0;
break;
}
}
}
g = {$jscomp$loop$prop$campaignId$111:g.
$jscomp$loop$prop$campaignId$111};
}
e && c.push(a._core.Storage.write(v.PRIVATE));
}).then(function() {
return Promise.all(c);
});
});
});
};
Jb.prototype.writeFileForCampaign = function(a, c) {
var d = this;
return this._core.Storage.set(v.PRIVATE, this.makeCacheKey(Vb.CAMPAIGNS, a,
wa.getFileIdHash(c)), {extension:wa.getFileIdExtension(c)}).then(function() {
d._core.Storage.write(v.PRIVATE);
}).catch(function() {
return Promise.resolve();
});
};
Jb.prototype.createFileInfo = function(a, c, d, e) {
return {fullyDownloaded:a, size:c, totalSize:d, extension:e};
};
Jb.prototype.getFileInfo = function(a) {
return this._core.Storage.get(v.PRIVATE, this.makeCacheKey(Vb.FILES,
wa.getFileIdHash(a)));
};
Jb.prototype.writeFileEntry = function(a, c) {
this._core.Storage.set(v.PRIVATE, this.makeCacheKey(Vb.FILES,
wa.getFileIdHash(a)), c);
this._core.Storage.write(v.PRIVATE);
};
Jb.prototype.removeFileEntry = function(a) {
this._core.Storage.delete(v.PRIVATE, this.makeCacheKey(Vb.FILES,
wa.getFileIdHash(a)));
this._core.Storage.write(v.PRIVATE);
};
Jb.prototype.deleteCachedCampaignResponse = function() {
var a = this, c = this._core.Storage.delete(v.PRIVATE,
this.makeCacheKey(Vb.CAMPAIGN, "url")), d = this._core.Storage.delete(v.PRIVATE,
this.makeCacheKey(Vb.CAMPAIGN, "response"));
return Promise.all([c, d]).then(function() {
return a._core.Storage.write(v.PRIVATE);
}).catch(function() {
});
};
Jb.prototype.deleteCacheBookKeepingData = function() {
var a = this;
return this._core.Storage.delete(v.PRIVATE, this._rootKey).then(function() {
return a._core.Storage.write(v.PRIVATE);
}).catch(function() {
return Promise.resolve();
});
};
Jb.prototype.cleanCacheBookKeeping = function() {
var a = this;
return this.getKeys().then(function(c) {
c = c.filter(function(a) {
return a && !(a.toUpperCase() in Vb);
}).map(function(c) {
return a._core.Storage.delete(v.PRIVATE, a._rootKey + "." + c);
});
return 0 < c.length ? Promise.all(c).catch(function() {
return Promise.resolve();
}).then(function() {
return a._core.Storage.write(v.PRIVATE);
}).catch(function() {
return Promise.resolve();
}) : Promise.resolve();
}).catch(function() {
return Promise.resolve();
});
};
Jb.prototype.getKeysForKey = function(a, c) {
return this._core.Storage.getKeys(v.PRIVATE, a, c).then(function(a) {
return a;
}).catch(function() {
return [];
});
};
Jb.prototype.getKeys = function() {
return this.getKeysForKey(this._rootKey, !1);
};
Jb.prototype.getFilesKeys = function() {
return this.getKeysForKey(this.makeCacheKey(Vb.FILES), !1);
};
Jb.prototype.makeCacheKey = function(a, c) {
for (var d = [], e = 1; e < arguments.length; ++e) {
d[e - 1] = arguments[e];
}
e = this._rootKey + "." + a;
d && 0 < d.length && (e = d.reduce(function(a, c) {
return a + "." + c;
}, e));
return e;
};
Jb.prototype.getCacheCampaigns = function() {
return this._core.Storage.get(v.PRIVATE,
this.makeCacheKey(Vb.CAMPAIGNS)).then(function(a) {
return a;
}).catch(function() {
return {};
});
};
h.inherits(Ee, Ua);
Ee.prototype.getName = function() {
return this.get("name");
};
Ee.prototype.getVersion = function() {
return this.get("version");
};
Ee.prototype.getDTO = function() {
return {adapterName:this.getName(), adapterVersion:this.getVersion()};
};
Ta.setTestBaseUrl = function(a) {
Ta.ConfigBaseUrl = a + "/games";
};
Ta.setAbGroup = function(a) {
Ta.AbGroup = a;
};
Ta.prototype.getConfig = function(a) {
var c = this;
return this._rawConfig ? Promise.resolve(this._rawConfig) :
Promise.all([this._metaDataManager.fetch(ce), this._metaDataManager.fetch(Ee),
this.fetchGamerToken()]).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
var f = e.next().value;
e = e.next().value;
var g;
c._platform === p.IOS && c._core.DeviceInfo.getLimitAdTrackingFlag() ? g =
e : e && c.deleteGamerToken();
var k = c.createConfigUrl(d, f, g);
a.addTag(Hb.DeviceType, p[c._platform]);
c._core.Sdk.logInfo("Requesting configuration from " + k);
return c._request.get(k, [], {retries:2, retryDelay:10000, followRedirects:!
1, retryWithConnectionEvents:!0}).then(function(d) {
a.addTag(Hb.StatusCode, d.responseCode.toString());
try {
return c._rawConfig = vd.parse(d.response), c._rawConfig;
} catch (W) {
throw F.trigger("config_parsing_failed", {configUrl:k,
configResponse:d.response}), c._core.Sdk.logError("Config request failed " +
JSON.stringify(W)), Error(W);
}
}).catch(function(c) {
if (c instanceof ed) {
var d = c;
d.nativeResponse && d.nativeResponse.responseCode &&
a.addTag(Hb.StatusCode, d.nativeResponse.responseCode.toString());
d.nativeResponse && d.nativeResponse.response && (c =
vd.parse(d.nativeResponse.response), c = new Uf(Error(c.error)));
}
throw c;
});
});
};
Ta.prototype.createConfigUrl = function(a, c, d) {
var e = [Ta.ConfigBaseUrl, this._clientInfo.getGameId(),
"configuration"].join("/");
if (Ta.AbGroup) {
var f = Ta.AbGroup;
}
e = u.addParameters(e, {bundleId:this._clientInfo.getApplicationName(),
encrypted:!this._clientInfo.isDebuggable(), rooted:this._deviceInfo.isRooted(),
platform:p[this._platform].toLowerCase(),
sdkVersion:this._clientInfo.getSdkVersion(),
osVersion:this._deviceInfo.getOsVersion(), deviceModel:this._deviceInfo.getModel(),
language:this._deviceInfo.getLanguage(), test:this._clientInfo.getTestMode(),
gamerToken:d, analyticsUserId:this._unityInfo.getAnalyticsUserId(),
analyticsSessionId:this._unityInfo.getAnalyticsSessionId(),
forceAbGroup:f});
this._platform === p.ANDROID && (e = u.addParameters(e,
{deviceMake:this._deviceInfo.getManufacturer()}));
this._deviceInfo.getAdvertisingIdentifier() ? e = u.addParameters(e,
{advertisingTrackingId:this._deviceInfo.getAdvertisingIdentifier(),
limitAdTracking:this._deviceInfo.getLimitAdTracking()}) : this._platform ===
p.ANDROID && (e = u.addParameters(e, {androidId:this._deviceInfo.getAndroidId()}));
a && (e = u.addParameters(e, a.getDTO()));
c && (e = u.addParameters(e, c.getDTO()));
return e;
};
Ta.prototype.fetchValue = function(a) {
return this._core.Storage.get(v.PRIVATE, a).then(function(a) {
return a;
}).catch(function() {
});
};
Ta.prototype.storeValue = function(a, c) {
return Promise.all([this._core.Storage.set(v.PRIVATE, a, c),
this._core.Storage.write(v.PRIVATE)]);
};
Ta.prototype.deleteValue = function(a) {
return Promise.all([this._core.Storage.delete(v.PRIVATE, a),
this._core.Storage.write(v.PRIVATE)]);
};
Ta.prototype.fetchGamerToken = function() {
return this.fetchValue("gamerToken");
};
Ta.prototype.storeGamerToken = function(a) {
return this.storeValue("gamerToken", a);
};
Ta.prototype.deleteGamerToken = function() {
return this.deleteValue("gamerToken");
};
Ta.ConfigBaseUrl = "https://publisher-config.unityads.unity3d.com/games";
cb.prototype.setListenAppForeground = function(a) {
return a ?
this._core.iOS.Notification.addNotificationObserver(cb._appForegroundNotification,
[]) :
this._core.iOS.Notification.removeNotificationObserver(cb._appForegroundNotificatio
n);
};
cb.prototype.setListenAppBackground = function(a) {
return a ?
this._core.iOS.Notification.addNotificationObserver(cb._appBackgroundNotification,
[]) :
this._core.iOS.Notification.removeNotificationObserver(cb._appBackgroundNotificatio
n);
};
cb.prototype.setListenAndroidLifecycle = function(a) {
return a ? this._core.Android.Lifecycle.register(["onActivityResumed",
"onActivityPaused"]) : this._core.Android.Lifecycle.unregister();
};
cb.prototype.setListenScreen = function(a) {
return a ?
this._core.Android.Broadcast.addBroadcastListener(this._screenListener,
[this.ACTION_SCREEN_ON]) :
this._core.Android.Broadcast.removeBroadcastListener(this._screenListener);
};
cb.prototype.isAppForeground = function() {
return this._appForeground;
};
cb.prototype.onNotification = function(a) {
a === cb._appForegroundNotification ? (this._appForeground = !0,
this.onAppForeground.trigger()) : a === cb._appBackgroundNotification &&
(this._appForeground = !1, this.onAppBackground.trigger());
};
cb.prototype.onResume = function(a) {
this._appForeground = !0;
this._topActivity = a;
this.onActivityResumed.trigger(a);
};
cb.prototype.onPause = function(a) {
this._topActivity && a !== this._topActivity || (this._appForeground = !1,
delete this._topActivity);
this.onActivityPaused.trigger(a);
};
cb.prototype.onDestroyed = function(a) {
this.onActivityDestroyed.trigger(a);
};
cb.prototype.onBroadcastAction = function(a, c) {
if (a === this._screenListener) {
switch(c) {
case this.ACTION_SCREEN_ON:
this.onScreenOn.trigger();
}
}
};
cb._appForegroundNotification = "UIApplicationDidBecomeActiveNotification";
cb._appBackgroundNotification = "UIApplicationWillResignActiveNotification";
db.prototype.setJaegerTracingEnabled = function(a) {
this._isJaegerTracingEnabled = a;
};
db.prototype.isJaegerTracingEnabled = function() {
return this._isJaegerTracingEnabled;
};
db.prototype.getTraceId = function(a) {
return ["uber-trace-id", a.traceId + ":" + a.id + ":" + (a.parentId ?
a.parentId : "0") + ":" + (this._isJaegerTracingEnabled ? "01" : "00")];
};
db.prototype.addOpenSpan = function(a) {
db._openSpans[a.id] = a;
};
db.prototype.startSpan = function(a, c, d) {
a = new Qe(a, c, d);
return db._openSpans[a.id] = a;
};
db.prototype.stop = function(a) {
a.stop();
db._closedSpans[a.id] = a;
delete db._openSpans[a.id];
this.flushClosedSpans();
};
db.prototype.flushClosedSpans = function() {
if (0 >= Object.keys(db._openSpans).length) {
var a = [];
Object.keys(db._closedSpans).forEach(function(c) {
a.push(db._closedSpans[c]);
delete db._closedSpans[c];
});
0 < a.length && this.postToJaeger(a);
}
};
db.prototype.postToJaeger = function(a) {
if (!0 === this._isJaegerTracingEnabled) {
var c = [];
a = JSON.stringify(a);
c.push(["Content-Type", "application/json"]);
this._request.post("https://tracing-collector-
stg.internal.unity3d.com/api/v2/spans", a, c);
}
};
db._openSpans = {};
db._closedSpans = {};
Tf.prototype.fetch = function(a, c, d) {
var e = this;
c = void 0 === c ? !0 : c;
var f = new a;
return this._metaDataCache[f.getCategory()] && (f =
this._metaDataCache[f.getCategory()], !d) ? Promise.resolve(f) :
f.fetch(this._platform, this._core, d).then(function(a) {
if (a) {
return c && (e._metaDataCache[f.getCategory()] = f), f;
}
});
};
Tf.prototype.clearCache = function(a) {
a ? this._metaDataCache[a] && (this._metaDataCache[a] = void 0) :
this._metaDataCache = {};
};
Kb.onResolveComplete = function(a, c, d) {
var e = Kb._callbacks[a];
e && (e.resolve([a, c, d]), delete Kb._callbacks[a]);
};
Kb.onResolveFailed = function(a, c, d, e) {
if (c = Kb._callbacks[a]) {
c.reject([d, e]), delete Kb._callbacks[a];
}
};
Kb.prototype.resolve = function(a) {
var c = Kb._callbackId++, d = this.registerCallback(c);
this._core.Resolve.resolve(c.toString(), a);
return d;
};
Kb.prototype.registerCallback = function(a) {
return new Promise(function(c, d) {
Kb._callbacks[a] = new rg(c, d);
});
};
Kb._callbackId = 1;
Kb._callbacks = {};
Sf.prototype.setListenConnectivity = function(a) {
return this._core.Connectivity.setListeningStatus(a);
};
Sf.prototype.onConnected = function() {
this._firstConnection + 18E5 < Date.now() ? (this._firstConnection =
Date.now(), this._connectionEvents = 0, this.onNetworkConnected.trigger()) :
(this._connectionEvents++, 10 >= this._connectionEvents ?
this.onNetworkConnected.trigger() : 11 === this._connectionEvents &&
this._core.Sdk.logWarning("Unity Ads has received more than 10 connection events in
30 minutes, now ignoring connection events"));
};
h.inherits(vb, z);
vb.prototype.getGameId = function() {
return this.get("gameId");
};
vb.prototype.getTestMode = function() {
return this.get("testMode");
};
vb.prototype.getApplicationVersion = function() {
return this.get("applicationVersion");
};
vb.prototype.getApplicationName = function() {
return this.get("applicationName");
};
vb.prototype.getSdkVersion = function() {
return this.get("sdkVersion");
};
vb.prototype.getSdkVersionName = function() {
return this.get("sdkVersionName");
};
vb.prototype.isDebuggable = function() {
return this.get("debuggable");
};
vb.prototype.getConfigUrl = function() {
return this.get("configUrl");
};
vb.prototype.getWebviewUrl = function() {
return this.get("webviewUrl");
};
vb.prototype.getWebviewHash = function() {
return this.get("webviewHash");
};
vb.prototype.getWebviewVersion = function() {
return this.get("webviewVersion");
};
vb.prototype.getInitTimestamp = function() {
return this.get("initTimestamp");
};
vb.prototype.isReinitialized = function() {
return this.get("reinitialized");
};
vb.prototype.getDTO = function() {
return {gameId:this.getGameId(), testMode:this.getTestMode(),
bundleId:this.getApplicationName(), bundleVersion:this.getApplicationVersion(),
sdkVersion:this.getSdkVersion(), sdkVersionName:this.getSdkVersionName(),
encrypted:!this.isDebuggable(), configUrl:this.getConfigUrl(),
webviewUrl:this.getWebviewUrl(), webviewHash:this.getWebviewHash(),
webviewVersion:this.getWebviewVersion()};
};
h.inherits(Ad, z);
Ad.prototype.fetch = function() {
return Promise.all([]);
};
Ad.prototype.getAnalyticsUserId = function() {
return this.get("analyticsUserId");
};
Ad.prototype.getAnalyticsSessionId = function() {
return this.get("analyticsSessionId");
};
Ad.prototype.getDTO = function() {
return {analyticsUserId:this.getAnalyticsUserId(),
analyticsSessionId:this.getAnalyticsSessionId()};
};
Ad._userIdKey = "unity.cloud_userid";
Ad._sessionIdKey = "unity.player_sessionid";
var Mf;
(function(a) {
a[a.ACTION = 0] = "ACTION";
})(Mf || (Mf = {}));
h.inherits(Td, B);
Td.prototype.addBroadcastListener = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "addBroadcastListener", [a,
c]);
};
Td.prototype.addDataSchemeBroadcastListener = function(a, c, d) {
return this._nativeBridge.invoke(this._apiClass, "addBroadcastListener", [a, c,
d]);
};
Td.prototype.removeBroadcastListener = function(a) {
return this._nativeBridge.invoke(this._apiClass, "removeBroadcastListener",
[a]);
};
Td.prototype.removeAllBroadcastListeners = function() {
return this._nativeBridge.invoke(this._apiClass, "removeAllBroadcastListeners",
[]);
};
Td.prototype.handleEvent = function(a, c) {
a === Mf[Mf.ACTION] ? this.onBroadcastAction.trigger(c[0], c[1], c[2], c[3]) :
B.prototype.handleEvent.call(this, a, c);
};
h.inherits(Rf, B);
Rf.prototype.launch = function(a) {
return this._nativeBridge.invoke(this._apiClass, "launch", [a]);
};
var Sd;
(function(a) {
a[a.CONNECTED = 0] = "CONNECTED";
a[a.DISCONNECTED = 1] = "DISCONNECTED";
a[a.NETWORK_CHANGE = 2] = "NETWORK_CHANGE";
})(Sd || (Sd = {}));
h.inherits(lf, B);
lf.prototype.setListeningStatus = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setConnectionMonitoring",
[a]);
};
lf.prototype.handleEvent = function(a, c) {
switch(a) {
case Sd[Sd.CONNECTED]:
this.onConnected.trigger(c[0], c[1]);
break;
case Sd[Sd.DISCONNECTED]:
this.onDisconnected.trigger();
break;
case Sd[Sd.NETWORK_CHANGE]:
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
h.inherits(ub, B);
ub.prototype.getScreenScale = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenScale");
};
ub.prototype.getUserInterfaceIdiom = function() {
return this._nativeBridge.invoke(this._apiClass, "getUserInterfaceIdiom");
};
ub.prototype.getDeviceVolume = function() {
return this._nativeBridge.invoke(this._apiClass, "getDeviceVolume");
};
ub.prototype.getFreeSpace = function() {
return this._nativeBridge.invoke(this._apiClass, "getFreeSpace");
};
ub.prototype.getTotalSpace = function() {
return this._nativeBridge.invoke(this._apiClass, "getTotalSpace");
};
ub.prototype.isSimulator = function() {
return this._nativeBridge.invoke(this._apiClass, "isSimulator");
};
ub.prototype.getSensorList = function() {
return this._nativeBridge.invoke(this._apiClass, "getSensorList");
};
ub.prototype.getStatusBarHeight = function() {
return this._nativeBridge.invoke(this._apiClass, "getStatusBarHeight");
};
ub.prototype.getStatusBarWidth = function() {
return this._nativeBridge.invoke(this._apiClass, "getStatusBarWidth");
};
ub.prototype.isStatusBarHidden = function() {
return this._nativeBridge.invoke(this._apiClass, "isStatusBarHidden");
};
ub.prototype.getDeviceMaxVolume = function() {
return this._nativeBridge.invoke(this._apiClass, "getDeviceMaxVolume");
};
ub.prototype.registerVolumeChangeListener = function() {
return this._nativeBridge.invoke(this._apiClass,
"registerVolumeChangeListener");
};
ub.prototype.unregisterVolumeChangeListener = function() {
return this._nativeBridge.invoke(this._apiClass,
"unregisterVolumeChangeListener");
};
ub.prototype.handleEvent = function(a, c) {
switch(a) {
case we[we.VOLUME_CHANGED]:
this.onVolumeChanged.trigger(c[0], c[1]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
h.inherits(ya, B);
ya.prototype.getAdvertisingTrackingId = function() {
return this._nativeBridge.invoke(this._apiClass, "getAdvertisingTrackingId");
};
ya.prototype.getLimitAdTrackingFlag = function() {
return this._nativeBridge.invoke(this._apiClass, "getLimitAdTrackingFlag");
};
ya.prototype.getOsVersion = function() {
return this._nativeBridge.invoke(this._apiClass, "getOsVersion");
};
ya.prototype.getModel = function() {
return this._nativeBridge.invoke(this._apiClass, "getModel");
};
ya.prototype.getScreenWidth = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenWidth");
};
ya.prototype.getScreenHeight = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenHeight");
};
ya.prototype.getTimeZone = function(a) {
return this._nativeBridge.invoke(this._apiClass, "getTimeZone", [a]);
};
ya.prototype.getConnectionType = function() {
return this._nativeBridge.invoke(this._apiClass, "getConnectionType");
};
ya.prototype.getNetworkType = function() {
return this._nativeBridge.invoke(this._apiClass, "getNetworkType");
};
ya.prototype.getNetworkOperator = function() {
return this._nativeBridge.getPlatform() === p.IOS ?
this._nativeBridge.invoke(this._apiClass, "getNetworkOperator").then(function(a) {
return "string" === typeof a ? a : "";
}) : this._nativeBridge.invoke(this._apiClass, "getNetworkOperator");
};
ya.prototype.getNetworkOperatorName = function() {
return this._nativeBridge.getPlatform() === p.IOS ?
this._nativeBridge.invoke(this._apiClass,
"getNetworkOperatorName").then(function(a) {
return "string" === typeof a ? a : "";
}) : this._nativeBridge.invoke(this._apiClass, "getNetworkOperatorName");
};
ya.prototype.isRooted = function() {
return this._nativeBridge.invoke(this._apiClass, "isRooted");
};
ya.prototype.getUniqueEventId = function() {
return this._nativeBridge.invoke(this._apiClass, "getUniqueEventId");
};
ya.prototype.getHeadset = function() {
return this._nativeBridge.invoke(this._apiClass, "getHeadset");
};
ya.prototype.getSystemLanguage = function() {
return this._nativeBridge.invoke(this._apiClass, "getSystemLanguage");
};
ya.prototype.getScreenBrightness = function() {
return this._nativeBridge.invoke(this._apiClass, "getScreenBrightness");
};
ya.prototype.getBatteryLevel = function() {
return this._nativeBridge.invoke(this._apiClass, "getBatteryLevel");
};
ya.prototype.getBatteryStatus = function() {
return this._nativeBridge.invoke(this._apiClass, "getBatteryStatus");
};
ya.prototype.getFreeMemory = function() {
return this._nativeBridge.invoke(this._apiClass, "getFreeMemory");
};
ya.prototype.getTotalMemory = function() {
return this._nativeBridge.invoke(this._apiClass, "getTotalMemory");
};
ya.prototype.getGLVersion = function() {
return this._nativeBridge.invoke(this._apiClass, "getGLVersion");
};
var Nf;
(function(a) {
a[a.ACTION = 0] = "ACTION";
})(Nf || (Nf = {}));
h.inherits(zd, B);
zd.prototype.addNotificationObserver = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "addNotificationObserver", [a,
c]);
};
zd.prototype.removeNotificationObserver = function(a) {
return this._nativeBridge.invoke(this._apiClass, "removeNotificationObserver",
[a]);
};
zd.prototype.removeAllNotificationObservers = function() {
return this._nativeBridge.invoke(this._apiClass,
"removeAllNotificationObservers");
};
zd.prototype.addAVNotificationObserver = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "addAVNotificationObserver",
[a, c]);
};
zd.prototype.removeAVNotificationObserver = function(a) {
return this._nativeBridge.invoke(this._apiClass,
"removeAVNotificationObserver", [a]);
};
zd.prototype.handleEvent = function(a, c) {
switch(a) {
case Nf[Nf.ACTION]:
this.onNotification.trigger(c[0], c[1]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
h.inherits(Of, B);
Of.prototype.open = function(a) {
return this._nativeBridge.invoke(this._apiClass, "open", [a]);
};
var Ae;
(function(a) {
a[a.COMPLETE = 0] = "COMPLETE";
a[a.FAILED = 1] = "FAILED";
})(Ae || (Ae = {}));
h.inherits(Rc, B);
Rc.prototype.get = function(a, c, d, e, f) {
return this._nativeBridge.getPlatform() === p.IOS ?
this._nativeBridge.invoke(this._apiClass, "get", [a, c, d, e]) :
this._nativeBridge.invoke(this._apiClass, "get", [a, c, d, e, f]);
};
Rc.prototype.post = function(a, c, d, e, f, g) {
return this._nativeBridge.getPlatform() === p.IOS ?
this._nativeBridge.invoke(this._apiClass, "post", [a, c, d, e, f]) :
this._nativeBridge.invoke(this._apiClass, "post", [a, c, d, e, f, g]);
};
Rc.prototype.head = function(a, c, d, e, f) {
return this._nativeBridge.getPlatform() === p.IOS ?
this._nativeBridge.invoke(this._apiClass, "head", [a, c, d, e]) :
this._nativeBridge.invoke(this._apiClass, "head", [a, c, d, e, f]);
};
Rc.prototype.setConnectTimeout = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setConnectTimeout", [a]);
};
Rc.prototype.getConnectTimeout = function() {
return this._nativeBridge.invoke(this._apiClass, "getConnectTimeout");
};
Rc.prototype.setReadTimeout = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setReadTimeout", [a]);
};
Rc.prototype.getReadTimeout = function() {
return this._nativeBridge.invoke(this._apiClass, "getReadTimeout");
};
Rc.prototype.handleEvent = function(a, c) {
switch(a) {
case Ae[Ae.COMPLETE]:
this.onComplete.trigger(c[0], c[1], c[2], c[3], c[4]);
break;
case Ae[Ae.FAILED]:
this.onFailed.trigger(c[0], c[1], c[2]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
var Be;
(function(a) {
a[a.COMPLETE = 0] = "COMPLETE";
a[a.FAILED = 1] = "FAILED";
})(Be || (Be = {}));
h.inherits(jf, B);
jf.prototype.resolve = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "resolve", [a, c]);
};
jf.prototype.handleEvent = function(a, c) {
switch(a) {
case Be[Be.COMPLETE]:
this.onComplete.trigger(c[0], c[1], c[2]);
break;
case Be[Be.FAILED]:
this.onFailed.trigger(c[0], c[1], c[2], c[3]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
h.inherits(La, B);
La.prototype.loadComplete = function() {
return this._nativeBridge.invoke(this._apiClass, "loadComplete");
};
La.prototype.initComplete = function() {
return this._nativeBridge.invoke(this._apiClass, "initComplete");
};
La.prototype.setDebugMode = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setDebugMode", [a]);
};
La.prototype.getDebugMode = function() {
return this._nativeBridge.invoke(this._apiClass, "getDebugMode");
};
La.prototype.logError = function(a) {
return this._nativeBridge.invoke(this._apiClass, "logError", [a]);
};
La.prototype.logWarning = function(a) {
return this._nativeBridge.invoke(this._apiClass, "logWarning", [a]);
};
La.prototype.logInfo = function(a) {
return this._nativeBridge.invoke(this._apiClass, "logInfo", [a]);
};
La.prototype.logDebug = function(a) {
return this._nativeBridge.invoke(this._apiClass, "logDebug", [a]);
};
La.prototype.setShowTimeout = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setShowTimeout", [a]);
};
La.prototype.reinitialize = function() {
this._nativeBridge.invoke(this._apiClass, "reinitialize");
};
ke.parse = function(a) {
a = {enabled:a.enabled, country:a.country, coppaCompliant:a.coppaCompliant,
abGroup:Xg(a.abGroup), properties:a.properties, analytics:a.analytics ? !0 : !1,
test:a.test ? !0 : !1, projectId:a.projectId, token:a.token,
jaegerTracing:a.jaegerTracing ? !0 : !1, organizationId:a.organizationId};
a = new Eb(a);
if (a.getToken()) {
return a;
}
throw Error("gamer token missing in PLC config");
};
nc.prototype.queue = function(a) {
var c = this, d = a.getType();
a = a.getBatch();
0 !== a.commands.length && (d === v.PUBLIC ? this._publicStorageQueue.commands
= this._publicStorageQueue.commands.concat(a.commands) :
this._privateStorageQueue.commands =
this._privateStorageQueue.commands.concat(a.commands), this._storageBatchTimer ||
(this._storageBatchTimer = window.setTimeout(function() {
c.executeBatch(v.PUBLIC, c._publicStorageQueue);
c.executeBatch(v.PRIVATE, c._privateStorageQueue);
delete c._storageBatchTimer;
}, this._storageBatchInterval)));
};
nc.prototype.isEmpty = function() {
return 0 === this._publicStorageQueue.commands.length && 0 ===
this._privateStorageQueue.commands.length;
};
nc.prototype.executeBatch = function(a, c) {
if (0 !== c.commands.length) {
var d;
c = h.makeIterator(c.commands);
for (d = c.next(); !d.done; d = c.next()) {
d = d.value, d.type === ve.SET ? this._core.Storage.set(a, d.key,
d.value) : d.type === ve.DELETE && this._core.Storage.delete(a, d.key);
}
this._core.Storage.write(a);
a === v.PUBLIC ? (this._publicStorageQueue = {commands:[]},
this.onPublicStorageWrite.trigger()) : (this._privateStorageQueue = {commands:[]},
this.onPrivateStorageWrite.trigger());
}
};
var oh;
(function(a) {
a[a.APPLICATION_NULL = 0] = "APPLICATION_NULL";
a[a.LISTENER_NOT_NULL = 1] = "LISTENER_NOT_NULL";
a[a.JSON_ERROR = 2] = "JSON_ERROR";
})(oh || (oh = {}));
var Ib;
(function(a) {
a[a.CREATED = 0] = "CREATED";
a[a.STARTED = 1] = "STARTED";
a[a.RESUMED = 2] = "RESUMED";
a[a.PAUSED = 3] = "PAUSED";
a[a.STOPPED = 4] = "STOPPED";
a[a.SAVE_INSTANCE_STATE = 5] = "SAVE_INSTANCE_STATE";
a[a.DESTROYED = 6] = "DESTROYED";
})(Ib || (Ib = {}));
h.inherits(Ce, B);
Ce.prototype.register = function(a) {
return this._nativeBridge.invoke(this._apiClass, "register", [a]);
};
Ce.prototype.unregister = function() {
return this._nativeBridge.invoke(this._apiClass, "unregister");
};
Ce.prototype.handleEvent = function(a, c) {
switch(a) {
case Ib[Ib.CREATED]:
this.onActivityCreated.trigger(c[0]);
break;
case Ib[Ib.STARTED]:
this.onActivityStarted.trigger(c[0]);
break;
case Ib[Ib.RESUMED]:
this.onActivityResumed.trigger(c[0]);
break;
case Ib[Ib.PAUSED]:
this.onActivityPaused.trigger(c[0]);
break;
case Ib[Ib.STOPPED]:
this.onActivityStopped.trigger(c[0]);
break;
case Ib[Ib.SAVE_INSTANCE_STATE]:
this.onActivitySaveInstanceState.trigger(c[0]);
break;
case Ib[Ib.DESTROYED]:
this.onActivityDestroyed.trigger(c[0]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
var kd;
(function(a) {
a[a.PREPARED = 0] = "PREPARED";
a[a.OPENED = 1] = "OPENED";
a[a.CLOSED = 2] = "CLOSED";
a[a.FAILED = 3] = "FAILED";
})(kd || (kd = {}));
h.inherits(qa, B);
qa.prototype.canOpen = function() {
return this._nativeBridge.invoke(this._apiClass, "canOpen");
};
qa.prototype.prepare = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "prepare", [a, void 0 === c ?
30000 : c]);
};
qa.prototype.present = function(a, c) {
return this._nativeBridge.invoke(this._apiClass, "present", [a, void 0 ===
c ? !0 : c]);
};
qa.prototype.destroy = function(a) {
return "undefined" === typeof a ? this._nativeBridge.invoke(this._apiClass,
"destroy") : this._nativeBridge.invoke(this._apiClass, "destroy", [a]);
};
qa.prototype.setPrepareTimeout = function(a) {
return this._nativeBridge.invoke(this._apiClass, "setPrepareTimeout", [a]);
};
qa.prototype.getPrepareTimeout = function() {
return this._nativeBridge.invoke(this._apiClass, "getPrepareTimeout");
};
qa.prototype.handleEvent = function(a, c) {
switch(a) {
case kd[kd.PREPARED]:
this.onPrepared.trigger(c[0]);
break;
case kd[kd.OPENED]:
this.onOpen.trigger(c[0]);
break;
case kd[kd.CLOSED]:
this.onClose.trigger(c[0]);
break;
case kd[kd.FAILED]:
this.onError.trigger(c[0], c[1]);
break;
default:
B.prototype.handleEvent.call(this, a, c);
}
};
Ga.prototype.initialize = function() {
var a = this, c = new Qe("Initialize");
return this.Api.Sdk.loadComplete().then(function(d) {
c.addAnnotation("nativeBridge loadComplete");
a.ClientInfo = new vb(d);
if (!/^\d+$/.test(a.ClientInfo.getGameId())) {
return d = "Provided Game ID '" + a.ClientInfo.getGameId() + "' is invalid.
Game ID may contain only digits (0-9).",
a.Ads.Api.Listener.sendErrorEvent(zc[zc.INVALID_ARGUMENT], d), Promise.reject(d);
}
a.NativeBridge.getPlatform() === p.ANDROID ? (a.DeviceInfo = new G(a.Api),
a.RequestManager = new w(a.NativeBridge.getPlatform(), a.Api, a.WakeUpManager,
a.DeviceInfo)) : a.NativeBridge.getPlatform() === p.IOS && (a.DeviceInfo = new
Qa(a.Api), a.RequestManager = new w(a.NativeBridge.getPlatform(), a.Api,
a.WakeUpManager));
a.CacheManager = new la(a.Api, a.WakeUpManager, a.RequestManager,
a.CacheBookkeeping);
a.UnityInfo = new Ad(a.NativeBridge.getPlatform(), a.Api);
a.JaegerManager = new db(a.RequestManager);
a.JaegerManager.addOpenSpan(c);
H.setRequest(a.RequestManager);
H.setPlatform(a.NativeBridge.getPlatform());
H.setClientInfo(a.ClientInfo);
return Promise.all([a.DeviceInfo.fetch(),
a.UnityInfo.fetch(a.ClientInfo.getApplicationName()), a.setupTestEnvironment()]);
}).then(function() {
H.setDeviceInfo(a.DeviceInfo);
a._initialized = !0;
a._initializedAt = Date.now();
a.Api.Sdk.initComplete();
a.WakeUpManager.setListenConnectivity(!0);
a.NativeBridge.getPlatform() === p.IOS ?
(a.FocusManager.setListenAppForeground(!0), a.FocusManager.setListenAppBackground(!
0)) : (a.FocusManager.setListenScreen(!0),
a.FocusManager.setListenAndroidLifecycle(!0));
var d = a.JaegerManager.startSpan("FetchConfiguration", c.id, c.traceId);
a.ConfigManager = new Ta(a.NativeBridge.getPlatform(), a.Api,
a.MetaDataManager, a.ClientInfo, a.DeviceInfo, a.UnityInfo, a.RequestManager);
var e = E.get("creativeUrl") ? Promise.resolve(vd.parse('{\n "enabled":
true,\n "coppaCompliant": false,\n "assetCaching": "disabled",\n "projectId":
"0a379f5a-c4fa-4f7f-a5c1-e49fd3dd63d4",\n "gdprEnabled": false,\n
"optOutEnabled": false,\n "optOutRecorded": false,\n "placements": [{\n "id":
"defaultVideoAndPictureZone",\n "name": "Placement",\n "default": true,\n
"allowSkip": true,\n "disableBackButton": true,\n "muteVideo": false,\n
"useDeviceOrientationForVideo": false,\n "adTypes": ["MRAID", "VIDEO"],\n
"skipInSeconds": 5\n }, {\n "id": "incentivizedZone",\n "name":
"Placement",\n "default": false,\n "allowSkip": false,\n
"disableBackButton": true,\n "muteVideo": false,\n
"useDeviceOrientationForVideo": false,\n "adTypes": ["MRAID", "VIDEO"]\n }],\n
"properties": "tynbvvQLwnpf382fQqw4MzIk8YYdMj8DWebgn+QoOgpVVRYNFXY=",\n "country":
"FI",\n "abGroup": 0,\n "token": "abcd.1234.5678",\n "organizationId":
"5552368"\n}\n')) :
a.ConfigManager.getConfig(d);
e.then(function() {
a.JaegerManager.stop(d);
}).catch(function() {
a.JaegerManager.stop(d);
});
e = e.then(function(c) {
var d = ke.parse(c);
a.Api.Sdk.logInfo("Received configuration for token " + d.getToken() + "
(A/B group " + JSON.stringify(d.getAbGroup()) + ")");
a.NativeBridge.getPlatform() === p.IOS && a.DeviceInfo.getLimitAdTracking()
&& a.ConfigManager.storeGamerToken(d.getToken());
td.setup(a.ClientInfo.getGameId(), d.getOrganizationId());
return [c, d];
}).catch(function(a) {
d.addTag(Hb.Error, "true");
d.addTag(Hb.ErrorMessage, a.message);
d.addAnnotation(a.message);
throw Error(a);
});
var f = a.CacheBookkeeping.cleanCache().catch(function(c) {
a.Api.Sdk.logError("Unity Ads cleaning cache failed: " + c);
F.trigger("cleaning_cache_failed", c);
});
return Promise.all([e, f]);
}).then(function(c) {
c = h.makeIterator(c);
var d = h.makeIterator(c.next().value);
c = d.next().value;
d = d.next().value;
a.Config = d;
H.setConfiguration(a.Config);
a.JaegerManager.setJaegerTracingEnabled(a.Config.isJaegerTracingEnabled());
if (!a.Config.isEnabled()) {
throw c = Error("Game with ID " + a.ClientInfo.getGameId() + " is not
enabled"), c.name = "DisabledGame", c;
}
a.Analytics = new Kg(a);
return Promise.all([c, a.Analytics.initialize()]);
}).then(function(d) {
var e = h.makeIterator(d);
d = e.next().value;
e = e.next().value;
a.Store = new hf(a);
a.Ads = new Fc(d, a, a.Store);
a.Ads.SessionManager.setGameSessionId(e);
return a.Ads.initialize(c);
}).then(function() {
a.JaegerManager.stop(c);
}).catch(function(d) {
c.addAnnotation(d.message);
c.addTag(Hb.Error, "true");
c.addTag(Hb.ErrorMessage, d.message);
a.JaegerManager && a.JaegerManager.stop(c);
if (d instanceof Uf) {
d = {message:d.message, name:d.name},
a.Ads.Api.Listener.sendErrorEvent(zc[zc.INITIALIZE_FAILED], d.message);
} else {
if (d instanceof Error && "DisabledGame" === d.name) {
return;
}
}
a.Api.Sdk.logError(JSON.stringify(d));
F.trigger("initialization_error", d);
});
};
Ga.prototype.setupTestEnvironment = function() {
return E.setup(new Ye(this.NativeBridge.getPlatform(),
this.Api)).then(function() {
E.get("serverUrl") && Ta.setTestBaseUrl(E.get("serverUrl"));
E.get("configUrl") && Ta.setTestBaseUrl(E.get("configUrl"));
E.get("kafkaUrl") && H.setTestBaseUrl(E.get("kafkaUrl"));
if (E.get("abGroup")) {
var a = Number(E.get("abGroup"));
isNaN(a) || (a = Xg(a), Ta.setAbGroup(a));
}
if (E.get("forceAuthorization") && (a =
E.get("forceAuthorization").split("|"), 0 === a.length % 2)) {
for (var c = 0; c < a.length; c += 2) {
w.setAuthorizationHeaderForHost(a[c], a[c + 1]);
}
}
});
};
R.prototype.initialize = function() {
this._core.initialize();
};
R.prototype.show = function(a, c, d) {
this._core.Ads.show(a, c, d);
};
R.prototype.onError = function(a) {
a.lineno && "number" === typeof a.lineno && 1 < a.lineno &&
F.trigger("js_error", {message:a.message, url:a.filename, line:a.lineno,
column:a.colno, object:a.error});
return !0;
};
(function(a) {
try {
if ((new a).parseFromString("", "text/html")) {
return;
}
} catch (c) {
}
a.prototype.parseFromString = Ne.parseFromString;
})(DOMParser);
var kf = null;
"undefined" !== typeof location && (kf = u.getQueryParameter(location.search,
"platform"));
var Pf = null;
"undefined" !== typeof navigator && (Pf = navigator.userAgent.match(/(iPad|
iPhone|iPod);.*CPU.*OS 7_\d/i));
var Jg = window.requestAnimationFrame || window.webkitRequestAnimationFrame, Qf =
!1;
document.addEventListener("DOMContentLoaded", q, !1);
window.addEventListener("resize", q, !1);
document.addEventListener("DOMContentLoaded", k, !1);
window.addEventListener("orientationchange", k, !1);
if ("undefined" !== typeof location) {
switch(kf) {
case "android":
var Hg = new tb(window.webviewbridge, p.ANDROID);
break;
case "ios":
Hg = window.webkit ? new tb(new qg, p.IOS) : new tb(new ue, p.IOS);
break;
default:
throw Error("Unity Ads webview init failure: no platform defined, unable to
initialize native bridge");
}
var Ig = window;
Ig.nativebridge = Hg;
Ig.webview = new R(Hg);
document.addEventListener("DOMContentLoaded", function() {
return Ig.webview.initialize();
}, !1);
}
})();

</script>
</head>
<body></body>
</html>

Você também pode gostar